PT09IHJlbGVhc2UgMS4xMC4wID09PQoKMjAxNi0xMS0wMSAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY29heGlvbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAxLjEwLjAKCjIwMTYtMTEtMDEgMTc6Mzg6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+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+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFsd2F5cyBkdW1wIGNsb2NrIG9ic2VydmF0aW9ucyBpbiBsb2dzCgkgIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZXhhbWluZSB3aGF0IHZhbHVlcyB3ZSBnZXQgaW4gbG9ncywgYW5kCgkgIHBvdGVudGlhbGx5IHR1bmUgb3VyIGZpbHRlcmluZy9leHRyYXBvbGF0aW9uIGluIHZhcmlvdXMgc2NlbmFyaW9zLgoKMjAxNi0wMy0xNiAxNToxMzozOSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogZG9uJ3Qgc2VuZCBzdGlja3kgZXZlbnRzIGFzIGEgZGlyZWN0IHJlc3BvbnNlIHRvIHVwc3RyZWFtIGV2ZW50cwoJICBBbHNvIHJlZmFjdG9yIHRoZSBleGlzdGluZyB2YWx2ZSB0ZXN0IHRvIGFjdHVhbGx5IHRlc3QgdGhlIHZhbHZlLAoJICBhbmQgbm90IGp1c3QgdGVzdCB0aGUgRU9TIG1lY2hhbmlzbSBvZiBhIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc1MwoKMjAxNi0wMy0xMSAwOToyMzowNCArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IEFkZCBmbGFnIGZvciBwbGFjaW5nIGVsZW1lbnRzIGluIGEgYmluIGluc3RlYWQgb2YgYSBwaXBlbGluZQoJICBCeSBkZWZhdWx0LCBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKSBjcmVhdGVzIGEgR3N0UGlwZWxpbmUgaWYgdGhlcmUncyBtb3JlCgkgIHRoYW4gb25lIHRvcGxldmVsIGVsZW1lbnQuIEFkZCBhIGZsYWcgdG8gbGV0IGl0IHVzZSBhIEdzdEJpbiBpbnN0ZWFkLgoJICBBbHNvIGZpeCB0aGUgcGFyc2VyIHRvIGxldCBpdCB1c2UgdGhpcyBmbGFnIGZvciBHU1RfVFlQRV9FTEVNRU5UIHByb3BlcnR5CgkgIHZhbHVlcywgdG8gYXZvaWQgaGF2aW5nIEdzdFBpcGVsaW5lcyBpbnNpZGUgb3RoZXIgR3N0UGlwZWxpbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDU3CgoyMDE2LTAzLTA4IDE5OjA4OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBvcHRpbWlzYXRpb246IGF2b2lkIHVubmVjZXNzYXJ5IGdzdF9wYWRfaGFzX2N1cnJlbnRfY2FwcygpIGNoZWNrcwoJICBObyBuZWVkIHRvIGRvIHRoaXMgZm9yIGV2ZXJ5IGlucHV0IGJ1ZmZlciwgc2luY2UgaXQgaW52b2x2ZXMKCSAgbG9ja2luZyBhbmQgaXRlcmF0aW5nIG9mIHRoZSBzdGlja3kgZXZlbnRzIGFycmF5IGFuZCBzdWNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMzM3CgoyMDE2LTAzLTAzIDE0OjE1OjAwICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIGdzdHJlYW1lcjogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMwMjAKCjIwMTYtMDMtMDIgMTc6NDc6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IFVzZSBmdWxsIHJ1bm5pbmcgdGltZSBmb3IgbGV2ZWwgY2FsY3VsYXRpb24KCSAgRW5zdXJlcyB3ZSBoYXZlIHByb3BlciB0aW1lIGxldmVsIGVzdGltYXRpb24gZm9yIHRoZSBjYXNlcyB3aGVyZQoJICB0aGUgaW5jb21pbmcgYnVmZmVycyBoYXZlIFBUUy9EVFMgb3V0c2lkZSBvZiB0aGUgc2VnbWVudCBzdGFydC9zdG9wCgkgIHZhbHVlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjk5NQoKMjAxNi0wMS0yNyAxMTo0NjowNiArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHJhY2UgYmV0d2VlbiBnc3RfZWxlbWVudF9yZW1vdmVfcGFkIGFuZCBzdGF0ZSBjaGFuZ2UKCSAgV2hlbiBnb2luZyBmcm9tIFJFQURZIHRvIE5VTEwgYWxsIGVsZW1lbnQgcGFkcyBhcmUgZGVhY3RpdmF0ZWQuIElmCgkgIHNpbXVsdGFuZW91c2x5IHRoZSBwYWQgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZSBlbGVtZW50IHdpdGgKCSAgZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCgpIGFuZCB0aGUgcGFkIGlzIHVucGFyZW50ZWQsIHRoZXJlIGlzIGEgcmFjZQoJICB3aGVyZSB0aGUgZGVhY3RpdmF0aW9uIHdpbGwgYXNzZXJ0IChnX2NyaXRpY2FsKSBpZiB0aGUgcGFyZW50IGlzIGxvc3QgYXQKCSAgdGhlIHdyb25nIHRpbWUuCgkgIFRoZSBwcm9wb3NlZCBmaXggd2lsbCBjaGVjayBwYXJlbnQgb25seSBvbmNlIGFuZCByZXRhaW4gaXQgdG8gYXZvaWQgdGhlCgkgIHJhY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTIKCjIwMTYtMDMtMDIgMjE6MTE6NTEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEFzc3VtZSBQVFMgaXMgZXF1YWwgRFRTIGlmIFBUUyBpcyBtaXNzaW5nCgkgIFRoaXMgaXMgdGhlIGJlc3QgZ3Vlc3Mgd2UgY2FuIG1ha2UgaWYgc3VjaCBhIGJ1ZmZlciByZWFjaGVkIHRoZSBjb2xsZWN0CgkgIHBhZC4gVGhpcyBpcyB1bmNvbW1vbiwgd2UgZG8gZXhwZWN0IHBhcnNlcnMgdG8gaGF2ZSB0cmllZCBhbmQgZml4ZWQgdGhhdAoJICBpZiBwb3NzaWJsZSAob3IgbmVlZGVkKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjIwNwoKMjAxNi0wMy0yNCAxMzozMjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKMjAxNi0wMy0yNCAxMTo0OTo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZW1vdmUgcmVkdW5kYW50IGFzc2lnbm1lbnQKCSAgQ0lEIDEzNTcxNTgKCj09PSByZWxlYXNlIDEuOC4wID09PQoKMjAxNi0wMy0yNCAxMTo0OTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjguMAoKMjAxNi0wMy0yNCAxMTozNToyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMDMtMTMgMTE6MDU6MjkgLTA0MDAgIEFudGhvbnkgRy4gQmFzaWxlIDxibHVlbmVzc0BnZW50b28ub3JnPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0Lmg6CgkgIGxpYmNvbXBhdC5oOiBzdHJzaWduYWwoKSBzaG91bGQgYmUgbm90IGJlIGRlY2xlYXJlZCBjb25zdAoJICBQT1NJWCBzdGFuZGFyZHMgcmVxdWlyZXMgc3Ryc2lnbmFsKCkgdG8gcmV0dXJuIGEgcG9pbnRlciB0byBhIGNoYXIsCgkgIG5vdCBhIGNvbnN0IHBvaW50ZXIgdG8gYSBjaGFyLiBbMV0gIE9uIHVDbGliYywgYW5kIHBvc3NpYmx5IG90aGVyCgkgIGxpYmMncywgdGhhdCBkbyBub3QgSEFWRV9ERUNMX1NUUlNJR05BTCwgbGliY29tcGF0LmggZGVjbGFyZXMKCSAgY29uc3QgY2hhciAqc3Ryc2lnbmFsIChpbnQgc2lnKSB3aGljaCBjYXVzZXMgYSB0eXBlIGVycm9yLgoJICBbMV0gbWFuIDMgc3Ryc2lnbmFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM1NjcKCjIwMTYtMDMtMjIgMTk6MDQ6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogVXNlIEdTVF9QUkVTRVRfUEFUSCBhcyBhbiBleHRlbnNpb24gb2YgdGhlIHN5c3RlbSBwYXRoLCBub3QgYSByZXBsYWNlbWVudCBvZiB0aGUgdXNlciBwYXRoCgkgIEZpcnN0IGxvYWQgYWxsIHN5c3RlbSBwcmVzZXRzLCB0aGVuIGFsbCBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlbgoJICBmcm9tIHRoZSBhcHAgZGlyZWN0b3J5LCB0aGVuIGZyb20gdGhlIHVzZXIgZGlyZWN0b3J5LiBBbnkgb25lIGluIHRoZSBjaGFpbgoJICB3aXRoIHRoZSBoaWdoZXN0IHZlcnNpb24gY29tcGxldGVseSByZXBsYWNlcyBhbGwgcHJldmlvdXMgb25lcywgbGF0ZXIgb25lcwoJICB3aXRoIGxvd2VyIHZlcnNpb25zIGFyZSBtZXJnZWQgaW4gd2l0aG91dCByZXBsYWNpbmcgZXhpc3RpbmcgcHJlc2V0cy4KCSAgVGhpcyBpcyBiYXNpY2FsbHkgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGJlZm9yZSwganVzdCB0aGF0IEdTVF9QUkVTRVRfUEFUSCBpcwoJICBpbnNlcnRlZCBhcyBhbm90aGVyIHNvdXJjZSBvZiBkaXJlY3RvcmllcyBiZXR3ZWVuIHRoZSBzeXN0ZW0gYW5kIGFwcCBwcmVzZXRzLgoJICBJdCB3YXMgYWRkZWQgaW4gY2EwOGFmMWYxN2QyY2UzNmI4Mzk5OGEwYmEzYTdiOGJjYWZkNzg3MiwgYnV0IHdhcwoJICBhY2NpZGVudGlhbGx5IG92ZXJyaWRpbmcgdGhlIHVzZXIgcHJlc2V0IHBhdGggdGhlcmUuIFdoaWNoIGNhdXNlZCBpbmNvbnNpc3RlbnQKCSAgYmVoYXZpb3VyIGFzIG5ldyBwcmVzZXRzIHdlcmUgc3RpbGwgc3RvcmVkIGluIHRoZSBzeXN0ZW0gcGF0aCwganVzdCBub3QgbG9hZGVkCgkgIGZyb20gdGhlcmUuIE1lYW5pbmcgeW91IGNvdWxkIHN0b3JlIGEgbmV3IHByZXNldCAoaW4gdGhlIHVzZXIgcGF0aCksIGp1c3QgZm9yCgkgIEdzdFByZXNldCB0byBub3QgZmluZCBpdCBhbnltb3JlIGxhdGVyIChiZWNhdXNlIGl0IG9ubHkgbG9va2VkIGluIHRoZQoJICBHU1RfUFJFU0VUX1BBVEggaW5zdGVhZCBvZiB0aGUgdXNlciBwYXRoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDAzNAoKMjAxNi0wMy0xOSAxMjo1NTowOSArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAZGFya29zcGhlcmUuZnI+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGFkZCAndHJhbnNmZXIgZnVsbCcgYW5ub3RhdGlvbiB0byBnc3RfcGFkX3BlZXJfcXVlcnlfY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTEyCgoyMDE2LTAzLTE5IDEyOjM5OjE4ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBkYXJrb3NwaGVyZS5mcj4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgJ3RyYW5zZmVyIGZ1bGwnIGFuZCAnbnVsbGFibGUnIGFubm90YXRpb25zIHRvIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcwoJICBhbmQgYWxzbyBjaGFuZ2UgdGhlIGRlc2NyaXB0aW9uIGFjY29yZGluZ2x5IHNpbmNlIGZ1bmN0aW9uIHJldHVybnMgYW4KCSAgaW5jcmVtZW50ZWQgY2FwcyBvYmplY3Qgb3IgTlVMTCBpZiB0aGVyZSBpcyBubyBjYXBzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzkxMgoKMjAxNi0wMy0xOCAxNjowMjo0MyAtMDQwMCAgQmVuIElvZmVsIDxpb2ZlbGJlbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBnaXIgYW5ub3RhdGlvbiBmb3IgZ3N0X2VsZW1lbnRfcXVlcnlfY29udmVydCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM4OTUKCjIwMTYtMDMtMTcgMDE6NDI6NTUgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogQ2hlY2sgbXVsdGlxdWV1ZSBub3QtbGlua2VkIEVPUyBoYW5kbGluZwoJICBBZGQgYSB0ZXN0IHdoaWNoIGNoZWNrcyB0aGF0IG5vdC1saW5rZWQgcGFkcyBjb250aW51ZQoJICB0byBvdXRwdXQgZGF0YSBhZnRlciBsaW5rZWQgcGFkcyBoYXZlIGdvbmUgRU9TCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NzAKCjIwMTYtMDMtMTggMDM6MDg6MzkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBub3QtbGlua2VkIHBhZCBoYW5kbGluZyBhdCBFT1MKCSAgRW5zdXJlIHRoYXQgbm90LWxpbmtlZCBwYWRzIHdpbGwgZHJhaW4gb3V0IGF0IEVPUyBieQoJICBjb3JyZWN0bHkgZGV0ZWN0aW5nIHRoZSBFT1MgY29uZGl0aW9uIGJhc2VkIG9uIHRoZSBFT1MKCSAgcGFkIGZsYWcgKHdoaWNoIGluZGljYXRlcyB3ZSBhY3R1YWxseSBwdXNoZWQgYW4gRU9TKSwKCSAgYW5kIG1ha2Ugc3VyZSB0aGF0IG5vdC1saW5rZWQgcGFkcyBhcmUgd29rZW4gd2hlbiBkb2luZwoJICBFT1MgcHJvY2Vzc2luZyBvbiBsaW5rZWQgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc3MAoKMjAxNi0wMy0xNSAxNjozNzozMyArMDEwMCAgUm9tYWluIFBpY2FyZCA8cm9tYWluLnBpY2FyZEBvYWtiaXRzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBbGxvdyBjYXBzIHF1ZXJ5IGluICJoYXZlLXR5cGUiIHNpZ25hbCBoYW5kbGVycwoJICBJZiBhbiBhcHBsaWNhdGlvbiBjYWxscyBnc3RfcGFkX3F1ZXJ5X2NhcHMgZnJvbSBpdHMgImhhdmUtdHlwZSIgc2lnbmFsIGhhbmRsZXIsCgkgIHRoZW4gdGhlIHF1ZXJ5IGZhaWxzIGJlY2F1c2UgdHlwZWZpbmQtPmNhcHMgaGFzIG5vdCBiZWVuIHNldCB5ZXQuCgkgIFRoaXMgcGF0Y2ggc2V0cyB0eXBlZmluZC0+Y2FwcyBpbiB0aGUgb2JqZWN0IG1ldGhvZCBoYW5kbGVyLCBiZWZvcmUgdGhlIHNpZ25hbAoJICBoYW5kbGVycyBhcmUgY2FsbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDkxCgo9PT0gcmVsZWFzZSAxLjcuOTEgPT09CgoyMDE2LTAzLTE1IDExOjU2OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNy45MQoKMjAxNi0wMy0xNSAxMTo0NDowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby90ci5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMDMtMTUgMTE6Mzk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wMy0xMSAxNDoxNzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5MQoKMjAxNi0wMy0xMyAxMDozMzo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVjaGVjayBhZnRlciBwcmVfcHVzaF9mcmFtZSgpIGlmIHRoZXJlIGFyZSB0YWdzIHBlbmRpbmcKCSAgTWFueSBwYXJzZXJzIGFyZSBzdG9yaW5nIHRhZ3Mgb25seSBpbiBwcmVfcHVzaF9mcmFtZSgpLCBpZiB3ZSB3b3VsZG4ndCBjaGVjawoJICBhZnRlcndhcmRzIHdlIHdvdWxkIHB1c2ggYnVmZmVycyBiZWZvcmUgdGhvc2UgdGFncyBhbmQgYSBsb3Qgb2YgY29kZSBhc3N1bWVzIHRoYXQKCSAgdGFncyBhcmUgYXZhaWxhYmxlIGJlZm9yZSBwcmVyb2xsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNTUzCgoyMDE2LTAzLTE0IDExOjE1OjA3ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEZpeCBjb21tZW50IHR5cG8KCjIwMTYtMDMtMTIgMTI6NTY6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBSZXZlcnQgInR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDgzNWMzZDY1NjlkZGUwZWM5ZTU1MjQ0MzYzNjdjNzY3OGNjNGE0YS4KCSAgSXQgY2F1c2VzIGRlYWRsb2NrcyBpbiBkZWNvZGViaW4sIHdoaWNoIGN1cnJlbnRseSB3b3VsZCBkZWFkbG9jayBpZiB0aGUgY2FwcwoJICBhcmUgYWxyZWFkeSBvbiB0aGUgcGFkIGluIGhhdmUtdHlwZSBhbmQgYXJlIGZvcndhcmRlZCB3aGlsZSBjb3B5aW5nIHRoZSBzdGlja3kKCSAgZXZlbnRzICh3aGlsZSBob2xkaW5nIHRoZSBkZWNvZGViaW4gbG9jaykuLi4gYXMgdGhhdCBtaWdodCBjYXVzZSB0aGUgbmV4dAoJICBlbGVtZW50IHRvIGV4cG9zZSBwYWRzLCB3aGljaCB0aGVuIGNhbGxzIGJhY2sgaW50byBkZWNvZGViaW4gYW5kIHRha2VzIHRoZQoJICBkZWNvZGViaW4gbG9jay4KCSAgVGhpcyBuZWVkcyBzb21lIG1vcmUgdGhvdWdodHMuCgoyMDE2LTAzLTExIDE0OjE3OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3JlIGNhcHMgb24gdGhlIHBhZCBiZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlIGJ1dCBzZW5kIGl0IGRvd25zdHJlYW0gb25seSBpbiB0aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDkxCgoyMDE2LTAzLTEwIDEwOjM1OjQwICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGRvY3M6IEZsZXNoIG91dCBlbGVtZW50IGFuZCBvYmplY3QgbWFjcm8gYWNjZXNzb3IgZG9jcyBhIGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMjEzCgoyMDE2LTAzLTA5IDE2OjA2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBSZW1vdmUgc29tZSBvYnNvbGV0ZSBjb2RlIHRoYXQgY2FuIGNhdXNlIHdhcm5pbmdzCgoyMDE2LTAzLTA5IDEzOjQ0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBEb24ndCByZXNldCBjYWxpYnJhdGlvbiBvZiBpbnRlcm5hbCBjbG9jayB3aGVuZXZlciBhIG5ldyBuZXRjbGllbnQgY2xvY2sgaXMgY3JlYXRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMzI1CgoyMDE2LTAzLTA0IDE4OjIzOjE4ICswMTAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGZpeCBHc3RQYXJlbnRCdWZmZXJNZXRhIEdUeXBlIG5hbWUKCSAgVGhlIGFsaWFzIGRlZmluZSBHU1RfVFlQRV9QQVJFTlRfQlVGRkVSX01FVEFfQVBJX1RZUEUgaXMgd3JvbmcgYW5kCgkgIGJyZWFrcyB0aGUgdXNhZ2Ugb2YgZ3N0X2J1ZmZlcl9nZXRfcGFyZW50X2J1ZmZlcl9tZXRhKCkuCgkgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIEdUeXBlIGFsaWFzIGFuZCBtYWtlIGFub3RoZXIgYWxpYXMgdG8ga2VlcCB0aGUgQVBJCgkgIGNvbXBhdGliaWxpdHkgZ3VhcmRlZCBieSBHU1RfRElTQUJMRV9ERVBSRUNBVEVELgoJICBBbHNvIGFkZGVkIGEgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMTEyCgoyMDE2LTAzLTAyIDEwOjM3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IFJlbW92ZSB1c2VsZXNzIE5VTEwgY2hlY2sgYW5kIGFkZCBhc3NlcnRpb24gZm9yIG1ha2luZyBhc3N1bXB0aW9ucyBleHBsaWNpdAoJICBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgpIGlzIG5vdCByZXR1cm5pbmcgTlVMTCBpbiBhbnkgdmFsaWQgc2NlbmFyaW9zLAoJICBjaGVja2luZyBmb3IgTlVMTCBoZXJlIGlzIHVzZWxlc3MuIEVzcGVjaWFsbHkgYmVjYXVzZSB3ZSB3b3VsZCBkZXJlZmVyZW5jZSBhbnkKCSAgTlVMTCByaWdodCBhZnRlciB0aGUgTlVMTCBjaGVjayBhZ2Fpbi4KCSAgQ0lEIDEzNTIwMzcuCgkgIFdlIHByZXZpb3VzbHkgY2hlY2sgaWYgdGhlIHN0cmluZyBlbmRzIG9uIC5jbGFzcywgYXMgc3VjaCBzdHJyY2hyKCkgc2hvdWxkCgkgIHJldHVybiBzb21ldGhpbmcgbm9uLU5VTEwuIEFkZCBhbiBhc3NlcnRpb24gZm9yIHRoYXQuCgkgIENJRCAxMzQ5NjQyLgoKMjAxNi0wMy0wMSAxOTo1MDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG1pbm9yIGRvY3MgZml4CgkgIE1ha2UgZ3RrLWRvYyBoYXBweS4KCj09PSByZWxlYXNlIDEuNy45MCA9PT0KCjIwMTYtMDMtMDEgMTg6MTQ6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjkwCgoyMDE2LTAzLTAxIDE2OjUyOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDItMjkgMjM6MzM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBSZXZlcnQgImJ1czogY2hhbmdlIEdzdEJ1c1NvdXJjZSB0byBob2xkIGEgd2VhayByZWYgdG8gR3N0QnVzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg5NGM2N2U2NDJjMGY4NThiNWIxODA5N2ZhN2M5OTViZjNjYzUwYzEuCgoyMDE2LTAyLTI5IDIzOjMyOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogTWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgR1BvbGxGRCBmcm9tIHRoZSBHU291cmNlcyB3aGVuIGRlc3Ryb3lpbmcgdGhlIGJ1cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwNTcwMGE3MDgyYzE0NTA1N2NjYzBiZTc2MzA2N2JjYzI2MzIzOWViLgoKMjAxNi0wMi0yOSAxNzowNjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IFJlbW92ZSBHU1RfU1RBVEVfTE9DS19GVUxMKCkgLyBVTkxPQ0tfRlVMTCgpCgkgIFRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgQVBJIGZvciB0aGF0IGluIEdMaWIgYW5kIG5vYm9keSBjb3VsZCd2ZSBldmVyIHVzZWQKCSAgdGhlc2UgbWFjcm9zIHdpdGhvdXQgY29tcGlsZXIgZXJyb3JzIGFueXdheS4KCjIwMTYtMDItMjkgMTA6MDE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogTWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgR1BvbGxGRCBmcm9tIHRoZSBHU291cmNlcyB3aGVuIGRlc3Ryb3lpbmcgdGhlIGJ1cwoJICBPdGhlcndpc2UgdGhlIEdTb3VyY2UgY2FuIGxvb2sgaW50byBvdXIgYWxyZWFkeSBkZXN0cm95ZWQgYnVzIHdoZXJlIHRoZQoJICBHUG9sbEZEIGlzIHN0b3JlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjg0OQoKMjAxNi0wMi0yOSAxMTowNjo1MCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogZ2hvc3RwYWQ6IEZpeCBtZW1vcnkgbGVha3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjg0NQoKMjAxNi0wMi0yOCAxMzo1OTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGFkZCBndWFyZCB0byBjaGVjayB3cml0YWJpbGl0eSB3aGVuIHJlbW92aW5nIHRhZ3MgZnJvbSBhIHRhZ2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjc5MwoKMjAxNi0wMi0yNyAxNTozNjoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3NzgKCjIwMTYtMDItMjcgMTU6Mjg6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgUHJldHR5IG11Y2ggZXZlcnkgc2luZ2xlIGVsZW1lbnQgZG9lcwoJICBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlIChlbGVtZW50X2NsYXNzLAoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQgKCZzb21lX3RlbXBsKSk7CgkgIHdoaWNoIGlzIGJvdGggY29uZnVzaW5nIGFuZCB1bm5lY2Vzc2FyeS4gV2UgbWlnaHQganVzdAoJICBhcyB3ZWxsIGFkZCBhIGZ1bmN0aW9uIHRvIGRvIHRoYXQgaW4gb25lIHN0ZXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3NzgKCjIwMTYtMDItMjcgMTU6MzI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IGluZGVudGF0aW9uCgoyMDE2LTAyLTI2IDEyOjQwOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNjRmMDNmIHRvIDZmMmQyMDkKCjIwMTYtMDItMjUgMjI6MzY6MTQgKzAwMDAgIEphbWVzIFN0ZXZlbnNvbiA8amFtZXNAc3Rldi5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogUHJldmVudCBnc3RfYnVzX2FkZF93YXRjaF9mdWxsX3VubG9ja2VkIGZyb20gYSBzZWdmYXVsdCBpZiBwcml2LT5wb2xsID09IE5VTEwKCSAgVGhpcyBoYXBwZW5zIGlmIHRoZSBwcm9jZXNzIHJ1bnMgb3V0IG9mIGZpbGUgZGVzY3JpcHRvcnMuIEJldHRlciBwcmludAoJICBhIGNyaXRpY2FsIHdhcm5pbmcgaW5zdGVhZCBvZiBqdXN0IGNyYXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzAyCgoyMDE2LTAyLTI0IDEwOjU2OjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBidXM6IGNoYW5nZSBHc3RCdXNTb3VyY2UgdG8gaG9sZCBhIHdlYWsgcmVmIHRvIEdzdEJ1cwoJICBXaGVuIGhvbGRpbmcgYSByZWd1bGFyIHJlZiBpdCB3aWxsIGNhdXNlIHRoZSBHc3RCdXMgdG8gbmV2ZXIKCSAgcmVhY2ggMCByZWZlcmVuY2VzIGFuZCBpdCB3b24ndCBiZSBkZXN0cm95ZWQgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbgoJICBleHBsaWNpdGx5IGNhbGxzIGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCgpLgoJICBTd2l0Y2hpbmcgdG8gd2Vha3JlZiB3aWxsIGFsbG93IHRoZSBHc3RCdXMgdG8gYmUgZGVzdHJveWVkLgoJICBUaGUgYXBwbGljYXRpb24gaXMgc3RpbGwgcmVzcG9uc2libGUgZm9yIGRlc3Ryb3lpbmcgdGhlCgkgIEdTb3VyY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI1NTIKCjIwMTYtMDItMjUgMTQ6MTE6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBBZGQgYSAiICIgYWZ0ZXIgcHRzOiBpbiB0aGUgc2lsZW50PWZhbHNlIG91dHB1dAoKMjAxNC0wNC0xNiAxMTo0MjoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggZXhhbXBsZXMgdG8gY2hlY2sgZm9yIGdzdF9idWZmZXJfbWFwIHJldHVybiB2YWx1ZXMKCSAgT3RoZXJ3aXNlIHBlb3BsZSByZWFkaW5nIHRoZSBtYW51YWwgd2lsbCBleHBlY3QgaXQgdG8gYWx3YXlzCgkgIHN1Y2NlZWQgOikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNC0wNC0xNiAxMTo0MDo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9idWZmZXJfbWFwCgkgIFdlIGNhbid0IGNoZWNrIGNvbnRlbnRzIGlmIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTQtMDQtMTYgMTE6Mzk6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiBDaGVjayByZXR1cm4gdmFsdWVzIG9mIGdzdF9idWZmZXJfbWFwKCkKCSAgVGhleSBjYW4gZmFpbCBmb3IgdmFyaW91cyByZWFzb25zLgoJICBGb3Igbm9uLWZhdGFsIGNhc2VzIChzdWNoIGFzIHRoZSBkdW1wIGZlYXR1cmUgb2YgaWRlbnRpeSBhbmQgZmFrZXNpbmspLAoJICB3ZSBqdXN0IHNpbGVudGx5IHNraXAgaXQuCgkgIEZvciBvdGhlciBjYXNlcyBwb3N0IGFuIGVycm9yIG1lc3NhZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTYtMDItMjMgMTc6MjM6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9tZW1vcnlfbWFwKCkKCSAgT25seSBkbyBtZW1vcnkgb3BlcmF0aW9ucyBpZiB0aGUgbWVtb3J5IHdhcyBzdWNjZXNmdWxseSBtYXAnZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNS0xMi0xMCAxNTozMjoyNyArMDEwMCAgQWRhbSBNaWFydHVzIDxhZGFtLm1pYXJ0dXNAc3RyZWFtdW5saW1pdGVkLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBHU1RfVEFHX0NPTkRVQ1RPUgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgbWV0YWRhdGEgd2hpY2ggZXhwbGljaXRlbHkgZGlzdGluZ3Vpc2hlcwoJICBiZXR3ZWVuIGFydGlzdC9jb21wb3NlciBhbmQgY29uZHVjdG9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDUwCgoyMDE2LTAyLTIyIDE0OjA5OjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBzb21lIG1vcmUgZG9jdW1lbnRhdGlvbiBvbiBzdHJlYW0taWQKCSAgLi4uIHdoZXJlIGl0IG1pZ2h0IGVuZCB1cCBiZWluZyB1c2VkIGZvci4KCjIwMTYtMDEtMjIgMTE6MjU6MzAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXI6IEluaXRpYWxpemUgR3N0VHJhY2VyIF9wcml2X3RyYWNlcnMgYW5kIHF1YXJrcyB1bmNvbmRpdGlvbm5hbGx5CgkgIFNvbWUgcGVvcGxlIG1pZ2h0IHVzZSB0cmFjZXIgaG9va3MgZXZlbiBpZiBHU1RfVFJBQ0VSX1BMVUdJTlMgaXMgbm90CgkgIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDk3OQoKMjAxNi0wMi0yMCAxMDoxODowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogbWFudWFsOiByZW1vdmUgZGVhZCBsaW5rIGZyb20gaW50ZWdyYXRpb24gcGFnZQoKMjAxNi0wMi0yMCAxMDoxMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBkb2NzOiBtYW51YWw6IGZpeCBmb3JtYXR0aW5nCgkgIGFkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOjEyMTA6IGVsZW1lbnQgbGlzdGl0ZW06IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudAoJICBsaXN0aXRlbSBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFRELCBleHBlY3RpbmcgKC4uLiksCgkgIGdvdCAocGFyYSBDREFUQSBwYXJhICkKCSAgPC9saXN0aXRlbT4KCjIwMTYtMDItMjAgMDA6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY2hlY2sgZm9yIGdpdCBpbiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2ggYXMgd2VsbAoKMjAxNi0wMi0xOSAyMDoyNjoyNiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWsuY2hhdWhhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIFdoZW5ldmVyIHdlIGluY2x1ZGUgd2luZG93cy5oLCBhbHNvIGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCgkgIFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHN5bWJvbHMgYW5kIGNvZGUgcHVsbGVkIGluIGRyYXN0aWNhbGx5CgoyMDE2LTAyLTEzIDA2OjUzOjI0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiBPbiBNU1ZDLCBhbHNvIGRlZmluZSBIQVZFX1NURElOVF9IX1dJVEhfVUlOVE1BWAoJICBNU1ZDIHByb3ZpZGVzIHN0ZGludC5oIGJ1dCBub3QgaW50dHlwZXMuaCwgYW5kIHdlIG5lZWQgdG8gaW5jbHVkZSBzdGRpbnQuaCB0bwoJICBnZXQgaW50bWF4X3QKCjIwMTYtMDItMTMgMDY6NDI6MDYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogT25seSBpbmNsdWRlIHVuaXN0ZC5oIGlmIGZvdW5kCgkgIHVuaXN0ZC5oIGlzIG5vdCBwcm92aWRlZCBieSB0aGUgIE1pY3Jvc29mdCBWaXN1YWwgQysrIGNvbXBpbGVyLiBJdCBpbnN0ZWFkCgkgIHByb3ZpZGVzIHRoZSBuZWNlc3NhcnkgZGVmaW5lcyB0aHJvdWdoIGlvLmgKCjIwMTYtMDItMTMgMDY6MTk6NTIgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBPbmx5IGNoZWNrIGZvciBTX0lGQkxLIGlmIGl0IGlzIGRlZmluZWQKCSAgV2luZG93cyBkb2VzIG5vdCBkZWZpbmUgU19JRkJMSyBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgYmxvY2sgZGV2aWNlcwoKMjAxNi0wMi0xOSAyMDoxNzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJKiB3aW4zMi9jb21tb24vZGlyZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSogd2luMzIvY29tbW9uL2d0Y2hhci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvTGlicmFyeS5wcm9wczoKCSogd2luMzIvdnMxMC9QbHVnaW4ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUmVhZE1lLnR4dDoKCSogd2luMzIvdnMxMC9Ub29sLnByb3BzOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvajoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSogd2luMzIvdnM3L2dyYW1tYXIudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSogd2luMzIvdnM3L2xpYmdzdGNvcmVlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvdnM4L2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzOC9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJKiB3aW4zMi92czgvbGliZ3N0Y29yZWVsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIHdpbjMyOiB1cGRhdGUgUkVBRE1FIGFuZCByZW1vdmUgb3V0ZGF0ZWQgYnVpbGQgY3J1ZnQKCSAgVGhpcyBoYXNuJ3QgYmVlbiB0b3VjaGVkIGZvciBnZW5lcmF0aW9ucywgZG9lc24ndCB3b3JrLAoJICBhbmQgaXMganVzdCBjYXVzaW5nIGNvbmZ1c2lvbi4gV2UgYWxzbyBkb24ndCB3YW50IHRvCgkgIG1haW50YWluIHRoZXNlIGZpbGVzIG1hbnVhbGx5LgoKMjAxNi0wMi0xOSAwODo0MzowMCArMDAwMCAgR2VvcmdlIFl1bmFldiA8Z3l1bmFldkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBFeHBsYWluIHdoYXQgaGFwcGVucyBpZiB1cHN0cmVhbSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwaXBlbGluZSB3aXRob3V0IGRyYWluaW5nIHRoZW0gZmlyc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjMwMgoKMjAxNi0wMi0xOSAxNDo0MTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICB0ZXN0czogZml4IGluZGVudGF0aW9uCgoyMDE2LTAyLTE5IDEyOjM4OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjcuMiA9PT0KCjIwMTYtMDItMTkgMTE6NDc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuMgoKMjAxNi0wMi0xOSAxMDoyOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTAyLTE4IDE0OjIwOjE3ICswMDAwICBKdWxpZW4gSXNvcmNlIDxqLmlzb3JjZUBzYW1zdW5nLmNvbT4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgdW5pbnN0YWxsZWQucGM6IGFkZCBzdXBwb3J0IGZvciBub24gbGlidG9vbCBidWlsZCBzeXN0ZW1zCgkgIEN1cnJlbnRseSB0aGUgLmxhIHBhdGggaXMgcHJvdmlkZWQgd2hpY2ggcmVxdWlyZXMgdG8gdXNlIGxpYnRvb2wgYXMKCSAgbWVudGlvbmVkIGluIHRoZSBHU3RyZWFtZXIgbWFudWFsIHNlY3Rpb24taGVsbG93b3JsZC1jb21waWxlcnVuLmh0bWwuCgkgIEl0IGlzIGZpbmUgYXMgbG9uZyBhcyB0aGUgYXBwbGljYXRpb24gaXMgYnVpbHQgdXNpbmcgbGlidG9vbC4KCSAgU28gY3VycmVudGx5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjb21waWxlIGEgR1N0cmVhbWVyIGFwcGxpY2F0aW9uCgkgIHdpdGhpbiBnc3QtdW5pbnN0YWxsZWQgd2l0aCBDTWFrZSBvciBvdGhlciBidWlsZCBzeXN0ZW0gZGlmZmVyZW50CgkgIHRoYW4gYXV0b3Rvb2xzLgoJICBUaGlzIHBhdGNoIGFsbG93cyB0byBkbyB0aGUgZm9sbG93aW5nIGluIGdzdC11bmluc3RhbGxlZCBlbnY6CgkgIGdjYyB0ZXN0LmMgLW8gdGVzdCAkKHBrZy1jb25maWcgLS1jZmxhZ3MgLS1saWJzIGdzdHJlYW1lci0xLjApCgkgIFByZXZpb3VzbHkgaXQgcmVxdWlyZWQgdG8gcHJlcGVuZCBsaWJ0b29sIC0tbW9kZT1saW5rCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjA3NzgKCjIwMTYtMDItMTggMTE6NDM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBQVUxMIHByb2JlcyBhcmUgY2FsbGVkIHdpdGhvdXQgYSBidWZmZXIgc28gZG9uJ3QgcmVxdWlyZSBhbnkgb2YgdGhlIGRhdGEgZmxhZ3MgdG8gYmUgc2V0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI4OWZhNDc4NmIzZGY2Y2I3OWY2NjJjMDM3ZGVlNzRiM2Y3NDI4ZDYuCgkgIFRoZSBjaGFuZ2VzIGJyZWFrIHZhcmlvdXMgdGVzdHMuCgoyMDE2LTAyLTE4IDExOjQzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogQWRkIHRlc3QgZm9yIGJsb2NraW5nIHB1bGwgcHJvYmUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMTdkMzBlOTQ0YmUwNDI1ZWJiNGZiNjA0NmY4MmQxZjYxNzAxZmU4Zi4KCSAgVGhlIFBVTEwgcHJvYmUgY2hhbmdlcyBicmVhayB2YXJpb3VzIHRlc3RzLgoKMjAxNi0wMi0xOCAxMTowOTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBQcm90ZWN0IGFnYWluc3QgZmFpbGluZyB0byBtYXAgaW5wdXQgbWVtb3J5IHdoZW4gbWVyZ2luZyBtZW1vcmllcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMjM5CgoyMDE2LTAxLTI4IDE2OjIyOjE3ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB0ZXN0IGZvciBibG9ja2luZyBwdWxsIHByb2JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDItMTcgMTY6NTc6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUFVMTCBwcm9iZXMgYXJlIGNhbGxlZCB3aXRob3V0IGEgYnVmZmVyIHNvIGRvbid0IHJlcXVpcmUgYW55IG9mIHRoZSBkYXRhIGZsYWdzIHRvIGJlIHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAyLTE3IDE2OjQxOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBEb24ndCBob2xkIHN0YXRlIGxvY2sgYWxsIHRoZSB0aW1lIHdoaWxlIHNlbmRpbmcgYW4gZXZlbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjQyNzk5NzExOWEyYjZhYWNiZWI1NTBmNzI5OTM2ZjhiOTYzZTI0Yi4KCSAgSXQgYnJlYWtzIHRoaW5ncyB0aGF0IHVzZWQgdG8gd29yayBiZWZvcmUsIGV2ZW4gaWYgdGhlIGNoYW5nZSBieSBpdHNlbGYgaXMKCSAgY29ycmVjdCBhbmQgdGhlIHByZXZpb3VzIGNvZGUgaXMganVzdCB3b3JraW5nIGFyb3VuZCBkZWVwZXIgYnVncyBpbiB0aGUgYXN5bmMKCSAgc3RhdGUgY2hhbmdlIGNvZGUuIExldCdzIGdvIGJhY2sgdG8gd2hhdCBwcmV2aW91c2x5IHdvcmtlZCBhbmQgdGhlbiBmaXggYXN5bmMKCSAgc3RhdGUgY2hhbmdlcyBpbiBnZW5lcmFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNTMyCgoyMDE2LTAyLTE3IDE1OjI2OjQ5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFJldmVydCAiZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCIKCSAgVGhhdCBjb21taXQgd291bGQgYnJlYWsgc2NoZWR1bGluZyByZWNvbmZpZ3VyYXRpb24gd2l0aCBnaG9zdHBhZHMKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYjU1YWQ3ZWFhZDRmYTJjMGIxNmM3ODkzNTBlODgyY2Y3MGEyN2VkLgoKMjAxNi0wMi0xNyAxNToyNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVjazogQWRkIHRlc3QgZm9yIGNoZWNraW5nIHNjaGVkdWxpbmcgcmVjb25maWd1cmF0aW9uIHdpdGggZ2hvc3RwYWRzCgkgIFNob3djYXNlcyB0aGUgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IHRoaXMgY29tbWl0OgoJICBDb21taXQ6IGFiNTVhZDdlYWFkNGZhMmMwYjE2Yzc4OTM1MGU4ODJjZjcwYTI3ZWQKCSAgQXV0aG9yOiBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCSAgRGF0ZTogICBXZWQgSmFuIDI3IDEzOjIwOjIzIDIwMTYgKzAxMDAKCSAgZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoKMjAxNi0wMi0xNyAxMTowMjozNCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhZGQgc29tZSB0ZXN0cyBmb3IgYWN0aXZhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEzCgoyMDE2LTAxLTI3IDEzOjIwOjIzICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRG8gbm90aGluZyBpbiBfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgkgIFdoZW4gY2FsbGluZyBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBvbiBhIGdob3N0cGFkCgkgIGdzdF9naG9zdF9wYWRfYWN0aXZhdGVfcHVzaF9kZWZhdWx0KCkgd2lsbCBiZSBjYWxsZWQuIFRoaXMgd2lsbCBjYWxsCgkgIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIG9uIHRoZSBwcm94eXBhZCAod2hpY2ggaXMgaW50ZXJuYWwgb2YgdGhlCgkgIGdob3N0cGFkKSwgY2FsbGluZyBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCgpLCB3aGljaAoJICBhZ2FpbiB3aWxsIGNhbGwgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgb24gdGhlIG9yaWdpbmFsIGdob3N0cGFkLgoJICBCeSBzaW1wbHkgcmV0dXJuaW5nIFRSVUUgaW4KCSAgZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQoKSB0aGUgcmVkdW5kYW50IGNhbGwgdG8KCSAgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgKGZvciB0aGUgc2FtZSBwYWQpIGlzIGF2b2lkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTMKCjIwMTYtMDItMTYgMTc6NTM6MTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogcmVtb3ZlIHVudXNlZCBtYWNybwoJICBtYWNybyB3YXMgYWRkZWQgaW4gMjAxMSBhbmQgaXNuJ3QgdXNlZCBhbnltb3JlCgoyMDE2LTAyLTE2IDE5OjExOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIFJldmVydCAicXVldWUyOiBhZGQgb3ZlcnJ1biBzaWduYWwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGFlOGIyNzIzZDBjZjE3OWE0ZjA5YjJmNmM1Zjc5N2UyZDk3MDM0ZC4KCSAgSXQncyBub3QgdXNlZCBhbnltb3JlIGJ5IGFueXRoaW5nIGFuZCB3YXMgY29uc2lkZXJlZCBhIGJhZCBpZGVhIGluIGdlbmVyYWwuCgoyMDE0LTA2LTA1IDEzOjI3OjI4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBhbm5vdGF0ZSBDIGV4YW1wbGVzIGFzIHN1Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTI5MgoKMjAxNi0wMi0xNSAxMToxMzo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjZXJzZXJpYWxpemUuYzoKCSAgYmVuY2htYXJrOiB0cmFjZXJzZXJpYWxpemU6IGFkZCBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQKCSAgdHJhY2Vyc2VyaWFsaXplLmM6MTE3OjE6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mCgkgIG5vbi12b2lkIGZ1bmN0aW9uIFstV2Vycm9yPXJldHVybi10eXBlXQoKMjAxNi0wMi0xNSAxMDowNjowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgcHJvdGVjdGlvbi9oYXJuZXNzL3N5c3RlbWNsb2NrOiBtb3ZlIGRlY2xhcmF0aW9uIG91dCBvZiBmb3IgbG9vcCBpbml0aWFsaXphdGlvbgoJICBDOTAgY29tcGlsZXJzIGNvbXBsYWluIGFib3V0IGl0CgkgIGVycm9yOiDigJhmb3LigJkgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9ucyBhcmUgb25seSBhbGxvd2VkIGluIEM5OSBvciBDMTEgbW9kZQoJICBBbHNvIHJ1biBnc3QtaW5kZW50IG9uIHN5c3RlbWNsb2NrIHRlc3RzLgoKMjAxNi0wMS0yNyAxNToxNjowMyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBhbHdheXMgc2V0IG91ciB0ZXN0LWNsb2NrIG9uIHRoZSBoYXJuZXNzZWQgZWxlbWVudAoJICBUaGUgaW50ZWdyYXRpb24gaXMgYWxyZWFkeSBzbyB0aWdodCwgdGhlcmUgaXMgbm8gcmVhc29uIHRvCgkgIG5vdCBmdXJ0aGVyIGZvcm1hbGl6ZSBpdCEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxNAoKMjAxNi0wMi0xMyAxNjoxMDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGNvbXBpbGF0aW9uCgkgIFdhcyBzdXBwb3NlZCB0byBiZSBzcXVhc2hlZCB3aXRoIDMzNmM3YmI2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTAKCjIwMTYtMDItMTMgMTY6MTA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNi0wMS0yMSAxMzozMzoxNSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggTVQgaXNzdWVzIHdoZW4gZm9yd2FyZGluZyBldmVudC9xdWVyeSB0byBzaW5rIGhhcm5lc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMAoKMjAxNi0wMi0xMyAxMDowNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBuZXcgLWJhZCBsaWJyYXJpZXMgYXVkaW8sIHBsYXllciBhbmQgd2F5bGFuZCB0byBwYXRocwoJICBBbmQgcmVtb3ZlIGVnbCB3aGljaCBubyBsb25nZXIgZXhpc3RzLgoKMjAxNi0wMi0xMiAxMTo1Nzo1NSAtMDgwMCAgTWFydGluIEtlbGx5IDxtYXJ0aW5Ac3Vycm91bmQuaW8+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgcHVzaHNyYzogZml4IG1pbm9yIHR5cG9zIGluIGhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTcwCgoyMDE2LTAxLTIxIDEzOjI4OjIzICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogQWRkIGV2ZW50IHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucyB3aXRoIGNhbGxiYWNrCgkgIFNpbWlsYXIgdG8gdGhlIHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucyBmb3IgYnVmZmVycyB0aGF0IGhhcyBhIGNhbGxiYWNrIHRvCgkgIGNyZWF0ZSB0aGUgYnVmZmVyIHRvIGJlIHB1c2hlZCwgaXQncyB1c2VmdWwgdG8gaGF2ZSBmdW5jdGlvbnMgdGhhdCB1c2UgYQoJICBjYWxsYmFjayB0byBjcmVhdGUgdGhlIGV2ZW50IHRvIGJlIHB1c2hlZC4KCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF9ldmVudF93aXRoX2NiX3N0YXJ0KCkKCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF9ldmVudF93aXRoX2NiX3N0YXJ0X2Z1bGwoKQoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19zZW5kX3Vwc3RyZWFtX2V2ZW50X3dpdGhfY2Jfc3RhcnQoKQoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19wdXNoX3Vwc3RyZWFtX2V2ZW50X3dpdGhfY2Jfc3RhcnRfZnVsbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MzIKCjIwMTYtMDEtMTQgMjE6NTQ6NDIgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBhZGQgY3JhbmsgbWV0aG9kCgkgIEFuZCB1c2UgaXQgaW5zaWRlIEdzdEhhcm5lc3MKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19jcmFuaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDYKCjIwMTUtMTItMDkgMTM6NDM6MzggKzExMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogZW5hYmxlIGVtcHR5IGhhcm5lc3MgY3JlYXRpb24gYW5kIHJlZmFjdG9yIGFyb3VuZCB0aGlzCgkgIEFsc28gbWFrZSB0aGUgdGVzdGNsb2NrIGEgbWVtYmVyIG9mIHRoZSBoYXJuZXNzLCBhbGxvd2luZyBzb21lCgkgIG1vcmUgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGNsb2NrIHByaW9yIHRvIGFkZGluZyBlbGVtZW50cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwNQoKMjAxNi0wMi0xMiAxNToxMjo0MyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZXIgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTE5CgoyMDE1LTA4LTA0IDE3OjA5OjM1ICswMjAwICBNaWtoYWlsIEZsdWRrb3YgPG1pc2hhQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IHRoZSByYWNlIGluIGJsb2NraW5nIHB1c2ggbW9kZQoJICBEZXBlbmRpbmcgb24gd2hlbiBnc3RfaGFybmVzc19wdWxsIHdhcyBjYWxsZWQgLSBiZWZvcmUgdGhlIGJ1ZmZlciByZWFjaGVkCgkgIGdzdF9oYXJuZXNzX2NoYWluIG9yIGFmdGVyIHdlIGNhbiBnZXQgZGlmZmVyZW50IGJlaGF2aW9ycyBvZiB0aGUgdGVzdAoJICB3aXRoIGVuYWJsZWQgYmxvY2tpbmcgcHVzaCBtb2RlLiBUaGUgZml4IG1ha2VzIHRoZSBiZWhhdmlvciBhbHdheXMgdGhlCgkgIHNhbWUuIEluIHB1bGwgZnVuY3Rpb24gd2UgZ2V0IHRoZSBidWZmZXIgZmlyc3QsIHRodXMgbWFraW5nIHN1cmUKCSAgZ3N0X2hhcm5lc3NfY2hhaW4gd2FpdHMgZm9yIHRoZSBzaWduYWwsIGFuZCBlbWl0dGluZyB0aGUgc2lnbmFsIGFmdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTMxCgoyMDE2LTAyLTA0IDE1OjE2OjQxICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgdGNhc2Vfc2tpcF9icm9rZW5fbG9vcF90ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTcKCjIwMTYtMDEtMjEgMTM6MjU6NDAgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggZG9jcyBmb3Igc3RyZXNzIHRlc3QgZnVuY3Rpb25zCgkgIG5vdGlmeSBpcyBub3QgY2FsbGVkIHBlciBidWZmZXIsIGJ1dCB3aGVuIHRoZSB0aHJlYWQgaXMgZnJlZWQuCgkgIENvbW1lbnQgYWJvdXQgc2VyaWFsaXplZCBldmVudHMgYW5kIE9PQiBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB1cHN0cmVhbQoJICBldmVudHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDkKCjIwMTUtMTItMDggMTQ6MTg6MjEgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBVbnNldCBzaW5rX2ZvcndhcmRfcGFkIGJlZm9yZSB0ZWFyaW5nIGRvd24gc2lua19oYXJuZXNzCgkgIFNldCB0aGUgc2lua19mb3J3YXJkX3BhZCB0byBOVUxMIGJlZm9yZSB0ZWFyaW5nIGRvd24gc2lua19oYXJuZXNzIHRvCgkgIGF2b2lkIHRoYXQgdGhlIGhhcm5lc3MgdHJpZXMgdG8gZm9yd2FyZCBldmVudHMvcXVlcmllcyB0byBpdCB3aGlsZSBpdCdzCgkgIHRlYXJpbmcgZG93bi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwNAoKMjAxNS0wOS0yOSAxMjoxMjoyNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggdXAgZG9jcyB0byByZWZlcmVuY2UgZnVuY3Rpb25zIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDEKCjIwMTYtMDItMTAgMTQ6MDE6NTQgKzAxMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcGFzcyBhY3F1aXJlIHBhcmFtcyB0byBhbGxvY19idWZmZXIKCSAgV2hlbiBhbGxvY2F0aW5nIGEgbmV3IGJ1ZmZlciBpbiB0aGUgcG9vbCwgYm90aCB0aGUgZG9fYWxsb2NfYnVmZmVyKCkgYW5kIHRoZQoJICB2bWV0aG9kLCBhbGxvY19idWZmZXIoKSwgcmVjZWl2ZSB0aGUgcGFyYW1ldGVyIEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zLgoJICBOb25ldGhlbGVzcywgd2hlbiBkZWZhdWx0X2FjcXVpcmVfYnVmZmVyKCkgY2FsbHMgdGhlIGRvX2FsbG9jX2J1ZmZlcigpIGl0IGRvZXMKCSAgbm90IHBhc3MgdGhlIHJlY2VpdmVkIEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zLCBzbyB3aGVuIHRoZSB1c2VyIHBhc3MgdGhvc2UKCSAgcGFyYW1ldGVycyB0aGV5IGFyZSBpZ25vcmVkIGJ5IGFsbG9jX2J1ZmZlcigpIHZtZXRob2QuCgkgIFRoaXMgb25lLWxpbmVyIHBhdGNoIHBhc3MgdGhlIHJlY2VpdmVkIGFjcXVpcmUgcGFyYW1zIHRvIGRvX2FsbG9jX2J1ZmZlcigpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxODI0CgoyMDE2LTAyLTEwIDA5OjA5OjI5ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEZpeCB3YWl0L3Vuc2NoZWR1bGUgcmFjZQoJICBGaXhlcyBhIHJhY2Ugd2hlcmUgYW4gZW50cnkgaXMgc2V0IHRvIEJVU1kgaW4KCSAgZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcigpIGFuZCBpcyBVTlNDSEVEVUxFRCBiZWZvcmUKCSAgZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCgpIHN0YXJ0cyBwcm9jZXNzaW5nIGl0LiBUaGUKCSAgd2FrZXVwIGFkZGVkIGJ5IGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSgpIG11c3QgYmUgY2xlYW5lZCB1cC4KCSAgVHdvIHN0cmVzcyB0ZXN0cyBhcmUgYWRkZWQuIE9uZSB0ZXN0IHRoYXQgdHJpZ2dlcnMgdGhlIHNwZWNpZmljIGlzc3VlCgkgIGRlc2NyaWJlZCBhYm92ZS4gVGhlIHNlY29uZCBzdHJlc3NlcyB0aGUgY29kZSBwYXRoIHdoZXJlIGEgd2FpdCBpcwoJICByZXNjaGVkdWxlZCBiZWNhdXNlIHRoZSBwb2xsIHJldHVybmVkIGVhcmx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNTg2CgoyMDE2LTAyLTA1IDE1OjM0OjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGhhbmRsZSB1bnNjaGVkdWxlIG9mIGxhdGUgZW50cmllcwoJICBJZiB0aGUgY2xvY2tlbnRyeSBpcyB0b28gbGF0ZSBhbmQgaXMgdW5zY2hlZHVsZWQgYmVmb3JlIGl0IGdldHMKCSAgYSBjaGFuZ2UgdG8gZGV0ZWN0IGl0cyBsYXRlbmVzcyB0aGUgd2FrZXVwIGNvdW50IGFuZCB0aGUgcG9sbCBhcmUKCSAgdXNlZCBidXQgbmV2ZXIgcHJvcGVybHkgY2xlYW5lZCB1cC4gVGhpcyBsZWF2ZXMgaXQgaW4gYSBkaXJ0eSBzdGF0ZQoJICB0aGF0IGlzIGdvaW5nIHRvIG1lc3Mgd2l0aCB0aGUgbmV4dCBjbG9jayBlbnRyeSB3YWl0aW5nIHJlcXVlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNTg2CgoyMDE2LTAyLTA1IDE5OjA4OjE4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGV4dGVuZCB0aGUgQU1fVEVTVFNfRU5WSVJPTk1FTlQgZnJvbSBjaGVjay5tYWsKCSAgVG8gZ2V0IHRoZSBDS19ERUZBVUxUX1RJTUVPVVQgZGVmaW5lZCBmb3IgYWxsIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE0NzIKCjIwMTYtMDItMDUgMTg6MDE6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODZlNDY2MyB0byBiNjRmMDNmCgoyMDE2LTAyLTA0IDEwOjA3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc3RyYXkgZGlzY29udCBmbGFnIHNldCBvbiBvdXRnb2luZyBidWZmZXJzIGluIHB1c2ggbW9kZQoJICBXZSBoYXZlIG5vIGd1YXJhbnRlZXMgYWJvdXQgd2hhdCBmbGFncyBhcmUgc2V0IG9uIGJ1ZmZlcnMgd2UgdGFrZQoJICBvdXQgb2YgdGhlIEdzdEFkYXB0ZXIuIElmIHdlIHB1c2ggb3V0IG11bHRpcGxlIGJ1ZmZlcnMgZnJvbSB0aGUKCSAgZmlyc3QgaW5wdXQgYnVmZmVyICh3aGljaCB3aWxsIGhhdmUgZGlzY29udCBzZXQpLCBvbmx5IHRoZSBmaXJzdAoJICBidWZmZXIgd2UgcHVzaCBvdXQgc2hvdWxkIGJlIGZsYWdnZWQgYXMgZGlzY29udCwgbm90IGFsbCBvZiB0aGUKCSAgYnVmZmVycyBwcm9kdWNlZCBmcm9tIHRoYXQgZmlyc3QgaW5pdGlhbCBpbnB1dCBidWZmZXIuCgkgIEZpeGVzIGlzc3VlIHdoZXJlIHRoZSBmaXJzdCBmZXcgbXAzIGZyYW1lcy9zZWNvbmRzIG9mIGRhdGEgaW4gcHVzaAoJICBtb2RlIHdlcmUgc2tpcHBlZCBvciBnYXJibGVkIGluIHNvbWUgY2FzZXMsIGFuZCB0aGUgZGlzY29udCBmbGFncwoJICB3b3VsZCBhbHNvIHRyaXAgdXAgZGVjb2RlcnMgd2hpY2ggd2VyZSBnZXR0aW5nIGRyYWluZWQvZmx1c2hlZCBmb3IKCSAgZXZlcnkgYnVmZmVyLiBUaGlzIHdhcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiAxLjYgYXBwYXJlbnRseS4KCjIwMTYtMDItMDIgMTY6MzU6MzQgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogRG8gbm90IHVuc2V0IHVuaW5pdGlhbGxpemVkIEdWYWx1ZQoJICBJbiBjYXNlIHRoZSBwcm9wZXJ0eSB3YXMgbm90IGludGVycG9sbGFibGUgd2UgbWlnaHQgbmV2ZXIgaW5pdGlhbGl6ZQoJICB0aGUgR1ZhbHVlLCB3ZSBzaG91bGQgdGh1cyBuZXZlciB1bnNldCBpdC4KCjIwMTYtMDItMDIgMTY6MzQ6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgZG9jczogcHdnOiBmaXggbWlzc2luZyBlbmQgb2YgbGluZSBzZW1pY29sb24gaW4gY3VzdG9tIG1ldGEgZXhhbXBsZQoKMjAxNi0wMi0wMiAxMDo1NjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBhZGQgZ3VhcmQgdG8gbWFrZSBzdXJlIGdzdHJlYW1lciBpcyBpbml0aWFsaXplZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNDQ4CgoyMDE2LTAyLTAxIDE4OjQxOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIG5ldyBydHNwIHNlcnZlciBwbHVnaW4gbG9jYXRpb24gdG8gcGx1Z2lucyBwYXRoCgoyMDE2LTAxLTI1IDE2OjMwOjA0ICswOTAwICBIb29uSGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVHJ5IHRvIGdlbmVyYXRlIGNhcHMgb24gdGhlIHNyY3BhZCBiZWZvcmUgZm9yd2FyZGluZyBHQVAgZXZlbnQKCSAgVG8gY29uZmlndXJlIGRvd25zdHJlYW0gZWxlbWVudHMgYW5kIGNvbXBsZXRlIGluaXRpYWwgcHJlLXJvbGxpbmcsCgkgIGVuc3VyZSB3ZSBoYXZlIGRlZmF1bHQgb3V0cHV0IGNhcHMgYmVmb3JlIGZvcndhcmRpbmcgR0FQIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODk5CgoyMDE2LTAxLTI4IDIwOjE4OjU1IC0wNzAwICBBbGV4IEhlbnJpZSA8YWxleGhlbnJpZTI0QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogSW1wcm92ZSBFbmdsaXNoIGdyYW1tYXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTI3MwoKMjAxNi0wMS0yNyAxMjo0NToyMCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIGRvY3M6IGZpeCBhbiBvdGhlciB0eXBvIGluIGNsb2NrIGNoYXB0ZXIKCSAgU2hvY2tpbmdseSBJIG1pc3NlZCB0aGlzIGJpZ2dlciB0eXBvIGluIHRoZSBwcmV2aW9zIGZpeAoKMjAxNi0wMS0yNyAxMjoyNDo1NyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGNsb2NrIGNoYXB0ZXIKCjIwMTYtMDEtMjUgMTI6MDk6NTQgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czpnc3RpbmZvOiBGaXggc3RyaW5nIG1lbW9yeSBsZWFrCgkgIGluZm9fZm91cmNjIHRlc3QgbGVha3Mgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMDcxCgoyMDE2LTAxLTIzIDE2OjAwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IG1ha2Ugd29yayB3aXRob3V0IHJlZ2lzdHJ5CgoyMDE2LTAxLTIyIDEyOjUwOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2luZy5zaDoKCSAgdHJhY2VyOiByZW5hbWUgR1NUX1RSQUNFUl9QTFVHSU5TIGVudiB2YXIgdG8gR1NUX1RSQUNFUlMKCjIwMTYtMDEtMjEgMDg6MTI6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IGRvbid0IGxlYWsgdGhlIHNwZWMgc3RydWN0dXJlcwoJICBDaGFuZ2UgdGhlIGdzdF90cmFjZXJfcmVjb3JkX25ldygpIGFwaSB0byB0YWtlIHRoZSBwYXJhbWV0ZXJzIHRoZSBtYWtlIHRoZQoJICBzcGVjIHN0cnVjdHVyZSBkaXJlY3RseS4gVGhpcyBhbGxvd3MgdXMgdG8gb3duIHRoZSB0b3AtbGV2ZWwgc3RydWN0dXJlIGFuZAoJICBhbHNvIGNvbGxlY3QgdGhlIGFyZ3Mgc28gdGhhdCB3ZSBjYW4gdGFrZSBvd25lcnNoaXAgb2YgdGhlIHN1Yi1zdHJ1Y3R1cmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIxIDE1OjQ1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IGZpeCBjb21wYXJpc29uIGluIF9oYXNfY2xhc3Nlc3YoKQoJICBXZSdyZSBjb21wYXJpbmcgYSBwb2ludGVyIHR5cGUgd2l0aCAnXDAnIGhlcmUsIHdoaWNoCgkgIHByb2JhYmx5IGlzbid0IHJpZ2h0LCBhbmQgdGhlIGxvb3AgY29uZGl0aW9uIG1hZGUgc3VyZQoJICB0aGF0IGNsYXNzZXNbMF0gaXMgIT0gTlVMTCBhbHJlYWR5LCBzbyBpdCdzIHBvaW50bGVzcy4KCSAgV2FzIHByb2JhYnkgbWVhbnQgdG8gY2hlY2sgaWYgdGhlIHN0cmluZyBwb2ludGVkIHRvIGlzCgkgIG5vdCBlbXB0eSwgc28gbWFrZSBpdCBkbyB0aGF0IGluc3RlYWQuCgoyMDE2LTAxLTIwIDIwOjMyOjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0ZXN0L3RyYWNlcnJlY29yZDogdW5yZWYgb2JqZWN0cyBhbmQgZnJlZSBzdHJpbmcKCjIwMTYtMDEtMTggMjI6NDU6NTggKzAwMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB0ZXN0czogYWRkZWQgc3RyZXNzIHRlc3QgZm9yIGFzeW5jIG9yZGVyCgkgIEtlZXAgaW5zZXJ0aW5nIGFsYXJtcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0LiBEdWUgdG8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc1NwoJICBhbGFybSB0aHJlYWQgd2lsbCBnZXQgY29uZnVzZWQgYW5kIG5vdCBzZXJ2ZSB0aGVtIGluIG9yZGVyLgoKMjAxNi0wMS0xOCAxNjoyNToyMCArMDAwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGZpeGVkIHJhY2UgY29uZGl0aW9uIGluIGhhbmRsaW5nIGFsYXJtcwoJICBXaGVuIGNob29zaW5nIHRoZSBmaXJzdCBlbnRyeSBmcm9tIHRoZSBsaXN0LCBnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZAoJICBtdXN0IHNldCB0aGUgZW50cnkgc3RhdGUgdG8gYnVzeSBiZWZvcmUgcmVsZWFzaW5nIHRoZSBjbG9jayBsb2NrLiBPdGhlcndpc2UKCSAgYSBuZXcgZW50cnkgY291bGQgYmUgYWRkZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCBhbmQKCSAgZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQgd2lsbCBiZSB1bmF3YXJlIGFuZCBrZWVwIHdhaXRpbmcgb24gdGhlIGVudHJ5CgkgIGl0IGhhcyBhbHJlYWR5IGNob3Nlbi4KCSAgQWxzbyBpbXByb3ZlZCBtZXNzYWdlcyBhYm91dCBleHBlY3RlZCBzdGF0ZSBhbmQgYnVtcGVkIHRoZW0gdG8gRVJST1IgbGV2ZWwKCSAgdG8gZGV0ZWN0IHVuZXhwZWN0ZWQgc3RhdGUgY2hhbmdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc1NwoKMjAxNi0wMS0yMCAxMTowNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmVtb3ZlIGR1cGxpY2F0ZSBjaGVjawoKMjAxNi0wMS0yMCAwOTo1NzowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiB0d28gc21hbGwgZml4ZXMgZm9yIHdoZW4gYW4gZXhpc3RpbmcgcGFkIGlzIHJlcXVlc3RlZAoJICBVbmxvY2sgd2hlbiByZXR1cm5pbmcgTlVMTCBmcm9tIGdzdF9zaW5nbGVfcXVldWVfbmV3KCksIGFuZCBkb24ndAoJICBjcmFzaCB3aXRoIGRlYnVnIGxvZ2dpbmcgZW5hYmxlZCBpZiBOVUxMIGlzIHJldHVybmVkLgoJICBTcG90dGVkIGJ5IFN0ZXZlbiBIb3ZpbmcuCgoyMDE2LTAxLTIwIDEwOjAyOjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZW1vdmUgYSBoYWxmIGZpbmlzaGVzaCBzZW50ZW5jZSBpbiB0aGUgZG9jcwoJICBObyBpZGVhIHdoYXQgd2FzIHRoZSBpZGVhIGhlcmUuIFNPIGxldHMganVzdCBkcm9wIGl0LgoKMjAxNi0wMS0xOSAxNDozOTowNiArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBGaXggc2VsZi0+c3BlYyBzdHJ1Y3R1cmUgaW52YWxpZCBmcmVlCgkgIHNlbGYtPnNwZWMgaXMgZ290IHVzaW5nIGdfdmFsdWVfZ2V0X2JveGVkKCksIHdoaWNoIGlzIGEgdHJhbnNmZXIgbm9uZSBmdW5jdGlvbi4KCSAgU28gdGhlIHNhbWUgc2hvdWxkIG5vdCBiZSBmcmVlZCwgd2hpY2ggaXMgcmVzdWx0aW5nIGluIHdyb25nIGJlaGF2aW9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIwIDA5OjI1OjQ0ICswMTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IEluaXRpYWxpc2UgZmxhZ3MgdG8gYXZvaWQgd3JvbmcgY29tcGFyaXNpb24KCSAgR3N0VHJhY2VyVmFsdWVGbGFncyBpcyBub3QgYmVpbmcgaW5pdGlhbGl6ZWQgYW5kIHRoZSBzYW1lIGNvdWxkIHJlc3VsdCBpbiB3cm9uZwoJICBjb21wYXJpc2lvbiBhbmQgYmVoYXZpb3IuIEhlbmNlIGluaXRpYWxpemluZyBpdCB0byBHU1RfVFJBQ0VSX1ZBTFVFX0ZMQUdTX05PTkUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA4MjEKCjIwMTYtMDEtMjAgMDk6MTg6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0cy9nc3QvaW5mbzogRml4IG1lc3NhZ2VzIGdsaXN0IG1lbW9yeSBsZWFrCgoyMDE2LTAxLTE5IDE1OjAzOjU1ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0ZXN0czogdHJhY2VycmVjb3JkOiBGaXggbWVzc2FnZXMgZ2xpc3QgbWVtb3J5IGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0xOCAyMToxMjo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB0cmFjZXI6IGFkZCBhbiBpbnRlcm5hbCBwdHIgZm9ybWF0IGZvciB0cmFjZXIgc2VyaWFsaXNhdGlvbgoJICBXZSBuZWVkIHRvIGFwcGx5IHRoZSBzdHJpbmcgd3JhcHBpbmcgdGhhdCB2YWx1ZSBzZXJpYWxpc2F0aW9uIGRvZXMgYWxzbyBpbiB0aGUKCSAgdHJhY2VyIGxvZ2dpbmcsIG90aGVyd2lzZSB3ZSBjYW4ndCBwYXJzZSBuZXN0ZWQgc3RydWN0dXJlcy4KCjIwMTYtMDEtMTggMjE6MDk6NDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHRyYWNlci9nc3RzdGF0czogZml4IG1pc21hdGNoIGJldHdlZW4gJy5jbGFzcycgYW5kIHRyYWNlciBhcmdzCgkgIENsZWFuIHVwIGZyb20gdGhlIHJlY2VudCBjaGFuZ2VzLiBUaGUgbG9nZ2luZyBkZXNjcmlwdGlvcnMgZGlkIG5vdCBtYXRjaCB3aGF0IHdlIGxvZ2dlZC4KCjIwMTUtMTEtMTIgMDE6MTQ6MzQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdXNlLXRhZ3MtYml0cmF0ZSBwcm9wZXJ0eQoJICBUaGUgdXNlLXRhZ3MtYml0cmF0ZSBwcm9wZXJ0eSBtYWtlcyBxdWV1ZTIgbG9vayBhdAoJICB0YWcgZXZlbnRzIGluIHRoZSBzdHJlYW0gYW5kIGV4dHJhY3QgYSBiaXRyYXRlIGZvciB0aGUKCSAgc3RyZWFtIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIGEgZHVyYXRpb24gZm9yIGJ1ZmZlcnMKCSAgdGhhdCBkb24ndCBoYXZlIG9uZSBleHBsaWNpdGx5IHNldC4KCSAgVGhpcyBsZXRzIHF1ZXVlMiBzZW5zaWJseSBidWZmZXIgdG8gYSB0aW1lIHRocmVzaG9sZAoJICBmb3IgYW55IGJ5dGVzdHJlYW0gZm9yIHdoaWNoIHRoZSBnZW5lcmFsIGJpdHJhdGUgaXMga25vd24uCgoyMDE2LTAxLTE5IDEyOjA0OjE2ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IGF2b2lkIG92ZXJ3cml0aW5nIHZhbHVlCgkgIHJlcyB2YWx1ZSBpcyBvdmVyd3JpdHRlbiwgcmVtb3ZlIHRoZSBhc3NpZ25tZW50LgoJICBwcml2X19nc3Rfc3RydWN0dXJlX2FwcGVuZF90ZW1wbGF0ZV90b19nc3RyaW5nICgpIGFsd2F5cyByZXR1cm5zIFRSVUUKCSAgYW55d2F5LgoJICBDSUQgMTM0OTY0NQoKMjAxNi0wMS0xOSAxMToxMToyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgIGJlbmNobWFya3M6IERpc2FibGUgdHJhY2Vyc2VyaWFsaXplIGJlbmNobWFyayBvbiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgbm8gZ3N0LWRlYnVnZ2luZyA9PiBubyB0cmFjZXIgbG9nZ2luZyAoYW5kIG5vIHBvbnkgZWl0aGVyKQoKMjAxNi0wMS0xOSAxMToxMDozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJICB0cmFjZXJyZWNvcmQ6IERpc2FibGUgbG9nZ2luZyBpZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgTWFrZSB0aGUgZ3N0X3RyYWNlcl9yZWNvcmRfbG9nKCkgYSBuby1vcCBpZiB0aGUgZ3N0LWRlYnVnIHN1YnN5c3RlbQoJICBpcyBkaXNhYmxlZC4KCjIwMTYtMDEtMTggMTk6MTc6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmYWlsIGZsYWcgZGVzZXJpYWxpemF0aW9uIG9uIGludmFsaWQgZmxhZyBuYW1lcwoKMjAxNi0wMS0xOCAxOToxMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IHN0cnVjdHVyZTogZml4IHdyb25nIGZsYWcgbmFtZSBpbiBkZXNlcmlhbGl6YXRpb24gdGVzdAoJICBUaGVyZSBpcyBubyBHU1RfU0VFS19GTEFHU19OT05FIG9ubHkgR1NUX1NFRUtfRkxBR19OT05FIChidXQKCSAgdGhlIGRlc2VyaWFsaXplciBzaWxlbnRseSBza2lwcyBiYWQgZmxhZyBuYW1lcyBjdXJyZW50bHkpLgoKMjAxNi0wMS0xNyAyMzo0OToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICB0cmFjZXJzOiBmaXggdGhyZWFkLWlkIGNhc3RzIHRvIDY0LWJpdCBpbnRzIG9uIDMyLWJpdCBzeXN0ZW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NjIKCjIwMTYtMDEtMTggMTA6MTM6MDIgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmL3VucmVmIG5ldyBlbnVtIHR5cGVzIGluIGdzdF9pbml0L2RlaW5pdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzY3CgoyMDE2LTAxLTE3IDAwOjA4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgbmV3IGZsYWdzIGdldF90eXBlKCkKCjIwMTYtMDEtMTYgMjI6NDM6MjMgKzAxMDAgIFBoaWxpcCBWYW4gSG9vZiA8cGhpbGlwQGNvZGVtaW5kZWQuYmU+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyLmg6IGRvbid0IGluY2x1ZGUgcHJpdmF0ZSBub2luc3QgaGVhZGVyIGdzdHRyYWNlcnV0aWxzLmggaW4gYSBwdWJsaWMgaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3MzIKCjIwMTYtMDEtMTYgMjE6MjQ6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNpbmcuc2g6CgkgIGJlbmNobWFyazogaW1wcm92ZSBzY3JpcHQKCSAgVXNlIGEgdGVtcCBmaWxlIGZvciB0aGUgbG9nIGFuZCBmaXggb25lIGVudi12YXIuCgoyMDE2LTAxLTE2IDIxOjIzOjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlci9zdGF0czogdXNlIHRoZSByaWdodCBsb2cgdGVtcGxhdGUKCSAgV2hlbiBwb3J0aW5nIHdlIHVzZWQgdGhlIHdyb25nIHJlY29yZCAoY29weSBhbmQgcGFzdGUpLgoKMjAxNi0wMS0xNiAyMTowNDo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSAgdHJhY2VyOiB1cGRhdGUgdGhlIGRvY3MKCSAgQWRkIHRoZSBuZXcgZW51bSBhbmQgZmxhZ3MuIFJlbW92ZSB0aGUgR3N0VHJhY2VyUmVjb3JkUHJpdmF0ZS4KCjIwMTYtMDEtMTYgMjE6MDI6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgZ3N0LXN0YXRzOiB1cGRhdGUgdG8gbGF0ZXN0IHRhcmNlciBhcGkKCSAgVGhlIHRocmVhZC1pZHMgYXJlIHNlcmlhbGl6ZWQgYXMgdWludDY0LiBUaGUgJ2VsZW0taXgnIGdvdCBjaGFuZ2VkIHRvCgkgICdlbGVtZW50LWl4Jy4gTWFrZSB0aGUgY29kZSBhIGJpdCBtb3JlIHJvYnVzdC4KCjIwMTYtMDEtMTYgMTg6NTU6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogdXNlIHRoZSBuZXcgZmxhZ3MgdG8gY3JlYXRlIHRoZSBvcHRpb25hbCBmaWVsZCBpbiB0aGUgZm9ybWF0IHN0cmluZwoJICBUaGlzIHNwYXJlcyB1cyBleHBsaWNpdGx5IGxpc3RpbmcgdGhlIGZpZWxkIGluIHRoZSBzcGVjLiBhbmQgdGh1cyBoaWRlIHRoaXMKCSAgaW1wbGVtZW50YXRpb24gZGV0YWlsLgoKMjAxNi0wMS0xNiAxODo1MjozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBhZGQgYSBHc3RUcmFjZXJWYWx1ZUZsYWdzIGFuZCByZXBsYWNlIHN0cmluZ3MKCSAgVGhpcyBhbGxvd3MgdXMgdG8gZG9jdW1lbnQgdGhlIGZsYWdzIGFuZCBtYWtlcyB0aGUgbG9ncyBhIGJpdCBzbWFsbGVyLgoKMjAxNi0wMS0xNiAxNjowMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCBmdW5jdGlvbiBndWFyZCB0byBnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDcwNAoKMjAxNi0wMS0xNiAxNDo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ3N0Lmg6IERvbid0IHNwZXcgd2FybmluZ3MgaWYgR1NUX1VTRV9VTlNUQUJMRV9BUEkgaXMgbm90IGRlZmluZWQKCSAgT25seSBoaWRlIEdzdFRyYWNlciBhbmQgR3N0VHJhY2VyUmVjb3JkIEFQSSBiZWhpbmQgR1NUX1VTRV9VTlNUQUJMRV9BUEksCgkgIGJ1dCBkb24ndCBzcGV3IGFueSB3YXJuaW5ncywgb3RoZXJ3aXNlIGV2ZXJ5b25lIGhhcyB0byBkZWZpbmUgdGhpcwoJICB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCSAgVGhpcyByZXZlcnRzIHBhcnRzIG9mIGNvbW1pdCA4OWVlNWQ5NDhkZmY1NjAyMDRlNmVkZDIxMGM0NGVkMmI4NjU0YjhlLgoKMjAxNi0wMS0xNiAxMzozMDozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2luZy5zaDoKCSAgYmVuY2htYXJrczogdXBkYXRlIHRoZSB0cmFjZXIgYmVuY2htYXJrIGFuZCBhZGQgYSBzaGVsbCBiZW5jaG1hcmsKCjIwMTYtMDEtMTYgMTM6Mjg6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzL2Rlc2lnbjogdXBkYXRlIHRyYWNlcnNwZWMgZXhhbXBsZXMKCjIwMTYtMDEtMTYgMTM6Mjc6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgZG9jcy9kZXNpZ246IHNwZWxsIGNoZWNraW5nCgoyMDE2LTAxLTE2IDEzOjI0OjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlcjogYWRkIGEgR0ZsYWcgZm9yIHRoZSB0cmFjZXIgc2NvcGUKCSAgUG9ydCBhbGwgdHJhY2Vycy4gQWRkIHRoZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSBmbGFnIHRvIHRoZSBpbnRlcm5hbCBDRkxBR1Mgc28KCSAgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHNwZWNpZnkgdGhpcyBmb3IgZ2lyLCBkb2NzLCBta2VudW0sIC4uLgoKMjAxNi0wMS0xNiAxMDo0ODowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBNYWtlIGFjY2VzcyB0byB0aGUgYWN0aXZlIHBhZCBhbmQgbGFzdCBidWZmZXIgdGhyZWFkLXNhZmUKCSAgQm90aCBjYW4gYmUgbW9kaWZpZWQgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLgoKMjAxNi0wMS0xNiAxMDo0NzozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBOb3RpZnkgd2hlbiB0aGUgYWN0aXZlLXBhZCBwcm9wZXJ0eSBpcyBjaGFuZ2luZwoKMjAxNi0wMS0xMiAxNDo1OTowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdHJhY2VycmVjb3JkOiBhZGQgYSBsb2cgcmVjb3JkIGNsYXNzCgkgIFdlIHVzZSB0aGlzIGNsYXNzIHRvIHJlZ2lzdGVyIHRyYWNlciBsb2cgZW50cnkgbWV0YWRhdGEgYW5kIGJ1aWxkIGEgbG9nCgkgIHRlbXBsYXRlLiBXaXRoIHRoZSBsb2cgdGVtcGxhdGUgd2UgY2FuIHNlcmlhbGl6ZSBsb2cgZGF0YSB2ZXJ5IGVmZmljaWVudGx5LgoJICBUaGlzIGFsc28gc2ltcGxpZmllcyB0aGUgbG9nZ2luZyBjb2RlLCBzaW5jZSB0aGF0IGlzIG5vdyBhIHNpbXBsZSB2YXJhcmdzCgkgIGZ1bmN0aW9uIHRoYXQgaXMgbm90IGV4cG9zaW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLgoJICBBZGQgZG9jcyBmb3IgdGhlIG5ldyBjbGFzcyBhbmQgYmFzaWMgdGVzdHMuCgkgIFJlbW92ZSB0aGUgcHJldmlvdXMgbG9nIGhhbmRsZXIuCgkgIEZpeGVzICM3NjAyNjcKCjIwMTYtMDEtMTUgMDk6NDg6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBnX3NvY2tldF9jbG9zZSgpCgkgIENJRCAxMzQ4NDUyCgoyMDE2LTAxLTE1IDA5OjAyOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBGcmVlIGRhdGEgYWZ0ZXIgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgbGlzdAoJICBEb2VzIG5vdCBtYXR0ZXIgaGVyZSBidXQgbWFrZXMgQ292ZXJpdHkgbW9yZSBoYXBweS4gSXQgY2FuJ3QKCSAga25vdyB0aGF0IGdfbGlzdF9yZW1vdmUoKSBvbmx5IGxvb2tzIGF0IHRoZSBwb2ludGVyIHZhbHVlIGJ1dAoJICBkb2VzIG5vdCBkZXJlZmVyZW5jZSBpdC4KCSAgQ0lEIDEzNDg0NTQKCjIwMTYtMDEtMTUgMDA6MzA6NTkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIEdzdERldmljZU1vbml0b3I6IENsYXJpZnkgdGhlIGJlaGF2aW91ciBvZiBnc3RfZGV2aWNlX21vbml0b3JfYWRkX2ZpbHRlcgoKMjAxNi0wMS0xNSAwMDoyNTowNSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgR3N0RGV2aWNlTW9uaXRvcjogRG9uJ3QgcmVtb3ZlIHVubWF0Y2hlZCBjbGFzcyBmaWx0ZXJzCgkgIElmIG5vIHByb3ZpZGVycyBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzIGNvdWxkIGJlIGZvdW5kLCB0aGVuIHJlbW92aW5nIHVubWF0Y2hlZAoJICBmaWx0ZXJzIHdvdWxkIGNhdXNlIGFsbCBkZXZpY2VzIHRvIGJlIHJldHVybmVkIGluc3RlYWQgd2hpY2ggaXMgbm90IGF0IGFsbCB3aGF0CgkgIHRoZSB1c2VyIGludGVuZGVkLiBXZSBzdGlsbCByZXR1cm4gMCBmb3IgdW5tYXRjaGVkIGZpbHRlcnMuCgoyMDE2LTAxLTEzIDIxOjMyOjIwICswMDAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRml4IEdFcnJvciBtZW1vcnkgbGVhayBpbiBoYW5kbGluZyBOVFAgcmVzcG9uc2UKCSAgRXJyb3Igd2FzIG5vdCByZWxlYXNlZCBpZiBnc3RfbnRwX3BhY2tldF9yZWNlaXZlIGZhaWxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDU5OAoKMjAxNi0wMS0xMyAxMzoxMDoxMCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgQVBJIGFkZGl0aW9ucwoKMjAxNi0wMS0xMSAxNjozMTozOSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZXhwb3NlIGRlYnVnZ2luZyBwcmludGYgZnVuY3Rpb25zCgkgIE90aGVyIGdzdCBsaWJyYXJpZXMgYW5kL29yIGVsZW1lbnRzIG1heSB3YW50IHRvIGFkZCBzb21lIGRlYnVnIGxvZ2dpbmcgdG8gYW4KCSAgZXh0ZXJuYWwgZGVidWcgc3lzdGVtIG9yIGltcGxlbWVudCBkZWxheWVkIGRlYnVnZ2luZyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KCSAgRXhwb3NlcyB0aGUgaW50ZXJuYWwgX19nc3RfdmFzcHJpbnRmIGFzIGdzdF9pbmZvX3Zhc3ByaW50ZiB3aGljaCBoYXMgYSBmYWxsYmFjawoJICB0byBnX3Zhc3ByaW50ZiBpZiB0aGUgZGVidWcgc3lzdGVtIGlzIGRpc2FibGVkLgoJICBBUEk6IGdzdF9pbmZvX3Zhc3ByaW50ZgoJICBBUEk6IGdzdF9pbmZvX3N0cmR1cF92cHJpbnRmCgkgIEFQSTogZ3N0X2luZm9fc3RyZHVwX3ByaW50ZgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNDIxCgoyMDE2LTAxLTExIDIxOjE3OjI1ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBzZXQgZHVyYXRpb24vcG9zaXRpb24gcXVlcnkgdmFsdWVzIGluIGNhc2Ugb2YgcXVlcnkgc3VjY2VzcwoJICBDdXJyZW50bHksIHRoZSBxdWVyeSB2YWx1ZXMgYXJlIGJlaW5nIHNldCBldmVuIGlmIHRoZSBxdWVyeSBpdHNlbGYgd2FzCgkgIGRldGVybWluZWQgdG8gaGF2ZSBmYWlsZWQuIEZpeCB0aGlzIHRvIGVuc3VyZSB0aGUgdmFsdWVzIGFyZSBvbmx5IHNldCBpbgoJICBjYXNlIG9mIGEgcXVlcnkgc3VjY2Vzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDQ3OQoKMjAxNi0wMS0xMCAxNDozMDowNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBjb2RlIGNsZWFuIHVwcwoJICBEcm9wIHNvbWUgdHJhaWxpbmcgd2hpbGVzcGFjZS4gTWFrZSBmaWVsZCBvcmRlciBjb25zaXN0ZW50LgoKMjAxNi0wMS0wOCAyMzozNTo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogZml4IGNvcHknbidwYXN0IG9mIHRoZSBmaWxlLWRlc2NyaXB0aW9uIGNvbW1lbnQKCjIwMTYtMDEtMDggMjM6MDY6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogYWRkIGEgYmVuY2htYXJrIGZvciBiZ28vNzYwMjY3CgkgIEJpZyBzdXByaXNlIC0gR3N0U3RydWN0dXJlIGlzIGZhc3RlciB0aGFuIEdWYXJpYW50LgoKMjAxNS0wMy0xMCAxMzowNzoxOCArMDkwMCAgSG9vbkhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IGltcHJvdmUgZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1OTM5CgoyMDE2LTAxLTA4IDE5OjI1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIGJ1ZmZlciBsaXN0IHN1cHBvcnQgdG8gR1NUX1BUUl9GT1JNQVQKCjIwMTUtMTEtMjUgMTc6MzY6MjUgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sc291cmNlOiBmaXggR2V0VmFsdWUgYW5kIEdldFZhbHVlQXJyYXkgZG9jdW1lbnRhdGlvbgoJICBHc3RDb250cm9sU291cmNlR2V0VmFsdWUoKSB2YWx1ZSBwYXJhbWF0ZXIgaXMgYSBnZG91YmxlLCBub3QgYSBHVmFsdWUKCSAgYW5kIEdzdENvbnRyb2xTb3VyY2VHZXRWYWx1ZUFycmF5IGRvZXNuJ3QgcmV0dXJuIGEgR3N0VmFsdWVBcnJheSBidXQKCSAgYW4gYXJyYXkgb2YgZG91YmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NjY4CgoyMDE2LTAxLTA3IDIzOjAzOjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBoYXJtb25pemUgdGhlIHF1ZXJ5IGhvb2tzCgkgIEluIHBvc3QgaG9va3MgYWx3YXlzIHBhc3MgdGhlIHJldHVybiB2YWx1ZSBhcyB0aGUgbGFzdCBwYXJhbS4gUGFzcyB0aGUgcXVlcnkKCSAgYWxzbyB0byBwb3N0IGhvb2tzIHNpbmNlIGl0IGlzIHN0aWxsIGFsaXZlLgoKMjAxNi0wMS0wNyAyMjo0NzozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzL3N0YXRzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXJzIHRvIGNhbGxiYWNrIGZ1bmN0aW9ucwoKMjAxNi0wMS0wNyAyMjo0Mzo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXJ1dGlsczogdXBkYXRlICNlbmRpZiBjb21tZW50CgkgIFdlIGNoYW5nZWQgdGhlIGRlZmluZSwgYnV0IGxlZnQgdGhlIGNvbW1lbnQgaW5jb25zaXN0ZW50LgoKMjAxNi0wMS0wNyAxOToxMzowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VydXRpbHM6IGRvY3VtZW50IHRoZSB0cmFjZXIgaG9vayBmdW5jdGlvbnMKCSAgRG9jdW1lbnQgYWxsIHRyYWNlciBob29rIGZ1bmN0aW9uIHBvaW50ZXIgdG9nZXRoZXIgd2l0aCB0aGUgZGV0YWlsIHN0cmluZyB0aGF0CgkgIG9uZSBuZWVkcyB0byB1c2Ugd2l0aCBnc3RfdHJhY2luZ19yZWdpc3Rlcl9ob29rKCkuCgoyMDE2LTAxLTA3IDE4OjQ2OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcjogVXNlIEdTVF9ESVNBQkxFX0dTVF9UUkFDRVJfSE9PS1MgaW5zdGVhZCBvZiBHU1RfRElTQUJMRV9HU1RfREVCVUcgZXZlcnl3aGVyZQoJICBQcmV2aW91c2x5IHdlIHVzZWQgdGhlIGxhdHRlciBvbmUgc3RpbGwgZm9yIHRoZSB0cmFjZXIgdXRpbGl0eSBjb2RlLCBjYXVzaW5nCgkgIHVuZGVmaW5lZCByZWZlcmVuY2VzIGluIHRoZSByZXN1bHRpbmcgYmluYXJ5IGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIHdhcwoJICBkaXNhYmxlZCBidXQgdGhlIHRyYWNlciBzeXN0ZW0gbm90LgoKMjAxNi0wMS0wNyAxODo0MToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICBnc3Q6IFJlbmFtZSBfcHJpdl9nc3RfaW5mb19zdGFydF90aW1lIHRvIF9wcml2X2dzdF9zdGFydF90aW1lIGFuZCBpbml0aWFsaXplIGl0IGNlbnRyYWxseQoJICBJdCdzIHVzZWQgYnkgdGhlIGRlYnVnZ2luZyBhbmQgdHJhY2VyIHN1YnN5c3RlbSBhbmQgaW4gdmFyaW91cyBmaWxlcywgbWFrZSBpdAoJICBhIGNlbnRyYWwgdGhpbmcgdGhhdCBpcyBpbml0aWFsaXplZCBpbmRlcGVuZCBvZiB0aGUgZXhpc3RlbmNlIG9mIHRob3NlCgkgIHN1YnN5c3RlbXMuCgoyMDE2LTAxLTA2IDIxOjQyOjMwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgd2luMzIgZXhwb3J0cwoJICBSZW1vdmUgdGhlIF9ob29rX2lkKCkgbWV0aG9kcyB3ZSBtYWRlIGludGVybmFsIGluIHRoZSBwcmV2IGNvbW1pdC4KCjIwMTYtMDEtMDYgMjE6MTc6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbG9nIGEgd2FybmluZyBpZiB3ZSBjYW4ndCBzZXJpYWxpemUgYSBmaWVsZAoJICBUaGUgZnVuY3Rpb24gYWx3YXlzIHJldHVybnMgVFJVRSByaWdodCBub3csIHNvIGF0bGVhc3QgbG9nIHNvbWV0aGluZy4KCjIwMTUtMTAtMDYgMTI6NDk6MDAgKzAwMDAgIEFsZWtzYW5kZXIgV2FiaWsgPGF3YWJpa0BvcGVyYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IHF1ZXVlMjogYWRkIHRlc3QgZm9yIGZpbGwgbGV2ZWwgYXJpdGhtZXRpYyBvdmVyZmxvdwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1OTcxCgoyMDE2LTAxLTA2IDE5OjUxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCBjYWxjdWxhdGluZyBmaWxsIGxldmVscyBtdWx0aXBsZSB0aW1lcwoJICBNYWNybyBleHBhbnNpb24gbWVhbnMgd2UgbWlnaHQgY2FsY3VsYXRlIHRoZSBmaWxsIGxldmVsIG9uY2UKCSAgZm9yIHRoZSBjaGVjayBhbmQgdGhlbiBwb3NzaWJseSBhZ2FpbiBmb3IgdGhlIHJldHVybiB2YWx1ZS4KCjIwMTYtMDEtMDYgMTk6NTA6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmaWxsIGxldmVsIGFyaXRobWV0aWMgb3ZlcmZsb3cgd2l0aCBsYXJnZSB2YWx1ZXMKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFsZWtzYW5kZXIgV2FiaWsgPGF3YWJpa0BvcGVyYS5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU5NzEKCjIwMTYtMDEtMDYgMjA6NDE6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHRyYWNlcjogbWFrZSBnc3RfdHJhY2luZ19yZWdpc3Rlcl9ob29rX2lkIHN0YXRpYwoJICBXZSBkb24ndCBuZWVkIHRvIGV4cG9zZSB0aGlzIGFzIHB1YmxpYyBBUEkuIENoYW5nZSB0aGUgb25seSBwbHVnaW4gdGhhdCB3YXMKCSAgdXNpbmcgaXQuCgoyMDE2LTAxLTA2IDE4OjU2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRlc2lnbjogdXBkYXRlIGxpc3Qgb2YgZGlzdGVkIGZpbGVzIGFmdGVyIGZpbGUgcmVuYW1lCgoyMDE2LTAxLTA2IDE5OjQyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBIaWRlIE5UUCBwYWNrZXQgQVBJIGFuZCBhZGQgR1NUX1BUUF9TVEFUSVNUSUNTXyogZGVmaW5lcyB0byB0aGUgZG9jcwoKMjAxNi0wMS0wNiAxODoxNzoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBkb2NzOiByZW1vdmUgcGFyZW50IGRvY3MgZm9yIEdzdFB0cENsb2NrCgkgIEluc3RhbmNlIGRvY3MgZG9uJ3QgbmVlZCB0byBkb2N1ZW1udCB0aGUgcGFyZW50IChmaXJzdCBtZW1iZXIpLgoKMjAxNi0wMS0wNiAxODoxNDowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogY2xlYW51cCAtdW51c2VkLnR4dCByZXBvcnQgZm9yIGxpYnMKCSAgVGhlIElHTk9SRV9IX0ZJTEVTIGNhbiBvbmx5IGNvbnRhaW4gZmlsZXMgb3IgZGlycy4KCjIwMTYtMDEtMDYgMTc6NTg6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBjb3JlIGFwaSB0byB0aGUgcmlnaHQgc2VjdGlvbnMKCSAgQWRkIG5ldyBhbmQgZG9jdW1lbnRlZCBhcGkgcmVwb3J0ZWQgaW4gLXVudXNlZC50eHQgdG8gLXNlY3Rpb24udHh0LgoKMjAxNi0wMS0wNiAxNzo1NDo0NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb2NzOiBleGNsdWRlIG1vcmUgaGVhZGVyIGZyb20gZG9jLXNjYW4KCSAgRXhjbHVkZSBnc3QvcHJpbnRmLyouaCBhbmQgYSBmZXcgZ2VuZXJhdGVkIC5oIGZpbGVzIGZyb20gdGhlIGFwaS1zY2FuLiBUaGlzCgkgIG1ha2VzIC11bnVzZWQudHh0IHJlcG9ydCBmaWxlIGZyb20gZ3RrZG9jIHVzZWZ1bCBhZ2Fpbi4KCjIwMTYtMDEtMDYgMTY6MjE6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGFkanVzdC91bmFkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgaGF2ZSBhIGNsb2NrIHBhcmFtZXRlciBidXQgaXQncyB1c2VsZXNzCgkgIERvY3VtZW50IHRoaXMsIGZvciAyLjAgd2Ugc2hvdWxkIGp1c3QgcmVtb3ZlIHRoYXQgcGFyYW1ldGVyLgoKMjAxNi0wMS0wNiAxNjoxOToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgZ3N0X2Nsb2NrX3VuYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKQoJICBXZSBhbHJlYWR5IGhhdmUgZ3N0X2Nsb2NrX2FkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgYW5kCgkgIGdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCgpLCBoYXZpbmcgdGhlIG90aGVyIHZhcmlhbnQgaXMgdXNlZnVsLgoKMjAxNi0wMS0wNiAxMzozMzozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcGFkLWV2ZW50IGZ1bmN0aW9uIHRvIHRoZSBkb2NzCgoyMDE2LTAxLTA2IDEzOjI2OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgZG9jczogaGlkZSBpbnRlcm5hbCB0cmFjZXIgYXBpIGZyb20gZG9jcwoJICBBbHNvIGFkZHJlc3Mgd2FybmlnbnMgcmVnYXJkaW5nIHRoZSB1bnN0YWJsZSB0cmFjZXIgYXBpLgoKMjAxNi0wMS0wNiAxMjo0NzoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICBkb2NzOiBhZGQgdGhlIHRyYWNlciB0byB0aGUgZG9jcwoJICBBZGQgR3N0VHJhY2VyIGFuZCBHc3RUcmFjZXJGYWN0b3J5IHRvIHRoZSBjb3JlIGRvY3MuCgoyMDE2LTAxLTA2IDExOjUyOjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZG9jczogcmVuYW1lIHRoZSB0cmFjZXIgZG9jIHRvIHBhcnQgc2luY2UgaXQgaXMgbm93IG1lcmdlZAoKMjAxNi0wMS0wNiAxMTozNTo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgdHJhY2VydXRpbHM6IG1vdmUgaGVhZGVyIHRvIG5vaW5zdCBzZWN0aW9uCgkgIFRoaXMgaXMgaW50ZXJuYWwgY29kZSwgdGhhdCBpcyBvbmx5IHRvIGJlIHVzZWQgaW4gY29yZS4KCjIwMTYtMDEtMDYgMTE6MzE6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICBjb25maWd1cmU6IGFkZCBhIG5ldyBvcHRpb24gdG8gZGlzYWJsZSB0aGUgdHJhY2VyIGhvb2tzCgkgIFRoaXMgd2FzIHByZXZpb3VzbHkgZG9uZSB2aWEge2VuYWJsZSxkaXNhYmxlfS1nc3QtZGVidWcuIFNpbmNlIGJvdGggc3Vic3lzdGVtcwoJICBhcmUgaW5kZXBlbmRlbnQgaGF2aW5nIHNlcGFyYXRlIG9wdGlvbnMgaXMgYmV0dGVyLgoKMjAxNi0wMS0wNSAxNjo0NDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgY2xvY2s6IEZpeCB0eXBvCgkgIGNsb2NrZWQgLT4gY2xvY2sKCjIwMTYtMDEtMDUgMTQ6NTk6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IERpc2Nvbm5lY3QgdGhlICJzeW5jZWQiIHNpZ25hbCBoYW5kbGVyIGZyb20gdGhlIGludGVybmFsIGNsb2NrCgkgIE5vdCBmcm9tIHRoZSBleHRlcm5hbCBvbmUuCgoyMDE2LTAxLTA1IDEzOjU3OjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogcmVuYW1lIG5ldyBjdWJpYyBpbnRlcnBvbGF0aW9uIG1vZGUKCSAgRG9uJ3QgYWJicmV2aWF0ZSB0byAnbW9ubycgYW5kIHVzZSAnbW9ub3RvbmljJyBpbnN0ZWFkLgoKMjAxNi0wMS0wNSAxNDoyMzoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogRG9uJ3QgYWxsb3cgc2V0dGluZyBhbiB1bnN5bmNlZCBjbG9jayBhcyBtYXN0ZXIKCjIwMTYtMDEtMDUgMTQ6MjE6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IERvbid0IHRyeSB0byBzbGF2ZSB1bnN5bmNlZCBjbG9ja3MKCSAgVGhleSB3aWxsIHJldHVybiB1c2VsZXNzIHZhbHVlcyBmcm9tIGdldF90aW1lKCkuCgoyMDE2LTAxLTA1IDEzOjQxOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG50cDogVGhlIGNsb2NrIGluaGVyaXRzIGZyb20gR3N0TmV0Q2xpZW50Q2xvY2ssIG5vdCBqdXN0IEdzdFN5c3RlbUNsb2NrCgoyMDE2LTAxLTA0IDE3OjE4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBEZXN0cm95IGEgY2FjaGVkIGNsb2NrIDYwIHNlY29uZHMgYWZ0ZXIgaXRzIGxhc3QgdXNlCgkgIFRoZXJlJ3Mgbm90IG11Y2ggbG9zdCBieSBoYXZpbmcgdGhlIGNsb2NrIGlkbGUgYXJvdW5kIGEgYml0IGxvbmdlciBidXQgaXQgd2lsbAoJICBwb3RlbnRpYWxseSBhbGxvdyBhbnlib2R5IHdhbnRpbmcgdG8gdXNlIHRoZSBzYW1lIGNsb2NrIHNlcnZlciBhZ2FpbiB0byBzeW5jCgkgIG11Y2ggZmFzdGVyLgoKMjAxNi0wMS0wNCAxNjozMToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogT25seSBldmVyIHJ1biBvbmUgY2xvY2sgYWdhaW5zdCBhIHNwZWNpZmljIHNlcnZlcgoJICBJZiBtdWx0aXBsZSBuZXQvTlRQIGNsb2NrcyBhcmUgY3JlYXRlZCBmb3IgdGhlIHNhbWUgc2VydmVyLCByZXVzZSB0aGUgc2FtZQoJICBpbnRlcm5hbCBjbG9jayBmb3IgYWxsIG9mIHRoZW0uIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IGZsb29kIHRoZSBzZXJ2ZXIKCSAgd2l0aCB0b28gbWFueSByZXF1ZXN0cyBhbmQgYWxzbyBwb3NzaWJseSBhbGxvd3MgZmFzdGVyIHN5bmNocm9uaXphdGlvbiBpZgoJICB0aGVyZSBhbHJlYWR5IHdhcyBhbiBlYXJsaWVyIHN5bmNocm9uaXplZCBjbG9jayB3aGVuIGNyZWF0aW5nIGEgbmV3IG9uZS4KCjIwMTYtMDEtMDQgMTA6Mzk6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogVXNlIEdJbml0YWJsZSBpbnN0ZWFkIG9mIGhhdmluZyBhIG5ldygpIGZ1bmN0aW9uIHRoYXQgY2FuIHJldHVybiBOVUxMCgkgIEJpbmRpbmdzIGRvbid0IGxpa2UgdGhhdCBtdWNoIGFuZCBhcyB3ZSdyZSB1c2luZyBHSU8gaGVyZSBhbnl3YXkgd2UgY2FuIGFzCgkgIHdlbGwgdXNlIEdJbml0YWJsZSBmb3IgcG9zc2libHkgZmFpbGluZyBpbml0aWFsaXphdGlvbi4KCjIwMTYtMDEtMDMgMTQ6MDY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogTWFyayBhZGRyZXNzLCBwb3J0IGFuZCBjbG9jayBwcm9wZXJ0aWVzIENPTlNUUlVDVF9PTkxZCgkgIFRoZXkgY2FuJ3Qgc2Vuc2libHkgYmUgY2hhbmdlZCBhZnRlciBjb25zdHJ1Y3Rpb24uCgoyMDE2LTAxLTAzIDIyOjU1OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VfbGF1bmNoOiBtYWtlIG5pY2VyIGxvZyBtZXNzYWdlcwoJICBBZGQgdHdvIG1hY3JvcyB0byBidWlsZCBuaWNlciBlbGVtZW50L3BhZCBuYW1lIHN0cmluZ3MuIFRoZSBtYWNyb3MgYXZvaWQKCSAgcHJpbnRpbmcgIihOVUxMKSIgYW5kIHByaW50IHRoZSBlbGVtZW50IHR5cGUgaW4gYWRkaXRpb24gdG8gdGhlIG5hbWUuCgoyMDE2LTAxLTAyIDE5OjQyOjE3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogd2FybiB3aGVuIHN0aWxsIHdhaXRpbmcgdG8gcGx1ZyBzdWItcGlwZWxpbmVzIGFmdGVyIG5vLW1vcmUtcGFkcwoJICBUaGUgcGFyc2UtbGF1bmNoIEFQSSBhdXRvbWFnaWNhbGx5IGhhbmRsZXMgZHluYW1pYyBwYWRzIGFuZCBwZXJmb3JtcyBkZWxheWVkCgkgIGxpbmtpbmcgYXMgbmVlZGVkLCB3aXRob3V0IGFueSBmZWVkYmFjayBhYm91dCB3aGV0aGVyIHRoZSBsaW5raW5nIHN1Y2NlZWRlZCBvcgoJICBub3QgaG93ZXZlci4gSWYgYSBkZWxheWVkIGR5bmFtaWMgbGluayBjYW4ndCBiZSBjb21wbGV0ZWQgZm9yIHdoYXRldmVyIHJlYXNvbiwKCSAgcGFyc2UtbGF1bmNoIHdpbGwgc2ltcGx5IHdhaXQgaW4gY2FzZSBhIHN1aXRhYmxlIHBhZCBhcHBlYXJzIGxhdGVyLiBUaGlzIG1heQoJICBuZXZlciBoYXBwZW4gdGhvdWdoLCBpbiB3aGljaCBjYXNlIHRoZSBwaXBlbGluZSBtYXkganVzdCBoYW5nIGZvcmV2ZXIuCgkgIFRyeSB0byBpbXByb3ZlIHRoaXMgYnkgY29ubmVjdGluZyB0byB0aGUgIm5vLW1vcmUtcGFkcyIgc2lnbmFsIG9mIGFueSBlbGVtZW50CgkgIHdpdGggZHluYW1pYyBwYWRzIGFuZCBwb3N0aW5nIGEgd2FybmluZyBtZXNzYWdlIGZvciB0aGUgcmVsYXRlZCBvdXRzdGFuZGluZwoJICBkeW5hbWljIGxpbmtzIHdoZW4gIm5vLW1vcmUtcGFkcyIgaXMgZW1pdHRlZC4KCSAgRml4ZXMgIzc2MDAwMwoKMjAxNS0xMi0zMSAxOToyNzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSAgZG9jczogZml4IHNvbWUgd2FybmluZ3MgYW5kIGFkZCBzb21lIHNpbmNlIG1hcmtlcnMKCjIwMTYtMDEtMDMgMTE6Mzk6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgdHJhY2luZzogYWRkIHNvbWUgcG9pbnRlcnMgYWJvdXQgbWVtb3J5IHRyYWNpbmcKCjIwMTYtMDEtMDMgMTE6Mzc6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBncmFtbWFyLnk6IHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDE1LTEyLTMxIDAwOjA0OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiB2YWx1ZTogdGVzdCBidWZmZXIgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gbW9yZSB0aG9yb3VnaGx5CgkgIFRlc3RzIGRhdGEvc3RyaW5ncyBhcyB3ZWxsLCBub3QganVzdCB0aGF0IHdlIHJlY2VpdmVkCgkgIHNvbWV0aGluZyBub24tTlVMTCBiYWNrLgoKMjAxNS0xMi0zMSAxMDo1NzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBmaXggdHlwbyBpbiBjb21tZW50CgoyMDE1LTEyLTMwIDE2OjU3OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBJbXBsZW1lbnQgcmVzb2x2YWwgb2YgaG9zdG5hbWVzCgkgIEp1c3QgYWxsb3dpbmcgSVBzIGhlcmUgaXMgbm90IGlkZWFsIGFuZCBpbXBsZW1lbnRpbmcgRE5TIHJlc29sdmFsIGlzIGVhc3kuCgoyMDE1LTEyLTI5IDE2OjI4OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBBZGQgcmVhZC1vbmx5IHByb3BlcnRpZXMgdG8gZ2V0IHRoZSBtYXN0ZXIgYW5kIGdyYW5kbWFzdGVyIGNsb2NrIGlkcwoKMjAxNS0xMi0yOSAxNDozMjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCAodHJhbnNmZXIgZnVsbCkgYW5ub3RhdGlvbiB0byBzaW1wbGlmeSgpIGFuZCBzdWJ0cmFjdCgpIHJldHVybiB2YWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5OTQ4CgoyMDE1LTEyLTI5IDExOjA2OjM5ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkICd0cmFuc2ZlciBmdWxsJyBhbm5vdGF0aW9uIHRvIGNhcHMgcmV0dXJuZWQgYnkgaW50ZXJzZXJjdGlvbiBmdW5jdGlvbnMKCSAgVG8gbWFrZSBjbGVhciBjYWxsZXIgaXMgcmVzcG9uc2libGUgdG8gdW5yZWYgdGhlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTk0OAoKMjAxNS0xMi0yOCAxOTo0MTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgbmV0OiBBZGQgTlRQIGFuZCBQVFAgY2xvY2sgdHlwZXMgdG8gdGhlIGRvY3MKCSAgVGhpcyBnaXZlcyB1cyB0aGUgcHJvcGVydHkgZG9jdW1lbnRhdGlvbiBmb3IgZXhhbXBsZS4KCjIwMTUtMTItMjcgMTk6NDI6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZG9uJ3QgbWVtY21wIHR3aWNlCgkgIFNpbXBseSBjYWxsIGZhaWwoKSBpbiB0aGUgY29uZGl0aW9uIGFmdGVyIHRoZSBmaXJzdCBtZW1jbXAuCgoyMDE1LTEyLTI0IDE1OjI3OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjcuMSA9PT0KCjIwMTUtMTItMjQgMTM6NTg6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuMQoKMjAxNS0xMi0yNCAxMjo1MDozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMTItMjQgMTI6MjE6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0xMi0yMSAwMDo0Mzo0OSArMDEwMCAgS29vcCBNYXN0IDxrd21AcmFpbmJvdy1ydW5uZXIubmw+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogTWFrZSAtQnN5bWJvbGljIGNoZWNrIHdvcmsgd2l0aCBjbGFuZy4KCSAgVXBkYXRlIHRoZSAtQnN5bWJvbGljIGNoZWNrIHdpdGggdGhlIHZlcnNpb24gZ2xpYiBoYXMuIFRoaXMgdmVyc2lvbgoJICB3b3JrcyB3aXRoIGNsYW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NzEzCgoyMDE1LTEyLTE2IDA5OjM1OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogdXBkYXRlIHRvIGdpdAoKMjAxNS0xMS0xMCAxMjozODo1OSAtMDUwMCAgWGF2aWVyIENsYWVzc2VucyA8eGF2aWVyLmNsYWVzc2Vuc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suaDoKCSAgY29yZTogQWRkIGdfYXV0b3B0cigpIHN1cHBvcnQgdG8gYWxsIHR5cGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ0NjQKCjIwMTUtMTItMTQgMTM6MDY6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IENoZWNrIGlmIHBhcnNpbmcgdGhlIG5hbWUgdGVtcGxhdGUgd2l0aCBzc2NhbmYoKSB3YXMgc3VjY2Vzc2Z1bAoJICBJZiBub3QsIGdvIGJhY2sgdG8gdGhlIGF1dG9tYXRpYyBwYWQgbnVtYmVyaW5nLgoJICBDSUQgMTE5NTEyOQoKMjAxNS0xMi0xNCAxMToyMDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlL211bHRpcXVldWU6IERvbid0IHNwZWNpYWwtY2FzZSBDQVBTIGV2ZW50cyBpbiB0aGUgZXZlbnQgaGFuZGxlcnMKCSAgRm9yIENBUFMgZXZlbnRzIHdlIHdpbGwgbmV2ZXIgZXZlciBoYXZlIGEgRkFMU0UgcmV0dXJuIHZhbHVlIGhlcmUsIHNvIGp1c3QKCSAgcmVtb3ZlIHRoZSBkZWFkIGNvZGUgaW5zdGVhZCBvZiBjYXVzaW5nIGZ1dHVyZSBjb25mdXNpb24uCgoyMDE1LTEyLTE0IDExOjE2OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBSZXZlcnQgInF1ZXVlOiBJbGxlZ2FsIG1lbW9yeSBhY2Nlc3Mgb2Ygc2luayBldmVudCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3ODYxNGM1MDVhMmE3NjFjYjRkY2I3ZjRlNWYzZTlmOTdjOWE4ZTg4LgoJICBUaGUgY29kZSBpdCB3YXMgZml4aW5nIGRvZXMgbm90IGhhdmUgYW55IGVmZmVjdCBhbnl3YXkgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbgoJICB0aGUgbmV4dCBjb21taXQuCgoyMDE1LTEyLTE0IDEwOjMyOjE0ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogSWxsZWdhbCBtZW1vcnkgYWNjZXNzIG9mIHNpbmsgZXZlbnQKCSAgT25jZSBldmVudCBpcyBwdXNoZWQgdG8gcGFkLCB0aGVuIHF1ZXVlIHNob3VsZCBub3QgYWNjZXNzIHRoZSBldmVudC4KCSAgVGhpcyBpcyBsZWFkaW5nIHRvIGludmFsaWQgcmVhZCB2YWxncmluZCBlcnJvcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTQzMAoKMjAxNS0xMi0xNCAxMDoxMDowNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFVucmVmIGV2ZW50IGlmIEdzdEVsZW1lbnQ6OnNlbmRfZXZlbnQoKSBpcyBub3QgaW1wbGVtZW50ZWQKCSAgT3RoZXJ3aXNlIHdlJ2xsIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBldmVudCBvbmx5IGlmIGl0J3MgaW1wbGVtZW50ZWQsIGFuZAoJICBsZWFrIHRoZSBldmVudCBpbiBhbGwgb3RoZXIgc2l0dWF0aW9ucy4KCjIwMTUtMTItMTQgMTA6MDQ6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggZHluYW1pYyBwaXBlbGluZSBleGFtcGxlCgkgIFVzZSBHU1RfUEFEX1BST0JFX1BBU1MgdG8gcGFzcyB0aHJvdWdoIGFsbCBldmVudHMgb3RoZXIgdGhhbiBFT1MgaW5zdGVhZCBvZgoJICBibG9ja2luZyBvbiB0aGUgZmlyc3Qgbm9uLUVPUyBldmVudCBmb3JldmVyLiBBbHNvIGZpeCBhIHR5cG8gaW4gYSBjb21tZW50IGluCgkgIHRoYXQgZnVuY3Rpb24uCgkgIFRoYW5rcyB0byBEYXZpZCBKYWdnYXJkIGZvciByZXBvcnRpbmcgdGhpcyBvbiB0aGUgbWFpbGluZyBsaXN0LgoKMjAxNS0xMi0xMyAwMDozNzozOSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIGRvY3M6ICB0eXBvIGluIHRoZSBsb2NhdGlvbiBvZiBtYWtlX2VsZW1lbnQgdG9vbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MzUyCgoyMDE1LTEyLTEyIDAxOjEzOjU5IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBkcm9wIHVubmVlZGVkIG1hY3JvcyBmb3IgR19PU19XSU4zMgoKMjAxNS0xMi0xMiAwMTowOToyMCAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZHJvcCB1bm5lZWRlZCBtYWNyb3MgZm9yIEdfT1NfV0lOMzIKCjIwMTUtMTItMTIgMDE6MDY6NDMgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDIyOjE0OjMyIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDIwOjUyOjU3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBzb21lIHR5cG9zCgoyMDE1LTEyLTExIDIwOjQyOjA1IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDE5OjExOjAxIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBmaXggc29tZSB0eXBvcwoKMjAxNS0xMi0xMSAxODo1OTozMiAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTEgMTQ6MzY6MjkgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBkcm9wIGJvZ3VzIHJlZmVyZW5jZSB0byBmaWxlIGRlc2NyaXB0b3IKCSAgK2ZpeCB0eXBvIG9uIHJldHVybiB2YWx1ZSBjb21tZW50CgoyMDE1LTEyLTExIDE0OjA3OjI3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMTAgMTQ6MzI6MjcgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1bnJlZiBtZXNzYWdlIGluIF9wb3N0X21lc3NhZ2Ugd2hlbiB0aGVyZSBpcyBubyBpbXBsZW1lbnRhdGlvbgoJICAnZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlJyB0YWtlcyB0aGUgb3duZXJzaGlwIG9mIHRoZSBtZXNzYWdlLCBzbyBpdAoJICBzaGFsbCB1bnJlZiBpdCB3aGVuIHRoZXJlIGlzIG5vIHBvc3RfbWVzc2FnZSBpbXBsZW1lbnRhdGlvbi4gT3RoZXJ3aXNlCgkgIG1lc3NhZ2UgaXMgbGVha2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MzAwCgoyMDE1LTEyLTEwIDExOjM1OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRG9uJ3QgaG9sZCBzdGF0ZSBsb2NrIGFsbCB0aGUgdGltZSB3aGlsZSBzZW5kaW5nIGFuIGV2ZW50CgkgIFRoaXMgbG9jayBzZWVtcyB0byBleGlzdCBvbmx5IHRvIHByZXZlbnQgZWxlbWVudHMgZnJvbSBjaGFuZ2luZyBzdGF0ZXMgd2hpbGUKCSAgZXZlbnRzIGFyZSBiZWluZyBwcm9jZXNzZWQuIEhvd2V2ZXIgZXZlbnRzIGFyZSBnb2luZyB0byBiZSBwcm9jZXNzZWQKCSAgbm9uZXRoZWxlc3MgaW4gdGhvc2UgZWxlbWVudHMgaWYgc2VudCBkaXJlY3RseSB2aWEgcGFkcywgc28gcHJvdGVjdGlvbiBtdXN0CgkgIGFscmVhZHkgYmUgaW1wbGVtZW50ZWQgaW5zaWRlIHRoZSBlbGVtZW50cyBmb3IgZXZlbnQgaGFuZGxpbmcgaWYgaXQgaXMgbmVlZGVkLgoJICBBcyBzdWNoIGhhdmluZyB0aGUgbG9jayBoZXJlIGlzIG5vdCB2ZXJ5IHVzZWZ1bCBhbmQgaXMgYWN0dWFsbHkgY2F1c2luZwoJICB2YXJpb3VzIGRlYWRsb2NrcyBpbiBkaWZmZXJlbnQgc2l0dWF0aW9ucyBhcyBkZXNjcmliZWQgaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDA0MAoKMjAxNS0xMi0wNyAyMDoyNzo0NSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTAzIDE1OjA0OjMyIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0wMyAxNTowMToyNyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGZpbGVzaW5rOiBpbmRlbnRhdGlvbiBmaXhlcwoKMjAxNS0xMi0wOSAxNzo0MDowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCB1c2UgcmFuZG9tIHNlZ21lbnQucG9zaXRpb24gZnJvbSB1cHN0cmVhbQoJICBzZWdtZW50LnBvc2l0aW9uIGlzIG1lYW50IGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5LCBidXQgdGhlIHZhcmlvdXMKCSAgR1NUX0VWRU5UX1NFR01FTlQgY3JlYXRpb25nL3BhcnNpbmcgZnVuY3Rpb25zIHdvbid0IGNsZWFyIHRoYXQgZmllbGQuCgkgIFVzZSB0aGUgYXBwcm9wcmlhdGUgc2VnbWVudCBib3VuZGFyeSBhcyBhbiBpbml0aWFsIHZhbHVlIGluc3RlYWQKCjIwMTUtMTItMDcgMTc6MjU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogUG9zdCBhIExBVEVOQ1kgbWVzc2FnZSB3aXRoIGFzeW5jLWhhbmRsaW5nPVRSVUUgaWYgdGhlIFBMQVlJTkcgc3RhdGUgaXMgcmVhY2hlZAoJICBPdGhlcndpc2UgZWFjaCBiaW4gbWlnaHQgaGF2ZSBhIGRpZmZlcmVudCBsYXRlbmN5IGluIHRoZSBlbmQsIGNhdXNpbmcKCSAgc3luY2hyb25pemF0aW9uIHByb2JsZW1zLgoJICBUaGUgYmluIHdpbGwgc3RpbGwgZmlyc3QgaGFuZGxlIGxhdGVuY3kgaW50ZXJuYWxseSBhcyBiZWZvcmUsIGJ1dCBnaXZlcyB0aGUKCSAgb3ZlcmFsbCBwaXBlbGluZSB0aGUgb3Bwb3J0dW5pdHkgdG8gdXBkYXRlIHRoZSBsYXRlbmN5IG9mIHRoZSB3aG9sZSBwaXBlbGluZQoJICBhZnRlcndhcmRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MTI1CgoyMDE1LTEyLTA3IDE4OjIwOjM1ICswMjAwICBBdGhhbmFzaW9zIE9pa29ub21vdSA8YXRob2lrQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcG9zdCB0YWcgbGlzdCB3aGVuIGF2ZyBiaXRyYXRlIGNoYW5nZXMgYXQgbGVhc3QgMiUKCSAgV2F0Y2hpbmcgdmlkZW9zIHdpdGggdmFyaWFudCBiaXRyYXRlIGlzIGNvbW1vbiB0byBoYXZlIGRlbHRhCgkgIG1vcmUgdGhhbiAxMCBrYnBzLCByZXN1bHRpbmcgaW4gdGFnIGxpc3Qgc3BhbS4KCSAgSW5zdGVhZCBvZiByZWx5aW5nIG9uIGZpeGVkIDEwIGtwYnMgZGVsdGEsIGl0IGlzIGJldHRlciB0bwoJICBjYWxjdWxhbGUgdGhlIGRpZmZlcmVuY2UgaW4gcGVyY2VudGFnZSBhbmQgdXBkYXRlIHRhZyBsaXN0CgkgIG9ubHkgd2hlbiBiaXRyYXRlIGNoYW5nZXMgbW9yZSB0aGFuIDIlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MDU1CgoyMDE1LTEyLTA3IDA5OjA4OjAxIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjMxOTkwOSB0byA4NmU0NjYzCgoyMDE1LTEyLTA3IDEyOjU5OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2hlY2sgZm9yIGFuIGFjdGl2YXRlZCBwYWQgYmVmb3JlIGFkZGluZywgbm90IGEgbm9uLWZsdXNoaW5nIG9uZQoJICBUaGUgcGFkIGNvdWxkIGJlIGFjdGl2YXRlZCBidXQgZmx1c2hpbmcgYmVjYXVzZSBvZiBhIEZMVVNIX1NUQVJUIGV2ZW50LiBUaGF0J3MKCSAgbm90IHdoYXQgd2UncmUgbG9va2luZyBmb3IgaGVyZSwgd2Ugd2FudCB0byBjaGVjayBmb3IgYWN0aXZhdGVkIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5MjgKCjIwMTUtMTEtMTkgMTU6MzM6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogZnVubmVsOiByZW1vdmUgc3RhdGUgY2hhbmdlIGZyb20gc3RyZXNzIHRlc3RzCgkgIENoYW5naW5nIHN0YXRlcyB1cCBhbmQgZG93biB3aGlsZSBidWZmZXJzIGFyZSBiZWluZyBwdXNoZWQgaXMgbm90CgkgIGEgdmFsaWQgdXNlIGNhc2UuIElmIGEgcGFkIGlzIGRlYWN0aXZhdGVkIGFuZCByZWFjdGl2YXRlZCBkdXJpbmcKCSAgYSBidWZmZXIgcHVzaCBpdCBpcyByYWN5IHdpdGggdGhlIGNoZWNrIG9mIHB1c2hlZCBzdGlja3kgZXZlbnRzCgkgIGFuZCB0aGUgYWN0dWFsIGNoYWluZnVuY3Rpb24gY2FsbC4gQXMgaXQgbWlnaHQgY2FsbCB0aGUgY2hhaW4KCSAgd2l0aG91dCBub3RpY2luZyB0aGUgcGVlciBwYWQgbG9zdCBpdHMgcHJldmlvdXMgc3RpY2t5IGV2ZW50cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODM0MAoKMjAxNS0xMi0wNCAxMDoyMjo1NiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEZpeCBwcm9jZXNzIHJldHVybiB2YWx1ZSBvbiBlcnJvcgoJICBJbiBjYXNlIG9mIGEgcnVuLXRpbWUgZXJyb3IgbWVzc2FnZSwgdGhlIHByb2Nlc3MgcmV0dXJuIHZhbHVlIHdhcyBsZWZ0CgkgIHVuc2V0LiBUaGlzIHdvdWxkIGxlYWQgdG8gZXJyb3Igbm90IGJlaW5nIGNhdWdodCBhdCBzaGVsbCBsZXZlbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTAxOQoKMjAxNS0xMi0wNCAxMDo0NToyNSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAidG9vbHM6IGdzdC1sYXVuY2g6IHJldHVybiBub24tMCBleGl0IGNvZGUgb24gYXN5bmMgZXJyb3IiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmVlNGNiYTI0ODVkN2YxNjQ2ZDQ4ZTQ1NTk0MjZhZWQ0YmE5OWM4NS4KCjIwMTUtMTItMDQgMTU6MDk6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiByZXR1cm4gbm9uLTAgZXhpdCBjb2RlIG9uIGFzeW5jIGVycm9yCgkgIFdoZW4gYW4gZXJyb3IgaGFwcGVucyBpbiBwbGF5aW5nIHN0YXRlLCBzdGlsbCByZXR1cm4gYQoJICBub24tMCBleGl0IGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkwMTkKCjIwMTUtMTItMDQgMTQ6Mzk6MjkgKzAwMDAgIFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiByZWFsbHkgZml4IGluc3RhbGwgcmFjZQoJICBNeSBwcmV2aW91cyBmaXggZm9yICM3NTgwMjkgd2Fzbid0IHF1aXRlIHJpZ2h0IGFuZCBzaW1wbHkgbWFkZSB0aGUgcmFjZSByYXJlci4KCSAgU29tZSBvZiB0aGUgZmlsZXMgYXJlIGluc3RhbGxlZCBieSBpbnN0YWxsLWV4ZWMgYW5kIG90aGVycyBieSBpbnN0YWxsLWV4ZWMsIHNvCgkgIHRoZSBob29rcyBuZWVkIHRvIGJlIHNwbGl0IHRvby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAyOQoKMjAxNS0xMi0wNCAxMTo1Njo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBkb2NzCgkgIFRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGhhcyBwYXJhbWV0ZXJzIHdpdGggdGhlIG1ldGEgQVBJLCBub3QgZmxhZ3MuCgoyMDE1LTEyLTAyIDE1OjAyOjI1IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBEcm9wIHVzYWdlIG9mIGRlcHJlY2F0ZWQgZy1pci1zY2FubmVyIC0tc3RyaXAtcHJlZml4IGZsYWcKCjIwMTUtMTItMDIgMTY6Mjg6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IHNldC9nZXQgcHJvcGVydHkKCSAgQmxhbWUgaXQgb24gdGhlIHJlYmFzaW5nIDopCgoyMDE1LTExLTEyIDE3OjE1OjM3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IEltcGxlbWVudCBHc3RQYWRFdmVudEZ1bGxGdW5jdGlvbgoJICBBUEk6IEdzdFBhZEV2ZW50RnVsbEZ1bmN0aW9uCgkgIFJldHVybnMgYSBHc3RGbG93UmV0dXJuLCBhbGxvd3MgYXN5bmNocm9ub3VzIGVsZW1lbnRzIHRvIHByb3Blcmx5CgkgIHByb3BhZ2F0ZSBmbG93IHJldHVybnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzgyMQoKMjAxNS0xMS0zMCAxNzowOTo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogVXNlIHNpZ25lZCBjbG9jayB2YWx1ZXMgZm9yIHJ1bm5pbmcgdGltZSBjYWxjdWxhdGlvbgoJICBUaGlzIGltcHJvdmVzIHRoZSBhY2N1cmFjeSBvZiBxdWV1ZSBsZXZlbHMgYW5kIHdoZW4gdG8gcHVzaCBidWZmZXJzCgkgIGZvciBidWZmZXJzIGZhbGxpbmcgb3V0c2lkZSBvZiB0aGUgc2VnbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTkzCgoyMDE1LTExLTI3IDA5OjQ1OjI5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBBZGQgYW4gZXh0cmEgY2FjaGUgdGltZSBmb3IgdW5saW5rZWQgc3RyZWFtcwoJICBXaGVuIHN5bmNocm9uaXppbmcgdGhlIG91dHB1dCBieSB0aW1lLCB0aGVyZSBhcmUgc29tZSB1c2UtY2FzZXMgKGxpa2UKCSAgYWxsb3dpbmcgZ2FwbGVzcyBwbGF5YmFjayBkb3duc3RyZWFtKSB3aGVyZSB3ZSB3YW50IHRoZSB1bmxpbmtlZCBzdHJlYW1zCgkgIHRvIHN0YXkgc2xpZ2h0bHkgYmVoaW5kIHRoZSBsaW5rZWQgc3RyZWFtcy4KCSAgVGhlICJ1bmxpbmtlZC1jYWNoZS10aW1lIiBwcm9wZXJ0eSBhbGxvd3MgdGhlIHVzZXIgdG8gc3BlY2lmeSBieSBob3cKCSAgbXVjaCB0aW1lIHRoZSB1bmxpbmtlZCBzdHJlYW1zIHNob3VsZCB3YWl0IGJlZm9yZSBwdXNoaW5nIGFnYWluLgoKMjAxNS0xMC0yNiAwODowNjowMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogT3B0aW1pemUgbXVsdGlxdWV1ZSBzaXplcyBiYXNlZCBvbiBpbnRlcmxlYXZlCgkgIE11bHRpcXVldWUgc2hvdWxkIG9ubHkgYmUgdXNlZCB0byBjb3BlIHdpdGg6CgkgICogZGVjb3VwbGluZyB1cHN0cmVhbSBhbmQgZG93c3RyZWFtIHRocmVhZGluZyAoaS5lLiBoYXZpbmcgc2VwYXJhdGUgdGhyZWFkcwoJICBmb3IgZWxlbWVudGFyeSBzdHJlYW1zKS4KCSAgKiBFbnN1cmluZyBpbmRpdmlkdWFsIHF1ZXVlcyBoYXZlIGVub3VnaCBzcGFjZSB0byBjb3BlIHdpdGggdXBzdHJlYW0gaW50ZXJsZWF2ZQoJICAoZGlzdGFuY2UgaW4gc3RyZWFtIHRpbWUgYmV0d2VlbiBjby1sb2NhdGVkIHNhbXBsZXMpLiBUaGlzIGlzIHRvIGd1YXJhbnRlZQoJICB0aGF0IHdlIGhhdmUgZW5vdWdoIHJvb20gaW4gZWFjaCBpbmRpdmlkdWFsIHF1ZXVlcyB0byBwcm92aWRlIG5ldyBkYXRhIGluCgkgIGVhY2gsIHdpdGhvdXQgYmVpbmcgYmxvY2tlZC4KCSAgKiBMaW1pdCB0aGUgcXVldWUgc2l6ZXMgdG8gdGhhdCBpbnRlcmxlYXZlIGRpc3RhbmNlIChhbmQgYW4gZXh0cmEgbWluaW1hbAoJICBidWZmZXJpbmcgc2l6ZSkuIFRoaXMgaXMgdG8gZW5zdXJlIHdlIGRvbid0IGNvbnN1bWUgdG9vIG11Y2ggbWVtb3J5LgoJICBCYXNlZCBvbiB0aGF0LCBtdWx0aXF1ZXVlIG5vdyBjb250aW51b3VzbHkgY2FsY3VsYXRlcyB0aGUgaW5wdXQgaW50ZXJsZWF2ZQoJICAocGVyIGluY29taW5nIHN0cmVhbWluZyB0aHJlYWQpLiBCYXNlZCBvbiB0aGF0LCBpdCBjYWxjdWxhdGVzIGEgdGFyZ2V0CgkgIGludGVybGVhdmUgKGN1cnJlbnRseSAxLjUgeCByZWFsX2ludGVybGVhdmUgKyAyNTBtcyBwYWRkaW5nKS4KCSAgSWYgdGhlIHRhcmdldCBpbnRlcmxlYXZlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBtYXhfc2l6ZS50aW1lLCBpdCB3aWxsCgkgIHVwZGF0ZSBpdCBhY2NvcmRpbmdseSAodG8gYWxsb3cgZW5vdWdoIG1hcmdpbiB0byBub3QgYmxvY2spLgoJICBJZiB0aGUgdGFyZ2V0IGludGVybGVhdmUgZ29lcyBkb3duIGJ5IG1vcmUgdGhhbiA1MCUsIHdlIHJlLWFkanVzdCBpdCBvbmNlCgkgIHdlIGtub3cgd2UgaGF2ZSBnb25lIHBhc3QgYSBzYWZlIGRpc3RhbmNlICgyIHggY3VycmVudCBtYXhfc2l6ZS50aW1lKS4KCSAgVGhpcyBtb2RlIGNhbiBvbmx5IGJlIHVzZWQgZm9yIGluY29taW5nIHN0cmVhbXMgdGhhdCBhcmUgZ3VhcmFudGVlZCB0byBiZQoJICBwcm9wZXJseSB0aW1lc3RhbXBlZC4KCSAgRnVydGhlcm1vcmUsIHdlIGlnbm9yZSBzcGFyc2Ugc3RyZWFtcyB3aGVuIGNhbGN1bGF0aW5nIGludGVybGVhdmUgYW5kIG1heGltdW0KCSAgc2l6ZSBvZiBxdWV1ZXMuCgkgIEZvciB0aGUgc2ltcGxlc3Qgb2YgdXNlLWNhc2VzIChzaW5nbGUgc3RyZWFtKSwgbXVsdGlxdWV1ZSBhY3RzIGFzIGEgc2luZ2xlCgkgIHF1ZXVlIHdpdGggYSB0aW1lIGxpbWl0IG9mIDI1MG1zLgoJICBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgaW5wdXRzLCBidXQgZWFjaCBjb21lIGZyb20gYSBkaWZmZXJlbnQgc3RyZWFtaW5nIHRocmVhZCwKCSAgdGhlIG1heGltdW0gdGltZSBsaW1pdCB3aWxsIGFsc28gZW5kIHVwIGJlaW5nIDI1MG1zLgoJICBPbiByZWd1bGFyIGZpbGVzIChtb3JlIHRoYW4gb25lIGlucHV0IHN0cmVhbSBmcm9tIHRoZSBzYW1lIHVwc3RyZWFtIHN0cmVhbWluZwoJICB0aHJlYWQpLCBpdCBjYW4gcmVkdWNlIHRoZSB0b3RhbCBtZW1vcnkgdXNlZCBhcyBtdWNoIGFzIDEweCwgZW5kaW5nIHVwIHdpdGgKCSAgbWF4X3NpemUudGltZSBhcm91bmQgNTAwbXMuCgkgIER1ZSB0byB0aGUgYWRhcHRpdmUgbmF0dXJlLCBpdCBjYW4gYWxzbyBjb3BlIHdpdGggY2hhbmdpbmcgaW50ZXJsZWF2ZSAod2hpY2gKCSAgY2FuIGhhcHBlbiBjb21tb25seSBvbiBzb21lIGZpbGVzIGF0IHN0YXJ0dXAvcHJlLXJvbGwgdGltZSkKCjIwMTMtMDEtMDggMjE6MTY6NDIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHVzZSBuZXcgc3RyZWFtLXN0YXJ0IGV2ZW50IHNwYXJzZSBmbGFnIHRvIGF2b2lkIG92ZXJyZWFkaW5nIHN1YnRpdGxlcwoJICBUaGlzIHdpbGwgbWVhbiBhIG11Y2ggbG93ZXIgZGVsYXkgYmVmb3JlIGEgc3VidGl0bGVzIHRyYWNrIGNoYW5nZXMgdGFrZQoJICBlZmZlY3QuIEFsc28gYXZvaWRzIGV4Y2Vzc2l2ZSBtZW1vcnkgdXNhZ2UgaW4gbWFueSBjYXNlcy4KCSAgVGhpcyB3aWxsIGFsc28gY29uc2lkZXIgc3BhcnNlIHN0cmVhbXMgYXMgKGluZGl2aWR1YWxseSkgbmV2ZXIgZnVsbCwgc28KCSAgYXMgdG8gYXZvaWQgYmxvY2tpbmcgYWxsIHBsYXliYWNrIGR1ZSB0byBvbmUgc3BhcnNlIHN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMDY0OAoKMjAxNS0xMC0zMCAxMDoyMjoyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggaGlnaF90aW1lIGNvbXB1dGF0aW9uCgkgICogQXZvaWQgdGhlIGNvbXB1dGF0aW9uIGNvbXBsZXRlbHkgaWYgd2Uga25vdyB3ZSBkb24ndCBuZWVkIGl0IChub3QgaW4KCSAgc3luYyB0aW1lIG1vZGUpCgkgICogTWFrZSBzdXJlIHdlIGRvbid0IG92ZXJyaWRlIGhpZ2hlc3QgdGltZSB3aXRoIEdTVF9DTE9DS19USU1FX05PTkUgb24KCSAgdW5saW5rZWQgcGFkcwoJICAqIEVuc3VyZSB0aGUgaGlnaF90aW1lIGdldHMgcHJvcGVybHkgdXBkYXRlZCBpZiBhbGwgcGFkcyBhcmUgbm90IGxpbmtlZAoJICAqIEZpeCB0aGUgY29tcGFyaXNpb24gaW4gdGhlIGxvb3Agd2hldGhlciB0aGUgdGFyZ2V0IGhpZ2ggdGltZSBpcyB0aGUgc2FtZQoJICBhcyB0aGUgY3VycmVudCB0aW1lCgkgICogU3BsaXQgd2FrZV91cF9uZXh0X25vbl9saW5rZWQgbWV0aG9kIHRvIGF2b2lkIHVzZWxlc3MgY2FsY3VsYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzM1MwoKMjAxNS0xMS0wNiAwMzowMjo0MiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IERvbid0IHJlcG9ydCAwJSB1bmxlc3MgZW1wdHkKCSAgV2hlbiBwcmVwYXJpbmcgYSBidWZmZXJpbmcgbWVzc2FnZSwgZG9uJ3QgcmVwb3J0IDAlIGlmIHRoZXJlCgkgIGlzIGFueSBieXRlcyBsZWZ0IGluIHRoZSBxdWV1ZSBhdCBhbGwuIFdlIHN0aWxsIGhhdmUgc29tZXRoaW5nCgkgIHRvIHB1c2gsIHNvIGRvbid0IHRlbGwgdGhlIGFwcCB0byBzdGFydCBidWZmZXJpbmcgLSBtYXliZQoJICB3ZSdsbCBnZXQgbW9yZSBkYXRhIGJlZm9yZSBhY3R1YWxseSBydW5uaW5nIGRyeS4KCjIwMTUtMTEtMzAgMTc6MTE6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZ3N0Y2xvY2s6IEZpeCBHU1RfU1RJTUVfQVJHUwoJICBJdCB3YXNuJ3QgcHJvcGVybHkgaGFuZGxpbmcgR1NUX0NMT0NLX1NUSU1FX05PTkUgYW5kIGFsd2F5cyB1c2UgdGhlCgkgIHNpZ24gbWFya2VyICgrLy0pIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGlkZW50aWZ5IHNpZ25lZCB2YWx1ZXMgaW4KCSAgbG9ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4ODcwCgoyMDE1LTExLTMwIDIzOjA4OjUwICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sc291cmNlOiBBbm5vdGF0ZSBnZXRfdmFsdWVbX2FycmF5XSBhcyAobWV0aG9kKQoJICBBcyB0aGUgbmFtZXMgY2xhc2ggd2l0aCBnc3Rfb2JqZWN0X2dldF92YWx1ZVtfYXJyYXldCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY5NTAKCjIwMTUtMTEtMTMgMTc6MzI6NTcgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IEFkZCBwcmVmaXggc3VwcG9ydCB0byBkZXBlbmRlbmNpZXMKCSAgVGhpcyBhZGRzIGEgbmV3IGZsYWdzLCBHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19GSUxFX05BTUVfSVNfUFJFRklYLAoJICB3aGljaCBhbGxvdyB1c2luZyB0aGUgbmFtZXMgYXMgcHJlZml4IGZvciBwbHVnaW4gZGVwZW5jaWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDgzCgoyMDE1LTExLTEzIDE2OjMyOjMxIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogQWxsb3cgZGV2aWNlIG5vZGVzIGFzIGRlcGVuZGVuY3kKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGZlYXR1cmUgdGhhdCBhcmUgcHJvZHVjZWQgYWZ0ZXIgcHJvYmluZyBhIHNwZWNpZmljCgkgIG5vZGUuIFlvdSB3YW50IHRvIHJlbG9hZCB0aGlzIHBsdWdpbiBpZiB0aGUgc3BlY2lmaWMgbm9kZShzKSBoYXZlIGJlZW4KCSAgcmVtb3ZlZCwgYWRkZWQsIG9yIHJlbG9hZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDgwCgoyMDE1LTExLTEzIDE2OjIwOjQyIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogRG9uJ3QgZG8gbG9zc3kgc2hpZnQgb24gaGFzaAoJICBJbiBwbHVnaW4gaXMgcmVzcG9uc2libGUgZm9yIGNhbGN1bGF0aW5nIGEgaGFzaCBvZiB0aGUgZGVwZW5kZW5jaWVzCgkgIGluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGUgY2FjaGUgc2hvdWxkIGJlIGludmFsaWRhdGVkIG9yIG5vdC4KCSAgQ3VycmVudGx5LCB0aGUgaGFzaCBjb21iaW5pbmcgbWV0aG9kIHJlbW92ZXMgYSBiaXQgb2YgdGhlIG9yaWdpbmFsCgkgIGhhdmUgYmVmb3JlIGNvbWJpbmluZyB3aXRoIGFuIGFkZGl0aW9uLiBBcyB3ZSB1c2UgMzJiaXRzIGZvciBvdXIgaGFzaAoJICBhbmQgc2hpZnQgMSBiaXQgZm9yIGVhY2ggZmlsZSBhbmQgZGlyZWN0b3J5LCB0aGF0IHJlc3VsdGluZyBoYXNoIG9ubHkKCSAgYWNjb3VudCBmb3IgdGhlIGxhc3QgMzIgZmlsZXMuIEFuZCBpcyBtb3JlIGFmZmVjdGVkIGJ5IHRoZSBsYXN0IGZpbGUuCgkgIFJvdGF0aW5nIHRlY2huaXF1ZSAoc2hpZnRpbmcsIGFuZCBhZGRpbmcgYmFjayB0aGUgZW5kaW5nIGJpdCksIGNhbiBiZQoJICB1c2UgdG8gbWFrZSB0aGUgYWRkaXRpb24gbm9uLWNvbW11dGF0aXZlLiBJbiBhIHdheSB0aGF0IGRpZmZlcmVudCBvcmRlcgoJICBnaXZlcyBkaWZmZXJlbnQgaGFzaGVzLiBJbiB0aGlzIGNhc2UsIEkgZG9uJ3QgcHJlc2VydmUgdGhpcyBiZWhhdmlvdXIKCSAgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGZpbGVzIGFyZSBwcm92aWRlZCBieSB0aGUgT1MgaXMKCSAgaXJyZWxldmFudC4KCSAgSW4gbW9zdCBjYXNlcywgdGhlIFhPUiBvcGVyYXRpb24gaXMgdXNlZCB0byBjb21iaW5lIGhhc2hlcy4gSW4gdGhpcwoJICBjb2RlIHdlIHVzZSB0aGUgYWRkaXRpb24uIEkgZGVjaWRlZCB0byBwcmVzZXJ2ZSB0aGUgYWRkaXRpb24gYmVjYXVzZQoJICB3ZSBtYWtlIHVzZSBvZiBub24tcmFuZG9tIGhhc2ggKChndWludCkgLTEpIGluIHRoZSBhbGdvcml0aG0gZm9yCgkgIG1hdGNoaW5nIGZpbGVzIHRoYXQgYXJlIG5vdCByZWFsbHkgcGFydCBvZiB0aGUgaGFzaCAoc3ltbGlua3MsIHNwZWNpYWwKCSAgZmlsZXMpLiBEb2luZyBzdWNjZXNzaXZlIFhPUiBvbiB0aGlzIHZhbHVlLCB3aWxsIHNpbXBseSBzd2l0Y2ggZnJvbQoJICBmdWxsIG9uZXMsIHRvIGZ1bGwgemVyby4gVGhlIFhPUiB1c2VkIHdpdGggd2hpdGVsaXN0IGhhcyBiZWVuIHByZXNlcnZlZAoJICBhcyBpdCdzIGJhc2VkIG9uIGEgZmFpcmx5IHJhbmRvbWl6ZWQgaGFzaCAoZ19zdHJfaGFzaCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwNzgKCjIwMTUtMTEtMjMgMjE6NDA6MzQgKzAwMDAgIEx1a2FzeiBGb3J5bnNraSA8bHVrYXN6LmZvcnluc2tpQHlvdXZpZXcuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2l0aCAtV3BlZGFudGljIGFuZCBnY2MgNQoJICBHc3RyZWFtZXIgY29tcGlsZWQgd2l0aCBnY2MgNS4yIGFuZCAtV3BlZGFudGljIHByb2R1Y2VzIHRoZQoJICBmb2xsb3dpbmcgd2FybmluZzoKCSAgJ0lTTyBDIGRvZXMgbm90IHN1cHBvcnQgJ19fRlVOQ1RJT05fXycgcHJlZGVmaW5lZCBpZGVudGlmaWVyIFstV3BlZGFudGljXQoJICBjb25zdCBjaGFyICpzID0gX19GVU5DVElPTl9fOycKCSAgU2luY2UgZ2NjIDUgZW5hYmxlcyBDOTkgYnkgZGVmYXVsdCwgdXNlIF9fZnVuY19fIGlmIGl0J3MgYXZhaWxhYmxlCgkgIGluc3RlYWQgb2YgdGhlIG5vbi1zdGFuZGFyZCBfX0ZVTkNUSU9OX18gKGFzIHN1Z2dlc3RlZCBpbiBbMl0pLgoJICBbMV06IGh0dHBzOi8vZ2NjLmdudS5vcmcvZ2NjLTUvY2hhbmdlcy5odG1sCgkgIFsyXTogaHR0cHM6Ly9nY2MuZ251Lm9yZy9nY2MtNS9wb3J0aW5nX3RvLmh0bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODU0MQoKMjAxNS0xMS0yMCAxOTo0NTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkgIGNvbnRyb2xsZXI6IGZpeCBhbm5vdGF0aW9uIHRvIG1ha2UgZy1pci1zY2FubmVyIGhhcHB5CgkgIGdzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6NTk6IFdhcm5pbmc6IEdzdENvbnRyb2xsZXI6IG1pc3NpbmcgIjoiIGF0IGNvbHVtbiA1MToKCSAgKiBAR1NUX0lOVEVSUE9MQVRJT05fTU9ERV9DVUJJQ19NT05POiAoU2luY2UgMS44KSBtb25vdG9uaWMgY3ViaWMgaW50ZXJwb2xhdGlvbiwgd2lsbCBub3QKCSAgZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDo1OTogV2FybmluZzogR3N0Q29udHJvbGxlcjogdW5rbm93biBhbm5vdGF0aW9uOiBzaW5jZQoKMjAxNC0wOS0yOSAxNDowMzoxMyArMDUzMCAgUmF2aSBLaXJhbiBLIE4gPHJhdmkua2lyYW5Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBhZGQgR1NUX1RBR19QUklWQVRFX0RBVEEKCSAgQ2FuIGJlIHVzZWQgdG8gcmVwcmVzZW50IHByaXZhdGUgZGF0YSB0aGF0IG1heSBiZQoJICBjb250YWluZWQgaW4gdGFncywgc3VjaCBhcyBJRDN2MiBQUklWIGZyYW1lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDkyNgoKMjAxNS0xMS0xOSAwMDo1MTo0NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IGRvIG5vdCBvdmVyd3JpdGUgaGVhZGVyIGJ1ZmZlciB0aW1lc3RhbXBzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJjNDc1YTAzNTU0M2VmYzAyMDJlY2RjNTIwNzAyOTVhNDIxZWQ0YjQuCgkgIFRoaXMgY2F1c2VzIGlzc3VlcyB3aXRoIGgyNjRwYXJzZS4gSXQgYnJlYWtzIHRpbWVzdGFtcHMgYXMKCSAgdGhlcmUgYXJlIGhlYWRlcnMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc3RyZWFtIGFuZCB0aGlzIHBhdGNoCgkgIG1ha2VzIHRoZSB0aW1lc3RhbXBzIGZvciB0aG9zZSBkaWZmZXIgZnJvbSB0aGUgb25lcyB0aGF0CgkgIGFyZSBhZGp1c3RlZCwgY3JlYXRpbmcgYSBkaXNjb250aW51aXR5IGFuZCBsZWFkaW5nIHRvIHN5bmMKCSAgaXNzdWVzLgoKMjAxNS0xMS0xNyAxODo0Nzo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IHNpbXBsaWZ5IGNvZGUgYSBiaXQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzk4NGY3MTU5YTcyYzJlZWJlMDE5MDVlZTUzNzE2ZTNiMmFiY2IzMC4KCjIwMTUtMTEtMTggMTE6NDY6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHByaW50IGNyaXRpY2FscyB3aGVuIHJlY2VpdmluZyBjdXN0b20gZXZlbnRzIGluIHJpbmcgYnVmZmVyIG1vZGUKCSAgRG93bmdyYWRlIGZyb20gZ193YXJuaW5nIHRvIEdTVF9XQVJOSU5HIGxvZyBtZXNzYWdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4Mjc2CgoyMDE1LTExLTE4IDA5OjIxOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBEaXNhYmxlIG11bHRpY2FzdCBsb29wYmFjawoJICBXZSdyZSBub3QgcmVhbGx5IGludGVyZXN0ZWQgaW4gb3VyIG93biBwYWNrZXRzIGFuZCBpZ25vcmUgdGhlbSBhbnl3YXkuCgoyMDE1LTExLTE3IDA5OjE3OjU4ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IHN0cmluZyBtZW1vcnkgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MjA3CgoyMDE1LTExLTE2IDA4OjIyOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNpbXBsaWZ5IGNvZGUgYSBiaXQKCSAgQXZvaWQgcmVwZWF0ZWQgY2hlY2tzIGZvciB0ZXN0aW5nIGlmIGEgYnVmZmVyIGlzIGEgaGVhZGVyCgoyMDE1LTExLTEzIDIwOjQ0OjU3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBoYW5kbGUgYnVmZmVyIHdpdGggZHRzLW9ubHkgd2hlbiBtYXBwaW5nIHRvIHJ1bm5pbmcgdGltZQoJICBPdGhlcndpc2UgdGhlIGJ1ZmZlciB3YXMgbGVmdCB3aXRoIHRoZSBvcmlnaW5hbCB2YWx1ZXMgYW5kIGxhdGVyIHdvdWxkCgkgIGJlIGNvbXBhcmVkIHdpdGggb3RoZXIgYnVmZmVycyB0aGF0IHdlcmUgY29udmVydGVkIHRvIHJ1bm5pbm4gdGltZSwKCSAgbGVhZGluZyB0byBiYWQgaW50ZXJsZWF2aW5nIG9mIG11bHRpcGxlIHN0cmVhbXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc5NjEKCjIwMTUtMTEtMTMgMTY6MzE6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IG92ZXJ3cml0ZSBoZWFkZXIgYnVmZmVyIHRpbWVzdGFtcHMKCSAgYmFzZXBhcnNlIHRyaWVzIHRvIHByZXNlcnZlIHRpbWVzdGFtcHMgZnJvbSB1cHN0cmVhbSBpZgoJICBpdCBpcyBydW5uaW5nIG9uIGEgdGltZSBzZWdtZW50IGFuZCB3cml0ZSB0aGF0IHRvCgkgIG91dHB1dCBidWZmZXJzLiBJdCBhc3N1bWVzIHRoZSBmaXJzdCBEVFMgaXMgZ29pbmcgdG8gYmUKCSAgc2VnbWVudC5zdGFydCBhbmQgc2V0cyB0aGF0IHRvIHRoZSBmaXJzdCBidWZmZXJzLiBJbiBjYXNlCgkgIHRoZSBidWZmZXIgaXMgYSBoZWFkZXIgYnVmZmVyLCBpdCBoYWQgbm8gdGltZXN0YW1wcyBhbmQKCSAgd2lsbCBoYXZlIG9ubHkgdGhlIERUUyBzZXQgZHVlIHRvIHRoaXMgbWVjaGFuaXNtLgoJICBUaGlzIHBhdGNoIHByZXZlbnRzIHRoaXMgYnkgc2tpcHBpbmcgdGhpcyBiZWhhdmlvciBmb3IKCSAgaGVhZGVyIGJ1ZmZlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc5NjEKCjIwMTUtMDYtMTggMTM6NTY6NTMgLTA3MDAgIEFsZWl4IENvbmNoaWxsbyBGbGFxdcOpIDxhbGVpeEBvYmxvbmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBhZGQgZHJvcC1idWZmZXItZmxhZ3MgcHJvcGVydHkKCSAgTmV3IHByb3BlcnR5IGRyb3AtYnVmZmVyLWZsYWdzIHRoYXQgd2lsbCBkaXNjYXJkIGJ1ZmZlcnMgdGhhdCBoYXZlIHRoZQoJICBnaXZlbiBmbGFncyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTExODIKCjIwMTUtMTEtMTIgMTk6NDY6NDQgKzAwMDAgIFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBmaXggaW5zdGFsbCByYWNlCgkgIFRoZSBpbnN0YWxsIGhvb2sgbmVlZHMgdG8gYmUgYSBpbnN0YWxsLWRhdGEtaG9vayBub3QgYW4gaW5zdGFsbC1leGVjLWhvb2sgYXMgdGhlCgkgIGhlbHBlcnMgYXJlIGluc3RhbGxlZCBpbnRvIGhlbHBlcmRpciB3aGljaCBpcyBjb25zaWRlcmVkIGRhdGEgKG9ubHkgcGF0aAoJICB2YXJpYWJsZXMgd2l0aCAiZXhlYyIgaW4gYXJlIGNvbnNpZGVyZWQgZXhlY3V0YWJsZXMpLgoJICBUaGUgZXhwbGljaXQgZGVwZW5kZW5jeSBvbiBpbnN0YWxsLWhlbHBlcnNQUk9HUkFNUyB3YXMgYW4gYXR0ZW1wdCBhdCBzb2x2aW5nCgkgIHRoaXMsIGJ1dCB0aGlzIGNhdXNlcyBvY2Nhc2lvbmFsIHJhY2VzIHdoZXJlIGluc3RhbGwtaGVscGVyc1BST0dSQU1TIGNhbiBydW4KCSAgdHdpY2UgaW4gcGFyYWxsZWwgKG9uY2UgdmlhIGluc3RhbGwtYWxsLCBvbmNlIHZpYSB0aGUgaG9vaydzIGRlcGVuZGVuY3kpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDI5CgoyMDE1LTExLTEyIDE2OjE0OjE4ICswMTAwICBIZWlucmljaCBGaW5rIDxoZmlua0B0b29sc29uYWlyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogQWRkIHRlc3QgZm9yIGdzdF9jbG9ja19nZXRfcmVzb2x1dGlvbgoJICBJbiBhIHNlcmllcyBvZiB0aW1lIG1lYXN1cmVtZW50cywgdGhlIGRpZmYgYmV0d2VlbiBub3cgYW5kIHByZXZpb3VzCgkgIHRpbWVzdGFtcHMgaXMgZWl0aGVyIDAgb3IgYXQgbGVhc3QgYXMgbG9uZyBhcyBnZXRfcmVzb2x1dGlvbiByZXR1cm5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAxMgoKMjAxNS0xMS0xMiAxMToyNjo1NiArMDEwMCAgSGVpbnJpY2ggRmluayA8aGZpbmtAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IFVzZSBtYWNoX3RpbWUgb24gQXBwbGUgcGxhdGZvcm1zCgkgIE9uIGlPUy9PU1ggZ19nZXRfY3VycmVudF90aW1lIHdhcyB1c2VkIGJ5IGRlZmF1bHQuIEhvd2V2ZXIsIG1hY2hfdGltZSBpcwoJICB0aGUgcHJlZmVycmVkIGhpZ2gtcmVzb2x1dGlvbiBtb25vdG9uaWMgY2xvY2sgdG8gYmUgdXNlZCBvbiBBcHBsZQoJICBwbGF0Zm9ybXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMTIKCjIwMTUtMTEtMTEgMTE6MTE6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyczogbG9nOiBhZGQgbWlzc2luZyBob29rcwoJICBMb2cgYWxsIHBvc3NpYmxlIGhvb2tzCgoyMDE1LTEwLTI5IDA4OjQwOjMyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogYWRkIGVsZW1lbnQtY2hhbmdlLXN0YXRlLXByZS9wb3N0IGhvb2sKCSAgSGVscHMgY2F0Y2hpbmcgd2hlbiBhIHN0YXRlIGNoYW5nZSBpcyBzdGFydGluZyBhbmQgZW5kaW5nLgoJICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHRyYWNrIHRoZSBlbmQgb2Ygc3RhdGUgY2hhbmdlcyBieSBjaGVja2luZyB0aGUKCSAgYXN5bmMtZG9uZSBvciBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBmb3IgZWxlbWVudHMgdGhhdCBkbyBhc3luYyBzdGF0ZSBjaGFuZ2VzLgoKMjAxNS0xMS0xMSAxNDozMjo0NCArMDEwMCAgTWlndWVsIFBhcsOtcyBEw61heiA8bXBhcmlzZGlhekBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGVzdCBmb3IgY2hlY2tpbmcgdGhlIG9yZGVyIG9mIHRoZSBwcm9iZSBjYWxscwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTk3CgoyMDE1LTExLTEwIDE0OjQxOjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBmaXggc29tZSBjb3B5IGFuZCBwYXN0ZSBsZWZ0b3ZlciBpbiBkb2NzCgoyMDE1LTExLTEwIDE0OjM3OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBhZGQgc29tZSBtb3JlIGRvY3VtZW50YXRpb24KCSAgQWRkIGEgc2hvcnQgcGFyYWdyYXBoIG9uIHdoYXQgbWVhbnMgZm9yIGEgY29udGV4dCB0byBiZSBwZXJzaXN0ZW50CgoyMDE1LTExLTA5IDE4OjAyOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiB1c2UgJ3N0YXRpYyBpbmxpbmUnIGluc3RlYWQgb2YgJ2lubGluZSBzdGF0aWMnIGZvciBndGstZG9jCgkgIGd0ay1kb2MgZG9lc24ndCBzZWVtIHRvIHJlY29nbmlzZSB0aGUgZm9ybWVyIHZhcmlhbnQuCgoyMDE1LTExLTA5IDE3OjU5OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgZG9jczogcmVtb3ZlIGR1bW15IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB3aXRoIEdfSU5MSU5FX0ZVTkNUSU9OIGZvciBndGstZG9jCgkgIGd0ay1kb2MgY2FuIGhhbmRsZSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBqdXN0IGZpbmUgdGhlc2UgZGF5cywKCSAgdGhlcmUncyBubyBuZWVkIGZvciB0aGlzIHN0dWZmIGFueSBtb3JlLgoKMjAxNS0wMi0yMyAxMzoxNjoxOSArMTAwMCAgRHVuY2FuIFBhbG1lciA8ZHBhbG1lckBkaWdpc29mdC50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHRoZSBhdmctaW4tcmF0ZSBwcm9wZXJ0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzk1OQoKMjAxNS0xMS0wNCAxMjowMjo1MSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBvdmVycnVuIHNpZ25hbAoJICBOb3RpZmllcyB0aGF0IHRoZSBxdWV1ZTIgaXMgZnVsbCwgc2FtZSBhcyBxdWV1ZSBkb2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM5NTkKCjIwMTUtMDktMjkgMjE6MTQ6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiB0ZXN0cyBmb3IgYWNjZXB0LWNhcHMgaGFuZGxpbmcgd2l0aCBwcm94eSBwYWRzCgkgIEFkZHMgMyBuZXcgdGVzdHMgZm9yIHRlc3RpbmcgYWNjZXB0LWNhcHMgYmVoYXZpb3Igd2l0aAoJICBwcm94eS1jYXBzIHBhZHMuCgkgIDEpIEEgc2NlbmFyaW8gd2hlcmUgdGhlcmUgaXMgbm8gcHJveHkuIFRoZSBjYXBzIHNob3VsZCBiZSBjb21wYXJlZCB0byB0aGUKCSAgdGVtcGxhdGUgY2FwcyBvZiB0aGUgcGFkCgkgIDIpIEEgc2NlbmFyaW8gd2hlcmUgdGhlcmUgaXMgYSBjb21wYXRpYmxlIHBhZC4gVGhlIGNhcHMgc2hvdWxkIGJlIGNvbXBhcmVkCgkgIHRvIHRoZSBwcm94aWVkIHBhZCBjYXBzIChhbmQgYWxzbyB3aXRoIHRoZSB0ZW1wbGF0ZSkKCSAgMykgQSBzY2VuYXJpbyB3aGVyZSB0aGVyZSBpcyBhbiBpbmNvbXBhdGlibGUgcHJveHkgcGFkLiBObyBjYXBzIHNob3VsZCBiZQoJICBwb3NzaWJsZSBhdCBhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxMTIKCjIwMTUtMTEtMDUgMTY6MTU6MjIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayB0ZW1wbGF0ZSBjYXBzIGZvciBwcm94eSBwYWRzIGluIGFjY2VwdC1jYXBzCgkgIFZhbGlkYXRlIHRoYXQgdGhlIHByb3h5IHBhZCBpbmRlZWQgYWNjZXB0cyB0aGUgY2FwcyBieSBhbHNvCgkgIGNvbXBhcmluZyB3aXRoIHRoZSBwYWQgdGVtcGxhdGUgY2Fwcywgb3RoZXJ3aXNlIHdoZW4gdGhlIHBhZAoJICBoYWQgbm8gaW50ZXJuYWxseSBsaW5rZWQgcGFkcyBpdCB3b3VsZCBhbHdheXMgcmV0dXJuIHRydWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxMTIKCjIwMTUtMTEtMDYgMTI6NTg6NDIgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgRml4IGJ1aWxkIHdpdGggLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkCgoyMDE1LTExLTA2IDEyOjA1OjE4ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBwcmVzZXQ6IEFkZCBhIEdTVF9QUkVTRVRfUEFUSCBlbnYgdmFyaWFibGUgZm9yIHByZXNldHMgdG8gYmUgdXNhYmxlIHVuaW5zdGFsbGVkCgkgIEFuZCBzdGFydCBzZXR0aW5nIHRoZSB2YXJpb3VzIHVuaW5zdGFsbGVkIHByZXNldHMgcGF0aHMuCgoyMDE1LTExLTA1IDA4OjU2OjQzICswMTAwICBBbnRvbiBCb25kYXJlbmtvIDxhbnRvbmJvQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogY29udGludWUgZWxlbWVudCBjbGVhbnVwIGV2ZW4gaWYgZmNsb3NlIGZhaWxzCgkgIFNvbWV0aW1lcyBmaWxlc2luayBjbGVhbnVwIGR1cmluZyBzdG9wIG1heSBmYWlsIGR1ZSB0byBmY2xvc2UgZXJyb3IuCgkgIEluIHRoaXMgY2FzZSBvYmplY3QgbGVmdCBwYXJ0aWFsIGNsZWFudXAgd2l0aCBubyBmaWxlIG9wZW5lZAoJICBidXQgc3RpbGwgaG9sZGluZyBvbGQgZmlsZSBkZXNjcmlwdG9yLgoJICBJdCdzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgbG9jYXRpb24gcHJvcGVydHkgaW4gYSBzdWNoIHN0YXRlLAoJICBzbyBuZXh0IHN0YXJ0IHdpbGwgY2F1c2Ugb2xkIGZpbGUgb3ZlcndyaXRlIGlmICdhcHBlbmQnIGRvZXMgbm90IHNldC4KCSAgQWNjb3JkaW5nIHRvIG1hbiBwYWdlIGFuZCBQT1NJWCBzdGFuZGFyZCBhYm91dCBmY2xvc2UgYmVoYXZpb3IoZXh0cmFjdCk6CgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICBUaGUgZmNsb3NlKCkgZnVuY3Rpb24gc2hhbGwgY2F1c2UgdGhlIHN0cmVhbSBwb2ludGVkIHRvIGJ5IHN0cmVhbQoJICB0byBiZSBmbHVzaGVkIGFuZCB0aGUgYXNzb2NpYXRlZCBmaWxlIHRvIGJlIGNsb3NlZC4KCSAgLi4uCgkgIFdoZXRoZXIgb3Igbm90IHRoZSBjYWxsIHN1Y2NlZWRzLCB0aGUgc3RyZWFtIHNoYWxsIGJlIGRpc2Fzc29jaWF0ZWQKCSAgZnJvbSB0aGUgZmlsZSBhbmQgYW55IGJ1ZmZlciBzZXQgYnkgdGhlIHNldGJ1ZigpIG9yIHNldHZidWYoKQoJICBmdW5jdGlvbiBzaGFsbCBiZSBkaXNhc3NvY2lhdGVkIGZyb20gdGhlIHN0cmVhbS4KCSAgLi4uCgkgIFRoZSBmY2xvc2UoKSBmdW5jdGlvbiBzaGFsbCBwZXJmb3JtIHRoZSBlcXVpdmFsZW50IG9mIGEgY2xvc2UoKQoJICBvbiB0aGUgZmlsZSBkZXNjcmlwdG9yIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdHJlYW0KCSAgcG9pbnRlZCB0byBieSBzdHJlYW0uCgkgIEFmdGVyIHRoZSBjYWxsIHRvIGZjbG9zZSgpLCBhbnkgdXNlIG9mIHN0cmVhbSByZXN1bHRzCgkgIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgIFNvIGZpbGUgaXMgaW4gJ2Nsb3NlZCcgc3RhdGUgbm8gbWF0dGVyIGlmIGZjbG9zZSBzdWNjZWVkIG9yIG5vdC4KCSAgQW5kIGNsZWFudXAgY291bGQgYmUgY29udGludWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NTk2CgoyMDE1LTExLTAxIDAwOjA0OjI3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNYXJrIHN0aWNreSBldmVudHMgYXMgc2VudCBvbiBub3QtbGlua2VkCgkgIEluc3RlYWQgb2YgcmUtc2VuZGluZyBzdGlja3kgZXZlbnRzIG92ZXIgYW5kIG92ZXIgdG8gYSBub3QtbGlua2VkCgkgIHBhZCwgbWFyayB0aGVtIGFzIHNlbnQgdGhlIGZpcnN0IHRpbWUuIElmIHRoZSBub3QtbGlua2VkIGNhbWUgZnJvbQoJICBkb3duc3RyZWFtLCBpdCBhbHJlYWR5IHJlY2VpdmVkIHRoZSBldmVudHMuIElmIHRoZSBwYWQgaXMgYWN0dWFsbHkKCSAgbm90LWxpbmtlZCwgdGhlIHN0aWNreSBldmVudHMgd2lsbCBiZSByZXNjaGVkdWxlZCB3aGVuIHRoZQoJICBwYWQgaXMgbGlua2VkIGFueXdheS4KCjIwMTUtMTAtMjkgMTg6NTM6MjkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBbGxvdyBkZWFjdGl2YXRpb24gd2l0aCBubyBwZWVyLgoJICBBbGxvdyBkZWFjdGl2YXRpb24gaW4gcHVsbC1tb2RlLCBzaW5jZSB0aGF0IGltcGxpZXMgd2UKCSAgaGFkIGEgcGVlciwgYWN0aXZhdGVkIGluIHB1bGwgbW9kZSwgdGhlbiB0aGUgcGVlciBkaXNhLXBlZXItZWQgOykKCjIwMTUtMTAtMjggMTc6MzE6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50OiBlbWl0IHRyYWNlcidzIGVsZW1lbnQtbmV3IGhvb2sgZnJvbSAnY29uc3RydWN0ZWQnCgkgIEl0IGFsbG93cyB0byBwcm9wZXJseSBlbWl0dGluZyBpdCBmb3IgYWxsIG5ld2x5IGNyZWF0ZWQgZWxlbWVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzA0NQoKMjAxNS0xMC0yOCAwNjowMzozOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBsb2cgdGhlIGVsZW1lbnQtbmV3IGhvb2sgcHJvcGVybHkKCSAgVG8gYmUgYWJsZSB0byBnZXQgdGhlIHRpbWUgdGhlIGVsZW1lbnRzIHdlcmUgY3JlYXRlZCBpbnN0ZWFkIG9mCgkgIGp1c3QgbG9nZ2luZyB0aGVtIHdpdGhvdXQgYSB0aW1lCgoyMDE1LTEwLTI4IDE4OjA0OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFVuYmxvY2sgYmxvY2tpbmcgcGFkIHByb2JlcyB3aGVuIHJlY2VpdmluZyBGTFVTSF9TVEFSVCBpbiBzZW5kX2V2ZW50KCkgdG9vCgkgIFdpdGhvdXQgdGhpcywgZmx1c2hpbmcgbWlnaHQgbm90IHVuYmxvY2sgdGhlIHN0cmVhbWluZyB0aHJlYWQgYW5kIGNhdXNlIGRlYWRsb2Nrcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzI1NwoKMjAxNS0xMC0yOCAxMzowNDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb2N1bWVudCB0aGUgb3JkZXIgaW4gd2hpY2ggcGFkIHByb2JlcyBhcmUgY2FsbGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTcKCjIwMTUtMTAtMjcgMTg6MDU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQXBwZW5kIGhvb2tzIGluc3RlYWQgb2YgcHJlcGVuZGluZyB0byBjYWxsIHRoZW0gaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTk3CgoyMDE1LTEwLTI2IDEyOjUwOjEyICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIG5ldGFkZHJlc3NtZXRhOiBnc3RfYnVmZmVyX2dldF9uZXRfYWRkcmVzc19tZXRhKCkgYXMgZnVuY3Rpb24KCSAgSW1wbGVtZW50IGdzdF9idWZmZXJfZ2V0X25ldF9hZGRyZXNzX21ldGEoKSBhcyBhIGZ1bmN0aW9uIGluc3RlYWQKCSAgb2YgYSBtYWNybyBpbiBvcmRlciB0byBnZXQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRvIHdvcmsuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5MjEKCjIwMTUtMTAtMjYgMTg6MDc6MTEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBmbGVzaCBvdXQgZG9jcyBmb3IgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgYSBsaXR0bGUKCSAgVGhlcmUgaXMgYSBzaW1pbGFyIGV4cGxhbmF0aW9uIGluIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUsIGJ1dCB0aGUgZXhpc3RpbmcKCSAgZG9jdW1lbnRhdGlvbiBjYW4gYmUgbWlzbGVhZGluZyBzaW5jZSBpdCBkb2VzIG5vdCBkZWZpbmUgd2hhdCAnaXMgYWxyZWFkeQoJICB3cml0YWJsZScgbWVhbnMuCgkgIEFsc28gbm90ZSB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgdXNlZC4KCjIwMTUtMTAtMjYgMTc6MzU6MzQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGNsYXJpZnkgZG9jcyBmb3IgYSBmZXcgZnVuY3Rpb25zIHRoYXQgdGhleSBkb24ndCB1cGRhdGUgdGhpbmdzIGluLXBsYWNlCgkgIEl0IGlzIG5vdCBuZWNlc3NhcmlseSBjbGVhciBmcm9tIHRoZSBleGlzdGluZyBpbnRyb3NwZWN0aW9uIHRhZ3MgYW5kCgkgIGRvY3VtZW50YXRpb24gYWxvbmUuCgoyMDE1LTEwLTI3IDA4OjQ4OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZS9xdWV1ZTI6IFVzZSBHU1RfQlVGRkVSX0RUU19PUl9QVFMKCSAgVGhlIGlucHV0IG9mIHF1ZXVlL3F1ZXVlMiBtaWdodCBoYXZlIERUUyBzZXQsIGluIHdoaWNoIGNhcyB3ZSB3YW50CgkgIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQgKGluc3RlYWQgb2YgdGhlIFBUUykgdG8gY2FsY3VsYXRlIHBvc2l0aW9uCgkgIGFuZCBxdWV1ZSBsZXZlbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1MDcKCjIwMTUtMTAtMTMgMTc6MjA6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVXNlIGJ1ZmZlciBEVFMgaWYgcHJlc2VudCwgZWxzZSBQVFMKCSAgSW4gb3JkZXIgdG8gYWNjdXJhdGVseSBkZXRlcm1pbmUgdGhlIGFtb3VudCAoaW4gdGltZSkgb2YgZGF0YQoJICB0cmF2ZWxsaW5nIGluIHF1ZXVlcywgd2Ugc2hvdWxkIHVzZSBhbiBpbmNyZWFzaW5nIHZhbHVlLgoJICBJZiBidWZmZXJzIGFyZSBlbmNvZGVkIGFuZCBwb3RlbnRpYWxseSByZW9yZGVyZWQsIHdlIHNob3VsZCBiZQoJICB1c2luZyB0aGVpciBEVFMgKGluY3JlYXNpbmcpIGFuZCBub3QgUFRTIChyZW9yZGVyZWQpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1MDcKCjIwMTUtMTAtMjcgMDg6MzM6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVc2UgR1NUX0JVRkZFUl9EVFNfT1JfUFRTCgkgIFNpbXBsaWZpZXMgY29kZSBhIGJpdAoKMjAxNS0xMC0yNiAwNzo1OTo1NCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBBZGQgYSBHU1RfQlVGRkVSX0RUU19PUl9QVFMgbWFjcm8KCSAgQVBJOiBHU1RfQlVGRkVSX0RUU19PUl9QVFMKCSAgTWFueSBzY2VuYXJpb3MvZWxlbWVudHMgcmVxdWlyZSBkZWFsaW5nIHdpdGggc3RyZWFtcyBvZiBidWZmZXJzIHRoYXQKCSAgbWlnaHQgaGF2ZSBEVFMgc2V0IChpLmUuIGVuY29kZWQgZGF0YSwgcG90ZW50aWFsbHkgcmVvcmRlcmVkKQoJICBUbyBzaW1wbGlmeSBnZXR0aW5nIHRoZSBpbmNyZWFzaW5nICJ0aW1lc3RhbXAiIG9mIHRob3NlIGJ1ZmZlcnMsIGNyZWF0ZQoJICBhIG1hY3JvIHRoYXQgd2lsbCByZXR1cm4gdGhlIERUUyBpZiB2YWxpZCwgYW5kIGlmIG5vdCB0aGUgUFRTCgoyMDE1LTEwLTA2IDEyOjIxOjA0ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogYWRkIEdTVF97UFRSLFNFR01FTlR9X0ZPUk1BVAoJICBWZXJ5IHVzZWZ1bCBmb3JtYXRzIGluIGRlYnVnIG91dHB1dCBzbyBiZXN0IHRvIGhhdmUgdGhlbSBpbiB0aGUKCSAgZ2VuZXJhdGVkIGRvYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjExNQoKMjAxNS0xMC0yNiAxMDo1MzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IFJldHVybiAtMSBpZiBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZV9mdWxsKCkgY29uc2lkZXJzIHRoZSBwb3NpdGlvbiBub3QgaW5zaWRlIHRoZSBzZWdtZW50CgkgIEZpeGVzIEdzdFBpcGVsaW5lIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjU2NAoKMjAxNS0xMC0yNCAxNjo1Mjo0NCArMDEwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogZml4IGJlaGF2aW91ciBmb3IgbWVyZ2luZyB1cmlzIGVuZGluZyBpbiAuLiB3aXRob3V0IGZvbGxvd2luZyAvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcwNjUKCjIwMTUtMTAtMjQgMTY6NDM6NTkgKzAxMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHRlc3RzOiBhZGRlZCB1bml0IHRlc3QgZm9yIHN0cmVhbXMgZW5kaW5nIGluIC4uIHdpdGhvdXQgZm9sbG93aW5nIC8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzA2NQoKMjAxNS0wOC0yNyAxMjo0MzoyOCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWc6IER1bXAgcGFkIHByb3BlcnRpZXMgdmFsdWVzCgkgIEN1cnJlbnRseSB3ZSBvbmx5IHNob3cgZWxlbWVudCBwcm9wZXJ0aWVzIHZhbHVlcywgd2Ugc2hvdWxkIGFsc28gc2hvdwoJICBwYWQgcHJvcGVydGllcyB2YWx1ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDE2NgoKMjAxNS0xMC0yMyAyMDowNDo0MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IFJlbW92ZSBsZWZ0b3ZlciBkZWJ1ZyBnX3ByaW50KCkKCjIwMTUtMTAtMTUgMTQ6NDk6MzcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogQWRkIF9mdWxsIHZhcmlhbnRzIG9mIGFsbCBzdHJlYW0vcnVubmluZ190aW1lIGZyb20vdG8gc2VnbWVudCBwb3NpdGlvbiBmdW5jdGlvbnMKCSAgU2VlIGZvcm11bGEgY2xhcmlmaWNhdGlvbnMgaW4gZGVzaWduIGRvY3MgZm9yIGNhbGN1bGF0aW9uIGRldGFpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1NjQKCjIwMTUtMDktMjYgMDE6Mjk6MDcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkZWQgZW52IHZhciBmb3IgdW5pbnN0YWxsZWQgUFRQIGhlbHBlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NjUxCgoyMDE1LTEwLTIyIDEyOjAwOjQyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHJlbmFtZSBhcmd1bWVudCBvZiBQUkVST0xMX3tDT05ELExPQ0t9IG1hY3JvcwoJICBUaGV5IHRha2UgYSBHc3RCYXNlU2luayBpbnN0YW5jZSBhcyBhcmd1bWVudCBhdCBub3QgYSBHc3RQYWQuIFJlbmFtZSB0aGUKCSAgYXJndW1lbnQgdG8gJ29iaicgd2hpY2ggaXMgbm90IG1pc3MgbGVhZGluZyBhbmQgaW4gbGluZSB3aXRoCgkgIEdTVF9CQVNFX1NJTktfUEFEKG9iaikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY5NTQKCjIwMTUtMTAtMjIgMTA6MDU6MTQgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGdzdGNvbnRyb2xzb3VyY2U6IEFkZCBtaXNzaW5nIChvdXQpIGFubm90YXRpb24KCjIwMTUtMTAtMjEgMTQ6MzQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI5OTgwMGEgdG8gYjMxOTkwOQoKMjAxNS0xMC0yMSAxNDo0OTo0OSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggZG9jcy9hbm5vdGF0aW9uIG9mIGdzdF9wYWRfcHJvYmVfaW5mb19nZXRfYnVmZmVyX2xpc3QoKQoJICBJdCdzIG5vdCBnZXRfYnVmZmVybGlzdCgpLiBCZWNhdXNlIG9mIHRoYXQgaXQgd2FzIGlnbm9yZWQgYnkgdGhlIGRvY3MgYW5kCgkgIEctSSwgbGVhZGluZyB0byBjcmFzaGVzIGJlY2F1c2Ugb2YgYnJva2VuIG93bmVyc2hpcCB0cmFuc2Zlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg5OAoKMjAxNS0xMC0yMCAxNzoyOTo0MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgVXNlIG5ldyBHU1RfRU5BQkxFX0VYVFJBX0NIRUNLUyAjZGVmaW5lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NzAKCjIwMTUtMTAtMjEgMTQ6MjU6NDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOWFlZDFkNyB0byBiOTk4MDBhCgoyMDE1LTEwLTIwIDEzOjQ2OjI0ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBhbHdheXMgZnJlZSBsb2cKCSAgV2UgYWx3YXlzIHdhbnQgdG8gZnJlZSB0aGUgb3BlbiBmaWxlIGxvZyBpZiBmb3BlbigpIHN1Y2NlZWRlZC4gSW5kZXBlbmRlbnRseQoJICBvZiBpZiBmZ2V0cygpIHN1Y2NlZWRzIG9yIGZhaWxzLgoJICBDSUQgMTMyNjA1NQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODY0CgoyMDE1LTEwLTE5IDE2OjUwOjUxICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IENvcnJlY3Qgc3RyZWFtX3RpbWUgY2FsYyBmb3IgbmVnYXRpdmUgYXBwbGllZCByYXRlCgkgIFVwZGF0ZWQgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSBhbmQgZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUgdG8gcmVmbGVjdCBjb3JyZWN0IGNhbGN1bGF0aW9ucyBmb3IgdGhlIGNhc2Ugd2hlbiB0aGUgYXBwbGllZCByYXRlIGlzIG5lZ2F0aXZlLgoJICBQYXN0aW5nIGZyb20gZGVzaWduIGRvY3M6CgkgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCSAgU3RyZWFtIHRpbWUgaXMgY2FsY3VsYXRlZCB1c2luZyB0aGUgYnVmZmVyIHRpbWVzIGFuZCB0aGUgcHJlY2VkaW5nIFNFR01FTlQKCSAgZXZlbnQgYXMgZm9sbG93czoKCSAgc3RyZWFtX3RpbWUgPSAoQi50aW1lc3RhbXAgLSBTLnN0YXJ0KSAqIEFCUyAoUy5hcHBsaWVkX3JhdGUpICsgUy50aW1lCgkgIEZvciBuZWdhdGl2ZSByYXRlcywgQi50aW1lc3RhbXAgd2lsbCBnbyBiYWNrd2FyZHMgZnJvbSBTLnN0b3AgdG8gUy5zdGFydCwKCSAgbWFraW5nIHRoZSBzdHJlYW0gdGltZSBnbyBiYWNrd2FyZHMuCgkgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCSAgVGhlcmVmb3JlLCB0aGUgY2FsY3VsYXRpb24gZm9yIGFwcGxpZWRfcmF0ZSA8IDAgc2hvdWxkIGJlOgoJICBzdHJlYW1fdGltZSA9IChTLnN0b3AgLSBCLnRpbWVzdGFtcCkgKiBBQlMgKFMuYXBwbGllZF9yYXRlKSArIFMudGltZQoJICBhbmQgdGhlIHJldmVyc2U6CgkgIEIudGltZXN0YW1wID0gUy5zdG9wIC0gKHN0cmVhbV90aW1lIC0gUy50aW1lKSAvIEFCUyAoUy5hcHBsaWVkX3JhdGUpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4MTAKCjIwMTUtMTAtMTkgMjE6Mzk6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcjogcmVuYW1lIHRoZSBlbnZ2YXIgdG8gR1NUX1RSQUNFUl9QTFVHSU5TCgkgIFRoZSBzdWJzeXN0ZW0gcmV1c2VkIHRoZSBHU1RfVFJBQ0UgdmFyIHRoYXQgaXMgYWxscmVhZHkgaW4gdXNlIGJ5IHRoZSBhbGxvYyB0cmFjZXIuCgkgIEZpeGVzICM3NTY3NjAKCjIwMTUtMTAtMTUgMTY6MzI6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSW1wcm92ZSBpbmNvbWluZyBTRUdNRU5UIGhhbmRsaW5nCgkgIFByZXZpb3VzbHkgdGhpcyBjb2RlIHdhcyBqdXN0IGJsaW5kbHkgc2V0dGluZyB0aGUgY2FjaGVkIGZsb3cgcmV0dXJuCgkgIG9mIGRvd25zdHJlYW0gdG8gR1NUX0ZMT1dfT0sgd2hlbiB3ZSBnZXQgYSBTRUdNRU5ULgoJICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoaXMgY2FuIG5vdCBiZSBkb25lIGJsaW5kbHkuIElmIGRvd25zdHJlYW0gd2FzCgkgIG5vdCBsaW5rZWQsIHRoZSBjb3JyZXNwb25kaW5nIHNpbnFsZXF1ZXVlIHNvdXJjZSBwYWQgdGhyZWFkIG1pZ2h0IGJlCgkgIHdhaXRpbmcgZm9yIHRoZSBuZXh0IElEIHRvIGJlIHdva2VuIHVwIHVwb24uCgkgIEJ5IGJsaW5kbHkgc2V0dGluZyB0aGUgY2FjaGVkIHJldHVybiB2YWx1ZSB0byBHU1RfRkxPV19PSywgYW5kIGlmIHRoYXQKCSAgc3RyZWFtIHdhcyB0aGUgb25seSBvbmUgdGhhdCB3YXMgTk9UX0xJTktFRCwgdGhlbiB0aGUgbmV4dCB0aW1lIHdlCgkgIGNoZWNrIChmcm9tIGFueSBvdGhlciB0aHJlYWQpIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIHdha2UgdXAgYSBzb3VyY2UgcGFkCgkgIHRocmVhZCAuLi4gd2Ugd29uJ3QgZXZlbiB0cnksIGJlY2F1c2Ugbm9uZSBvZiB0aGUgY2FjaGVkIGZsb3cgcmV0dXJuCgkgIGFyZSBlcXVhbCB0byBHU1RfRkxPV19OT1RfTElOS0VELgoJICBUaGlzIHdvdWxkIHJlc3VsdCBpbiB0aGF0IHRocmVhZCBuZXZlciBiZWluZyB3b2tlbiB1cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NjQ1CgoyMDE1LTA5LTI2IDE4OjE2OjA3ICswODAwICBUaW5nLVdlaSBMYW4gPGxhbnR3QHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IEZpeCBidWlsZCB3aXRoIGNsYW5nIC1XZXJyb3I9Y2FzdC1hbGlnbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NjU3CgoyMDE1LTEwLTE3IDIyOjEzOjA4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE1ha2Ugc3VyZSB0byBmcmVlIGFsbCBjYWNoZWQgbWVzc2FnZXMgd2hlbiBnb2luZyB0byBOVUxMCgkgIEFuIEFTWU5DIFJFQURZLT5QQVVTRUQgbWlnaHQgaGF2ZSBmYWlsZWQgd2l0aG91dCB0aGUgYmluIGNvZGUgbm90aWNpbmcgZHVyaW5nCgkgIHRoZSBzdGF0ZSBjaGFuZ2UsIGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBuZXZlciBnZXQgUEFVU0VELT5SRUFEWSBhbmQgd291bGQgbGVhawoJICBtZXNzYWdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjYxMQoKMjAxNS0xMC0xNiAxNTo1OTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IG1lbnRpb24geGRvdCB1dGlsaXR5IHRvIHZpZXcgLmRvdCBmaWxlcyBkaXJlY3RseQoKMjAxNS0xMC0xNiAxMjowMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICBhbGxvY3RyYWNlOiBzaG93IGRldGFpbHMgb2YgZXZlbnRzIGFuZCBtZXNzYWdlcyBsZWFrZWQKCSAgU28gaXQncyBjbGVhcmVyIHdoYXQgbGVha2VkLgoKMjAxNS0xMC0xNiAxMTo1NDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogbWFudWFsOiBpbXByb3ZlIGFkdmFuY2VkIG1ldGFkYXRhIGV4YW1wbGUgYSBiaXQKCSAgQWNjZXB0IGJvdGggZmlsZW5hbWUgYW5kIGEgVVJJIGFzIGFyZ3VtZW50LCBhbmQgcHJpbnQKCSAgdGhlIGVycm9yIGZyb20gdGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlcmUncyBhbiBlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjYzMAoKMjAxNS0xMC0xNSAxOTowNToyMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGZpeCB0eXBvIGluIGRvY3VtZW50YXRpb24KCSAgSXQgc2hvdWxkIGJlIDEuMiB1bmxlc3MgdGhpcyBpcyBhIGZsYWcgZnJvbSB0aGUgZnV0dXJlCgoyMDE1LTA5LTE1IDE4OjA4OjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFjY2VwdCBTVFJFQU1fU1RBUlQgYWZ0ZXIgRU9TCgkgIEluIHRoZSBzYW1lIHdheSBjb3JlIG5vdyBhbGxvd3MgU1RSRUFNX1NUQVJUIHRvIHJlbW92ZSB0aGUgZmx1c2hpbmcKCSAgc3RhdGUgZnJvbSBwYWRzLCB3ZSBuZWVkIHRvIGRvIHRoZSBzYW1lIHRoaW5nIGluIG11bHRpcXVldWUKCjIwMTUtMTAtMTQgMTE6MDM6MjIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBDb252ZXJ0IGZ1bmN0aW9uIHRvIG1hY3JvIGluIHVuaXQgdGVzdCB0byBnZXQgcHJvcGVyIGxpbmUgbnVtYmVycyBvbiBmYWlsdXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzE2CgoyMDE1LTEwLTEyIDE3OjI5OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBVcGRhdGUgaW50ZXJuYWwgcG9zaXRpb24gZXZlbiBpZiBub3QgbGlua2VkCgkgIE91ciBjdXJyZW50IHBvc2l0aW9uIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYmVpbmcgbGlua2VkIG9yIG5vdC4KCSAgQXZvaWRzIGhhdmluZyBzdHJheSBzZWdtZW50IHVwZGF0ZXMgZmlyZWQgZXZlcnkgMnMKCjIwMTUtMTAtMDcgMjI6NTU6NDQgKzAxMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBtZW1vcnkgbGVhayB3aGVuIHNlbmRpbmcgZXZlbnRzIHRvIGFuIEVPUyBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjIwOAoKMjAxNS0xMC0wNyAxMjowMToxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSAgdHJhY2VyczogT25seSBsaW5rIGFnYWluc3QgbGliZ3N0cHJpbnRmLmxhIGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsZWQKCSAgSXQgZG9lcyBub3QgZXhpc3Qgb3RoZXJ3aXNlIGFuZCBsaW5raW5nIHdpbGwgZmFpbC4KCjIwMTUtMTAtMDcgMTE6MjU6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIGdzdC1wdHAtaGVscGVyOiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPiB0byBmaXggbmV0L2lmLmggaW5jbHVkZSBvbiBPU1ggMTAuNgoJICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZ3N0LXB0cC1oZWxwZXIuYzo0MDowOgoJICAvdXNyL2luY2x1ZGUvbmV0L2lmLmg6MjY1OjE5OiBlcnJvcjogZmllbGQgJ2lmcnVfYWRkcicgaGFzIGluY29tcGxldGUgdHlwZQoJICBzdHJ1Y3Qgc29ja2FkZHIgaWZydV9hZGRyOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MTM2CgoyMDE1LTEwLTA3IDEyOjIyOjM0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgUmV2ZXJ0ICJ0cmFjZXJzOiBPbmx5IGJ1aWxkIGdldHJ1c2FnZSgpIHRyYWNlciBpZiBSVVNBR0VfVEhSRUFEIGlzIGF2YWlsYWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4ZGRiZjc2NjI2YTQ4NDIwMzA2ODY5ZGIxZDE3MWY4NTRjYzI1MzEwLgoKMjAxNS0xMC0wNyAxMjoyMTo1NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgdHJhY2Vycy9ydXNhZ2U6IGlmZGVmIHRoZSBSVVNBR0VfVEhSRUFEIHVzYWdlCgkgIFNvbWUgdmVyc2lvbnMgb2YgYW5kb2lkIGRvbid0IHNlZW0gdG8gaGF2ZSBpdC4KCjIwMTUtMTAtMDcgMTE6MTE6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBPbmx5IGJ1aWxkIGdldHJ1c2FnZSgpIHRyYWNlciBpZiBSVVNBR0VfVEhSRUFEIGlzIGF2YWlsYWJsZQoKMjAxNS0xMC0wNiAyMTo0Njo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogcmVtb3ZlIGdzdF90cmFjZXJfcXVhcmtfaWRfZ2V0X3R5cGUKCSAgUmV2ZXJ0IGFkZGl0aW9uIGZyb20gNzc3YmJlZWE2MDUwNTFhZTNkMmZhN2UwMmFkODU4OTAwMWU3OGNlMC4KCjIwMTUtMTAtMDYgMTg6NTI6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IG1vdmUgcHJvdG90eXBlIHRvIHRoZSByaWdodCBoZWFkZXIKCSAgRml4ZXMgdGhlIGJ1aWxkIHdoZW4gdGhlIHRyYWNpbmcgc3Vic3lzdGVtIGlzIGRpc2FibGVkLgoKMjAxNS0xMC0wNiAxODo0OTo0NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogbWFyayBHc3RUcmFjZXJRdWFya0lkIGFzIG5vbiBHRW51bQoJICBUaGlzIHJldmVydHMgNzJjYTAyYjFkZTQwNjZlZWFlMzVjODkxZTI3NTM4Njc3MDExNzc3OCBhbmQgbWFya3MgdGhlIGVudW0KCSAgYWNjb3JkaW5nbHkuCgoyMDE1LTEwLTA2IDE4OjQ2OjI0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBkaXNhYmxlIHRoZSBsb2cgdHJhY2VyIGlmIGRlYnVnIGxvZ2dpbmcgaXMgZGlzYWJsZWQKCjIwMTUtMTAtMDYgMTg6NDU6NDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkgIG1ha2VmaWxlLmFtOiBSZW1vdmUgb2Jzb2xldGUgQW5kcm9pZCBidWlsZCBjcnVmdAoJICBUaGlzIGlzIG5vdCBuZWVkZWQgYW55IGxvbmdlci4KCjIwMTUtMTAtMDYgMTQ6MDE6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBmaXggdGhlIGJ1aWxkIHdpdGggZGVidWcgKHRyYWNlcikgZGlzYWJsZWQKCSAgU3luYyB0aGUgbWFjcm8gZGVmaW5pdGlvbnMuIFRoZSBkdW1teSBkZWZpbmVzIGhhcyBhcmd1bWVudCBtaXNtYXRjaGVzLgoKMjAxNS0xMC0wNiAxMTozOTozMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGZpeCB0aGUgYnVpbGQgd2l0aCBkZWJ1ZyAodHJhY2VyKSBkaXNhYmxlZAoJICBSZW1vdmUgY29tbWFzIGF0IHRoZSBlbmQgb2YgdGhlIG1hY3Jvcy4KCjIwMTUtMDktMDEgMTY6Mzk6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBzdGF0czogYWRkIG1lc3NhZ2Ugc3RydWN0dXJlIHRvIG91dHB1dAoJICBUaGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBpcyBub3QgZW5vdWdoLiBGb3IgZXhhbXBsZSwgc3RhdGUtY2hhbmdlCgkgIGlzIG5vdCBlbm91Z2ggdG8ga25vdyB0aGUgdHJhbnNpdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDQ5NgoKMjAxNS0xMC0wNSAxOTowNTo1OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZGluZyB0cmFjZXIgcXVhcmsgaWQgdG8gZ3N0IGluaXQgYW5kIGRlaW5pdAoJICBGaXhlcyBpc3N1ZXMgYXQgbWFrZSBjaGVjawoKMjAxNS0xMC0wNSAxODo1MDo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBsaWJnc3RyZWFtZXI6IGFkZCB0cmFjZXIgZnVuY3Rpb25zCgoyMDE1LTEwLTA1IDIxOjI5OjQ5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0ZXN0czogZml4IHRoZSB0YWcgdGVzdAoJICBUaGUgcHJldmlvdXMgY2hhbmdlIChzZWUgYmdvICM3NTYwNjkpIHdhcyBjYXVzaW5nIHVzIHRvIGZyZWUgdGhlIHNhbWUgcG9pbnRlcgoJICBtdWx0aXBsZSB0aW1lcy4gSWYgd2UgYWN0dWFsbHkgZ2V0IGEgc2FtcGxlIGJhY2ssIHRoZSB0ZXN0IGZhaWxzLCBubyBuZWVkIHRvCgkgIGZyZWUgYW55dGhpbmcgaW4gdGhhdCBjYXNlLgoKMjAxNS0wNi0wNCAwMTo1MDozNCArMDIwMCAgTWFyY2luIEtvbG55IDxtYXJjaW4ua29sbnlAZmx5dHJvbmljLnBsPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGFkZCBtaXNzaW5nIGhvb2tzCgkgIEFkZCBmb2xsb3dpbmcgaG9va3M6IGVsZW1lbnQtbmV3LCBlbGVtZW50LWFkZC1wYWQsIGVsZW1lbnQtcmVtb3ZlLXBhZCwKCSAgYmluLWFkZC1wcmUsIGJpbi1hZGQtcG9zdCwgYmluLXJlbW92ZS1wcmUsIGJpbi1yZW1vdmUtcG9zdCwgcGFkLWxpbmstcHJlLAoJICBwYWQtbGluay1wb3N0LCBwYWQtdW5saW5rLXByZSwgcGFkLXVubGluay1wb3N0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTg3CgoyMDE1LTAzLTEzIDE4OjMxOjQwICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBnc3RzdGF0czogYWRkIHRocmVhZC1pZCB0byBsb2cgbGluZQoKMjAxNS0wMy0xMyAxMzoxMDo0MiArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGFkZCBwYWQgcXVlcnkgaG9va3MKCjIwMTUtMDEtMTUgMDY6MzI6NDggKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiBzdHJkdXAgdGhlIHBhc3NlZCBwYXJhbWV0ZXJzLgoKMjAxNS0wMS0xMyAyMjoxMTozNCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXI6IFVzZSBHU1RfVElNRV9BUkdTIHdoZW4gcHJpbnRpbmcgd2l0aCBHU1RfVElNRV9GT1JNQVQuCgoyMDE0LTEwLTE2IDEwOjQyOjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIHRyYWNpbmc6IHVwZGF0ZSBkb2NzCgoyMDE0LTEwLTAyIDE5OjUyOjAzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogVElNRVNUQU1QIC0+IFBUUwoKMjAxNC0wOS0yMiAwOTo1NTo1NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2luZzogcmVuYW1lIHRoZSBnbG9iYWwgYXBpIHRvIGdzdF90cmFjaW5nCgkgIFRoaXMgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoYXQgaXMgdGhlIGFwaSBmb3IgdHJhY2VyIGVsZW1lbnRzIGFuZCB3aGF0IGlzIGFwaQoJICBmb3IgdGhlIGdsb2JhbCBzdGF0ZS4KCjIwMTQtMDktMTggMDg6Mjg6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGZpeCBjcHUgc3RhdHMgcHJpbnRpbmcKCSAgT25seSBwcmludCB0aGVtIGlmIHdlIGhhdmUgdGhlbS4gQWxzbyBzY2FsZSB0aGVtIGJ5IDEwLjAgYXMgdGhlIGFyZSBpbgoJICBwZXItbWlsbGUgbm93LgoKMjAxNC0wOS0xOCAwODoyNjoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGVsaW1pbmF0ZSB2YXJfYXJncwoJICBSZWdpc3RlciB0cmFjZXIgaG9va3MgYXMgR0NhbGxiYWNrLiBVc2UgbWFjcm9zIGZvciBob29rIGRpc3BhdGNoIGFuZCBjYXN0IHRoZQoJICBob29rIGZ1bmN0aW9ucyBiYWNrIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlLgoKMjAxNC0wOS0xNyAwOTo0MTo0NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogZG9uJ3Qgd2FybiBvbiAiLmNsYXNzIiBsb2cgbGluZXMKCjIwMTQtMDktMTcgMDg6Mzg6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJICB0cmFjZXJzOiBjb2RlIGNsZWFudXBzCgkgIE1vdmUgc3RhdGljIHZhcmlhYmxlcyB0byBpbnN0YW5jZSB2YXJpYWJsZXMuIEFkZCBmaW5hbGl6ZSBtZXRob2RzLiBSZW1vdmUgY29kZQoJICB0aGF0IGlzIGNvbW1lbnRlZCBvdXQuIENsZWFudXAgbG9ja2luZyBjb2RlLgoKMjAxNC0wOS0xNSAyMjoyNzoxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogdXNlIEdRdWFyayBvciBzdHJpbmdzIGZvciB0aGUgaG9vayBpZAoJICBUaGlzIHdheSBvbmUgY2FuIGRlZmluZSBuZXcgdHJhY2luZyBwcm9iZXMgd2l0aG91dCBjaGFuZ2luZyB0aGUgY29yZS4gV2UgYXJlCgkgIHVzaW5nIG91ciBvd24gcXVhcmsgdGFibGUsIGFzIDEpIHdlIG9ubHkgd2FudCB0byBpbml0aWFsaXplIHRoZW0gaWYgd2UncmUKCSAgdHJhY2luZywgMikgd2Ugd2FudCB0byBzaGFyZSB0aGVtIHdpdGggdGhlIHRyYWNlcnMuCgoyMDE0LTA5LTE1IDEzOjE1OjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHNpbXBsaWZ5IGhvb2sgYXBpCgkgIEluc3RlYWQgb2YgYSBzaW5nbGUgaW52b2tlKCkgZnVuY3Rpb24gYW5kIGEgJ21hc2snLCByZWdpc3RlciB0byBpbmRpdmlkdWFsCgkgIGhvb2tzLiBUaGlzIGF2b2lkcyBvbmUgbGV2ZWwgb2YgaW5kaXJlY3Rpb24gYW5kIGFsbG93cyB1cyB0byByZW1vdmUgdGhlCgkgIGhvb2sgZW51bXMuIFRoZSBtZXNzYWdlIGVubXMgYXJlIG5vdyByZW5hbWVkIHRvIGhvb2sgZW51bXMuCgoyMDE0LTA5LTEyIDE4OjQzOjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogZHJvcCB0aGUgSG9va0lkIGhpZCBmcm9tIHRoZSBpbnZva2UgbWV0aG9kCgkgIFRoZSBNZXNzYWdlSWQgaXMgbW9yZSBkZXRhaWxlZCBhbmQgYW55d2F5IG5lZWRlZCB0byBpbnRlcnByZXQgdGhlIHZhcmFyZ3MuCgoyMDE0LTA5LTEyIDExOjE3OjQxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBmaXh1cCBkb2MgbmFtZSBhbmQgcmVtb3ZlIGNvbW1lbnRlZCBjb2RlCgoyMDE0LTA5LTEyIDA4OjQwOjAxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogYWRkIG1ldGFkYXRhIGZvciB0aGUgbG9nZ2VkIHZhbHVlcwoKMjAxNC0wOS0xMSAxMzowMjo1MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgcnVzYWdlOiBpbXByb3ZlIGNwdSBsb2FkIG1lYXNzdXJlbWVudHMKCSAgR2V0IHRoZSBudW1iZXIgb2YgY3B1cyBhbmQgc2NhbGUgcHJvY2VzcyBjcHUtbG9hZCBhY2NvcmRpbmdseS4gU3dpdGNoIHRoZQoJICBjcHVsb2FkIHRvIGJlIHBlci1taWxsZSB0byBnZXQgc21vb3RoZXIgZ3JhcGhzLiBBZGQgYSBiaXQgbW9yZSBsb2dnaW5nIGFuZCB1c2UKCSAgdGhlIF9PQkpFQ1QgdmFyaWFudC4KCjIwMTQtMDktMTEgMTM6MDA6NTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogcmVtb3ZlIGNvbW1lbnRlZCBjb2RlCgoyMDE0LTA5LTEwIDA4OjMzOjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHRyYWNlciBkZXNpZ24KCSAgVXBkYXRlIHRoZSB0cmFjZXIgZXZlbnQgY2xhc3NlcyBzZWN0aW9uLiBBZGQgYSBwZXJmb3JtYW5jZSBzZWN0aW9uLgoKMjAxNC0wOS0xMCAwODozMjoxOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiB1c2UgR1NUX1BUUl9GT1JNQVQgdG8gbG9nIHRoZSBzdHJ1Y3R1cmUKCSAgVGhpcyB3YXkgd2Ugb25seSBleHBhbmQgdGhlIHN0cnVjdHVyZSB3aGVuIHdlJ3JlIGxvZ2dpbmcuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIG1lYXNzdXJlIHRoZSBwdXJlIHRyYWNpbmcgc2VwZXJhdGVseSBmcm9tIHRoZSBsb2dnaW5nLgoJICBBbHNvIGFkZCBzb21lIGNvbW1lbnRzIG9uIGZ1cnRoZXIgaW1wcm92ZW1lbnRzLgoKMjAxNC0wOS0xMCAwNzo1NTozMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHJ1c2FnZTogaW1wbGVtZW50IHdpbmRvd2luZyBvZiBjcHVsb2FkCgkgIEFkZCBhIGxvY2FsIGhlbHAgdG8gdGhlIHJ1c2FnZSBwbHVnaW4gdGhhdCBzdXBwb3J0cyB3aW5kb3dpbmcgb2YgdmFsdWVzLiBXZSB3YW50CgkgIHRvIGdlbmVyYWxpemUgdGhpcyBmb3IgdXNlIGluIG90aGVyIHBsdWdpbnMuCgoyMDE0LTA5LTA0IDEwOjExOjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgcnVzYWdlOiBhbm5vdW5jZSB0aGUgZGF0YSBmb3JtYXQKCSAgUnVzYWdlIHdpbGwgbm93IGFubm91bmNlIHdoYXQgaXMgbWVhc3N1cmVzIGFuZCBob3cgaXQgaXMgbG9nZ2VkLiBVc2UgdGhlIG5ldyBmb3JtYXQgaW4gc3RhdHMuCgkgIENsZWFudXAgdGhlIHRoZSBjb2RlIGFuZCBuYW1pbmcuCgoyMDE0LTA3LTI4IDIyOjA4OjQ5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGltcHJvdmUgY3B1IGxvYWQgbWVhc3N1cmVtZW50cwoJICBSZW5hbWUgdmFyaWFibGVzIGZvciBjbGFyaXR5LiBIYW5kbGUgdGhlIGluaXRpYWwgZGlzcGFyaXR5IGJldHdlZW4gZGVidWcgdGltZQoJICBhbmQgdGhlIHRpbWUgYWxyZWFkeSBzcGVudCBpbiB0aGUgcHJvYyBhbmQgbWFpbiB0aHJlYWQuCgoyMDE0LTA3LTE4IDA4OjA5OjMyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHRyYWNlciBkZXNpZ24KCjIwMTQtMDctMjggMDg6NDk6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIHF1YXJrczogcmV2ZXJ0IHRoZSBxdWFyayBjaGFuZ2VzLCB3ZSBub3QgdXNpbmcgdGhlbSBhbnltb3JlCgoyMDE0LTA3LTE4IDA3OjQ5OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5Lmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSAgdHJhY2VyOiBzcGxpdCBpbnRvIHRyYWNlciBhbmQgdHJhY2VydXRpbHMKCSAgS2VlcCB0cmFjZXIgYmFzZSBjbGFzcyBpbiB0cmFjZXIgYW5kIG1vdmUgY29yZSBzdXBwb3J0IGludG8gdGhlIHV0aWxzIG1vZHVsZS4KCSAgQWRkIGEgdW5zdGFibGUtYXBpIGd1YXJkIHRvIHRoZSB0cmFjZXIuaCBzbyB0aGF0IGV4dGVybmFsIG1vZHVsZXMgd291bGQgbmVlZCB0bwoJICBhY2tub3dsZWRnZSB0aGUgc3RhdHVzIGJ5IHNldHRpbmcgR1NUX1VTRV9VTlNUQUJMRV9BUEkuCgoyMDE0LTA3LTE2IDE4OjQ4OjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIGRvY3M6IGFkZCBndGstZG9jIGJsb2JzCgoyMDE0LTAyLTIwIDExOjE1OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSAgbGF0ZW5jeTogdGFrZSBzdG9wIHRpbWUgd2hlbiBidWZmZXIgaXMgaGFuZGxlZAoJICBOb3cgd2UgbWVhc3N1cmUgdGltZSBmcm9tICdiZWZvcmUgYnVmZmVyIHRyYW5zZmVyIG9uIHNyYycgdG8gd2hlbiB0aGUgJ2J1ZmZlciBpcyBwcm9jZXNzZWQgb24gc2luaycuCgoyMDE0LTA3LTE1IDA5OjQ5OjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGFkZCBhIGxvZ2dpbmcgaGVscGVyIHRvIHJlbW92ZSBpZGVudGljYWwgY29waWVzIGZyb20gdGhlIHRyYWNlcnMKCjIwMTQtMDItMTggMTY6MTU6NDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogdHdlYWsgdGhlIGdldF9yZWFsX3BhZF9wYXJlbnQoKQoJICBCeSB1c2luZyB0aGUgd2UgZW5kZWQgdXAgb24gdGhlIGFjdHVhbCBlbGVtZW50LCBub3QgdGhlIHBhcmVudC4KCjIwMTQtMDItMTggMTE6MDY6MTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5Lmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcnM6IGFkZCBhIG5ldyBsYXRlbmN5IHRyYWNlcgoJICBBZGQgYSBuZXcgdHJhY2VyIHdpdGggcHVzaGVzIGV4dHJhIGV2ZW50cyB0byBtZWFzc3VyZSBzcmMtdG8tc2luayBwcm9jZXNzaW5nIGxhdGVuY3kuCgoyMDE0LTAyLTE3IDE4OjMwOjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGRlc2lnbiBkb2NzCgkgIEFkZCBuZXcgdHJhY2VyIGlkZWEuCgoyMDEzLTExLTIyIDE5OjEwOjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIGdzdC1zdGF0czogdXNlIHRoZSBydXNhZ2Ugc3RhdHMKCSAgQWRkIGNwdWxvYWQgaW5mbyBmcm9tIHJ1c2FnZSB0cmFjZXMuCgoyMDEzLTExLTIwIDA4OjIyOjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICBydXNhZ2U6IGFkZCBhIG5ldyBydXNhZ2UgdHJhY2VyCgkgIFRoZSB0cmFjZXIgaG9va3MgdXAgdG8gYWxsIHByb2JlcyBhbmQgbG9ncyByZXNvdXJjZSB1c2FnZSBmaWd1cmVzLgoKMjAxNC0wNy0xNSAxMDoyMDoyMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBnc3Qtc3RhdHM6IGZpbHRlciBjb21wbGV0ZSB0aHJlYWQgc2VjdGlvbiBpZiB3ZSBoYXZlIG5vIHBhZHMKCjIwMTMtMTEtMTkgMDg6MDQ6MzggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBpbXByb3ZlIHRoZSBoYW5kbGluZyBvZiBwYXJlbnRhZ2UKCSAgTG9nIG5ldyBvYmplY3QgYWZ0ZXIgd2UgZGlkIHRoZSBjaGVjayBmb3IgcGFyZW50cy4KCjIwMTMtMTEtMTcgMTE6Mzc6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IHByaW50IHRocmVhZCBrZXkgZm9yIHN0YXRzIGFuZCBmaWx0ZXIgZW1wdHkgcGFkLXNlY3Rpb25zCgoyMDEzLTExLTE3IDExOjE1OjM2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiB1cGRhdGUgYnVmZmVyIGZsYWdzCgkgIFJlbW92ZSBzb21lIGJ1ZmZlciBmbGFncyB0aGF0IHdlcmUgbGVmdG92ZXJzIGZyb20gMC4xMCBhbmQgaGFuZGxlIG5ldyAxLjAgYnVmZmVyCgkgIGZsYWdzLgoKMjAxMy0xMS0wNCAyMDoxMTowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogYWRkIGEgc3RhdHMgZnJvbnRlbmQKCSAgUGFyc2UgdGhlIGxvZyBhbmQgY29sbGVjdCBkYXRhIGZyb20gdHJhY2VyIG1lc3NhZ2VzLgoKMjAxMy0xMS0xNSAwOTozNjoyMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyOiB1c2UgdGhlIHNhbWUgdGltZWJhc2UgYXMgdGhlIGxvZ2dpbmcKCjIwMTQtMDctMTYgMDk6MjI6MzcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgZGVzaWduCgoyMDE0LTA3LTE2IDA5OjQxOjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICBsb2c6IGFkZCBxdWVyeSBsb2cgY2F0ZWdvcnkKCjIwMTMtMTEtMDIgMTg6MjQ6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogcGFyc2UgcGFyYW1ldGVycwoKMjAxNC0wNy0xNiAwOToyMjoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogYWRkIG1vcmUgaG9va3MgYW5kIGhhbmRsZSBpdCBpbiB0aGUgcGx1Z2lucwoKMjAxMy0xMC0zMCAwODoxOTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBzdGF0czogaGFuZGxlIGJ1ZmZlciBsaXN0cwoKMjAxMy0xMC0zMCAwODowNDoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIGxvZzogbWFrZSB0aGUgbG9nIHRyYWNlciBtb3JlIHZlcmJvc2UgYWdhaW4KCSAgRGVmaW5lIGxvZyBmb3JtYXRzIHBlciBtZXNzYWdlIHR5cGUgYW5kIHByaW50IGRldGFpbHMuCgoyMDEzLTEwLTI4IDIxOjU5OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogdXNlIGEgbWFjcm9zIGZvciB0aGUgZW5hYmxlZCBjaGVjawoJICBBdm9pZCBhIGZ1bmN0aW9uIGNhbGwgYW5kIGNoZWNrIHRoZSB2YXJpYWJsZXMgZnJvbSB0aGUgbWFjcm8uCgoyMDEzLTEwLTI4IDIxOjM5OjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlcjogdXNlIG1hY3JvcyBmb3IgaG9va3MKCSAgV3JhcCB0aGUgaG9vayB3aXRoIGEgcHJlIGFuZCBwb3N0IG1hY3JvLiBUaGlzIGxvb2tzIGxlc3MgaW50cnVzaXZlIHRoYW4gdGhlCgkgIHByZXZpb3VzIHZlcnNpb24sIGFsdGhvdWdoIGl0IGlzIGEgbGl0dGxlIGxlc3Mgb3B0aW1pemVkLgoKMjAxMy0xMC0yOCAyMToyODoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHBhc3MgdGhlIHRpbWVzdGFtcCBkaXJlY3RseQoJICBBdm9pZCB0aGUgc3RydWN0dXJlIG1hc2hhbGxpbmcgKGFuZCB3ZWlyZCBmaWVsZCBuYW1pbmcpLgoKMjAxMy0xMC0yOCAwODowODoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICBzdGF0czogYWRkIGEgdHJhY2VyIHRoYXQgY29sbGVjdHMgcGlwZWxpbmUgc3RhdGlzdGljcwoJICBUaGlzIGlzIG1vcmUgb3IgbGVzcyBlcXVpdiB0byB0aGUgdGhlIHN0YXRpc3RpY3MgaW4gZ3N0LXRyYWNlbGliLgoKMjAxMy0xMC0yOCAwODowNzo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuaDoKCSAgbG9nOiBhZGQgY2FzdCBtYWNybwoKMjAxMy0xMC0yNyAyMDo0MzoyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcjogcGFzcyB0aGUgaW5zdGFuY2UgdG8gdGhlIHZtZXRob2QKCjIwMTMtMTAtMjcgMTc6MDU6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICBkZXNpZ246IG1vcmUgcGxhbm5pbmcKCjIwMTMtMTAtMjcgMTc6MDQ6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlcjogc3dpdGNoIHRvIHF1YXJrcyBhbmQgYWRkIGFub3RoZXIgaG9vayBmb3IgYnVmZmVyIGZsb3cKCSAgVXNlIHByZS1kZWZpbmVzIHF1YXJrcyBhcyB0aGlzIHdpbGwgYmUgY2FsbGVkIHF1aXRlIG9mdGVuLgoKMjAxMy0xMC0yNyAxMjo0NTo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXI6IGFkZCB0aGUgaG9vay1pZCB0byB0aGUgaW52b2tlIHNpZ25hdHVyZQoJICBUcmFjZXJzIHRoYXQgc3Vic2NyaWJlIHRvIG11bHRpcGxlIGhvb2tzIGNhbiBrbm93IHdoYXQgaG9vayB3YXMgdXNlZC4KCjIwMTMtMTAtMjYgMjI6MDU6MTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBhZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBmYWN0b3J5CgkgIEhhbmRsZSB0cmFjZXIgbW9kdWxlcy4KCjIwMTMtMTAtMjQgMTQ6NDc6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyOiBpbml0aWFsIHByb3RvdHlwZSBmb3IgdGhlIHRyYWNpbmcgc3Vic3lzdGVtCgoyMDE1LTEwLTA1IDExOjEyOjQ3ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRlc3RzL2dzdC1sYXVuY2g6IEZpeCBzYW1wbGUgbWVtb3J5IGxlYWsKCSAgV2hlbiBzYW1wbGUgaXMgZ290IHVzaW5nIGdzdF90YWdfbGlzdF9nZXRfc2FtcGxlX2luZGV4LCBpdCBzaG91bGQKCSAgYmUgZnJlZSdkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MDY5CgoyMDE1LTEwLTAyIDIyOjE3OjA0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIFVwZGF0ZSBHTGliIGRlcGVuZGVuY3kgdG8gMi40MC4wCgoyMDE1LTA4LTIwIDE2OjIxOjU5ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1jb21wbGV0aW9uLWhlbHBlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvZXhhbXBsZXMvcHRwL3B0cC1wcmludC10aW1lcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICBnc3RyZWFtZXI6IEZpeCBtZW1vcnkgbGVha3Mgd2hlbiBjb250ZXh0IHBhcnNlIGZhaWxzCgkgIFdoZW4gZ19vcHRpb25fY29udGV4dF9wYXJzZSBmYWlscywgY29udGV4dCBhbmQgZXJyb3IgdmFyaWFibGVzIGFyZSBub3QgZ2V0dGluZyBmcmVlJ2QKCSAgd2hpY2ggcmVzdWx0cyBpbiBtZW1vcnkgbGVha3MuIEZyZWUnaW5nIHRoZSBzYW1lLgoJICBBbmQgcmVwbGFjaW5nIGdfZXJyb3JfZnJlZSB3aXRoIGdfY2xlYXJfZXJyb3IsIHdoaWNoIGNoZWNrcyBpZiB0aGUgZXJyb3IgYmVpbmcgcGFzc2VkCgkgIGlzIG5vdCBOVUxMIGFuZCBzZXRzIHRoZSB2YXJpYWJsZSB0byBOVUxMIG9uIGZyZWUnaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODUxCgoyMDE1LTA5LTIzIDIzOjAzOjI5ICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogVXNlIGdfc2VxdWVuY2VfbG9va3VwIHdoZXJlIHBvc3NpYmxlCgkgIFdoZW4gbG9va2luZyBmb3IgZXhhY3QgbWF0Y2hlcyBpbiB0aGUgc2VxdWVuY2UsIHRoaXMgcmVzdWx0cwoJICBpbiBtdWNoIHNpbXBsZXIgY29kZSB0aGFuIHdoZW4gdXNpbmcgZ19zZXF1ZW5jZV9zZWFyY2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU0OTgKCjIwMTUtMTAtMDEgMjI6MDk6NTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBmaXggd3JpdGUgb3ZlciB0aGUgYXJyYXkgc2l6ZQoJICBUaGUgJysrJyBnb3QgaW5jaWRlbnRpYWxseSBhZGRlZCBkdXJpbmcgdGhlIHJlZmFjdG9yaW5nIGluCgkgIDJmZTM5MzljZTdlYTg0YzQ1ZGQ5MjJlN2YxMDk3ZGQwN2YxMWZjNWQuCgoyMDE1LTA5LTMwIDE3OjI5OjE2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBjb250cm9scG9pbnQ6IGNoYW5nZSB0aGUgcGFkZGluZyB0byBiZSBvZiBhcmNoLWluZGVwZW5kZW50IHNpemUKCSAgVGhlIGRlZmF1bHQgcGFkZGluZyBJIGludHJvZHVjZWQgaW4gZDRmODFmYjRlNjJkMzRhNGMxZGFiYzY1YjIzZWRlN2NlNzY5NGM2MyBpcwoJICBhY3R1YWxseSBvbmx5IDQgcG9pbnRlcnMgYW5kIG9uIDMyYml0IHBsYXRmb3JtcyBhbHJlYWR5IHNtYWxsZXIgdGhhbiB0aGUgdW5pb24uCgkgIFJlcGxhY2UgaXQgd2l0aCBhIGZpeGVkIDY0Ynl0ZSBwYWRkaW5nLiBEb24ndCBhZGQgdGhlIG5vcm1hbCBwYWRkaW5nIGZvciBub3cuCgkgIEZpeGVzICM3NTU4MjIKCjIwMTUtMDgtMjEgMTc6NDI6NTIgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0cmVhbWVyLXVuaW5zdGFsbGVkOiBhZGQgcGF0aCBmb3IgT3BlbkNWIGhhYXIgY2FzY2FkZSBmaWxlcwoJICBTb21lIE9wZW5DViBwbHVnaW5zIHVzZSBoYWFyIGNhc2NhZGUgZmlsZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlCgkgIEdTdHJlYW1lciBzb3VyY2VzLiBUbyBiZSBhYmxlIHRvIHVzZSB0aGVzZSBmcm9tIHVuaW5zdGFsbGVkLCB0aGV5IG5lZWQKCSAgdG8gYmUgZm91bmQgdGhyb3VnaCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgQWRkaW5nIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgcG9pbnRpbmcgdG8gaGFhciBjYXNjYWRlIGZpbGVzIHRvCgkgIGdzdC11bmluc3RhbGxlZC4KCjIwMTUtMDktMjggMTY6MDE6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZml4ICdmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsJyB3YXJuaW5nIHdpdGggY2xhbmcKCSAgQnJva2UgdGhpcyB3aGVuIEkgcmVtb3ZlZCB0aGUgR19HTlVDX1BSSU5URiBpbiBhIHByZXZpb3VzCgkgIGNvbW1pdCB0byBmaXggaW5kZW50YXRpb24sIHNpbmNlIGl0IHdhcyBub3QgcmVhbGx5IG5lZWRlZC4KCSAgVHVybnMgb3V0IHVubGlrZSBnY2MgY2xhbmcgd2FybnMgdGhvdWdoIGlmIGEgbm9uLWxpdGVyYWwKCSAgZm9ybWF0IHN0cmluZyBpcyBwYXNzZWQgdGhlbi4gRml4IGluZGVudGF0aW9uIGRpZmZlcmVudGx5LgoJICBodHRwOi8vY2xhbmcubGx2bS5vcmcvZG9jcy9BdHRyaWJ1dGVSZWZlcmVuY2UuaHRtbCNmb3JtYXQtZ251LWZvcm1hdAoKMjAxNS0wOS0yOCAxNjo0NTo0NyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGZpeCB0aGUgbWFudWFsIHRlc3RzIGJ5IHNldHRpbmcgdGhlIHJpZ2h0IGVudi12YXJzCgoyMDE1LTA5LTI4IDE2OjIyOjM2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJICBkaXJlY3Rjb250cm9sYmluZGluZzogZml4IGZvcm1hdHRpbmcKCjIwMTUtMDktMjggMTY6MjE6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkgIGluZGV4OiBtYXJrIHR3byBzdHJ1Y3RzIHRoYXQgZG9uJ3QgaGF2ZSBhYmkgcGFkZGluZwoKMjAxNS0wOS0yOCAxNjoxOTo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgY29udHJvbGxlcjogYWRkIHRoZSBtaXNzaW5nIGFiaSBwYWRkaW5nCgkgIFdoaWxlIHRoaXMgdGVjaG5pY2FsbHkgaXMgYW4gYWJpIGJyZWFrLCB3ZSBkZWNpZGVkIHRvIGRvIHRoaXM6CgkgIDEpIHRoZSBzdHJ1Y3QgaXMgZG9jdW1lbnRlZCB0byBiZSBpbnRlcm5hbAoJICAyKSB0aGUgc3RydWN0IGlzIGFsbG9jZWQgYW5kIGZyZWVkIGluc2lkZSB0aGUgbGlicmFyeQoJICAzKSB0aGVyZSBhcmUgbm8gcHVibGljIG1ldGhvZHMgdGhhdCByZWNlaXZlIG9yIHJldHVybiBpbnN0YW5jZXMKCSAgNCkgdGhlIG9ubHkgY29kZSBrbm93biB0byB1c2UgdGhpcyBzdHJ1Y3QgYXJlIGNsYXNzZXMgY29udGFpbmQgaGVyZQoKMjAxNS0wOS0yNCAwMDowNDo0OCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYmluOiBpbXBsZW1lbnQgY29udGV4dCBwcm9wYWdhdGlvbiB3aGVuIGFkZGluZyBlbGVtZW50cwoJICBXaGVuIGFkZGluZyBhbiBlbGVtZW50IHRvIGEgYmluIHdlIG5lZWQgdG8gcHJvcGFnYXRlIHRoZSBHc3RDb250ZXh0J3MKCSAgdG8vZnJvbSB0aGUgZWxlbWVudC4KCSAgVGhpcyBtb3ZlcyB0aGUgR3N0Q29udGV4dCBsaXN0IGZyb20gR3N0QmluIHRvIEdzdEVsZW1lbnQgYW5kIGFkZHMKCSAgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGdldCB0aGUgY3VycmVudGx5IHNldCBsaXN0IG9mIEdzdENvbnRleHQncy4KCSAgVGhpcyBkb2VzIG5vdCBkZWFsIHdpdGggdGhlIGNvbGxlY3Rpb24gb2YgR3N0Q29udGV4dCdzIHByb3BhZ2F0ZWQKCSAgdXNpbmcgR1NUX0NPTlRFWFRfUVVFUlkuICBFbGVtZW50IHN1YmNsYXNzZXMgYXJlIGFkdmlzZWQgdG8gY2FsbAoJICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCBpZiB0aGV5IG5lZWQgdG8gcHJvcGFnYXRlIEdzdENvbnRleHQncwoJICByZWNlaXZlZCBmcm9tIHRoZSBjb250ZXh0IHF1ZXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTc5CgoyMDE1LTA5LTA3IDA5OjM5OjMyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IGFkZCBjdWJpY19tb25vIGludGVycG9sYXRpb24KCSAgVGhpcyBuZXcgbW9kZSB3b24ndCBvdmVyc2hvb3QgdGhlIG1pbi9tYXggeSB2YWx1ZXMgc2V0IGJ5IHRoZSBjb250cm9sLXBvaW50cy4KCSAgRml4ZXMgIzc1NDY3OAoJICBBUEk6IEdTVF9JTlRFUlBPTEFUSU9OX01PREVfQ1VCSUNfTU9OTwoKMjAxNS0wOS0wNyAwOTozNzowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IHJlZmFjdG9yIGNvZGUKCSAgRXh0cmFjdCBjb21tb24gY29kZSB0aGF0IGxvb2tzIHVwIHRoZSBjb250cm9sLXBvaW50cyBhcm91bmQgdGhlIHRpbWVzdGFtcC4gQWRkCgkgIHNvbWUgY29tbWVudHMgZm9yIGZ1dHVyZSBpbnZlc3RpZ2F0aW9uLgoKMjAxNS0wOS0wNCAxNjozODozNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2xsZXItZ3JhcGguYzoKCSAgdGVzdHMvZXhhbXBsZXM6IGFkZCBhIGRlbW8gZm9yIHRoZSBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlIG1vZGVzCgkgIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIG5ldyBtb2RlcyB0byBiZSBhZGRlZC4gSW4gcGFydGljdWxsYXIgaXQgZGVtb25zdHJhdGVzCgkgIGhvdyB0aGUgY3ViaWMgc3BsaW5lcyBvdmVyc2hvb3QgdGhlIHJhbmdlLgoKMjAxNS0wOS0wOSAxMTo1NToyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IHJlbW92ZSBwcm94eWluZyBvZiBhY2NlcHQtY2FwcyBkb3duc3RyZWFtCgkgIFRoZSBkZXNpZ24gaXMgdG8gb25seSBkbyBhIGxvY2FsIGNoZWNrCgoyMDE1LTA4LTI1IDE5OjM3OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgZmFsbGJhY2sgdG8gY2FwcyBxdWVyaWVzIHdpdGggcHJveHkgcGFkcwoJICBBIHByb3h5LXBhZCBzaG91bGQgYWx3YXlzIHByb3h5IHRoZSBjYXBzIHJlbGF0ZWQgcXVlcmllcwoJICBhbmQgZXZlbnRzIHRvIGl0cyBkb3duIG9yIHVwc3RyZWFtIHBlZXJzIG9uIHRoZSBvdGhlciBzaWRlCgkgIG9mIHRoZSBlbGVtZW50LiBGYWxsaW5nIGJhY2sgdG8gYSBjYXBzIHF1ZXJ5IHNlZW1zIHdyb25nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTEyCgoyMDE1LTA5LTI2IDExOjAzOjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBtaW5vciBkb2MgZml4ZXMKCjIwMTUtMDktMDIgMTc6NTg6MzggKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogUmVwbGFjZWQgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24gd2l0aCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3J1bm5pbmdfdGltZQoJICBnc3Rfc2VnbWVudF90b19wb3NpdGlvbiBtaWdodCBjYXVzZSBjb25mdXNpb24sIGVzcGVjaWFsbHkgd2l0aCB0aGUgYWRkaXRpb24gb2YKCSAgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSAuIERlcHJlY2F0ZWQgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24KCSAgbm93LCBhbmQgcmVwbGFjZWQgaXQgd2l0aCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3J1bm5pbmdfdGltZS4KCSAgQWxzbyBhZGRlZCB1bml0IHRlc3RzLgoKMjAxNS0wOS0wMiAxNzozODoyNSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBBZGRlZCB1bml0IHRlc3RzIGZvciBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lCgoyMDE1LTA5LTI1IDE1OjU3OjE2ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lOiBSZW5hbWVkICdyZXN1bHQnIHRvICdzdHJlYW1fdGltZScKCSAgUmVuYW1lZCB0aGUgInJlc3VsdCIgdmFyaWFibGUgdG8gInN0cmVhbV90aW1lIiBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAxNS0wOS0yNSAxNTo1Njo0NSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogQWRkZWQgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSgpCgkgIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUoKSB3aWxsIGNvbnZlcnQgc3RyZWFtIHRpbWUgaW50byBhCgkgIHBvc2l0aW9uIGluIHRoZSBzZWdtZW50IHNvIHRoYXQgZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUoKSB3aXRoIHRoYXQKCSAgcG9zaXRpb24gcmV0dXJucyB0aGUgc2FtZSBzdHJlYW0gdGltZS4gSXQgd2lsbCByZXR1cm4gLTEgaWYgdGhlIHN0cmVhbSB0aW1lCgkgIGdpdmVuIGlzIG5vdCBpbnNpZGUgdGhlIHNlZ21lbnQuCgoyMDE1LTA5LTAyIDE2OjM2OjM1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogUmV3b3JkaW5nIG9mIHN0cnVjdCBmaWVsZCBkZXNjcmlwdGlvbnMKCSAgVGhlIG5ldyB3b3JkaW5nIG1ha2VzIGl0IGVhc2llciB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCBlYWNoIGZpZWxkIG9mIHRoZQoJICBHc3RTZWdtZW50IHN0cnVjdCByZXByZXNlbnRzLgoKMjAxNS0wOC0zMSAxNTozNToxMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogTWFrZSBzdXJlIHRoYXQgdGltZXN0YW1wICsgZGlmZiBpbiBRb1MgZXZlbnRzIGlzIG5ldmVyIHNtYWxsZXIgdGhhbiAwCgkgIFdoZW4gYSBydW5uaW5nLXRpbWUtb2Zmc2V0IGlzIHN0b3JlZCBpbiB0aGUgZXZlbnQsIGl0IGNvdWxkIGJlY29tZSBzbWFsbGVyCgkgIHRoYW4gMCBhbHRob3VnaCB0aGUgZXZlbnQgaXMgb3RoZXJ3aXNlIGNvcnJlY3QuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHBhZAoJICBvZmZzZXRzIGFyZSB1c2VkLgoJICBUbyBwcmV2ZW50IHRoaXMsIHdlIHNldCB0aGUgdGltZXN0YW1wIHRvIC1kaWZmLCBzbyB0aGF0IGluIHRoZSBlbmQgdGhlIHN1bSBvZgoJICBib3RoIGlzIGV4YWN0bHkgMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDM1NgoKMjAxNS0wOS0xNiAyMzo0MDo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBBZGQgdGVzdCBmb3IgY29ycmVjdCBhYnNvbHV0ZSBVUkkgaGFuZGxpbmcgaW4gZ3N0X3VyaV9mcm9tX3N0cmluZ193aXRoX2Jhc2UoKQoJICBJZiB0aGUgc2Vjb25kIHBhcmFtZXRlciBpcyBhbiBhYnNvbHV0ZSBVUkksIHRoZSBiYXNlIHNob3VsZCBoYXZlIG5vIGVmZmVjdCBhbmQKCSAgdGhlIHNlY29uZCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJldHVybmVkIGFnYWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MTM0CgoyMDE1LTA5LTI1IDIzOjUxOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjYuMCA9PT0KCjIwMTUtMDktMjUgMjM6MTQ6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS42LjAKCjIwMTUtMDktMjUgMjI6NDE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA5LTI1IDEwOjE4OjA3ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBGaXggZXJyb3IgbGVhayBkdXJpbmcgZmFpbHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTYwNwoKMjAxNS0wOS0yMSAxMzo1ODo1MSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggcmFjeSBzdGF0ZSBjaGFuZ2UKCSAgSXRlcmF0b3IgbWF5IG5lZWQgdG8gYmUgcmVzeW5jZWQsIGZvciBpbnN0YW5jZSBpZiBwYWRzIGFyZSByZWxlYXNlZAoJICBkdXJpbmcgc3RhdGUgY2hhbmdlLgoJICBnb3RfZW9zIHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgdGhlIG9iamVjdCBsb2NrIG9mIHRoZSBlbGVtZW50LCBub3Qgb2YKCSAgdGhlIHBhZCwgYXMgaXMgdGhlIGNhc2UgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGUgZnVubmVsIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUzNDMKCjIwMTUtMDktMjEgMTU6MjI6MTkgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBiaW46IGVsZW1lbnQ6IElnbm9yZSBhY3RpdmF0ZSByZXN1bHQgZm9yIHJlbW92ZWQgcGFkcyBvbiBzdGF0ZSBjaGFuZ2UKCSAgVGhpcyBmaXhlcyBhIHJhY2Ugd2hlcmUgYSBzdGF0ZSBjaGFuZ2UgbWF5IHJldHVybiBmYWlsdXJlIGlmIGl0IGhhcwoJICByZXF1ZXN0IHBhZHMgdGhhdCBhcmUgZGVhY3RpdmF0ZWQgYW5kIHJlbW92ZWQgKGFuZCB0aHVzIGhhdmUgbm8KCSAgcGFyZW50KSBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBlbGVtZW50IGNoYW5nZXMgc3RhdGUgYW5kIChkZSlhY3RpdmF0ZXMKCSAgaXRzIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUzNDIKCjIwMTUtMDktMjQgMTA6MjM6MTQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGRvbid0IGNyYXNoIHdoZW4gYWRkaW5nIGEgc2luay1oYXJuZXNzIHdpdGhvdXQgaC0+c2lua3BhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NTExCgoyMDE1LTA5LTIzIDIwOjMxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByaW50IGJ1ZmZlciBQVFMgd2hlbiBzdWJtaXR0aW5nIGFuIGlucHV0IGJ1ZmZlcgoKMjAxNS0wOS0yMSAxNDo1ODo0NiArMDkwMCAgRXVuaGFlIENob2kgPGV1bmhhZTEuY2hvaUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggYnVmZmVyIGxlYWsgaW4gc3luY19zdHJlYW1zICYgY2FjaGVfYnVmZmVycyBtb2RlCgkgIEFmdGVyIGRvaW5nIGdzdF9wYWRfcHVzaCgpIGluIGNhc2Ugb2Ygc3luY19zdHJlYW1zIGFuZCBjYWNoZV9idWZmZXJzLAoJICBpZiB0aGUgYnVmZmVyIGNhbiBub3QgYmUga2VwdCBpbiBjYWNoZSwgaXQgc2hvdWxkIGJlIHVucmVmZmVkIHRvIGF2b2lkCgkgIG1lbW9yeSBsZWFja2FnZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTE0MQoKMjAxNS0wOS0xOSAxNjo1NzoyNiArMDUzMCAgVmlrcmFtIEZ1Z3JvIDx2aWtyYW0uZnVncm9AZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBnc3Q6IERvY3VtZW50YXRpb24gdHlwbyBmaXggaW4gY2FwcyAmIHBhZCBBUElzCgkgIGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKSAmIEdTVF9QQURfSVNfQUNDRVBUX0lOVEVSU0VDVCgpCgkgIGRvY3VtZW50YXRpb24gdHlwbyBmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUyNTcKCj09PSByZWxlYXNlIDEuNS45MSA9PT0KCjIwMTUtMDktMTggMTk6MDc6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjkxCgoyMDE1LTA5LTE4IDE5OjA3OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wOS0xOCAxMTo0OTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wOS0xNSAxMDo1Njo0MCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgZG93bmxvYWRidWZmZXIsIGJlbmNobWFya3M6IGZpeCBlcnJvciBsZWFrcyBpbiBmYWlsdXJlIGNvZGUgcGF0aHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTAxOQoKMjAxNS0wOS0xNSAxMDo1Mjo1NSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBGaXggaW5kZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTAxOQoKMjAxNS0wOS0xNSAxODowNToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHNwcmlua2xlIHNvbWUgYWxsb3ctbm9uZSBhbmQgb3V0IGFubm90YXRpb25zIGZvciBnLWkKCjIwMTUtMDktMTQgMTE6MDE6MTEgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IHR5cG8gaW4gbG9nIG1lc3NhZ2Ugd2hlbiB0aHJlYWRwb29sIGFsbG9jIGZhaWxzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ5NzUKCjIwMTUtMDktMTEgMTc6NTg6NDggKzAzMDAgIElnb3IgUm9uZGFyZXYgPGlnb3Iucm9uZGFyZXZAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogQ2hlY2sgZm9yIHNvY2tldHBhaXIoKSBpbiAtbHNvY2tldCB0b28KCSAgT24gZS5nLiBRTlggaXQgaXMgaW4gYW4gZXh0ZXJuYWwgbGlicmFyeSwgbm90IGxpYmMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ4NzUKCjIwMTUtMDktMDkgMTM6MTA6MDQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmV2ZXJ0ICJkb2NzOiBNYWtlIHN1cmUgZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSgpIGlzIGRvY3VtZW50ZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMGRmZmViMDMwMThkMTJiZTUyMmMyZDk3YWFhZjgxMDIxNTNiZDdjMC4KCSAgVGhlIGNvbW1pdCBpcyBlcnJvbmVvdXMgYW5kIGRvY3VtZW50cyB0aGUgZnVuY3Rpb24gdHdpY2UuCgoyMDE1LTA3LTIzIDEyOjE4OjUxICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IE1ha2Ugc3VyZSBnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhKCkgaXMgZG9jdW1lbnRlZAoJICBUaGFua3MgdG8gTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPiBmb3IgcG9pbnRpbmcgdGhpcwoJICBvdXQuCgoyMDE1LTA4LTA1IDEwOjA3OjUwICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZpeCByYWNlIGZvciBnc3RfaGFybmVzc19lbGVtZW50X3JlZgoJICBJbiBvcmRlciBmb3IgZ3N0X2hhcm5lc3NfbmV3X2Z1bGwgdG8gYmUgTVQtc2FmZSB0aGUgaW5jcmVhc2UgYW5kCgkgIGRlY3JlYXNlIG9mIEhBUk5FU1NfUkVGIG11c3QgYmUgTVQtc2FmZS4gVGhpcyBhbGxvd3MgZm9yIGNyZWF0aW5nCgkgIG11bHRpcGxlIGhhcm5lc3NlcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzIHdyYXBwaW5nIHRoZSBzYW1lIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ2NjEKCjIwMTUtMDgtMDUgMDk6NTk6MzkgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBBbGxvdy1ub25lIGZvciBjdXN0b20gc3RyZXNzIGluaXQgZnVuYwoJICBJdCBzaG91bGQgYmUgYWxsb3dlZCB0byBub3QgaGF2ZSBhIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIHVzZXIgZGF0YQoJICBzaW5jZSBpdCdzIG9mdGVuIG5vdCBuZWNlc3Nhcnk7IGl0IG1heSBhbHJlYWR5IGJlIGluaXRpYWxpemVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NjYxCgoyMDE1LTA5LTA2IDA5OjU4OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkgIGRvY3M6IHJlbW92ZSBzaWduYWwgdGhhdCBubyBsb25nZXIgZXhpc3RzIGZyb20gZG9jcwoKMjAxNS0wOS0wNSAxMToyMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIHRyYW5zbGF0ZWQgc3RyaW5nIGNoYW5nZXMKCjIwMTUtMDktMDUgMTE6MTg6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBmaXggLS1leGNsdWRlIGNvbW1hbmQgbGluZSBvcHRpb24KCSAgVGhpcyBoYXMgbm90IHdvcmtlZCAoYXMgaW46IGNyYXNoZWQpIHNpbmNlIDIwMDUsIHNvCgkgIHBlcmhhcHMgaXQgc2hvdWxkIGp1c3QgYmUgcmVtb3ZlZCBpbnN0ZWFkLgoKMjAxNS0wOC0zMSAxMjowNzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIFJldmVydCAicXVldWUyOiBQcm9jZXNzIFNFRUtJTkcgcXVlcnkiCgkgIFRoaXMgY2F1c2VkIHByb2JsZW1zIHdpdGggb2dnZGVtdXggd2hlbiBxdWV1ZTIgd2FzCgkgIG9wZXJhdGluZyBpbiBxdWV1ZSBtb2RlIGFuZCB0aGUgc291cGh0dHBzcmMgdXBzdHJlYW0KCSAgaXMgbm90IHNlZWthYmxlIGJlY2F1c2UgdGhlIHNlcnZlciBkb2Vzbid0IHN1cHBvcnQKCSAgcmFuZ2UgcmVxdWVzdHMuIEl0IHdvdWxkIHRoZW4gc3RpbGwgY2xhaW0gc2Vla2FiaWxpdHkKCSAgYW5kIHRoZW4gdGhpbmdzIGdvIHdyb25nIGZyb20gdGhlcmUuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2IwYjkzZGFmZTRhYzU0NzU1MmNkYjY2YWRlNWQ4YWEwNDA1ZTdiNC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg4NwoKMjAxNS0wOC0yOSAyMDoxNDo0NCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBtaXNjIGJ1Z2ZpeGVzCgkgIDEuIEdldCBhIGxpc3Qgb2YgcGFkIHRlbXBsYXRlcyBmcm9tIHRoZSBlbGVtZW50IGNsYXNzLCBub3QgdGhlCgkgIGZhY3RvcnkuIFRoaXMgYWxsb3dzIHVzIHRvIGludGVyYWN0IHdpdGggdGVzdC1lbGVtZW50cyB0aGF0IGRvZXMKCSAgbm90IGhhdmUgYSBmYWN0b3J5LgoJICAyLiBVc2UgdGhlIHBhZF90ZW1wbGF0ZV9jYXBzIGluIGNhcHMtcXVlcmllcyB3aGVuIGNhcHMgaXMgbm90IHNldAoJICBleHBsaWNpdGx5IG9uIHRoZSBwYWQuIE5vdCBkb2luZyBzbyBpcyBzaW1wbHkgd3JvbmcsIGFuZCBwcm9oaWJpdHMKCSAgaW50ZXJhY3Rpb25zIHdpdGggc3BlY2lhbCB0ZW1wbGF0ZXMgdXNlZCBmb3IgdGVzdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDE5MwoKMjAxNS0wOC0yNiAwOToyOTowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIHRlc3RzOiBldmVudDogZml4IGJ1aWxkIGZhaWx1cmUKCSAgZ3N0L2dzdGV2ZW50LmM6MjUwOjU6IGVycm9yOiDigJhmb3LigJkgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9ucyBhcmUgb25seQoJICBhbGxvd2VkIGluIEM5OSBvciBDMTEgbW9kZQoKMjAxNS0wOC0yNCAyMTowNDozNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBNYWtlIHN1cmUgd2UgZG9uJ3QgYWRkL3JlbW92ZSBhIGJpbiB0by9mcm9tIGl0c2VsZgoJICBEb2luZyBzbyB3b3VsZCBkZWFkbG9jayBmcm9tIHRyeWluZyB0byBhY3F1aXJlIHRoZSBvYmplY3QgbG9jayB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MDM2CgoyMDE1LTA4LTIxIDE0OjI4OjQ4IC0wNzAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVjb25maWd1cmUgYmVmb3JlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBUaGVyZSBleGlzdCBjYXNlcyB3aGVyZSBhIHJlY29uZmlndXJlIGV2ZW50IHdhcyBwcm9wYWdhdGVkIGZyb20KCSAgZG93bnN0cmVhbSwgYnV0IGNhcHMgZGlkbid0IGNoYW5nZS4gSW4gdGhpcyBjYXNlLCB3ZSB3b3VsZAoJICByZWNvbmZpZ3VyZSBvbmx5IHdoZW4gdGhlIG5leHQgYnVmZmVyIGFycml2ZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKCSAgZHVlIHRvIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGJlaW5nIGNhY2hlZCwgdGhlIHJldHVybiBxdWVyeSBwYXJhbWV0ZXJzCgkgIGVuZHVwIG91dGRhdGVkLgoJICBJbiB0aGlzIHBhdGNoIHdlIHJlZmFjdG9yIHRoZSByZWNvbmZpZ3VyYXRpbmcgY29kZSBpbnRvIGEgZnVuY3Rpb24sIGFuZAoJICBhbG9uZyB3aXRoIHJlY29uZmlndXJpbmcgd2hlbiBhIG5ldyBidWZmZXIgY29tZXMgaW4sIHdlIGFsc28gcmVjb25maWd1cmUKCSAgd2hlbiBhIHF1ZXJ5IGFsbG9jYXRpb24gYXJyaXZlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg1MAoKMjAxNS0wOC0wNyAxNTozOTo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmMtdGVzdDogRml4IHJhY2UgdGVzdGluZyBzZWdtZW50IHVwZGF0ZQoJICBBcyB0aGlzIHRlc3QgaXMgdXNpbmcgYSBzaG9ydCBzbGVlcCAoR1NUX1VTRUNPTkQsIHdoaWNoIGlzIDEwbXMKCSAgaW4gbWljcm9zZWNvbmQpLCBzb21ldGltZXMgdGhhdCBFT1MgZXZlbnQgaXMgcmVjZWl2ZWQgYmVmb3JlIHRoZQoJICBsb29wIGluIGJhc2VzcmMgaGF2ZSBydW4gX2RvX3NlZWsoKSBhbmQgcHVzaGVkIHRoZSB1cGRhdGUgc2VnbWVudC4KCSAgVG8gc29sdmUgdGhpcyBpc3N1ZSwgd2Ugd2FpdCBmb3IgdGhlIGluaXRpYWwgc2VnbWVudCAoYW5kIGZsdXNoIGl0KQoJICB0aGVuIHdlIHdhaXQgZm9yIHRoZSBzZWNvbmQgc2VnbWVudCBiZWZvcmUgc2VuZGluZyBFT1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMzNjUKCjIwMTUtMDgtMTkgMTE6NDY6MDcgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBiaW46IEFkZCBOTEUgdG8gR1NUX1BMVUdJTl9QQVRICgo9PT0gcmVsZWFzZSAxLjUuOTAgPT09CgoyMDE1LTA4LTE5IDEyOjUwOjU2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS45MAoKMjAxNS0wOC0xOSAxMjozMzo0MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDgtMTkgMTE6MTc6MjkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDgtMTggMTU6NDQ6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIHRhZyBsaXN0IHNwYW0gaWYgdXBzdHJlYW0gcHJvdmlkZXMgYml0cmF0ZSB0YWdzIGFscmVhZHkKCSAgRXhwbGljaXRseSBrZWVwIHRyYWNrIGFnYWluIHdoZXRoZXIgdXBzdHJlYW0gdGFncyBvciBwYXJzZXIgdGFncwoJICBhbHJlYWR5IGNvbnRhaW4gYml0cmF0ZSBpbmZvcm1hdGlvbiwgYW5kIG9ubHkgZm9yY2UgYSB0YWcgdXBkYXRlCgkgIGZvciBhIGJpdHJhdGUgaWYgd2UgYXJlIGFjdHVhbGx5IGdvaW5nIHRvIGFkZCB0aGUgYml0cmF0ZSB0byB0aGUKCSAgdGFnbGlzdCBsYXRlci4gVGhpcyBmaXhlcyBjb25zdGFudCByZS1zZW5kaW5nIG9mIHRoZSBzYW1lIHRhZ2xpc3QsCgkgIGJlY2F1c2UgdXBzdHJlYW0gcHJvdmlkZWQgYSBiaXRyYXRlIGFscmVhZHkgYW5kIHdlIGRpZG4ndCBhZGQgaXQsCgkgIHNvIHdlIGRpZG4ndCBzYXZlIHRoZSAncG9zdGVkJyBiaXRyYXRlLCB3aGljaCB3b3VsZCB0aGVuIGluIHR1cm4KCSAgYWdhaW4gdHJpZ2dlciB0aGUgJ2JpdHJhdGUgaGFzIGNoYW5nZWQgdG9vIG11Y2gsIHVwZGF0ZSB0YWdzJwoJICBjb2RlIHBhdGguIEZpeGVzIHRhZyBzcGFtIHdpdGggbTRhIGZpbGVzIGZvciBleGFtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE3IDIyOjA2OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYnJpbmcgdGhlIGRvdCBzdHlsZSBhIGJpdCBjbG9zZXIgdG8gd2hhdCB3ZSB1c2UgaW4gdGhlIGRvY3MKCSAgVXNlIHJvdW5kIGNvcm5lcnMgZm9yIGJpbnMgYW5kIGVsZW1lbnRzLiBQdXQgc2luayBwYWRzIG9uIHRoZSBsZWZ0IGFuZCBzcmMgcGFkcwoJICBvbiB0aGUgcmlnaHQgb2YgZWxlbWVudHMuCgoyMDE1LTA4LTE1IDE4OjMwOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggdGFnIGhhbmRsaW5nCgkgIEluIDAuMTAgdGhlcmUgd2VyZSBubyBzdGlja3kgZXZlbnRzLCBhbmQgYWxsIHRhZyBldmVudHMKCSAgc2VudCB3b3VsZCBqdXN0IGJlIG1lcmdlZCB3aXRoIHRoZSBwcmV2aW91c2x5LXJlY2VpdmVkCgkgIHRhZ3MuIEluIDEueCB3ZSBoYXZlIHN0aWNreSBldmVudHMsIGFuZCB0aGUgdGFncyBpbiB0aGUKCSAgdGFnIGV2ZW50KHMpIHNob3VsZCBhdCBhbGwgdGltZXMgY2FycnkgdGhlIGNvbXBsZXRlIHRhZ3MsCgkgIHNvIHdlIGNhbid0IGp1c3QgcHVzaCBzb21lIHRhZ3MgYW5kIHRoZW4ganVzdCBwdXNoIHRhZ3MKCSAgd2l0aCBqdXN0IGJpdHJhdGVzIHRvIHVwZGF0ZSB0aGUgYml0cmF0ZXMsIGV0Yy4KCSAgSW5zdGVhZCB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHVwc3RyZWFtIHN0cmVhbSB0YWdzCgkgIHJlY2VpdmVkLCBvZiB0aGUgdGFncyBzZXQgYnkgdGhlIHZpZGVvIGRlY29kZXIgc3ViY2xhc3MsCgkgIGFuZCBzZW5kIGFuIHVwZGF0ZWQgdGFnIGV2ZW50IHdpdGggdGhlIGNvbWJpbmVkIHRhZ3MKCSAgaW5jbHVkaW5nIG91ciBvd24gYml0cmF0ZSB0YWdzIChpZiBhcHBsaWNhYmxlKSB3aGVuZXZlcgoJICB0aGUgdXBzdHJlYW0gdGFncywgdGhlIHN1YmNsYXNzIHRhZ3Mgb3IgYW55IG9mIG91ciBiaXRyYXRlcwoJICBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTYgMTA6MTU6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VwYXJzZTogYWRkIEFQSSBmb3Igc3ViY2xhc3MgdG8gc2V0IHRhZ3MKCSAgVGhpcyBpcyBuZWVkZWQgc28gdGhhdCB3ZSBjYW4gZG8gcHJvcGVyIHRhZyBoYW5kbGluZwoJICBhbGwgYXJvdW5kLCBhbmQgY29tYmluZSB0aGUgdXBzdHJlYW0gdGFncyB3aXRoIHRoZQoJICB0YWdzIHNldCBieSB0aGUgc3ViY2xhc3MgYW5kIGFueSBleHRyYSB0YWdzIHRoZQoJICBiYXNlIGNsYXNzIG1heSB3YW50IHRvIGFkZC4KCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9tZXJnZV90YWdzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNSAxNjowMToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2F2ZSB1cHN0cmVhbSBzdHJlYW0gdGFncwoJICBXZSdsbCBuZWVkIHRob3NlIGxhdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE1IDE2OjM5OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciBjb2RlIHNpbXBsaWZpY2F0aW9uCgkgIFVzZSBnc3RfcGFkX3BlZXJfcXVlcnlfZHVyYXRpb24oKSBhbmQgcmVtb3ZlIGEgZmV3CgkgIHVubmVjZXNzYXJ5IGxldmVscyBvZiBpbmRlbnRhdGlvbi4gUmVzdCBvZiBjb2RlIG1pZ2h0CgkgIGxvb2tzIGEgYml0IHF1ZXN0aW9uYWJsZSwgYnV0IGxlYXZlIGl0IGFzIGlzIGZvciBub3cuCgoyMDE1LTA4LTE1IDE3OjU5OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEJyZWFrIHN0aWNreSBldmVudCBhcnJheSBpdGVyYXRpb25zIGlmIHRoZSB0eXBlIGlzIGJpZ2dlciB0aGFuIHRoZSBvbmUgd2UgbG9vayBmb3IKCSAgTWljcm9vcHRpbWl6YXRpb24gd2UgY2FuIGRvIGJlY2F1c2UgdGhlIGFycmF5IGlzIHNvcnRlZCBieSB0eXBlLgoKMjAxNS0wNC0yOSAxNTo0OToxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQWRkIGEgbmV3IEdTVF9QUk9CRV9IQU5ETEVEIHJldHVybiB2YWx1ZSBmb3IgcHJvYmVzCgkgIEluIHNvbWUgY2FzZXMsIHByb2JlcyBtaWdodCB3YW50IHRvIGhhbmRsZSB0aGUgYnVmZmVyL2V2ZW50L3F1ZXJ5CgkgIHRoZW1zZWx2ZXMgYW5kIHN0b3AgdGhlIGRhdGEgZnJvbSB0cmF2ZWxsaW5nIGZ1cnRoZXIgZG93bnN0cmVhbS4KCSAgV2hpbGUgdGhpcyB3YXMgc29tZXdoYXQgcG9zc2libGUgd2l0aCBidWZmZXIvZXZlbnRzIGFuZCB1c2luZwoJICBHU1RfUFJPQkVfRFJPUCwgaXQgd2FzIG5vdCBhcHBsaWNhYmxlIHRvIHF1ZXJpZXMsIGFuZCB3b3VsZCByZXN1bHQKCSAgaW4gdGhlIHF1ZXJ5IGZhaWxpbmcuCgkgIFdpdGggdGhpcyBuZXcgR1NUX1BST0JFX0hBTkRMRUQgdmFsdWUsIHRoZSBidWZmZXIvZXZlbnQvcXVlcnkgd2lsbAoJICBiZSBjb25zaWRlcmVkIGFzIHN1Y2Nlc3NmdWxseSBoYW5kbGVkLCB3aWxsIG5vdCBiZSBwdXNoZWQgZnVydGhlcgoJICBhbmQgdGhlIGFwcHJvcHJpYXRlIHJldHVybiB2YWx1ZSAoVFJVRSBvciBHU1RfRkxPV19PSykgd2lsbCBiZSByZXR1cm5lZAoJICBUaGlzIGFsc28gYWxsb3dzIHByb2JlcyB0byByZXR1cm4gYSBub24tZGVmYXVsdCBHc3RGbG93UmV0dXJuIHdoZW4gZGVhbGluZwoJICB3aXRoIGJ1ZmZlciBwdXNoLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCgkgIEdTVF9QQURfUFJPQkVfSU5GT19GTE9XX1JFVFVSTigpIGZpZWxkIGFjY29yZGluZ2x5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg2NDMKCjIwMTUtMDgtMTUgMTM6MjU6MzUgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIGdzdHZlcnNpb246IEFkZCBtaXNzaW5nIGluY2x1ZGUgaW4gLmluIGZpbGUuCgoyMDE1LTA4LTExIDAwOjM1OjIxICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGVsZW1lbnRtZXRhZGF0YS5oOgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgSGVhZGVyczogYWRkIG1pc3NpbmcgaW5jbHVkZXMuCgoyMDE1LTA4LTE1IDA2OjQxOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgdGhlIG5ldyBwYWQgYWNjZXB0LXRlbXBsYXRlIGZsYWcgdG8gdGhlIGRvY3MKCjIwMTUtMDgtMTQgMjI6NDQ6NTAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHNlY3Rpb24gZW50cnkgbWlzc2luZyBmb3IgZ3N0X2RpcmVjdF9jb250cm9sX2JpbmRpbmdfbmV3X2Fic29sdXRlCgoyMDE1LTA4LTE0IDA4OjE0OjUyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IHRlc3RzIGZvciBhY2NlcHQtY2FwcyBkZWZhdWx0IGhhbmRsaW5nCgkgIENoZWNrIGlmIGFsbCB0aGUgZGVmYXVsdCA0IGFjY2VwdC1jYXBzIHBvc3NpYmlsaXRpZXMgYXJlIHdvcmtpbmc6CgkgIHN1YnNldCBvciBpbnRlcnNlY3QgY2hlY2sgYW5kIHF1ZXJ5LWNhcHMgb3IgdGVtcGxhdGUgY2FwcyBjb21wYXJpc29ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzYyMwoKMjAxNS0wOC0xNCAwNzo1MTowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIEdTVF9QQURfRkxBR19BQ0NFUFRfVEVNUExBVEUKCSAgSXQgd2lsbCBtYWtlIHRoZSBkZWZhdWx0IGFjY2VwdC1jYXBzIGhhbmRsZXIgdXNlIHRoZSBwYWQgdGVtcGxhdGUKCSAgY2FwcyBpbnN0ZWFkIG9mIHRoZSBxdWVyeS1jYXBzIHJlc3VsdCB0byBjaGVjayBpZiB0aGUgY2FwcyBpcwoJICBhY2NlcHRhYmxlLiBUaGlzIGlzIGFsaWduZWQgd2l0aCB3aGF0IHRoZSBkZXNpZ24gZG9jcyBzYXlzIHRoZQoJICBhY2NlcHQtY2FwcyBzaG91bGQgZG8gKGJlIG5vbi1yZWN1cnNpdmUpIGFuZCBzaG91bGQgYmUgZmFzdGVyLiBJdAoJICBpcyAqbm90KiBlbmFibGVkIGJ5IGRlZmF1bHQsIHRob3VnaC4KCSAgQVBJOiBHU1RfUEFEX0ZMQUdfQUNDRVBUX1RFTVBMQVRFCgkgIEFQSTogR1NUX1BBRF9JU19BQ0NFUFRfVEVNUExBVEUKCSAgQVBJOiBHU1RfUEFEX1NFVF9BQ0NFUFRfVEVNUExBVEUKCSAgQVBJOiBHU1RfUEFEX1VOU0VUX0FDQ0VQVF9URU1QTEFURQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNjIzCgoyMDE1LTA4LTE0IDExOjEwOjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgY2hlY2s6IFJlbmFtZSBzdGF0ZXMgdW5pdCB0ZXN0CgkgIE1ha2VzIGl0IGVhc2llciB0byBkaWZmZXJlbnRpYXRlIGZyb20gb3RoZXIgbW9kdWxlcyBzdGF0ZXMgdW5pdCB0ZXN0CgoyMDE1LTA4LTEzIDEzOjA4OjAzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmV3b3JrIGFjY2VwdC1jYXBzCgkgIEFjY29yZGluZyB0byB0aGUgZGVzaWduIGRvY3M6CgkgIFRoZSBBQ0NFUFRfQ0FQUyBxdWVyeSBpcyBub3QgcmVxdWlyZWQgdG8gd29yayByZWN1cnNpdmVseSwgaXQgY2FuIHNpbXBseQoJICByZXR1cm4gVFJVRSBpZiBhIHN1YnNlcXVlbnQgQ0FQUyBldmVudCB3aXRoIHRob3NlIGNhcHMgd291bGQgcmV0dXJuCgkgIHN1Y2Nlc3MuCgkgIFNvIG1ha2UgaXQgYSBzaGFsbG93IGNoZWNrIGluc3RlYWQgb2YgcmVjdXJzaXZlbGx5IGNoZWNrIGRvd25zdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg2MzUKCjIwMTUtMDgtMTMgMTI6NDQ6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgc29tZSBkZWFkIGNvZGUKCSAgRG9lc24ndCBzZWVtIGxpa2UgaXQgaXMgZ29pbmcgdG8gZ2V0IGJhY2sgdG8gbGlmZSBhbnl0aW1lIHNvb24KCSAgQWxzbyByZW1vdmVzIGEge30gYmxvY2sgdGhhdCB3YXMgbGlrZWx5IHVzZWQgdG8ga2VlcCB0aGUgZGVhZAoJICBjb2RlIGFyb3VuZC4KCjIwMTUtMDgtMTEgMDg6MDc6NTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZXNwZWN0IGFjY2VwdC1jYXBzIGludGVyc2VjdCBmbGFnCgkgIEdzdFBhZCBoYXMgYSBmbGFnIGZvciBzdWdnZXN0aW5nIGlmIHRoZSBhY2NlcHQtY2FwcwoJICBxdWVyeSBzaG91bGQgdXNlIGludGVyc2VjdCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0CgkgIHN1YnNldCBjYXBzIG9wZXJhdGlvbiB0byB2ZXJpZnkgaWYgdGhlIGNhcHMgd291bGQgYmUKCSAgYWNjZXB0YWJsZS4KCSAgYmFzZXRyYW5zZm9ybSBjdXJyZW50bHkgYWx3YXlzIHVzZXMgdGhlIHN1YnNldCBjaGVjayBhbmQKCSAgdGhpcyBwYXRjaCBtYWtlcyBpdCBob25vciB0aGUgZmxhZyBmb3IgdXNpbmcgaW50ZXJzZWN0CgkgIGlmIGl0IGlzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODYzNQoKMjAxNS0wOC0xMiAxMzoxMjozOCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgdW5yZWFjaGFibGUgcmV0dXJuIHN0YXRlbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNTM4CgoyMDE1LTA4LTExIDExOjA5OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyBoYXJuZXNzIHRlc3QgYmluYXJ5CgoyMDE1LTA4LTEwIDE1OjMxOjM3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGFjY2VwdCBqdXN0IGEgdGltZSBhcyBJU08gODYwMSBzdHJpbmcgYW5kIHVzZSB0b2RheSdzIGRhdGUgdGhlbgoJICBJZiBubyBkYXRlIGFuZCBvbmx5IGEgdGltZSBpcyBnaXZlbiBpbiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX2lzbzg2MDFfc3RyaW5nKCksCgkgIGFzc3VtZSB0aGF0IGl0IGlzICJ0b2RheSIgYW5kIHRyeSB0byBwYXJzZSB0aGUgdGltZS1vbmx5IHN0cmluZy4gIlRvZGF5IiBpcwoJICBhc3N1bWVkIHRvIGJlIGluIHRoZSB0aW1lem9uZSBwcm92aWRlZCBieSB0aGUgdXNlciAoaWYgYW55KSwgb3RoZXJ3aXNlIFogLQoJICBqdXN0IGxpa2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBleGlzdGluZyBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNDU1CgoyMDE1LTA3LTI0IDAwOjQxOjU3ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogYWRkIF9zZXRfZm9yd2FyZGluZyBmdW5jdGlvbgoJICBUbyBiZSBhYmxlIHRvIGRpc2FibGUgdGhlIHNsaWdodGx5ICJtYWdpYyIgZm9yd2FyZGluZyBvZiB0aGUKCSAgbmVjZXNzYXJ5IGV2ZW50cyBiZXR3ZWVuIHRoZSBoYXJuZXNzZXMuCgkgIEFsc28gaW50cm9kdWNlIGEgbmV3IHRlc3Qtc3VpdGUgZm9yIEdzdEhhcm5lc3MsIHRoYXQgZG9jdW1lbnRzIHRoZQoJICBmZWF0dXJlLCBhbmQgc2hvdWxkIGhvcGVmdWxseSBleHBhbmQgaW50byBkb2N1bWVudGluZyBtb3N0IG9mIHRoZQoJICBmZWF0dXJlcyB0aGUgaGFybmVzcyBwb3NzZXNzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI3NDYKCjIwMTUtMDgtMDggMTc6NTk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogZml4IHByb3ZpZGVyIGxlYWsKCjIwMTUtMDgtMDggMTU6Mjg6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHByZXZpb3VzIGNvbW1pdAoJICBXZSB3YW50IHRvIGdldCB0aGUgY2FwcyBxdWVyeSAqcmVzdWx0KgoKMjAxNS0wNy0xNiAxODo1NjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vwcm92aWRlcjogQWRkIG1ldGhvZCB0byBoaWRlIGRldmljZXMgZnJvbSBhIHByb3ZpZGVyCgkgIEFkZCBtZXRob2RzIHRvIGFkZC9yZW1vdmUgdGhlIHByb3ZpZGVycyB0aGF0IHNob3VsZCBiZSBoaWRkZW4gYnkgdGhpcwoJICBwcm92aWRlci4gQWxzbyBtYWtlIGEgbWV0aG9kIHRvIGdldCBhIGxpc3Qgb2YgaGlkZGVuIHByb3ZpZGVycy4KCSAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIG11bHRpcGxlIHN5c3RlbXMgbW9uaXRvciB0aGUgc2FtZSBkZXZpY2VzCgkgIGFuZCByZW1vdmUgZHVwbGljYXRlcy4KCSAgQWRkIGEgcHJvcGVydHkgdG8gc2VlIGFsbCBkZXZpY2VzLCBldmVuIGR1cGxpY2F0ZSBvbmVzIGZyb20gaGlkZGVuCgkgIHByb3ZpZGVycy4KCjIwMTUtMDgtMDggMTQ6NDI6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZ2V0X2FsbG93ZWRfY2FwcygpIHNob3VsZCBnbyB0aHJvdWdoIGJvdGggcGFkcwoJICBUaGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gd2FzIGRvaW5nIGEgZGlyZWN0IGNhbGwgdG8gdGhlIHBlZXIgcGFkLAoJICB3aGljaCByZXN1bHRlZCBpbiBxdWVyeSBwcm9iZXMgbmV2ZXIgYmVpbmcgY2FsbGVkIG9uIHRoZSBvcmlnaW5hbCBwYWQuCgkgIEluc3RlYWQgb2YgdGhhdCwgZ2V0IHRoZSBwZWVyIHBhZCBjYXBzIGJ5IHVzaW5nIGdzdF9wYWRfcGVlcl9xdWVyeSgpCgkgIHdoaWNoIHdpbGwgY2FsbCBwcm9iZXMgaW4gdGhlIGV4cGVjdGVkIGZhc2hpb24uCgoyMDE1LTA4LTA3IDEwOjA4OjIxICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmcmVlIGNhcHMgZHVyaW5nIGZhaWx1cmUKCSAgV2hpbGUgY2FsbGluZyBnc3RfdmFsdWVfZGVzZXJpYWxpemVfc2FtcGxlLCBpZiB0aGVyZSBpcyBhIGZhaWx1cmUKCSAgYWZ0ZXIgY2FwcyBpcyByZWYnZWQsIHRoZW4gY2FwcyBpcyBnZXR0aW5nIGxlYWtlZC4gSGVuY2UgY2hlY2tpbmcgZm9yCgkgIGNhcHMgaW4gZmFpbDogZ290byBjb25kaXRpb24gYW5kIHVucmVmJ2luZyBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMzM4CgoyMDE1LTA3LTIxIDEzOjM1OjMzICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IEFkZCBwbHVnaW5zIHRvIHRoZSByZWdpc3RyeSB3ZSBhcmUgbG9hZGluZyBhbmQgbm90IGRlZmF1bHQgb25lCgkgIFdoZW4gcnVubmluZyBnc3RfcmVnaXN0cnlfc2Nhbl9wbHVnaW5fZmlsZSB3ZSB3ZXJlIGxvc2luZyB0aGUKCSAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlZ2lzdHJ5IGJlaW5nIGxvYWRlZCBhbmQgZW5kZWQgdXAgYWRkaW5nIHRoZQoJICBwbHVnaW4gdG8gdGhlIGRlZmF1bHQgcmVnaXN0cnkgd2hpY2ggd2FzIG5vdCBjb3JyZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNjYyCgoyMDE1LTA4LTA1IDE1OjUxOjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBPbmx5IGRyb3AgYnVmZmVyIGlmIHRoZWlyIFBUUyBpcyBvdXQgb2Ygc2VnbWVudAoJICBBcyBvZiBub3csIGV2ZW4gZm9yIHN0cmVhbSBjb21wbGV0bHkgaW5zaWRlIHNlZ21lbnQsIHRoZXJlIGlzIG5vCgkgIGd1YXJhbnRpZWQgdGhhdCB0aGUgRFRTIHdpbGwgYmUgaW5zaWRlIHRoZSBzZWdtZW50LiBTcGVjaWZpY2FsbHkKCSAgZm9yIEguMjY0IHdpdGggQi1GcmFtZXMsIHRoZSBmaXJzdCBmZXcgZnJhbWVzIG9mdGVuIGhhdmUgRFRTIHRoYXQKCSAgYXJlIGJlZm9yZSB0aGUgc2VnbWVudC4KCSAgSW5zdGVhZCBvZiB1c2luZyB0aGUgc3luYyB0aW1lc3RhbXAgdG8gY2xpcCBvdXQgb2Ygc2VnbWVudCBidWZmZXIsCgkgIHRha2UgdGhlIGR1cmF0aW9uIGZyb20gdGhlIHN0YXJ0L3N0b3AgcHJvdmlkZWQgYnkgdGhlIHN1Yi1jbGFzcywgYW5kCgkgIGNoZWNrIGlmIHRoZSBwdHMgYW5kIHB0c19lbmQgaXMgb3V0IG9mIHNlZ21lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI3OTEKCjIwMTUtMDgtMDUgMTQ6MDU6MjUgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGRvbid0IHJ1biBjb2RlIGluc2lkZSBnX2Fzc2VydAoJICBFdmVuIHRob3VnaCBhc3NlcnRzIGNhbid0IGJlIGRpc2FibGVkIGluIEdzdEhhcm5lc3MsIENvdmVyaXR5IHN0aWxsCgkgIGNvbXBsYWlucyBhYm91dCBydW5uaW5nIGNvZGUgaW5zaWRlIHRoZW0uIE1vdmluZyB0aGUgY29kZSB0byBvdXRzaWRlIHRoZQoJICBnX2Fzc2VydHMoKS4KCSAgQ0lEICMxMzExMzI2LCAjMTMxMTMyNywgIzEzMTEzMjgKCjIwMTUtMDctMTcgMTA6MTg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZW1vbml0b3I6IGdldCBhIGxpc3Qgb2YgY3VycmVudGx5IG1vbml0b3JlZCBwcm92aWRlcnMKCSAgR2V0IGEgbGlzdCBvZiB0aGUgY3VycmVudGx5IG1vbml0b3JlZCBwcm92aWRlcnMuCgoyMDE1LTA4LTAyIDE3OjM4OjE0ICswMjAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBpbnZhbGlkIHVucmVmIGFmdGVyIElETEUgcHJvYmUgb24gbm9uLU9LIGZsb3cgcmV0dXJuCgkgIEluIGNhc2UgdGhlcmUgaXMgYW4gSURMRSBwcm9iZSBmaXJlZCBmcm9tIGdzdF9wYWRfcHVzaF9kYXRhIGFuZCBpdAoJICBkb2Vzbid0IHJldHVybiBHU1RfRkxPV19PSywgdGhlIGNvZGUganVtcHMgdG8gdGhlIHByb2JlX3N0b3BwZWQKCSAgbGFiZWwgd2hpY2ggdHJpZXMgdG8gdW5yZWYgdGhlIGRhdGEgb2JqZWN0LiBIb3dldmVyLCBhdCB0aGlzIHBvaW50CgkgIHRoZSBkYXRhIG9iamVjdCBiZWxvbmdzIGRvd25zdHJlYW0gYW5kIG11c3Qgbm90IGJlIHRvdWNoZWQuCgkgIEJ5IHNldHRpbmcgZGF0YSA9IE5VTEwsIHRoZSBjb2RlIHNraXBzIHRoaXMgdW5yZWYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMTUxCgoyMDE1LTA4LTA0IDIwOjA4OjA0ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggdGhlIG5hbWUgb2YgdGhlIHBhcmVudGJ1ZmZlcm1ldGEgZGVidWcgY2F0ZWdvcnkuCgkgIERvbid0IHVzZSAnZ2xidWZmZXJyZWZtZXRhJyBhcyB0aGUgZGVidWcgY2F0ZWdvcnkgZm9yIHRoZQoJICBwYXJlbnQgYnVmZmVyIG1ldGEuCgoyMDE1LTA4LTA0IDEzOjQ1OjA5ICswOTAwICBFdW5oYWUgQ2hvaSA8ZXVuaGFlMS5jaG9pQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBub3QgdXBkYXRlIHVwc3RyZWFtIHNpemUgd2l0aCBuZWdhdGl2ZSB2YWx1ZQoJICB1cHN0cmVhbV9zaXplIGNhbiBiZSBuZWdhdGl2ZSBidXQgcXVldWUtPnVwc3RyZWFtX3NpemUgaXMgdW5zaWduZWQgdHlwZS4KCSAgdG8gZ2V0IGEgY2hhbmNlIHRvIHVwZGF0ZSBxdWV1ZS0+dXBzdHJlYW1fc2l6ZSBpbiBnc3RfcXVldWUyX2dldF9yYW5nZSgpCgkgIGl0IHNob3VsZCBrZWVwIHRoZSBkZWZhdWx0IHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDExCgoyMDE1LTA4LTA0IDE5OjU5OjI4ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogUmVtb3ZlIGV4dHJhIGRlYnVnIHN5bWJvbCBmcm9tIGV4cG9ydHMKCSAgRG9uJ3QgZXhwb3J0IHRoZSBkZWJ1ZyB2YXJpYWJsZSBmb3IgdGhlIHBhcmVudF9idWZmZXJfbWV0YS4KCSAgVGhpcyB3YXMgYWNjaWRlbnRhbGx5IGV4cG9ydGVkIGFuZCBzaG91bGRuJ3QgYmUgcHVibGljCgoyMDE1LTA4LTA0IDAwOjExOjI0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogdXNlIEdTVF9JTkZPX09CSkVDVCBmb3IgbW9yZSBkZXRhaWwKCSAgSGVscHMgdG8gZGlzdGlndWlzaCBtdWx0aXBsZSBmaWxlc2lua3MuCgoyMDE1LTA3LTMwIDE3OjI5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogaW5mbzogcmVtb3ZlIDAuOCB0ZXJtaW5vbG9neSBmcm9tIGxvZyBsZXZlbCBkZXNjcmlwdGlvbgoJICBXZSBkb24ndCAiaXRlcmF0ZSIgYmlucyBvciBwaXBlbGluZXMgYW55IG1vcmUuCgoyMDE1LTA3LTMwIDEyOjE3OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogZml4IGJ1ZmZlciBsZWFrIGluIHVuaXQgdGVzdAoJICBGaXhlcyBtYWtlIGNoZWNrLXZhbGdyaW5kCgoyMDE1LTA3LTI4IDIxOjE0OjIyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIGRvYy9zZWVrZmxhZ3M6IEZpeCBjcm9zcyByZWZlcmVuY2VzCgkgIFRoaXMgZml4ZXMgbWlzcy11c2Ugb2YgQCBpbnN0ZWFkIG9mICUgdG8gcmVmZXIgdG8gZW51bWVyYXRpb24KCSAgdmFsdWVzLgoKMjAxNS0wNy0yOCAyMjozMDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBhIGZldyBtb3JlIG5ldyBzeW1ib2xzIGFuZCBkZWZpbmVzCgoyMDE1LTA3LTI4IDE2OjU3OjQzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBkb2MvY2Fwc2ZpbHRlcjogRG9jdW1lbnQgZmlsdGVyaW5nIG1vZGVzCgkgIFRoaXMgaXMgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEhUTUwgZG9jdW1lbnRhdGlvbi4KCjIwMTUtMDctMjggMTY6NTA6NTUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGRvYy9maWxlc2luazogQWRkIEJ1ZmZlck1vZGUgZW51bWVyYXRpb24KCSAgVGhpcyBpcyBwdXJlbHkgZm9yIGRvY3VtZW50YXRpb24gcHVycG9zZS4gVGhpcyB3YXkgdGhlIHZhbHVlcyB3aWxsCgkgIHNob3cgdXAgaW4gdGhlIEhUTUwgZG9jdW1lbnRhdGlvbi4KCjIwMTUtMDctMjggMTU6NTA6NDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBkb2MvZ3N0aGFyZG5lc3M6IEZpeCB0eXBvIGluIEdzdEFsbG9jYXRpb25QYXJhbXMKCSAgSXQncyBub3QgR3N0QWxsb2NhdG9yUGFyYW1zIGJ1dCBHc3RBbGxvY2F0aW9uUGFyYW1zLgoKMjAxNS0wNy0yOCAxNTo0NjowOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGRvYy9nc3RoYXJuZXNzOiBSZW1vdmUgdW5rbm93biBwYXJhbWV0ZXIKCSAgc2lua19lbGVubWVudF9uYW1lIGlzIG5vdCBhIHBhcmFtZXRlciBvZiBnc3RfaGFybmVzc19hZGRfc2lua19oYXJuZXNzKCkKCSAgZnVuY3Rpb24sIGJ1dCBzdGlsbCBpdCBzaG93IHVwIGluIGRvY3VtZW50YXRpb24uCgoyMDE1LTA3LTI4IDEyOjE5OjA0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBPbmx5IHJlbWVtYmVyIHByZXZpb3VzIGZpbHRlciBjYXBzIGlmIHRoZXkgd2VyZSBhY3R1YWxseSB1c2VkIGZvciBzb21ldGhpbmcKCSAgSWYgbm9ib2R5IGV2ZXIgc2F3IHRoZSBwcmV2aW91cyBmaWx0ZXIgY2Fwcywgbm90aGluZyBjb3VsZCd2ZSBuZWdvdGlhdGVkIHdpdGgKCSAgdGhlbSBhbmQgd2UgY2FuIGp1c3QgcHJldGVuZCB0aGV5IG5ldmVyIGV4aXN0ZWQgYXQgYWxsLgoKMjAxNS0wNy0yOCAxMjoxNjoxMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBXaGVuIHN3aXRjaGluZyBjYXBzIGNoYW5nZSBtb2RlcywgZm9yZ2V0IGFsbCBwcmV2aW91cyBjYXBzCgoyMDE1LTA3LTIzIDE4OjE1OjA1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJldHVybiBGTE9XX0ZMVVNISU5HIGlmIG5lZ290aWF0aW9uIGZhaWxzIGR1cmluZyBzaHV0ZG93bgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyODAwCgoyMDE1LTA3LTIyIDE4OjU1OjI5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggaW5kZW5kYXRpb24KCjIwMTUtMDctMjEgMTM6MTQ6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBdm9pZCBpbmNyZWFzaW5nIHF1ZXJ5IHJlZmVyZW5jZQoJICBnc3RfcXVlcnlfZmluZF9hbGxvY2F0aW9uX21ldGEoKSByZXF1aXJlcyB0aGUgcXVlcnkgdG8gYmUKCSAgd3JpdGFibGUgdG8gd29yay4gVGhpcyBwYXRjaCBlbnN1cmUgYXZvaWRzIHRha2luZyBhIHJlZmVyZW5jZQoJICBvbiB0aGUgcXVlcnksIHNvIHdlIGNhbiBub3cgY2hlY2sgaWYgYSBjZXJ0YWluIGFsbG9jYXRpb24gbWV0YQoJICBpcyBwcmVzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNjYxCgoyMDE1LTA3LTIyIDE1OjM4OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2NzOiBmaXggZGVzY3JpcHRpb24gb2YgZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cCgpCgkgIE5vIEdCeXRlcyBpbnZvbHZlZC4KCjIwMTUtMDctMjEgMDA6MTc6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogZG90IG5vdCByZXNldCBwYWQgc3RhdGVzIHRvbyBlYXJseQoJICBSZXNldHRpbmcgdGhlIGZsdXNoaW5nIHN0YXRlIG9mIHRoZSBwYWRzIGF0IHRoZSBlbmQgb2YgdGhlCgkgIFBBVVNFRF9UT19SRUFEWSB0cmFuc2l0aW9uIHdpbGwgbWFrZSBwYWRzIGhhbmRsZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMgYWdhaW4gd2hpY2ggd2lsbCB3YWl0IGZvciBub24tYWN0aXZlIHBhZHMgYW5kIG1pZ2h0CgkgIGNhdXNlIGRlYWRsb2NrcyB3aGVuIHN0b3BwaW5nIHRoZSBwaXBlbGluZS4KCSAgTW92ZSB0aGUgcmVzZXQgdG8gdGhlIFJFQURZX1RPX1BBVVNFRCBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNjIzCgoyMDE1LTA3LTIwIDE2OjE4OjA2ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IGFkZCBmdW5jdGlvbnMgZm9yIGFkZGluZyBzdWItaGFybmVzc2VzIGRpcmVjdGx5CgkgIEJ5IGludHJvZHVjaW5nIGdzdF9oYXJuZXNzX2FkZF9zcmNfaGFybmVzcyBhbmQgZ3N0X2hhcm5lc3NfYWRkX3NpbmtfaGFybmVzcwoJICB3ZSBjb2xsZWN0IGFsbCBzdWItaGFybmVzcyBzZXR1cCBpbiBvbmUgZnVuY3Rpb24sIG1ha2luZyB0aGUgcHJldmlvdXMKCSAgc3ViLWhhcm5lc3MgY3JlYXRpb24gZnVuY3Rpb25zIG5vdyBjYWxscyB0aGVzZSBkaXJlY3RseSwgYW5kIG1ha2luZyBpdAoJICBtdWNoIGVhc2llciAoYW5kIGxlc3MgZXJyb3ItcHJvbmUpIHRvIGFkZCB5b3VyIG93biBzcmMgb3Igc2luay1oYXJuZXNzCgkgIHVzaW5nIHRoZSBtb3JlIGdlbmVyaWMgaGFybmVzcy1jcmVhdGlvbiBmdW5jdGlvbnMuCgoyMDE1LTA3LTE3IDE3OjQ0OjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IG92ZXJyaWRlIGdzdF9zZWdtZW50X2RvX3NlZWsoKQoJICBUaGlzIGxpbmUgaGFzIG5vIHB1cnBvc2UsIGNsZWFybHkgZ3N0X3NlZ21lbnRfZG9fc2VlaygpIGlzIGRvaW5nCgkgIHRoZSByaWdodCBqb2IsIGFsc28sIGhhdmluZyB0aGUgc3RhcnQgdGltZSAoYSB0aW1lc3RhbXApIGJlIHRoYXQKCSAgc2FtZSBhcyB0aW1lICh0aGUgc3RyZWFtIHRpbWUpIGlzIHF1aXRlIG9kZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNy0xNyAxNzo0MzoyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggZXh0cmFwb2xhdGlvbiBvZiBzZWVrc2VnbWVudC5zdG9wCgkgIFRoZSBzdG9wIHNoYWxsIGJlIHJlbGF0aXZlIHRvIHN0YXJ0IGlmIGV4dHJhcG9sYXRlZCBmcm9tIHRoZQoJICBkdXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNy0xNiAxODo0NzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBkbyBzdGFydCBhbmQgc3RvcCBvdXRzaWRlIG9mIHRoZSBsb2NrCgkgIFJlbGVhc2UgdGhlIG1vbml0b3IgbG9jayB3aGVuIGNhbGxpbmcgdGhlIHByb3ZpZGVyIHN0YXJ0L3N0b3AgbWV0aG9kcy4KCSAgQmVjYXVzZSB3ZSByZWxlYXNlIHRoZSBsb2NrIG5vdywgV2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgY2hlY2sgdGhlCgkgIGNvb2tpZSBhZ2FpbiBhbmQga2VlcCB0cmFjayBvZiBzdGFydGVkIGFuZCByZW1vdmVkIHByb3ZpZGVycy4KCjIwMTUtMDctMTYgMTg6NDM6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJICBkZXZpY2Vwcm92aWRlcjogc21hbGwgY2xlYW51cHMKCSAgUHJvdGVjdCBhZ2FpbnN0IHdyb25nIGFyZ3VtZW50cy4KCSAgQ2xlYW4gdXAgdGhlIGhlYWRlciBmaWxlIGluZGVudGF0aW9uLgoKMjAxNS0wNy0xNiAxNzoyNToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBrZWVwIG9yZGVyIG9mIHByb3ZpZGVycyBhbmQgZGV2aWNlcwoJICBUaGUgZGV2aWNlcHJvdmlkZXJzIGFyZSBhZGRlZCB0byB0aGUgYXJyYXkgc29ydGVkIGJ5IHRoZWlyIHJhbmsuIE1ha2UKCSAgc3VyZSB3ZSBrZWVwIHRoaXMgb3JkZXJpbmcgd2hlbiByZW1vdmluZyBhIHByb3ZpZGVyLgoJICBXZSB1c2UgX3ByZXBlbmQgdG8gY29sbGVjdCB0aGUgZGV2aWNlcywgdXNlIGdfbGlzdF9yZXZlcnNlIHRvIGdldCB0aGUKCSAgZGV2aWNlcyBpbiB0aGUgcmlnaHQgb3JkZXI7IHNvcnRlZCBieSByYW5rIGFuZCBpbiB0aGUgc2FtZSBvcmRlciBhcwoJICByZXR1cm5lZCBieSB0aGUgcHJvdmlkZXIuCgoyMDE1LTA3LTE2IDE3OjUwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggaW5kZW50YXRpb24KCjIwMTUtMDctMTYgMTc6NTA6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBwYWQgdGVtcGxhdGUgbGVhawoKMjAxNS0wNy0xNiAxNzoxMzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZG9jczogZHJvcCByZWZlcmVuY2UgdG8gc291cmNlZm9yZ2UgbWFpbGluZyBsaXN0IGFkcmVzcwoKMjAxNS0wNy0xNiAxNzo1Mzo0MCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBkb24ndCByZS1lc3RhYmxpc2ggdGhlIGhhcm5lc3Mgc2luayBhbmQgc3JjIHBhZHMKCSAgR2l2ZW4gdGhhdCB0aGUgZWxlbWVudCBoYXMgdGhlIHBvc3NpYmlsaXR5IHRvIGhhdmUgb25lLCB0aGV5IHNob3VsZAoJICBhbHJlYWR5IGJlIHRoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDk4CgoyMDE1LTA3LTEzIDExOjAzOjEzICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBJbXByb3ZlIGRldGVjdGlvbiBvZiBlbGVtZW50IHR5cGUKCSAgVGhlIGVsZW1lbnQgZmxhZyBkb2VzIG5vdCBpbmRpY2F0ZSB3ZXRoZXIgYSBiaW4gc2hvdWxkIGJlIHRlc3RlZCBhcyBhCgkgIHNvdXJjZSBvciBhcyBhIHNpbmssIGVnLiBhIGJpbiB3aXRoIHRoZSBzaW5rIGZsYWcgbWF5IHN0aWxsIGhhdmUgYQoJICBzb3VyY2UgcGFkIGFuZCBhIGJpbiB3aXRoIHRoZSBzb3VyY2UgZmxhZyBtYXkgaGF2ZSBhIHNpbmsgcGFkLiBJbiB0aGlzCgkgIGNhc2UgaXQgaXMgYmV0dGVyIHRvIGRldGVybWluZSB0aGUgZWxlbWVudCB0eXBlIGJ5IGxvb2tpbmcgYXQgdGhlCgkgIGF2YWlsYWJsZSBwYWRzIGFuZCBwYWQgdGVtcGxhdGVzLgoJICBBbHNvIHJlbmFtZSBzcmNwYWQgYW5kIHNpbmtwYWQgd2hlcmUgaXQgYWN0dWFsbHkgcmVwcmVzZW50cwoJICBlbGVtZW50X3NyY3BhZF9uYW1lIGFuZCBlbGVtZW50X3NpbmtwYWRfbmFtZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjQ5MwoKMjAxNS0wNy0xMyAxMToxMDo0OSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBzaW5rIGhhcm5lc3MKCSAgRml4ZXMgaXNzdWUgd2hlcmUgaWYgYSBzaW5rIGhhcm5lc3Mgd2FzIGFkZGVkIGxhdGUgdGhlIHN0aWNreSBldmVudHMKCSAgd291bGQgbm90IGJlIGZvcndhcmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDk0CgoyMDE1LTA3LTE2IDEyOjM2OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBtYWtlIGhlYWRlciBuaWNlciB0byByZWFkCgoyMDE1LTA3LTE2IDEwOjM2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBmdW5jdGlvbiB0byBBUEkgZG9jcwoKMjAxNS0wNy0xNSAxODoyMToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZTogYWRkIGdlbmVyaWMgc3RydWN0IHdpdGggcHJvcGVydGllcwoJICBBZGQgYSBnZW5lcmljIHN0cnVjdHVyZSB0byBob2xkIGFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgYWJvdXQgdGhlCgkgIGRldmljZS4KCjIwMTUtMDctMTQgMTI6NDQ6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCB0eXBvIGluIGFsbG93LW5vdC1saW5rZWQgcHJvcGVydHkgZGVzY3JpcHRpb24KCjIwMTUtMDctMTMgMTQ6MjQ6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGRvY3M6IGJ1czogbWVudGlvbiBtYWluIGxvb3AgcmVxdWlyZW1lbnQgaW4gZ3N0X2J1c19hZGRfd2F0Y2goKSBkb2NzCgoyMDE1LTAzLTE4IDE2OjA1OjM0ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYWRkIGZ1bmN0aW9uIGd1YXJkIGZvciBfc2V0X2xvY2soKSBhbmQgZml4IGd1YXJkIGZvciBfam9pbigpCgkgIFNob3VsZCBvbmx5IGFjY2VzcyB0aGUgb2JqZWN0IHN0cnVjdHVyZSBhZnRlciBjaGVja2luZwoJICBpdCdzIHZhbGlkIGluIGdzdF90YXNrX2pvaW4oKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjM4NQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDMxCgoyMDE1LTA1LTE5IDE4OjU4OjExICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgcHJvdGVjdGlvbjogaW1wbGVtZW50IG1ldGEgdHJhbnNmb3JtIGZ1bmN0aW9uCgkgIENvcHkgdGhlIEdzdE1ldGEgY29udGVudHMgb3ZlciB0byB0aGUgbmV3IGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTU5MAoKMjAxNS0wNy0xMCAwOToxMjoxNSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZXN0aW1hdGUgZHVyYXRpb24gb24gRU9TCgkgIEZvciBmaWxlcyB3aGljaCBhcmUgc21hbGxlciB0aGFuIDEuNSBzZWNvbmRzLCB0aGUgZHVyYXRpb24KCSAgZXN0aW1hdGlvbiBkb2VzIG5vdCBoYXBwZW4uIFNvIHRoZSBkdXJhdGlvbiB3aWxsIGFsd2F5cyBiZQoJICBkaXNwbGF5ZWQgYXMgMC4gVXBkYXRpbmcgdGhlIGR1cmF0aW9uIG9uIEVPUyB3aGVuIHRoZSBlc3RpbWF0aW9uCgkgIGhhcyBub3QgaGFwcGVuZWQgYWxyZWFkeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTMxCgoyMDE1LTA3LTEwIDExOjAxOjIxICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBjaGFuZ2UgbG9nIG1lc3NhZ2UgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjExNgoKMjAxNS0wNy0wOSAwMDoxMjo1MSArMDkwMCAgSnVzdGluIEpveSA8anVzdGluLmpveS45dG81QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguaDoKCSAgZG9jczogYWRkIFN0cmVhbWlkRGVtdXggdG8gZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5ODczCgoyMDE1LTA3LTA5IDAwOjIxOjQyICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggdG8gZ2V0IHZhbGlkIChidWZmZXJfKWxpc3QKCSAgZ2V0X2xpc3QvZ2V0X2J1ZmZlcl9saXN0IHNob3VsZCBiZSBkb25lIHdpdGggYnVmZmVycyBpbiBhZGFwdGVyIHJlbWFpbmluZwoJICB3aGlsZSB0YWtlX2xpc3QvdGFrZV9idWZmZXJfbGlzdCBmbHVzaGVzIGVhY2ggYnVmZmVyIG9uZSBieSBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxMTYKCjIwMTUtMDctMDggMjA6MDY6MjcgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVuaXQgdGVzdCBmb3IgbmV3IGdldF8oYnVmZmVyXylsaXN0CgoyMDE1LTA3LTA4IDEyOjAwOjU2ICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHV0IGJ1ZmZlciBpbiBhIGNvcnJlY3Qgc3RhdGUgYWZ0ZXIgZ3N0X2FkYXB0ZXJfZ2V0X2J1ZmZlciBjYWxsCgkgIFdlIG11c3QgbWFrZSB0aGUgYnVmZmVyIHdyaXRhYmxlIHRvIHdyaXRlIGl0cyBQVFMgYW5kIERUUywgYW5kIGFsc28KCSAgcmVzZXQgaXRzIGR1cmF0aW9uLgoJICBUaGUgYmVoYXZpb3VyIGlzIG5vdyB0aGUgc2FtZSBhcyBiZWZvcmUgY29tbWl0IGMzYmNiYWRkLCBleGNlcHQgbWV0YXMKCSAgbWlnaHQgc3RpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIGJ1ZmZlciBleHRyYWN0ZWQgZnJvbSB0aGUgYWRhcHRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjA5MgoKMjAxNS0wNy0wNyAxNTowMjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGluZGVudGF0aW9uIGFuZCByZXBsYWNlIHN0cmVzcyB0ZXN0IGZ1bmN0aW9uIG1hY3JvcwoJICBUaGVzZSBzY3JldyB3aXRoIGluZGVudGF0aW9uIGFuZCBzZWVtIGEgYml0IHRyaXZpYWwuIEp1c3QgY29weSduJ3Bhc3RlLgoKMjAxNS0wNy0wNyAxMDo0Njo0OCArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IHRyYW5zZm9ybV9mdW5jOiByZXR1cm4gRkFMU0UgaWYgbm90IHN1cHBvcnRlZCBvciBmYWlsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTc3OAoKMjAxNS0wNy0wNyAxMTo1MzowNyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJICBpZGVudGl0eTogcmVmYWN0b3IgYW5kIGFkZCB0ZXN0cyB1c2luZyBHc3RIYXJuZXNzCgkgIFdyaXRpbmcgYSB0ZXN0IGZvciB1bnNjaGVkdWxpbmcgdGhlIGdzdF9jbG9ja19pZF93YWl0IGluc2lkZSB0aGUKCSAgaWRlbnRpdHkgZWxlbWVudCwgZm91bmQgYW4gaW52YWxpZCByZWFkLCBjYXVzZWQgYnkgcmVtb3ZpbmcgdGhlIGNsb2NrLWlkCgkgIHdoZW4gY2FsbGluZyBfdW5zY2hlZHVsZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGNvZGUgY2FsbGluZyBfd2FpdCByZW1vdmUKCSAgdGhlIGNsb2NrLWlkIGFmdGVyIGJlaW5nIHVuc2NoZWR1bGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMDU1CgoyMDE0LTA0LTEyIDE5OjQ4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogbWFrZSBzdXJlIGdfYXNzZXJ0KCkgc3RhdGVtZW50cyBhcmUgYWx3YXlzIGFjdGl2ZQoJICBXZSBoYXZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgaW5zaWRlIGdfYXNzZXJ0KClzLCBzbyBtYWtlCgkgIHN1cmUgdGhvc2UgYXJlIGFsd2F5cyBlbmFibGVkIGhlcmUgKHRoZXkgbWlnaHQgb3RoZXJ3aXNlCgkgIGdldCBkaXNhYmxlZCBmb3IgcmVsZWFzZSBidWlsZHMpLgoKMjAxNS0wNy0wNyAwMDo1Njo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiByZW5hbWUgR3N0SGFybmVzc1ByZXBhcmVCdWZmZXIgLT4gR3N0SGFybmVzc1ByZXBhcmVCdWZmZXJGdW5jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE5MTYKCjIwMTUtMDctMDcgMDA6NTM6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9jaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgZG9jczogYWRkIEdzdEhhcm5lc3MgdG8gZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxOTE2CgoyMDEzLTEyLTE2IDEwOjQ3OjQ3ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGNoZWNrOiBBZGQgR3N0SGFybmVzcyBjb252ZW5pZW5jZSBBUEkgZm9yIHVuaXQgdGVzdHMKCSAgaHR0cDovL2dzdGNvbmYudWJpY2FzdC50di92aWRlb3MvZ3N0aGFybmVzcy1hZ2Fpbi1hLWZvbGxvdy11cC8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTkxNgoKMjAxNS0wNy0wNiAwOToyNjo1OCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmV2ZXJzZSBwbGF5YmFjayBpbiBwdWxsIG1vZGUKCSAgcmlnaHQgbm93IHJldmVyc2UgcGxheWJhY2sgaXMgZGlzYWJsZWQgaW4gcHVsbCBtb2RlLgoJICBlbmFibGluZyB0aGUgY29kZSBmb3IgdGhlIHNhbWUgYW5kIGNoYW5naW5nIGEgYml0IG9mIGxvZ2ljCgkgIHRvIG1ha2UgcmV2ZXJzZSBwbGF5YmFjayB3b3JrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA2LTIwIDA4OjMzOjI2ICswOTAwICBWaW5lZXRoIFQgTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHJldmVyc2UgcGxheWJhY2sgdGVzdCBpbiBwdWxsIG1vZGUKCSAgYWRkIHRlc3QgZm9yIHJldmVyc2UgcGxheWJhY2sgaW4gcHVsbCBtb2RlIGFuZCBjb21wYXJlCgkgIHRoZSBidWZmZXJzIGJlaW5nIHJlY2VpdmVkIGluIHNpbmsgY2hhaW4gdG8gbWFrZSBzdXJlCgkgIHRoZSBwbGF5YmFjayBpcyBhbGxyaWdodAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA3LTA2IDE0OjMxOjI0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgUmV2ZXJ0ICJzY3JpcHRzOiBBbGxvdyBwYXNzaW5nIG1ha2UgZmxhZ3MgdG8gZ2l0LXVwZGF0ZS5zaCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYjVmZGQ3MjEyOWVhNjFlOGRmZjUxY2RjMGFmY2NjYWMwM2ViYzJiLgoJICBXZSBjYW4gdXNlIHRoZSBNQUtFRkxBR1MgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gcGFzcyBvcHRpb25zIHRvIG1ha2UsCgkgIHNvIGF2b2lkIGFkZGluZyBhbm90aGVyIG1lY2hhbmlzbSB0aGF0IGNvdWxkIGJlIGNvbmZ1c2luZy4KCjIwMTUtMDctMDYgMTE6MTY6MjcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IENsYXJpZnkgcGFkIHByb2JlIHJldHVybiB0eXBlIGRvY3VtZW50YXRpb24KCjIwMTUtMDctMDIgMTQ6MzI6MjEgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBTaG91bGRuJ3QgZHJvcCBidWZmZXIgd2hlbiBzeW5jPWZhbHNlCgkgIFNob3VsZG4ndCBkcm9wIGJ1ZmZlciB3aGVuIHN5bmM9ZmFsc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTgxOQoKMjAxNS0wNy0wNiAxMToyNTo1MCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IEFsbG93IHBhc3NpbmcgbWFrZSBmbGFncyB0byBnaXQtdXBkYXRlLnNoCgkgIE1vc3RseSBhZGRpbmcgdGhpcyBmb3IgYWRkIGEgLWpOIGFzIGFwcHJvcHJpYXRlIHdoaWxlIGJ1aWxkaW5nLgoKMjAxNS0wNS0zMCAxNDoyNzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGF2b2lkIHNsaWNlIGFsbG9jcy9mcmVlcyBmb3IgZWFjaCBpdGVtCgkgIE1pY3Jvb3B0aW1pc2F0aW9uOiBMZXQgR3N0UXVldWVBcnJheSBzdG9yZSBvdXIKCSAgaXRlbSBzdHJ1Y3QuIFRoYXQgd2F5IHdlIGRvbid0IGhhdmUgdG8gYWxsb2MvZnJlZQoJICB0ZW1wb3JhcnkgUXVldWVJdGVtIHNsaWNlcyBmb3IgZXZlcnkgaXRlbSB3ZSB3YW50CgkgIHRvIHB1dCBpbnRvIHRoZSBxdWV1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE0OQoKMjAxNS0wNS0zMCAxMzowNzo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBxdWV1ZWFycmF5OiBhbGxvdyBzdG9yaW5nIG9mIHN0cnVjdHMgaW4gYWRkaXRpb24gdG8gcG9pbnRlcnMKCSAgVGhpcyB3YXkgd2UgZG9uJ3QgaGF2ZSB0byBhbGxvY2F0ZS9mcmVlIHRlbXBvcmFyeSBzdHJ1Y3RzCgkgIGZvciBzdG9yaW5nIHRoaW5ncyBpbiB0aGUgcXVldWUgYXJyYXkuCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X25ld19mb3Jfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcHVzaF90YWlsX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3BlZWtfaGVhZF9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wb3BfaGVhZF9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9kcm9wX3N0cnVjdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNDkKCjIwMTUtMDctMDMgMjE6NTc6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY3NGIyZGYgdG8gOWFlZDFkNwoKMjAxNS0wNi0xOSAwMDowNTo0NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBwYWQ6IEVuZm9yY2UgTkVFRF9QQVJFTlQgZmxhZyBhbHNvIGZvciBjaGFpbgoJICBUaGUgY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiB0aGUgcGFyZW50IGluIHRoZSBwcmVzZW5jZSBvZgoJICB0aGUgTkVFRF9QQVJFTlQgZmxhZyB3YXMgbWlzc2luZyBmb3IgdGhlIGNoYWluIGZ1bmN0aW9uLiBBbHNvIGtlZXAKCSAgYSByZWYgb24gdGhlIHBhcmVudCBpbiBjYXNlIHRoZSBwYWQgaXMgcmVtb3ZlZCBtaWQtY2hhaW4uCgoyMDE1LTA3LTAzIDE1OjU1OjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiB1cGRhdGUgZm9yIHR3byBtaXNzaW5nIGVsZW1lbnRzCgkgIENvbmNhdCB3YXMgbm90IGxpbmtlZCBhbmQgc3RyZWFtaWRkZW11eCB3YXMgbWlzc2luZy4KCjIwMTUtMDctMDMgMTI6Mzc6NTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBkb2NzOiBhbm90aGVyIHN3ZWVwIGNhbm9uaWNhbGl6aW5nIHRoZSBwbHVnaW4gZG9jcyBzZWN0aW9ucyBmaWxlCgkgIFVzZSB1bmRlcnNjb3JlcyBmb3IgY2Fwc2ZpbHRlciBtYWNyb3MuIENvcnJlY3QgdGhlIHR5cGUtbmFtZSBmb3IgZmFrZXNyYwoJICBpZiB3ZSBldmVyIGltcGxlbWVudCB0aGUgZW51bS4KCjIwMTUtMDctMDMgMTE6NDU6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBkb2NzOiBvcmRlciBhbmQgY2Fub25pY2FsaXplIHRoZSAtc2VjdGlvbnMudHh0IGZpbGUKCSAgSGF2ZSBhbGwgc2VjdGlvbnMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLiBBbHNvIG1ha2UgdGhlIG1hY3JvIG9yZGVyIGNvbnNpc3RlbnQuCgkgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBmb3IgZ2VuZXJhdGluZyB0aGUgZmlsZS4gUmVtb3ZlIEdFVF9DTEFTUyBtYWNybyBmb3IKCSAgdHlwZWZpbmUgZWxlbWVudCwgc2luY2UgaXQgaXMgbm90IHVzZWQgYW5kIHRoZSBoZWFkZXIgaXMgbm90IGluc3RhbGxlZC4KCjIwMTMtMTItMTYgMTE6MjQ6MTcgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEFkZCBtaXNzaW5nIGZpZWxkIGluaXRpYWxpemVycyB0byBHc3RNYXBJbmZvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE4ODEKCjIwMTUtMDctMDIgMTU6MTA6NDMgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZlIGFsd2F5cy10cnVlIGNoZWNrCgkgIGV2ZW50IGNhbid0IGJlIE5VTEwsIGl0IGhhcyBiZWVuIGRlcmVmZXJlbmNlZCBieSBHU1RfRVZFTlRfVFlQRSAoKSwgYW5kIG5vCgkgIGNhc2UgZnJlZXMgdGhlIHBvaW50ZXIuIFJlbW92ZSB1bm5lY2Vzc2FyeSBjaGVjayB3aGljaCB3aWxsIGFsd2F5cyBiZSBUcnVlLgoJICBDSUQgIzEzMDg5NTUKCjIwMTUtMDctMDEgMTA6NTA6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiBBbHNvIGNvcHkgUE9PTCBtZXRhcyBhbmQgbWFrZSBzdXJlIHRvIGNvcHkgb3ZlciBtZXRhcyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMKCSAgUE9PTCBtZXRhIGp1c3QgbWVhbnMgdGhhdCB0aGlzIHNwZWNpZmljIGluc3RhbmNlIG9mIHRoZSBtZXRhIGlzIHJlbGF0ZWQgdG8gYQoJICBwb29sLCBhIGNvcHkgc2hvdWxkIGJlIG1hZGUgd2hlbiByZWFzb25hYmxlIGFuZCB0aGUgZmxhZyBzaG91bGQganVzdCBub3QgYmUKCSAgc2V0IGluIHRoZSBjb3B5LgoKMjAxNS0wNy0wMSAxMDo0NTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBBbHNvIGNvcHkgUE9PTCBtZXRhcyBhbmQgbWFrZSBzdXJlIHRvIGNvcHkgb3ZlciBtZXRhcyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMKCSAgUE9PTCBtZXRhIGp1c3QgbWVhbnMgdGhhdCB0aGlzIHNwZWNpZmljIGluc3RhbmNlIG9mIHRoZSBtZXRhIGlzIHJlbGF0ZWQgdG8gYQoJICBwb29sLCBhIGNvcHkgc2hvdWxkIGJlIG1hZGUgd2hlbiByZWFzb25hYmxlIGFuZCB0aGUgZmxhZyBzaG91bGQganVzdCBub3QgYmUKCSAgc2V0IGluIHRoZSBjb3B5LgoKMjAxNS0wNy0wMSAxMDozNjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBEb24ndCBjb3B5ICJtZW1vcnkiIG1ldGFzIHVuY29uZGl0aW9uYWxseQoJICBEb24ndCBjb3B5IG1lbW9yeSBtZXRhcyBpZiB3ZSBvbmx5IGNvcGllZCBwYXJ0IG9mIHRoZSBidWZmZXIsIGRpZG4ndAoJICBjb3B5IG1lbW9yaWVzIG9yIG1lcmdlZCBtZW1vcmllcy4gSW4gYWxsIHRoZXNlIGNhc2VzIHRoZSBtZW1vcnkKCSAgc3RydWN0dXJlIGhhcyBjaGFuZ2VkIGFuZCB0aGUgbWVtb3J5IG1ldGEgYmVjb21lcyBtZWFuaW5nbGVzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTcxMgoKMjAxNS0wNy0wMSAxMDoyNToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgUmV2ZXJ0ICJidWZmZXI6IERvbid0IGNvcHkgUE9PTEVEIGFuZCBtZW1vcnkgbWV0YWRhdGEgdW5jb25kaXRpb25hbGx5IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDdhMDhmYTVlYzQ4MDRmMTA0ZTlhYTlmNDU4MzIyZjZlYjQ5YTdlNDkuCgoyMDE1LTA2LTMwIDEzOjM4OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IERvbid0IGNvcHkgUE9PTEVEIGFuZCBtZW1vcnkgbWV0YWRhdGEgdW5jb25kaXRpb25hbGx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE3MTIKCjIwMTUtMDYtMzAgMTE6MTg6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFVzZSBuZXcgZ3N0X2FkYXB0ZXJfZ2V0X2J1ZmZlcigpIEFQSSBpbnN0ZWFkIG9mIGdzdF9hZGFwdGVyX21hcCgpCgkgIFRoaXMgcHJlc2VydmVzIEdzdE1ldGEgcHJvcGVybHkgdW5sZXNzIHRoZSBzdWJjbGFzcyBkb2VzIHNwZWNpYWwgdGhpbmdzLiBJdCdzCgkgIGVub3VnaCB0byBtYWtlIGgyNjRwYXJzZSdzIHN0cmVhbS1mb3JtYXQvYWxpZ25tZW50IGNvbnZlcnNpb24gcGFzcyB0aHJvdWdoCgkgIG1ldGFzIGFzIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjM4NQoKMjAxNS0wNi0zMCAxMToxMToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGQgZ2V0IHZhcmlhbnRzIG9mIHRoZSBidWZmZXIgYmFzZWQgdGFrZSBmdW5jdGlvbnMKCSAgTWFpbiBkaWZmZXJlbmNlIHRvIGdzdF9hZGFwdGVyX21hcCgpIGZvciBhbGwgcHJhY3RpY2FsIHB1cnBvc2VzIGlzIHRoYXQKCSAgR3N0TWV0YSBvZiB0aGUgYnVmZmVycyB3aWxsIGJlIHByZXNlcnZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjM4NQoKMjAxNS0wNi0yOSAxNzowMzoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBDb3B5IG92ZXIgR3N0TWV0YSBmcm9tIHRoZSBpbnB1dCBidWZmZXJzIHRvIHRoZSBvdXRwdXQKCSAgQWxsIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBhIEdzdEJ1ZmZlciBvciBhIGxpc3Qgb2YgdGhlbSB3aWxsIG5vdyBjb3B5CgkgIGFsbCBHc3RNZXRhIGZyb20gdGhlIGlucHV0IGJ1ZmZlcnMgZXhjZXB0IGZvciBtZXRhIHdpdGggR1NUX01FVEFfRkxBR19QT09MRUQKCSAgZmxhZyBvciAibWVtb3J5IiB0YWcuCgkgIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgZXhpc3RpbmcgYmVoYXZpb3VyIHRoYXQgdGhlIGNhbGxlciBjYW4ndCBhc3N1bWUKCSAgYW55dGhpbmcgYWJvdXQgdGhlIGJ1ZmZlciBmbGFncywgdGltZXN0YW1wcyBvciBvdGhlciBtZXRhZGF0YS4gQW5kIGl0J3MKCSAgYWxzbyB0aGUgc2FtZSB0aGF0IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2Zhc3QoKSBkaWQgYmVmb3JlLCBhbmQgd2hhdAoJICBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpIGRpZCBpZiBwYXJ0IG9mIHRoZSBmaXJzdCBidWZmZXIgb3IgdGhlIGNvbXBsZXRlCgkgIGZpcnN0IGJ1ZmZlciB3YXMgcmVxdWVzdGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMzg1CgoyMDE1LTA2LTI5IDIwOjI3OjEyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogSW5pdCBmdW5jdGlvbiBjYW4gdGFrZSBhIE5VTEwgaW50ZXJmYWNlcyBhcnJheQoKMjAxNS0wNi0yOSAxMzo1NzoxMSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBjYXBzOiBmaXggdGVzdF9pbnRlcnNlY3RfZmxhZ3NldCBmYWlsdXJlCgkgIHRlc3RfaW50ZXJzZWN0X2ZsYWdzZXQgZmFpbHMgYmVjYXVzZSB3aGVuIGNhcHMgaXMgYmVpbmcKCSAgY3JlYXRlZCwgZmxhZ3MgYW5kIG1hc2sgYXJlIGJlaW5nIGNhc3QgdG8gdWludDY0IHdoaWxlCgkgIHRoZXkgc2hvdWxkIGJlIHVpbnQuIFRoaXMgcmVzdWx0cyBpbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKCSAgb3IgYSBzZWdmYXVsdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTYyOAoKMjAxNS0wNi0yOSAxNDoyMjo0NiArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IEZpeCBHU1RfVkFMSURBVEVfUExVR0lOX1BBVEgKCSAgSXQgbW92ZWQgcmVjZW50bHkKCjIwMTUtMDYtMjkgMTM6NTg6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogRml4IHVwIGRvY3VtZW50YXRpb24gb2YgdHJhbnNmb3JtX21ldGEgdmZ1bmMKCSAgQnkgZGVmYXVsdCB3ZSBjb3B5IGFsbCBtZXRhcyB0aGF0IGhhdmUgbm8gdGFncy4KCjIwMTUtMDYtMjkgMTA6NDE6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSAgZGlyZWN0Y29udHJvbGJpbmRpbmc6IGZpeCBBQkkgYnJlYWsKCSAgU3RydWN0dXJlIHNpemUgd2FzIGluY3JlYXNlZCB3aXRob3V0IGFkanVzdG1lbnQgb2YgdGhlIHBhZGRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE2MjIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDUwMgoKMjAxNS0wMy0xOSAxNTo1NToxNCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGd1YXJkIGFnYWluc3QgTlVMTCB0YXNrIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzkKCjIwMTUtMDUtMTQgMTE6NDg6NDUgKzAyMDAgIE1pZ3VlbCBQYXLDrXMgRMOtYXogPG1wYXJpc2RpYXpAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSAgZnVubmVsOiBhZGQgImZvcndhcmQtc3RpY2t5LWV2ZW50cyIgcHJvcGVydHkKCSAgSXQgaXMgdXNlZnVsIHRvIGF2b2lkIHNlbmRpbmcgc3RpY2t5IGV2ZW50IG9uIHN0cmVhbSBjaGFuZ2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzE1CgoyMDE1LTA2LTI1IDAwOjA0OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjUuMiA9PT0KCjIwMTUtMDYtMjQgMjI6NDk6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjIKCjIwMTUtMDYtMjQgMjI6NDU6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA2LTIyIDIzOjM3OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGdzdHV0aWxzOiBmaXggd3JvbmcgZGVzY3JpcHRpb24gb2YgdGVzdCBlbGVtZW50CgkgIEl0IGlzIGEgZmFrZXNpbmsgd2l0aCByZXF1ZXN0IHBhZHMsIG5vdCBhIHNvdXJjZQoKMjAxNS0wNi0yNCAxNTozNToxNiArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBGaXhlZCBjb21waWxlciB3YXJuaW5nCgkgIFRoZSBwb29sIHZhcmlhYmxlIHdhcyB1bnVzZWQgd2hlbiBidWlkbGluZyB3aXRoIGRlYnVnIGRpc2FibGVkLgoKMjAxNS0wNi0yNCAxMToxMzo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vaHUucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDYtMjQgMTE6MTI6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTUtMDYtMjQgMTQ6MTk6MDQgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbmVlZCB0byBkZWVwLWNvcHkgbGFzdCBidWZmZXIgbGlzdCBpbiBkcmFpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNDIwCgoyMDE1LTA2LTI0IDEwOjUyOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogV2FybiBpZiBjb3B5aW5nIGEgYnVmZmVyIGZhaWxzIGluIGdzdF9idWZmZXJfbGlzdF9jb3B5X2RlZXAoKQoKMjAxNS0wNi0yNCAxNDoxODo0NyArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIG5ldyBhcGkgZ3N0X2J1ZmZlcl9saXN0X2NvcHlfZGVlcAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNDIwCgoyMDE1LTA2LTIzIDE2OjU4OjU2ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0Y2hlY2s6IFByaW50IG5ld2xpbmUgaW4gbWVzc2FnZSBoYW5kbGVyCgkgIFRoZSBtZXNzYWdlIGhhbmRsZXIgaXMgc3VwcG9zZWQgdG8gcHJpbnQgYSBuZXdsaW5lIGFmdGVyIHRoZSBtZXNzYWdlCgkgIGp1c3QgbGlrZSB0aGUgZGVmYXVsdCBtZXNzYWdlIGhhbmRsZXIuCgoyMDE1LTA2LTEyIDE2OjU0OjMyICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEhhbmRsZSBkaWZmZXJlbnQgZHVyYXRpb24gdHJhY2sgc2VsZWN0aW9uCgkgIFN1cHBvcnQgdHJhY2sgc3dpdGNoIGZyb20gRU9TIHRyYWNrIHRvIG5vbi1FT1Mgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzYxCgoyMDE1LTA2LTEyIDE2OjUyOjQ2ICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENsZWFyIEVPUyBmbGFnIGFmdGVyIHJlY2VpdmVkIFNUUkVBTV9TVEFSVCBldmVudAoJICBDbGVhciBFT1MgZmxhZyBhZnRlciByZWNlaXZlZCBTVFJFQU1fU1RBUlQgZXZlbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc2MQoKMjAxNS0wNi0yMiAxNDozMDo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBnc3R1dGlsczogYWRkIHRlc3RzIGZvciBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQKCSAgQWRkcyB0ZXN0cyBmb3IgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkIGZvciB3aGVuIGl0IGhhcyB0bwoJICByZXF1ZXN0IHBhZHMuCgkgIE5vdGUgdGhhdCB0aGVzZSB0ZXN0cyBkb24ndCBjb3ZlciB0aGUgY2FzZSB3aGVuIGl0IGhhcyB0byByZXF1ZXN0CgkgIGEgcGFkIHRoYXQgYWxyZWFkeSBleGlzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEyMzUKCjIwMTUtMDYtMTkgMTU6NDY6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIGNhcHMgd2hlbiBnZXR0aW5nIGEgY29tcGF0aWJsZSBwYWQgYnkgdGVtcGxhdGUKCSAgRG8gbm90IGlnbm9yZSB0aGUgY2FwcyBhcmd1bWVudCB3aGVuIHJlcXVlc3RpbmcgYSBwYWQgYnkgdGVtcGxhdGUuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGhhcm1mdWwgd2hlbiB0aGUgcGFkIGNhcHMgcXVlcnkgYnkgZGVmYXVsdAoJICByZXR1cm5zIEFOWSBzbyBpdCB3aWxsIG1hdGNoIHRoZSBmaXJzdCB0ZW1wbGF0ZSBpbnN0ZWFkIG9mIHRoZQoJICBvbmUgdGhhdCBhY3R1YWxseSBpbnRlcnNlY3RzIHdpdGggdGhlIGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEyMzUKCjIwMTUtMDYtMjMgMDA6MTQ6MzAgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBnc3RzYW1wbGUuaDogSW5jbHVkZSBnc3RidWZmZXJsaXN0Lmggbm93IHRoYXQgaXQgdXNlcyBHc3RCdWZmZXJMaXN0CgoyMDE1LTA2LTE3IDE2OjEyOjEzICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IHdoZW4gcmVsZWFzaW5nIHBhZCwgc2VuZCBFT1MgYXBwcm9wcmlhdGVseS4KCSAgUHJldmlvdXNseSwgY29uY2F0IHNlbnQgYW4gRU9TIGlmIHRoZXJlIHdhcyBhIG5leHQgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMTA3CgoyMDE1LTA2LTE2IDE2OjE0OjE4ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5oOgoJICBjb25jYXQ6IEFkZCBhZGp1c3QtYmFzZSBwcm9wZXJ0eQoJICBUaGlzIGRpc2FibGVzIHRoZSBzZWdtZW50LmJhc2UgYWRqdXN0bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBpZiBkb3duc3RyZWFtCgkgIHRha2VzIGNhcmUgb2YgYmFzZSBhZGp1c3RtZW50cyBhbHJlYWR5IChleGFtcGxlOiBhIGNvbWJpbmF0aW9uIG9mIGNvbmNhdAoJICBhbmQgc3RyZWFtc3luY2hyb25pemVyKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMDQ3CgoyMDE1LTA2LTIyIDE0OjA0OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVW5zZXQgdGhlIGxhc3QgYnVmZmVyIGxpc3QgaWYgd2Ugb25seSBnb3QgYSBidWZmZXIKCSAgQWxzbyByZW1lbWJlciBhbnkgcHJlcm9sbCBidWZmZXIgbGlzdC4KCjIwMTUtMDYtMjIgMTM6MzM6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2FtcGxlOiBBZGQgbmV3IEFQSSB0byB0aGUgZG9jcwoKMjAxNS0wNi0yMiAyMDowMjo1NSArMDkwMCAgSHl1bmp1biA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBlbmFibGUgdG8gZ2V0IGxhc3Qgc2FtcGxlIGluY2x1ZGluZyBidWZmZXIgbGlzdCBpZiBuZWVkZWQKCSAgSW4gY2FzZSBvZiBhIGJ1ZmZlciBsaXN0IHJlbmRlcmluZywgbGFzdC1zYW1wbGUgaXMgbm90IHVwZGF0ZWQuCgkgIEl0IG5lZWRzIHRvIGJlIHVwZGF0ZWQgYW5kIGVuYWJsZSB0byBnZXQgYnVmZmVyIGxpc3QgZnJvbSBsYXN0LXNhbXBsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTAyNgoKMjAxNS0wNi0yMiAxOTozNTo0MCArMDkwMCAgSHl1bmp1biA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgc2FtcGxlOiBhZGQgZ3N0X3NhbXBsZV9zZXQvZ2V0X2J1ZmZlcl9saXN0IGFwaXMKCSAgQWxsb3dlZCB0byBzZXQvZ2V0IGJ1ZmZlciBsaXN0IHRvIHNhbXBsZSBpZiBuZWVkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTAyNgoKMjAxNS0wNi0xOSAxMDo1MjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3QucHk6CgkgIHRlc3QucHk6IHJlbW92ZSBhY2NpZGVudGFsbHkgY29tbWl0dGVkIGZpbGUKCjIwMTUtMDYtMTggMTE6NTE6NDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBkb2M6IFVuaWZ5IFNpbmNlIG1hcmsgZm9yIGF0dHJpYnV0ZSBhbmQgZW51bQoJICBBcyB0aGlzIHNob3cgdXAgYXMgcHJvc2UgaW4gdGhlIGRvYywgc2ltcGx5IG1ha2UgaXQgY29uc2lzdGVudAoJICBhbmQgImFyZ3VhYmxlIiBuaWNlciB0byByZWFkLgoKMjAxNS0wNi0xOCAxMTo0ODo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGRvYzogUmVtb3ZlIHBhcmVudGhlc2lzIGFyb3VuZCBTaW5jZToKCSAgVGhpcyBjb25mdXNlIHRoZSBwYXJzZXIsIGhlbmNlIGl0IGRvZXMgbm90IGVuZHVwIGluIHRoZSBkb2MgYW5kIHRoZQoJICBpbmRleCBwcm9wZXJseS4KCjIwMTUtMDUtMDYgMTY6NDQ6NDggKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgR3N0UGFyZW50QnVmZmVyTWV0YQoJICBBIGNvcmUgbWV0YSB3aGljaCBoZWxwcyBpbXBsZW1lbnQgdGhlIG9sZCBjb25jZXB0CgkgIG9mIHN1Yi1idWZmZXJpbmcgaW4gc29tZSBzaXR1YXRpb25zLCBieSBtYWtpbmcgaXQKCSAgcG9zc2libGUgZm9yIGEgYnVmZmVyIHRvIGtlZXAgYSByZWYgb24gYSBkaWZmZXJlbnQKCSAgcGFyZW50IGJ1ZmZlci4gVGhlIHBhcmVudCBidWZmZXIgaXMgdW5yZWZmZWQgd2hlbgoJICB0aGUgTWV0YSBpcyBmcmVlZC4KCSAgVGhpcyBtZXRhIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgYSBidWZmZXIgd2hvc2UKCSAgbWVtb3J5IGlzIGJlaW5nIHNoYXJlZCB0byBhIGNoaWxkIGJ1ZmZlciBpc24ndCBmcmVlZAoJICBhbmQgcmV0dXJuZWQgdG8gYSBidWZmZXIgcG9vbCB1bnRpbCB0aGUgbWVtb3J5CgkgIGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMDM5CgoyMDE1LTA2LTE2IDE4OjA4OjI0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogdGVzdC5weToKCSAgZ2k6IFVzZSBJTlRST1NQRUNUSU9OX0lOSVQgZm9yIC0tYWRkLWluaXQtc2VjdGlvbgoJICBUaGlzIG5ldyBkZWZpbmUgd2FzIGFkZGVkIHRvIGNvbW1vbi4gVGhlIG5ldyBpbml0IHNlY3Rpb24gZml4ZWQKCSAgY29tcGlsYXRpb24gd2FybmluZyBmb3VuZCBpbiB0aGUgaW5pdCBsaW5lIHRoYXQgd2FzIHNwcmVhZCBhY3Jvc3MKCSAgYWxsIGZpbGVzLgoKMjAxNS0wNi0xNiAxNzo0Njo0NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYwMTVkMjYgdG8gZjc0YjJkZgoKMjAxNS0wNi0xNSAxMDowNjowMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IEZpeCBfU1RJTUVfRk9STUFUIG1hY3JvcwoJICBUaGlzIG1hY3JvIGRpZG4ndCB3b3JrIHdlbGwgYXMgaXQgcmVsaWVkIG9uIHRoZSBzaWduIG9uIHRoZSBsYXN0CgkgIGRpdmlkZWQgbnVtYmVyIChudW1iZXIgb2YgZGF5cykuIFRoaXMgdmFsdWUgaXMgbW9zdCBvZiB0aGUgdGltZQoJICB6ZXJvLCBhbmQgemVybyBpcyBjb25zaWRlcmVkIHBvc2l0aXZlIGluIHByaW50Zi4gSW5zdGVhZCwgZGVhbCB3aXRoCgkgIHRoZSBzaWduIG1hbnVhbGx5LCBhbmQgcmVzdXNlIHRoZSBvcmlnaW5hbCBtYWNyb3MgZm9yIHRoZSByZXN0LiBUaGlzCgkgIGFjdHVhbGx5IHNpbXBsaWZ5IHRoZSBtYWNybyBhIGxvdC4KCjIwMTUtMDYtMTQgMjA6NDg6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IHJlc2V0IHNlZ21lbnQgb25seSBvbmNlIHN0cmVhbWluZyBoYXMgc3RvcHBlZAoJICBGaXhlcyB0aGUgb2NjYXNpb25hbCBjcml0aWNhbHMgaW4gdGhlIGRpc2NvdmVyZXIgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MDczCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA4MjMKCjIwMTUtMDYtMTQgMTE6MjM6MjIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgbW9yZSBtaXNzaW5nIHN5bWJvbHMgaW4gbGliLXNlY3Rpb25zLnR4dAoJICBUaGVzZSB3aGVyZSBjYXVzaW5nIGJyb2tlbiBsaW5rcy4KCjIwMTUtMDYtMTQgMTE6MjI6NTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkgIGRvYzogRml4IHJlZmVyZW5jZSB0byB1bmtub3duIHR5cGUgR3N0TmV0QWRkcmVzcwoKMjAxNS0wNi0xNCAxMToyMjozNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGRvYzogSW5jbHVkZSBhbmQgZml4IEdzdENvbnRyb2xQb2ludAoKMjAxNS0wNi0xNCAxMToyMToyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2M6IEFkZCBHc3ROZXRDb250cm9sTWVzc2FnZU1ldGEgdG8gdGhlIGRvYwoJICBUaGlzIGlzIGJlaW5nIHJlZmVyZW5jZWQgZWxzZXdoZXJlLCBidXQgcmVzdWx0cyBpbiBicm9rZW4gbGlua3MuCgkgIEl0IHNlZW1zIHRvIGJlIHB1YmxpYyBBUEksIHNvIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGluIHRoZSBkb2MuCgoyMDE1LTA2LTE0IDEwOjU5OjUxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBkb2M6IERvY3VtZW50IEdzdFB1c2hTcmNDbGFzcwoKMjAxNS0wNi0xNCAxMDo1ODoxOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGRvYzogQmV0dGVyIGRvY3VtZW50IG5ldyBHc3RDb2xsZWN0RGF0YS5BQkkuYWJpLmR0cwoJICBUaGUgZG9jIGdlbmVyYXRvciBnZXQgY29uZnVzZWQgd2l0aCB0aGUgaW5saW5lIHN0cnVjdHVyZS4gU28KCSAgd29ya2Fyb3VuZCBieSB3cmFwcGluZyB0aGUgaW5uZXIgb2YgdGhlIHN0cnVjdHVyZSB3aXRoCgkgIHB1YmxpYy9wcml2YXRlIG1hcmssIGFuZCBkb2N1bWVudCB0aGF0IEdTVF9DT0xMRUNUX1BBRFNfRFRTIG1hY3JvCgkgIHNoYWxsIGJlIHVzZWQgdG8gYWNjZXNzIHRoaXMuCgoyMDE1LTA2LTE0IDEwOjU2OjI4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkgIGRvYzogVmFyaW91cyBkb2MgZml4ZXMgZm9yIGxpYmdzdHJlYW1lci1iYXNlCgkgICogRml4IGZ1bmN0aW9uIG5hbWUgaW4gc2VjdGlvbnMudHh0CgkgICogQWRkIGZldyBtaXNzaW5nIG9yIGZpeCBtaXNzLW5hbWVkCgkgICogV29ya2Fyb3VuZCBndGstZG9jIGJlaW5nIGNvbmZ1c2VkIHdpdGggbm9uIHR5cGVkZWYKCSAgdHlwZXMgKGxvb3NlIHRyYWNrIG9mIHB1YmxpYy9wcml2YXRlCgoyMDE1LTA2LTE0IDEwOjI1OjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jOiBNb3JlIGRvYyB3YXJuaW5nIGZpeGVzCgkgIFNvIGZyb20gdGhpcyBwb2ludCwgdGhlIHJlbWFpbmluZyB3YXJuaW5nIGZvciBsaWJnc3RyZWFtZXIgYXJlIGFib3V0CgkgIHByb3RlY3RlZCBtZW1iZXIgbm90IHNob3dpbmcgaW4gdGhlIGRvYy4gVGhpcyBtYXkgbmVlZCBzb21lIGRpc2N1c3Npb24KCSAgd2l0aCB1cHN0cmVhbSBndGstZG9jIHBlb3BsZS4KCSAgKiBSZW1vdmUgJSBpbiBmcm9tIG9mIG5vbmUgbWFjcm8KCSAgKiBGaXhlZCBHU1RfVFlQRV9GQUdTIC0+IEdTVF9UWVBFX0ZBR19TRVQKCSAgKiBNaW5vciB3b3JkaW5nIGZpeAoJICAqIENhbid0IGxpbmsgdG8gR3N0VXJpLnBvcnQsIHNvIHNwbGl0IHRoZSAucG9ydCBwYXJ0CgoyMDE1LTA2LTE0IDA5OjE3OjIxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZG9jOiBJbiBHc3RVcmkgd2UgbWVhbnQgbnVsLXRlcm1pbmF0ZWQsIG5vdCAlTlVMTAoJICAlTlVMTCByZWZlcnMgdG8gdGhlIHBvaW50ZXIuIEkndmUgd3JpdHRlbiBpdCB0aGlzIHdheSBpbiBvbmUKCSAgd29yZCBhcyB0aGlzIGlzIHdoYXQgR0xpYiB1c2VzLgoKMjAxNS0wNi0xMyAyMTowMjoyMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvYzogQ2Fubm90IHJlZmVyZW5jZSBHU1RfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FCgkgIFNvIHNpbXBseSByZW1vdmUgdGhlICUgc2lnbi4KCjIwMTUtMDYtMTMgMjA6NTI6MDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGRvYzogRml4IHR5cG8gaW4gcmVmIF9jbG9ja193YWl0X2Zvcl9zeW5jKCkKCjIwMTUtMDYtMTMgMjA6Mzc6MzQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBkb2M6IEZpeCBHc3RVcmkgZG9jIHR5cG9zCgkgICogVXNlICZwZXJjdG47IGluc3RlYWQgb2YgcmVzZXJ2ZWQgY2hhcmFjdGVyICUKCSAgKiBOVUxMIHRha2UgdHdvIEwKCjIwMTUtMDYtMTMgMjA6MTk6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBkb2M6IEZpeCBTaW5jZTogbWFya3MKCSAgVGhlcmUgd2FzIGZldyBTaW5jZTogbWFyayBtaXNzaW5nIHRoZWlyIGNvbHVtbi4gQWxzbyB1bmlmeSB0aGUgd2F5CgkgIHdlIHNldCB0aGUgU2luY2UgbWFyayBvbiBlbnVtIHZhbHVlIGFuZCBzdHJ1Y3R1cmUgbWVtYmVycy4gVGhlc2UKCSAgc2FkbHkgZG9uJ3Qgc2hvdyB1cCBpbiB0aGUgaW5kZXguCgoyMDE1LTA2LTEzIDIwOjAxOjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jOiBBZGQgZ3N0X2J1ZmZlcl9jb3B5X2RlZXAoKQoKMjAxNS0wNi0xMyAxOTo0Nzo0NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgZ2k6IFNraXAgZ3N0X2NvbnNpdGVuY3lfY2hlY2tlcl9uZXcKCSAgVGhpcyBub24gYm94ZWQgdHlwZSBjYW5ub3QgYmUgYWxsb2NhdGVkIHNhZmVseS4KCjIwMTUtMDYtMTMgMTk6NDY6MjEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jOiBBZGQgaW5kZXhlcyBvZiBhZGRlZCBBUElzCgkgIE9uZSBvZiB0aGUgbmljZSBmZWF0dXJlIGluIEdUSyBkb2MgaXMgdGhhdCBpdCBnZW5lcmF0ZSBpbmRleGVzCgkgIG9mIGFkZGVkIEFQSXMgYmFzZSBvbiB0aGUgc2luY2UgbWFya2VyLiBJbmNsdWRlIHRoYXQgaW4gb3VyIGRvYwoJICB3aGlsZSBmaXhpbmcgdGhlIGlzc3VlIG9mIGR1cGxpY2F0ZSBJRCAocHJvZHVjZSB4bWwgY29udGFpbnMgdGhhdAoJICBpZCBpdCBzZWVtcykKCjIwMTUtMDYtMTMgMTU6MTA6NTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBkb2M6IE1ha2UgLi4uX3NvdXJjZV9maW5kX2NvbnRyb2xfcG9pbnRfaXRlciB0cmFuc2ZlciBub25lCgoyMDE1LTA2LTEzIDE0OjQwOjQzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgZG9jOiBTaWxlbmNlIHdhcm5pbmcgYWJvdXQgdW51c2VkIGdzdG50cHBhY2tldCBzZWN0aW9uCgkgIFRoaXMgQVBJIGlzIGludGVybmFsLgoKMjAxNS0wNi0xMyAxNDozNzo0MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIFJldmVydCAiZG9jOiBBZGQgR3N0TnRwUGFja2V0IHRvIHRoZSBkb2MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzRlYjg3Njk2MWFiYTEwOTJjNDgzMWE4ZmVhZjQ4ZDdiZTFlMzhhZS4KCSAgT29wcywgdGhpcyBpcyBub3QgYSBwdWJsaWMgQVBJCgoyMDE1LTA2LTEzIDE0OjIxOjQxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgZG9jOiBBZGQgR3N0TnRwUGFja2V0IHRvIHRoZSBkb2MKCjIwMTUtMDYtMTMgMTM6NTU6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJICBkb2M6IFJlbW92ZSBnc3RpbmRleCBmcm9tIGRvYyBjb21tZW50CgkgIE1vdmluZyB0aGF0IHRvIG5vcm1hbCBjb21tZW50IHRvIHNpbGVuY2UgdGhlIGdlbmVyYXRvci4gR3N0SW5kZXgKCSAgaXMgbm90IGluIEdTdHJlYW1lciBsaWJyYXJ5IGF0IHRoZSBtb21lbnQgKHJlbW92ZWQgZnJvbSAwLjEwKS4KCjIwMTUtMDYtMTMgMTM6NDg6MDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBnaTogU2V0IGNvbGxlY3RwYWRzIGZ1bmN0aW9uIHBhcmFtIHNjb3BlCgoyMDE1LTA2LTEzIDEzOjQyOjU4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgZ2k6IFNraXAgYWxsb2NhdG9yIG9mIG5vbi1ib3hlZCBzdHJ1Y3R1cmUKCSAgVGhlc2UgYXJlIG5vdCB1c2FibGUgYXMgdGhleSBhcmUsIGFuZCBjYW4gZWFzaWx5IGxlYWQgdG8gY3Jhc2gKCSAgb3IgbGVha3MuIFRoaXMgYWxzbyBzaWxlbmNlIHdhcm5pbmcgZnJvbSB0aGUgc2Nhbm5lci4gSWYgd2UgbWFuYWdlIHRvCgkgIG1ha2UgdGhpcyB1c2FibGUsIHdlIGNhbiB0aGVuIHJlbW92ZSB0aGF0IG1hcmssIGl0IHdpbGwgcmVxdWlyZQoJICB0byBtYWtlIHRoaXMgdHlwZSBib3hlZC4KCjIwMTUtMDYtMTMgMTM6MjQ6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBHaXZlIGdzdGNvbmZpZyBhIG5pY2UgbmFtZQoJICBBcyBhbGwgb3RoZXIgc2VjdGlvbiBkbyBoYXZlIGEgbmljZSBjYW1lIGNhc2UgbmFtZSwgaXQgc2VlbXMKCSAgbW9yZSBjb25zaXN0ZW50LgoKMjAxNS0wNi0xMyAxMzoxOToyMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBtaXNzaW5nIGdzdF9ldmVudF9uZXcvcGFyc2VfcHJvdGVjdGlvbgoKMjAxNS0wNi0xMyAxMzoxOTowNSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEdpdmUgZ3N0cHJvdGVjdGlvbiBzZWN0aW9uIGEgbmljZSB0aXRsZQoKMjAxNS0wNi0xMyAxMzoxNDozMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jOiBSZW1vdmUgdW5lZWRlZCBwcm90ZWN0aW9uZXZlbnQgc2VjdGlvbgoJICBUaGVzZSBmdW5jdGlvbnMgYXJlIHBhcnQgb2YgZ3N0ZXZlbnQgc2VjdGlvbiBhbHJlYWR5LiBLZWVwIHRoZSBkb2MsCgkgIHNpbmNlIGl0J3MgZ29vZC4KCjIwMTUtMDYtMTMgMTI6MzI6NDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogQWRkIG1pc3Npbmcgc2NvcGUgdG8gZnVuYyBwYXJhbQoJICBUaGlzIHRlbGwgR0kgaWYgdGhpcyBmdW5jdGlvbiBpcyBmb3IgYWN0aW9ucyAoY2FsbCkgb3IgaXMgdGhlCgkgIGFuc3dlciBvZiB0aGlzIG1ldGhvZCBiZWluZyBhc3luY2hyb25vdXMgKGFzeW5jKS4gSW4gdGhpcyBjYXNlCgkgIGl0J3MgYSBjYWxsLiBUaGlzIGFsc28gc2lsZW5jZSB3YXJuaW5nIGZyb20gdGhlIEdJIHNjYW5uZXIuCgoyMDE1LTA2LTEzIDEyOjI3OjMxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkgIGdzdHByb3RlY3Rpb246IEFkZCBtaXNzaW5nIFNpbmNlIDEuNiBtYXJrCgoyMDE1LTA2LTEzIDEyOjI2OjEzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIGdzdHByZWN0aW9uOiBfYWRkX3Byb3RlY3Rpb25fbWV0YSgpIGlzIHRyYW5zZmVyIG5vbmUKCSAgSnVzdCBsaWtlIGdzdF9idWZmZXJfYWRkX21ldGEoKSB0aGlzIGZ1bmN0aW9uIHNob3VsZCBhbHNvIGJlCgkgIHRyYW5zZmVyIG5vbmUuIFRoaXMgYWxzbyBzaWxlbmNlIGEgZ2kgd2FybmluZyBhYm91dCByZXR1cm5pbmcKCSAgYSBjb3B5IG9mIGEgbm9uIGJveGVkIGJhcmUgc3RydWN0dXJlLgoKMjAxNS0wNi0xMyAxMjoyNToxOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBnc3Rwcm90ZWN0aW9uOiBBZGQgbWlzc2luZyBuYW1lc3BhY2UgdG8gbWFjcm8KCSAgR1NUX1BST1RFQ1RJT05fU1lTVEVNX0lEX0NBUFNfRklFTEQgd2FzIG1pc3NpbmcgdGhlIEdTVF8gbmFtZXNwYWNlLgoJICBBZGQgaXQgYmVmb3JlIGl0cyB0b28gbGF0ZS4KCjIwMTUtMDYtMTMgMTE6NTU6MTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgZG9jOiBLZWVwIFNFQ1RJT046IGFmdGVyIHRoZSBpZmRlZgoJICBPdGhlcndpc2UgR1RLIGRvYyB3aWxsIHNlZSBpdCBhcyBvZnRlbiBhcyB3ZSBpbmNsdWRlIHRoYXQgZmlsZXMKCSAgYW5kIHdhcm4gYWJvdXQgZHVwbGljYXRlZCBTRUNUSU9OOgoKMjAxNS0wNi0xMyAxMDoyMzo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBnaTogU2tpcCBtaW5pIG9iamVjdCBtZXRob2QgdGhhdCBwbGF5IHdpdGggcmVmY291bnRpbmcKCSAgSXQgbWFrZSBubyBzZW5zZSB0byBhbGxvdyB1c2luZyB0aGF0LiBBbnkgdXNlIHdvdWxkIGxlYWQgdG8gbGVhawoJICBvZiBjcmFzaC4gTm90ZSB0aGF0IEdNaW5pT2JqZWN0IGlzIGVudGlyZWx5IHVudXNhYmxlIGFzIHlvdSBjYW5ub3QKCSAgY2FzdCBmcm9tIGxldCdzIHNheSBHc3RCdWZmZXIgdG8gR3N0TWluaU9iamVjdC4KCjIwMTUtMDYtMTMgMTU6MDU6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJICBsaWJzOiBtb3JlIGRvYyBzY2FubmVyIGZpeGVzCgkgIGdzdGJhc2V0cmFuc2Zvcm0uaDoxOTY6IFdhcm5pbmc6IEdzdEJhc2U6ICJAc3VibWl0X2lucHV0X2J1ZmZlciIgcGFyYW1ldGVyIHVuZXhwZWN0ZWQgYXQgdGhpcyBsb2NhdGlvbjoKCSAgKiBAc3VibWl0X2lucHV0X2J1ZmZlcjogRnVuY3Rpb24gd2hpY2ggYWNjZXB0cyBhIG5ldyBpbnB1dCBidWZmZXIgYW5kIHByZS1wcm9jZXNzZXMgaXQuCgkgIGdzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOjEwMzogV2FybmluZzogR3N0TmV0OiBnc3RfYnVmZmVyX2FkZF9uZXRfY29udHJvbF9tZXNzYWdlX21ldGE6IHVua25vd24gcGFyYW1ldGVyICdtZXNzYWdlJyBpbiBkb2N1bWVudGF0aW9uIGNvbW1lbnQsIHNob3VsZCBiZSAnYWRkcicKCjIwMTUtMDYtMTMgMDk6Mzc6NDYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgZG9jOiBGaXggYW5ub2F0aW9uIGZvciBHc3RNaW5pT2JqZWN0CgkgIFJlcGxhY2luZyByZXByZWNhdGVkICJSZWYgRnVuYzoiLCAiVW5yZWYgRnVuOiIgZXRjLiBjb21tZW50IGJsb2NrCgkgIHdpdGggYXBwcm9wcmlhdGUgKHJlZi1mdW5jIG5hbWUpIGV0Yy4gYW5ub3RhdGlvbi4KCjIwMTUtMDYtMTMgMDk6MzQ6MDYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGRvYzogRml4IHVuYmFsYW5jZWQgcGFyZW50aGVzaXMKCjIwMTUtMDYtMTMgMDk6MzA6MjQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvYzogRml4IG1vcmUgdHlwbwoKMjAxNS0wNi0xMyAwOToyMjo0MSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jOiBGaXggdHlwZSBpbiBwcmV2aW91cyBjb21taXQKCSAgTWFya2VyIGlzICh2YWx1ZSAuLiBub3QgKGFsdWUuCgoyMDE1LTA2LTEzIDA5OjE5OjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZG9jOiBEb24ndCB1c2UgZGVwcmVjYXRlZCBWYWx1ZTogYW5kIFR5cGU6IGNvbW1lbnQKCSAgSW5zdGVhZCB1c2UgYXBwcm9wcmlhdGUgYW5ub3RhdGlvbi4gQW5ub3RhdGlvbnMgY2FuIGJlIGFkZGVkCgkgIHRvIHRoZSByaWdodCBvZiB0aGUgY29uc3RhbnQgbmFtZSBpbiBhIGNvbW1lbnQgYmxvY2suCgoyMDE1LTA2LTEyIDE3OjA3OjM4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBjb2xsZWN0cGFkczogQWRkIG5ldyBtYWNybyB0byB0aGUgZG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTIgMTc6MDc6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGNsb2NrOiBBZGQgbmV3IHNpZ25lZCB0aW1lIG1hY3JvIHRvIHRoZSBkb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMCAxNDoxNzowMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgaW5pdGlhbGx5IHNlbmQgYW4gaW52YWxpZCBEVFMKCSAgU2VuZGluZyBhIHBvc3NpYmx5IGludmFsaWQgRFRTIG1heSBjb25mdXNlIHRoZSBtdXhlcnMsIHdoaWNoIHdpbGwKCSAgdGhlbiB0aGluayB0aGUgRFRTIGlzIGdvaW5nIGJhY2t3YXJkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA0LTAzIDE3OjU0OjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQWRkIG5lZ2F0aXZlIERUUyBzdXBwb3J0CgkgIE1ha2UgZ3N0X2NvbGxlY3RfcGFkc19jbGlwX3J1bm5pbmdfdGltZSgpIGZ1bmN0aW9uIGFsc28gc3RvcmUgdGhlCgkgIHNpZ25lZCBEVFMgaW4gdGhlIENvbGxlY3REYXRhLiBUaGlzIHNpZ25lZCBEVFMgdmFsdWUgY2FuIGJlIHVzZWQgYnkKCSAgbXV4ZXJzIHRvIHByb3Blcmx5IGhhbmRsZSBzdHJlYW1zIHdoZXJlIERUUyBjYW4gYmUgbmVnYXRpdmUgaW5pdGlhbGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEyIDEyOjA2OjA1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IEFkZCBzaWduZWQgdGltZSB1dGlsaXRpZXMKCSAgQWRkIHV0aWxpdHkgdG8gcHJpbnQgc2lnbmVkIHZhbHVlIG9mIHRpbWUuIFRoaXMgaXMgdXNlZnVsIHRvCgkgIHRyYWNlIHJ1bm5pbmcgdGltZSB2YWx1ZXMgaW4gZ2ludDY0IG9yIEdzdENsb2NrVGltZURpZmYgdmFsdWVzLgoJICBBZGRpdGlvbmFsbHksIGRlZmluZSBHU1RfQ0xPQ0tfU1RJTUVfTk9ORSB0byBpbmRpY2F0ZSBhbiBpbnZhbGlkCgkgIHNpZ25lZCB0aW1lIHZhbHVlIGFuZCB2YWxpZGF0aW9uIG1hY3JvLiBOZXcgbWFjcm9zIGFyZToKCSAgR1NUX0NMT0NLX1NUSU1FX05PTkUKCSAgR1NUX0NMT0NLX1NUSU1FX0lTX1ZBTElECgkgIEdTVF9TVElNRV9GT1JNQVQKCSAgR1NUX1NUSU1FX0FSR1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMCAyMDo0NDoyNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIGFsbG93LW5vbmUgdG8gZ3N0X21lc3NhZ2VfbmV3XyBmdW5jdGlvbgoJICBObyByZXN0cmljdGlvbiBmb3IgY3JlYXRpbmcgbWVzc2FnZXMgd2l0aG91dCBhIHNvdXJjZQoKMjAxNS0wNi0xMiAxMzo0NTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTUtMDUtMjcgMTI6Mjk6NDEgKzAzMDAgIExhemFyIENsYXVkaXUgPGxhemFyLmNsYXVkaXUuZmxvcmluQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2Fic29sdXRlLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogQWRkZWQgYWJzb2x1dGUgZGlyZWN0IGNvbnRyb2wgYmluZGluZywgZXhhbXBsZSBhbmQgdGVzdAoJICBGaXhlczogNzQwNTAyCgkgIEFQSTogZ3N0X2RpcmVjdF9jb250cm9sX2JpbmRpbmdfbmV3X2Fic29sdXRlCgoyMDE1LTA2LTA0IDAwOjAzOjE2ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHByb3ZpZGUgYSBtZW1fbWFwX2Z1bGwgdGhhdCB0YWtlcyB0aGUgR3N0TWFwSW5mbwoJICBGb2xsb3cgdXAgb2YgNzEzMDIzMGRkYjM0OWQwY2E3OTQyYWJkYmEyNmI3NTU4ZGYwNTVkMQoJICBQcm92aWRlIHRoZSBtZW1vcnkgaW1wbGVtZW50YXRpb24gdGhlIEdzdE1hcEluZm8gdGhhdCB3aWxsIGJlIHVzZWQgdG8KCSAgbWFwL3VubWFwIHRoZSBtZW1vcnkuICBUaGlzIGFsbG93cyB0aGUgbWVtb3J5IGltcGxlbWVudGF0aW9uIHRvIHVzZQoJICBzb21lIHNjcmF0Y2ggc3BhY2UgaW4gR3N0TWFwSW5mbyB0byBlLmcuIHRyYWNrIGRpZmZlcmVudCBtYXAvdW5tYXAKCSAgYmVoYXZpb3VyIG9yIHN0b3JlIGV4dHJhIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZGF0YSBhYm91dCB0aGUgbWFwCgkgIGluIHVzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDMxOQoKMjAxNS0wNC0wOCAxNDoyMTo0MyAtMDcwMCAgQWxpc29uIENoYWlrZW4gPGFsaXNvbl9jaGFpa2VuQG1lbnRvci5jb20+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIGRvY3M6IG1hbnVhbDogZml4IG5hbWUgcmV2ZXJzYWwgaW4gYmFzaWNzLXBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzUzMgoKMjAxNS0wNi0xMSAyMzowNjoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBnc3Rfd3JpdGV2OiBkZWZpbmUgVUlPX01BWElPViBvbiBpT1MvT1NYCgkgIEFwcGFyZW50bHkgaXQncyBvbmx5IHNldG9uIGlPUy9PU1ggaWYgZGVmaW5lZChLRVJORUwpLgoKMjAxNS0wNi0xMiAwMToxNToxOSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZ3N0X3dyaXRldjogUmVzcGVjdCBVSU9fTUFYSU9WIGxpbWl0IGZvciB0aGUgaW92IGFycmF5CgkgIElmIHdlIHJlY2VpdmUgbW9yZSB0aGFuIFVJT19NQVhJT1YgKDEwMjQgdHlwaWNhbGx5KSBidWZmZXJzCgkgIGluIGEgc2luZ2xlIHdyaXRldiBjYWxsLCBmYWxsIGJhY2sgdG8gY29uc29saWRhdGluZyB0aGVtCgkgIGludG8gb25lIG91dHB1dCBidWZmZXIgb3IgbXVsdGlwbGUgd3JpdGUgY2FsbHMuCgkgIFRoaXMgY291bGQgYmUgbWFkZSBtb3JlIG9wdGltYWwsIGJ1dCBsZXQncyB3YWl0IHVudGlsIGl0J3MKCSAgZXZlciBhIGJvdHRsZW5lY2sgZm9yIHNvbWVvbmUKCjIwMTUtMDYtMTEgMTI6MzQ6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwaXBlbGluZTogQWRkIGdzdF9waXBlbGluZV9zZXRfbGF0ZW5jeSgpLCBnZXR0ZXIgYW5kIEdPYmplY3QgcHJvcGVydHkKCSAgVGhpcyBvdmVycmlkZXMgdGhlIGRlZmF1bHQgbGF0ZW5jeSBoYW5kbGluZyBhbmQgY29uZmlndXJlcyB0aGUgc3BlY2lmaWVkCgkgIGxhdGVuY3kgaW5zdGVhZCBvZiB0aGUgbWluaW11bSBsYXRlbmN5IHRoYXQgd2FzIHJldHVybmVkIGZyb20gdGhlIExBVEVOQ1kKCSAgcXVlcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODIKCjIwMTUtMDYtMTEgMTE6Mzc6MzAgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIGFjdGl2ZS1wYWQgcHJvcGVydHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Njk0OQoKMjAxNS0wNi0xMSAxMTowNTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWxzbyByZXNldCB0aGUgY3VycmVudCBzdGFydCBvZmZzZXQgd2hlbiByZWNlaXZpbmcgYSBGTFVTSF9TVE9QIG9uIHRoZSBzcmNwYWQKCjIwMTUtMDYtMTEgMTE6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCBzb21lIG5ld2xpbmVzIHRvIGV2ZW50IGhhbmRsaW5nIGNvZGUgdG8gbWFrZSB0aGUgY29kZSBsb29rIGEgYml0IGxlc3MgZGVuc2UKCjIwMTUtMDYtMTEgMTA6NTM6MzAgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogUmVzZXQgc2VnbWVudCBiYXNlIG9mZnNldCBhZnRlciBGTFVTSF9TVE9QIHdpdGggcmVzZXRfdGltZSA9IFRSVUUKCSAgSWYgdGhlIHJlc2V0X3RpbWUgdmFsdWUgb2YgYSBGTFVTSF9TVE9QIGV2ZW50IGlzIHNldCB0byBUUlVFLCB0aGUgcGlwZWxpbmUKCSAgd2lsbCBoYXZlIHRoZSBiYXNlX3RpbWUgb2YgaXRzIGVsZW1lbnRzIHJlc2V0LiBUaGlzIG1lYW5zIHRoYXQgdGhlIGNvbmNhdAoJICBlbGVtZW50J3MgY3VycmVudF9zdGFydF9vZmZzZXQgaGFzIHRvIGJlIHJlc2V0IHRvIDAsIHNpbmNlIGl0IHdhcwoJICBjYWxjdWxhdGVkIHdpdGggdGhlIG9sZCBiYXNlLXRpbWUgaW4gbWluZC4KCSAgT25seSBGTFVTSF9TVE9QIGV2ZW50cyBjb21pbmcgZnJvbSB0aGUgYWN0aXZlIHBhZCBhcmUgbG9va2VkIGF0LgoJICBTaWduZWQtb2ZmLWJ5OiBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoyMDE1LTAzLTI4IDE2OjQ2OjMyICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEZvcndhcmQgRkxVU0hfU1RBUlQgYW5kIEZMVVNIX1NUT1AgZXZlbnRzCgkgIFdpdGhvdXQgdGhpcywgc2Vla2luZyBkZWFkbG9ja3MgaWYgcGVyZm9ybWVkIHdoaWxlIHRoZSBwaXBlbGluZSBpcyBwYXVzZWQuCgkgIE9ubHkgZmx1c2ggZXZlbnRzIGNvbWluZyBmcm9tIHRoZSBhY3RpdmUgcGFkIGFyZSBmb3J3YXJkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUzNjYKCjIwMTUtMDYtMDkgMTQ6Mjg6MzAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSAgY3J1ZnQ6IGFkZCB0aGUgb2Jzb2xldGUgdG1wbCBkaXIgdG8gY3J1ZnQtZGlycwoKMjAxNS0wNi0wOSAxMTozMDoxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDlhMzM1MyB0byA2MDE1ZDI2CgoyMDE1LTA2LTA5IDExOjAxOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IGZzeW5jL19jb21taXQgdXNhZ2UKCSAgX01TQ19WRVIgd2lsbCBvbmx5IGJlIGRlZmluZWQgd2hlbiBidWlsZGluZyAqb24qIHdpbmRvd3MgYW5kIG5vdCBqdXN0CgkgICpmb3IqIHdpbmRvd3MuIEluc3RlYWQsIHVzZSB0aGUgR19PU19XSU4zMiBkZWZpbmUKCjIwMTUtMDYtMDkgMTA6NTk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwOiBDaGVjayBmb3IgdGhlIGFjdHVhbCBBUEkgd2UgdXNlIGluc3RlYWQgb2YganVzdCBsb29raW5nIGZvciBfX0FQUExFX18KCSAgU2hvdWxkIGZpeCB0aGUgYnVpbGQgb24gRnJlZUJTRCwgRHJhZ29uRmx5IGFuZCBvdGhlciBCU0RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTMwCgoyMDE1LTA2LTA4IDE3OjEwOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBVc2UgdGhlIG5ldyBHU1RfQ0xPQ0tfRkxBR19ORUVEU19TVEFSVFVQX1NZTkMgZmxhZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTc0CgoyMDE1LTA2LTA4IDE3OjA0OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBNYWtlIHRoZSBjbG9jayBhIHdyYXBwZXIgY2xvY2sgYXJvdW5kIGFuIGludGVybmFsIGNsb2NrCgkgIFRoZSBpbnRlcm5hbCBjbG9jayBpcyBvbmx5IHVzZWQgZm9yIHNsYXZpbmcgYWdhaW5zdCB0aGUgcmVtb3RlIGNsb2NrLCB3aGlsZQoJICB0aGUgdXNlci1mYWNpbmcgR3N0Q2xvY2sgY2FuIGJlIGFkZGl0aW9uYWxseSBzbGF2ZWQgdG8gYW5vdGhlciBjbG9jayBpZgoJICBkZXNpcmVkLiBCeSBkZWZhdWx0LCBpZiBubyBtYXN0ZXIgY2xvY2sgaXMgc2V0LCB0aGlzIGhhcyBleGFjdGx5IHRoZSBzYW1lCgkgIGJlaGF2aW91ciBhcyBiZWZvcmUuIElmIGEgbWFzdGVyIGNsb2NrIGlzIHNldCAod2hpY2ggd2FzIG5vdCBhbGxvd2VkIGJlZm9yZSksCgkgIHRoZSB1c2VyLWZhY2luZyBjbG9jayBpcyByZXBvcnRpbmcgdGhlIHJlbW90ZSBjbG9jayBhcyBpbnRlcm5hbCB0aW1lIGFuZAoJICBzbGF2ZXMgdGhpcyB0byB0aGUgbWFzdGVyIGNsb2NrLgoJICBUaGlzIGFsc28gcmVtb3ZlcyB0aGUgd2VpcmRuZXNzIHRoYXQgdGhlIGludGVybmFsIHRpbWUgb2YgdGhlIG5ldGNsaWVudGNsb2NrCgkgIHdhcyBhbHdheXMgdGhlIHN5c3RlbSBjbG9jayB0aW1lLCBhbmQgbm90IHRoZSByZW1vdGUgY2xvY2sgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU3NAoKMjAxNS0wNi0wOCAyMzowNzo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDM3YWYzMiB0byBkOWEzMzUzCgoyMDE1LTA2LTA4IDIwOjAwOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHM6IGZha2VzaW5rOiBmaXggc3RyaW5nIGxlYWsgaW4gdW5pdCB0ZXN0CgoyMDE1LTA2LTA5IDAwOjUyOjM0ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBXaW5kb3dzIGJ1aWxkIGJ5IHVzaW5nIF9jb21taXQgaW5zdGVhZCBvZiBmc3luYy4KCjIwMTUtMDYtMDggMTI6MjI6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBNYWtlIHN1cmUgdG8gYWx3YXlzIGluaXRpYWxpemUgdGhlIHZhcmlhYmxlcyB3ZSBwdXQgaW50byB0aGUgc3RhdGlzdGljcyBzdHJ1Y3R1cmUgbGF0ZXIKCSAgQ0lEIDEzMDQ2NzYsIDEzMDQ2NzcsIDEzMDQ2NzgsIDEzMDQ2NzkuCgoyMDE1LTA2LTA4IDEyOjAyOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHA6IEVuc3VyZSB0aGF0IG5vdCB0b28gbXVjaCBpcyByZWFkIGZyb20gb3Igd3JpdHRlbiB0byBzdHJ1Y3QgaWZyZXEuaWZyX25hbWUKCjIwMTUtMDYtMDggMTk6MzM6MDMgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgdmZ1bmNzCgkgIEFkZCBTaW5jZTogMS42IG1hcmtlcnMgZm9yIHRoZSBuZXcgc3VibWl0X2lucHV0X2J1ZmZlcigpIGFuZAoJICBnZW5lcmF0ZV9vdXRwdXQoKSB2ZnVuY3MKCjIwMTUtMDUtMjMgMDE6MDg6MjkgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMi5jOgoJICBiYXNldHJhbnNmb3JtOiBTcGxpdCBpbnB1dCBidWZmZXIgcHJvY2Vzc2luZyBmcm9tIG91dHB1dCBnZW5lcmF0aW9uCgkgIEFsbG93IGZvciBzdWItY2xhc3NlcyB3aGljaCB3YW50IHRvIGNvbGxhdGUgaW5jb21pbmcgYnVmZmVycyBvcgoJICBzcGxpdCB0aGVtIGludG8gbXVsdGlwbGUgb3V0cHV0IGJ1ZmZlcnMgYnkgc2VwYXJhdGluZyB0aGUgaW5wdXQKCSAgYnVmZmVyIHN1Ym1pc3Npb24gZnJvbSBvdXRwdXQgYnVmZmVyIGdlbmVyYXRpb24gYW5kIGFsbG93aW5nCgkgIGZvciBsb29waW5nIG9mIG9uZSBvZiB0aGUgcGhhc2VzIGRlcGVuZGluZyBvbiBwdWxsIG9yIHB1c2ggbW9kZQoJICBvcGVyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAwMzMKCjIwMTUtMDQtMTYgMTA6MzI6MDIgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIEFkZCBHU1RfQlVGRkVSX0ZMQUdfU1lOQ19BRlRFUiBmbGFnLCBhbmQgaW1wbGVtZW50IGluIGZpbGVzaW5rLgoJICBNYWtlcyBpdCBwb3NzaWJsZSB0byBnZXQgZmlsZXNpbmsgdG8gZnN5bmMoKSBhZnRlciByZW5kZXJpbmcKCSAgYSBidWZmZXIuCgoyMDE1LTA2LTA4IDEwOjQ2OjI0ICswMjAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEZpeCBidWlsZCBvbiBXaW5kb3dzLCBhbmQgaW4gZ2VuZXJhbCB0aGUgR0kgYnVpbGQgd2hlbiBQVFAgc3VwcG9ydCB3YXMgbm90IGF2YWlsYWJsZQoJICBJdCdzIG5vdCBnb2luZyB0byB3b3JrIG9uIFdpbmRvd3Mgc3RpbGwsIHRoZSBoZWxwZXIgcHJvY2VzcyBuZWVkcyB0byBiZQoJICBwb3J0ZWQuCgoyMDE1LTA2LTA3IDIzOjA1OjUzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMWJhMmU1IHRvIGQzN2FmMzIKCjIwMTUtMDYtMDcgMTc6MzE6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM0MDg1ODMgdG8gMjFiYTJlNQoKMjAxNS0wNi0wNyAxNjo1ODo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgZG9jczogcmVtb3ZlIHZhcmlhYmxlcyB0aGF0IHdlIGRlZmluZSBpbiB0aGUgc25pcHBldCBmcm9tIGNvbW1vbgoJICBUaGlzIGlzIHN5bmNpbmcgb3VyIE1ha2VmaWxlLmFtIHdpdGggdXBzdHJlYW0gZ3RrZG9jLgoKMjAxNS0wNi0wNyAxNzoxNjowNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDY3Njk5MyB0byBjNDA4NTgzCgoyMDE1LTA2LTA3IDE2OjQ0OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50CgoyMDE1LTA2LTA3IDEwOjUyOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBuZXRjbGllbnRjbG9jazogVGhlIE5UUCBwb2xsIGludGVydmFsIGlzIGEgc2lnbmVkIGludDgsIG5vdCB1bnNpZ25lZAoKPT09IHJlbGVhc2UgMS41LjEgPT09CgoyMDE1LTA2LTA3IDA5OjQxOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuMQoKMjAxNS0wNi0wNyAwOTozMzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHBvL3RyLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wNi0wNyAwOTozMjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQWRkIFNpbmNlIG1hcmtlciB0byB0aGUgZG9jcyBmb3IgZ3N0X250cF9jbG9ja19uZXcoKQoKMjAxNS0wNi0wNyAwOTozMjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDYtMDcgMDk6MDg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogRml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIHVuaXQgdGVzdAoJICBnc3QvZ3N0bWVtb3J5LmM6NTcwOjM4OiBlcnJvcjogaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIGVudW1lcmF0aW9uIHR5cGUgJ0dzdE1hcEZsYWdzJyB0byBkaWZmZXJlbnQgZW51bWVyYXRpb24KCSAgdHlwZSAnR3N0TG9ja0ZsYWdzJyBbLVdlcnJvciwtV2VudW0tY29udmVyc2lvbl0KCSAgZmFpbF91bmxlc3MgKGdzdF9tZW1vcnlfbG9jayAobWVtLCBHU1RfTUFQX1dSSVRFKSk7CgkgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5efn5+fn5+fn5+fn5+fgoKMjAxNS0wNi0wNyAwODo1OToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogVXNlIHRoZSBjdXJyZW50IHBhdGggZGVsYXkgZm9yIGNhbGN1bGF0aW9uIHRoZSBsb2NhbC9yZW1vdGUgY2xvY2sgdGltZXMKCSAgVGhlIG1lYW4gbWlnaHQgY3VycmVudGx5IGJlIGNoYW5naW5nLCBhbmQgdGhlIGN1cnJlbnQgcGF0aCBkZWxheSBpcyB0aGUKCSAgY2xvc2VzdCB3ZSBjYW4gZ2V0IHRvIHRoZSBhY3R1YWwgZGVsYXkgYXJvdW5kIHRoZSBjdXJyZW50IFNZTkMgbWVzc2FnZS4KCjIwMTUtMDYtMDYgMjM6MDU6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFkZCBzb21lIGNvcHlyaWdodCBzdHVmZgoKMjAxNS0wNi0wNiAyMTo0MzowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIG5ldGNsaWVudGNsb2NrOiBBZGQgTlRQdjQgc3VwcG9ydAoJICBUaGlzIHVzZXMgYWxsIG9mIHRoZSBuZXRjbGllbnRjbG9jayBjb2RlLCBleGNlcHQgZm9yIHRoZSBnZW5lcmF0aW9uIGFuZAoJICBwYXJzaW5nIG9mIHBhY2tldHMuIFVuZm9ydHVuYXRlbHkgc29tZSBjb2RlIGR1cGxpY2F0aW9uIHdhcyBuZWNlc3NhcnkKCSAgYmVjYXVzZSBHc3ROZXRUaW1lUGFja2V0IGlzIHB1YmxpYyBBUEkgYW5kIGNvdWxkbid0IGJlIGV4dGVuZGVkIGVhc2lseQoJICB0byBzdXBwb3J0IE5UUHY0IHBhY2tldHMgd2l0aG91dCBicmVha2luZyBBUEkvQUJJLgoKMjAxNS0wNi0wNiAyMDozOTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogUHJlcGFyYXRpb24gZm9yIE5UUHY0IHN1cHBvcnQKCSAgV2UgZXh0ZW5kIG91ciBjYWxjdWxhdGlvbnMgdG8gd29yayB3aXRoIGxvY2FsIHNlbmQgdGltZSwgcmVtb3RlIHJlY2VpdmUgdGltZSwKCSAgcmVtb3RlIHNlbmQgdGltZSBhbmQgbG9jYWwgcmVjZWl2ZSB0aW1lLiBGb3IgdGhlIG5ldGNsaWVudGNsb2NrIHByb3RvY29sLAoJICByZW1vdGUgcmVjZWl2ZSBhbmQgc2VuZCB0aW1lIGFyZSBhc3N1bWVkIHRvIGJlIHRoZSBzYW1lIHZhbHVlLgoJICBGb3IgdGhlIHJlc3VsdHMsIHRoaXMgbW9kaWZpZWQgY2FsY3VsYXRpb24gbWFrZXMgYWJzb2x1dGVseSBubyBkaWZmZXJlbmNlCgkgIHVubGVzcyB0aGUgdHdvIHJlbW90ZSB0aW1lcyBhcmUgZGlmZmVyZW50LgoKMjAxNS0wNi0wNiAxOTowMTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jay4gRml4IGxhc3QgY29tbWl0CgkgIEFwcGFyZW50bHkgSSBmYWlsZWQgYXQgZ2l0IGFkZCAtaS4KCjIwMTUtMDYtMDYgMTg6NDI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IE1ha2UgZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KCkgYSB0aGluZyB3cmFwcGVyIGFyb3VuZCBnX29iamVjdF9uZXcoKQoJICBCaW5kaW5ncyB3aWxsIGxpa2UgdGhpcywgYW5kIGFsc28gaXQgZml4ZXMgYSBGSVhNRSBjb21tZW50LgoKMjAxNS0wNi0wNiAxNDozNDozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogVXNlICNkZWZpbmUgZXZlcnl3aGVyZSBpbnN0ZWFkIG9mIEdfTl9FTEVNRU5UUygpCgoyMDE1LTA2LTA2IDE0OjMxOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBGaWx0ZXIgUlRUcyBiYXNlZCBvbiB0aGUgbWVkaWFuIG9mIHRoZSBsYXN0IFJUVHMgYmVmb3JlIGNvbnNpZGVyaW5nIHRoZW0gYXQgYWxsCgkgIFRoaXMgaW1wcm92ZXMgYWNjdXJhY3kgb24gd2lmaSBvciBzaW1pbGFyIG5ldHdvcmtzLCB3aGVyZSB0aGUgUlRUIGNhbiBnbyB2ZXJ5CgkgIGhpZ2ggdXAgZm9yIGEgc2luZ2xlIG9ic2VydmF0aW9uIGV2ZXJ5IG5vdyBhbmQgdGhlbi4gV2l0aG91dCBmaWx0ZXJpbmcgdGhlbQoJICBhd2F5IGNvbXBsZXRlbHksIHRoZXkgd291bGQgc3RpbGwgc3RpbGwgbW9kaWZ5IHRoZSBhdmVyYWdlIFJUVCwgYW5kIHRodXMgYWxsCgkgIGNsb2NrIGVzdGltYXRpb25zLgoKMjAxNS0wNi0wNiAxNDoxOToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogVXNlIGEgc3lzdGVtIGNsb2NrIGZvciB0aGUgdGltZSBvYnNlcnZhdGlvbnMgaW5zdGVhZCBvZiBnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCkKCSAgVGhleSBkb24ndCBuZWNlc3NhcmlseSB1c2UgdGhlIHNhbWUgdW5kZXJseWluZyBjbG9ja3MgKGUuZy4gb24gV2luZG93cyksIG9yCgkgIG1pZ2h0IGJlIGNvbmZpZ3VyZWQgdG8gYSBkaWZmZXJlbnQgY2xvY2sgdHlwZSAobW9ub3RvbmljIHZzLiByZWFsIHRpbWUgY2xvY2spLgoJICBXZSBuZWVkIHRoZSB2YWx1ZXMgYSBjbGVhbiBzeXN0ZW0gY2xvY2sgcmV0dXJucywgYXMgdGhvc2UgYXJlIHRoZSB2YWx1ZXMgdXNlZAoJICBieSB0aGUgaW50ZXJuYWwgY2xvY2tzLgoKMjAxNS0wNi0wNiAxMjozNTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogRml4IGRvY3VtZW50YXRpb24gYSBiaXQKCjIwMTUtMDYtMDUgMTk6MzU6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0czogZmFrZXNpbms6IHRlc3Qgbm90aWZ5OjpsYXN0LW1lc3NhZ2UgYW5kIGRlZXAtbm90aWZ5OjpsYXN0LW1lc3NhZ2UKCSAgZGVlcC1ub3RpZnk6Omxhc3QtbWVzc2FnZSBzZWVtcyB0byBjYXVzZSBzb21lIHByb2JsZW1zLCBzbyBkaXNhYmxlIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE2NDIKCjIwMTUtMDYtMDUgMTA6MDI6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUG9zdCBhbiBlcnJvciBpZiB3ZSBjYW4ndCB0eXBlZmluZCB0aGUgZGF0YSB1bnRpbCBFT1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDQzOQoKMjAxNS0wNi0wNCAxOTowNTo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogTWFrZSBzdXJlIHRvIHVzZSBnX3BvbGwoKSBmb3IgdGhlIG1haW4gY29udGV4dAoJICBUaGUgbW9kaWZpZWQgbWFpbiBjb250ZXh0IGZyb20gaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTA1NAoJICBzb21laG93IGNhbGxzIHNldHVnaWQoKSwgd2hpY2ggYWJvcnQoKXMgc2V0dWlkIHJvb3QgYXBwbGljYXRpb25zIG9uIE9TWC4KCjIwMTUtMDYtMDQgMTg6MzI6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IE1ha2Ugc3VyZSB0aGF0IHdlIGFyZSBydW5uaW5nIHNldHVpZCByb290IGlmIGNvbmZpZ3VyZWQgdGhhdCB3YXkKCjIwMTUtMDYtMDQgMTg6MDA6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IEZpeCBpbnRlcmZhY2UgbGlzdGluZyBhbmQgTUFDIHJldHJpZXZhbCBvbiBPU1gKCjIwMTUtMDYtMDMgMTk6MDQ6MTUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogQWRkIHN1cHBvcnQgZm9yIGdpbmRlbnQgYXMgZXhlY3V0YWJsZSBuYW1lCgkgIGdzdC1pbmRlbnQgdXNlZCB0byBzdXBwb3J0IGdudWluZGVudCBhbmQgaW5kZW50IGFzIGV4ZWN1dGFibGUgbmFtZXMuCgkgIEhvd2V2ZXIsIG9uIE9TWCBvbmUgY2FuICJicmV3IGluc3RhbGwgZ251LWluZGVudCIgYW5kIHRoZW4gdGhlCgkgIGV4ZWN1dGFibGUgbmFtZSB3aWxsIGJlIGdpbmRlbnQuIEFkZGVkIHN1cHBvcnQgZm9yIHRoYXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzNTEKCjIwMTUtMDYtMDMgMTY6NDI6NTcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogYWRkIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIKCjIwMTUtMDYtMDMgMTY6MzQ6NTggKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBwdHA6IGlnbm9yZSBwZXJtaXNzaW9uIGVycm9ycyBpbiBNYWtlZmlsZQoJICBUbyBzYXRpc2Z5IHRoZSBidWlsZHNsYXZlcyBpZ25vcmUgcGVybWlzc2lvbiBlcnJvcnMgaW4gY2hvd24sIGNobW9kIGFuZCBzZXRjYXAKCjIwMTUtMDYtMDMgMTc6MDY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cDogRG9uJ3QgdXNlIFNJT0NHSUZIV0FERFIgb24gQXBwbGUKCSAgSnVzdCAjaWZkZWYgdGhlIGNvZGUgZm9yIG5vdywgdGhpcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYXJvdW5kCgkgIElPS2l0IGxhdGVyIGluc3RlYWQgb2YgdXNpbmcgaW9jdGxzLgoKMjAxNS0wNi0wMyAxNjoyODo0NCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBtYWtlIGluc3RhbGwtZXhlYy1ob29rcyBkZXBlbmQgb24gaW5zdGFsbC1oZWxwZXJzUFJPR1JBTVMKCSAgVG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIHdoZXJlIG1ha2Ugd291bGQgdHJ5IHRvIGNoYW5nZSBvd25lcnNoaXAgYW5kCgkgIHBlcm1pc3Npb25zIG9mIHRoZSBub3QteWV0LWluc3RhbGxlZCBwdHAgaGVscGVyLgoKMjAxNS0wNi0wMyAxNjowODo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEZpeCBkZWJ1ZyBvdXRwdXQgdG8gcHJpbnQgdGhlIGRpZmZlcmVuY2UgaW5zdGVhZCBvZiBhYnNvbHV0ZSB2YWx1ZXMKCjIwMTUtMDYtMDMgMTU6MjI6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBmaXggY29tcGlsYXRpb24KCSAgRG9uJ3QgcHV0IGNvZGUgYmV0d2VlbiBkZWNsYXJhdGlvbnMuCgkgIEZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKCjIwMTUtMDYtMDMgMTE6MDQ6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBBZGQgbWVkaWFuIGJhc2VkIHByZS1maWx0ZXJpbmcgb2YgZGVsYXlzCgkgIElmIHRoZSBkZWxheSBtZWFzdXJlbWVudCBpcyB0b28gZmFyIGF3YXkgZnJvbSB0aGUgbWVkaWFuIG9mIHRoZSB3aW5kb3cgb2YgbGFzdAoJICBkZWxheSBtZWFzdXJlbWVudHMsIHdlIGRpc2NhcmQgaXQuIFRoaXMgaW5jcmVhc2VzIGFjY3VyYWN5IG9uIHdpZmkgYSBsb3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDYtMDIgMTU6MjQ6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBBZGQgI2RlZmluZSB0byBvbmx5IHVzZSBTWU5DIG1lc3NhZ2VzIGZvciB3aGljaCB3ZSBjYW4gc2VuZCBERUxBWV9SRVEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNS0xNSAxNjo1ODo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEFkZCAjZGVmaW5lcyB0byBlbmFibGUvZGlzYWJsZSBpbXByb3ZlbWVudHMgZm9yIHVucmVsaWFibGUgbmV0d29ya3MKCSAgV2Ugc2hvdWxkIGRvIHNvbWUgbW9yZSBtZWFzdXJlbWVudHMgd2l0aCBhbGwgdGhlc2UgYW5kIGNoZWNrIGhvdyBtdWNoIHNlbnNlCgkgIHRoZXkgbWFrZSBmb3IgUFRQLiBBbHNvIGVuYWJsaW5nIHRoZW0gbWVhbnMgbm90IGZvbGxvd2luZyBJRUVFMTU4OC0yMDA4IGJ5IHRoZQoJICBsZXR0ZXIgYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNS0xNCAxMjoxODoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBfcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9uZXQuaDoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC9wdHAtcHJpbnQtdGltZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIHB0cDogSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBhIFBUUCBjbG9jawoJICBHc3RQdHBDbG9jayBpbXBsZW1lbnRzIGEgUFRQIChJRUVFMTU4ODoyMDA4KSBvcmRpbmFyeSBjbG9jayBpbgoJICBzbGF2ZS1vbmx5IG1vZGUsIHRoYXQgYWxsb3dzIGEgR1N0cmVhbWVyIHBpcGVsaW5lIHRvIHN5bmNocm9uaXplCgkgIHRvIGEgUFRQIG5ldHdvcmsgY2xvY2sgaW4gc29tZSBzcGVjaWZpYyBkb21haW4uCgkgIFRoZSBQVFAgc3Vic3lzdGVtIGNhbiBiZSBpbml0aWFsaXplZCB3aXRoIGdzdF9wdHBfaW5pdCgpLCB3aGljaCB0aGVuCgkgIHN0YXJ0cyBhIGhlbHBlciBwcm9jZXNzIHRvIGRvIHRoZSBhY3R1YWwgY29tbXVuaWNhdGlvbiB2aWEgdGhlIFBUUAoJICBwb3J0cy4gVGhpcyBpcyByZXF1aXJlZCBhcyBQVFAgbGlzdGVucyBvbiBwb3J0cyA8IDEwMjQgYW5kIHRodXMKCSAgcmVxdWlyZXMgc3BlY2lhbCBwcml2aWxlZ2VzLiBPbmNlIHRoaXMgaGVscGVyIHByb2Nlc3MgaXMgc3RhcnRlZCwgdGhlCgkgIG1haW4gcHJvY2VzcyB3aWxsIHN5bmNocm9uaXplIHRvIGFsbCBQVFAgZG9tYWlucyB0aGF0IGFyZSBkZXRlY3RlZCBvbgoJICB0aGUgc2VsZWN0ZWQgaW50ZXJmYWNlcy4KCSAgZ3N0X3B0cF9jbG9ja19uZXcoKSB0aGVuIGFsbG93cyB0byBjcmVhdGUgYSBHc3RDbG9jayB0aGF0IHByb3ZpZGVzIHRoZQoJICBQVFAgdGltZSBmcm9tIGEgbWFzdGVyIGNsb2NrIGluc2lkZSBhIHNwZWNpZmljIFBUUCBkb21haW4uIFRoaXMgY2xvY2sKCSAgd2lsbCBvbmx5IHJldHVybiB2YWxpZCB0aW1lc3RhbXBzIG9uY2UgdGhlIHRpbWVzdGFtcHMgaW4gdGhlIFBUUCBkb21haW4KCSAgYXJlIGtub3duLiBUbyBjaGVjayB0aGlzLCB0aGUgR3N0UHRwQ2xvY2s6OmludGVybmFsLWNsb2NrIHByb3BlcnR5IGFuZAoJICB0aGUgcmVsYXRlZCBub3RpZnk6OmNsb2NrIHNpZ25hbCBjYW4gYmUgdXNlZC4gT25jZSB0aGUgaW50ZXJuYWwgY2xvY2sKCSAgaXMgbm90IE5VTEwsIHRoZSBQVFAgZG9tYWluJ3MgdGltZSBpcyBrbm93bi4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHdhaXQKCSAgZm9yIHRoaXMgd2l0aCBnc3RfcHRwX2Nsb2NrX3dhaXRfcmVhZHkoKS4KCSAgVG8gZ2F0aGVyIHN0YXRpc3RpY3MgYWJvdXQgdGhlIFBUUCBjbG9jayBzeW5jaHJvbml6YXRpb24sCgkgIGdzdF9wdHBfc3RhdGlzdGljc19jYWxsYmFja19hZGQoKSBjYW4gYmUgdXNlZC4gVGhpcyBnaXZlcyB0aGUKCSAgYXBwbGljYXRpb24gdGhlIHBvc3NpYmlsaXR5IHRvIGNvbGxlY3QgYWxsIGtpbmRzIG9mIHN0YXRpc3RpY3MKCSAgZnJvbSB0aGUgY2xvY2sgc3luY2hyb25pemF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA2LTAzIDEzOjE2OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFkZCBHU1RfQ0xPQ0tfRkxBR19ORUVEU19TVEFSVFVQX1NZTkMgYW5kIHJlbGF0ZWQgQVBJCgkgIGdzdF9jbG9ja193YWl0X2Zvcl9zeW5jKCksIGdzdF9jbG9ja19pc19zeW5jZWQoKSBhbmQgZ3N0X2Nsb2NrX3NldF9zeW5jZWQoKQoJICBwbHVzIGEgc2lnbmFsIHRvIGFzeW5jaHJvbm91c2x5IHdhaXQgZm9yIHRoZSBjbG9jayB0byBiZSBzeW5jZWQuCgkgIFRoaXMgY2FuIGJlIHVzZWQgYnkgY2xvY2tzIHRvIHNpZ25hbCB0aGF0IHRoZXkgbmVlZCBpbml0aWFsIHN5bmNocm9uaXphdGlvbgoJICBiZWZvcmUgdGhleSBjYW4gcmVwb3J0IGFueSB0aW1lLCBhbmQgdGhhdCB0aGlzIHN5bmNocm9uaXphdGlvbiBjYW4gYWxzbyBnZXQKCSAgY29tcGxldGVseSBsb3N0IGF0IHNvbWUgcG9pbnQuIE5ldHdvcmsgY2xvY2tzLCBsaWtlIHRoZSBHU3RyZWFtZXIKCSAgbmV0Y2xpZW50Y2xvY2ssIE5UUCBvciBQVFAgY2xvY2tzIGFyZSBleGFtcGxlcyBmb3IgY2xvY2tzIHdoZXJlIHRoaXMgaXMgdXNlZnVsCgkgIHRvIGhhdmUgYXMgdGhleSBjYW4ndCByZXBvcnQgYW55IHRpbWUgYXQgYWxsIGJlZm9yZSB0aGV5J3JlIHN5bmNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNi0wMyAxODowMzozNiArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBwcm92aWRlIGEgbWVtX3VubWFwIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhlIGZsYWdzIHRvIHVubWFwCgkgIFRoZXJlIGFyZSBnc3RtZW1vcnkncyBhdmFpbGFibGUgdGhhdCBvcGVyYXRlIGluIHR3byBtZW1vcnkgZG9tYWlucwoJICBhbmQgbmVlZCB0byBlbnN1cmUgY29uc2lzdGVudCBhY2Nlc3MgYmV0d2VlbiB0aGVzZSBkb21haW5zLgoJICBJbWFnaW5lIGEgc2NlbmFyaW8gd2hlcmUgZS5nLiB0aGUgR0xNZW1vcnkgaXMgbWFwcGVkIHR3aWNlIGluIGJvdGgKCSAgdGhlIEdQVSBhbmQgdGhlIENQVSBkb21haW4uICBPbiB1bm1hcCBvciBhIHN1YnNlcXVlbnQgbWFwLCBpdCB3b3VsZAoJICBsaWtlIHRvIGVuc3VyZSB0aGF0IHRoZSBtb3N0IHJlY2VudCBkYXRhIGlzIGF2YWlsYWJsZSBpbiB0aGUgbWVtb3J5CgkgIGRvbWFpbiByZXF1ZXN0ZWQuICBFaXRoZXIgYnkgZmx1c2hpbmcgdGhlIHdyaXRlcyBhbmQvb3IgaW5pdGlhdGluZyBhCgkgIERNQSB0cmFuc2Zlci4gIFdpdGhvdXQga25vd2luZyB3aGljaCBkb21haW4gaXMgYmVpbmcgdW5tYXBwZWQsIHRoZQoJICBtZW1vcnkgZG9lcyBub3Qga25vdyB3aGVyZSB0aGUgbW9zdCByZWNlbnQgZGF0YSBpcyB0byB0cmFuc2ZlciB0bwoJICB0aGUgb3RoZXIgbWVtb3J5IGRvbWFpbi4KCSAgTm90ZTogdGhpcyBzdGlsbCBkb2VzIG5vdCBhbGxvdyBkb3duZ3JhZGluZyBhIG1lbW9yeSBtYXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzMTkKCjIwMTUtMDYtMDIgMTY6MTQ6NTAgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGdzdF9tZW1vcnlfc2hhcmUgbWF5IGZhaWwgdG8gZXhjbHVzaXZlbHkgbG9jayB0aGUgcGFyZW50IG1lbW9yeQoJICBOb3cgdGhhdCBsb2NraW5nIGV4Y2x1c2l2ZWx5IGRvd3Mgbm90IGFsd2F5cyBzdWNjZWVkLCB3ZSBuZWVkIHRvIHNpZ25hbAoJICB0aGUgZmFpbHVyZSBjYXNlIGZyb20gZ3N0X21lbW9yeV9pbml0LgoJICBSYXRoZXIgdGhhbiBpbnRyb2R1Y2luZyBhbiBBUEkgb3IgZnVuY2lvbmFsaXR5IGNoYW5nZSB0byBnc3RfbWVtb3J5X2luaXQsCgkgIHdvcmthcm91bmQgYnkgY2hlY2tpbmcgZXhjbHVzaXZpdHkgaW4gdGhlIGNhbGxpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE3MgoKMjAxNS0wNi0wMiAwMDoyMzozNyArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbG9ja2luZyBtZW1vcnkgZXhjbHVzaXZlbHkgbWF5IGZhaWwKCSAgQXR0ZW1wdCB0byByZXR1cm4gYSBjb3B5IG9mIHRoZSBtZW1vcnkgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE3MgoKMjAxNS0wNS0zMSAyMToyNToyMyArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtaW5pb2JqZWN0OiBkaXNhbGxvdyBhIGRvdWJsZSB3cml0ZS9leGNsdXNpdmUgbG9jawoJICBnc3RfbWVtb3J5X2xvY2sgKG1lbSwgV1JJVEUgfCBFWENMVVNJVkUpOwoJICBnc3RfbWVtb3J5X2xvY2sgKG1lbSwgV1JJVEUgfCBFWENMVVNJVkUpOwoJICBTdWNjZWVkcyB3aGVuIHRoZSBwYXJ0LW1pbmlvYmplY3QudHh0IGRlc2lnbiBkb2Mgc3VnZ2VzdHMgdGhhdCB0aGlzIHNob3VsZCBmYWlsOgoJICAiQSBnc3RfbWluaV9vYmplY3RfbG9jaygpIGNhbiBmYWlsIHdoZW4gYSBXUklURSBsb2NrIGlzIHJlcXVlc3RlZCBhbmQKCSAgdGhlIGV4Y2x1c2l2ZSBjb3VudGVyIGlzID4gMS4gSW5kZWVkIGEgR3N0TWluaU9iamVjdCBvYmplY3Qgd2l0aCBhbgoJICBleGNsdXNpdmUgY291bnRlciAxIGlzIGxvY2tlZCBFWENMVVNJVkVMWSBieSBhdCBsZWFzdCAyIG9iamVjdHMgYW5kIGlzCgkgIHRoZXJlZm9yZSBub3Qgd3JpdGFibGUuIgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTcyCgoyMDE1LTA2LTAyIDIwOjMyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IG1hdGNoIHJldHVybiB0eXBlIG9mIGdldF91cmlfdHlwZSgpIGltcGxlbWVudGF0aW9uIHRvIGRlY2xhcmF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAyOTIKCjIwMTUtMDYtMDMgMDA6MTI6MzYgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEFkZCBhIG5vdGUgYWJvdXQgbWV0YXMgbmVlZGluZyB0byBiZSBjb3BpZWQgbGFzdAoKMjAxNS0wNS0yNyAyMjoyMzowMCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBJbXBsZW1lbnQgZ3N0X3ZhbHVlX2lzX3N1YnNldCgpIGZvciBmbGFnc2V0cwoKMjAxNS0wNi0wMiAxNjozMzo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIGNoZWNrOiBVc2UgR1NUX0NIRUNLX01BSU4gbWFjcm8KCjIwMTUtMDUtMjAgMjE6MTg6MDggKzA5MDAgIGV1bmhhZSBjaG9pIDxldW5oYWUxLmNob2lAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiByZWxlYXNlIGxvY2sgYmVmb3JlIHBvc3RpbmcgbXNnCgkgIHRvIGF2b2lkIHRoZSBkZWFkbG9jayBpbiBwbGF5YmluMiwKCSAgc2VuZCBtc2cgYWZ0ZXIgcmVsZWFzZSB0aGUgZG93bmxvYWQgYnVmZmVyIGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk1MzUKCjIwMTUtMDUtMzEgMjA6MjE6NDIgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgbm90ZSBhYm91dCBtaXNzaW5nIGZpZWxkIGNyZWF0aW9uIG9uIF9zZXQoKQoKMjAxNS0wNS0zMCAxMzowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IGZpeCBzb21lIGxlYWtzIGluIG5ldyBmbGFnc2V0IGNoZWNrcwoKMjAxNS0wNS0zMCAxMjozOToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiByZW1vdmUgZHVwbGljYXRlIGFzc2lnbm1lbnQKCSAgV2UndmUgYWxyZWFkeSBkb25lIHRoaXMgZWFybGllciBpbiB0aGUgZnVuY3Rpb24sCgkgIGFuZCBub3RoaW5nIGhhcyBjaGFuZ2VkIHNpbmNlIHdlIGZpcnN0IHJlYWQgaXQuCgoyMDE1LTA1LTI3IDE3OjIyOjI4ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdC9nc3QuYzogQWRkIGEgd2FybmluZyBhYm91dCBEbGxNYWluIHRvIHByZXZlbnQgbWlzdXNlCgkgIERsbE1haW4gc2hvdWxkIG5vdCBiZSByZWxpZWQgb24gZm9yIGFueXRoaW5nIGV4Y2VwdCBzdG9yaW5nIHRoZSBETEwgaGFuZGxlLgoJICBJdCBzaG91bGQgYWxzbyBub3QgYmUgZGVmaW5lZCBmb3Igc3RhdGljIGJ1aWxkcywgYnV0IGRvaW5nIHNvIGlzIG5vdAoJICBzdHJhaWdodGZvcndhcmQgYW5kIGlzIG1vc3RseSBoYXJtbGVzcywgc28gbGV0J3MganVzdCBhZGQgYSBjb21tZW50IGFib3V0IHRoYXQKCSAgZm9yIG5vdy4KCjIwMTUtMDUtMjcgMTM6NTQ6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEltcHJvdmUgZGVidWcgb3V0cHV0IGEgYml0CgoyMDE1LTA1LTI2IDE0OjQ2OjE2ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBkb2NzOiBmaXggdHlwbyBpbiBkcmFmdC1rbGFzcy50eHQKCjIwMTUtMDUtMjYgMTQ6MDM6MjUgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2NvZGUtcmV2aWV3cy9SRUFETUU6CgkqIGRvY3MvY29kZS1yZXZpZXdzL2dzdGJpbi5jLTEuNDE6CgkgIGNvZGUtcmV2aWV3czogcmVtb3ZlIG9ic29sZXRlIGNvZGUgcmV2aWV3cwoJICBUaGlzIG9ic29sZXRlIGZvbGRlciBoYXNuJ3QgYmVlbiB0b3VjaGVkIHNpbmNlIDIwMDEgYW5kIGhhcyBubyBwdXJwb3NlLiBJdAoJICBjb25mdXNlcyBuZXcgZGV2ZWxvcGVycy4KCjIwMTUtMDUtMjUgMjE6MDI6MjggKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSB0aGUgc2xpZ2h0bHkgbW9yZSBjb3JyZWN0IHRha2Vfc2FtcGxlIGZvciBsYXN0LXNhbXBsZQoJICBnc3RfdmFsdWVfdGFrZV9idWZmZXIoKSBhbmQgZ3N0X3ZhbHVlX3Rha2Vfc2FtcGxlKCkgYm90aCByZXNvbHZlIHRvCgkgIGdfdmFsdWVfdGFrZV9ib3hlZCgpLiAgVXNlIHRoZSBtZXRob2Qgd2l0aCB0aGUgY29ycmVjdCBuYW1lIGlmIHdlCgkgIGV2ZXIgY2hhbmdlIHRoYXQuCgoyMDE1LTA1LTI1IDE2OjIzOjMzICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZCBHc3RGbGFnU2V0IHR5cGUKCSAgR3N0RmxhZ1NldCBpcyBhIG5ldyB0eXBlIGRlc2lnbmVkIGZvciBuZWdvdGlhdGluZyBzZXRzCgkgIG9mIGJvb2xlYW4gY2FwYWJpbGl0aWVzIGZsYWdzLCBjb25zaXN0aW5nIG9mIGEgMzItYml0CgkgIGZsYWdzIGJpdGZpZWxkIGFuZCAzMi1iaXQgbWFzayBmaWVsZC4gVGhlIG1hc2sgZmllbGQKCSAgaW5kaWNhdGVzIHdoaWNoIG9mIHRoZSBmbGFncyBiaXRzIGFuIGVsZW1lbnQgbmVlZHMgdG8gaGF2ZQoJICBhcyBzcGVjaWZpYyB2YWx1ZXMsIGFuZCB3aGljaCBpdCBkb2Vzbid0IGNhcmUgYWJvdXQuCgkgIFRoaXMgYWxsb3dzIGVmZmljaWVudCBuZWdvdGlhdGlvbiBvZiBhcnJheXMgb2YgYm9vbGVhbgoJICBjYXBhYmlsaXRpZXMuCgkgIFRoZSBzdGFuZGFyZCBzZXJpYWxpc2F0aW9uIGZvcm1hdCBpcyBGTEFHUzpNQVNLLCB3aXRoCgkgIGZsYWdzIGFuZCBtYXNrIGZpZWxkcyBleHByZXNzZWQgaW4gaGV4YWRlY2ltYWwsIGhvd2V2ZXIKCSAgR3N0RmxhZ1NldCBoYXMgYSBnc3RfcmVnaXN0ZXJfZmxhZ3NldCgpIGZ1bmN0aW9uLCB3aGljaAoJICBhc3NvY2lhdGVzIGEgbmV3IEdzdEZsYWdTZXQgZGVyaXZlZCB0eXBlIHdpdGggYW4gZXhpc3RpbmcKCSAgR0ZsYWdzIGd0eXBlLiBXaGVuIHNlcmlhbGl6aW5nIGEgR3N0RmxhZ1NldCB3aXRoIGFuCgkgIGFzc29jaWF0ZWQgc2V0IG9mIEdGbGFncywgaXQgYWxzbyBzZXJpYWxpemVzIGEgaHVtYW4tcmVhZGFibGUKCSAgZm9ybSBvZiB0aGUgZmxhZ3MgZm9yIGVhc2llciBkZWJ1Z2dpbmcuCgkgIEl0IGlzIHBvc3NpYmxlIHRvIHBhcnNlIGEgR0ZsYWdzIHN0eWxlIHNlcmlhbGlzYXRpb24gb2YgYQoJICBmbGFnc2V0LCB3aXRob3V0IHRoZSBoZXggcG9ydGlvbiBvbiB0aGUgZnJvbnQuIGllLAoJICArZmxhZzEvZmxhZzIvZmxhZzMrZmxhZzQsIHRvIGluZGljYXRlIHRoYXQKCSAgZmxhZzEgJiBmbGFnNCBtdXN0IGJlIHNldCwgYW5kIGZsYWcyL2ZsYWczIG11c3QgYmUgdW5zZXQsCgkgIGFuZCBhbnkgb3RoZXIgZmxhZ3MgYXJlIGRvbid0LWNhcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYzNzMKCjIwMTUtMDUtMjAgMjA6MTk6MjkgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIGEgY29tcGFyaXNpb24gZnVuY3Rpb24gZm9yIEdzdFN0cnVjdHVyZXMKCjIwMTUtMDUtMTkgMTQ6MzQ6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IGtlZXAgR0NhbmNlbGxhYmxlIGZkIGFyb3VuZCBpbnN0ZWFkIG9mIHJlLWNyZWF0aW5nIGl0IGNvbnN0YW50bHkKCSAgSnVzdCBjcmVhdGUgdGhlIGNhbmNlbGxhYmxlIGZkIG9uY2UgYW5kIGtlZXAgaXQgYXJvdW5kIGluc3RlYWQKCSAgb2YgY3JlYXRpbmcvY2xvc2luZyBpdCBmb3IgZXZlcnkgc2luZ2xlIHBhY2tldC4gU2luY2Ugd2Ugc3BlbmQKCSAgbW9zdCB0aW1lIHdhaXRpbmcgZm9yIHBhY2tldHMsIGFuIGZkIGlzIGFsbG9jZWQgYW5kIGluIHVzZSBwcmV0dHkKCSAgbXVjaCBhbGwgdGhlIHRpbWUgYW55d2F5LgoKMjAxNS0wNS0xOCAxMjo1MjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgUmV2ZXJ0ICJkb2M6IFdvcmthcm91bmQgZ3RrZG9jIGlzc3VlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQ2MGE3YmY2ODI5MmQwNTdjNzdlODRkMWVhODZiOGU3M2ZjMDgxZjMuCgkgIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGJ5IHRoZSBndGstZG9jIDEuMjMgcmVsZWFzZS4KCSAgPHBhcmE+IGNhbm5vdCBjb250YWluIDxyZWZzZWN0Mj46CgkgIGh0dHA6Ly93d3cuZG9jYm9vay5vcmcvdGRnL2VuL2h0bWwvcGFyYS5odG1sCgkgIGh0dHA6Ly93d3cuZG9jYm9vay5vcmcvdGRnL2VuL2h0bWwvcmVmc2VjdDIuaHRtbAoKMjAxNS0wNS0xMSAxMDo1MjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogc21hbGwgY2xlYW51cAoJICBUaGUgZXJyb3IgcGF0aCB1bnJlZnMgZmlsZS0+ZmlsZSBzbyBtYWtlIHN1cmUgd2Ugb25seSBnbyB0aGVyZSB3aGVuCgkgIHRoZXJlIGlzIGEgbm9uLU5VTEwgZmlsZS0+ZmlsZS4KCjIwMTUtMDUtMTYgMjM6Mjk6MDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBkb2M6IFdvcmthcm91bmQgZ3RrZG9jIGlzc3VlCgkgIFdpdGggZ3RrZG9jIDEuMjIsIHRoZSBYTUwgZ2VuZXJhdG9yIGZhaWxzIHdoZW4gYSBpdGVtaXplZGxpc3QgaXMKCSAgZm9sbG93ZWQgYnkgYSByZWZzZWN0Mi4gV29ya2Fyb3VuZCB0aGUgaXNzdWUgYnkgd3JhcHBpbmcgdGhlIHJlZnNlY3QyCgkgIGludG8gcGFyYS4KCjIwMTUtMDUtMTMgMTM6Mjg6MDUgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMTYgMTI6NTc6MTIgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IENoZWNrIHRoYXQgdGhlIG9ubHkgaXRlciBpcyB0aGUgZW5kIGl0ZXIgaW4gdGhlIEdTZXF1ZW5jZQoJICBQcmV2aW91cyBwYXRjaCB3YXMgYXNzdW1pbmcgdGhhdCBpZiB0aGUgcmV0dXJuZWQgaXRlciB3YXMgdGhlIGxhc3QgaXRlcgoJICB0aGUgR1NlcXVlbmNlIHdhcyBlbXB0eSwgd2hpY2ggaXMgb2J2aW91c2x5IHdyb25nLgoKMjAxNS0wNS0xNiAxMToxNzo0MCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogRml4IHJlbW92aW5nIGFsbCBrZXlmcmFtZXMsIGFuZCBhZGRpbmcgb25lIGJhY2sKCSAgV2Ugd2VyZSBzZWdmYXVsdGluZyBiZWNhdXNlIGdfc2VxdWVuY2Vfc2VhcmNoIHdhcyByZXR1cm5pbmcgdGhlIGl0ZXJfZW5kLAoJICBhbmQgdGhhdCBpdGVyYXRvciBkb2VzIG5vdCBjb250YWluIGFueXRoaW5nIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgdXNlZAoJICBkaXJlY3RseQoKMjAxNS0wNS0xNSAyMDo0NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBmaXggcHJvcGVydHkgZGVzY3JpcHRpb24KCSAgV2UncmUgZW50ZXJwcmlzZSBub3cgZm9sa3MuCgoyMDE1LTA1LTE1IDE0OjU3OjE0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBidW1wIGNoYWluIGZ1bmN0aW9uIGNhbGwgbG9ncyBmcm9tIExPRyB0byBERUJVRwoJICBUaGV5J3JlIHJlYWxseSB1c2VmdWwgY29tcGFyZWQgdG8gb3RoZXIgTE9HIHN0dWZmIGluIHRoZXJlLCBzbwoJICB0aGVyZSBpcyB2YWx1ZSBpcyBpbmNsdWRpbmcgdGhlbSBhbmQgbm90IHRoZSByZXN0LgoKMjAxNS0wNS0xNSAxMzo0MzoxMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IGFkZCBnc3Rfb2JqZWN0X2hhc19hc19hbmNlc3RvciBhbmQgZGVwcmVjYXRlIHByZXZpb3VzIGZ1bmN0aW9uCgkgIFRoZSBvbGQgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3Igd2lsbCBjYWxsIHRoZSBuZXcgY29kZS4gVGhpcyBlc3RhYmxpc2hlcyB0aGUKCSAgc3ltZXRyeSB3aXRoIHRoZSBuZXcgZ3N0X29iamVjdF9oYXNfYXNfcGFyZW50LgoJICBBUEk6IGdzdF9vYmplY3RfaGFzX2FzX2FuY2VzdG9yKCkKCjIwMTUtMDUtMTUgMDg6MDU6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiByZW5hbWUgZ3N0X29iamVjdF9oYXNfcGFyZW50IHRvIGdzdF9vYmplY3RfaGFzX2FzX3BhcmVudAoJICBUaGlzIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGEgcG90ZW50aWFsIHB1bmN0aW9uIHRoYXQgY2hlY2sgaWYgYSBnc3RvYmplY3QgaGFzLWEKCSAgcGFyZW50LgoJICBBUEk6IGdzdF9vYmplY3RfaGFzX2FzX3BhcmVudCgpCgoyMDE1LTA1LTE0IDE1OjQ5OjQzICswODAwICBKaWFuIDxKaWFuLkxpQGZyZWVzY2FsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggUW9TL2xhdGVuZXNzIGNoZWNraW5nIGlmIHN1YmNsYXNzIGltcGxlbWVudHMgcHJlcGFyZS9wcmVwYXJlX2xpc3QgdmZ1bmNzCgkgIEluIGJhc2VzaW5rIGZ1bmN0aW9ucyBnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKCksIGJlbG93IGNvZGUgaXMgdXNlZCB0bwoJICBjaGVja2luZyBpZiBidWZmZXIgaXMgbGF0ZSBiZWZvcmUgZG9pbmcgcHJlcGFyZSBjYWxsIHRvIHNhdmUgc29tZSBlZmZvcnQ6CgkgIGlmIChzeW5jYWJsZSAmJiBkb19zeW5jKQoJICBsYXRlID0KCSAgZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSAoYmFzZXNpbmssIG9iaiwgcnN0YXJ0LCByc3RvcCwKCSAgR1NUX0NMT0NLX0VBUkxZLCAwLCBGQUxTRSk7CgkgIGlmIChHX1VOTElLRUxZIChsYXRlKSkKCSAgZ290byBkcm9wcGVkOwoJICBCdXQgdGhpcyBjb2RlIGhhcyBwcm9ibGVtLCBpdCBzaG91bGQgY2FsY3VsYXRlIGppdHRlciBiYXNlZCBvbiBjdXJyZW50IG1lZGlhCgkgIGNsb2NrLCByYXRoZXIgdGhhbiBqdXN0IHBhc3NpbmcgMC4gSSBmb3VuZCBpdCB3aWxsIGRyb3AgYWxsIHRoZSBmcmFtZXMgd2hlbgoJICByZXdpbmQgaW4gc2xvdyBzcGVlZCwgc3VjaCBhcyAtMlguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkyNTgKCjIwMTUtMDUtMTEgMTc6MTQ6NTAgKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZG9jczogZml4IGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbgoJICBVcGRhdGUgZXhhbXBsZSB0byB1c2UgZ3N0LWxhdW5jaC0xLjAgYW5kIGZpeCBhIHBhcmFncmFwaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTIzMwoKMjAxNS0wNS0wOSAxMTo1Mzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBBZGQgcmVtb3ZlZCBleGFtcGxlIGRpcmVjdG9yaWVzIHRvIENSVUZUX0RJUlMKCjIwMTUtMDUtMDggMTQ6MDg6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGRvY3M6IGdzdC1sYXVuY2ggLT4gZ3N0LWxhdW5jaC0xLjAgaW4gZXhhbXBsZSBwaXBlbGluZXMKCSAgQW5kIHNvbWUgc21hbGwgZXhhbXBsZSBwaXBlbGluZSBmaXgtdXBzLgoKMjAxNS0wNS0wOSAyMjoxMDozMCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wOSAyMjowNDo1MiAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDkgMjI6MDE6MDQgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wMiAxNzoxNjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlcyB0byBtZW50aW9uIG5ldyBkZXZpY2UgcHJvYmluZyBBUEkKCjIwMTUtMDUtMDEgMjA6Mzc6MTggLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wMSAxODozMjoyNiArMDkwMCAgSmltbXkgT2huIDx5b25namluLm9obkBsZ2UuY29tPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiByZW1vdmUgZHVwbGljYXRlZCBpbmNsdWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg3MzkKCjIwMTUtMDQtMjggMTk6NTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICB0ZXN0czogcmVtb3ZlIHNvbWUgcG9pbnRsZXNzIGFuY2llbnQgY29kZSBleGFtcGxlcwoKMjAxNS0wNC0yOCAxNzo1NDo1MSArMDMwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IEdTVF9CQVNFX1BBUlNFX0ZMQUdfTE9TVF9TWU5DCgkgIFNpbmNlIGZyYW1lLT5wcml2LT5kaXNjb250IHdhcyBjbGVhcmVkIGVhcmxpZXIsCgkgIEdTVF9CQVNFX1BBUlNFX0ZMQUdfTE9TVF9TWU5DIHdhcyBuZXZlciBiZWluZyBzZXQuCgkgIFRha2UgdGhlIGNoYW5jZSB0byByZWZhY3RvciB0aGUgZnJhbWUgY3JlYXRpb24gYSBiaXQgdG8KCSAgb3JnYW5pemUgdGhlIGZsYWdzIHNldHRpbmcgYW5kIHJlc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MjM3CgoyMDE1LTAzLTA5IDE5OjMxOjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc3BlY3QgRElTQ09OVCBmbGFnIG9uIGJ1ZmZlcnMKCSAgRHJhaW4gdGhlIHBhcnNlciB3aGVuIGEgRElTQ09OVCBidWZmZXIgaXMgcmVjZWl2ZWQgYW5kIHRoZW4gbWFyawoJICB0aGUgbmV4dCBidWZmZXIgdG8gYmUgcHVzaGVkIGFzIGEgRElTQ09OVCBvbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTkyNwoKMjAxNS0wNC0yOCAxNTo1MDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IENvcHkgdGhlIHRhZyBzY29wZSB0b28gd2hlbiBjb3B5aW5nIHRhZyBsaXN0cwoKMjAxNS0wNC0yMCAyMDowMjo1MSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IEFsc28gc3luY2hyb25pemUgR0FQIGV2ZW50cyBpbiBzeW5jPTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yMCAxOTozMTozNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogV2l0aCBzeW5jPXRydWUsIGRvbid0IHByZS1yb2xsCgkgIFRvIGFjdCBsaWtlIGEgcmVhbCBsaXZlIGVsZW1lbnQsIGJsb2NrIHRoZSBzdHJlYW1pbmcgd2hlbiBwYXVzZWQsIGFuZAoJICByZXR1cm4gTk9fUFJFUk9MTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yMCAxOToyNDo0NSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogVGFrZSB1cHN0cmVhbSBsYXRlbmN5IGludG8gYWNjb3VudCBmb3Igc3luYz0xCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjAgMTk6MDc6MjcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBIYW5kbGUgUFRTIGFuZCBEVFMgc2VwYXJhdGVseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTI2IDE3OjA1OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSogQW5kcm9pZC5tazoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBSZW1vdmUgb2Jzb2xldGUgQW5kcm9pZCBidWlsZCBjcnVmdAoJICBUaGlzIGlzIG5vdCBuZWVkZWQgYW55IGxvbmdlci4KCjIwMTUtMDQtMjQgMTY6NTE6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogT25seSB0cnkgdG8gcHVzaCB0aGUgZmlyc3QgRU9TIHJlY2VpdmVkCgkgIFN1YnNlcXVlbnQgRU9TIHdpbGwgcHVzaCBvbiB0aGUgc291cmNlIHBhZCB0aGF0IGFscmVhZHkgcmVjZWl2ZWQKCSAgRU9TIGFuZCB0aGF0IHdpbGwgbWFrZSB0aGUgZXZlbnQgZnVuY3Rpb24gcmV0dXJuIEZBTFNFLiBJdCBuZWVkcwoJICBvbmx5IHRvIHB1c2ggdGhlIGZpcnN0IG9uZSBhbmQgb25seSByZXR1cm4gVFJVRSBmb3IgdGhlIHN1YnNlcXVlbnQKCSAgb25lcy4KCjIwMTUtMDQtMjQgMTU6MTk6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJpbnRmLmM6CgkgIHRlc3RzOiBwcmludGY6IGFkZCB1bml0IHRlc3QgZm9yICUlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg0MTQKCjIwMTUtMDQtMjQgMTU6MTY6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBmaXggaW52YWxpZCBtZW1vcnkgYWNjZXNzIGluIGNhc2Ugb2YgJSUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODQxNAoKMjAxNS0wNC0yMyAxNTo1NTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZGVmaW5lIEdTVF9DSEVDS19URVNUX0VOVklST05NRU5UX0JFQUNPTgoKMjAxNS0wNC0yMyAxNTo1NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBvcHRpb25hbGx5IGNoZWNrIGVudiB2YXIgZm9yIHVzIHRvIG1ha2Ugc3VyZSB0ZXN0IGVudiBpcyBzZXQgdXAKCSAgSWYgR1NUX0NIRUNLX1RFU1RfRU5WSVJPTk1FTlRfQkVBQ09OIGlzIGRlZmluZWQsIGNoZWNrIGlmIHRoZQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSBpdCBpcyBkZWZpbmVkIHRvIGlzIHNldCB1cCBhdCB0aGUgc3RhcnQKCSAgb2YgZWFjaCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc0NzYyNAoKMjAxNS0wNC0yMyAwOTowNjo0MiArMDkwMCAgQ2hhbmdib2sgQ2hlYSA8Y2hhbmdib2suY2hlYUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmVtb3ZlIHVudXNlZCBhc3NpZ25tZW50IGluIHBlcmZvcm1fc2VlaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzNDUKCjIwMTUtMDQtMjIgMTE6NDQ6MDAgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3Q6IG1lbW9yeTogQWRkZWQgdGVzdCB0byB2ZXJpZnkgdGhlIGFsbG9jYXRpb24gcGFyYW1zCgkgIE5ldyB0ZXN0IGFkZGVkIHRvIHZlcmlmeSB0aGUgYWxsb2NhdGlvbiBwYXJhbXMgZm9yIHRoZSBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODI3NwoKMjAxNS0wNC0yMiAxMTowNDowNiAtMDYwMCAgSmFzb24gTGl0emluZ2VyIDxqbGl0emluZ2VyQGNvbnRyb2w0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBhZGQgdGVzdCBjYXNlIHRvIHJlcHJvZHVjZSBpbmZpbml0ZSBsb29wCgkgIGdzdF9kZWJ1Z191bnNldF90aHJlc2hvbGRfZm9yX25hbWUoKSB1c2VkIHRvIGdvIGludG8gYW4KCSAgaW5maW5pdGUgbG9vcCB3aGVuIHRoZXJlIHdhcyBtb3JlIHRoYW4gb25lIGNhdGVnb3J5IGluCgkgIHRoZSBsaXN0LiAgVGhpcyB0ZXN0IGNhcHR1cmVzIHRoZSBwcm9ibGVtIGJ5IGZhaWxpbmcKCSAgdmlhIHRpbWVvdXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzMjEKCjIwMTUtMDQtMjIgMTI6MDM6MzMgLTA2MDAgIEphc29uIExpdHppbmdlciA8amxpdHppbmdlckBjb250cm9sNC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBmaXggaW5maW5pdGUgbG9vcCBpbiBnc3RfZGVidWdfdW5zZXRfdGhyZXNob2xkX2Zvcl9uYW1lKCkKCSAgRW5zdXJlIGl0ZXJhdG9yIGlzIGFkdmFuY2VkLiBUaGUgY3VycmVudCBsaXN0IGl0ZXJhdGlvbiBjb2RlIG9ubHkKCSAgYWR2YW5jZXMgdGhlIGl0ZXJhdG9yICh3YWxrKSBpZiBhIG1hdGNoIGlzIGZvdW5kLCB3aGljaCByZXN1bHRzCgkgIGluIGFuIGluZmluaXRlIGxvb3Agd2hlbiBtb3JlIHRoYW4gb25lIGVudHJ5IGV4aXN0cyBpbiB0aGUgbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODMyMQoKMjAxNS0wNC0yMiAxMDoxNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXA6IG1pc2NlbGxhbmVvdXMgZml4ZXMKCSAgRXJyb3Igb3V0IGlmIHJlcXVpcmVkIGJ1aWxkIHRvb2xzIChmbGV4LCBiaXNvbiwgcGtnLWNvbmZpZykKCSAgYXJlIG5vdCBwcmVzZW50LCBpbnN0ZWFkIG9mIHByaW50aW5nIGEgbWVzc2FnZSBhbmQgdGhlbgoJICBjb250aW51aW5nLgoJICBDaGVjayBvdXQgc3VibW9kdWxlcyB3aGVuIGZldGNoaW5nIHRoZSByZXBvc2l0b3JpZXMsIHNvCgkgIHRoZXkncmUgYWxyZWFkeSB0aGVyZSBhbmQgcmVhZHkgbGF0ZXIuCgkgIFJlbW92ZSBzb21lIDAuMTAgY3J1ZnQuCgoyMDE1LTA0LTIyIDA5OjU5OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgQWRkIElOU1RBTEwgdG8gLmdpdGlnbm9yZQoKMjAxNS0wNC0yMiAwOTo1Njo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIHRlc3RzOiBlcnJvciBvdXQgaWYgdGVzdCBlbnZpcm9ubWVudCBpcyBub3QgYWN0dWFsbHkgc2V0IHVwIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjI0CgoyMDE1LTA0LTIyIDA5OjUyOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGNhbiB1c2UgQU1fU0lMRU5UX1JVTEVTIHVuY29uZGl0aW9uYWxseSBub3cKCSAgaHR0cHM6Ly9hdXRvdG9vbHMuaW8vYXV0b21ha2Uvc2lsZW50Lmh0bWwKCjIwMTUtMDQtMjIgMDk6NDc6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBhdXRvbWFrZSByZXF1aXJlbWVudCB0byAxLjE0IGFuZCBhdXRvY29uZiB0byAyLjY5CgkgIFRoaXMgaXMgb25seSByZXF1aXJlZCBmb3IgYnVpbGRzIGZyb20gZ2l0LCBwZW9wbGUgY2FuIHN0aWxsCgkgIGJ1aWxkIHRhcmJhbGxzIGlmIHRoZXkgb25seSBoYXZlIG9sZGVyIGF1dG90b29scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NDc2MjQKCjIwMTUtMDQtMjIgMTA6MzI6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBJTlNUQUxMOgoJICBSZW1vdmUgSU5TVEFMTCBmaWxlCgkgIGF1dG90b29scyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoaXMsIGFuZCB3aGVuIHVzaW5nIGRpZmZlcmVudCB2ZXJzaW9ucwoJICBmb3IgYXV0b2dlbi5zaCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBjaGFuZ2VzIHRvIGEgZmlsZSB0cmFja2VkIGJ5IGdpdC4KCjIwMTUtMDQtMjAgMjI6MDc6MzQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3RyZWFtZXItdW5pbnN0YWxsZWQ6IFVwZGF0ZSBwYXRoIHRvIHRoZSBHc3RWYWxpZGF0ZSBzY2VuYXJpb3MKCjIwMTUtMDQtMjAgMDk6MjM6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIG1ldGEgdHJhbnNmb3JtIGZ1bmN0aW9uIGluIGdzdF9idWZmZXJfY29weV9pbnRvKCkKCSAgLi4uIGJ5IHByaW50aW5nIHNvbWUgZGVidWcgb3V0cHV0IHdoZW5ldmVyIGNvcHlpbmcgYSBHc3RNZXRhIGZhaWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MTE5CgoyMDE1LTA0LTE4IDEyOjMxOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBmaXggaGVhZGVyIGZvcm1hdHRpbmcKCjIwMTUtMDQtMTggMTI6Mjg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICB0ZXN0czogcHJvdGVjdGlvbjogZml4IGxlYWsgaW4gdW5pdCB0ZXN0CgoyMDE1LTA0LTE4IDEyOjI3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5oOgoJICBnc3QuaDogaW5jbHVkZSB0aGUgbmV3IGdzdHByb3RlY3Rpb24uaCBoZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wNC0xNSAxNTozMzozMSArMDEwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcHJvdGVjdGlvbjogYWRkIEdzdFByb3RlY3Rpb25NZXRhIHRvIHN1cHBvcnQgcHJvdGVjdGVkIGNvbnRlbnQKCSAgSW4gb3JkZXIgdG8gc3VwcG9ydCBzb21lIHR5cGVzIG9mIHByb3RlY3RlZCBzdHJlYW1zIChzdWNoIGFzIHRob3NlCgkgIHByb3RlY3RlZCB1c2luZyBEQVNIIENvbW1vbiBFbmNyeXB0aW9uKSBzb21lIHBlci1idWZmZXIgaW5mb3JtYXRpb24KCSAgbmVlZHMgdG8gYmUgcGFzc2VkIGJldHdlZW4gZWxlbWVudHMuCgkgIFRoaXMgY29tbWl0IGFkZHMgYSBHc3RNZXRhIHR5cGUgY2FsbGVkIEdzdFByb3RlY3Rpb25NZXRhIHRoYXQgYWxsb3dzCgkgIHByb3RlY3Rpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8gYmUgYWRkZWQgdG8gYSBHc3RCdWZmZXIuIEFuIGV4YW1wbGUKCSAgb2YgaXRzIHVzYWdlIGlzIHF0ZGVtdXggcHJvdmlkaW5nIGluZm9ybWF0aW9uIHRvIGVhY2ggb3V0cHV0IHNhbXBsZQoJICB0aGF0IGVuYWJsZXMgYSBkb3duc3RyZWFtIGVsZW1lbnQgdG8gZGVjcnlwdCBpdC4KCSAgVGhpcyBjb21taXQgYWRkcyBhIHV0aWxpdHkgZnVuY3Rpb24gdG8gc2VsZWN0IGEgc3VwcG9ydGVkIHByb3RlY3Rpb24KCSAgc3lzdGVtIGZyb20gdGhlIGluc3RhbGxlZCBEZWNyeXB0aW9uIGVsZW1lbnRzIGZvdW5kIGluIHRoZSByZWdpc3RyeS4KCSAgVGhlIGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBhcnJheSBvZgoJICBpZGVudGlmaWVycyBhbmQgc2VhcmNoZXMgdGhlIHJlZ2lzdHJ5IGZvciBhIGVsZW1lbnQgb2Yga2xhc3MgRGVjcnlwdG9yIHRoYXQKCSAgc3VwcG9ydHMgb25lIG9yIG1vcmUgb2YgdGhlIHN1cHBsaWVkIGlkZW50aWZpZXJzLiBJZiBtdWx0aXBsZSBlbGVtZW50cwoJICBhcmUgZm91bmQsIHRoZSBvbmUgd2l0aCB0aGUgaGlnaGVzdCByYW5rIGlzIHNlbGVjdGVkLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgdW5pdCB0ZXN0IGZvciB0aGUgZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbQoJICBmdW5jdGlvbiB0aGF0IGFkZHMgYSBmYWtlIERlY3J5cHRvciBlbGVtZW50IHRvIHRoZSByZWdpc3RyeSBhbmQgdGhlbgoJICBjaGVja3MgdGhhdCBpdCBjYW4gY29ycmVjdGx5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1dGlsaXR5IGZ1bmN0aW9uLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgdW5pdCB0ZXN0IGZvciBHc3RQcm90ZWN0aW9uTWV0YSB0aGF0IGNyZWF0ZXMKCSAgR3N0UHJvdGVjdGlvbk1ldGEgYW5kIGFkZHMgJiByZW1vdmVzIGl0IGZyb20gYSBidWZmZXIgYW5kIHBlcmZvcm1zIHNvbWUKCSAgc2ltcGxlIHJlZmVyZW5jZSBjb3VudCBjaGVja3MuCgkgIEFQSTogZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhKCkKCSAgQVBJOiBnc3RfYnVmZmVyX2dldF9wcm90ZWN0aW9uX21ldGEoKQoJICBBUEk6IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0oKQoJICBBUEk6IGdzdF9wcm90ZWN0aW9uX21ldGFfYXBpX2dldF90eXBlKCkKCSAgQVBJOiBnc3RfcHJvdGVjdGlvbl9tZXRhX2dldF9pbmZvKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wMy0xNiAxMjozNToyNyArMDAwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBhZGQgbmV3IEdTVF9FVkVOVF9QUk9URUNUSU9OCgkgIEluIG9yZGVyIGZvciBhIGRlY3J5cHRlciBlbGVtZW50IHRvIGRlY3J5cHQgbWVkaWEgcHJvdGVjdGVkIHVzaW5nIGEKCSAgc3BlY2lmaWMgcHJvdGVjdGlvbiBzeXN0ZW0sIGl0IGZpcnN0IG5lZWRzIGFsbCB0aGUgcHJvdGVjdGlvbiBzeXN0ZW0KCSAgc3BlY2lmaWMgIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSAoRS5nLiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gYWNxdWlyZQoJICB0aGUgZGVjcnlwdGlvbiBrZXlzKSBmb3IgdGhhdCBzdHJlYW0uCgkgIFRoZSBHU1RfRVZFTlRfUFJPVEVDVElPTiBkZWZpbmVkIGluIHRoaXMgY29tbWl0IGVuYWJsZXMgdGhpcyBpbmZvcm1hdGlvbgoJICB0byBiZSBwYXNzZWQgZnJvbSBlbGVtZW50cyB0aGF0IGV4dHJhY3QgaXQgKGUuZy4gcXRkZW11eCwgZGFzaGRlbXV4KSB0bwoJICBlbGVtZW50cyB0aGF0IHVzZSBpdCAoRS5nLiBhIGRlY3J5cHRlciBlbGVtZW50KS4KCSAgQVBJOiBHU1RfRVZFTlRfUFJPVEVDVElPTgoJICBBUEk6IGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbigpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX3Byb3RlY3Rpb24oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTA0LTE4IDExOjQyOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggdXNlIG9mIHBvc3NpYmx5LWZyZWVkIHBhZCBpbiBkZWJ1ZyBzdGF0ZW1lbnQKCSAgVGhlIGdzdF9vYmplY3RfdW5yZWYoKSBpbiB0aGUgYmxvY2sgYWJvdmUgbWF5IGJlIGRyb3BwaW5nCgkgIHRoZSBsYXN0IHJlZiB0byB0aGUgcGFkIGFuZCBmcmVlIHRoZSBwYWQuIFNldCBwYWQgcG9pbnRlcgoJICB0byBOVUxMIGhlcmUsIHNvIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHVzZSBhCgkgIHBvc3NpYmx5LWZyZWVkIHBhZCBwb2ludGVyIGluIHRoZSBkZWJ1ZyBsb2cgc3RhdGVtZW50cwoJICBmdXJ0aGVyIGJlbG93LCBhbmQgYWxzbyB1c2UgdGhlIHRlZSBlbGVtZW50IGFzIGxvZyBvYmplY3QKCSAgc2luY2UgdGhhdCdzIG1vcmUgYXBwcm9wcmlhdGUgYW55d2F5LgoJICBGaXhlcyB2YWxncmluZCB3YXJuaW5ncyBhbmQgY3Jhc2hlcyBpbiB0ZWUgdGVzdF9zdHJlc3MKCSAgdW5pdCB0ZXN0IHdoZW4gZGVidWcgbG9nZ2luZyBpcyBlbmFibGVkLgoKMjAxNS0wNC0xOCAxMjowMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBmaXggdW5pdCB0ZXN0IHdoZW4gcnVuIHdpdGggR1NUX0RFQlVHPSo6OQoJICBPbmx5IHNhdmUgdGhlIG1lc3NhZ2VzIHdlJ3JlIGludGVyZXN0ZWQgaW4gYW5kIGV4cGVjdGluZy4KCSAgV2hlbiBydW4gd2l0aCAqOjkgd2UgbWlnaHQgZ2V0IGFkZGl0aW9uYWwgVFJBQ0UgbGV2ZWwKCSAgbWVzc2FnZXMgZnJvbSBvdGhlciBjYXRlZ29yaWVzIGFuZCB0aGVuIHdlIGRvbid0IGVuZCB1cAoJICB3aXRoIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgd2UgZXhwZWN0LgoKMjAxNS0wNC0xOCAxMToyNToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogZml4IGJ1ZmZlciBsZWFrIGluIG5ldyBibG9ja2luZ193aXRoX3Byb2JlX3R5cGVfaWRsZSB0ZXN0CgoyMDE1LTA0LTE4IDExOjExOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBmaXggaW52YWxpZCBtZW1vcnkgYWNjZXNzIGluIGRlYnVnIGxvZyBtZXNzYWdlCgkgIFRoZSBzdHJpbmcgd2UgcHV0IGluIHRoZSBidWZmZXIgaXMgbm90IE5VTC10ZXJtaW5hdGVkLCBzbwoJICBkb24ndCB0cnkgdG8gcHJpbnQgdGhhdCB2aWEgJXMgaW4gYSBkZWJ1ZyBsb2cgbWVzc2FnZS4KCjIwMTUtMDQtMTcgMTU6MTk6MDcgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IG9uIE9TWCwgTUtESVJfUCBpcyBpbnN0YWxsLXNoIC1jIC1kCgkgIFNvIHdlIG5lZWQgdG8gY2FsbCBpdCBiZWZvcmUgY2RpbmcgdG8gdGhlIGJpbiBkaXJlY3RvcnkuCgoyMDE1LTA0LTE3IDEzOjAyOjEyICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBpbnN0YWxsIC1EIGlzbid0IHBvcnRhYmxlLCB1c2UgJChNS0RJUl9QKSBpbnN0ZWFkLgoKMjAxNS0wNC0xNCAxMDo0NzoyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiB0ZXN0IHRoYXQgaWRsZSBwcm9iZSB3aWxsIGJsb2NrCgkgIFRoaXMgdGVzdHMgYWRkIGFuIGlkbGUgcHJvYmUgb24gYW4gaWRsZSBwYWQgZnJvbSBhIHNlcGFyYXRlIHRocmVhZAoJICBzbyB0aGF0IHRoZSBjYWxsYmFjayBpcyBjYWxsZWQgaW1tZWRpYXRlbGx5LiBUaGlzIGNhbGxiYWNrIHdpbGwgc2l0CgkgIHN0aWxsIGFuZCB0aGVuIHdlIHRyeSB0byBwdXNoIGEgYnVmZmVyIG9uIHRoaXMgc2FtZSBwYWQuIEl0IHZlcmlmaWVzCgkgIHRoYXQgdGhlIGlkbGUgcHJvYmUgYmxvY2tzIGRhdGEgcGFzc2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3ODUyCgoyMDE1LTA0LTE0IDE3OjA2OjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYmxvY2sgZGF0YSBmbG93IHdoZW4gaWRsZSBwcm9iZSBpcyBydW5uaW5nCgkgIFdoZW4gaWRsZSBwcm9iZSBydW5zIGRpcmVjdGx5IGZyb20gdGhlIGdzdF9wYWRfYWRkX3Byb2JlKCkgZnVuY3Rpb24KCSAgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBubyBkYXRhIGZsb3cgaGFwcGVucyBhcyBpZGxlIHByb2JlCgkgIGlzIGEgYmxvY2tpbmcgcHJvYmUuIFRoZSBpZGxlIHByb2JlIHdpbGwgcHJldmVudCB0aGF0IGFueQoJICBidWZmZXIsIGJ1ZmZlcmxpc3Qgb3Igc2VyaWFsaXplZCBldmVudHMgYW5kIHF1ZXJpZXMgYXJlIG5vdAoJICBmbG93aW5nIHdoaWxlIGl0IGlzIHJ1bm5pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc4NTIKCjIwMTUtMDQtMTYgMTM6NDE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGRvY3M6IGNsYXJpZnkgdGhhdCByZXR1cm4gdmFsdWUgb2YgZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpIG11c3QgYmUgZnJlZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzEwNAoKMjAxNS0wNC0xNSAxMTowMjo1NCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIGJpbjogdW5kbyB1cHdhcmQgc3RhdGUgY2hhbmdlcyBvbiBjaGlsZHJlbiB3aGVuIGEgY2hpbGQgZmFpbHMKCSAgV2hlbiBhIGJpbiBjaGFuZ2VzIHN0YXRlcyB1cHdhcmRzLCBhbmQgYSBjaGlsZCBmYWlscyB0byBjaGFuZ2UsCgkgIGFueSBjaGlsZCB0aGF0IHdhcyBhbHJlYWR5IHN3aXRjaGVkIHdpbGwgbm90IGJlIHJlc2V0IHRvIGl0cwoJICBvcmlnaW5hbCBzdGF0ZSwgbGVhdmluZyBpdHMgc3RhdGUgaW5jb25zaXN0ZW50IHdpdGggdGhlIGJpbiwKCSAgd2hpY2ggZG9lcyBub3QgY2hhbmdlIHN0YXRlIGR1ZSB0byB0aGUgZmFpbHVyZS4KCSAgSWYgdGhlIHN0YXRlIGNoYW5nZSB3YXMgZnJvbSBOVUxMIHRvIFJFQURZLCBpdCBtZWFucyB0aGF0IGRlbGV0aW5nCgkgIHRoaXMgYmluIHdpbGwgY2F1c2UgdGhvc2UgY2hpbGRyZW4gdG8gYmUgZGVsZXRlZCB3aGlsZSBub3QgaW4KCSAgTlVMTCBzdGF0ZSwgd2hpY2ggaXMgYSBCYWQgVGhpbmcuIEZvciBvdGhlciB1cHdhcmQgY2hhbmdlcywgaXQKCSAgaXMgbGVzcyBvZiBhIHByb2JsZW0sIGFzIGEgc3Vic2VxdWVudCBzd2l0Y2ggYmFjayB0byBOVUxMIHdpbGwKCSAgY2F1c2UgYW4gYWN0dWFsIGRvd253YXJkcyBjaGFuZ2Ugb24gdGhvc2UgaW5jb25zaXN0ZW50IGVsZW1lbnRzLAoJICBhbGJlaXQgZnJvbSB0aGUgIndyb25nIiBzdGF0ZS4KCSAgV2Ugbm93IHJlc2V0IHN0YXRlIHRvIHRoZSBvcmlnaW5hbCBvbmUgd2hlbiBhIGNoaWxkIGZhaWxzLgoJICBJbmNsdWRlcyB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc2MTAKCjIwMTUtMDQtMTUgMTQ6NDU6MjEgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHVzZSAkKElOU1RBTEwpIHRvIC4uLiBpbnN0YWxsIHRoZSBoZWxwZXIuCgkgIEFzIGl0IHdpbGwgY3JlYXRlIHRoZSBmb2xkZXJzIGFuZCBzZXQgcGVybWlzc2lvbnMgYXBwcm9wcmlhdGVseSwKCSAgYmV0dGVyIHRoYW4gZG9pbmcgaXQgbWFudWFsbHkuCgoyMDE1LTA0LTE1IDEzOjAyOjM2ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBGaXggTWFrZWZpbGUuYW0gdG8gaW5zdGFsbCB0aGUgY29tcGxldGlvbi1oZWxwZXIgY29ycmVjdGx5LgoJICArIFRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZCBhdCBpbnN0YWxsLWV4ZWMgdGltZSwgd2UgdGh1cyBuZWVkCgkgIHRvIG1vdmUgaXQgaW4gaW5zdGFsbC1leGVjLWhvb2ssIG5vdCBpbnN0YWxsLWRhdGEtaG9vay4KCjIwMTUtMDQtMTUgMTE6Mzg6MzUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJldmVydCAiYmFzZXNyYzogZml4IHBvb2wgbGVhayBvbiBhbGxvY2F0aW9uIHF1ZXJ5IGVycm9yIHBhdGgiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODRmZGY1MGIyZjk4OTUxYTMyZmExNDgwMmI2MjYyMWYxMTA1Y2QzNS4KCSAgSXQgc2VlbXMgdGhlIGJ1ZyB3YXMgZml4ZWQgaW5kZXBlbmRlbnRseSwgYW5kIHRoZSBtZXJnZSB3YXMKCSAgYXV0b21hZ2ljLCB5aWVsZGluZyB0d28gZXh0cmEgZnJlZSBjYWxscy4KCjIwMTUtMDQtMTQgMTM6NDI6NTUgKzA5MDAgIFN1aHdhbmcgS2ltIDxzdWh3YW5nLmtpbUBsZ2UuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIHRlc3RzOiBjbG9jazogZml4IHRlc3QgY2xvY2sgbmFtZQoJICBEb24ndCBjYWxsIHRoZSBzbGF2ZSB0ZXN0IGNsb2NrICJNYXN0ZXIiLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDMwCgoyMDE1LTA0LTE0IDE3OjQ3OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogYWRkIEVOQ1JZUFRPUiBjbGFzcyBkZWZpbmVzCgkgIHRvIGdvIHdpdGggREVDUllQVE9SLgoKMjAxNS0wMy0xNiAxMzoxMTo1OSArMDAwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogYWRkIERFQ1JZUFRPUiBjbGFzcyBkZWZpbmVzCgkgIEFuIGVsZW1lbnQgdGhhdCBwZXJmb3JtcyBkZWNyeXB0aW9uIGRvZXMgbm90IG5hdHVyYWxseSBmaXQgd2l0aGluIGFueQoJICBvZiB0aGUgZXhpc3RpbmcgZWxlbWVudCBmYWN0b3J5IGNsYXNzIHR5cGVzLiBJdCBpcyB1c2VmdWwgdG8gYmUgYWJsZQoJICB0byBlYXNpbHkgZ2V0IGEgbGlzdCBvZiBhbGwgZWxlbWVudHMgdGhhdCBzdXBwb3J0IGRlY3J5cHRpb24gc28gdGhhdAoJICBhIHVuaW9uIGNhbiBiZSBjb21wdXRlZCBiZXR3ZWVuIHRoZSBwcm90ZWN0aW9uIHN5c3RlbXMgdGhhdCBoYXZlIGEKCSAgc3VwcG9ydGVkIGRlY3J5cHRvciBhbmQgdGhlIGFsbG93ZWQgcHJvdGVjdGlvbiBzeXN0ZW1zIGZvciBhIHBhcnRpY3VsYXIKCSAgc3RyZWFtLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgbmV3IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNSWVBUT1IgYW5kIGl0cwoJICBhc3NvY2lhdGVkIHN0cmluZyBpZGVudGlmaWVyICJEZWNyeXB0b3IiLiBJdCBhbHNvIGFkZHMKCSAgR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ1JZUFRPUiB0byBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RBQkxFCgkgIHNvIHRoYXQgdXJpZGVjb2RlYmluIGNhbiBhdXRvLXBsdWcgYSBkZWNyeXB0aW9uIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDQtMTMgMTc6MDE6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IFVzZSBnc3RfZXZlbnRfdW5yZWYoKSBpbnN0ZWFkIG9mIGdzdF9taW5pX29iamVjdF91bnJlZigpICsgY2FzdGluZwoKMjAxNS0wNC0xMyAxNDo0MDoyMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IGxlYWsgaW4gZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCgpCgkgIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQoKSBpcyBzdXBwb3NlZCB0byBjb25zdW1lIEBldmVudCBidXQgd2Fzbid0CgkgIGRvaW5nIHNvIHdoZW4gaXQgd2FzIGhhbmRsaW5nIHRoZSBldmVudCBpdHNlbGYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc3NzUKCSAgU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoyMDE1LTA0LTExIDIwOjQ0OjAyICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcmVzZXQgZXJybm8gYmVmb3JlIGdfYXNjaWlfc3RydG91bGwgY2FsbAoJICAiZXJybm8iIGFscmVhZHkgaGFzIG1lYW5pbmdsZXNzIHZhbHVlIGJlZm9yZSBnX2FzY2lpX3N0cnRvdWxsIGNhbGwuCgkgIFRoaXMgY2F1c2VzIGludmFsaWQgZXJyb3IgY2hlY2sgd2l0aG91dCByZXNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzY5MAoKMjAxNS0wNC0xMiAxMzoxMzozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBPbmx5IHNldCBEVFMgdG8gc2VnbWVudC5zdGFydCBvbiB0aGUgZmlyc3QgYnVmZmVyIGlmIHN1YmNsYXNzIGRpZCBub3QgcHJvdmlkZSBQVFMKCSAgT3RoZXJ3aXNlIHdlJ3JlIGdvaW5nIHRvIHNldCBhIHJhdGhlciBhcmJpdHJhcnkgRFRTIG9mIHNlZ21lbnQuc3RhcnQgKHVzdWFsbHkKCSAgMCkgZm9yIGxpdmUgc291cmNlcywgd2hpY2ggY29uZnVzZXMgc3luY2hyb25pemF0aW9uIGlmIHRoZSBzb3VyY2Ugc3RhcnRlZAoJICBjYXB0dXJpbmcgYXQgYSBsYXRlciB0aW1lLiBBbmQgaXQncyBlc3BlY2lhbGx5IHdyb25nIGZvciByYXcgbWVkaWEsIGZvciB3aGljaAoJICB3ZSBzaG91bGQgbm90IHNldCBhbnkgRFRTIGF0IGFsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzczMQoKMjAxNC0wOS0wMiAxNzo0MDoyOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSdW4gdGhlIGRlZmF1bHQgaGF2ZS10eXBlIGhhbmRsZXIgYWZ0ZXIgYWxsIGFwcGxpY2F0aW9uIGhhbmRsZXJzCgkgIE90aGVyd2lzZSB0aGUgQ0FQUyBldmVudCB3aWxsIGFscmVhZHkgYmUgZm9yd2FyZGVkIGRvd25zdHJlYW0gYW5kCgkgIHRoZSBhcHBsaWNhdGlvbiBoYXMgbm8gd2F5IHRvIGludGVydmVuZSBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODk2CgoyMDE1LTAzLTEwIDEyOjU3OjQ0ICsxMDAwICBEdW5jYW4gUGFsbWVyIDxkcGFsbWVyQGRpZ2lzb2Z0LnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGF1dG9tYXRpY2FsbHkgZW50ZXIgdGhlIGJ1ZmZlcmluZyBzdGF0ZSB3aGVuIHVzZS1idWZmZXJpbmcgaXMgc2V0LgoJICBUaGVyZSBpcyBubyByZWFzb24gSSBjYW4gc2VlIHRvIHNldCBtcS0+YnVmZmVyaW5nID0gVFJVRSB3aGVuCgkgIHVzZV9idWZmZXJpbmcgaXMgc2V0OyB0aGUgY29kZSBoZXJlIGFsc28gY2FsbHMgdXBkYXRlX2J1ZmZlcmluZygpLCB3aGljaAoJICB3aWxsIHNldCBtcS0+YnVmZmVyaW5nID0gVFJVRSBpZiB0aGlzIGlzIHdhcnJhbnRlZCBiZWNhdXNlIG9mIGxvdyBidWZmZXIKCSAgbGV2ZWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1OTM3CgoyMDE1LTA0LTEwIDEyOjMyOjI3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY2FjaGVkIGJ1ZmZlciBsZWFrIGluIGNoYWluIGZ1bmN0aW9uCgkgIGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4oKSB3YXMgcG9wcGluZyBjYWNoZWQgYnVmZmVycyBvdXQgb2YgdGhlIHF1ZXVlIHdpdGhvdXQKCSAgZnJlZWluZyB0aG9zZS4gTWFrZSBzdXJlIHdlIGRvbid0IHN0ZWFsIHRoZSBHc3RCdWZmZXIgYXMgdGhlIGNhY2hlZCBidWZmZXIgcmVmCgkgIGhhcyBiZWVuIHBhc3NlZCB0byB0aGUgcGFkIGNoYWluIGZ1bmN0aW9uLgoJICBUaGlzIGNhbiBiZSByZXByb2R1Y2VkIGJ5IHJ1bm5pbmcgdGhlCgkgIHZhbGlkYXRlLmZpbGUucGxheWJhY2suc3dpdGNoX3N1YnRpdGxlX3RyYWNrX3doaWxlX3BhdXNlZC50ZXN0NV9ta3Ygc2NlbmFyaW8KCSAgd2l0aCBWYWxncmluZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzYxMQoJICBTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCjIwMTUtMDQtMDggMTY6MDQ6MTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBVc2UgQU1fVEVTVFNfRU5WSVJPTk1FTlQKCSAgTmVlZGVkIGJ5IHRoZSBuZXcgYXV0b21ha2UgdGVzdCBydW5uZXIKCjIwMTUtMDQtMDcgMTU6MDA6NDYgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBtYWtlIHN1cmUgbGlzdCBpcyB3cml0YWJsZSBiZWZvcmUgYWRkaW5nIG9yIHJlbW92aW5nIGJ1ZmZlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQzOQoKMjAxNS0wNC0wNyAxNDozNDo1OCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IG1pbm9yIGRvY3MgYWRkaXRpb24gZm9yIGdzdF9idWZmZXJfbGlzdF9nZXQoKQoJICBSZXR1cm4gYnVmZmVyIHJlbWFpbnMgdmFsaWQgYXMgbG9uZyBhcyBsaXN0IGlzIHZhbGlkCgkgIGFuZCBidWZmZXIgaXMgbm90IHJlbW92ZWQgZnJvbSBsaXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NDM4CgoyMDE1LTA0LTA3IDExOjM4OjMxICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcG9vbCBsZWFrIG9uIGFsbG9jYXRpb24gcXVlcnkgZXJyb3IgcGF0aAoJICBJdCBjb3VsZCBiZSB0cmlnZ2VyZWQgYnk6CgkgIGdzdC1sYXVuY2gtMS4wIHZpZGVvdGVzdHNyYyBudW0tYnVmZmVycz0yMCAhIHZpZGVjcm9wIGJvdHRvbT0yMTQ3NDgzNjQgISB2aWRlb2NvbnZlcnQgISBhdXRvdmlkZW9zaW5rCgkgIFNwb3R0ZWQgd2hpbGUgdGVzdGluZzoKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzkxMAoKMjAxNS0wNC0wNiAxODo0NTozNyAtMDcwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRm9yd2FyZCBTRUdNRU5UX0RPTkUgZXZlbnRzIGltbWVkaWF0ZWx5CgkgIFRoZXJlIG1pZ2h0IGJlIG5vIG1vcmUgZGF0YSBjb21pbmcgYWZ0ZXJ3YXJkcywgYW5kIHdlIGp1c3QgZHJhaW5lZCBldmVyeXRoaW5nCgkgIHRoYXQgd2FzIGxlZnQgdG8gYmUgcHVzaGVkIGFueXdheS4KCjIwMTUtMDQtMDYgMTg6NTY6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkb2NzOiBmaXggY3Jvc3MtcmVmZXJlbmNlIHRvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBHc3RJbmZvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0MTYKCjIwMTUtMDQtMDYgMTA6MTg6MTUgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIGNoZWNrIGZvciB3cml0YWJsaXR5IGluIHJlc2l6ZQoJICBBZGQgZ3VhcmQgdG8gZ3N0X21lbW9yeV9yZXNpemUoKSB0byBtYWtlIHN1cmUgdGhlCgkgIG1lbW9yeSB0byBiZSByZXNpemVkIGlzIGFjdHVhbGx5IHdyaXRhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MzkyCgoyMDE1LTA0LTA1IDE2OjQ3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogYWRkIHRlc3QgdG8gbWFrZSBzdXJlIGluaXRpYWwgZXZlbnRzIGdvIHRocm91Z2ggd2l0aG91dCBidWZmZXJzCgoyMDE1LTA0LTA1IDE2OjA2OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IHF1ZXVlOiBjaGVjayB0aGF0IHRoZSBpbml0aWFsIGV2ZW50cyBhcmUgc2VudCBvbiBpbW1lZGlhdGVseQoJICBBZGQgYSBjaGVjayB0aGF0IG1ha2VzIHN1cmUgc3RyZWFtLXN0YXJ0LCBjYXBzLCBhbmQgc2VnbWVudCBldmVudHMKCSAgYXJlIHBhc3NlZCBvbiBieSBxdWV1ZSB3aXRob3V0IGRlbGF5LCBpLmUuIGV2ZW4gaWYgbm8gYnVmZmVyIGlzCgkgIHNlbnQuCgoyMDE1LTA0LTA0IDE4OjMzOjE4IC0wNzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFByaW50IGRlYnVnIG91dHB1dCBmcm9tIGdzdF9wYWRfbGlua19mdWxsKCkgaWYgcHJlcGFyaW5nIGxpbmtpbmcgZmFpbGVkCgkgIE1ha2VzIGl0IGVhc2llciB0byBmaW5kIGxpbmtpbmcgZmFpbHVyZXMgaW4gZGVidWcgbG9ncy4KCjIwMTUtMDQtMDQgMTk6Mjk6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBzbWFsbCBkb2NzIGFkZGl0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA1NjQKCjIwMTUtMDQtMDQgMTg6MTg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRvY3M6IGRlc2lnbjogZml4IHNvbWUgMC4xMC1pc21zIGluIEdzdFNlZ21lbnQgZG9jcwoJICAxKSBzZWdtZW50LmFjY3VtIC0+IHNlZ21lbnQuYmFzZQoJICAyKSBSZWZlciB0byBHc3RTZWdtZW50IG1lbWJlcnMgYXMgUy5mb28gaW5zdGVhZCBvZgoJICBOUy5mb28sIHRoZSBldmVudCBpcyBub3cgY2FsbGVkIGEgc2VnbWVudCBldmVudAoJICByYXRoZXIgdGhhbiBuZXdzZWdtZW50IGV2ZW50LgoJICAzKSBUaGVyZSdzIG5vIG1vcmUgYWJzX3JhdGUgZmllbGQgaW4gR3N0U2VnbWVudCwKCSAgYW5kIHRoZXJlIG5ldmVyIHdhcyBhbiBhYnNfYXBwbGllZF9yYXRlIGZpZWxkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNTY0CgoyMDE1LTA0LTA0IDA0OjE0OjUwICswMzAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBsZWFrIGJ1ZmZlciBwb29sIGluIGVycm9yIGNhc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzMyMQoKMjAxNS0wNC0wMyAxOToxMjo0OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IFNpbGVuY2UgYSBjb21waWxlciB3YXJuaW5nCgkgIFRoaXMgaXMgYSBmYWxzZSBwb3NpdGl2ZSBmb3IgdXNlIGluaXRpYWxpemVkLiBUaGUgdmFyaWFibGUgaXMgc2V0IGFuZAoJICB1c2VkIGVuY2xvc2VkIGluIHRoZSBzYWZlIGlmIGNvbmRpdGlvbi4KCjIwMTUtMDQtMDMgMTY6MzI6MTYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsCgoyMDE1LTA0LTAzIDEzOjE5OjEzIC0wNzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBkb2N1bWVudGF0aW9uLCBidWZmZXIgcG9vbHMgYXJlIHVucmVmZmVkIGFuZCBub3QgZnJlZWQKCjIwMTUtMDQtMDMgMjA6NDM6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBJTlNUQUxMOgoJICBVcGRhdGUgSU5TVEFMTCB0byB0aGUgYXV0b21ha2UgMS4xNCB2ZXJzaW9uCgoyMDE1LTA0LTAzIDE4OjU3OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiYzc2YThiIHRvIGM4ZmIzNzIKCjIwMTUtMDQtMDMgMTY6Mjc6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGZpeCBleHBvcnRzCgoyMDE1LTAzLTE5IDEwOjQ1OjU2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgZ3N0X3NlZ21lbnRfaXNfZXF1YWwKCSAgSXQgYmVhdHMgbWVtY21wIGR1ZSB0byB0aGUgJ3Jlc2VydmVkJyBmaWVsZHMuCgkgIEFQSTogZ3N0X3NlZ21lbnRfaXNfZXF1YWwoKQoJICBGb3VuZCB2aWEsIGJ1dCBwcm9iYWJseSBub3QgZGlyZWN0bHkgbGlua2VkIHRvLAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MjE2CgoyMDE1LTA0LTAzIDAwOjM2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIGV4cG9ydHMKCjIwMTQtMDgtMDYgMTA6MzI6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBhbGxvdyBwcm9iZXMgdG8gcmVtb3ZlIHRoZSBkYXRhIGl0ZW0gd2hpbHN0IHJldHVybmluZyBQUk9CRV9PSwoJICBVc2UgY2FzZTogd2Ugd2FudCB0byBibG9jayB0aGUgc291cmNlIHBhZCBvZiBhIGxlYWt5IHF1ZXVlIGFuZAoJICBkcm9wIHRoZSBidWZmZXIgdGhhdCBjYXVzZXMgdGhlIGJsb2NrLiBJZiB3ZSByZXR1cm4gUFJPQkVfRFJPUAoJICB0aGVuIHRoZSBidWZmZXIgZ2V0cyBkcm9wcGVkLCBidXQgd2UgZ2V0IGNhbGxlZCBhZ2Fpbi4gSWYgd2UKCSAgcmV0dXJuIFBST0JFX09LIHdlIGNhbid0IGVhc2lseSBkcm9wIHRoZSBidWZmZXIuIElmIHdlIGp1c3QKCSAgcmVwbGFjZSB0aGUgaXRlbSBpbnRvIHRoZSBHc3RQYWRQcm9iZUluZm8gc3RydWN0dXJlIHdpdGggTlVMTCwKCSAgR1N0cmVhbWVyIHdpbGwgcHVzaCBhIE5VTEwgYnVmZmVyIHRvIHRoZSBuZXh0IGVsZW1lbnQgd2hlbiB3ZQoJICB1bmJsb2NrIHRoZSBwYWQgcHJvYmUuIFRoaXMgcGF0Y2ggZW5zdXJlcyBpdCBkb2Vzbid0IGRvIHRoYXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQzNDIKCjIwMTUtMDItMTIgMTk6Mzk6NDQgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBEb2N1bWVudCB3aGVuIGEgY2xvY2sgaXMgYXZhaWxhYmxlIGZyb20gZ3N0X2VsZW1lbnRfZ2V0X2Nsb2NrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDQ0MgoKMjAxNS0wMi0xMiAxOTo0MDowNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgcGlwZWxpbmU6IEFkZCBiaW5kaW5nIGZyaWVuZGx5IGdzdF9waXBlbGluZV9nZXRfcGlwZWxpbmVfY2xvY2soKQoJICBBbHNvIHNraXAgZ3N0X3BpcGVsaW5lX2dldF9jbG9jaygpIGFuZCBnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrKCkgZnJvbSB0aGUKCSAgYmluZGluZ3MgYXMgdGhleSBhcmUgY29uZnVzZWQgd2l0aCBnc3RfZWxlbWVudF8qX2Nsb2NrKCkuCgkgIEFQSTogZ3N0X3BpcGVsaW5lX2dldF9waXBlbGluZV9jbG9jaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ0NDIKCjIwMTUtMDQtMDIgMTc6MzI6NDIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBZGQgU2luY2UgbWFyayBmb3IgbmV3IG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDI0CgoyMDE1LTAyLTIwIDE3OjUwOjQ4ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBhIG1ldGhvZCB0byBsZXQgc3ViY2xhc3NlcyBjbGVhbmx5IHVwZGF0ZSBzcmNwYWQgY2FwcwoJICBBUEk6CgkgIGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfc3JjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MjQKCjIwMTUtMDQtMDIgMjE6MTg6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2NzOiBwd2c6IGZpeCBtaXNzaW5nIGNvbW1hIGFuZCAwLjEwLWlzbSBpbiBjb2RlIHNhbXBsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjY3CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyNjYKCjIwMTUtMDQtMDIgMTk6Mjk6NDYgKzAzMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaW1wcm92ZSBkb2NzIGZvciBfY29weSgpIGFuZCBfc2hhcmUoKQoKMjAxNS0wNC0wMiAxMTo0MjoyMCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3Q6IGZpbGVzaW5rOiBhZGQgdGVzdHMgZm9yIGJ1ZmZlcnMgd2l0aCBtdWx0aXBsZSBtZW1vcnkgYmxvY2tzCgkgIFVwZGF0ZSB0ZXN0X3NlZWtpbmcgdGVzdGNhc2UgdG8gdmVyaWZ5IHRoZSByZW5kZXIgYW5kIHJlbmRlcl9saXN0CgkgIHZpcnR1YWwgbWV0aG9kIGhhbmRsZSBidWZmZXJzIGFuZCBidWZmZXIgbGlzdCBjb250YWluaW5nIG11bHRpcGxlCgkgIG1lbW9yeSBibG9ja3MgY29ycmVjdGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjIzCgoyMDE1LTA0LTAyIDA5OjQ0OjMzICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBZGQgYSBGSVhNRSBmb3IgMi4wIGFib3V0IHJlcXVlc3RfbmV3X3BhZCBWUyByZXF1ZXN0X3BhZCBuYW1pbmcKCjIwMTUtMDQtMDIgMDk6MzQ6MDAgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCByZXF1ZXN0X25ld19wYWQgaW50cm9zcGVjdGlvbgoJICBNYXJraW5nIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkIGFzIHRoZSBjYWxsZXIgb2YgdGhlIC0+cmVxdWVzdF9uZXdfcGFkCgkgIHZpcnR1YWwgbWV0aG9kLgoKMjAxNS0wNC0wMSAwOToyMDoyNCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3RzOiBmaWxlc2luazogYWRkIGNoZWNrIGZvciByZW5kZXJfbGlzdCB2aXJ0dWFsIG1ldGhvZAoJICBHc3RGaWxlU2luayBpbXBsZW1lbnRzIHRoZSByZW5kZXJfbGlzdCB2aXJ0dWFsIG1ldGhvZCB0byByZW5kZXIKCSAgYSBsaXN0IG9mIGJ1ZmZlcnMuIFVwZGF0ZSB0aGUgdGVzdF9zZWVraW5nIHRlc3QgY2FzZSB0byBhbHNvCgkgIGNoZWNrIHRoZSByZW5kZXJfbGlzdCBtZXRob2QgaW1wbGVtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxMDAKCjIwMTUtMDQtMDEgMTI6MTM6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogbmljZXIgcHJpbnRpbmcgb2YgY2FwcyBmZWF0dXJlcwoJICBPbmx5IHByaW50IGludGVyZXN0aW5nIGNhcHMgZmVhdHVyZXMsIGRvbid0CgkgIGFwcGVuZCAobWVtb3J5OlN5c3RlbU1lbW9yeSkgdG8gYWxsIGNhcHMsCgkgIHdoaWNoIG1ha2VzIHRoZW0gbXVjaCBtb3JlIHVud2llbGR5IGFuZAoJICBoYXJkZXIgdG8gcmVhZC4gQWxzbyB1c2UgaW50ZXJuYWwgZnVuY3Rpb24KCSAgdG8gZ2V0IGNhcHMgZmVhdHVyZXMgc28gdGhhdCBvdXIgcHJpbnRpbmcKCSAgaGFzIG5vIHNpZGUgZWZmZWN0cyBvbiB0aGUgY2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjgwOQoKMjAxNS0wMy0yNiAxMzowNTo1NyArMDEwMCAgTHVib3N6IFNhcm5lY2tpIDxsdWJvc3ouc2FybmVja2lAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogcGxvdCBjYXBzIGZlYXR1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY4MDkKCjIwMTUtMDMtMzEgMjM6NDg6MjIgKzA5MDAgIFdvbmNodWwgTGVlIDxjaHVsMDgxMkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IGEgdHlwbyBpbiBhIGRvY3N0cmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MTE5CgoyMDE1LTAzLTMxIDExOjE1OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBEb24ndCB1c2UgZy1pci1zY2FubmVyIGNhY2hlIGF0IGNvbXBpbGUgdGltZQoJICBJdCBwb2xsdXRlcyB1c2VyIGRpcmVjdG9yaWVzIGFuZCB3ZSBkb24ndCBuZWVkIHRvIGNhY2hlIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcwOTUKCjIwMTUtMDMtMjggMTQ6NDU6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IG91dGRhdGVkIGRlYnVnIG1lc3NhZ2UKCSAgQnVmZmVyIGxpc3RzIGRvbid0IGhhdmUgZ3JvdXBzIGFueSBtb3JlIGluIDEuMAoKMjAxNS0wMy0yNyAxODoyMDozNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZsdXNoLXN0b3Agc3RhcnRzIGxpdmUgdGFzayBpbiBwYXVzZWQKCSAgVGhlIGZsdXNoLXN0b3AgZXZlbnQgc2hvdWxkIG5vdCByZXN0YXJ0IHRoZSB0YXNrIGZvciBsaXZlIHNvdXJjZXMgdW5sZXNzCgkgIHRoZSBlbGVtZW50IGlzIHBsYXlpbmcuIFRoaXMgd2FzIGJyZWFraW5nIHNlZWtzIGluIHBhdXNlIHdpdGggdGhlIHJ0cHNyYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTcwMQoKMjAxNS0wMy0yNyAxNjoyMzo0MCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3RzOiBjaGVjayBsb2NhdGlvbiBpc24ndCB0cnVuY2F0ZWQKCSAgVGVzdCBjb3ZlcmluZyB0aGUgcmVjZW50IGNvbW1pdCB3aGVyZSBsb2NhdGlvbj0nIi5hYmMnIHdvbid0IGdldCB0cnVuY2F0ZWQKCSAgdG8gJy5hYicgYW55bW9yZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NjI1CgoyMDE1LTAzLTI2IDE3OjAxOjA2ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogb25seSB1bndyYXAgc3RyaW5nIGRlbGltaXRlZCB3aXRoICIKCSAgRG9uJ3QgdW53cmFwIHN0cmluZ3MgdGhhdCBzdGFydCBidXQgZG9uJ3QgZmluaXNoIHdpdGggYSBkb3VibGUgcXVvdGUuIElmIGEKCSAgc3RyaW5nIGlzIGRlbGltaXRlZCBieSB0d28gcXVvdGVzIHdlIHVuZXNjYXBlIHRoZW0gYW5kIGFueSBzcGVjaWFsIGNoYXJhY3RlcnMKCSAgaW4gdGhlIG1pZGRsZSAobGlrZSBcIiBvciBcXCkuIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3IgdGhlIGxhc3QgY2hhcmFjdGVyCgkgIGFyZW4ndCBhIHF1b3RlIHdlIGFzc3VtZSBpdCdzIHBhcnQgb2YgYW4gdW5lc2NhcGVkIHN0cmluZy4KCSAgTW92ZWQgc29tZSBkZXNlcmlhbGl6ZV9zdHJpbmcgdW5pdCB0ZXN0cyBiZWNhdXNlIHdlIGRvbid0IHRyeSB0byB1bndyYXAgc3RyaW5ncwoJICBtaXNzaW5nIHRoYXQgc2Vjb25kIHF1b3RlIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg2MjUKCjIwMTUtMDMtMjcgMTc6MTY6MDMgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogY2hlY2sgYmVmb3JlIHRydW5jYXRpbmcgc3RyaW5ncwoJICBEb24ndCB0cnVuY2F0ZSB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBzdHJpbmcgaWYgaXQgaXNuJ3QgbmVjZXNzYXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NjI1CgoyMDE1LTAzLTI3IDEwOjE1OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEFkZCBndWFyZHMgYWdhaW5zdCBpbnZhbGlkIGFyZ3VtZW50cyB0byBzZXRfZmx1c2hpbmcoKSBhbmQgcG9sbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY4NzEKCjIwMTUtMDMtMjUgMTA6NDk6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogb25seSBwb3N0ICdubyB2YWxpZCBmcmFtZXMnIGVycm9yIGlmIGJ1ZmZlcnMgd2VyZSByZWNlaXZlZAoJICBPdGhlcndpc2UgYmFzZXBhcnNlIHdpbGwgY29uc2lkZXIgZW1wdHkgc3RyZWFtcyB0byBiZSBhbiBlcnJvciB3aGlsZQoJICBhbiBlbXB0eSBzdHJlYW0gaXMgYSB2YWxpZCBzY2VuYXJpby4gV2l0aCB0aGlzIHBhdGNoLCBlcnJvcnMgd291bGQKCSAgb25seSBiZSBlbWl0dGVkIGlmIHRoZSBwYXJzZXIgcmVjZWl2ZWQgZGF0YSBidXQgd2Fzbid0IGFibGUgdG8KCSAgcHJvZHVjZSBhbnkgb3V0cHV0IGZyb20gaXQuCgkgIFRoaXMgY2hhbmdlIGlzIG9ubHkgZm9yIHB1c2gtbW9kZSBvcGVyYXRpb24gYXMgaW4gcHVsbCBtb2RlIGFuCgkgIGVtcHR5IGZpbGUgY2FuIGJlIGNvbnNpZGVyZWQgYW4gZXJyb3IgZm9yIHRoZSBvbmUgZHJpdmluZyB0aGUKCSAgcGlwZWxpbmUKCSAgSW5jbHVkZXMgYSB1bml0IHRlc3QgZm9yIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxNzEKCjIwMTUtMDMtMTkgMTA6MzY6MTEgKzAxMDAgIEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hcyA8c2FudG9zY2FkZW5hc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBBZGQgYWxsb3ctbm90LWxpbmtlZCBwcm9wZXJ0eQoJICBUaGlzIHByb3BlcnR5IGF2b2lkcyBub3QgbGlua2VkIGVycm9yIHdoZW4gYWxsIHRoZSBwYWRzIGFyZSB1bmxpbmtlZAoJICBvciB3aGVuIHRoZXJlIGFyZSBubyBzb3VyY2UgcGFkcy4gVGhpcyBpcyB1c2VmdWwgaW4gZHluYW1pYyBwaXBlbGluZXMKCSAgd2hlcmUgaXQgY2FuIGhhcHBlbiB0aGF0IGZvciBhIHNob3J0IHRpbWUgdGhlcmUgYXJlIG5vIHBhZHMgYXQgYWxsIG9yCgkgIGFsbCBkb3duc3RyZWFtIHBhZHMgYXJlIG5vdCBsaW5rZWQgeWV0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDM2CgoyMDE1LTAzLTIxIDE3OjEzOjE4IC0wNTAwICBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogRml4IHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1ODUKCjIwMTUtMDMtMjEgMTU6NDY6NTAgLTA1MDAgIE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBGaXggdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjU4NQoKMjAxNS0wMy0yNCAxNjowNDoxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IGFkZCBkcmFpbiBoYW5kbGluZwoJICBSZWxlYXNlIHRoZSBsYXRlc3QgYnVmZmVyLCBpZiBhbnksIGFuZCB0aGVuIGp1c3QgbGV0CgkgIHRoZSBkcmFpbiBiZSBwdXNoZWQgZG93bnN0cmVhbQoKMjAxNS0wMy0yNCAxOTozMjo0OSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIFJldmVydCAiRml4IGRpc3RjaGVjayIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1NmRkMmQ4OWM0ZWFjNDYwY2JjMzdlMmE1MWMxZGQ5ZTc5Mjk5OWU4LgoJICBJbnN0YWxsaW5nIGNvbXBsZXRpb25zIHRvIGEgY3VzdG9tIHByZWZpeCBpcyBub3cgZml4ZWQuCgoyMDE1LTAzLTI0IDE5OjMwOjUyICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiByZW1vdmUgY29tcGxldGlvbi1oZWxwZXIgb24gdW5pbnN0YWxsCgkgICsgQW5kIGFkZCBpdCB0byBDTEVBTkZJTEVTCgoyMDE1LTAzLTE4IDE5OjM4OjE1ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSogbGlicy9nc3QvaGVscGVycy9nc3Q6CgkgIGNvbXBsZXRpb25zOiByZW1vdmUgbGFzdCB1bm5hbWVzcGFjZWQgc3ltYm9scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NwoKMjAxNS0wMy0xOCAxNDo0NDoyMSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkgIGNvbXBsZXRpb25zOiByZW1vdmUgZGVwcmVjYXRlZCBzaGVsbCBzeW50YXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcjYzIxCgoyMDE1LTAzLTE4IDE0OjM3OjExICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSAgY29tcGxldGlvbnM6IHByZWZpeCBzaGVsbCBmdW5jdGlvbnMgd2l0aCBfZ3N0CgkgICsgVG8gbWFrZSBpdCBtb3JlIGRpZmZpY3VsdCBmb3IgdGhlbSB0byBjb25mbGljdCBpbiB0aGUKCSAgZ2xvYmFsIG5hbWVzcGFjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NyNjMjEKCjIwMTUtMDMtMjQgMTM6MTM6MjkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBiYXNoLWNvbXBsZXRpb246IFJlc3BlY3QgdGhlIHByZWZpeAoJICBEb24ndCB0cnkgYW5kIGluc3RhbGwgdGhlIGJhc2ggaGVscGVycyBvdXRzaWRlIHRoZSBkZWZpbmVkIHByZWZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NwoKMjAxNC0xMS0xOSAxMzowODo0NSArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbmFtZSBfYWN0aXZhdGVfc2lua3BhZCB0byBfZ2V0X2FjdGl2ZV9zaW5rcGFkCgkgIFJlbW92ZXMgdGhlIG5vdyB1bnVzZWQgJ3BhZCcgcGFyYW1ldGVyIGFuZCByZW5hbWVzIHRoZSBmdW5jdGlvbgoJICB0byBzb21ldGhpbmcgbW9yZSBhcHByb3ByaWF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTYyMAoKMjAxNC0xMS0xOSAxMzowMzoyMSArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBwYWQncyAnYWN0aXZlJyBmaWVsZAoJICBUaGlzIGlzIG5vdyBuZXZlciByZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NjIwCgoyMDE0LTExLTE5IDEyOjU5OjEyICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogVXNlIHNlZ21lbnQtcHJlc2VuY2UgZm9yIHJ1bm5pbmdfdGltZSBjaGVjawoJICBXaGVuIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIHJ1bm5pbmdfdGltZSBvZiBhIHBhZCBjYW4gYmUKCSAgY2FsY3VsYXRlZCwgY2hlY2sgaWYgdGhlIHNlZ21lbnQgaXMgaW4gVElNRSBmb3JtYXQgaW5zdGVhZAoJICBvZiB1c2luZyB0aGUgJ2FjdGl2ZScgZmllbGQuCgkgIFNpbmNlIHRoZSBsYXR0ZXIgaXMgc2V0IHRocm91Z2ggKmFueSogYWN0aXZpdHksIGl0J3Mgbm90IGEKCSAgcmVsaWFibGUgaW5kaWNhdG9yIG9mIHNlZ21lbnQgcHJlc2VuY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2MjAKCjIwMTUtMDMtMjMgMTM6MjA6MzQgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlICdibG9ja2VkJyBmbGFnCgkgIFdpdGggdGhlIGRpc2FwcGVhcmFuY2Ugb2YgdGhlICdibG9jaycgc2lnbmFsLCB0aGlzCgkgIGZsYWcgY2Fubm90IGJlIHNldCB0byBUUlVFLgoJICBnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCBkaXNhcHBlYXJzIGFzIGl0IG5ldmVyIHdhaXRzCgkgIGFuZCBqdXN0IHJldHVybnMgc2VsZi0+Zmx1c2hpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4OTEKCjIwMTUtMDMtMjMgMTI6MTI6NTEgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIG9ic29sZXRlICdibG9jaycgc2lnbmFsCgkgIFRoaXMgc2lnbmFsIGJsb2NrcyB0aGUgaW5wdXQtc2VsZWN0b3Igd2l0aCBubyBtZWFucyBvZiB1bmJsb2NraW5nCgkgIG90aGVyIHRoYW4gYSBzdGF0ZSBjaGFuZ2UgYmFjayB0byBSRUFEWS4gSXQgc2VlbXMgdGhpcyBzaWduYWwgd2FzCgkgIHBhcnQgb2YgYW4gb2xkIHdheSBvZiBzeW5jaHJvbm91c2x5IHN3aXRjaGluZyB0aGUgc2VsZWN0b3IsCgkgIHRvZ2V0aGVyIHdpdGggdGhlIGFscmVhZHktcmVtb3ZlZCAnc3dpdGNoJyBzaWduYWwuCgkgIFJlbW92aW5nIHRoZSBzaWduYWwgaXMgc2FmZSwgYXMgYXR0ZW1wdGluZyB0byB1c2UgaXQgY291bGQgb25seQoJICBlbmQgaW4gZGVhZGxvY2tzLiBBdHRlbXB0aW5nIHRvIGVtaXQgYW4gdW5rbm93biBzaWduYWwganVzdCBjYXVzZXMKCSAgZ19jcml0aWNhbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4OTEKCjIwMTUtMDMtMjMgMTM6MDU6MzAgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBGaXggd2FpdGluZyBvbiBFT1MKCSAgVGhpcyBhcHBhcmVudGx5IGdvdCBicm9rZW4gYnkgYmMxZWM0ZS4gU2luY2Ugc2VsZi0+YmxvY2tlZCBpcyBhbHdheXMKCSAgRkFMU0UsIGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0IG5ldmVyIGFjdHVhbGx5IHdhaXRzLgoJICBVc2luZyAoIXNlbGYtPmVvcyB8fCBzZWxmLT5ibG9ja2VkKSAmJiAuLi4gYXMgdGhlIGxvb3AgY29uZGl0aW9uIHdvdWxkCgkgIGJlIGluY29ycmVjdCBhcyB3ZWxsLCBiZWNhdXNlIHRoZW4gdGhlIG90aGVyIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIGluCgkgIF9jaGFpbiB3b3VsZCBibG9jayB1bnRpbCBFT1MsIHNvIHRoZSBmdW5jdGlvbnMgY2Fubm90IGJlIG1lcmdlZCB0cml2aWFsbHkuCgkgIFNpbmNlIGJsb2NraW5nIGlzIG9ic29sZXRlLCBnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCB3aWxsIGdldCByZW1vdmVkIGFueXdheS4KCSAgQXMgc3VjaCwganVzdCBpbmxpbmUgdGhlIGxvb3AuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MTgKCjIwMTUtMDMtMjAgMDc6MjM6NTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBpbnB1dC1zZWxlY3RvcjogbmV3IHRlc3RzIGZvciBFT1MgaGFuZGxpbmcKCSAgMyBuZXcgdGVzdHM6CgkgIDEpIFRlc3RzIHRoYXQgYSBzdHJlYW0gdGhhdCBpcyBlbXB0eSAoanVzdCBhbiBFT1MgZXZlbnQpCgkgIG9uIGluYWN0aXZlIHBhZCBkb2Vzbid0IGdldCB0aHJvdWdoIGFuZCB0YW1wZXIKCSAgd2l0aCB0aGUgYWN0aXZlIHBhZCB0aGF0IHN0aWxsIGhhcyBkYXRhCgkgIDIpIFRlc3RzIHRoYXQgYSBzdHJlYW0gdGhhdCBpcyBzaG9ydGVyIHRoYW4gdGhlIGFjdGl2ZSBvbmUKCSAgKHB1c2hlcyBFT1MgZWFybGllcikgZG9lc24ndCBoYXMgaXRzIEVPUyBwdXNoZWQKCSAgMykgVGVzdHMgdGhhdCBzd2l0Y2hpbmcgdG8gYW4gaW5hY3RpdmUgc3RyZWFtIHRoYXQgaGFzIHJlY2VpdmVkCgkgIEVPUyB3aWxsIG1ha2UgaW5wdXQtc2VsZWN0b3IgcHVzaCBFT1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjUxOAoKMjAxNS0wMy0xOSAxMjoxMToxOSArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IHNlbGVjdG9yOiByZW1vdmUgd2VpcmQgc2VtaWNvbG9ucyBhdCB0aGUgZW5kIG9mIHRlc3QgZnVuY3Rpb25zCgkgIEV2ZW4gdGhvdWdoIGl0IHdvcmtzLCBpdCBpcyBub3QgbmVlZGVkIGFuZCBzZWVtcyBtb3JlIG5hdHVyYWwKCSAgdG8gbm90IGhhdmUgc2VtaWNvbG9ucyBhdCB0aGUgZW5kIG9mIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTE4CgoyMDE0LTA3LTE3IDE2OjMzOjI5ICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQcm9jZXNzIFNFRUtJTkcgcXVlcnkKCSAgQWRkIFFVRVJZX1NFRUtJTkcgaGFuZGxpbmcgdG8gcXVldWUyLCBzbyBSVE1QIGxpdmUgc3RyZWFtcyBiZWNvbWUKCSAgc2Vla2FibGUgd2hlbiBhIHF1ZXVlMiBpbiBkb3dubG9hZCBvciByaW5nYnVmZmVyIG1vZGUgaXMgaW5zZXJ0ZWQ6CgkgIHJ0bXBzcmMgISBxdWV1ZTIgISBmbHZkZW11eAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMzUxCgoyMDE1LTAzLTIxIDE5OjM3OjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nIHdpdGggZ2NjCgkgIGNoZWNrX3J1bi5jOiBJbiBmdW5jdGlvbiAnc2lnX2hhbmRsZXInOgoJICBjaGVja19ydW4uYzoxMjc6MTM6IHdhcm5pbmc6ICdjaGlsZF9zaWcnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVkXQoJICBraWxscGcoZ3JvdXBfcGlkLCBjaGlsZF9zaWcpOwoJICBeCgkgIGNoZWNrX3J1bi5jOjEzMDozMTogd2FybmluZzogJ2lkeCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIHNpZ2FjdGlvbihzaWdfbnIsICZvbGRfYWN0aW9uW2lkeF0sIE5VTEwpOwoJICBeCgoyMDE1LTAzLTIxIDE1OjE5OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBDYXRjaCBTSUdURVJNIGFuZCBTSUdJTlQgaW4gdGhlIHRlc3QgcnVubmVyIGFuZCBraWxsIGFsbCBjdXJyZW50bHkgcnVubmluZyB0ZXN0cwoJICBPdGhlcndpc2UgZS5nLiBjdHJsK2MgaW4gdGhlIHRlc3QgcnVubmVyIGV4aXRzIHRoZSB0ZXN0IHJ1bm5lciwgd2hpbGUgdGhlIHRlc3QKCSAgaXRzZWxmIGlzIHN0aWxsIHJ1bm5pbmcgaW4gdGhlIGJhY2tncm91bmQsIHVzZXMgQ1BVIGFuZCBtZW1vcnkgYW5kIHBvdGVudGlhbGx5CgkgIG5ldmVyIGV4aXRzIChlLmcuIGlmIHRoZSB0ZXN0IHJhbiBpbnRvIGEgZGVhZGxvY2sgb3IgaW5maW5pdGUgbG9vcCkuCgkgIFRoZSByZWFzb24gd2h5IHdlIGhhdmUgdG8gbWFudWFsbHkga2lsbCB0aGUgYWN0dWFsIHRlc3RzIGlzIHRoYXQgYWZ0ZXIKCSAgZm9ya2luZyB0aGV5IHdpbGwgYmUgbW92ZWQgdG8gdGhlaXIgb3duIHByb2Nlc3MgZ3JvdXAsIGFuZCBhcyBzdWNoIGFyZQoJICBub3QgcmVjZWl2aW5nIGFueSBzaWduYWxzIHNlbnQgdG8gdGhlIHRlc3QgcnVubmVyIGFueW1vcmUuIFRoaXMgaXMgc3VwcG9zZWQKCSAgdG8gYmUgZG9uZSB0byBtYWtlIGl0IGVhc2llciB0byBraWxsIGEgdGVzdCwgd2hpY2ggaXQgb25seSByZWFsbHkgZG9lcyBpZgoJICB0aGUgdGVzdCBpdHNlbGYgaXMgZm9ya2luZyBvZmYgbmV3IHByb2Nlc3Nlcy4KCSAgVGhpcyBmaXggaXMgbm90IGNvbXBsZXRlIHRob3VnaC4gU0lHS0lMTCBjYW4ndCBiZSBjYXVnaHQgYXQgYWxsLCBhbmQgZXJyb3IKCSAgc2lnbmFscyBsaWtlIFNJR1NFR1YsIFNJR0ZQRSBhcmUgY3VycmVudGx5IG5vdCBjYXVnaHQuIFRoZSBsYXR0ZXIgd2lsbCBvbmx5CgkgIGhhcHBlbiBpZiB0aGVyZSBpcyBhIGJ1ZyBpbiB0aGUgdGVzdCBydW5uZXIgaXRzZWxmLCBhbmQgYXMgc3VjaCBzZWVtIGxlc3MKCSAgaW1wb3J0YW50LgoKMjAxNS0wMy0xOSAxMzo1MTozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IERvbid0IGRyb3Agbm9uLXNlcmlhbGl6ZWQgcXVlcmllcyB3aGVuIHRoZSB2YWx2ZSBpcyBkcm9wcGluZwoJICBPdGhlcndpc2Ugd2UgZW5kIHVwIGRyb3BwaW5nIGUuZy4gQ0FQUyBxdWVyaWVzLCBhbmQgdGhlbiB1cHN0cmVhbSBqdXN0CgkgIG5lZ290aWF0ZXMgdG8gd2hhdGV2ZXIgZm9ybWF0IGl0IHdhbnRzIHRvLiBPbmNlIHRoZSB2YWx2ZSBpcyBub3QtZHJvcHBpbmcKCSAgYW55bW9yZSB0aGlzIGNhbiBlYXNpbHkgcmVzdWx0IGluIG5lZ290aWF0aW9uIGZhaWxpbmcgY29tcGxldGVseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQ0OAoKMjAxNS0wMy0yMCAwOTowMDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiByZW1vdmUgdGhlIGJvdW5kcyBjaGVjayBmcm9tIF90b19ydW5uaW5nX3RpbWVfZnVsbCgpCgkgIERvIG5vdCBkbyBhbnkgY2hlY2tzIGZvciB0aGUgc3RhcnQvc3RvcCBpbiB0aGUgbmV3CgkgIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsKCkgbWV0aG9kLCB3ZSBjYW4gbGV0IHRoaXMgYmUgZG9uZSBieQoJICB0aGUgbW9yZSBjYXBhYmxlIGdzdF9zZWdtZW50X2NsaXAoKSBtZXRob2QuIFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUKCSAgZW51bSBvZiByZXN1bHRzIGFuZCBvbmx5IHJldHVybiB0aGUgc2lnbiBvZiB0aGUgY2FsY3VsYXRlZCBydW5uaW5nLXRpbWUuCgkgIFdlIG5lZWQgdG8gcHV0IHRoZSBvbGQgY2xpcHBpbmcgY2hlY2tzIGluIHRoZSBvbGQKCSAgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgc3RpbGwgYmVjYXVzZSB0aGV5IHdvcmsgc2xpZ2h0bHkKCSAgZGlmZmVyZW50bHkgdGhhbiB0aGUgX2NsaXAgbWV0aG9kcy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDMtMTkgMTc6MzY6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogYWRkIG9wdGlvbiB0byBkaXNhYmxlIGNsaXBwaW5nCgkgIEFkZCBhIGNsaXAgYXJndW1lbnQgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwoKSB0byBkaXNhYmxlCgkgIHRoZSBjaGVja3MgYWdhaW5zdCB0aGUgc2VnbWVudCBib3VuZGFyaWVzLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvCgkgIGdlbmVyYXRlIGFuIGV4dHJhcG9sYXRlZCBydW5uaW5nLXRpbWUgZm9yIHRpbWVzdGFtcHMgb3V0c2lkZSBvZiB0aGUKCSAgc2VnbWVudC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDMtMTggMTY6Mjc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmL3VucmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQvZGVpbml0KCkKCjIwMTUtMDMtMTggMTQ6MTY6NDggKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzOiByZW1vdmUgb3V0ZGF0ZWQgY29tcGxldGlvbiBzY3JpcHQKCSAgKyBSZW1vdmUgdGhlIGFzc29jaWF0ZWQgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3I2MyMQoKMjAxNS0wMy0xOCAxMTozMTo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIGhlbHBlciB0byBnZXQgbmVnYXRpdmUgcnVubmluZy10aW1lCgkgIEFkZCBhIGhlbHBlciBtZXRob2QgdG8gZ2V0IGEgcnVubmluZy10aW1lIHdpdGggYSBsaXR0bGUgbW9yZSBmZWF0dXJlcwoJICBzdWNoIGFzIGRldGVjdGluZyBpZiB0aGUgdmFsdWUgd2FzIGJlZm9yZSBvciBhZnRlciB0aGUgc2VnbWVudCBhbmQKCSAgbmVnYXRpdmUgcnVubmluZy10aW1lLgoJICBBUEk6IGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsKCkKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wMy0xOCAxMDo1MzozMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBmaXggb2Zmc2V0IGhhbmRsaW5nIHdpdGggbm9uIDAgc3RhcnQKCSAgVGhlIHBvc2l0aW9uIGluIHRoZSBzZWdtZW50IGlzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBidXQgdGhlIG9mZnNldAoJICBpc24ndCwgc28gc3VidHJhY3QgdGhlIHN0YXJ0IGZyb20gdGhlIHBvc2l0aW9uIHdoZW4gc2V0dGluZyB0aGUgb2Zmc2V0LgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGlzIGFzIHdlbGwuCgoyMDE1LTAzLTE4IDA5OjM2OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBBZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGxpc3RzCgoyMDEzLTExLTI5IDE2OjI4OjQxIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgZHVwbGljYXRlIGNvZGUKCSAgVGhlc2UgYXJlIGFscmVhZHkgZnJlZWQgYnkgZ3N0X2Jhc2VfcGFyc2VfY2xlYXJfcXVldWVzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wMy0xNyAxNTo0MTozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBGaXggaW5kZW50aW9uCgoyMDE1LTAzLTEzIDExOjA4OjI1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgc2tpcCBvbiBzZWdtZW50cyBhbmQgZGlzY29udGludWl0aWVzCgkgIExhcmdlIHNjYWxlIHNraXAgaXMgYW4gb3B0aW1pemF0aW9uLCBhbmQgdGh1cyBpdCBpcyBzYWZlciB0bwoJICBzdG9wIHNraXBwaW5nIHRoYW4gdG8gY29udGludWUuIENsZWFyIHNraXAgb24gc2VnbWVudHMgYW5kCgkgIGRpc2NvbnRpbnVpdGllcywgYXMgdGhlc2UgYXJlIHBvaW50cyB3aGVyZSBpdCBpcyBwb3NzaWJsZSB0aGF0CgkgIHRoZSBvcmlnaW5hbCBpZGVhIG9mICJieXRlcyB0byBza2lwIiBjaGFuZ2VzLgoKMjAxNS0wMy0xNSAxNDoxOToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBncm93IHF1ZXVlIGluZmluaXRlbHkgaWYgb25seSBvbmUgcGFkIGlzIGxpbmtlZAoJICBUaGlzIHdhcyBpbnRyb2R1Y2VkIGJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk4OTMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjg5MQoJICBidXQgaXQgZG9lc24ndCBtYWtlIGFueSBzZW5zZSBhdCBhbGwgYW5kIGNhdXNlcyBodWdlIG1lbW9yeSBsZWFrcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDI1MwoKMjAxNS0wMy0xNCAyMTowNzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBlbXB0eSBidWZmZXIgbGlzdCBtb3JlIGdyYWNlZnVsbHkKCSAgRG9uJ3QgYWJvcnQsIGp1c3QgaWdub3JlIGl0LiBJdCdzIGxpa2UgYSBidWZmZXIKCSAgd2l0aG91dCBtZW1vcmllcy4KCjIwMTUtMDMtMTQgMTc6Mzk6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogbWlub3Igb3B0aW1pc2F0aW9uIGZvciBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCSAgVHJ5IHRvIGFsbG9jYXRlIGJ1ZmZlciBsaXN0IHdpdGggYSBzdWl0YWJsZSBzaXplIGZyb20gdGhlCgkgIGJlZ2lubmluZyB0byBhdm9pZCBoYXZpbmcgdG8gcmUtYWxsb2MgdGhlIGJ1ZmZlciBsaXN0IGFycmF5LgoKMjAxNS0wMy0xNCAxNzoyMzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgoyMDE1LTAzLTE0IDE3OjIwOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IGFkZCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCSAgQVBJOiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCjIwMTUtMDMtMTQgMTY6MDU6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBBZGQgbmV3IHN0cmVhbWlkZGVtdXggYmluYXJpZXMgdG8gLmdpdGlnbm9yZQoKMjAxNS0wMy0xNCAxNjowMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGF2b2lkIG11bHRpcGxlIGNhbGxzIHRvIGdzdF9idWZmZXJfZ2V0X3NpemUoKSBpbiBtYWNybwoKMjAxNS0wMy0xNCAxNTo1ODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBtdWx0aXBsZSBjYWxscyB0byBnc3RfYnVmZmVyX2dldF9zaXplKCkgaW4gbWFjcm8KCjIwMTUtMDMtMTMgMTg6MjI6MDEgKzAwMDAgIFJhbWlybyBQb2xsYSA8cmFtaXJvLnBvbGxhQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHByb3Blcmx5IGVzY2FwZSBwZXJjZW50IHNpZ24gaW4gZG9jdW1lbnRhdGlvbgoKMjAxNS0wMy0xNCAxMzozNzowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBVc2UgdGhlIGNvcnJlY3QgZW51bSB0eXBlIHRvIGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0YnVmZmVyLmM6NTIyOjU4OiBlcnJvcjogaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckZsYWdzJyB0bwoJICBkaWZmZXJlbnQgZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyQ29weUZsYWdzJyBbLVdlcnJvciwtV2VudW0tY29udmVyc2lvbl0KCSAgaWYgKCFnc3RfYnVmZmVyX2NvcHlfaW50byAoY29weSwgKEdzdEJ1ZmZlciAqKSBidWZmZXIsIGZsYWdzLCAwLCAtMSkpCgkgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4KCSAgZ3N0YnVmZmVyLmM6NTM0OjQ2OiBlcnJvcjogaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckNvcHlGbGFncycgdG8KCSAgZGlmZmVyZW50IGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckZsYWdzJyBbLVdlcnJvciwtV2VudW0tY29udmVyc2lvbl0KCSAgcmV0dXJuIGdzdF9idWZmZXJfY29weV93aXRoX2ZsYWdzIChidWZmZXIsIEdTVF9CVUZGRVJfQ09QWV9BTEwpOwoJICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fiAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+CgkgIC4vZ3N0YnVmZmVyLmg6NDMzOjMxOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdHU1RfQlVGRkVSX0NPUFlfQUxMJwoJICAuLi4oKEdzdEJ1ZmZlckNvcHlGbGFncykoR1NUX0JVRkZFUl9DT1BZX01FVEFEQVRBIHwgR1NUX0JVRkZFUl9DT1BZX01FTU9SWSkpCgkgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgoyMDE1LTAzLTE0IDE0OjA2OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxNC0xMC0zMCAxNTozOToyMSArMDAwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5oOgoJICBtZXRhOiBBZGQgYEdzdE5ldENvbnRyb2xNZXNzYWdlTWV0YWAKCSAgR3N0TmV0QWRkcmVzcyBjYW4gYmUgdXNlZCB0byBzdG9yZSBhbmNpbGxhcnkgZGF0YSB3aGljaCB3YXMgcmVjZWl2ZWQgd2l0aAoJICBvciBpcyB0byBiZSBzZW50IGFsb25nc2lkZSB0aGUgYnVmZmVyIGRhdGEuICBXaGVuIHVzZWQgd2l0aCBzb2NrZXQgc2lua3MKCSAgYW5kIHNvdXJjZXMgd2hpY2ggdW5kZXJzdGFuZCB0aGlzIG1ldGEgaXQgYWxsb3dzIHNlbmRpbmcgYW5kIHJlY2VpdmluZwoJICBhbmNpbGxhcnkgZGF0YSBzdWNoIGFzIHVuaXggY3JlZGVudGlhbHMgKFNlZSBgR1VuaXhDcmVkZW50aWFsc01lc3NhZ2VgKQoJICBhbmQgVW5peCBmaWxlIGRlc2NyaXB0aW9ucyAoU2VlIGBHVW5peEZETWVzc2FnZWApLgoJICBUaGlzIHdpbGwgYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcHJvdG9jb2xzIHdoaWNoIHVzZSBmaWxlLWRlc2NyaXB0b3IKCSAgcGFzc2luZyBpbiBwYXlsb2FkZXJzL2RlcGF5bG9hZGVycyB3aXRob3V0IGhhdmluZyB0byByZS1pbXBsZW1lbnQgYWxsIHRoZQoJICBzb2NrZXQgaGFuZGxpbmcgY29kZSBhbHJlYWR5IHByZXNlbnQgaW4gZWxlbWVudHMgc3VjaCBhcyBtdWx0aXNvY2tldHNpbmssCgkgIGV0Yy4gIFRoaXMsIGluIHR1cm4sIHdpbGwgYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgemVyby1jb3B5IHZpZGVvIElQQy4KCSAgVGhpcyBtZXRhIHVzZXMgdGhlIHBsYXRmb3JtIGluZGVwZW5kZW50IGBHU29ja2V0Q29udHJvbE1lc3NhZ2VgIEFQSQoJICBwcm92aWRlZCBieSBHTGliIGFzIGEgcGFydCBvZiBHSU8uICBBcyBhIHJlc3VsdCB0aGlzIG5ldyBtZXRhIGRvZXMgbm90CgkgIHJlcXVpcmUgYW55IG5ldyBkZXBlbmRlbmNpZXMgb3IgYW55IGNvbmRpdGlvbmFsIGNvbXBsaWF0aW9uIGZvcgoJICBwb3J0YWJsaWxpdHksIGFsdGhvdWdoIGl0IGlzIHVubGlrZWx5IHRvIGRvIGFueXRoaW5nIHVzZWZ1bCBvbiBub24tVU5JWAoJICBwbGF0Zm9ybXMuCgoyMDE1LTAzLTE0IDExOjU3OjMzICswMDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgYWxsb2NhdGlvbjogQWxsb3cgYWxsb2NhdGlvbiBwb29sIHdpdGhvdXQgc2l6ZQoJICBUaGlzIGFsbG93IHByb3Bvc2luZyBhIG51bWJlciBvZiBidWZmZXJzIHJlcXVpcmVkIGV2ZW4gaWYgdGhlIHNpemUKCSAgb2YgYnVmZmVyIGlzIHVuZml4ZWQuIFRoaXMgaXMgb2Z0ZW4gdGhlIGNhc2UgZm9yIGVuY29kZWQgZm9ybWF0cy4KCjIwMTUtMDMtMDEgMTM6MTU6NDAgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRG9uJ3Qgc3RvcCB0aGUgcG9vbCBpbiBzZXRfY29uZmlnKCkKCSAgRG9uJ3Qgc3RvcCB0aGUgcG9vbCBpbiBzZXRfY29uZmlnKCkuIEluc3RlYWQsIGxldCB0aGUgY29udHJvbGxpbmcKCSAgZWxlbWVudCBtYW5hZ2UgaXQuIE1vc3Qgb2YgdGhlIHRpbWUsIHdoZW4gYW4gYWN0aXZlIHBvb2wgaXMgYmVpbmcKCSAgY29uZmlndXJlZCBpcyBiZWNhdXNlIHRoZSBjYXBzIGRpZG4ndCBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUzNzcKCjIwMTUtMDMtMTMgMTg6NTM6MTEgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRyYWluIG9uIGFsbG9jYXRpb24gcXVlcnkKCSAgQWxsb3dzIGJ1ZmZlcnMgdG8gYmUgcmVjbGFpbWVkIHdoZW4gY2FwcyBpcyB0byBiZSByZW5lZ290aWF0ZWQgc28KCSAgdGhhdCBidWZmZXJwb29scyBjYW4gYmUgc3RvcHBlZC4gQXMgdGhlIGFsbG9jYXRpb24gcXVlcnkgaXMKCSAgc2VyaWFsaXplZCBhbGwgYnVmZmVycyBoYXZlIGJlZW4gYWxyZWFkeSBkcmFpbmVkIGZyb20gdGhlIHBpcGVsaW5lLAoJICBleGNlcHQgdGhpcyBsYXN0X3NhbXBsZSBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI3NzAKCjIwMTUtMDMtMTMgMTg6MzU6MTQgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHdoZW4gZHJhaW5pbmcsIGRlZXAgY29weSB0aGUgbGFzdCBidWZmZXIgdG8gdW5yZWYgb2xkIG1lbW9yeQoJICBVc2UgZ3N0X2J1ZmZlcl9jb3B5X2RlZXAoKSB0byBmb3JjZSB0aGUgY29weSBvZiB0aGUgdW5kZXJseWluZwoJICBtZW1vcnkgaW5zdGVhZCBvZiBwb3NzaWJseSBkb2luZyBhIHNoYWxsb3cgY29weSBvZiB0aGUgYnVmZmVyCgkgIGFuZCBqdXN0IHJlZmVyZW5jaW5nIHRoZSBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTI4NwoKMjAxNS0wMy0xMyAxODozNTowMSArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGJ1ZmZlcjogYWRkIGdzdF9idWZmZXJfY29weV9kZWVwCgkgIEEgdmFyaWFudCBvZiBnc3RfYnVmZmVyX2NvcHkgdGhhdCBmb3JjZXMgdGhlIHVuZGVybHlpbmcgbWVtb3J5CgkgIHRvIGJlIGNvcGllZC4KCSAgVGhpcyBpcyBhZGRlZCB0byBhdm9pZCBhZGRpbmcgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIGEgR3N0TWVtb3J5CgkgIHRoYXQgbWlnaHQgYmVsb25nIHRvIGEgYnVmZmVycG9vbCB0aGF0IGlzIHRyeWluZyB0byBiZSBkcmFpbmVkLgoJICBUaGUgdXNlIGNhc2UgaXMgd2hlbiB0aGUgYnVmZmVyIGNvcHlpbmcgaXMgZG9uZSB0byByZWxlYXNlIHRoZQoJICBvbGQgYnVmZmVyIGFuZCBhbGwgaXRzIHJlc291cmNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTI4NwoKMjAxNS0wMy0xMyAxNTozMTozMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBVc2UgZ19saXN0X2ZyZWVfZnVsbCgpIGluc3RlYWQgb2YgbWFudWFsbHkgdW5yZWZmaW5nIGFuZCBmcmVlaW5nCgkgIEFsc28gdW5yZWYgdGhlIG1lc3NhZ2VzLCBub3QgdGhlIEdMaXN0IG5vZGVzLgoKMjAxNS0wMy0xMyAxMzo0Mjo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBGaXggYW5vdGhlciBjYXNlIHdoZXJlIHdlIGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoaWxlIHVucmVmZmluZyBhIG1lc3NhZ2UKCjIwMTUtMDMtMTMgMTU6Mjg6NDIgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFVucmVmZXJlbmNpbmcgbWVzc2FnZXMgb3V0c2lkZSB0aGUgbG9jawoJICBTaG91bGRuJ3QgdGFrZSB0aGUgbG9jayB3aGlsZSB1bnJlZmVyZW5jaW5nIG1lc3NhZ2VzLCBiZWNhdXNlIHRoYXQgbWF5IGNhdXNlCgkgIG1vcmUgbWVzc2FnZXMgdG8gYmUgc2VudCwgd2hpY2ggd2lsbCB0cnkgdG8gdGFrZSB0aGUgbG9jayBhbmQgY2F1c2UgdGhlIGFwcCB0bwoJICBoYW5nLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4Nzc3CgoyMDE1LTAyLTIzIDIwOjI3OjMyICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBBZGQgZ3N0X2Jpbl9zeW5jX2NoaWxkcmVuX3N0YXRlcygpCgkgIGdzdF9iaW5fc3luY19jaGlsZHJlbl9zdGF0ZXMoKSB3aWxsIGl0ZXJhdGUgb3ZlciBhbGwgdGhlIGVsZW1lbnRzIG9mIGEgYmluIGFuZAoJICBzeW5jIHRoZWlyIHN0YXRlcyB3aXRoIHRoZSBzdGF0ZSBvZiB0aGUgYmluLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGFkZGluZyBtYW55CgkgIGVsZW1lbnRzIHRvIGEgYmluIGFuZCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byBjYWxsCgkgIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoKSBvbiBlYWNoIGFuZCBldmVyeSBvbmUgb2YgdGhlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTA0MgoKMjAxNS0wMi0wMyAxNjoxMjozMiArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGhhbmRsZSB1bnNpZ25lZCBtb2RpZmllciBmb3IgbG9uZyBsb25nCgkgIE90aGVyd2lzZSwgYW4gdW5zaWduZWQgaW50ZWdlciB3aWxsIGJlIGRpc3BsYXllZCBhcyBhIHNpZ25lZCBvbmUgaWYgd2UKCSAgdXNlIGludGVybmFsIHByaW50LCBpZSBIQVZFX0xPTkdfTE9OR19GT1JNQVQgaXMgbm90IGRlZmluZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYwOTYKCjIwMTUtMDMtMTIgMTQ6Mzk6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSAgc3RyZWFtaWRkZW11eDogUmVzZXQgcGFkIGNvdW50ZXIgYWZ0ZXIgcmVtb3ZpbmcgYWxsIHBhZHMKCjIwMTQtMDMtMDQgMTk6NDA6MDUgKzA5MDAgIEhvb25IZWUgTGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3N0cmVhbWlkZGVtdXguYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbWlkZGVtdXgvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbWlkZGVtdXgvc3RyZWFtaWRkZW11eC1zdHJlYW0uYzoKCSAgc3RyZWFtaWRkZW11eDogQWRkIHN0cmVhbWlkZGVtdXggZWxlbWVudAoJICBEZW11bHRpcGxleCBhIHN0cmVhbSB0byBtdWx0aXBsZSBzb3VyY2UgcGFkcyBiYXNlZCBvbiB0aGUgc3RyZWFtIGlkcyBmcm9tIHRoZQoJICBzdHJlYW0tc3RhcnQgZXZlbnRzLiBUaGlzIGJhc2ljYWxseSByZXZlcnNlcyB0aGUgYmVoYXZpb3VyIG9mIGZ1bm5lbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzYwNQoKMjAxNS0wMy0xMiAxMzoyOTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlCgoyMDE1LTAzLTEyIDEzOjI2OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJpbnRmLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyB1bml0IHRlc3RzIGZvciBvdXIgcHJpbnRmIHN0dWZmCgkgIFRvIHRlc3QgbmV3ICVJMzIgc3VwcG9ydC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDI4MQoKMjAxNS0wMi0xMCAxNzo0MDo0OCArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50ZjogYWRkIHN1cHBvcnQgZm9yICVJMzIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDI4MQoKMjAxNS0wMy0xMiAxMzoxNDo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1vdmUgY2F0ZWdvcnkgbGV2ZWwgdGhyZXNob2xkIGNoZWNrIGludG8gbG9nIGZ1bmN0aW9uIGRpc3BhdGNoZXIKCSAgTWlub3Igb3B0aW1pc2F0aW9uOiBjaGVjayBjYXRlZ29yeSBsb2cgbGV2ZWwgZWFybGllciBpbiB0aGUKCSAgbG9nIGZ1bmN0aW9uIGRpc3BhdGNoZXIgYW5kIG5vdCBvbmx5IGluIHRoZSBkZWZhdWx0IGxvZwoJICBmdW5jdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMwoKMjAxNS0wMy0xMiAxMjo1OTo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZXNldCBzZWdtZW50IHdoZW4gZGVhY3RpdmF0aW5nIHB1bGwgbW9kZSBvciBub3QgcnVubmluZyBpbiBwdWxsIG1vZGUKCSAgV2UgdXNlIHRoZSBzZWdtZW50IGZvcm1hdCB0byBkZXRlY3QgaWYgd2UgcnVuIHRoZSBzdHJlYW1pbmcgdGhyZWFkIG9yIG5vdC4KCSAgV2l0aG91dCByZXNldHRpbmcgd2UgbWlnaHQgYmVsaWV2ZSB3ZSBkbyBzbywgYWx0aG91Z2ggd2Ugb25seSBkaWQgaW4gdGhlIHBhc3QKCSAgYW5kIGFyZSBub3cgcnVubmluZyBpbiBlLmcuIHB1c2ggbW9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTA3MwoKMjAxNS0wMy0wOCAyMDo0MjozOCArMDEwMCAgTWljaGHFgiBExJlic2tpIDxkZWJza2kubWkuemRAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgY2hlY2s6IFVzZSBta3N0ZW1wIGluc3RlYWQgb2YgdGVtcG5hbSBpZiBwb3NzaWJsZQoJICBVc2luZyB0ZW1wbmFtKCkgaXMgZGVwcmVjYXRlZCwgdGhpcyBnaXZlcyB3YXJuaW5nIGFuZCBmYWlscyB0aGUgYnVpbGQKCSAgd2l0aCAtV2Vycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1ODU4CgoyMDE1LTAzLTExIDE2OjM2OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFuIHVwIHRoZSBuZWVkX3ByZXJvbGwgdmFyaWFibGUKCSAgQmFzZWQgb24gcGF0Y2ggZnJvbSBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoJICBEb24ndCBqdXN0IHNldCB0aGUgbmVlZF9wcmVyb2xsIGZsYWcgdG8gVFJVRSBpbiBhbGwgY2FzZXMuIFdoZW4gd2UKCSAgYXJlIGFscmVhZHkgcHJlcm9sbGVkIGl0IG5lZWRzIHRvIGJlIHNldCB0byBGQUxTRSBhbmQgd2hlbiB3ZSBnbyB0bwoJICBSRUFEWSB3ZSBzaG91bGQgbm90IHRvdWNoIGl0LiBXZSBzaG91bGQgb25seSBzZXQgaXQgdG8gVFJVRSBpbiBvdGhlcgoJICBjYXNlcywgbGlrZSB3aGF0IHRoZSBjb2RlIGFib3ZlIGRvZXMuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NjU1CgoyMDE0LTEyLTA1IDE0OjE2OjUyICswOTAwICBob29uaGVlLmxlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IGhhbmRsZSBHQVAgZXZlbnQgdG8gZm9yd2FyZHMgc3RpY2t5IGV2ZW50cyBpbnRvIGRvd25zdHJlYW0KCSAgSWYgbm8gZGF0YSBpcyBjb21pbmcgYW5kIGZ1bm5lbCByZWNlaXZlIEdBUCBldmVudCwgbmVlZCB0byBmb3J3YXJkcyBzdGlja3kgZXZlbnRzCgkgIGludG8gZG93bnN0cmVhbSBpZiBpdCBuZWVkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODIwMgoKMjAxNS0wMy0xMCAxNjo0Mjo0NCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogZHVwbGljYXRlIGNvZGUgYnJhbmNoZXMKCSAgQ0lEICMxMjI2NDQ2CgoyMDE1LTAzLTEwIDA5OjIxOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIEZpeCBkb3VibGUgc2VtaWNvbG9ucwoKMjAxNS0wMi0yMiAxMDoxMjowMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMKCjIwMTUtMDItMjEgMjA6MTM6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYWRkIGEgZ3N0X2Zsb3dfY29tYmluZXJfdXBkYXRlX3BhZF9mbG93KCkgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ1NzIKCSAgQVBJOiBnc3RfZmxvd19jb21iaW5lcl91cGRhdGVfcGFkX2Zsb3coKQoKMjAxNS0wMi0xNSAyMDo1MjoxMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYSBnc3RfZmxvd19jb21iaW5lcl9yZXNldCgpIG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTcyCgkgIEFQSTogZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQoKQoKMjAxNS0wMy0wNiAxMDo1OTo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDE1LTAzLTA1IDE4OjMwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYXZvaWQgbWFsbG9jL2ZyZWUgaWYgbG9nIG9iamVjdCBpcyBOVUxMCgoyMDE1LTAzLTA1IDE3OjU0OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbW92ZSBfX0ZJTEVfXyBwYXRoIHNob3J0ZW5pbmcgaW50byBkZWZhdWx0IGxvZyBoYW5kbGVyCgkgIEluc3RlYWQgb2YgYWx3YXlzIHNob3J0ZW5pbmcgdGhlIF9fRklMRV9fIHBhdGgsIGV2ZW4gaWYgdGhlCgkgIGxvZyBtZXNzYWdlIGlzIG5vdCBhY3R1YWxseSBwcmludGVkLCB3aGljaCBtaWdodCBoYXBwZW4gaWYKCSAgdGhlIGxvZyBsZXZlbCBpcyBhY3RpdmF0ZWQgYnV0IHRoZSBjYXRlZ29yeSBpcyBub3QsIG9ubHkKCSAgc2hvcnRlbiB0aGUgcGF0aCBpZiB3ZSdyZSBhY3R1YWxseSBnb2luZyB0byBvdXRwdXQgaXQgYW5kCgkgIGlmIGl0IGxvb2tzIGxpa2UgaXQgbmVlZHMgc2hvcnRlbmluZy4gTG9nIGhhbmRsZXJzIGhhZCBubwoJICBndWFyYW50ZWUgdGhhdCB0aGV5IHdvdWxkIGdldCBhIG5hbWUgaW5zdGVhZCBvZiBhIHBhdGgKCSAgYW55d2F5IG9uIGFueSBhcmNoaXRlY3R1cmUsIHNvIGl0IHNob3VsZG4ndCBiZSBhIHByb2JsZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTMKCjIwMTUtMDItMjcgMDE6MTY6NTggKzExMDAgIFBldGVyIFVyYmFuZWMgPGdpdC51c2VyQHVyYmFuZWMubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogc2hvcnRlbiBfX0ZJTEVfXyBvbiBhbGwgcGxhdGZvcm1zCgkgIFRoaXMgaXMgdXNlZnVsIG5vdCBvbmx5IGZvciBNU1ZDLCBidXQgYWxzbyB3aXRoIGdjYy9MaW51eAoJICB3aGVuIGRvaW5nIGNyb3NzLWNvbXBpbGF0aW9uIGJ1aWxkcyBhbmQgb3V0LW9mLXRyZWUgYnVpbGRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEzCgoyMDE1LTAzLTA0IDExOjAyOjQxICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkgIGRvY3M6IGNsYXJpZnkgbWluLWxhdGVuY3kgd29yZGluZyBpbiBwYXJ0LWxhdGVuY3kudHh0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQzMzgKCjIwMTUtMDItMjYgMTQ6NDM6MjUgKzAxMDAgIE1hcmNpbiBLb2xueSA8bWFyY2luLmtvbG55QGZseXRyb25pYy5wbD4KCgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiByZW1vdmVkIGxpYnhtbCBpbmNsdWRlIGRpcmVjdGl2ZQoJICBUaGlzIGlzIGEgbGVmdG92ZXIgZnJvbSAwLjEwIGFuZCBub3QgbmVlZGVkIGFueW1vcmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTAKCjIwMTUtMDMtMDMgMTI6NTM6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFNpZ25hbCB0aGUgc2lua3BhZCB0aHJlYWQgaWYgYSBmbG93IGVycm9yIGhhcHBlbmVkCgkgIEl0IG1pZ2h0IHN0aWxsIGJlIHdhaXRpbmcgZm9yIGEgcXVlcnkgdG8gYmUgaGFuZGxlZCwgb3IgdGhlIHF1ZXVlIHRvIGJlY29tZQoJICBlbXB0eSBhZ2FpbiBmb3IgdGhlIG5leHQgaXRlbS4gQWxzbyBpZiBkb3duc3RyZWFtIHJldHVybnMgRkxVU0hJTkcsIGZsdXNoIHRoZQoJICBxdWV1ZSBsaWtlIHdlIGRvIGluIHF1ZXVlIGFuZCBtdWx0aXF1ZXVlLgoKMjAxNS0wMy0wMyAxMjo0ODozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFdha2UgdXAgdGhlIHF1ZXJ5IGZ1bmN0aW9uIG9uIGVycm9ycyBmcm9tIHRoZSBsb29wIGZ1bmN0aW9uCgkgIE90aGVyd2lzZSB3ZSBtaWdodCB3YWl0IGZvcmV2ZXIgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcyB0byBiZSBoYW5kbGVkIGFzIHRoZQoJICBsb29wIGZ1bmN0aW9uIGlzIHN0b3BwZWQgYW5kIGFzIHN1Y2ggd2Ugd2lsbCBuZXZlciBldmVyIGRlcXVldWUgdGhlIHF1ZXJ5IGFuZAoJICBoYW5kbGUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUzMTkKCjIwMTUtMDMtMDIgMjA6MzE6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGltcHJvdmUgd2FybmluZyB3aGVuIGxpbmtpbmcgIGVsZW1lbnRzIHdpdGhvdXQgY29tbW9uIGFuY2VzdG9yCgkgIFRoaXMgY29tZXMgdXAgcXVpdGUgYSBsb3QgYW5kIGl0J3MgYSBjb21tb24gbWlzdGFrZSwgc28gbGV0J3MKCSAgdHJ5IHRvIGltcHJvdmUgdGhlIHdhcm5pbmcgbWVzc2FnZSBhIGxpdHRsZS4KCjIwMTUtMDItMjcgMDA6MzM6MjcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBEcm9wIGN1c3RvbSBsYXRlbmN5IHF1ZXJ5IGhhbmRsaW5nCgkgIFRoZSBkZWZhdWx0IGxhdGVuY3kgcXVlcnkgaGFuZGxlciBub3cgaW1wbGVtZW50cyB0aGlzIGxvZ2ljCgoyMDE1LTAyLTI2IDE1OjU3OjIwICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuc2luc3RhbGxlZDogQWRkIGdlcy1sYXVuY2ggbWFudWFscyBwYXRoIHRvIE1BTlBBVEguCgoyMDE1LTAyLTI2IDEzOjA4OjQ4ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBmYWlsIGxhdGVuY3kgcXVlcnkgb24gdW5saW5rZWQgcGFkcwoJICBBIHNpbmdsZSB1bmxpbmtlZCBwYWQgY2FuIG1ha2UgdGhlIGxhdGVuY3kgcXVlcnkgZmFpbCBhY3Jvc3MgdGhlCgkgIHBpcGVsaW5lLCB3aGljaCBpcyBwcm9iYWJseSBub3QgZGVzaXJhYmxlLiBJbnN0ZWFkLCB3ZSByZXR1cm4gYSBkZWZhdWx0CgkgIGFueXRoaW5nIGdvZXMgdmFsdWUuCgkgIFBlcmhhcHMgd2Ugc2hvdWxkIGFsc28gYmUgZW1pdHRpbmcgYSBnc3RfbWVzc2FnZV9uZXdfbGF0ZW5jeSgpIHdoZW4gYQoJICBQTEFZSU5HIGVsZW1lbnQgaGFzIG9uZSBvZiBpdHMgcGFkcyBsaW5rZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxOTcKCjIwMTQtMTAtMjIgMTY6NDM6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IGVtaXQgZXJyb3JzIG9uIEVPUyBpZiB3ZSBzYXcgR0FQIGV2ZW50cwoJICBJZiB3ZSBzYXcgR0FQIGV2ZW50cyAobWVhbmluZyB0aGUgc3RyZWFtcyBpcyBhZHZhbmNpbmcpIGJlZm9yZSB3ZSBnZXQKCSAgRU9TLCB3ZSBzaG91bGQgbm90IHBvc3QgYW4gRVJST1IsIHNpbmNlIGl0IGlzIG5vdCBmYXRhbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTE0MwoKMjAxNS0wMi0yNSAwODoyNjoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBnc3R2YWx1ZTogTWFrZSBzdXJlIEdTVF9GT1VSQ0NfQVJHUyBwcm9kdWNlcyBwcmludGFibGUgY2hhcmFjdGVycwoJICBTb21lIHN5c3RlbXMgd2lsbCBjcmFzaCBpZiB3ZSB1c2Ugbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIGluIHByaW50L2RlYnVnCgkgIHN0YXRlbWVudHMuCgkgIE1ha2Ugc3VyZSB0aGF0IEdTVF9GT1VSQ0NfQVJHUyBuZXZlciBkb2VzIHRoYXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTE0NAoKMjAxNS0wMi0yNSAxNjoxMTowNiArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogcmVtb3ZlIGluY29ycmVjdCBGaXhtZSBjb21tZW50CgkgIElmIHRoZSBjaGVja3Mgd2VyZSBjaGFuZ2VkIHRvIHVzaW5nIGdfcmV0dXJuX2lmX2ZhaWwoKSB0aGUgR1NUX0RFQlVHIGxpbmVzCgkgIGFib3V0IHRoZSBzcGVjaWZpYyBmYWlsdXJlIHdvdWxkIGJlIGxvc3QuCgoyMDE1LTAyLTI1IDE2OjAyOjM5ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiByZW1vdmUgb2Jzb2xldGUgRml4bWUgY29tbWVudAoJICBnc3RfcGFkX2xpbmtfZmlsdGVyZWQoKSBpcyB2ZXJ5IGxvbmcgZ29uZSBhbmQgY3VycmVudAoJICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQoKSBkb2Vzbid0IGFwcGx5IHRvIHRoaXMgRml4bWUgY29tbWVudC4KCjIwMTUtMDItMjQgMjE6NTg6MDAgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgYWRhcHRpdmVkZW11eCBwYXRocyBmcm9tIC1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTEyMgoKMjAxNS0wMi0yNCAxODoxNDo0NyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBkb2NzOiByZW1vdmUgZGVhZCBsaW5rCgkgIFJlbW92ZSBkZWFkIGxpbmsgdG8gd2lraSBwYWdlIGZvciBTdWJtaXR0aW5nUGF0Y2hlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMzExCgoyMDE1LTAyLTI0IDE0OjA3OjU0ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBGaXggaW5zdGFsbCBvZiBjb21wbGV0aW9uLWhlbHBlci4KCSAgQnkgYXBwbHlpbmcgdGhlIHN1cHBsaWVkIHRyYW5zZm9ybWF0aW9uIHRvIHRoZSBwcm9ncmFtIG5hbWUsCgkgIGZvciBleGFtcGxlIC0tcHJvZ3JhbS1wcmVmaXguCgoyMDE1LTAyLTIzIDE2OjM5OjQzIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBjb21wbGV0aW9uLWhlbHBlcjogQWRkIG1pc3NpbmcgREVTVERJUgoJICBPdGhlcndpc2UgZG9pbmcgIm1ha2UgaW5zdGFsbCBERVNURElSIiB3aWxsIHRyeSB0byB3cml0ZSB0bwoJICAvdXNyL3NoYXJlLy4uLgoKMjAxNS0wMi0yMyAyMToxNzoxNiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtY29tcGxldGlvbi1oZWxwZXIuYzoKCSAgY29tcGxldGlvbi1oZWxwZXI6IEFkZCBmaWx0ZXJpbmcgYnkga2xhc3MgYW5kIHNpbmsgY2Fwcy4KCjIwMTUtMDItMjEgMTc6MTM6MjYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCByZXR1cm5pbmcgZG93bnN0cmVhbSBHU1RfRkxPV19FT1MgZnJvbSBwcmV2aW91cyBzZWdtZW50IHRvIGN1cnJlbnQgdXBzdHJlYW0gc2VnbWVudAoKMjAxNS0wMi0yMiAxMDowMjoyNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBmaXggZG9jdW1lbnRhdGlvbiBjb21tZW50IHR5cG8KCjIwMTUtMDItMjIgMTA6MDE6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZHJhaW4gc2VnbWVudCB1cG9uIFNFR01FTlRfRE9ORSB0byBlbnN1cmUgcHJvcGVyIGV2ZW50IG9yZGVyCgoyMDE1LTAyLTIyIDEwOjAxOjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsZWFuIHVwIHNvbWUgYm9ndXMgY29tbWVudGVkIGNvZGUKCjIwMTUtMDItMjMgMTk6MTA6MDggKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGNvbXBsZXRpb24taGVscGVyOiBBcHBlbmQgJChFWEVFWFQpIHRvIHRoZSBuYW1lIG9mIHRoZSBtb3ZlZCBmaWxlLgoJICBGaXhlcyB0aGUgYnVpbGQgb24gV2luZG93cwoJICAoaHR0cHM6Ly9jaS5nc3RyZWFtZXIubmV0L2pvYi9jZXJiZXJvLWNyb3NzLW1pbmd3MzIvMTc0Mi9jb25zb2xlKQoKMjAxNS0wMi0yMyAxNzoyMzozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBGaXggZGlzdGNoZWNrCgkgIERpc2FibGUgYmFzaCBjb21wbGV0aW9uIGR1cmluZyBkaXN0Y2hlY2tpbmcgb3RoZXJ3aXNlCgkgIGl0IG1heSB0cnkgdG8gaW5zdGFsbCBpbnRvIGEgc3lzdGVtIHBhdGggYW5kIGZhaWwuCgoyMDE1LTAyLTIzIDE3OjE2OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIERpc3QgbmV3IGRhdGEgZGlyZWN0b3J5CgkgIEZpeGVzICdtYWtlIGRpc3QnCgoyMDE1LTAyLTIwIDIyOjA0OjIyICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkYXRhL01ha2VmaWxlLmFtOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdDoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtY29tcGxldGlvbi1oZWxwZXIuYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYmFzaC1jb21wbGV0aW9uOiBJbXBsZW1lbnQgaW4gYSBkaWZmZXJlbnQgd2F5LgoJICArIEdldHMgaW5zdGFsbGVkCgkgICsgVXNlcyBhIGhlbHBlciB0b29sLCBnc3QtY29tcGxldGlvbi1oZWxwZXIsIGluc3RhbGxlZCBpbgoJICBiYXNoLWNvbXBsZXRpb25zL2hlbHBlcnMuCgkgICsgQWRkcyBhIGNvbW1vbiBzY3JpcHQgdGhhdCBvdGhlciB0b29scyBjYW4gc291cmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3CgoyMDE1LTAyLTIzIDEyOjA4OjQ5ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkgIEdzdERldmljZU1vbml0b3I6IGtlZXAgYWxwaGFiZXRpY2FsIG9yZGVyCgoyMDE1LTAyLTIwIDE2OjIyOjIzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBzZXQgcGFkcyBuZWVkLXBhcmVudCBmbGFnIHRvIGZhbHNlIHdoZW4gcmVtb3ZpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMTkxMTU1NGNmZjJjNGExMTc3MmI1NDFhODIxNWE4MGM3MjhiMTA5Ny4KCSAgVGhpcyBicmVha3MgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgR1NUX1BBRF9GTEFHX05FRURfUEFSRU5ULCB0aGUgcmVhc29uIGZvciB0aGlzCgkgIGZsYWcgaXMgdGhhdCBpZiBhIHBhZCBpcyByZW1vdmVkIGZyb20gYSBydW5uaW5nIGVsZW1lbnQsIHlvdSBkb24ndCB3YW50CgkgIGZ1bmN0aW9ucyAoc3VjaCBhcyBjaGFpbiBvciBldmVudCkgdG8gYmUgY2FsbGVkIG9uIHRoZSBwYWQgd2l0aG91dCBhIHBhcmVudCBzZXQuCgkgIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcmVtb3ZlIGEgcmVxdWVzdCBvciBzb21ldGltZXMgcGFkIGZyb20gYSBydW5uaW5nIGVsZW1lbnQuCgkgIEkgZG9uJ3Qgc2VlIHRoZSBjb2RlIHRoYXQgY2F1c2VkIHRoaXMgaW4gdHNkZW11eCwgYnV0IGlmIGl0IG5lZWRzIHRvIHVuc2V0CgkgIHRoZSBmbGFnIG9uIHJlbW92ZSwgaXQgc2hvdWxkIGRvIGl0IGl0c2VsZiBhbmQgdGhlbiBtYWtlIHN1cmUgdGhhdCB0aGUgcGFyZW50CgkgIGV4aXN0cyBpbiBhbnkgcGFkIGZ1bmN0aW9uLgoKMjAxNS0wMi0xOSAxMjoxNzoxNSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGNhc3QgZWxlbWVudCBpbiBBU1NFUlRfU0VUX1NUQVRFLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0Nzc3CgoyMDE1LTAyLTE5IDAxOjE2OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSBhIHNlcGFyYXRlIHF1ZXJ5IGZvciB1cHN0cmVhbSBwYWRzIGFuZCBsZXQgaXQgZmFpbCBpZiBvbmUgdXBzdHJlYW0gcXVlcnkgZmFpbHMKCjIwMTUtMDItMTkgMDE6MTI6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSWYgdGhlIGxhdGVuY3kgcXVlcnkgZmFpbHMgZm9yIG9uZSBvZiB0aGUgcGFkcywgaXQgZmFpbHMgb3ZlcmFsbAoKMjAxNS0wMi0xOCAxMTowNToxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFJlbW92ZSB1bnVzZWQgYm9vbGVhbiBwYXJhbWV0ZXIgZnJvbSBpbnRlcm5hbCBmdW5jdGlvbnMKCjIwMTUtMDItMTcgMTI6MTE6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogQWRkIHVuaXQgdGVzdCBmb3IgYnVmZmVyIGxpc3QgYW5kIHRpbWUgbGV2ZWwgaGFuZGxpbmcKCjIwMTUtMDItMTcgMTE6NDQ6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBBZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGxpc3RzCgoyMDE1LTAyLTE3IDExOjQxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBDb3VudCB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgaW4gYSBidWZmZXIgbGlzdCBmb3IgdXBkYXRpbmcgdGhlIGN1cnJlbnQgbGV2ZWxzCgkgIGluc3RlYWQgb2YganVzdCBhc3N1bWluZyBvbmUgYnVmZmVyLgoKMjAxNS0wMi0xNyAyMDo0NzoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IHJldml2ZSBhc3luYyBkZWxpdmVyeSBtZXNzYWdlIGJlZm9yZSBidXMgdGhyZWFkIGNhbiBydW4gdW5yZWYKCSAgUmV2aXZlIG1lc3NhZ2UgaW4gZGlzcG9zZSBoYW5kbGVyIGJlZm9yZSB3ZSBzaWduYWwgdGhlIGJ1cyB0aHJlYWQsCgkgIG90aGVyd2lzZSB0aGUgYnVzIHRocmVhZCBtaWdodCBiZSB3b2tlbiB1cCBhbmQgdW5yZWYgdGhlIG1lc3NhZ2UKCSAgYmVmb3JlIHdlIGhhZCBhIGNoYW5jZSB0byByZXZpdmUgaXQgeWV0LgoKMjAxNS0wMi0xNiAyMzowMjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGJ1czogYWRkIHVuaXQgdGVzdCBmb3IgYXN5bmMgbWVzc2FnZSBkZWxpdmVyeQoKMjAxNS0wMi0xNiAyMjozOTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2UsIGJ1czogZml4IGFzeW5jIG1lc3NhZ2UgZGVsaXZlcnkKCSAgQXN5bmMgbWVzc2FnZSBkZWxpdmVyeSAod2hlcmUgdGhlIHBvc3RpbmcgdGhyZWFkIGdldHMgYmxvY2tlZAoJICB1bnRpbCB0aGUgbWVzc2FnZSBoYXMgYmVlbiBwcm9jZXNzZWQgYW5kL29yIGZyZWVkKSB3YXMgcHJldHR5CgkgIG11Y2ggY29tcGxldGVseSBicm9rZW4uCgkgIEZvciBvbmUsIGRvbid0IHVzZSBHTXV0ZXggaW1wbGVtZW50YXRpb24gZGV0YWlscyB0byBjaGVjawoJICB3aGV0aGVyIGEgbXV0ZXggaGFzIGJlZW4gaW5pdGlhbGl6ZWQgb3Igbm90LCBlc3AuIG5vdAoJICBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHRoYXQgZG9uJ3QgaG9sZCB0cnVlIGFueSBtb3JlIHdpdGgKCSAgbmV3ZXIgR0xpYiB2ZXJzaW9ucyB3aGVyZSBhdG9taWMgb3BzIGFuZCBmdXRleGVzIGFyZSB1c2VkCgkgIChzcG90dGVkIGJ5IEpvc2VwIFRvcnJhcykuIFRoaXMgbGVkIHRvIGFzeW5jIG1lc3NhZ2UKCSAgZGVsaXZlcnkgbm8gbG9uZ2VyIGJsb2NraW5nIHdpdGggbmV3ZXIgR0xpYiB2ZXJzaW9ucyBvbgoJICBMaW51eC4KCSAgU2Vjb25kbHksIGFmdGVyIGFzeW5jIGRlbGl2ZXJ5IGRvbid0IGZyZWUgbXV0ZXgvR0NvbmQKCSAgZW1iZWRkZWQgaW5zaWRlIHRoZSBqdXN0LWZyZWVkIG1lc3NhZ2Ugc3RydWN0dXJlLgoJICBVc2UgYSBuZXcgKHByaXZhdGUpIG1pbmkgb2JqZWN0IGZsYWcgdG8gc2lnbmFsIEdzdE1lc3NhZ2UKCSAgdGhhdCB0aGUgbWVzc2FnZSBiZWluZyBmcmVlZCBpcyBwYXJ0IG9mIGFuIGFzeW5jIGRlbGl2ZXJ5CgkgIG9uIHRoZSBidXMgc28gdGhhdCB0aGUgZGlzcG9zZSBoYW5kbGVyIGNhbiBrZWVwIHRoZSBtZXNzYWdlCgkgIGFsaXZlIGFuZCB0aGUgYnVzIGNhbiBmcmVlIGl0IG9uY2UgaXQncyBkb25lIGNsZWFuaW5nIHVwCgkgIHN0dWZmLgoKMjAxNS0wMi0xNiAxOToyNDo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG5pY2VyIGJ1ZmZlciBvZmZzZXQgcHJpbnRpbmcgd2hlbiBvZmZzZXRzIGFyZSBub3Qgc2V0CgkgIFByaW50IHVuc2V0IG9mZnNldHMgYXMgJ25vbmUnIGluc3RlYWQgb2YgaHVtb25nb3VzIG51bWJlcnMsCgkgIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDE1LTAyLTE2IDExOjM1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgaW5pdGlhbGl6ZSBHVmFsdWUgdG8gYSB0eXBlIG9uY2UsIG5vdCBvbiBldmVyeSByZXRyeQoJICBPdGhlcndpc2Ugd2UnbGwgZ2V0IHdhcm5pbmdzIGxpa2UgdGhpczoKCSAgY2Fubm90IGluaXRpYWxpemUgR1ZhbHVlIHdpdGggdHlwZSAnZ2Jvb2xlYW4nLCB0aGUgdmFsdWUgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZCBhcyAnZ2Jvb2xlYW4nCgoyMDE1LTAyLTE0IDEyOjE1OjAzICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBjaGVjayB1cmkgYmVmb3JlIHVzaW5nIGl0IGluIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZF9pbnRlcm5hbAoJICBJZiBhbiBlbGVtZW50IGltcGxlbWVudHMgd3JvbmdseSB0aGUgVVJJIHF1ZXJ5IGFuZCBzZXQgdGhlIHVyaSB0byBOVUxMIGFuZCBpZgoJICB0aGUgZWxlbWVudCBjYWxscyBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWQgYXQgc29tZSBwb2ludCwgaXQgd2lsbCBsZWFkIHRvIGNyYXNoCgkgIGFzIHRoZSB1cmkgaXMgbm90IHN1cHBvc2VkIHRvIGJlIE5VTEwgaW4gdGhlIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZF9pbnRlcm5hbAoJICBmdW5jdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDUyMAoKMjAxNS0wMi0xMyAxOTo0MzoyNCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogRG8gbm90IHdyb25nbHkgc2VuZCB2YWx1ZS1yZW1vdmVkCgkgIEFuZCBhdm9pZCBmcmVlaW5nIHNvbWV0aGluZyB3ZSBkbyBub3Qgb3duCgoyMDE1LTAyLTA0IDE1OjA2OjE3ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBTZXQgR1NUX1ZBTElEQVRFX1BMVUdJTl9QQVRICgoyMDE1LTAyLTEyIDEzOjM0OjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGRvY3VtZW50YXRpb24gYW5kIGRlYnVnIG1lc3NhZ2UgYWZ0ZXIgbGF0ZW5jeSB1cGRhdGVzCgkgIENoYW5nZXMgZG9jcyBhbmQgbWVzc2FnZSBhY2NvcmRpbmcgdG8gbGF0ZW5jeSBoYW5kbGluZyBmaXgKCjIwMTUtMDItMTIgMTQ6NTA6MTUgKzAwMDAgIEZyw6lkw6lyaWMgV2FuZyA8ZnJlZC53YW5nQGZyZWUuZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiB1c2UgZ19hc2NpaV9zdHJ0b3VsbCgpIHRvIGNvbnZlcnQgc2l6ZSBzdHJpbmcgaW4gdXJpCgkgIHNzY2FuZigpIGRvZXNuJ3QgaGFuZGxlIEdfR1VJTlQ2NF9GT1JNQVQgd2VsbCBvbiBtaW5ndzY0IGl0CgkgIGFwcGVhcnMsIGxlYWRpbmcgdG8gY29tcGlsZXIgd2FybmluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQwMzQKCjIwMTUtMDItMTIgMTQ6MDM6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKCkgY2FuIHJldHVybiBOVUxMIGlmIHRoZXJlIGFyZSBub25lCgoyMDE1LTAyLTEyIDE0OjAzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJldHVybiBOVUxMIGluc3RlYWQgb2YgRkFMU0UgZm9yIHBvaW50ZXJzCgoyMDE1LTAyLTEyIDEzOjU1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEltcGxlbWVudCBtb3JlIHVzZWZ1bCBkZWZhdWx0IGhhbmRsaW5nIGZvciB0aGUgTEFURU5DWSBxdWVyeQoJICBCZWZvcmUgd2UganVzdCB0b29rIHRoZSB2YWx1ZXMgZnJvbSB0aGUgZmlyc3QgcGFkIHRoYXQgc3VjY2VkZWQgdGhlIHF1ZXJ5LAoJICBub3cgd2UgYWNjdW11bGF0ZSB0aGUgcmVzdWx0cyBvZiBldmVyeSBzaW5rcGFkIHByb3Blcmx5IGFuZCByZXR1cm4gdGhhdAoJICByZXN1bHQuCgoyMDE1LTAyLTEyIDExOjI2OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSAgZGVzaWduL3BhcnQtbGF0ZW5jeTogTWlub3IgbG9naWMgZml4CgkgIFRoZSBtYXhpbXVtIGxhdGVuY3kgd2lsbCBiZSB0aGUgZWxlbWVudCdzIG1pbmltdW0gbGF0ZW5jeSBvciBiaWdnZXIsCgkgIG5vdCBiaWdnZXIgdGhhbiB0aGUgZWxlbWVudCdzIG1pbmltdW0gbGF0ZW5jeSBvciBiaWdnZXIuCgoyMDE1LTAyLTExIDEzOjQxOjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgSW1wcm92ZSBhbmQgZml4IExBVEVOQ1kgcXVlcnkgaGFuZGxpbmcKCSAgVGhpcyBub3cgZm9sbG93cyB0aGUgZGVzaWduIGRvY3MgZXZlcnl3aGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDEwNgoKMjAxNS0wMi0xMSAxMjoyMDozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkgIGRlc2lnbi9wYXJ0LWxhdGVuY3k6IEFkZCBtb3JlIGRldGFpbHMgYWJvdXQgbWluL21heCBsYXRlbmN5IGhhbmRsaW5nCgkgIFRoZXNlIGRvY3MgbWlzc2VkIG1hbnkgZGV0YWlscyB0aGF0IHdlcmUgbm90IG9idmlvdXMgYW5kIGJlY2F1c2Ugb2YgdGhhdAoJICBoYW5kbGVkIGluIGEgZmV3IGRpZmZlcmVudCwgaW5jb21wYXRpYmxlIHdheXMgaW4gZGlmZmVyZW50IGVsZW1lbnRzIGFuZCBiYXNlCgkgIGNsYXNzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQxMDYKCjIwMTUtMDItMDcgMDU6MTY6MjMgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIHRlc3RzOiBGaXggY2xvY2sgcmVncmVzc2lvbiB0ZXN0CgkgIEZpeCB1cCB0aGUgdmFsdWVzIHRoZSB0ZXN0IGlzIGNoZWNraW5nIGZvciBub3cgdGhhdAoJICB0aGUgY2xvY2sgcmVncmVzc2lvbiByZXR1cm5zIHBhcmFtZXRlcnMgc3RhcnRpbmcgZnJvbQoJICB0aGUgZW5kIG9mIHRoZSByZWdyZXNzaW9uIHJhbmdlLgoKMjAxNS0wMi0wNyAwNDoyMjoyMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IERvbid0IHVwZGF0ZSB0aGUgY2xvY2sgd2hlbiBpdCBkZXN5bmNoCgkgIEFkZCBhIGhvbGQgb2ZmIHdoZW4gdGhlIGNsb2NrIGNhbGlicmF0aW9uIHN1ZGRlbmx5IGxvc2VzIHN5bmNoLAoJICBhcyBpdCBtYXkgYmUgYSBnbGl0Y2gsIGJ1dCBhbHNvIG1ha2Ugc3VyZSB3ZSB1cGRhdGUgaWYgaXQgc3RheXMKCSAgZGVzeW5jaGVkIGZvciBtb3JlIHRoYW4gYSBmZXcgc2Vjb25kcwoKMjAxNS0wMi0wNiAwNjowNzo0MyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IE1ha2UgdGhlIFJUVCBhdmVyYWdlIGlnbm9yZSBsYXJnZSB2YWx1ZXMgbW9yZSBmb3JjZWZ1bGx5LgoJICBTbW9vdGggbGFyZ2VyIFJUVHMgYSBsaXR0bGUgaGFyZGVyLCBzbyBleGNlc3NpdmVseSBsYXJnZSB2YWx1ZXMKCSAgcGVydHVyYiB0aGUgYXZlcmFnZSBhIGJpdCBsZXNzLCBhbmQgdGhlcmVmb3JlIGdldCBmaWx0ZXJlZCBvdXQKCSAgbW9yZSBzdHJvbmdseQoKMjAxNS0wMi0wNSAyMjo1NTozOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2stbGlucmVnLmM6CgkgIGNsb2NrOiBNYWtlIGxpbmVhciByZWdyZXNzaW9uIHgveSBiYXNlIHN0YXJ0IGZyb20gbWF4aW11bSBvYnNlcnZhdGlvbi4KCSAgUHJvamVjdCB0aGUgcmVzdWx0cyBvZiB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gdG8gdGhlIGVuZCBvZiB0aGUKCSAgcmVncmVzc2lvbiByYW5nZSwgc28gdGhleSdyZSBtb3JlIGRpcmVjdGx5IGNvbXBhcmFibGUgdG8gcmVzdWx0cwoJICBnb2luZyBmb3J3YXJkCgoyMDE1LTAyLTA1IDEzOjQ5OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCAib2Zmc2V0IiBwcm9wZXJ0eSB0byBnbyB3aXRoIGdzdF9wYWRfc2V0X29mZnNldCgpCgkgIFNvIHdlIGNhbiBzZXQgdGhlIG9mZnNldCB2aWEgZ3N0LWxhdW5jaC4KCjIwMTUtMDItMDIgMDg6MjI6NDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYWRkIG1vcmUgZGV0YWlsIHRvIGxvZ2dpbmcgd2hlbiBub3QgbG9hZGluZyBhIHBsdWdpbgoJICBJbXByb3ZlIHRoZSBsb2cgbWVzc2FnZXMgYW5kIGFkZCBlLmcgdGhlIHZlcnNpb24gbnVtYmVyIHdlIGNoZWNrZWQuCgoyMDE1LTAyLTAyIDE3OjM3OjQ0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggYSB0eXBvIGluIGEgZG9jc3RyaW5nLgoKMjAxNS0wMi0wMSAxNDoyMzoyNiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBidWlsZDogQ2hlY2sgdGhhdCBfTVNDX1ZFUiBtYWNybyBpcyBkZWZpbmVkCgoyMDE1LTAyLTAxIDAzOjM5OjAzICswMjAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBBZGQgdGhyZWFkIG5hbWUgc3VwcG9ydCBvbiBPUyBYIGFuZCBpT1MKCjIwMTUtMDEtMjkgMTY6Mzc6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2stbGlucmVnLmM6CgkgIGNsb2NrOiBEb24ndCB1c2UgaW52YWxpZCBvYmplY3RzIGZvciBHU1RfREVCVUdfT0JKRUNUKCkKCSAgTm90IHN1cmUgd2hhdCAiY2xvY2siIGFjdHVhbGx5IGlzIGhlcmUsIGl0IG11c3QgYmUgc29tZXRoaW5nIGRlZmluZWQgYnkgb25lIG9mCgkgIHRoZSBoZWFkZXJzIHRoYXQgYXJlIGluY2x1ZGVkLgoKMjAxNS0wMS0yOSAxMjoxMDoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBEb2N1bWVudCB0aGF0IGdzdF9idWZmZXJfY29weV9yZWdpb24oKSBhY2NlcHRzIC0xIGFzIHNpemUgdG8gY29weSB1bnRpbCB0aGUgZW5kCgkgIEl0J3MganVzdCBhIHdyYXBwZXIgYXJvdW5kIGdzdF9idWZmZXJfY29weV9pbnRvKCkgYWZ0ZXIgYWxsLgoKMjAxNC0xMi0wOSAxNjoyODo1NiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBBZGQgbmV3IHNraXAgZmxhZ3MgZm9yIGNsYXJpZnlpbmcgdHJpY2sgbW9kZSBwbGF5YmFjay4KCSAgQWRkIEdTVF9TRUVLX0ZMQUdfVFJJQ0tNT0RFX0tFWV9VTklUUyBhbmQKCSAgR1NUX1NFRUtfRkxBR19UUklDS01PREVfTk9fQVVESU8sIGFuZCByZW5hbWUgR1NUX1NFRUtfRkxBR19TS0lQCgkgIHRvIEdTVF9TRUVLX0ZMQUdfVFJJQ0tNT0RFICh3aXRoIGJhY2t3YXJkcyBjb21wYXQgZGVmaW5lKS4KCSAgRG8gdGhlIHNhbWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIFNFR01FTlQgZmxhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU2NjYKCjIwMTUtMDEtMjMgMDg6NTk6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZml4IGFub3RoZXIgdHlwbyBpbiB0aGUgZG9jcwoKMjAxNS0wMS0yMiAyMzoxMDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBpbmRlbnRpb24KCjIwMTUtMDEtMjEgMTQ6MTA6MDIgKzAwMDAgIERhdmlkIFdhcmluZyA8ZGF2aWQud2FyaW5nQHJkLmJiYy5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggbmV3IFVSSSBwYXJzaW5nIHRlc3RzIGJhc2VkIG9uIEdOZXQncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMTk1CgoyMDE1LTAxLTIxIDE0OjA5OjQ1ICswMDAwICBEYXZpZCBXYXJpbmcgPGRhdmlkLndhcmluZ0ByZC5iYmMuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IHBhcnNpbmcgaXNzdWVzCgkgIE1ha2UgaG9zdCBJUHMgaW4gc3F1YXJlIGJyYWNrZXRzIHN0b3JlIG9ubHkgdGhlIElQLCBpLmUuIHN0cmlwIHRoZSBicmFja2V0cy4KCSAgU3RyaXAgbGVhZGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW4gVVJJcy4KCSAgRmFpbCBwYXJzaW5nIHdoZW4gaG9zdCBwYXJ0IGRvZXMgbm90IG1hdGNoIGFueSB2YWxpZCBmb3JtYXRzIGZyb20gUkZDMzk4Ni4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzE5NQoKMjAxNS0wMS0xOSAxOToxNTozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBBZGQgcGFyc2luZyB1bml0IHRlc3QgYmFzZWQgb24gR05ldCdzCgkgIFBsdXMgc29tZSBuZXcgVVJJcyB0byBwYXJzZS4KCSAgaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9hcmNoaXZlL2duZXQvcGxhaW4vdGVzdHMvY2hlY2svZ25ldC9nbmV0dXJpLmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzE5NQoKMjAxNS0wMS0yMiAxMToyOToxOCArMDEwMCAgSGVpbnJpY2ggRmluayA8aGZpbmtAdG9vbHNvbmFpci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRml4IGRvYyBvZiBHU1RfQ0hFQ0tTIGFuZCBHU1RfQ0hFQ0tTX0lHTk9SRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMzM1CgoyMDE1LTAxLTIxIDE4OjA3OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBBZGQgX2ZhaWxfdW5sZXNzKCkgY29tcGF0aWJpbGl0eSBmdW5jdGlvbiBhcm91bmQgX2NrX2Fzc2VydF9mYWlsZWQoKQoJICBXZSBleHBvcnRlZCB0aGlzIGluIDwgMS41IGFuZCBpdCB3YXMgYXV0b21hdGljYWxseSB1c2VkIGJ5IG1hbnkgbWFjcm9zCgkgIGZyb20gdGhlIGhlYWRlci4gS2VlcCBpdCBleHBvcnRlZCBmb3Igbm93LgoKMjAxNS0wMS0yMSAxNDoxMjoyMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBJbmxpbmUgYXBwbHlfcGFkX29mZnNldCgpCgkgIEF2b2lkIGRvaW5nIGEgZnVuY3Rpb24gY2FsbCBmb3Igc29tZXRoaW5nIHdoaWNoIHdpbGwgbW9zdGx5IGJlIHVudXNlZAoKMjAxNS0wMS0yMSAxNDoxMDowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggZGVidWcgbWVzc2FnZQoKMjAxNS0wMS0yMSAxMTo0NTo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggUFJPQkVfTk9fREFUQSBtYWNybwoJICBUaGUgcHJvYmxlbSB3YXMgdGhhdCB0aGUgbWFjcm8gd2FzIGFsd2F5cyB1c2VkIHdpdGggJ3JldCcgYXMgdGhlIGRlZmF1bHR2YWwKCSAgYXJndW1lbnQuCgkgIFRoaXMgd291bGQgcmVzdWx0IGluIHRoZSBtYWNybyBldmVudHVhbGx5IGV4cGFuZGluZyB0bwoJICBpZiAoR19VTkxJS0VMWSAocmV0ICE9IHJldCAmJiByZXQgIT0gR1NUX0ZMT1dfT0spKQoJICAuLi4gcmV0ICE9IHJldCB3aWxsIGFsd2F5cyBmYWlsLCBhbmQgdGhlcmVmb3JlIHdlJ2QgbmV2ZXIgY2FsbCB0aGUKCSAgZm9sbG93aW5nIGxpbmUuCgkgIEluc3RlYWQgb2YgdGhhdCwgc3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIGxvY2FsbHkgZm9yIGNvbXBhcmlzaW9uCgoyMDE1LTAxLTIxIDIyOjQ0OjU5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRml4IGRvY3MgdHlwby4gQ2xvY2sgYnVzIG1lc3NhZ2VzIGFyZSBHU1RfTUVTU0FHRV9FTEVNRU5UCgoyMDE1LTAxLTE1IDIyOjMyOjI4ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogSW1wbGVtZW50IHJhdGUgbGltaXRzIGZvciBwb2xsaW5nIGFuZCBmaXggdXAgc2tldyBsaW1pdHMKCSAgQWRkIHRoZSBtaW5pbXVtLXVwZGF0ZS1pbnRlcnZhbCBwcm9wZXJ0eSB0byB0aGUgY2xvY2ssIHdpdGggYSBkZWZhdWx0CgkgIG9mIDUwbXMgYW5kIGRvbid0IHNlbmQgcG9sbGluZyByZXF1ZXN0cyBmYXN0ZXIgdGhhbiB0aGF0LiBUaGF0IGhlbHBzIHRvCgkgIGVuc3VyZSB3ZSBzcHJlYWQgdGhlIGluaXRpYWwgb2JzZXJ2YXRpb25zIG91dCBhIGxpdHRsZSAtIHN0YXJ0dXAgdGFrZXMKCSAgYSBsaXR0bGUgbG9uZ2VyLCBidXQgdHJhY2tpbmcgaXMgbW9yZSBzdGFibGUuCgkgIE1vdmUgdGhlIGRpc2NvbnQgc2tldyBsaW1pdGluZyBjb2RlIGluc2lkZSBhbiBpZiBzdGF0ZW1lbnQsIHNvIHRoYXQKCSAgaXQncyBvbmx5IGRvbmUgd2hlbiB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gc3VjY2VlZHMgYW5kIHRoZSBjbG9jawoJICBwYXJhbWV0ZXJzIG1pZ2h0IGFjdHVhbGx5IGNoYW5nZS4KCjIwMTUtMDEtMTUgMTA6MDU6MzIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNsb2NrLWxpbnJlZy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBJbXByb3ZlIHNsYXZpbmcgcmVncmVzc2lvbi4KCSAgQWRkIGRvbWFpbiBjaGVja3MgZm9yIHRoZSBpbnB1dCB2YWx1ZXMsIGFuZCBhIHZhcmlhYmxlIHByZWNpc2lvbgoJICBjYWxjdWxhdGlvbiB0aGF0IGxvb3BzIGlmIG5lY2Vzc2FyeSB0byBlbnN1cmUgd2UgbmV2ZXIgb3ZlcmZsb3cKCSAgYWNjdW11bGF0b3JzIGFuZCB0aGVuIHNpbGVudGx5IHByb2R1Y2UgZ2FyYmFnZSByZXN1bHRzLgoJICBNYWtlIHRoZSAobm9uLXB1YmxpYykgbGluZWFyIHJlZ3Jlc3Npb24gZnVuY3Rpb24gYXZhaWxhYmxlIGZvcgoJICB1bml0IHRlc3RpbmcgYnkgcHV0dGluZyBpdCBpbiBhIHNlcGFyYXRlIHNvdXJjZSBmaWxlIHRoZSB0ZXN0CgkgIGNhbiBpbmNsdWRlLiBBZGQgYSB1bml0IHRlc3QgdGhhdCB0aGUgbmV3IHJlZ3Jlc3Npb24gZnVuY3Rpb24KCSAgcHJvZHVjZXMgc2Vuc2libGUgcmVzdWx0cyBmb3Igc2V2ZXJhbCBpbnB1dHMgdGFrZW4gZnJvbSByZWFsLXdvcmxkCgkgIGNhcHR1cmVzLgoKMjAxNS0wMS0xMCAyMTo0MjowMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svbmV0Y2xvY2stY2xpZW50LmM6CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrL25ldGNsb2NrLXNlcnZlci5jOgoJICBuZXRjbG9jazogQWRkIHNpbXBsZSBuZXR3b3JrIGNsb2NrIHNlcnZlciBhbmQgY2xpZW50IGV4YW1wbGVzCgoyMDE1LTAxLTEwIDIxOjQyOjAwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogSW1wbGVtZW50IHNlbmRpbmcgc3RhdGlzdGljIGJ1cyBtZXNzYWdlcyBhbmQgZGlzY29udCBsaW1pdHMKCSAgQWxsb3cgc2V0dGluZyBhIEdzdEJ1cyBvbiB0aGUgbmV0d29yayBjbG9jayBjbGllbnQKCSAgdmlhIGEgbmV3ICdidXMnIG9iamVjdCBwcm9wZXJ0eS4gSWYgYSBidXMgaXMgc2V0LCB0aGUKCSAgY2xvY2sgd2lsbCBvdXRwdXQgYW4gZWxlbWVudCBtZXNzYWdlIGNvbnRhaW5pbmcgc3RhdGlzdGljcwoJICBhYm91dCBuZXcgY2xvY2sgb2JzZXJ2YXRpb25zIGFuZCB0aGUgY2xvY2sgY29ycmVsYXRpb24uCgkgIFdoZW4gdGhlIGxvY2FsIGNsb2NrIGlzIHN5bmNocm9uaXNlZCB3aXRoIHRoZSByZW1vdGUsIGxpbWl0IHRoZQoJICBtYXhpbXVtIGp1bXAgaW4gdGhlIGNsb2NrIGF0IGFueSBwb2ludCB0byBiZSBvbmUgYXZlcmFnZSBSVFQgdG8KCSAgdGhlIHNlcnZlci4gQWxzbywgcHVibGlzaCBpbiB0aGUgYnVzIG1lc3NhZ2Ugd2hldGhlciB3ZSBhcmUKCSAgc3luY2hlZCB3aXRoIHRoZSByZW1vdGUgb3Igbm90LgoKMjAxNS0wMS0xMCAyMTo0MjowMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb25fdW5hcHBsaWVkKCkKCSAgZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbl91bmFwcGxpZWQoKSBhZGRzIGEgbmV3IG1hc3Rlci9zbGF2ZSBjbG9jawoJICBvYnNlcnZhdGlvbiBhbmQgcnVucyB0aGUgcmVncmVzc2lvbiB3aXRob3V0IGFjdGl2YXRpbmcgdGhlIG5ldwoJICBjYWxpYnJhdGlvbiByZXN1bHRzLgoKMjAxNC0xMi0xNiAyMjo1MToyMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIGdzdF9jbG9ja19hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpCgkgIGdzdF9jbG9ja19hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpIHVzZXMgZGlyZWN0bHkgcGFzc2VkIGNhbGlicmF0aW9uCgkgIHBhcmFtZXRlcnMsIGluc3RlYWQgb2YgdXNpbmcgdGhlIGNsb2NrJ3MgY3VycmVudCBjYWxpYnJhdGlvbiwKCSAgYWxsb3dpbmcgZm9yIGNhbGN1bGF0aW9ucyB1c2luZyBwZW5kaW5nIG9yIG9sZCBjYWxpYnJhdGlvbiBwYXJhbXMKCjIwMTUtMDEtMjEgMDk6NDU6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogQ29uc3RpZnkgbmVnb3RpYXRpb24gbW9kZSBHRW51bVZhbHVlIHRhYmxlCgoyMDE1LTAxLTIwIDEwOjM1OjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogZml4IHR5cG8gaW4gR3N0RXZlbnQgZG9jcwoJICBzZW5kIC0+IHNlbnQKCjIwMTUtMDEtMjAgMDk6MTk6MTAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IFJlbW92ZSBnbm9ubGluIGZyb20gdGhlIHNjcmlwdHMKCSAgSXQgaXMgbm90IG1haW50YWluIGFueW1vcmUgYW5kIGl0cyBmZWF0dXJlIGFyZSBub3cgaW5zaWRlIHRoZSBHU3RyZWFtZXIKCSAgRWRpdGluZyBTZXJ2aWNlcyAoZm9yIHRoZSB0aW1lIGJlaW5nKS4KCjIwMTUtMDEtMTYgMTk6MTc6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogUGFzcyBzdHJ1Y3RzIHdlIHBsYW4gdG8gbW9kaWZ5IGFyb3VuZCBieSBwb2ludGVyLCBub3QgdmFsdWUKCSAgT3RoZXJ3aXNlIHRoZSBzdHJ1Y3QgaXMgZ29pbmcgdG8gYmUgY29waWVkLCB3aGljaCBpcyBub3QgdmVyeSBlZmZpY2llbnQuIEFuZAoJICBhbHNvIGhhcyB0aGUgbmljZSBzaWRlIGVmZmVjdCB0aGF0IG1vZGlmaWNhdGlvbnMgb2YgdGhlIHN0cnVjdCBtaWdodCBiZQoJICBkb25lIGluIGEgY29weSwgYW5kIHdlIGxhdGVyIHVzZSB0aGUgb3JpZ2luYWwgc3RydWN0IHdpdGhvdXQgdGhlIGNoYW5nZXMuCgkgIENhdXNlZCBMQVRFTkNZIHF1ZXJpZXMgdG8gYWx3YXlzIHJldHVybiB0aGUgaW5pdGlhbGl6YXRpb24gdmFsdWVzIGluIG9uZSBvZiBteQoJICB0ZXN0cywgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHZhbHVlcyByZXBvcnRlZCBieSBjaGlsZCBlbGVtZW50cy4KCjIwMTUtMDEtMTQgMTA6NTI6MTEgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogc2VuZCBnYXAgZXZlbnRzIHdoZW4gZHJvcHBpbmcgYnVmZmVycwoKMjAxNS0wMS0xMyAxODoxMTozOSArMDAwMCAgUGhpbGxpcCBXb29kIDxwaGlsbGlwLndvb2RAZHVuZWxtLm9yZy51az4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBmaXggaW5jb3JyZWN0IHByZXNldCB2ZXJzaW9uIGNvbXBhcmlzb24KCSAgVXNlIGFwcF92ZXJzaW9uIGlmIHRoZXJlIGFyZSBubyBzeXN0ZW0gcHJlc2V0cywgc28gdGhhdCBpZiB0aGUKCSAgYXBwbGljYXRpb24gcHJlc2V0cyBhcmUgbmV3ZXIgdGhhbiB0aGUgdXNlciBwcmVzZXRzIHRoZXkgYXJlIG1lcmdlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Mjg3NwoKMjAxNS0wMS0xMiAxNjowMzowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHBvaW50ZXIKCSAgQ0lEIDEyNjIyODYKCjIwMTUtMDEtMTIgMTU6NTU6NDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYyYzZiOTUgdG8gYmM3NmE4YgoKMjAxNS0wMS0xMSAyMzowMDoyOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBmaXggc29ydGluZyBwcmVzZXRzCgkgIFRoZSBnbGliIGRvY3MgYXJlIG5vdCBjbGVhciBvbiB0aGlzLCBidXQgdGhlIHFzb3J0IG1hbi1wYWdlIGlzIC0gdGhlCgkgIEdDb21wYXJlRGF0YUZ1bmMgZG9lcyBub3QgZ2V0IHRoZSBzdHJpbmdzLCBidXQgcG9pbnRlcnMgdG8gdGhlbS4KCjIwMTQtMTItMzEgMTg6NTI6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IHNpbGx5IEdRdWV1ZSBpdGVyYXRpb24gY29kZQoJICBOb3QgYWN0aXZlIGJ5IGRlZmF1bHQgdGhvdWdoLgoKMjAxNS0wMS0wNCAyMzoyNDo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBkb24ndCByZXR1cm4gZW1wdHkgcHJlc2V0IGxpc3RzCgkgIEFkZCBhIHNob3J0Y3V0IGZvciB0aGUgY2FzZXMgd2hlcmUgYW4gZWxlbWVudCBpbXBsZW1lbnRzIHRoZSBwcmVzZXQgaWZhY2UgYnV0CgkgIGhhcyBubyBwcmVzZXRzIGFuZCByZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIGFuIGVtcHR5IGxpc3QgaW4gdGhhdCBjYXNlLgoKMjAxNS0wMS0wNCAyMzowODo0NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBvbmx5IHByaW50IHByZXNldHMgbGluZSBpZiBudW0tcHJlc2V0cyA+IDAKCSAgQWxzbyBjaGVjayBmb3IgYW4gZW1wdHkgc3Rydi4KCjIwMTUtMDEtMDQgMjI6NTE6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IG91dHB1dCBmb3IgLWEKCSAgVXNlIG5fcHJpbnQgdG8gZW5zdXJlIGFsbCBsaW5lcyBhcmUgcHJlZml4ZWQgd2l0aCB0aGUgZWxlbWVudCBuYW1lLgoKMjAxNC0xMi0yOSAxMTo1NDowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogaWdub3JlIGxpYmNoZWNrIGhlYWRlcnMgdGhhdCB1c2UgZG94eWdlbiBjb21tZW50cwoKMjAxNC0xMi0yOSAxMTo1MjoyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGZpeCB0d28gZ3RrLWRvYyB3YXJuaW5ncwoJICBPbmUgYnkgY29ycmVjdGluZyB0aGUgZW5kLW9mLWNvbW1lbnQgbWFya2VyIGFuZCBvbmUgYnkgbWFraW5nIHN1cmUgdGhlIGZ1bmN0aW9uCgkgIHByb3RvdHlwZSBpbiB0aGUgaGVhZGVyIGlzIGluIHN5bmMgd2l0aCB0aGUgYyBmaWxlIGFuZCBkb2MtYmxvYi4KCjIwMTQtMTItMjYgMjM6MjI6MzAgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBtaXNzaW5nIGludGVyZmFjZXMgdG8gZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMDU3CgoyMDE0LTEyLTI3IDE1OjE1OjMwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBvdXRkYXRlZCBleGFtcGxlIGNvZGUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uCgkgIEdzdEl0ZXJhdG9yIG5vIGxvbmdlciByZXR1cm5zIGEgcmVmY291bnRlZCBncG9pbnRlcgoKMjAxNC0xMi0yNCAxMzo0NjoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIHNhbWUgd2FpdGluZyBmdW5jdGlvbiBmb3IgRU9TIGFuZCBub24tRU9TIHdhaXRpbmcKCjIwMTQtMTItMjQgMTM6NDQ6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogV2FrZSB1cCBhbGwgd2FpdGluZ3MgcGFkcyBkaXJlY3RseSBpZiB3ZSBmb3J3YXJkIHRoZSBFT1MgZXZlbnQKCSAgT3RoZXJ3aXNlIHRoZXkgbWlnaHQgd2FpdCBhIGJpdCBsb25nZXIgdW5uZWNlc3NhcmlseS4KCSAgQWxzbyBkbyBzb21lIG1pbm9yIGNsZWFudXAuCgoyMDE0LTEyLTI0IDEwOjEzOjUxICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBCbG9jayB3aGVuIHJlY2VpdmluZyBhbiBFT1MgZXZlbnQgb24gYSBkZWFjdGl2YXRlZCBwYWQKCSAgLi4uIGFuZCBvbmx5IHVuYmxvY2sgd2hlbiBlaXRoZXIgYSkgdGhlIHBhZCBiZWNvbWVzIGFjdGl2ZSBhbmQgdGhlIGV2ZW50CgkgIHNob3VsZCBiZSBmb3J3YXJkZWQgb3IgYikgdGhlIGFjdGl2ZSBwYWQgd2VudCBFT1MgaXRzZWxmLgoJICBPdGhlcndpc2UgaXQgY2FuIGhhcHBlbiB0aGF0IHdlIHN3aXRjaCBmcm9tIGEgbG9uZ2VyIHRyYWNrIHRoYXQgaXMgbm90IEVPUyB5ZXQKCSAgdG8gYSBzaG9ydGVyIHRyYWNrIHRoYXQgYWxyZWFkeSBpcyBFT1MsIGJ1dCB0aGUgc2hvcnRlciB0cmFjayB3b24ndCBoYXZlIGFueQoJICBwb3NzaWJpbGl0eSB0byBzZW5kIGl0cyBFT1MgZXZlbnQgZG93bnN0cmVhbSBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwOTQ5CgoyMDE0LTEyLTIzIDEyOjU0OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEtlZXAgYSByZWYgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgc2lua3BhZCBhcm91bmQKCSAgT3RoZXJ3aXNlIHdlIGNhbid0IGJlIHN1cmUgdGhhdCB0aGUgcG9pbnRlciBwb2ludHMgdG8gYSBzdGlsbCBleGlzdGluZwoJICBwYWQgaW5zdGFuY2UgYWZ0ZXIgcmVsZWFzaW5nIHRoZSBsb2NrLgoKMjAxNC0xMi0yMyAxMjo1Mzo1OCArMDEwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBHZXQgdGhlIGFjdGl2ZSBzaW5rcGFkIGFnYWluIGFmdGVyIHRha2luZyB0aGUgbG9jayB3aGVuIGhhbmRsaW5nIGV2ZW50cwoJICBJdCBtaWdodCBoYXZlIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxODkzCgoyMDE0LTEyLTIyIDEzOjA4OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFNob3J0LWNpcmN1aXQgQ0FQUyBxdWVyeSBoYW5kbGluZyBpZiB0cmFuc2Zvcm1fY2FwcyByZXR1cm5zIEVNUFRZIGNhcHMKCSAgQm90aCBmb3IgdGhlIHBlZXIgZmlsdGVyIGNhcHMgYW5kIHRoZSBjb252ZXJ0ZWQgY2FwcyBiYXNlZCBvbiB0aGUgcGVlciBjYXBzLgoJICBJZiB0aGUgcGVlciBmaWx0ZXIgY2FwcyBhcmUgRU1QVFksIHRoZSBwZWVyIGNhcHMgcXVlcnkgd2lsbCBhbHNvIHJldHVybgoJICBFTVBUWS4gVGhlcmUncyBubyBuZWQgdG8gYm90aCBkb3duc3RyZWFtL3Vwc3RyZWFtIHdpdGggdGhpcyBxdWVyeS4KCjIwMTQtMTItMjIgMTE6NDU6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBNQUlOVEFJTkVSUzoKCSAgTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBtYWlsIGFkZHJlc3MKCjIwMTQtMTItMjEgMTQ6MTI6MjkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiB1c2UgYSBjb25zdGFudCBmb3IgdGhlIG1heCBwYXJhbSBsZW5ndGgKCSAgSW1wcm92ZSByZWFkYWJpbGl0eSBieSB1c2luZyBhIGRlZmluZSBmb3IgdGhlIG1heC1jaGFycy4gQWxzbyB1c2UgdGhlIHVuaWNvZGUKCSAgZWxsaXBzaXMgYXMgZG90IGZpbGVzIGFyZSB1dGYtOC4KCjIwMTQtMTItMTUgMTQ6MDM6NTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgcHJlc2V0IG5hbWVzCgkgIElmIHRoZSBlbGVtZW50IHN1cHBvcnRzIHByZXNldHMgYW5kIHNoaXBzIHNvbWUsIHByaW50IHRoZW0uCgkgIEZpeGVzICM3NDE0MjcKCjIwMTQtMTItMTkgMTE6MzU6MjQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBBZGQgbmV3IG1heGltdW0gbGV2ZWwgZGVidWdnaW5nCgkgIEFQSTogR1NUX0xFVkVMX01BWAoJICBCeSBjb21waWxpbmcgZ3N0cmVhbWVyIChvciBwbHVnaW5zKSB3aXRoIEdTVF9MRVZFTF9NQVggZGVmaW5lZCwgb25seQoJICB0aGUgZGVidWdnaW5nIHN0YXRlbWVudHMgYXQgb3IgYmVsb3cgdGhhdCBsZXZlbCB3aWxsIGJlIGNvbXBpbGVkIGluLgoJICBUaGlzIGFsbG93cyBjb21waWxpbmcgaW4gc29tZSBkZWJ1Z2dpbmcgKGxpa2UgZXJyb3JzIGFuZCB3YXJuaW5ncykgd2hpY2gKCSAgaGVscHMgaW4gZGVidWdnaW5nLCBidXQgd2l0aG91dCB0aGUgZnVsbCBjcHUvbWVtb3J5IG92ZXJoZWFkIG9mIGFsbCBkZWJ1Z2dpbmcKCSAgZW5hYmxlZC4KCjIwMTQtMTItMTggMTI6MDQ6MjIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBmaXggR0kgYW5ub3RhdGlvbgoJICBBZGQgbWlzc2luZyA6IHRvIGFubm90YXRpb24KCjIwMTQtMTEtMTMgMTQ6NTM6NTkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBqdW1wIG92ZXIgbGFyZ2Ugc2tpcHMgaW4gcHVsbCBtb2RlCgkgIFRoaXMgYnlwYXNzZXMgdGhlIGR1bXBpbmcgb2YgYnVmZmVycyB3ZSBzdGlsbCBoYXZlIHRvIGRvIGluIHB1c2ggbW9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDA1MwoKMjAxNC0xMC0yNSAxNzoxNjoyNSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBkZWJ1Z3V0aWxzOiBUcnVuY2F0ZSBwYXJhbWV0ZXIgdmFsdWVzIHRoYXQgYXJlIHRvbyBsb25nCgkgIFRoaXMgcmVtb3ZlcyBzb21lIGluZm9ybWF0aW9uIGZyb20gdGhlIGR1bXBzLCBidXQgaW1wcm92ZXMgcmVhZGFiaWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxNjUKCjIwMTQtMTItMTggMTA6NTM6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGVmMWZmZGMgdG8gZjJjNmI5NQoKMjAxNC0xMi0xNiAxNjozMToyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmUvY2FwczogQWRkIGdzdF97c3RydWN0dXJlLGNhcHN9X2ZpbHRlcl9hbmRfbWFwX2luX3BsYWNlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTc2NQoKMjAxNC0xMi0xNiAxODoxNDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBBZGQgc2ltcGxlIHVuaXQgdGVzdCBmb3IgZm9yZWFjaCgpIGFuZCBtYXBfaW5fcGxhY2UoKQoKMjAxNC0xMS0wNyAxMToxNTowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCBnc3RfY2Fwc19mb3JlYWNoKCkgYW5kIGdzdF9jYXBzX21hcF9pbl9wbGFjZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk3NjUKCjIwMTQtMTItMTYgMTU6NTM6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTQtMTItMTQgMTI6NTQ6MzIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJICBjaGVjazogSGF2ZSBhdXRvdG9vbHMgZ2VuZXJhdGUgaW50ZXJuYWwtY2hlY2suaAoJICBQcmV2aW91c2x5IEdTdHJlYW1lciBnb3QgYWNjZXNzIHRvIHRoZSBsaWJjaGVjayBpbnRlcmZhY2UgYnkgaW5jbHVkaW5nCgkgIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLmggd2hpY2ggaW4gdHVybiBpbmNsdWRlZCBpbnRlcm5hbC1jaGVjay5oIGluIHRoZQoJICBzYW1lIGRpcmVjdG9yeS4gaW50ZXJuYWwtY2hlY2suaCB3YXMgZ2VuZXJhdGVkIGJ5IGNvcHlpbmcKCSAgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaCB3aGljaCBpbiB0dXJuIHdhcyBnZW5lcmF0ZWQgZnJvbQoJICBjaGVjay5oLmluIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4gSW4gdGhpcyBjYXNlIGdlbmVyYXRpbmcKCSAgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaCBpcyB1bm5lY2Vzc2FyeSwgaW4gYWRkaXRpb24gdGhpcyBmaWxlCgkgIHdhcyBhY2NpZGVudGFsbHkgZGlzdHJpYnV0ZWQgaW4gZ2VuZXJhdGVkIHByb2plY3QgdGFyYmFsbHMuCgkgIE5vdyBsaWJzL2dzdC9jaGVjay9pbnRlcm5hbC1jaGVjay5oIGlzIGdlbmVyYXRlZCBkaXJlY3RseSBmcm9tCgkgIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW4gYnkgY29uZmlndXJlLiBUaGlzIG1lYW5zIHRoYXQgdGhlCgkgIGxpYmNoZWNrIHNvdXJjZSBtdXN0IGluY2x1ZGUgaW50ZXJuYWwtY2hlY2suaCBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91c2x5CgkgIGdlbmVyYXRlZCBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLiBIb3dldmVyIHRoZSB1bm5lY2Vzc2FyeQoJICBpbnRlcm1lZGlhdGUgc3RlcCBpcyBub3cgc2tpcHBlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTM1OQoKMjAxNC0xMi0xNiAxMDoxMzowMyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBEb24ndCBjaGVjayBzaXplIGluIGNvbmZpZyB2YWxpZGF0aW9uCgkgIFBvb2xzIGFyZSBhbGxvd2VkIHRvIGNoYW5nZSB0aGUgc2l6ZSBpbiBvcmRlciB0byBhZGFwdCBwYWRkaW5nLiBTbwoJICBkb24ndCBjaGVjayB0aGUgc2l6ZS4gTm9ybWFsbHkgcG9vbCB3aWxsIGNoYW5nZSB0aGUgc2l6ZSB3aXRob3V0CgkgIGZhaWxpbmcgc2V0X2NvbmZpZygpLCBidXQgaXQgdGhleSBlbmR1cCBjaGFuZ2luZyB0aGUgc2l6ZSBiZWZvcmUKCSAgdGhlIHZhbGlkYXRlIG1ldGhvZCBtYXkgZmFpbCBvbiBhIGZhbHNlIHBvc2l0aXZlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNDIwCgoyMDE0LTEyLTE2IDEyOjIxOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGxvZyByZWFzb24gZm9yIGRpc2NhcmRlZCBidWZmZXJzCgkgIFBFUkZPUk1BTkNFIGxvZyB0aGUgcmVhc29uIHdoeSBhIGJ1ZmZlciBjb3VsZCBub3QgYmUgcmVjeWNsZWQgaW4gdGhlCgkgIGJ1ZmZlcnBvb2wuCgoyMDE0LTEyLTE1IDE0OjUzOjI4ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGNoZWNrOiBVcGRhdGUgdmVyc2lvbiBudW1iZXIgb2YgaW5jbHVkZWQgbGliY2hlY2sKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTU1MAoKMjAxNC0xMi0xMiAyMTowMjoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMKCjIwMTQtMTItMTIgMjE6NTQ6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHByZXNldCBhcGkKCjIwMTQtMTItMTIgMjE6Mzg6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSAgcHJlc2V0OiBhZGQgZ3N0X3ByZXNldF9pc19lZGl0YWJsZSgpCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBwcmVzZXQgaWZhY2UgaW1wbGVtZW50YXRpb24gaXMgZWRpdGFibGUgYW5kCgkgIGRvY3VtZW50IHRoaXMgZnJvbSB0aGUgaW1wbGVtZW50ZXJzIHBlcnNwZWN0aXZlLgoJICBBUEk6IGdzdF9wcmVzZXRfaXNfZWRpdGFibGUoKQoKMjAxNC0xMi0xMiAxNDoyMzoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZiBmaWxlCgoyMDE0LTEyLTEyIDEzOjU3OjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0ZGVidWd1dGlscy5jOiBJbiBmdW5jdGlvbiAnZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSc6CgkgIGdzdGRlYnVndXRpbHMuYzo2ODM6NTMwOiBlcnJvcjogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkIFstV2Vycm9yXQoJICBnX3JldHVybl9pZl9mYWlsIChHU1RfSVNfQklOIChiaW4pKTsKCjIwMTQtMTItMTIgMTM6MTU6MDIgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgZGVidWd1dGlsczogQWRkIGEgZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSgpIG1ldGhvZAoJICBUaGlzIHByb3ZpZGVzIHRoZSBkb3QgZmlsZSBhcyBhIHN0cmluZywgcmF0aGVyIHRoYW4gZHVtcGluZyB0byBhIGZpbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE0MjUKCjIwMTQtMTItMTAgMTE6MTc6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogbWlub3IgY29zbWV0aWMgY2hhbmdlCgkgIE5vIG5lZSB0byBhYmJyZXYgdmFyaWFiIG5hbSBoZXJlLCBuaWNlciB0byByZWFkIGlmIGZ1bGwuCgoyMDE0LTEyLTEwIDExOjE2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHVzZSBHU1RfQlVGRkVSX09GRlNFVF9OT05FIGZvciBidWZmZXIgb2Zmc2V0CgoyMDE0LTEyLTA3IDEyOjU1OjI2ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBjaGVjazogQXZvaWQgcmVxdXJpbmcgKHUpaW50bWF4X3QgaW4gbWFjcm9zCgkgIFByZXZpb3VzbHkgZW1iZWRkZWQgbGliY2hlY2sgdmVyc2lvbnMgZGlkIG5vdCBkZXBlbmQgb24gKHUpaW50bWF4X3QgYW5kCgkgIGRvaW5nIHNvIHdvdWxkIHJlcXVpcmUgcHJvamVjdHMgdXNpbmcgR1N0cmVhbWVyJ3MgY2hlY2sgZnJhbWV3b3JrIHRvIGFkZAoJICBBWF9DUkVBVEVfU1RESU5UX0ggdG8gdGhlaXIgY29uZmlndXJlLmFjLiBBIHdvcmthcm91bmQgaXMgdG8gZmFsbGJhY2sgdG8KCSAgZ2xpYiB0eXBlcy4gVGhpcyBwYXRjaCBhc3N1bWVzIHRoYXQgZ2xpYi5oIGlzIGFsd2F5cyBpbmNsdWRlZCBiZWZvcmUKCSAgaW50ZXJuYWwtY2hlY2suaCB3aGljaCBpcyBvayBzaW5jZSBldmVyeXRoaW5nIEdzdHJlYW1lciB3b3VsZCBpbmNsdWRlCgkgIGdzdC9nc3RjaGVjay5oIGluc3RlYWQgb2YgZGlyZWN0bHkgaW5jbHVkaW5nIGludGVybmFsLWNoZWNrLmguCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTItMDYgMTk6MDM6MDQgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2Nsb2NrX2dldHRpbWUuYzoKCSAgY2hlY2s6IEZpeCBjb21waWxhdGlvbiBlcnJvciBmb3IgaU9TCgkgIGxpYmNoZWNrIGluY2x1ZGVzIENvcmVTZXJ2aWNlcyBmb3IgaXRzIGNvbXBhdCBmb3IgY2xvY2tfZ2V0dGltZSgpLAoJICBldmVuIHRob3VnaCBpdCBuZXZlciB1c2VzIGFueXRoaW5nIGl0IGRlY2xhcmVzLiBMZXQncyByZW1vdmUgaXQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTEtMTUgMTM6MjY6NDcgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0Lmg6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgY2hlY2s6IEFwcGx5IEdTdHJlYW1lci1zcGVjaWZpYyBwYXRjaGVzCgkgIFJlaW50cm9kdWNlZCBwYXRjaGVzOgoJICAqIE1ha2Ugc3VyZSB0aGF0IGZhaWxfaWYoMSkgYWN0dWFsbHkgZmFpbHMKCSAgZnJvbSBjb21taXQgOWY5OWQwNTZhMjYzZTcxYTVlNjE4MTIyNDgyOWRlZjkwNmNmMDIyNgoJICBOZXcgcGF0Y2hlcyBkdWUgdG8gdXBkYXRlZCBsaWJjaGVjayAoYmFzZWQgb24gMC45LjE0KToKCSAgKiBDaGVja3MgaW4gbTQvY2hlY2stY2hlY2tzLm00IHRvIGNhdGVyIGZvciBuZXcgZGVwZW5kZW5jaWVzCgkgICogQ29uZGl0aW9uYWwgY29tcGlsZS10aW1lIGNvbXBhdCBQT1NJWCBmYWxsYmFja3MgZm9yIGxpYmNoZWNrCgkgICogQXZvaWQgcmVsYXRpdmUgcGF0aHMgZm9yIGxpYmNoZWNrIGhlYWRlciBmaWxlcwoJICAqIE1ha2UgdGltZXJfY3JlYXRlKCkgdXNhZ2UgZGVwZW5kIG9uIHBvc2l4IHRpbWVycywgbm90IGxpYnJ0CgkgICogUmVseSBvbiBkZWZhdWx0IEFYX1BUSFJFQUQgYmVoYXZpb3IgdG8gYWxsb3cgSEFWRV9QVEhSRUFEIHRvIGJlIHVzZWQKCSAgd2hlbiBjaGVja2luZyBmb3IgdHlwZXMgYW5kIGZ1bmN0aW9ucyAobGlrZSBjbG9ja19nZXR0aW1lKCkpCgkgICogQXZvaWQgZG91YmxlIGRlY2xhcmF0aW9uIG9mIGNsb2NrX2dldHRpbWUoKSB3aGVuIGF2YWlsYWJlIG91dHNpZGUgb2YKCSAgbGlicnQgYnkgbWFraW5nIGNvbXBhdCBjbG9ja19nZXR0aW1lKCkgZGVjbGFyYXRpb24gY29uZGl0aW9uYWwKCSAgKiBjaGVjayAwLjkuOSByZW5hbWVkIF9mYWlsX3VubGVzcygpIGFuZCAwLjkuMTIgbGF0ZXIgcmVuYW1lZCBpdCBhZ2FpbgoJICB0byBfY2tfYXNzZXJ0X2ZhaWxlZCgpLCBzbyBBU1NFUlRfe0NSSVRJQ0FMLFdBUk5JTkd9KCkgbm93IGNhbGxzIHRoaXMKCSAgZnVuY3Rpb24KCSAgKiBSZW1vdmUgbGliY2hlY2sgZmFsbGJhY2sgaW5mcmFzdHJ1Y3R1cmUgZm9yIG1hbGxvYygpLCByZWFsbG9jKCksCgkgIGdldHRpbWVvZmRheSgpIGFuZCBzbnByaW50ZigpIHNpbmNlIGVpdGhlciB0aGV5IGFwcGVhciB0byBiZQoJICBhdmFpbGFibGUgb3IgdGhleSBpbnRyb2R1Y2UgZXZlbiBtb3JlIGRlcGVuZGVuY2llcy4KCSAgVGhlIHJlc3VsdCBpcyBhbiBlbWJlZGRlZCBjaGVjayBpbiBnc3RyZWFtZXIgdGhhdCBoYXMgYmVlbiB0ZXN0ZWQgYnkKCSAgcnVubmluZyBjaGVjayB0ZXN0cyBpbiBjb3JlLCAtYmFzZSwgLWdvb2QsIC1iYWQsIC11Z2x5IGFuZCBydHNwLXNlcnZlcgoJICBvbiBMaW51eCwgT1NYIGFuZCBXaW5kb3dzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTExLTE1IDEyOjUzOjMyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9hbGFybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2Nsb2NrX2dldHRpbWUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9sb2NhbHRpbWVfci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9zdHJzaWduYWwuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svdGltZXJfY3JlYXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3RpbWVyX2RlbGV0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay90aW1lcl9zZXR0aW1lLmM6CgkgIGNoZWNrOiBJbXBvcnQgdmVyc2lvbiAwLjkuMTQKCSAgVGhpcyBsaWZ0cyB0aGUgZmlsZXMgYWxtb3N0IHZlcmJhdGltICh0aGUgY2hhbmdlcyBiZWluZyBydW5uaW5nIHRob3VnaAoJICBnc3QtaW5kZW50IGFuZCBmaXhpbmcgdGhlIEZTRiBhZGRyZXNzKSBmcm9tIHRoZSB1cHN0cmVhbSByZXNwb3NpdG9yeS4KCSAgVGhlcmVmb3JlIHRoaXMgY29tbWl0IHJldmVydHMgc29tZSBHU3RyZWFtZXItc3BlY2lmaWMgcGF0Y2hlcyB0byBjaGVjawoJICB0aGF0IHdpbGwgYmUgcmVpbnRyb2R1Y2VkIG5leHQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTEtMDQgMTk6MTE6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogUHJvcGFnYXRlIGlucHV0IGJ1ZmZlciBvZmZzZXQKCSAgVGhlIGluaXRpYWwgYnVmZmVycyBtaWdodCBoYXZlIG5vbi1kZWZhdWx0IG9mZnNldHMsIG1ha2Ugc3VyZSB0aGV5IGdldAoJICBwcm9wYWdhdGVkIGlmIHByZXNlbnQuCgoyMDE0LTEwLTA3IDE2OjQ0OjQ1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xhbXAgcmVwb3J0ZWQgcG9zaXRpb24gYmFzZWQgb24gZGlyZWN0aW9uCgkgIFdoZW4gdXNpbmcgYSBuZWdhdGl2ZSByYXRlIChyYXRlIGJlaW5nIHNlZ21lbnQucmF0ZSAqIHNlZ21lbnQuYXBwbGllZF9yYXRlKSwKCSAgd2Ugd2lsbCBlbmQgdXAgcmVwb3J0aW5nIGRlY3JlYXNpbmcgcG9zaXRpb25zLCB0aGVyZWZvcmUgYWRqdXN0IHRoZSBjbGFtcGluZwoJICBhZ2FpbnN0IGxhc3QgcmVwb3J0ZWQgdmFsdWUgYWNjb3JkaW5nbHkuCgkgIEZpeGVzIHBvc2l0aW9ucyBnZXR0aW5nIHByb3Blcmx5IHJlcG9ydGVkIHdpdGggYXBwbGllZF9yYXRlIDwgMC4wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgwOTIKCjIwMTQtMTEtMjggMTQ6MTc6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgRG9uJ3QgY29tcGFyZSBib29sZWFucyBmb3IgZXF1YWxpdHkgdG8gVFJVRSBhbmQgRkFMU0UKCSAgVFJVRSBpcyAxLCBidXQgZXZlcnkgb3RoZXIgbm9uLXplcm8gdmFsdWUgaXMgYWxzbyBjb25zaWRlcmVkIHRydWUuIENvbXBhcmluZwoJICBmb3IgZXF1YWxpdHkgd2l0aCBUUlVFIHdvdWxkIG9ubHkgY29uc2lkZXIgMSBidXQgbm90IHRoZSBvdGhlcnMuCgkgIEFsc28gbm9ybWFsaXplIGJvb2xlYW5zIGluIGEgZmV3IHBsYWNlcy4KCjIwMTQtMTEtMzAgMjM6NTA6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgcGx1Z2luczogZml4IGJ1aWxkIG9uIHdpbmRvd3MKCSAgZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOiBJbiBmdW5jdGlvbiAnZ3N0X3dyaXRldl9idWZmZXJzJzoKCSAgZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOjIzNjo1MTogZXJyb3I6ICdFV09VTERCTE9DSycgdW5kZWNsYXJlZAoKMjAxNC0xMS0yOCAxNTowOToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHVzZSB3cml0ZXYoKSBpbiA6OnJlbmRlcigpIHRvIHdyaXRlIG91dCBtZW1vcmllcyB3aXRob3V0IG1lcmdpbmcgdGhlbQoKMjAxNC0xMS0yOCAxNTowNDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBmaWxlc2luazogaW1wbGVtZW50IDo6cmVuZGVyX2xpc3QoKSBmdW5jdGlvbiB0aGF0IHVzZXMgd3JpdGV2KCkKCjIwMTQtMTEtMjggMTQ6NDc6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IHVzZSB3cml0ZXYoKSBpbiA6OnJlbmRlcigpIHRvIHdyaXRlIG91dCBtZW1vcmllcyB3aXRob3V0IG1lcmdpbmcgdGhlbQoKMjAxNC0xMS0yOCAxNDozOTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogaW1wbGVtZW50IDo6cmVuZGVyX2xpc3QoKSB1c2luZyB3cml0ZXYoKQoJICBXcml0ZSBvdXQgbXVsdGlwbGUgYnVmZmVycyBwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlCgkgIG1lbW9yaWVzIHdpdGggb25lIHdyaXRldigpIGNhbGwsIHdpdGhvdXQgbWVyZ2luZyB0aGUKCSAgYnVmZmVyIG1lbW9yaWVzIGZpcnN0LCBsaWtlIDo6cmVuZGVyKCkgZG9lcyBjdXJyZW50bHkuCgoyMDE0LTExLTI4IDE0OjM4OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmg6CgkgIHBsdWdpbnM6IGFkZCBoZWxwZXIgZnVuY3Rpb24gZm9yIHdyaXRpbmcgYnVmZmVycyBvdXQgd2l0aCB3cml0ZXYoKQoKMjAxNC0xMS0yOCAxNDoxNTozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgdGhlIGR1cmF0aW9uIHZhcmlhYmxlIGJlZm9yZSBlbWl0dGluZyB0aGUgYnVzCgkgIE90aGVyd2lzZSB0aGUgYXBwbGljYXRpb24gbWlnaHQgc3RpbGwgZ2V0IHRoZSBvbGQgdmFsdWUgaWYgaXQgYXNrcwoJICBiZXR3ZWVuIHRoZSBtZXNzYWdlIGFuZCB0aGUgcmVhbCB1cGRhdGUuCgoyMDE0LTExLTI4IDE2OjI1OjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IGRvYyBhbmQgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBzZW5kX2V2ZW50CgkgIFRoZSBkb2N1bWVudGF0aW9uIHN0YXRlcyB0aGF0IGdzdF9lbGVtZW50X3NlbmRfZXZlbnQgaXMgdG8gInNlbmQgYW4gZXZlbnQKCSAgdG8gYW4gZWxlbWVudCIuCgkgIFRoZXJlZm9yZSB3ZSAqc2VuZCogdXBzdHJlYW0gZXZlbnRzIHRvIGEgc291cmNlIHBhZCBhbmQgZG93bnN0cmVhbSBldmVudHMKCSAgdG8gYSBzaW5rIHBhZAoKMjAxNC0xMS0yOCAxMToxNjowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpZ3VyZSBkZWZhdWx0IHNlbmRfZXZlbnQgZGlyZWN0aW9uIGhhbmRsaW5nCgkgIElmIHdlIGdldCBhIGRvd25zdHJlYW0gZXZlbnQgd2Ugd2FudCB0byBzZW5kIGl0IHRvIGEgcmFuZG9tIFNJTksgcGFkCgkgIChhbmQgdmljZS12ZXJzYSkuCgoyMDE0LTExLTI3IDE4OjAwOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IENvbXBhcmUgY29ycmVjdCBjYXBzIHZhcmlhYmxlIGFnYWluc3QgTlVMTCBiZWZvcmUgY29tcGFyaW5nIGNhcHMKCjIwMTQtMTEtMjcgMTc6MTA6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYzMmNmY2QgdG8gZWYxZmZkYwoKMjAxNC0xMS0xMCAwOTo1ODo0NyArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6dW5pbnN0YWxsZWQ6IE1ha2Ugc3VyIHRoZSBHRVMgVGVzdE1hbmFnZXIgaXMgcmVnaXN0ZXJlZAoJICBTbyB0aGF0IHdoZW5ldmVyIHVzZXIgd29yayB3aXRoIEdzdFZhbGlkYXRlIHRoZXkgY2FuIHJ1biBHRVMgdGVzdHMKCSAgd2l0aGluIHRoZSBnc3QtdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQKCjIwMTQtMTEtMjYgMjE6NDg6MDUgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogY29tbW9uOgoJKiBtNC9heF9wdGhyZWFkLm00OgoJICBidWlsZDogVXBkYXRlIGF4X3B0aHJlYWQubTQgYW5kIG1vdmUgaXQgdG8gY29tbW9uCgkgIEhhcyBzb21lIHVwZGF0ZXMgZm9yIENsYW5nIHN1cHBvcnQgKG1pZ2h0IG5vdCB3b3JrIHdpdGggbmV3ZXIgQ2xhbmcKCSAgcHJvcGVybHksIHlldCksIEFJWCBzdXBwb3J0LCBhbmQgc29tZSBtaXNjIGZpeGVzLgoKMjAxNC0xMS0yNSAxNzo0NjoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgdHJpZ2dlcmNvbnRyb2xzb3VyY2U6IEZpeCBzaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhlIGRvY3MKCjIwMTQtMTEtMjUgMDk6Mzk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogYWRkIEdTVF9HTF8qIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byAnUnVubmluZyBHU3RyZWFtZXInIHNlY3Rpb24KCjIwMTQtMTEtMjMgMDU6NDU6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcGVyY2VudGFnZSBpcyByZWxhdGl2ZSB0byBoaWdoLXBlcmNlbnQKCSAgV2hlbiBjb21wYXJpbmcgcGVyY2VudGFnZSB2YWx1ZXMsIGNvbXBhcmUgd2l0aCAwLTEwMCBzY2FsZSBhcyBpdAoJICBoYXMgYWxyZWFkeSBiZWVuIG1hZGUgcmVsYXRpdmUgdG8gMC1oaWdoX3BlcmNlbnQsIG90aGVyd2lzZSB3ZSBtYXJrCgkgIHRoZSBxdWV1ZSBhcyBub3QgYnVmZmVyaW5nIGFuZCByZXBvcnQgYSA1MCUgdG8gdGhlIHVzZXIuIFRoaXMgbGVhZHMgdG8KCSAgYSBidWZmZXJpbmcgc3RhbGwgYXMgdGhlIHVzZXIgYXNzdW1lcyB0aGUgcXVldWUgaXMgc3RpbGwgYnVmZmVyaW5nIGJ1dAoJICBpdCB0aGlua3MgaXQgaXNuJ3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY5NjkKCjIwMTQtMTEtMjMgMDU6NDI6NTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwZXJjZW50YWdlIGlzIGFuIGFic29sdXRlIHZhbHVlCgkgIG11bHRpcXVldWUncyBxdWV1ZXMgc3RvcmVkIHBlcmNlbnQgdmFsdWUgaXMgdGhlIHBlcmNlbnRhZ2UgZnJvbSAwCgkgIHRvIDEwMCAobWF4LXNpemUtKikgYW5kIHNob3VsZCBiZSBjb21wYXJlZCB3aXRoIHRoZSByZXF1ZXN0ZWQgbGltaXQKCSAgKGhpZ2hfcGVyY2VudGFnZSkgc2V0IGJ5IHRoZSB1c2VyIGFuZCBub3Qgd2l0aCAxMDAlIHRvIGNoZWNrIGlmCgkgIGJ1ZmZlcmluZyBzaG91bGQgc3RvcC4gT3RoZXJ3aXNlIHdlIGFyZSBvbmx5IHN0b3BwaW5nIGJ1ZmZlcmluZyB3aGVuIHRoZQoJICBxdWV1ZSBnZXRzIGNvbXBsZXRlbHkgZnVsbC4KCjIwMTQtMTEtMjAgMjE6MzM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGNhcHMgZXF1YWxpdHkgY2hlY2sKCSAgSW5zdGVhZCBvZiBjaGVja2luZyBpZiBvdXIgb3V0Y2FwcyBhcmUgZXF1aXZhbGVudCB0byB0aGUgcHJldmlvdXMgaW5jYXBzLCBhbmQKCSAgaWYgdGhhdCBpcyB0aGUgY2FzZSBub3Qgc2V0dGluZyBhbnkgY2FwcyBvbiB0aGUgcGFkLi4uIGNvbXBhcmUgYWdhaW5zdCBvdXIKCSAgcHJldmlvdXMgb3V0Y2FwcyBiZWNhdXNlIHRoYXQncyB3aGF0IHdlIGNhcmUgYWJvdXQuCgkgIEZpeGVzIHNvbWUgY2FzZXMgd2hlcmUgdGhlIG91dGNhcHMgYmVjYW1lIGVxdWl2YWxlbnQgdG8gdGhlIHByZXZpb3VzIGluY2FwcywKCSAgYnV0IHRoZSBwcmV2aW91cyBvdXRjYXBzIHdlcmUgZGlmZmVyZW50IGFuZCB3ZSB3ZXJlIHRoZW4gc2VuZGluZyBidWZmZXJzCgkgIGRvd25zdHJlYW0gdGhhdCB3ZXJlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNhcHMgd2UgZm9yZ290IHRvIHNldCBvbiB0aGUgcGFkLgoJICBSZXN1bHRpbmcgaW4gY3Jhc2hlcyBvciBpbWFnZSBjb3JydXB0aW9uLgoKMjAxNC0xMS0yMCAxMzozMzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIGJpc29uIHZlcnNpb24gY2hlY2sgcGF0Y2gKCSAgRml4IGNvbmZpZ3VyZSBjaGVjayB3aXRoIGJpc29uIGRldmVsb3BtZW50IHZlcnNpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg5NDYKCjIwMTQtMTEtMjAgMTM6MzQ6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3Qgb3ZlcnJlYWQgaW5wdXQgd2hlbiBzZWFyY2hpbmcgZm9yICIKCSAgV2hlbiBzZWFyY2hpbmcgZm9yIHRoZSBzdHJpbmcgdGVybWluYXRvciBkb24ndCByZWFkIHBhc3QgdGhlIGVuZGluZwoJICAwLWJ5dGUgd2hlbiBlc2NhcGluZyBjaGFyYWN0ZXJzLgoJICBBZGQgdW5pdCB0ZXN0IGZvciB2YXJpb3VzIGVzY2FwaW5nIGNhc2VzLgoKMjAxNC0xMS0wMyAxNzo0Njo1NyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZmFpbCBkcm9wcGVkIHF1ZXJpZXMKCSAgUHJldmlvdXNseSwgZHJvcHBpbmcgYSBxdWVyeSBmcm9tIGEgcGFkIHByb2JlIHdvdWxkIGRlZW0gdGhlCgkgIHF1ZXJ5IHN1Y2NlZWRlZCwgYW5kIHRoZSBjYWxsZXIgbWlnaHQgdGhlbiBhc3N1bWUgdGhlIHF1ZXJ5J3MKCSAgcmVzdWx0cyBhcmUgdmFsaWQsIGFuZCB0aHVzIGRlcmVmZXJlbmNlIGFuIGludmFsaWQgb2JqZWN0CgkgIHN1Y2ggYXMgYSBHc3RDYXBzLgoJICBXZSBub3cgYXNzdW1lIGRyb3BwZWQgcXVlcmllcyBkaWQgbm90IHN1Y2NlZWQuIERyb3BwZWQgZXZlbnRzCgkgIGFuZCBidWZmZXJzIGFyZSBzdGlsbCBkZWVtZWQgYSBzdWNjZXNzLgoJICBBZGRlZCBiYWNrIGFmdGVyIHByZXZpb3VzIHJldmVydCwgYXMgaXQncyBiZWVuIGRvdWJsZSBjaGVja2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwMDAzCgoyMDE0LTExLTEyIDEzOjU1OjIzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IGZhaWwgZHJvcHBlZCBxdWVyaWVzIgoJICBUaGlzIHdhcyBwdXNoZWQgYnkgbWlzdGFrZSBhbG9uZyB3aXRoIGFuIHVucmVsYXRlZCBwYXRjaC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjNzEwM2NlNGI4YzFkYTdkY2ZiY2YyZWM4M2E0MmEzNzZmYjg5NmUxLgoKMjAxNC0wNS0xMyAxMToxODowOCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsbG93IHNraXBwaW5nIG1vcmUgZGF0YSB0aGFuIHdlIGN1cnJlbnRseSBoYXZlCgkgIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc2tpcHBpbmcgbGFyZ2UgdW53YW50ZWQgZGF0YSwgc3VjaCBhcwoJICBsYXJnZSBhbGJ1bSBhcnQsIHdoZW4gd2Uga25vdyB0aGUgc2l6ZSBvZiBpdCBmcm9tIGEgbWV0YWRhdGEKCSAgaGVhZGVyLgoKMjAxNC0xMS0wMyAxNzo0Njo1NyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZmFpbCBkcm9wcGVkIHF1ZXJpZXMKCSAgUHJldmlvdXNseSwgZHJvcHBpbmcgYSBxdWVyeSBmcm9tIGEgcGFkIHByb2JlIHdvdWxkIGRlZW0gdGhlCgkgIHF1ZXJ5IHN1Y2NlZWRlZCwgYW5kIHRoZSBjYWxsZXIgbWlnaHQgdGhlbiBhc3N1bWUgdGhlIHF1ZXJ5J3MKCSAgcmVzdWx0cyBhcmUgdmFsaWQsIGFuZCB0aHVzIGRlcmVmZXJlbmNlIGFuIGludmFsaWQgb2JqZWN0CgkgIHN1Y2ggYXMgYSBHc3RDYXBzLgoJICBXZSBub3cgYXNzdW1lIGRyb3BwZWQgcXVlcmllcyBkaWQgbm90IHN1Y2NlZWQuIERyb3BwZWQgZXZlbnRzCgkgIGFuZCBidWZmZXJzIGFyZSBzdGlsbCBkZWVtZWQgYSBzdWNjZXNzLgoKMjAxNC0xMS0xMiAxMTozMDo1MSArMDEwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBGaXggcGF1c2Uvc3RvcCByYWNlIGNvbmRpdGlvbgoJICBJZiBhIHRhc2sgdGhyZWFkIGlzIGNhbGxpbmcgcGF1c2Ugb24gaXQgc2VsZiBhbmQgdGhlCgkgIGNvbnRyb2xsaW5nLyJtYWluIiB0aHJlYWQgc3RvcHMgdGhlIHRhc2ssIGl0IGNvdWxkIGVuZCBpbiBhIHJhY2UKCSAgd2hlcmUgZ3N0X3Rhc2tfZnVuYyBsb29wcyBhbmQgdGhlbiBjaGVja3MgZm9yIHBhdXNlZCBhZnRlciB0aGUKCSAgY29udHJvbGxpbmcgdGhyZWFkIGp1c3QgY2hhbmdlZCB0aGUgdGFzayBzdGF0ZSB0byBzdG9wcGVkLgoJICBIZW5jZSB0aGUgdGFzayB3b3VsZCBhY3R1YWxseSBjYWxsIGZ1bmMgYWdhaW4gZXZlbiB0aG91Z2ggaXQgd2FzCgkgIGJvdGggcGF1c2VkIGFuZCBzdG9wcGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwMDAxCgoyMDE0LTExLTEwIDEwOjAxOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IERvbid0IGNoZWNrIGJvb2xlYW5zIGZvciBlcXVhbGl0eSBpbiB0aGUgdW5pdCB0ZXN0CgkgIEV2ZXJ5IHZhbHVlIG90aGVyIHRoYW4gMC9GQUxTRSBpcyBUUlVFLCA9PSBUUlVFIHdpbGwgb25seSBjaGVjayBmb3IgMS4KCjIwMTQtMTEtMDUgMTE6NTA6NDcgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogQWRkIGdzdF9vYmplY3RfaGFzX3BhcmVudCgpCgkgIEFkZHMgZ3N0X29iamVjdF9oYXNfcGFyZW50LCB3aGljaCB3b3JrcyBsaWtlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yCgkgIGJ1dCBkb2VzIG5vdCBhc2NlbmQgZnVydGhlci4KCSAgQVBJOiBnc3Rfb2JqZWN0X2hhc19wYXJlbnQoKQoKMjAxNC0xMS0wOSAxMDozNzo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCBib3RoZXIgdGhlIHN1YmNsYXNzIHdpdGggc2V0dGluZyB0aGUgc2FtZSBjYXBzIG11bHRpcGxlIHRpbWVzCgoyMDE0LTExLTA5IDEwOjMyOjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgYm90aGVyIHRoZSBzdWJjbGFzcyB3aXRoIHNldHRpbmcgdGhlIHNhbWUgY2FwcyBtdWx0aXBsZSB0aW1lcwoKMjAxNC0xMS0wOSAxMDoyOTo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCBib3RoZXIgdGhlIHN1YmNsYXNzIHdpdGggc2V0dGluZyB0aGUgc2FtZSBjYXBzIG11bHRpcGxlIHRpbWVzCgoyMDE0LTExLTA3IDA4OjIyOjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJlbW92ZSBjb25kaXRpb25hbCBmb3IgR19WQUxVRV9DT0xMRUNUX0lOSVQKCSAgVGhpcyBBUEkgaXMgaW4gZ2xpYiBzaW5jZSAyLjI0IGFuZCB3ZSBjdXJyZW50bHkgcmVxdWlyZSAyLjMyIGFuZCBhbHJlYWR5IHVzZQoJICB0aGlzIHVuY29uZGl0aW9uYWxseSBlbHNld2hlcmUuCgoyMDE0LTExLTA1IDE5OjA5OjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IHJlbW92ZSBjb21tZW50ZWQgY29kZQoJICBUaGUgR1F1YXJrIHdhcyBuZXZlciB1c2VkLgoKMjAxNC0xMS0wNyAxMTozNDowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgZ3N0Y29uZmlnOiBQdXQgZ3N0Y29uZmlnLmggaW50byAkKGxpYmRpcikvZ3N0cmVhbWVyLTEuMC9pbmNsdWRlCgkgIEl0J3MgYXJjaGl0ZWN0dXJlIGRlcGVuZGVudCBhbmQgc2hvdWxkIG5vdCBiZSBwbGFjZWQgaW50byB0aGUgaW5jbHVkZQoJICBkaXJlY3RvcnkgYXMgdGhlIGFzc3VtcHRpb24gaXMgdGhhdCBhbGwgdGhvc2UgaGVhZGVycyBhcmUgYXJjaGl0ZWN0dXJlCgkgIGluZGVwZW5kZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NzY3CgoyMDE0LTExLTA3IDEwOjU2OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2FybmluZ3MKCSAgZ3N0dXJpLmM6OTk3OiBFcnJvcjogR3N0OiBTa2lwcGluZyBpbnZhbGlkIEdUSy1Eb2MgY29tbWVudCBibG9jazoKCSAgLyoqIHByaXZhdGUgR3N0VXJpIGZ1bmN0aW9ucyAqKi8KCSAgXgoJICBnc3R1cmkuYzoxMTc5OiBFcnJvcjogR3N0OiBTa2lwcGluZyBpbnZhbGlkIEdUSy1Eb2MgY29tbWVudCBibG9jazoKCSAgLyoqIFJGQyAzOTg2IGZ1bmN0aW9ucyAqKi8KCSAgXgoKMjAxNC0xMC0yNCAyMToyNTo1NCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IEZpeCBnc3RfZGF0YV9xdWV1ZV9uZXcoKSBkZXNjcmlwdGlvbi4KCSAgUmV3b3JkIHRoZSBmdW5jdGlvbiBkb2NzLCB3aGljaCBoYXZlbid0IG1hZGUgYW55IHNlbnNlIHNpbmNlCgkgIGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkgd2FzIHJlbW92ZWQgYSBmZXcgeWVhcnMgYWdvLgoKMjAxNC0xMS0wMyAxODoyNzoyMSArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQW5zd2VyIHRoZSBxdWVyeSBwb3NpdGlvbiB3aGVuIHJlY2VpdmluZyBpdCBmcm9tIHVwc3RyZWFtCgkgIEN1cnJlbnRseSB3ZSBhcmUganVzdCByZXR1cm5pbmcgRkFMU0UsIGJ1dCB3ZSBkbyBoYXZlIHRoZSBpbmZvcm1hdGlvbgoJICB3ZSBzaG91bGQganVzdCBhbnN3ZXIgdGhlIHF1ZXJ5IHRoZSBzYW1lIHdheSBhcyB3aGVuIGFuc3dlcmluZyB0aHJvdWdoCgkgIHRoZSBHc3RFbGVtZW50LnF1ZXJ5IHZtZXRob2QgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTU4MAoKMjAxNC0xMC0yMiAxNDowNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgYW4gb3B0aW9uYWwgZGVsYXllZCBjYXBzIGNoYW5nZSBtb2RlCgkgIEluIHRoaXMgbW9kZSB3ZSBhY2NlcHQgcHJldmlvdXNseSBzZXQgZmlsdGVyIGNhcHMgdW50aWwKCSAgdXBzdHJlYW0gcmVuZWdvdGlhdGVzIHRvIHNvbWV0aGluZyB0aGF0IGlzIGNvbXBhdGlibGUKCSAgdG8gdGhlIGN1cnJlbnQgZmlsdGVyIGNhcHMuCgkgIFRoaXMgYWxsb3dzIGR5bmFtaWMgY2FwcyBjaGFuZ2VzIGluIHRoZSBwaXBlbGluZSBldmVuCgkgIGlmIHRoZXJlIGlzIGEgcXVldWUgYmV0d2VlbiBhbnkgY29udmVyc2lvbiBlbGVtZW50CgkgIGFuZCB0aGUgY2Fwc2ZpbHRlci4gV2l0aG91dCB0aGlzIHdlIHdvdWxkIGdldCBub3QtbmVnb3RpYXRlZAoJICBlcnJvcnMgaWYgdGltaW5nIGlzIGJhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTAwMgoKMjAxNC0xMS0wMiAyMDoxNjo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBtaW5vciBjb2RlIGNsZWFuLXVwCgkgIEFuZCBnZXQgcmlkIG9mIGdfbGlzdF9wcmVwZW5kL2dfbGlzdF9yZXZlcnNlCgkgIGFudGktcGF0dGVybiB3aGlsZSB3ZSdyZSBhdCBpdC4KCjIwMTQtMTEtMDIgMTg6NTE6MDggKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZW5zdXJlIEdTdHJlYW1lciBpbml0aWFsaXphdGlvbiBkZWJ1ZyBtZXNzYWdlIGlzIGRpc3BsYXllZAoJICBUaGUgR1NUX0lORk8gKCJpbml0aWFsaXplZCBHU3RyZWFtZXIgc3VjY2VzZnVsbHkiKSBpcyBjdXJyZW50bHkgYXQgdGhlIGVuZCBvZgoJICBnc3RfaW5pdF9jaGVjayB3aGljaCBpc24ndCBndWFyYW50ZWVkIHRvIGJlIHJ1biBzaW5jZSBHU3RyZWFtZXIgY2FuIGJlCgkgIGluaXRpYWxpemVkIGJ5IHVzaW5nIGluaXRfcHJlIGFuZCBpbml0X3Bvc3QgZGlyZWN0bHkgZnJvbSBHT3B0aW9uQ29udGV4dCBsaWtlCgkgIGdzdC1sYXVuY2ggZG9lcy4gRW5zdXJlIHRoaXMgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgYnkgbW92aW5nIGl0IHRvIGluaXRfcG9zdC4KCjIwMTQtMTEtMDEgMTk6NTY6NDEgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2M6IERvIG5vdCB1c2UgZGVwcmVjYXRlZCBndGstZG9jICdSZW5hbWUgdG8nIHRhZwoJICBHT2JqZWN0IGludHJvc3BlY3Rpb24gR1RLLURvYyB0YWcgIlJlbmFtZSB0byIgaGFzIGJlZW4gZGVwcmVjYXRlZCwgY2hhbmdpbmcgdG8KCSAgcmVuYW1lLXRvIGFubm90YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk1MTQKCjIwMTQtMTEtMDEgMjI6MzA6MzAgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQGRhcmtvc3BoZXJlLmZyPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGFkZCBHX1BBUkFNX0RFUFJFQ0FURUQgdG8ga25vd24gZmxhZ3MKCSAgRGlzcGxheSAnZGVwcmVjYXRlZCcgaW5zdGVhZCBvZiBmbGFnIHZhbHVlIHdoZW4gdXNpbmcgR19QQVJBTV9ERVBSRUNBVEVECgkgIGluIGVsZW1lbnQgcHJvcGVydGllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTUxOAoKMjAxNC0xMC0zMSAxNjoxMDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSAgdGVzdHM6IHJlZmFjdG9yIHRvb2xzIGNoZWNrIGEgbGl0dGxlCgkgIFVzZSBhbiBhcnJheSBvZiBjb25zdGFudCBzdHJpbmdzIHNvIGlmIGFyZ3VtZW50cyBnZXQKCSAgcmVtb3ZlZCBmcm9tIGl0IHRoZXkgYXJlIG5vdCBjb25zaWRlcmVkIGxlYWtlZCwgYW5kCgkgIHZhbGdyaW5kIGlzIGhhcHB5LiBTdGlsbCBzb21lIHN0dWZmIGxlYWtpbmcgaW4gR0xpYgoJICB0aG91Z2guCgoyMDE0LTEwLTMwIDIzOjE0OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBmaXggb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzIGluIGJ5dGVyZWFkZXIgdW5pdCB0ZXN0CgkgIENhdWdodCBieSAtZnNhbml0aXplPWFkZHJlc3MgLyBsaWJhc2FuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NDMxCgoyMDE0LTEwLTI4IDE5OjE2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IG1ha2UgZ3N0X2luaXQoKSB0aHJlYWQtc2FmZQoJICBCZWNhdXNlIHdlIGNhbiwgYW5kIHRoZXJlIGlzbid0IHJlYWxseSBhbnkKCSAgcmVhc29uIG5vdCB0byBkbyBzby4KCjIwMTQtMTAtMjggMDk6Mjg6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICB0ZXN0czogZmRzcmM6IGRvbid0IGlnbm9yZSByZXR1cm4gdmFsdWUgb2Ygd3JpdGUoKQoJICBDYXVzZXMgY29tcGlsZXIgd2FybmluZ3Mgb24gc29tZSBzeXN0ZW1zLgoKMjAxNC0xMC0yOCAwMDowNDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgIHRlc3RzOiBmaXggZmRzcmMgdGVzdCBjb3JuZXIgY2FzZQoJICBNYWtlIHBpcGUgc29ja2V0IG5vbi1ibG9ja2luZywgc28gd2UgZG9uJ3QKCSAgZW5kIHVwIGJlaW5nIGJsb2NrZWQgaW4gYSB3cml0ZSBvbiB0aGUgcGlwZQoJICB3aGlsZSB0aGUgc3JjIGlzIGVvcyBhbmQgbm90IHJlYWRpbmcgZGF0YQoJICBhbnkgbW9yZSwgYW5kIHRodXMgd2UgbmV2ZXIgdW5ibG9jayBhbmQgbmV2ZXIKCSAgbm90aWNlIHRoYXQgd2UncmUgZG9uZS4gVGhpcyB3b3VsZCBoYXBwZW4KCSAgcXVpdGUgcmVsaWFibHkgb24gdGhlIHJwaS4KCjIwMTQtMTAtMjcgMTc6NTY6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg0ZDA2Y2QgdG8gN2JiMmJjZQoKMjAxNC0xMC0yNSAxNzoxNTo0MiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBUcml2aWFsIHR5cG8gZml4CgoyMDE0LTEwLTI0IDEyOjUxOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgdW5sb2NrIG11dGV4IHRoYXQgaXMgbm90IGxvY2tlZAoJICBGaXhlcyAnQXR0ZW1wdCB0byB1bmxvY2sgbXV0ZXggdGhhdCB3YXMgbm90IGxvY2tlZCcKCSAgd2FybmluZyB3aXRoIG5ld2VyIEdMaWJzIHdoZW4gc2luayBpcyBzaHV0IGRvd24gaW4KCSAgY2VydGFpbiBzaXR1YXRpb25zLiBUcmlnZ2VyZWQgYnkgdGhlIGRlY29kZWJpbgoJICB0ZXN0X3JldXNlX3dpdGhvdXRfZGVjb2RlcnMgdW5pdCB0ZXN0IGluIC1iYXNlCgkgIHNvbWV0aW1lcywgZXNwLiBvbiBzbG93ZXIgbWFjaGluZXMuCgoyMDE0LTEwLTIyIDE4OjI1OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZm9yIG5ldyBfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgR3N0Q29udHJvbFBvaW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2MTYKCjIwMTQtMDktMjkgMjE6MTA6MTQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBBZGQgc29tZSBzaWduYWxzIGFib3V0IHZhbHVlcyBjaGFuZ2VzCgkgIEluIG9yZGVyIGZvciB1c2VyIHRvIGJlIGFibGUgdG8gdHJhY2sgY2hhbmdlcyBpbiB0aGUgdmFsdWUgc2V0IGluCgkgIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlIHRoZSBmb2xsb3dpbmcgc2lnbmFscyBoYXZlIGJlZW4gYWRkZWQ6CgkgICogdmFsdWUtYWRkZWQKCSAgKiB2YWx1ZS1yZW1vdmVkCgkgICogdmFsdWUtY2hhbmdlZAoJICBUbyBiZSBhYmxlIHRvIHVzZSBhIEdzdENvbnRyb2xQb2ludCB0byBiZSBtYXJzaGFsbGVkIGludG8gdGhlIHNpZ25hbHMsCgkgIHRoZSBHc3RDb250cm9sUG9pbnQgc3RydWN0dXJlIGlzIG5vdyByZWdpc3RlcmQgYXMgYSBHQm94ZWQgdHlwZS4KCSAgTmV3IEFQSToKCSAgfn5+fn5+fgoJICAqIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlOjp2YWx1ZS1hZGRlZAoJICAqIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlOjp2YWx1ZS1yZW1vdmVkCgkgICogR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2U6OnZhbHVlLWFkZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2MTYKCjIwMTQtMTAtMjEgMTM6MDE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE4Yzg5MzkgdG8gODRkMDZjZAoKMjAxNC0xMC0yMSAxMjoxODozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IHJlbW92ZSBkdXBsaWNhdGUgZ3N0X21lc3NhZ2VfZ2V0X3R5cGUoKSBpbiBpbml0CgkgIFNwb3R0ZWQgYnk6IEphbiBTdGVmZmVucwoKMjAxNC0xMC0yMSAxMjo1Nzo0NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZTc1NDk4IHRvIGE4Yzg5MzkKCjIwMTQtMTAtMjAgMTY6Mzk6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBpbmNsdWRlIHRoZSBhY3R1YWwgZGVsdGEgaW4gdGhlIG1lc3NhZ2UKCSAgSW5jbHVkaW5nIHRoZSBhY3R1YWwgZGVsdGEgaW4gdGhlIG1lc3NhZ2UgbWFrZXMgaXQgZWFzeSB0byBzZWUsIGlmIHRoZSBuZXcKCSAgYnVmZmVyIGlzIGJlaGluZCBvciBhaGVhZCBhbmQgaG93IG11Y2guCgoyMDE0LTEwLTE4IDE4OjQzOjQzICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogVGlkeSBpbml0aWFsaXNhdGlvbgoJICBVc2Ugc29tZSBtYWNyb3MgdG8gbWFrZSBvdXIgdmFsdWUgZnVuY3Rpb25zIHNldHVwIGEgYml0CgkgIHRpZGllciwgYW5kIG1pY3JvLW9wdGltaXNlIGEgZmV3IHJlYWxsb2NzIGJ5IHNldHRpbmcgYW4KCSAgaW5pdGlhbCBzaXplIGZvciB0aGUgZ2xvYmFsIHR5cGUgYXJyYXlzLgoKMjAxNC0xMC0xOCAxNzoyNzowNCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBSdW4gaW5kZW50IHR3aWNlLiBPbmNlIGlzIG5vdCBpZGVtcG90ZW50LCB0d2ljZSBzZWVtcyB0byBiZS4KCjIwMTQtMTAtMTYgMTA6MTM6MTQgKzA0MDAgIEFuZHJlaSBTYXJha2VldiA8c2FyYWt1c2hhQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIGFueSB3YWl0aW5nIHN0cmVhbXMgaWYgdGhlIGN1cnJlbnQgb25lIGdvZXMgRU9TCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBoYXZlIHVubGlua2VkIHN0cmVhbXMgd2FpdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5OAoKMjAxNC0xMC0xNyAxMjo0MTowNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICB0eXBlZmluZDogc2ltcGxpZnkgcmVnaXN0cmF0aW9uIGNvZGUKCSAgUmVtb3ZlIGEgdXNlbGVzcyBhc3NlcnQgKHdlIGp1c3QgaW5zdGFudGlhdGVkIHRoaXMgdHlwZSkuIERyb3AgdGhlIGZyZWUnaW5nIG9mCgkgIHRoZSBleHRlbnNpb24gYXJyYXkuIEFzIHdlIGp1c3QgY3JlYXRlZCB0aGUgaW5zdGFuY2UgdGhpcyBpcyBhbHdheXMgTlVMTC4KCjIwMTQtMTAtMTYgMTA6NTU6MzYgKzAyMDAgIEZlbGl4IFNjaHdhcnogPGZlbGl4LnNjaHdhcnpAb3NzLnNjaHdhcnouZXU+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgZG9jczogcHdkOiBmaXggdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODYxMgoKMjAxNC0xMC0xMSAxOToyODoyMSArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzcC5zdmVuc3NvbkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBBZGQgYSB0ZXN0IGZvciByZW1vdmluZyBhIGJ1cyB3YXRjaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MTk1CgoyMDE0LTA4LTE5IDIzOjI4OjUyICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNwLnN2ZW5zc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidXM6IEFkZCBhIGZ1bmN0aW9uIHRvIHJlbW92ZSBhIGJ1cyB3YXRjaAoJICBJZiBhIGJ1cyB3YXRjaCBpcyBhZGRlZCB0byB0aGUgbm9uIGRlZmF1bHQgbWFpbiBjb250ZXh0IGl0J3Mgbm90CgkgIHBvc3NpYmxlIHRvIHJlbW92ZSBpdCB1c2luZyBnX3NvdXJjZV9yZW1vdmUoKS4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUxOTUKCjIwMTQtMTAtMDggMjI6NTE6NTYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IFVwZGF0ZSBHc3RRT1NUeXBlIGRvY3VtZW50YXRpb24gYSBiaXQKCSAgQ29ycmVjdGlvbiBmb3Igd2hvIGlzIHByb2R1Y2luZyBkYXRhIHRvbyBmYXN0LCBhbmQgc29tZSBvdGhlciBtaW5vcgoJICBjbGFyaWZpY2F0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE2NgoKMjAxNC0xMC0wOCAxNjowMzoyMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSAgZG9jczogcHdnOiBmaXggdHdvIHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxNTMKCjIwMTQtMTAtMDggMTU6Mzc6MzcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBkb2NzOiBwd2c6IGZpeCB0eXBvIGluICdEeW5hbWljIG5lZ290aWF0aW9uJyBzZWN0aW9uCgkgIFRoZSBwb2ludCBvZiB0aGlzIGV4YW1wbGUgaXMgdG8gc2hvdyBob3cgdG8gc2V0IGNhcHMKCSAgb24gdGhlIHNvdXJjZSBwYWQgb25jZSBpdCBoYXMgYmVlbiBzZXQgb24gdGhlIHNpbmsgcGFkLgoJICBTbywgaW4gcGFzc3Rocm91Z2ggbW9kZSwgdGhlIGNhcHMgaXMganVzdCBjb3BpZWQgdG8gdGhlCgkgIHNvdXJjZSBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxNTMKCjIwMTQtMTAtMDggMDk6Mzc6NDEgLTA3MDAgIEFsZWl4IENvbmNoaWxsbyBGbGFxdcOpIDxhbGVpeEBvYmxvbmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvbid0IGxvY2sgbXVsdGlxdWV1ZSB3aGVuIHB1c2hpbmcgc2VyaWFsaXplZCBxdWVyaWVzCgkgIElmIHdlIGFyZSBwdXNoaW5nIGEgc2VyaWFsaXplZCBxdWVyeSBpbnRvIGEgcXVldWUgYW5kIHRoZSBxdWV1ZSBpcwoJICBmaWxsZWQsIHdlIHdpbGwgZW5kIGluIGEgZGVhZGxvY2suIFdlIG5lZWQgdG8gcmVsZWFzZSB0aGUgbG9jayBiZWZvcmUKCSAgcHVzaGluZyBhbmQgYWNxdWlyZSBpdCBhZ2FpbiBhZnRlcndhcmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3OTQKCjIwMTQtMTAtMDggMDE6MzM6NTEgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXNlIEdTVF9QVFJfRk9STUFUIGluIGRlYnVnIHRvIG91dHB1dCBidWZmZXIgZGV0YWlscwoJICBVc2UgJUdTVF9QVFJfRk9STUFUIGluc3RlYWQgb2YgJXAgaW4gZGVidWcgb3V0cHV0IHNvIGFsbCB0aGUgYnVmZmVyCgkgIGRldGFpbHMgYXJlIG91dHB1dAoKMjAxNC0xMC0wNiAxMzozODoyMSArMDIwMCAgTmljb2xhcyBIdWV0IDxuaWNvbGFzLmh1ZXRAcGFycm90LmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogZml4IG11bHRpLXRocmVhZCBlbnRyeSBzdGF0dXMgaXNzdWUKCSAgUnVubmluZyB0d28gdGhyZWFkcywgb25lIGV4ZWN1dGluZyB0aGUgdGltZXIgYW5kIG9uZSB1bnNjaGVkdWxpbmcgaXQsIHRoZQoJICB1bnNjaGVkdWxlZCBzdGF0dXMgc2V0IGJ5IHRoZSBzZWNvbmQgdGhyZWFkIGlzIHNvbWV0aW1lcyBvdmVyd3JpdHRlbiBieSB0aGUKCSAgZmlyc3Qgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3OTk5CgoyMDE0LTEwLTAzIDE0OjA0OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjb21waWxhdGlvbgoKMjAxNC0xMC0wMyAxNDo0NDo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogZXh0cmFjdCBzb21lIGNvbW1vbiBjb2RlIGludG8gaGVscGVycwoKMjAxNC0xMC0wMyAxNDowMTo1OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3Rvcjogc21hbGwgY29kZSBjbGVhbnVwcwoJICBSZW5hbWUgVElNRVNUQU1QIC0+IFBUUy4gTW92ZSBhIHZhciBkb3duIHRvIHRoZSBzY29wZSB3aGVyZSBpdCBpcyB1c2VkLiBVc2UKCSAgZ19xdWV1ZV9mcmVlX2Z1bGwoKS4KCjIwMTQtMTAtMDMgMTM6NDc6NDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBwcmludGYgZm9ybWF0CgkgIFRoZSBwYWRjb3VudCBpcyB1aW50LiBBbHNvIGFkZCBjb21tZW50cyB0byB0aGUgaW5zdGFuY2UgdmFycy4KCjIwMTQtMTAtMDIgMDM6MzA6MjQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGxlYWsgY2FwcyBpbiBnc3RfYmFzZV9wYXJzZV9wcm9jZXNzX3N0cmVhbWhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzYyCgoyMDE0LTEwLTAzIDEzOjE0OjI1ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogc2V0X3NpbmtfY2FwcyB2ZnVuYyBzaG91bGQndCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzYyCgoyMDE0LTEwLTAzIDA5OjU3OjM3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IG1hcmsgdGhlIHBhdHRlcm4gcHJvcGVydHkgYXMgdW51c2VkCgkgIFJldmVydCB0aGUgcHJldmlvdXMgY29tbWl0IHdoaWNoIHJlbW92ZXMgdGhlIHBhdHRlcm4gcHJvcGVydHkgb2YgZmFrZXNyYyBiZWNhdXNlCgkgIGRvaW5nIHNvIHdpbGwgYnJlYWsgQUJJLiBCcmluZ2luZyB0aGUgcHJvcGVydHkgYmFjayBidXQgbWFya2luZyBpdCBhcyB1bnVzZWQKCSAgaW4gdGhlIHByb3BlcnR5IHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzY4MwoKMjAxNC0xMC0wMyAwOTowMToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBkb24ndCBsZWFrIGNhcHMgaW4gZ3N0X2Jhc2VfcGFyc2VfcHJvY2Vzc19zdHJlYW1oZWFkZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWU4YjRiZjA4NTE4MGY3YTRjN2FlNmVjMGY1MjViYWVhZWRkNGRmOC4KCSAgVGhpcyBjYXVzZXMgcmVmY291bnRpbmcgY3JpdGljYWxzIGluIHRoZSBiYXNlcGFyc2UgdW5pdCB0ZXN0LgoKMjAxNC0xMC0wMiAxMzo0NTozNCArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgZmFrZXNyYzogcmVtb3ZpbmcgdW51c2VkIHBhdHRlcm4gb3B0aW9uCgkgIEV2ZW50aG91Z2ggdGhlICJwYXR0ZXJuIiBwcm9wZXJ0eSBvZiBmYWtlc3JjIGNhbiBiZSBzZXQsIGl0IGlzIG5ldmVyIHVzZWQuIFRoZQoJICBvbmx5IHBhdHRlcm4gc3VwcG9ydGVkIGlzIHRoZSBkZWZhdWx0IDB4MDAgLT4gMHhmZiwgYW5kIGlmIGEgcGF0dGVybiBpcyBzZXQgYnkKCSAgdGhlIHVzZXIgaXQgaXMgaWdub3JlZC4gUmVtb3ZpbmcgdGhlIHVudXNlZCBwcm9wZXJ0eSBhbmQgdmFyaWFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2ODMKCjIwMTQtMTAtMDIgMTQ6NTU6MjIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBBZGQgbWlzc2luZyBicmVhayBpbiBzd2l0Y2gKCjIwMTQtMTAtMDIgMTE6MDA6MzIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiB1cGRhdGUgc2VnbWVudCBwb3NpdGlvbiBvbiBHQVAgZXZlbnRzIHRvIGNhbGN1bGF0ZSBsZXZlbHMgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzQ5OAoKMjAxNC0xMC0wMiAxMDo1Nzo0MyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXBkYXRlIHNlZ21lbnQgcG9zaXRpb24gb24gR0FQIGV2ZW50cyB0byBjYWxjdWxhdGUgbGV2ZWxzIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0OTgKCjIwMTQtMDktMjcgMjA6MTA6MzQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogdXBkYXRlIHNlZ21lbnQgcG9zaXRpb24gb24gR0FQIGV2ZW50cyB0byBjYWxjdWxhdGUgbGV2ZWxzIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0OTgKCjIwMTQtMTAtMDIgMDM6MzA6MjQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGxlYWsgY2FwcyBpbiBnc3RfYmFzZV9wYXJzZV9wcm9jZXNzX3N0cmVhbWhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzYyCgoyMDE0LTEwLTAyIDEwOjEzOjI4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFB1c2ggcGVuZGluZyBldmVudHMgYmVmb3JlIGEgYnVmZmVyIGFsc28gaWYgdXBzdHJlYW0gbmV2ZXIgY29uZmlndXJlZCBjYXBzIGJ1dCB3ZSBoYXZlIHNyY3BhZCBjYXBzIGFscmVhZHkKCSAgT3RoZXJ3aXNlIHdlIG5ldmVyIHNlbmQgcGVuZGluZyBldmVudHMgZG93bnN0cmVhbSB0aGF0IGFycml2ZSBhZnRlciB3ZQoJICBjb25maWd1cmVkIGNhcHMgb24gdGhlIHNyY3BhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzczNQoKMjAxNC0wOS0yOSAxNzo0ODoyOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBEb24ndCB1bmNvbmRpdGlvbmFsbHkgdXNlIGdfbGlzdF9jb3B5X2RlZXAoKQoJICBXZSBkb24ndCBkZXBlbmQgb24gR0xpYiAyLjM0IHlldCBhbmQganVzdCBmb3IgdGhpcyBzZWVtcyBhIGJpdCB1c2VsZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NTg0CgoyMDE0LTA5LTI5IDE2OjIyOjQ3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogSW5jbHVkZSBvdXIgb3duIEJTRCBsaWNlbnNlZCBjb3B5IG9mIHN0cmNhc2VzdHIoKSBmb3IgV2luZG93cyBhbmQgb3RoZXJzCgoyMDE0LTA5LTI5IDE1OjU0OjM3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBjb21waWxlciB3YXJuaW5ncyB3aXRoIGdjYwoJICBUaGVzZSBhcmUgYWN0dWFsbHkgbm90IHRydWUuCgkgIGdzdHVyaS5jOiBJbiBmdW5jdGlvbiAnX2dzdF91cmlfc3RyaW5nX3RvX3RhYmxlLmNvbnN0cHJvcCc6CgkgIGdzdHVyaS5jOjEzMTY6Mjc6IGVycm9yOiAncGN0X2t2X3NlcCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIGZvciAobmV4dF9zZXAgPSBzdHJjYXNlc3RyICh2YWx1ZSwgcGN0X2t2X3NlcCk7IG5leHRfc2VwOwoJICBeCgkgIGdzdHVyaS5jOjEyODM6MjQ6IGVycm9yOiAncGN0X3BhcnRfc2VwJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZF0KCSAgbmV4dF9zZXAgPSBzdHJjYXNlc3RyIChuZXh0X3NlcCArIDEsIHBjdF9wYXJ0X3NlcCkpIHsKCSAgXgoKMjAxNC0wOS0yOSAxMjoxOTozNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggbWVtb3J5IGxlYWsgaW4gZ3N0X3VyaV9qb2luKCkKCSAgVGhlIG1lcmdlZCBwYXRoIHNlZ21lbnRzIGFyZSBhIGRlZXAtY29waWVkIGxpc3QgYW5kIHdlIG5lZWQgdG8gZnJlZSB0aGUKCSAgY29udGFpbmVkIHN0cmluZ3MgdG9vIGluc3RlYWQgb2YganVzdCB0aGUgbGlzdCBub2RlcyB0aGVtc2VsdmVzLgoKMjAxNC0wNy0zMSAyMjoxODo1MyArMDEwMCAgRGF2aWQgV2FyaW5nIDxkYXZpZC53YXJpbmdAcmQuYmJjLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFVyaTogQWRkIEdzdFVyaSBtaW5pb2JqZWN0IHRvIGhhbmRsZSBVUklzIGluIGFuIFJGQyAzOTg2IGNvbXBsaWFudCBmYXNoaW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjUyMjEKCjIwMTQtMDktMjcgMTM6NTc6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogYWRkIGdzdC1ycGljYW1zcmMgdG8gZ3N0LXVuaW5zdGFsbGVkCgoyMDE0LTA5LTI1IDIxOjIxOjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZml4bWU6IGJ1bXAgbGVmdG92ZXIgMC4xMSBmaXhtZSBjb21tZW50cwoKMjAxNC0wOS0yNSAyMTowNDoyMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogJ25ld3NlZ21lbnQnIHRvICdzZWdtZW50JyBpbiB0aGUgZG9jcwoJICBCcmluZ3MgdGhlIGFwaS1kb2NzIGluIHN5bmMgd2l0aCB0aGUgMS4wIGFwaSByZW5hbWUuCgoyMDE0LTA5LTI1IDIwOjIzOjMxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1vdmUgdGhlIHF1aWNrIHJldHVybiB1cAoJICBEb24ndCBhc3NpZ24gbG9jYWwgdmFycyBpZiB3ZSBza2lwIGFueXdheS4gQWRkIGxvZ2dpbmcgZm9yIGZhaWx1cmUgY29uZGl0aW8KCjIwMTQtMDktMjUgMTk6MDE6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJICB0ZXN0czogcGFyYWxsZWxpc2UgJ21ha2UgdmFsZ3JpbmQnCgkgIFVzZSAkKE1BS0UpIGluc3RlYWQgb2YgJ21ha2UnIGluc2lkZSB0aGUgTWFrZWZpbGUsCgkgIG90aGVyd2lzZSB0aGUgbWFrZSB3aWxsIHJ1biBhcyBpZiAtajEgaGFkIGJlZW4KCSAgc3BlY2lmaWVkIGFuZCBjb21wbGFpbiBhYm91dCB0aGUgam9iIHNlcnZlciBub3QKCSAgYmVpbmcgYXZhaWxhYmxlLCBhbmQgd2l0aCAkKE1BS0UpIGluIGluaGVyaXRzIHRoZQoJICBwYXJlbnQgbWFrZSdzIHNldHRpbmdzIGl0IHNlZW1zLgoJICBVcGdyYWRlIGNvbW1vbiBzdWJtb2R1bGUgZm9yIHBhcmFsbGVsIGNoZWNrLXZhbGdyaW5kLgoJICBMZXQgdGhpcyBzZXR0bGUgYSBiaXQgYmVmb3JlIHVwZ3JhZGluZyB0aGUgb3RoZXIgbW9kdWxlcy4KCjIwMTQtMDktMjUgMTg6NTc6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlCgkgIEl0J3Mgc29ydGVkLiBJZiBpdCdzIHVuc29ydGVkLCBtYWtlIGNoZWNrLWV4cG9ydHMgZmFpbHMuCgoyMDE0LTA5LTI1IDE4OjU1OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVtb3ZlIGNvbmZ1c2luZyB3YXJuaW5nIGFib3V0IHJ1bm5pbmcgdW5kZXIgdmFsZ3JpbmQKCSAgV2UncmUgbm90IGFjdHVhbGx5IGRvaW5nIGFueXRoaW5nIGRpZmZlcmVudGx5IGFueXdoZXJlIHdoZW4KCSAgd2UgZGV0ZWN0IHRoYXQgd2UncmUgcnVubmluZyB1bmRlciB2YWxncmluZCwgc28gbGV0J3Mgbm90CgkgIHByaW50IHRoYXQgY29uZnVzaW5nIG1lc3NhZ2UgdGhhdCBtYWtlcyBwZW9wbGUgd29uZGVyIGhvdwoJICB0aGV5IGNhbiBzd2l0Y2ggaXQgb2ZmIHNvIHRoZXkgY2FuIHZhbGdyaW5kIHRoZSBub3JtYWwKCSAgY29kZSBwYXRocy4gU2VlaW5nIHRoYXQgd2UncmUgbm90IGRvaW5nIHRoYXQgbm9yIGhhdmUgZG9uZQoJICBzbyBpbiB0aGUgbGFzdCAxMCB5ZWFycyB3ZSBtaWdodCBqdXN0IGFzIHdlbGwgcmVtb3ZlIHRoZQoJICBlbnRpcmUgY2hlY2sgYWN0dWFsbHkuCgoyMDE0LTA5LTI1IDE2OjIxOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGZpeCBjYXBzIGxlYWsgaW4gYmFzZXBhcnNlIHVuaXQgdGVzdAoKMjAxNC0wOS0yNSAxNDo1NDoyMyArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Zsb3djb21iaW5lci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGZsb3djb21iaW5lcjogYWRkIGEgZ3N0X2Zsb3dfY29tYmluZXJfY2xlYXIoKSBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzM1OQoJICBBUEk6IGdzdF9mbG93X2NvbWJpbmVyX2NsZWFyKCkKCjIwMTQtMDktMjQgMTA6MTE6NTQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBIYW5kbGUgZ3N0LXB5dGhvbiBpbiBnc3QtdW5pbnN0YWxsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTA4MgoKMjAxNC0wNi0wMyAxNDoyMzozMCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFJlbW92ZSBFT1MgZXZlbnQgZnJvbSBwZW5kaW5nX2V2ZW50IGxpc3Qgb24gRkxVU0hfU1RPUAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODY4CgoyMDE0LTA5LTIyIDE0OjI3OjA1ICswMTAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jczogRml4IEdzdEJ1ZmZlciB0eXBvICJtZW1vcnkgYm9jayIgLT4gIm1lbW9yeSBibG9jayIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzExNwoKMjAxNC0wOS0yMiAxNzoyNzozMSArMDEwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvY3M6IEltcHJvdmUgZ3N0X2J1ZmZlcl9nZXRfbWV0YSgpIHRvIGNsZWFyIHVwIGNvbmZ1c2lvbgoJICBJIHdhcyBjb25mdXNlZCBieSB0aGUgZXhpc3RlbmNlIG9mIGBnc3RfYnVmZmVyX2dldF9tZXRhYCBhcyBpdCBzdWdnZXN0ZWQKCSAgdG8gbWUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgYXR0YWNoIG9uZSBvZiBhbnkgdHlwZSBvZiBHc3RNZXRhIHRvIGEgYnVmZmVyLgoJICBJdCdzIHBlcmZlY3RseSBmaW5lIHRvIGF0dGFjaCBtdWx0aXBsZSBmcm9tIGEgc2luZ2xlIEFQSSBzbyBJJ20KCSAgZG9jdW1lbnRpbmcgdGhhdCBoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTI5CgoyMDE0LTA5LTIyIDE5OjA1OjMyICswMjAwICBNYXJjaW4gS29sbnkgPG1hcmNpbi5rb2xueUBmbHl0cm9uaWMucGw+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IGFkZGVkIG1pc3NpbmcgaW5jbHVkZSBkaXJlY3RpdmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMzMKCjIwMTQtMDktMjMgMTQ6MzE6MjkgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvIG5vdCBmb3JnZXQgdG8gcmVsZWFzZSB0aGUgUVVFVUVfTE9DSyBpbiB0aGUgb3V0X2Zsb3dfZXJyb3IgcGF0aAoJICBBdm9pZGluZyBkZWFkbG9ja3MhCgoyMDE0LTA5LTIzIDEyOjUzOjE4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRvY3M6IGZpeCBhIHNtYWxsIGNvbnRyYWRpdGlvbiBpbiB0aGUgZG9jcwoJICBUaGUgdm1ldGhvZCBnZXRfc2l6ZSgpIHNoYWxsIHJldHVybiB0aGUgc2l6ZSBpbiAnZm9ybWF0JyBhcyBjb25maWd1cmVkIGJ5CgkgIF9zZXRfZm9ybWF0KCkuCgoyMDE0LTA5LTIyIDA5OjMzOjA0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEbyBub3QgaG9sZCBHU1RfUVVFVUVfTE9DSyB3aGlsZSBwb3N0aW5nIEVSUk9SIG1lc3NhZ2VzCgkgIFRoaXMgbWlnaHQgY3JlYXRlIGRlYWRsb2NrcyBhbmQgd2UgbmVlZCB0byBhdm9pZCBob2xkaW5nIGVsZW1lbnQKCSAgc3BlY2lmaWMgbG9jayB3aGlsZSBwb3N0aW5nIG1lc3NhZ2VzCgkgIEZvciBleGFtcGxlIGEgZGVhZGxvY2sgd2lsbCBoYXBwZW4gaWYgd2hpbGUgcG9zdGluZyB0aGUgbWVzc2FnZSwKCSAgc29tZW9uZSBjb25uZWN0ZWQgb24gdGhlIGJ1cyAoc3luYykgdHJpZXMgdG8gRE9UIHRoZSBwaXBlbGluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzEwMgoKMjAxNC0wOS0xOSAxMjowMjo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBkbyBub3QgcG9zdCBidWZmZXJpbmcgbWVzc2FnZXMgaG9sZGluZyB0aGUgbG9jawoJICBJdCBtaWdodCBjYXVzZSBkZWFkbG9ja3MgdG8gcG9zdCBtZXNzYWdlcyB3aGlsZSBob2xkaW5nIHRoZSBxdWV1ZTIKCSAgbG9jay4gVG8gYXZvaWQgdGhpcyBhIG5ldyBib29sZWFuIGZsYWcgaXMgc2V0IHdoZW5ldmVyIGEgbmV3CgkgIGJ1ZmZlcmluZyBwZXJjZW50IGlzIGZvdW5kLiBUaGUgbWVzc2FnZSBpcyBwb3N0ZWQgYWZ0ZXIgdGhlIGxvY2sKCSAgaXMgcmVsZWFzZWQuCgkgIFRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyaW5nIG1lc3NhZ2VzIGFyZSBwb3N0ZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLCBtZXNzYWdlcwoJICBhcmUgcG9zdGVkIGhvbGRpbmcgYW5vdGhlciBsb2NrLiBUaGlzIHByZXZlbnRzIDIgdGhyZWFkcyB0cnlpbmcgdG8gcG9zdAoJICBtZXNzYWdlcyBhdCB0aGUgc2FtZSB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2OTY5CgoyMDE0LTA5LTE5IDA5OjQyOjEwICswNTMwICBSYXZpIEtpcmFuIEsgTiA8cmF2aS5raXJhbkBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBSZW1vdmUgdW5uZWNlc3NhcnkgY29kZQoJICBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSgpIGZ1bmN0aW9uIGhhcyBuZXdfdXJpLCBsb2NhdGlvbiBhbmQgY29sb24KCSAgYXJlIG5vdCBuZWNlc3NhcnksIHRoZXkgY2FuIGJlIHJlbW92ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4NzcKCjIwMTQtMDktMTkgMDA6MzM6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogcHdnOiBmaXggc29tZSBsaW5rcyB0byB0aGUgQVBJIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjc2MgoKMjAxNC0wOS0xOCAxODo1NTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZW1vdmUgRklYTUUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg3OAoKMjAxNC0wOS0xNyAyMTo0OToxOCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggc3BlbGxpbmcgZXJyb3IKCSAgVGhhbmsgdG8gQWRyaWFuIE93ZW4gZm9yIHJlcG9ydGluZyB0aGlzIGVycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODM5CgoyMDE0LTA5LTE3IDE3OjE3OjEwICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBkbyBub3QgbGVhayBzdGlja3kgZXZlbnRzIGluIGZsdXNoX3N0b3AKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjgxMwoKMjAxNC0wOS0xMiAxNDo0MjoyMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGF2b2lkIGdsb2JhbCB2YXJpYWJsZSBmb3IgbG9nX2ZpbGUKCSAgVXNlIHVzZXJfZGF0YSB0byBwYXNzIHRoZSBsb2dfZmlsZSBoYW5kbGUgdG8gdGhlIGxvZ2dlci1mdW5jdGlvbi4KCSAgSWYgb25lIHdhbnRzIHRvIGNoYW5nZSB0aGUgbG9nIHRhcmdldCAoZS5nLiBHU1RfREVCVUdfRklMRSksIHNpbXBseSBjYWxsCgkgIGdzdF9kZWJ1Z19yZW1vdmVfbG9nX2Z1bmN0aW9uKCkgYW5kIHJlLWFkZCB0aGUgaGFuZGxlciB3aXRoIHRoZSBuZXcgbG9nLXRhcmdldAoJICB1c2luZyBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbiAoKS4KCjIwMTQtMDktMTYgMTM6NDg6MTggKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBhbm5vdGF0aW9ucyB0byBnc3RfZXZlbnRfcGFyc2VfdG9jX3NlbGVjdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY3MzkKCjIwMTQtMDktMTEgMTg6MDE6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogZG8gbm90IHBvc3QgbWVzc2FnZXMgaG9sZGluZyB0aGUgbG9jawoJICBJdCBtaWdodCBjYXVzZSBkZWFkbG9ja3MgdG8gcG9zdCBtZXNzYWdlcyB3aGlsZSBob2xkaW5nIHRoZSBtdWx0aXF1ZXVlCgkgIGxvY2suIFRvIGF2b2lkIHRoaXMgYSBuZXcgYm9vbGVhbiBmbGFnIGlzIHNldCB3aGVuZXZlciBhIG5ldyBidWZmZXJpbmcgcGVyY2VudAoJICBpcyBmb3VuZC4gVGhlIG1lc3NhZ2UgaXMgcG9zdGVkIGFmdGVyIHRoZSBsb2NrIGNhbiBiZSByZWxlYXNlZC4KCSAgVG8gbWFrZSBzdXJlIHRoZSBidWZmZXJpbmcgbWVzc2FnZXMgYXJlIHBvc3RlZCBpbiB0aGUgcmlnaHQgb3JkZXIsIG1lc3NhZ2VzCgkgIGFyZSBwb3N0ZWQgaG9sZGluZyBhbm90aGVyIGxvY2suIFRoaXMgcHJldmVudHMgMiB0aHJlYWRzIHRyeWluZyB0byBwb3N0CgkgIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYyOTUKCjIwMTQtMDktMTYgMTY6MDc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDE0LTA5LTE2IDEyOjE3OjQ4ICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBBZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX3Bvb2woKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NzM2CgoyMDE0LTA5LTE1IDE2OjM4OjE3ICswMjAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSByZWZlcmVuY2UgaW4gc2V0X2FsbG9jYXRpb24gcmF0aGVyIHRoYW4gaW4gcHJlcGFyZV9hbGxvY2F0aW9uCgkgIE90aGVyd2lzZSB3ZSBjYW4gZm9yZ2V0IHRvIHVucmVmIG9iamVjdHMgaW4gZXJyb3IgY2FzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY2ODAKCjIwMTQtMDktMTUgMTM6MDY6NDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogVXNlIHRoZSBuYW1lIHBhcmFtZXRlciBvZiBnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZF9ieV9uYW1lKCkgYW5kIHRoZSBzaW5rIHZhcmlhbnQKCSAgVGhpcyB3YXMgaGFyZGNvZGVkIHRvICJzaW5rIiAvICJzcmMiIGJ5IGFjY2lkZW50IGluIHByZXZpb3VzIHJlZmFjdG9yaW5nLgoKMjAxNC0wOS0xMyAyMDoxMjo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBjb3JlZWxlbWVudHM6IG1hcmsgcHJvcGVydGllcyB3aXRoIE1VVEFCTEVfUExBWUlORwoKMjAxNC0wOS0xMSAxNTo1MjozMiArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgYSBmdW5jdGlvbiB0byBjaGVjayBkZXN0cnVjdGlvbiBvZiBvYmplY3RzCgkgIEFkZCBhIG1ldGhvZCBsZXR0aW5nIHBlb3BsZSB0byBlbnN1cmUgdGhhdCB1bnJlZmZpbmcgb25lIG9iamVjdAoJICBsZWFkcyB0byBpdHMgZGVzdHJ1Y3Rpb24sIGFuZCBwb3NzaWJseSB0aGUgZGVzdHJ1Y3Rpb24gb2YgbW9yZSBvYmplY3QKCSAgKHRoaW5rIGRlc3RydWN0aW9uIG9mIGEgR3N0QmluIGV0Yy4uLikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY0NzcKCjIwMTQtMDktMTIgMTQ6MTA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IGRvbid0IGxpc3QgcGFkIGZ1bmN0aW9ucwoJICBEb24ndCBwcmludCBhbGwgdGhlIGRpZmZlcmVudCBwYWQgZnVuY3Rpb25zLCBpdCdzIGp1c3QKCSAgY29uZnVzaW5nIGFuZCBubyBvbmUgaGFzIGV2ZXIgbmVlZGVkIHRvIGtub3cgdGhpcyBmb3IKCSAgYW55dGhpbmcgZXZlciBhbnl3YXksIGl0J3MganVzdCB1c2VsZXNzIGluZm9ybWF0aW9uLgoJICBCZXNpZGVzLCB3ZSBhbHNvIGxhYmVsIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBhcwoJICAnY3VzdG9tJyBpbXBsZW1lbnRhdGlvbnMgKHRoZSBjb2RlIHRoYXQgdHJpZXMgdG8KCSAgcHJldmVudCB0aGF0IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBpdCBzZWVtcykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYzNzcKCjIwMTQtMDktMTIgMTU6MjI6MTkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWFrZSBzdXJlIHRoZSBidWZmZXIgdG8gZ2V0L3B1bGxfcmFuZ2UoKSBoYXMgYXQgbGVhc3QgdGhlIHJlcXVlc3RlZCBzaXplCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4NjEKCjIwMTQtMDktMDUgMTg6MzY6MDIgKzAwMDAgIFRpYWdvIDx0aWFnb2thdGNpcGlzQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBBZGRpbmcgZG9jdW1lbnRhdGlvbiB0byB0aGUgZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkX2J5X25hbWUgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDE5MAoKMjAxNC0wOS0xMCAxNDo1MzowMCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIGFubm90YXRpb25zIHRvIGdzdF9xdWVyeV9zZXRfbnRoX2FsbG9jYXRpb25fcG9vbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NDI0CgoyMDE0LTA5LTExIDA5OjM1OjE3ICswMjAwICBSw6ltaSBMZWbDqHZyZSA8cmVtaS5sZWZldnJlQHBhcnJvdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBmaXggdHlwbyBpbiBkZXNjcmlwdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NDU1CgoyMDE0LTA5LTA5IDIwOjQzOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtaW5vciBkb2NzIGZpeAoKMjAxNC0wOS0wMyAxNzozODoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGZpeCB0eXBvIGluIHNhbXBsZSBjb2RlIGluIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk3NQoKMjAxNC0wOC0yNSAxMTozNDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgZmx1c2gtc3RvcCBvbiBpbmFjdGl2ZSBwYWQgdGVzdAoJICBDaGVjayB0aGF0IHB1c2hpbmcgZmx1c2gtc3RvcCBvbiBhbiBpbmFjdGl2ZSBwYWQgZG9lcyBub3QgY2xlYXIgdGhlCgkgIGZsdXNoaW5nIGZsYWcuCgoyMDE0LTA4LTIxIDE1OjQ5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBhY2NlcHQgZmx1c2gtc3RvcCBvbiBpbmFjdGl2ZSBwYWRzCgkgIEluYWN0aXZlIHBhZHMgc2hvdWxkIGF0IGFsbCB0aW1lcyBoYXZlIHRoZSBmbHVzaGluZyBmbGFnIHNldC4gVGhpcyBtZWFucwoJICB0aGF0IHdoZW4gd2UgZ2V0IGEgZmx1c2gtc3RvcCBvbiBhbiBpbmFjdGl2ZSBwYWQgd2UgbXVzdCBpZ25vcmUgaXQuCgkgIE9uIHNpbmtwYWRzLCBtYWtlIHRoaXMgbW9yZSBleHBsaWNpdC4gV2UgdXNlZCB0byBub3QgY2xlYXIgdGhlIGZsdXNoCgkgIGZsYWcgYnV0IHJlbW92ZSB0aGUgZXZlbnRzIGFuZCB0aGVuIHJldHVybiBhbiBlcnJvciBiZWNhdXNlIHRoZSBmbHVzaGluZwoJICBmbGFnIHdhcyBzZXQuIE5vdyBqdXN0IHNpbXBseSByZWZ1c2UgdGhlIGV2ZW50IHdpdGhvdXQgZG9pbmcgYW55dGhpbmcuCgkgIE9uIHNyY3BhZHMsIGNoZWNrIHRoYXQgd2UgYXJlIHRyeWluZyB0byBwdXNoIGEgZmx1c2gtc3RvcCBldmVudCBhbmQKCSAgcmVmdXNlIGl0LiBXZSB3b3VsZCBhbGxvdyB0aGlzIGFuZCBtYXJrIHRoZSBzcmNwYWQgYXMgbm9uLWZsdXNoaW5nCgkgIGFueW1vcmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUzNTcKCjIwMTQtMDgtMjcgMTc6MDY6NTcgKzA1MzAgIFJhdmkgS2lyYW4gSyBOIDxyYXZpLmtpcmFuQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IFNlbmQgYWxsIGV2ZW50cyB0byBhY3RpdmUgc3JjIHBhZCBhbmQgRU9TIHRvIGFsbCBzcmMgcGFkcwoJICBGaXhlcyB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5ODExCgoyMDE0LTA4LTI4IDE3OjI0OjU2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCB0eXBvIGluIGFkdmFuY2VkLWRhdGFhY2Nlc3MueG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU2MDkKCjIwMTQtMDgtMjYgMjA6MTQ6NDAgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRvIG5vdCB0b3VjaCBtZW1vcnkgdGFnIGZsYWcgd2hlbiBjb3B5aW5nIGJ1ZmZlciBmbGFncwoJICBUaGUgdGFnIG1lbW9yeSBmbGFnIHdpbGwgYmUgc2V0IGxhdGVyIGlmIHRoZSBtZW1vcnkgaXMgYWxzbyBjb3BpZWQuIFRoaXMKCSAgcGF0Y2ggYXZvaWRzIGJ1ZmZlcnMgYmVpbmcgZnJlZWQgbmVlZGxlc3NseSBpbiBidWZmZXJwb29scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTU3NAoKMjAxNC0wNy0xNSAxNjowNjo0OSArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzcC5zdmVuc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZ3N0X2J1c19hZGRfd2F0Y2goKSBjYW4gcmV0dXJuIDAgb24gZXJyb3IKCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUxOTUKCjIwMTQtMDgtMjUgMTM6NDQ6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaGFuZGxlIHN0cmVhbWhlYWRlcnMgYnkgcHJlcGVuZGluZyB0aGVtIHRvIHRoZSBzdHJlYW0KCSAgQWRkIGEgZmlyc3RfYnVmZmVyIGJvb2xlYW4gc3RhdGUgZmxhZyB0byBoYXZlIGJhc2VwYXJzZSBkbyBhY3Rpb25zCgkgIGJlZm9yZSBwdXNoaW5nIGRhdGEuIFRoaXMgaXMgdXNlZCB0byBjaGVjayB0aGUgY2FwcyBmb3Igc3RyZWFtaGVhZGVyCgkgIGJ1ZmZlcnMgdGhhdCBhcmUgcHJlcGVuZGVkIHRvIHRoZSBzdHJlYW0sIGJ1dCBvbmx5IGlmIHRoZSBmaXJzdCBidWZmZXIKCSAgaXNuJ3QgYWxyZWFkeSBtYXJrZWQgd2l0aCB0aGUgX0hFQURFUiBmbGFnLiBJbiB0aGlzIGNhc2UsIGl0IGlzIGFzc3VtZWQKCSAgdGhhdCB0aGUgX0hFQURFUiBtYXJrZWQgYnVmZmVyIGlzIHRoZSBzYW1lIGFzIHRoZSBzdHJlYW1oZWFkZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUwNzAKCjIwMTQtMDgtMjcgMTE6MDE6MDEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFsbG93IHNlZWtpbmcgb24gdGhlIGN1cnJlbnRseSBwbGF5aW5nIHN0cmVhbQoJICBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgc3RyZWFtIHRpbWUgcmVwb3J0aW5nLgoKMjAxNC0wOC0yMyAxMjoyNDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZy1pICd0cmFuc2ZlciBmdWxsJyBhbm5vdGF0aW9ucyB0byBjaGFpbiBhbmQgY2hhaW5fbGlzdCBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTIxMAoKMjAxNC0wOC0yMiAxMDozMjozOCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYW5ub3RhdGUgR3N0UGFkRXZlbnRGdW5jdGlvbiBldmVudCB3aXRoICd0cmFuc2ZlciBmdWxsJwoJICBUaGUgY2FsbGJhY2sgaXMgc3VwcG9zZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50IHNvCgkgIGJlc3QgdG8gYmUgZXhwbGljaXQgYWJvdXQgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUyMTAKCjIwMTQtMDgtMjAgMTI6NTU6NTEgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3NuQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IHRoYXQgdHJpZ2dlcnMgZGVhZGxvY2sgaW4gc3RhdGUgY2hhbmdlIG9mIHF1ZXVlCgkgIFdoZW4gcmVjZWl2aW5nIEZMQVNIX1NUT1AgaW4gYSBzdGF0ZSB0cmFuc2l0aW9uIHRvIFJFQURZLCBhIHF1ZXVlCgkgIGVsZW1lbnQgY2FuIGVuZCB1cCB3aXRoIGFuIGFjdGl2ZSB0YXNrIHRoYXQgd2lsbCBuZXZlciBlbmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ2ODgKCjIwMTQtMDgtMjEgMTQ6MDI6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggcmFjZSB3aGVuIGZsdXNoLXN0b3AgZXZlbnQgY29tZXMgaW4gd2hpbHN0IHNodXR0aW5nIGRvd24KCSAgRG9uJ3QgcmUtc3RhcnQgdGhlIHF1ZXVlIHB1c2ggdGFzayBvbiB0aGUgc291cmNlIHBhZCB3aGVuIGEKCSAgZmx1c2gtc3RvcCBldmVudCBjb21lcyBpbiBhbmQgd2UncmUgaW4gdGhlIHByb2Nlc3Mgb2Ygc2h1dHRpbmcKCSAgZG93biwgb3RoZXJ3aXNlIHRoYXQgdGFzayB3aWxsIG5ldmVyIGJlIHN0b3BwZWQgYWdhaW4uCgkgIFdoZW4gdGhlIGVsZW1lbnQgaXMgc2V0IHRvIFJFQURZIHN0YXRlLCB0aGUgcGFkcyBnZXQgZGUtYWN0aXZhdGVkLgoJICBUaGUgc291cmNlIHBhZCBnZXRzIGRlYWN0aXZhdGVkIGJlZm9yZSB0aGUgcXVldWUncyBvd24gYWN0aXZhdGVfbW9kZQoJICBmdW5jdGlvbiBvbiB0aGUgc291cmNlIHBhZHMgZ2V0cyBjYWxsZWQgKHdoaWNoIHdpbGwgc3RvcCB0aGUgdGhyZWFkKSwKCSAgc28gY2hlY2tpbmcgd2hldGhlciB0aGUgcGFkIGlzIGFjdGl2ZSBiZWZvcmUgcmUtc3RhcnRpbmcgdGhlIHRhc2sgb24KCSAgcmVjZWl2aW5nIGZsdXNoLXN0b3Agc2hvdWxkIGJlIGZpbmUuIFRoZSBwcm9ibGVtIHdvdWxkIGhhcHBlbiB3aGVuIHRoZQoJICBmbHVzaC1zdG9wIGhhbmRsZXIgd2FzIGNhbGxlZCBqdXN0IGFmdGVyIHRoZSBxdWV1ZSdzIGFjdGl2YXRlIG1vZGUKCSAgZnVuY3Rpb24gaGFkIHN0b3BwZWQgdGhlIHRhc2suCgkgIFNwb3R0ZWQgYW5kIGRlYnVnZ2VkIGJ5IExpbnVzIFN2ZW5zc29uIDxsaW51eC5zdmVuc3NvbkBheGlzLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDY4OAoKMjAxNC0wOC0wNiAxNDowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXJlYWRlcjogYWRkIGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N1Yl9yZWFkZXIoKSBhbmQgX2dldF9zdWJfcmVhZGVyKCkKCSAgQWRkcyBBUEkgdG8gZ2V0IG9yIHBlZWsgYSBzdWItcmVhZGVyIG9mIGEgY2VydGFpbiBzaXplIGZyb20KCSAgYSBnaXZlbiBieXRlIHJlYWRlci4gVGhpcyBpcyB1c2VmdWwgd2hlbiBwYXJzaW5nIG5lc3RlZCBjaHVua3MsCgkgIG9uZSBjYW4gZWFzaWx5IGdldCBhIGJ5dGUgcmVhZGVyIGZvciBhIHN1Yi1jaHVuayBhbmQgbWFrZQoJICBzdXJlIG9uZSBuZXZlciByZWFkcyBiZXlvbmQgdGhlIHN1Yi1jaHVuayBib3VuZGFyeS4KCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdWJfcmVhZGVyKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3N1Yl9yZWFkZXIoKQoKMjAxNC0wNy0yNSAxNjozOTo0MCArMDIwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBtYWtlIGV4cGxpY2l0IHRoYXQgdGhlIGNhcHMgcGFzc2VkIHRvIGdzdF9iYXNlX3NyY19zZXRfY2FwcygpIGFyZSAndHJhbmZlciBub25lJwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNzQxCgoyMDE0LTA4LTE0IDE4OjUzOjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogYWx3YXlzIHByb3h5IGNhcHMgcXVlcnkKCSAgT3RoZXJ3aXNlIGl0IHdvdWxkIG9ubHkgYmUgcHJveGllZCBmb3IgdGhlIGFjdGl2ZSBwYWQgd2hpY2ggY2FuIGxlYWQKCSAgdXBzdHJlYW0gdG8gdXNlIGFuIGluY29tcGF0aWJsZSBjYXBzIGZvciB0aGUgZG93bnN0cmVhbSBlbGVtZW50LgoJICBFdmVuIGlmIGEgcmVjb25maWd1cmUgZXZlbnQgaXMgc2VudCB1cHN0cmVhbSB3aGVuIHRoZSBwYWQgaXMgYWN0aXZhdGVkLCB0aGlzCgkgIHdpbGwgc2F2ZSB0aGUgY2FwcyByZWNvbmZpZ3VyYXRpb24gaWYgaXQgaXMgYWxyZWFkeSB1c2luZyBhbiBhY2NlcHRhYmxlIGNhcHMuCgoyMDE0LTA4LTE0IDE0OjM3OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgYmFzZTogYW5kIGZpeCBidWlsZCB3aXRoIG5ldyBnLWkgYWdhaW4KCjIwMTQtMDgtMTQgMTQ6MjU6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBiYXNlOiByZW1vdmUgZy1pIGFubm90YXRpb24gdGhhdCBtYWtlcyBvbGRlciBnLWlyLXNjYW5uZXIgY3Jhc2gKCSAgSnVzdCByZW1vdmUgb25lIHNraXAgYW5ub3RhdGlvbiB0aGF0IGNhdXNlcyB0aGlzOgoJICAqKiAoZy1pci1jb21waWxlcjoxMjQ1OCk6IEVSUk9SICoqOiBDYXVnaHQgTlVMTCBub2RlLCBwYXJlbnQ9ZW1wdHkKCSAgd2l0aCBvbGRlciBnLWkgdmVyc2lvbnMgc3VjaCBhcyAxLjMyLjEuCgoyMDE0LTA4LTEzIDE0OjEyOjAwICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGRlc3Ryb3kgc2lnbmFsIHdhdGNoIGZyb20gdGhlIGNvbnRleHQgaXQgd2FzIG1hcHBlZCB0bwoJICBEb24ndCByZWx5IG9uIGdfc291cmNlX3JlbW92ZSgpIGJlY2F1c2UgaXQgb3BlcmF0ZXMgb24gdGhlIG1haW4KCSAgY29udGV4dC4gSWYgYSBzaWduYWwgd2F0Y2ggd2FzIGFkZGVkIHRvIGEgbmV3IHRocmVhZC1kZWZhdWx0IGNvbnRleHQKCSAgZ19zb3VyY2VfcmVtb3ZlKCkgd291bGQgaGF2ZSBubyBlZmZlY3QuIFNvIHNpbXBseSB1c2UKCSAgZ19zb3VyY2VfZGVzdHJveSgpIHRvIGF2b2lkIHRoaXMgcHJvYmxlbS4KCSAgQWRkaXRpb25hbGx5IHRoZSBzb3VyY2VfaWQgd2FzIHJlbW92ZWQgZnJvbSBHc3RCdXNQcml2YXRlIGJlY2F1c2UgaXQKCSAgd2FzIHJlZHVuZGFudCB3aXRoIHRoZSBzaWduYWwgd2F0Y2ggR1NvdXJjZSBhbHNvIHN0b3JlZCBpbiB0aGF0CgkgIHN0cnVjdHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDcxNgoKMjAxNC0wOC0wNyAxMjoxODowNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE5vdCBwb3N0IEJVRkZFUklORyBtZXNzYWdlIGlmIG9uZSBvZiB0aGUgc2luZ2xlcXVldWUgZG9lc24ndCBuZWVkIGl0CgkgIEltYWdpbmUgdGhlIGZvbGxvd2luZyAncGlwZWxpbmUnCgkgIC0tLS0tLS0tLS0tLS0tCgkgIHAxL3wgJ2Z1bGxxdWV1ZScgIHwtLS0gJ2xhZ2d5JyBkb3duc3RyZWFtCgkgIC0tLS0tLS0tLSAgLyB8ICAgICAgICAgICAgICB8CgkgIC18IGRlbXV4ZXIgfCAgIHwgbXVsdGlxdWV1ZSAgIHwKCSAgLS0tLS0tLS0tICBcIHwgICAgICAgICAgICAgIHwKCSAgcDJcfCAnZW1wdHlxdWV1ZScgfC0tLSAnZmFzdCcgZG93bnN0cmVhbQoJICAtLS0tLS0tLS0tLS0tLQoJICBJbiB0aGUgY2FzZSBkb3duc3RyZWFtIG9mIG9uZSBzaW5nbGUgcXVldWUgKGZ1bGxxdWV1ZSkgaGFzIChhIGxvdCBvZikgbGF0ZW5jeQoJICAoZm9yIGV4YW1wbGUgZm9yIHJldmVyc2UgcGxheWJhY2sgd2l0aCB2aWRlbyksIHdlIGNhbiBlbmQgdXAgaGF2aW5nIHRoZSBvdGhlcgoJICBTaW5nbGVRdWV1ZSAoZW1wdHlxdWV1ZSkgZW1wdGllZCwgYmVmb3JlIHRoYXQgZnVsbHF1ZXVlIGdldHMKCSAgdW5ibG9ja2VkLiBJbiB0aGUgbWVhbnRpbWUsIHRoZSBkZW11eGVyIHRyaWVzIHRvIHB1c2ggb24gZnVsbHF1ZXVlLCBhbmQKCSAgaXMgYmxvY2tpbmcgdGhlcmUuCgkgIEluIHRoYXQgY2FzZSB0aGUgY3VycmVudCBjb2RlIHdpbGwgcG9zdCBhIEJVRkZFUklORyBtZXNzYWdlIG9uIHRoZSBidXMgd2hlbgoJICBlbXB0eXF1ZXVlIGdldHMgZW1wdGllZCwgdGhhdCBsZWFkcyB0byB0aGUgYXBwbGljYXRpb24gc2V0dGluZyB0aGUgcGlwZWxpbmUgc3RhdGUgdG8KCSAgUEFVU0VELiBTbyBub3cgd2UgZW5kIHVwIGluIGEgc2l0dWF0aW9uIHdoZXJlICdsYWdneSBkb3duc3RyZWFtJyBpcwoJICBwcmVyb2xsZWQgYW5kIHdpbGwgbm90IHVuYmxvY2sgYW55bW9yZSBiZWNhdXNlIHRoZSBwaXBlbGluZSBpcyBzZXQgdG8KCSAgUEFVU0VELCB0aGUgZnVsbGVxdWV1ZSBkb2VzIG5vdCBoYXZlIGEgY2hhbmNlIHRvIGJlIGVtcHRpZWQgYW5kCgkgIHRoZSBlbXB0eXF1ZXVlIGNhbiBub3QgZ2V0IGZpbGxlZCBhbnltb3JlIHNvIG5vIG1vcmUgQlVGRVJSSU5HIG1lc3NhZ2UKCSAgd2lsbCBiZSBwb3N0ZWQgYW5kIHRoZSBwaXBlbGluZSBpcyBzdHVja2VkIGluIFBBVVNFRCBmb3IgdGhlIGV0ZXJuaXR5LgoJICBNYWtpbmcgc3VyZSB0aGF0IHdlIGRvIG5vdCB0cnkgdG8gImJ1ZmZlciIgaWYgb25lIG9mIHRoZSBzaW5nbGUgcXVldWUKCSAgZG9lcyBub3QgbmVlZCBidWZmZXJpbmcsIHByZXZlbnRzIHRoaXMgc2l0dXRhdGlvbiBmcm9tIGhhcHBlbmluZyB0aG91Z2ggaXQgbGV0cyB0aGUKCSAgb3BvcnR1bml0eSBmb3IgYnVmZmVyaW5nIGluIGFsbCBvdGhlciBjYXNlcy4KCSAgVGhhdCBpbXBsZW1lbnRzIGEgbmV3IGxvZ2ljIHdoZXJlIHdlIG5lZWQgYWxsIHNpbmdsZXF1ZXVlIHRvIG5lZWQKCSAgYnVmZmVyaW5nIGZvciB0aGUgbXVsdGlxdWV1ZSB0byBhY3R1YWxseSBzdGF0ZSBidWZmZXJpbmcgaXMgbmVlZGVkLAoJICB0YWtpbmcgdGhlIG1heGltdW0gYnVmZmVyaW5nIG9mIHRoZSBzaW5nbGUgcXVldWUgYXMgdGhlIHJlZmVyZW5jZSBwb2ludC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQxMgoKMjAxNC0wOC0xMyAxMzowMToyMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBPbmx5IGhhbmRsZSBmbG93IHJldHVybnMgPCBFT1MgYXMgZXJyb3JzLCBub3QgZS5nLiBmbHVzaGluZwoKMjAxNC0wOC0xMyAxMjo0MDozNyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBVc2UgYWxsb3ctbm9uZSBpbnN0ZWFkIG9mIG51bGxhYmxlIHVudGlsIHdlIGRlcGVuZCBvbiBhIG5ldyBlbm91Z2ggR0kgdmVyc2lvbgoKMjAxNC0wOC0xMyAxMjozOTo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBnc3RfYmluX25ldygpIGNhbiBhY2NlcHQgTlVMTCBhcyBuYW1lCgoyMDE0LTA4LTEzIDEyOjM3OjA4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2xhcmlmeSBkb2NzIGFib3V0IGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCgpIGFuZCByZW1vdmUgZGVwcmVjYXRpb24gcGFydAoJICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCByZWFsbHkgcGFkIG9yIHNsb3cgZm9yIHRoZSBjb21tb24gY2FzZSBvZiByZXF1ZXN0aW5nIGEKCSAgcGFkIHdpdGggdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlLiBJdCBpcyBvbmx5IHNsb3dlciBpZiB5b3UgdG8gbmFtZSB5b3VyIHBhZHMKCSAgZGlyZWN0bHkgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBlbGVtZW50IGhhbmRsZSBpdC4KCSAgQWxzbyB0aGVyZSdzIG5vIHJlYXNvbiB0byBkZXByZWNhdGUgaXQgaW4gZmF2b3Igb2YgYSBtb3JlIGNvbXBsaWNhdGVkIGZ1bmN0aW9uCgkgIGZvciB0aGUgY29tbW9uIGNhc2UuCgoyMDE0LTA4LTEzIDEyOjIwOjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQb3N0IGVycm9ycyBpZiB3ZSByZWNlaXZlIEVPUyBhZnRlciBkb3duc3RyZWFtIHJlcG9ydGVkIGFuIGVycm9yCgkgIFRoZXJlIHdpbGwgYmUgbm8gZnVydGhlciBkYXRhIGZsb3cgdGhhdCB3b3VsZCBhbGxvdyB1cyB0byBwcm9wYWdhdGUgdGhlCgkgIGVycm9yIHVwc3RyZWFtLCBjYXVzaW5nIG5vYm9keSBhdCBhbGwgdG8gcG9zdCBhbiBlcnJvciBtZXNzYWdlLgoKMjAxNC0wOC0xMyAxMjoxNTowMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFBvc3QgZXJyb3JzIHdoZW4gcmVjZWl2aW5nIEVPUyBhZnRlciBkb3duc3RyZWFtIHJldHVybmVkIGFuIGVycm9yCgkgIFRoZXJlIG1pZ2h0IGJlIG5vIGZ1cnRoZXIgZGF0YSBmbG93IHRoYXQgd291bGQgYWxsb3cgdXMgdG8gcHJvcGFnYXRlIHRoZQoJICBlcnJvciB1cHN0cmVhbSwgY2F1c2luZyBub2JvZHkgdG8gcG9zdCBhbiBlcnJvciBhdCBhbGwuCgoyMDE0LTA4LTEzIDEyOjEwOjM5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFBvc3QgZXJyb3JzIG91cnNlbHZlcyBpZiB0aGV5IGFyZSByZWNlaXZlZCBhZnRlciBFT1MKCSAgQWZ0ZXIgRU9TIHRoZXJlIHdpbGwgYmUgbm8gZnVydGhlciBidWZmZXIgd2hpY2ggY291bGQgcHJvcGFnYXRlIHRoZQoJICBlcnJvciB1cHN0cmVhbSwgc28gbm90aGluZyBpcyBnb2luZyB0byBwb3N0IGFuIGVycm9yIG1lc3NhZ2UgYW5kCgkgIHRoZSBwaXBlbGluZSBqdXN0IGlkbGVzIGFyb3VuZC4KCjIwMTQtMDgtMTIgMjA6MDM6MDYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2NzOiBUcml2aWFsIHBhZCBkb2N1bWVudGF0aW9uIGZpeAoJICBQcmVzdW1hYmx5IGEgY29weS1wYXN0by4KCjIwMTQtMDgtMDggMDk6NTQ6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIHVuaXQgdGVzdHMgZm9yIGNvbmNhdCBlbGVtZW50CgoyMDE0LTA4LTA4IDA5OjEzOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIGRvY3VtZW50YXRpb24gYW5kIGludGVncmF0ZSBpbnRvIGRvY3VtZW50YXRpb24gYnVpbGQKCjIwMTQtMDgtMDcgMTQ6NDI6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGNvbmNhdDogQWRkIG5ldyBlbGVtZW50IHRoYXQgY29uY2F0ZW5hdGVzIG11bHRpcGxlIHN0cmVhbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQ3MAoKMjAxNC0wOC0wOSAxMDo1Nzo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGNhcHM6IGFkZCBjaGVjayBmb3IgY2FwcyB3aXRoIGZlYXR1cmVzIGludGVyc2VjdGlvbgoJICBDaGVja3MgdGhhdCBhIGNhcHMgd2l0aG91dCBmZWF0dXJlcyBkb2Vzbid0IGludGVyc2VjdCB3aXRoCgkgIG9uZSB0aGF0IGhhcyBmZWF0dXJlcwoKMjAxNC0wOC0wNyAxNDo1NDozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJICBleGFtcGxlczogY29udHJvbGxlcjogZml4IHR5cG8gaW4gY29tbWVudHMKCjIwMTQtMDgtMDYgMTM6NTg6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogdXNlIHVuY2hlY2tlZCBpbmxpbmUgdmFyaWFudCBmb3IgZ2V0X3JlbWFpbmluZyBpbiBtb3JlIHBsYWNlcwoJICBXZSd2ZSBhbHJlYWR5IGRvbmUgdGhlIGdfcmV0dXJuXypfaWZfZmFpbCAocmVhZGVyICE9IE5VTEwpCgkgIGRhbmNlIGluIHRob3NlIHBsYWNlcywgc28gbm8gbmVlZCB0byBkbyBpdCBhZ2Fpbi4KCjIwMTQtMDgtMDYgMTQ6NDM6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEdob3N0cGFkcyBjYW4gYmUgcmVxdWVzdCBwYWRzIHRvbyBidXQgY2hlY2sgaWYgdGhlIHBhZCBoYXMgYSB0ZW1wbGF0ZQoJICBPdGhlcndpc2Ugd2UgZGVyZWZlcmVuY2UgTlVMTCBpbiBzb21lIGNhc2VzIGFuZCBjcmFzaC4KCjIwMTQtMDgtMDYgMTI6MzQ6NDIgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJICB0ZXN0czogQWRkIG1pc3NpbmcgdW5yZWZzIG9mIG9iamVjdHMgYWZ0ZXIgdXNlCgkgIFVucmVmZmluZyB0aGUgb2JqZWN0cyByZXR1cm5lZCBieSBnc3RfYmluX2dldF9ieV9uYW1lKCkgYW5kCgkgIGdzdF9waXBlbGluZV9nZXRfdXNlKCkgd2VyZSBtaXNzaW5nIGluIHNldmVyYWwgdGVzdHMsIHNvIGFkZCB0aGVzZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDM0NQoKMjAxNC0wOC0wNiAxMjo1NTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHVuaXRpdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxNC0wNy0xMyAxNTozMTowOCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBBZGQgdGVzdCB2ZXJpZnlpbmcgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoKQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTE5CgoyMDE0LTA3LTEzIDE1OjI4OjMyICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVucmVmL3JlbGVhc2UgcGFkcyBpbiBlcnJvciBjYXNlcyB3aGVuIGxpbmtpbmcgcGFkcwoJICBQcmV2aW91c2x5IGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKCkgZm9yZ290IHRvIHVucmVmZXJlbmNlIG9yIHJlbGVhc2UKCSAgcmVxdWVzdCBwYWRzIGluIHNldmVyYWwgZXJyb3IgY2FzZXMuIEFsc28gY29tbWVudHMgd2VyZSBhZGRlZCBtZW50aW9uaW5nCgkgIHdoeSByZWxlYXNpbmcgaXMgbm90IG5lY2Vzc2FyeSBpbiBzb21lIHBsYWNlcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzExOQoKMjAxNC0wOC0wMSAxNzoyNzozOSAtMDMwMCAgVGlhZ28gQ2VzYXIgS2F0Y2lwaXMgPHRpYWdvLmthdGNpcGlzQGRpZ2l0cm8uY29tLmJyPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IGFkZCBkb2NzIGZvciBnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZF9ieV9uYW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDE0MgoKMjAxNC0wNy0zMSAxODozMjowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJICBNYWtlZmlsZTogQWRkIHVzYWdlIG9mIGJ1aWxkLWNoZWNrcyBzdGVwCgkgIEFsbG93cyBidWlsZGluZyBjaGVja3Mgd2l0aG91dCBydW5uaW5nIHRoZW0KCjIwMTQtMDctMzAgMTU6NDY6MjIgKzAzMDAgIE1vaGFtbWVkIFNhbWVlciA8bXNhbWVlckBmb29sYWIub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogQWRkIG1pc3NpbmcgZXJyb3IgY2hlY2tpbmcgdG8gZGVmYXVsdF9hbGxvY19idWZmZXIoKQoJICBkZWZhdWx0X2FsbG9jX2J1ZmZlcigpIGNhbGxzIGdzdF9idWZmZXJfbmV3X2FsbG9jYXRlKCkgYnV0IGRvZXMgbm90IGNoZWNrIGZvcgoJICBmYWlsZWQgYWxsb2NhdGlvbi4KCSAgVGhpcyBwYXRjaCBtYWtlcyBkZWZhdWx0X2FsbG9jX2J1ZmZlcigpIHJldHVybiBhbiBlcnJvciAoR1NUX0ZMT1dfRVJST1IpIGlmCgkgIGJ1ZmZlciBhbGxvY2F0aW9uIGZhaWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzOTc0CgoyMDE0LTA3LTI5IDE0OjIxOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAb3NnLnNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgdXNpbmcgaW5maW5pdGUgYnVmZmVycyBsaW1pdCBpZiBmaW5pdGUgaXMgcmVxdWVzdGVkCgkgIElmIHRoZSBjdXJyZW50IG1heC1idWZmZXJzIGxpbWl0IGl0IGluZmluaXRlIGFuZCBhIGZpbml0ZSB2YWx1ZSBpcwoJICByZXF1ZXN0ZWQsIHN3aXRjaCB0byB0aGUgTUFYIChyZXF1ZXN0ZWQsIGN1cnJlbnQtdmFsdWUpIHRvIHNldCBzb21lCgkgIGxpbWl0IGJ1dCBub3QgYmVsb3cgd2hhdCB3ZSBrbm93IHRoYXQgd2UndmUgbmVlZGVkIHNvIGZhci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzYzNwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzODM3CgoyMDE0LTA3LTI0IDIyOjAyOjU4ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogVW5yZWYgcmVmZXJlbmNlIHRvIGVuY2xvc2luZyBiaW5zCgkgIFByZXZpb3VzbHkgYWxsIHJlZmVyZW5jZSB0byBlbmNsb3NpbmcgYmlucyBvZiBhbiBlbGVtZW50IHdlcmUgbGVha2VkCgkgIHdoZW4gZG9pbmcgZGVsYXlpbmcgc2V0dGluZyBhIHByb3BlcnR5LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNjk3CgoyMDE0LTA3LTI3IDAyOjM3OjA4ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogU3VwcG9ydCBTSUdJTlQgKEN0cmwrQykgb24gVzMyCgkgIFczMiBoYXMgbm8gU0lHSU5ULCBidXQgaXQgZG9lcyBoYXZlIFNldENvbnNvbGVDdHJsSGFuZGxlcigpLCB3aGljaCBzZXRzIHVwCgkgIGEgaGFuZGxlciBmb3IgQ3RybCtDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzODE0CgoyMDE0LTA3LTI3IDAzOjA2OjE2ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IFByZXZlbnQgZmFsc2UtbmVnYXRpdmUgZnJvbSBXQUtFX0VWRU5UKCkgb24gVzMyCgkgIFNldEV2ZW50KCkgc2VlbXMgdG8gbm90IGNhbGwgU2V0TGFzdEVycm9yKDApIGludGVybmFsbHksIHNvIGNoZWNraW5nIGxhc3QKCSAgZXJyb3IgYWZ0ZXIgY2FsbGluZyBTZXRFdmVudCgpIG1heSByZXR1cm4gdGhlIGVycm9yIGZyb20gYW4gZWFybGllciBXMzIgQVBJCgkgIGNhbGwuIEZpeCB0aGlzIGJ5IGNhbGxpbmcgU2V0bGFzdEVycm9yKDApIGV4cGxpY2l0bHkuCgkgIEN1cnJlbnRseSBXQUtFX0VWRU5UKCkgY29kZSBpcyBjcmFtcGVkIGludG8gYSBtYWNybyBhbmQgZG9lc24ndCBsb29rIHRvIGJlCgkgIGVudGlyZWx5IGNvcnJlY3QuIFBhcnRpY3VsYXJseSwgaXQgZG9lcyBub3QgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZgoJICBTZXRFdmVudCgpLCBvbmx5IHRoZSB0aHJlYWQtbG9jYWwgVzMyIGVycm9yIHZhbHVlLiBJdCBpcyBsaWtlbHkgdGhhdCBTZXRFdmVudCgpCgkgIGFjdHVhbGx5IGp1c3QgcmV0dXJucyBub24temVybyB2YWx1ZSwgYnV0IHRoZSBjb2RlIG1pc3Rha2VubHkgdGhpbmtzIHRoYXQgdGhlCgkgIGNhbGwgaGFzIGZhaWxlZCwgYmVjYXVzZSBHZXRMYXN0RXJyb3IoKSBzZWVtcyB0byBpbmRpY2F0ZSBzby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgwNQoKMjAxNC0wNy0yNiAxNDo0Mjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0OiBpbmNsdWRlIGF0b21pY3F1ZXVlLmggYWdhaW4gaW4gZ3N0LmgKCSAgSXQncyBhIHB1YmxpYyBoZWFkZXIgb2YgZ3N0cmVhbWVyIGNvcmUsIHNvICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CgkgIHNob3VsZCBtYWtlIHRoZSBBUEkgYXZhaWxhYmxlLgoKMjAxNC0wNy0yNSAxMTo0NTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogcmVtb3ZlIHByb3RvdHlwZSBmb3IgZnVuY3Rpb24gdGhhdCBubyBsb25nZXIgZXhpc3RzCgoyMDE0LTA3LTI0IDE0OjM5OjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAb3NnLnNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGVyZWFkZXI6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsKCSAgQWRkcyBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsganVzdCBsaWtlCgkgIEdzdEFkYXB0ZXIgaGFzIGEgX3BlZWsgYW5kIG5vbiBfcGVlayB2ZXJzaW9uCgkgIFVwZ3JhZGVkIHRlc3RzIHRvIGNoZWNrIHRoYXQgdGhlIHJldHVybmVkIHZhbHVlIGlzIGNvcnJlY3QgaW4gdGhlCgkgIF9wZWVrIHZlcnNpb24KCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODM1NgoKMjAxNC0wNi0yNiAxNDowOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHByZS1hbGxvY2F0ZSBidWZmZXIgYXJyYXkgaW4gb25lIGdvIHdpdGggdGhlIGJ1ZmZlciBsaXN0CgkgIFdlIGNhbiBub3cgY3JlYXRlIGFuZCBmcmVlIGEgYnVmZmVyIGxpc3Qgd2l0aCBvbmUgc2xpY2UgYWxsb2MvZnJlZQoJICBjYWxsIGluIG1vc3QgY2FzZXMsIGluc3RlYWQgb2Ygb25lIHNsaWNlIGFsbG9jL2ZyZWUgZm9yIHRoZSBsaXN0LAoJICBvbmUgc2xpY2UgYWxsb2MvZnJlZSBmb3IgdGhlIEdBcnJheSwgYW5kIG9uZSBtYWxsb2MvZnJlZSBmb3IgdGhlCgkgIEdBcnJheSBhcnJheS4gSW4gcHJhY3RpY2Ugd2Uga25vdyB0aGUgbWF4IHNpemUgb2Ygb3VyIGJ1ZmZlciBsaXN0CgkgIGZyb20gdGhlIHN0YXJ0LCBzbyBjYW4gYXZvaWQgcmVhbGxvY3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIyODQKCjIwMTQtMDctMjMgMjE6Mjc6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgcHJpdmF0ZTogYWxsb3cgaW50ZXJuYWwgYWNjZXNzIHRvIHRoZSBkZWJ1ZyBiYXNlLXRpbWUKCSAgTW92aW5nIHRoZSBleHRlcm4gdG8gdGhlIGhlYWQgbGV0cyB1cyBhY2Nlc3MgdGhpcyBmcm9tIG90aGVyIHBhcnRzIGFzIHdlbGwuIFRoaXMKCSAgaXMgbmVlZWQgaW4gdGhlIHRyYWNlciBicmFuY2guCgoyMDE0LTA3LTIzIDAwOjE1OjE3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogVXNlIGdpdCBwdWxsIC0tcmViYXNlCgkgIE5vIHBvaW50IGludHJvZHVjaW5nIHJlZHVuZGFudCBtZXJnZSBjb21taXRzLgoKMjAxNC0wNy0yMSAxMjo0MTowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgUmV2ZXJ0ICJ0ZXN0czogdGFnbGlzdDogYWRkIGJhc2ljIHRlc3QgZm9yIHRhZ2xpc3RzIHNlcmlhbGl6YXRpb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODVkMjNkMTliN2RlNDA1NDFkNjNiMGJjNzZkOGI2NDZjMzIxYWYyNi4KCSAgVGhlcmUgd2FzIGFscmVhZHkgYSBnc3R0YWcuYyB0ZXN0cyBmaWxlLCB0aGlzIHRlc3QgaGFzIGJlZW4gbWVyZ2VkCgkgIGluIGl0IGluIHRoZSBwcmV2aW91cyBjb21taXQKCjIwMTQtMDctMjEgMTI6NDA6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0ZXN0czogdGFnOiBhZGQgdGhlIGVtcHR5IHRhZ2xpc3Qgc2VyaWFsaXphdGlvbiB0ZXN0CgkgIEFkZHMgdGhlIHRlc3QgdG8gdGhlIGFwcHJvcHJpYXRlIGFuZCBhbHJlYWR5IGV4aXN0aW5nIGZpbGUuCgoyMDE0LTA3LTE0IDE4OjQ2OjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnbGlzdC5jOgoJICB0ZXN0czogdGFnbGlzdDogYWRkIGJhc2ljIHRlc3QgZm9yIHRhZ2xpc3RzIHNlcmlhbGl6YXRpb24KCSAgTWFrZSBzdXJlIGl0IHdvcmtzIHdpdGggZW1wdHkgdGFnbGlzdHMKCjIwMTQtMDctMTQgMTg6MjU6NTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0czogZ3N0c3RydWN0dXJlOiBzZXJpYWxpemF0aW9uIG9mIHRhZyBldmVudCBzdHJ1Y3R1cmUKCSAgQWRkcyBhIHRlc3QgdGhhdCBjaGVja3MgdGhhdCB0aGUgc2VyaWFsaXphdGlvbiBvZiBhIHRhZyBldmVudCBzdHJ1Y3R1cmUKCSAgd29ya3Mgd2l0aG91dCBwcm9ibGVtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTMxCgoyMDE0LTA3LTE0IDE4OjIzOjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWRkIEdzdFRhZ0xpc3QgY29tcGFyZSBmdW5jdGlvbgoJICBXaGVuIHNlcmlhbGl6aW5nIEdzdFN0cnVjdHVyZXMgZnJvbSBldmVudHMgaW4gR0RQIGl0IHdpbGwgYWRkIGEgdGFnbGlzdAoJICBhcyBhIEdzdFN0cnVjdHVyZSBmaWVsZCwgaGF2aW5nIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGFsbG93cyBjb21wYXJpc29uIG9mCgkgIEdzdFN0cnVjdHVyZXMgdG8gY2hlY2sgaWYgdGhlIHNlcmlhbGl6ZWQvZGVzZXJpYWxpemVkIHZlcnNpb24gbWF0Y2hlcyB0aGUKCSAgb3JpZ2luYWwgb25lLCBhbW9uZyBvdGhlciBjYXNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEzMQoKMjAxNC0wNy0wOSAxNTo0ODoxMCArMDIwMCAgU3JpbWFudGEgUGFuZGEgPHNyaW1hbnRhQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggZm9yIHJhY3kgRU9TIGV2ZW50IGhhbmRsaW5nCgkgIFdoZW4gZW9zIGV2ZW50cyBhcmUgZm9yd2FyZGVkIHNpbXVsdGFuZW91bHkgZnJvbSB0d28gc2lua3BhZHMgb24KCSAgZnVubmVsLCBpdCBkb2Vzbm90IGZvcndhcmQgdGhlIGVvcyB0byBzb3VyY2VwYWQuIFRoZSByZWFzb24gaXMKCSAgc3RpY2t5IGV2ZW50cyBhcmUgc3RvcmVkIGFmdGVyIHRoZSBldmVudCBjYWxsYmFja3MgYXJlIHJldHVybmVkLgoJICBUaGVyZWZvcmUgd2hpbGUgb25lIGlzIGFib3V0IHRvIHN0b3JlIHRoZSBzdGlja3kgZXZlbnRzIG9uIHRoZSBpdHMKCSAgc2lua3BhZCwgb3RoZXIgc2lua3BhZCBzdGFydHMgY2hlY2tpbmcgZm9yIHRoZSBlb3MgZXZlbnRzIG9uIGFsbCBvdGhlcgoJICBzaW5rcGFkcyBhbmQgYXNzdW1lcyBlb3MgaXMgbm90IHByZXNlbnQgeWV0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyODUxCgoyMDE0LTA3LTE3IDE2OjA1OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBBZGQgdW5pdCB0ZXN0IGZvciByZXNldHRpbmcgb2YgdGhlIHN0YXJ0IHRpbWUKCSAgQWxzbyBjaGVjayBpZiB0aGlzIHByb3Blcmx5IGFmZmVjdHMgYmFzZXNpbmsgZWxlbWVudHMgdG8gbm90CgkgIHJlcG9ydCB0aGUgb2xkIHN0YXJ0IHRpbWUgYnV0IHRoZSByZWFsIGN1cnJlbnQgcG9zaXRpb24gd2hlbgoJICBzZXR0aW5nIHRvIFBBVVNFRCBhZ2Fpbi4KCjIwMTQtMDctMTUgMTg6MTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFJlc2V0IHRoZSBzdGFydCB0aW1lIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8gUkVBRFkgdG9vCgoyMDE0LTA3LTE1IDE3OjE5OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBSZXNldCBzdGFydCB0aW1lIGluIFJFQURZLT5QQVVTRUQgYmVmb3JlIGNoYWluaW5nIHVwCgkgIE90aGVyd2lzZSBiaW4gd2lsbCBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSBjaGlsZCBlbGVtZW50cyB3aXRob3V0CgkgIGRpc3RyaWJ1dGluZyB0aGUgbmV3IHN0YXJ0IHRpbWUuCgoyMDE0LTA2LTI4IDE3OjU4OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGVsZW1lbnRzOiBpbXByb3ZlIGJ1ZmZlciBmbGFncyB0byBzdHJpbmcgdXRpbGl0eSBmdW5jdGlvbgoJICBBdm9pZCByZWxvY2F0aW9ucyBhbmQgcmVmYWN0b3Igc28gdGhhdCB3ZSBkb24ndCBjYWxjdWxhdGUKCSAgdGhlIGZpeGVkIGFuZCBrbm93biBhdCBjb21waWxlIHRpbWUgbWF4aW11bSBzdHJpbmcgc2l6ZQoJICBldmVyeSB0aW1lLiBBbHNvIHNraXAgdGhlIG1pbmkgb2JqZWN0IGZsYWdzIHdoaWNoIHdlIGFyZQoJICBub3QgZ29pbmcgdG8gcHJpbnQgYW55d2F5LgoKMjAxNC0wNy0xOSAxODowNDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS40LjAgPT09CgoyMDE0LTA3LTE5IDE2OjQ2OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNC4wCgoyMDE0LTA3LTE5IDE2OjIxOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNy0xOSAxMjoxNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2RhLnBvOgoJKiBwby9zdi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDctMTcgMTU6NTM6NTMgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV0dXJuIEZMT1dfRkxVU0hJTkcgd2hlbiBwdXNoaW5nIGEgZnJhbWUgb24gYSBwYWQgdGhhdCBoYXMgYmVlbiBmbHVzaGVkCgkgIFdoZW4gZ29pbmcgdG8gUkVBRFksIGl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgYXJlIHN0aWxsIHB1c2luZyBhIGZyYW1lIGJ1dCB0aGF0CgkgIG91ciBzcmNwYWQgaGFzIGFscmVhZHkgYmVlbiBzZXQgdG8gZmx1c2hpbmcuIEluIHRoYXQgY2FzZSB3ZSBzaG91bGQgbm90CgkgIHBvc3QgYW55IGVycm9yIG9uIHRoZSBidXMgYnV0IGluc3RlYWQgY2xlYW5seSByZXR1cm4gRkxPV19GTFVTSElORy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzMyMAoKMjAxNC0wNy0xNyAwNzowNzozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IFByb3BhZ2F0ZSBpbnB1dCBidWZmZXIgUFRTIGFuZCBEVFMKCSAgVGhlIGluaXRpYWwgYnVmZmVycyAodGhhdCB3ZXJlIHVzZWQgZm9yIHRpbWVzdGFtcGluZykgbWlnaHQgaGF2ZSBQVFMKCSAgYW5kIERUUyBzZXQuIEluIG9yZGVyIHRvIGZvcndhcmQgdGhvc2UgcHJvcGVybHksIGdldCB0aGUgaW5pdGlhbAoJICBQVFMvRFRTIGZyb20gdGhlIGFkYXB0ZXIgYW5kIHNldCB0aGVtIG9uIHRoZSByZWNvbnN0cnVjdGVkIG91dHB1dAoJICBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMyOTEKCjIwMTQtMDctMTIgMTc6MDE6MjMgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IFVucmVmIHBhZCB0ZW1wbGF0ZSBhZnRlciB1c2UKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEyMQoKMjAxNC0wNy0xNCAxODoxMDo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogaW5pdCB0YWdsaXN0IGd0eXBlIHRvIHVzZSBpdCBpbiBnc3R2YWx1ZQoJICBPdGhlcndpc2UgaXQgd2lsbCBoYXZlIGEgMCB2YWx1ZSBhbmQgR3N0VGFnTGlzdCB3b24ndCBiZSBmb3VuZAoJICBmb3IgR3N0VmFsdWUgZnVuY3Rpb25zIChzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEzMQoKPT09IHJlbGVhc2UgMS4zLjkxID09PQoKMjAxNC0wNy0xMSAxMDo0NjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuOTEKCjIwMTQtMDctMTEgMTA6NDE6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA3LTExIDA4OjUxOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vZGEucG86CgkqIHBvL3ZpLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNy0wNSAxODoyOToyOSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkgIGRvY3M6IEZpeCBkb2N1bWVudGF0aW9uIHR5cG9zIGFuZCBpbmNvbnNpc3RlbmNpZXMKCSAgKiBHc3RHbG9iYWxEZXZpY2VNb25pdG9yIHdhcyByZW5hbWVkIHRvIEdzdERldmljZU1vbml0b3IKCSAgKiBFeHBhbmQgR1NUX01FU1NBR0VfREVWSUNFIHRvIHRoZSBmdWxsIGVudW0gdmFsdWUgbmFtZXMKCSAgKiBDb3JyZWN0IHRoZSBpbmNvcnJlY3QgcmVmZXJlbmNlcyB0byB0aGUgR3N0RGV2aWNlUHJvdmlkZXIgaW50ZXJmYWNlcwoJICAqIERlc2NyaWJlIGNhcHMgYXJndW1lbnRzIGZvciBnc3RjaGVjayBpbnRlcmZhY2UKCSAgKiBBZGQgbWlzc2luZyBkb2NzIGZvciBHc3ROZXRBZGRyZXNzTWV0YSBhbmQgaXRzIGFkZCBmdW5jdGlvbgoJICAqIEFkZCBkb2NzIGZvciB0b2MgaGVscGVyIG1hY3JvcwoJICAqIEF2b2lkIHJlZmVyaW5nIHRvIEdzdFZhbHVlTGlzdCB0eXBlIGFzIGRvbmUgZWxzZXdoZXJlCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI3ODYKCjIwMTQtMDctMDUgMTc6MTM6MjEgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IENsZWFudXAgaW50ZXJmYWNlIHJlZmVyZW5jZXMgaW4gZG9jcwoJICAqIERlbGV0ZSByZWZlcmVuY2VzIHRvIHJlbW92ZWQgaW50ZXJmYWNlcwoJICAqIEFkZCBtaXNzaW5nIGRvY3VtZW50YXRpb24gc2VjdGlvbnMKCSAgKiBGaXggZHVwbGljYXRlIGludGVyZmFjZSByZWZlcmVuY2VzIGZvciBHc3REZXZpY2UKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjc4NgoKMjAxNC0wNy0wOCAxMToxNzo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IFRoZXJlIGlzIG5vIGRlY29kZWJpbjIgYW55bW9yZSwgZG9uJ3QgcHJldGVuZCBvdGhlcndpc2UKCjIwMTQtMDctMDcgMTY6MTQ6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZml4IGVycm9yIHNldHRpbmcgd2hlbiB1cmkgaXMgaW52YWxpZAoJICBFbGVtZW50cyBzaG91bGQgYWx3YXlzIHNldCB0aGUgR0Vycm9yCgoyMDE0LTA3LTA2IDEyOjEzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgbGliczogZ3N0Y2hlY2s6IGNoZWNrIHRoYXQgbXV0ZXggaXMgbG9ja2VkIGJlZm9yZSBnX2NvbmRfd2FpdCooKSBpcyBjYWxsZWQKCSAgU2FuaXR5IGNoZWNrIHRvIGNhdGNoIHByb2JsZW1zIGluIHVuaXQgdGVzdC4KCjIwMTQtMDctMDYgMTI6MTI6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBsaWJzOiBnc3RjaGVjazogaW5pdCBhbmQgY2xlYXIgZ2xvYmFsIG11dGV4IGFuZCBjb25kIHZhcmlhYmxlcwoKMjAxNC0wNy0wNiAxMjowOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgIHRlc3RzOiBmaXggbG9ja2luZyBpbiBnc3Rwb2xsIHVuaXQgdGVzdAoJICBUaGUgbXV0ZXggbmVlZHMgdG8gYmUgbG9ja2VkIHdoZW4gZ19jb25kX3dhaXQqKCkgaXMKCSAgY2FsbGVkLgoKMjAxNC0wNy0wNSAxNjoyNDoxOCArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB2aWRlbyBhbmQgYmFzZSBsaWJyYXJ5IHBhdGhzIGZyb20gLWJhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzcwCgoyMDE0LTA3LTA0IDE5OjQwOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHN1cHByZXNzIEdMaWIgd2FybmluZ3Mgd2hlbiBnc3QtaW5zcGVjdGluZyBkZXByZWNhdGVkIHByb3BlcnRpZXMKCSAgR0xpYiBpbiBnaXQgd2lsbCBzcGV3IGEgZ193YXJuaW5nKCkgd2hlbiBhIHByb3BlcnR5IG1hcmtlZCBhcwoJICBkZXByZWNhdGVkIHZpYSBwYXJhbSBzcGVjIGZsYWdzIGlzIGFjY2Vzc2VkLiBTdXBwcmVzcyB0aGlzIGJ5CgkgIHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAxNC0wNy0wMyAxMDoxMTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IFdvcmsgYXJvdW5kIGctaS9weWdvYmplY3QvZ2pzIGJ1ZyB3aXRoIH4wIGluIGVudW1zCgkgIEdTVF9NRVNTQUdFX0FOWSB3YXMgY29uc2lkZXJlZCBhIGxvbmcgYnkgcHlnb2JqZWN0IGFuZCBnanMsIGFuZCB0aHVzCgkgIGNvdWxkbid0IGJlIHVzZWQgaW4gZ3N0X2J1c19wb2xsKCkgYW5kIHNpbWlsYXIgQVBJcyBhcyB0aGV5IGV4cGVjdCBhbgoJICBpbnQtdHlwZWQgZW51bS4KCSAgSnVzdCB1c2UgMHhmZmZmZmZmZiBpbnN0ZWFkIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI2MzMKCjIwMTQtMDctMDIgMDg6NDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogZG9uJ3QgdXNlIHBvc3QtR0xpYiAyLjMyIEFQSSBpbiBidWZmZXJsaXN0IHRlc3QKCSAgZ19wdHJfYXJyYXlfaW5zZXJ0KCkgaXMgR0xpYiA+PSAyLjQwCgoyMDE0LTA3LTAxIDEyOjIyOjU2ICswMjAwICBHw7ZyYW4gSsO2bnNzb24gPGdvcmFuam5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgdW5sb2NrIHdoaWxlIGl0ZXJhdGluZyBvdmVyIGFsbCBzdGlja3kgZXZlbnRzIGZvciByZW1vdmFsCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBlbmQgdXAgZ2V0dGluZyB0aGUgZXZlbnQgcmVtb3ZlZCBmcm9tIGVsc2V3aGVyZQoJICBhdCB0aGUgc2FtZSB0aW1lIHdoaWxlIHdlJ3JlIHVubG9ja2VkIGZvciBnX29iamVjdF9ub3RpZnkoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjU1NgoKMjAxNC0wNy0wMSAxOToxNzoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IFByb3h5IHRoZSBhY2NlcHQtY2FwcyBxdWVyeQoJICBXZSBhbHdheXMgd29yayBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gZG9pbmcKCSAgc29tZXRoaW5nIG1vcmUgY2xldmVyIGluIGJhc2V0cmFuc2Zvcm0uIEFsc28gdGhlIGJhc2V0cmFuc2Zvcm0KCSAgY29kZSBsZWFkcyB0byBwcm9ibGVtcyB3aXRoIGluY29tcGxldGUgY2FwcyBhbmQgZG93bnN0cmVhbQoJICBlbGVtZW50cyB0aGF0IHVzZSBHU1RfUEFEX0ZMQUdfQUNDRVBUX0lOVEVSU0VDVC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjU1OQoKMjAxNC0wNy0wMSAxMToyMTo1MyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZXNldCBRb1Mgb24gc2VnbWVudCBldmVudAoJICBUaGlzIGF2b2lkcyBzcHVyaW91cyB3YXJuaW5ncyBhYm91dCBzbG93IG1hY2hpbmUgd2hlbiB1cHN0cmVhbQoJICBzZW5kcyBuZXcgc2VnbWVudHMgd2l0aG91dCBmbHVzaGluZy4KCjIwMTQtMDYtMzAgMjM6Mzk6MTggLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGludHJvc3BlY3Rpb246IEFzc29ydGVkIG1pbm9yIGludHJvc3BlY3Rpb24gYW5kIGRvY3VtZW50YXRpb24gZml4ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjUzNAoKMjAxNC0wNi0zMCAwODo1OToxOCArMDAwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBTdG9wIHVzaW5nIGdfY2xlYXJfcG9pbnRlcigpCgkgIFdlIGRvbnQndCB3YW50IHRvIGRlcGVuZCBvbiBHTGliIDIuMzQgZm9yIG5vdy4KCjIwMTQtMDYtMjkgMTk6MTY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3NwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogSW5pdGlhbGl6ZSBtZW1vcnkgaW4gdW5pdCB0ZXN0IHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkKCSAgV2Ugd2VyZSB3cml0aW5nIHVuaXRpYWxpemVkIHN0YWNrIG1lbW9yeSB0byB0aGUgZmlsZS4KCj09PSByZWxlYXNlIDEuMy45MCA9PT0KCjIwMTQtMDYtMjggMTA6NDU6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjkwCgoyMDE0LTA2LTI4IDEwOjQxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNi0yNyAxMDo0NDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlbW9uaXRvcjogZG9uJ3QgZmFpbCB3aGVuIHN0YXJ0ZWQgd2l0aG91dCBhbnkgZmlsdGVycwoJICBKdXN0IHNob3cgYWxsIGRldmljZXMgdGhlbi4KCjIwMTQtMDYtMjcgMTA6NDQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkgIGRldmljZXByb3ZpZGVyZmFjdG9yeTogaGFuZGxlIE5VTEwgY2xhc3NlcyBhcmd1bWVudCBhbmQgbWF0Y2ggYW55CgoyMDE0LTA2LTI2IDIxOjAwOjQwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogQWRkIHVuaXQgdGVzdHMKCjIwMTQtMDYtMjYgMTc6MjI6MjUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkZXZpY2Vtb25pdG9yOiBJbXByb3ZlIGRvY3VtZW50YXRpb24KCjIwMTQtMDYtMjYgMTc6MTM6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vtb25pdG9yOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGFkZCBtdWx0aXBsZSBmaWx0ZXJzCgkgIEVhY2ggZmlsdGVyIHdpbGwgaW5jbHVkZSBhIEdzdENhcHMgYW5kIGEgc2V0IG9mIGNsYXNzZXMgdG8gbWF0Y2gKCjIwMTQtMDYtMjYgMTY6MzE6NTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogQWRkIHByZS1jb25kaXRpb25zCgoyMDE0LTA2LTI2IDE1OjA4OjQ2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3REZXZpY2VNb25pdG9yOiBSZW5hbWUgZnJvbSBHc3RHbG9iYWxEZXZpY2VNb25pdG9yCgoyMDE0LTA2LTI2IDE0OjI4OjA5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIERldmljZVByb3ZpZGVyOiBSZW5hbWUgZnJvbSBEZXZpY2VNb25pdG9yCgoyMDE0LTA2LTI2IDE5OjMxOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZGF0YXF1ZXVlOiBIaWRlIGZyb20gYmluZGluZ3MKCSAgT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgdGhlaXIgb3duIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBtb3JlIGNvbnZlbmllbnQgdG8KCSAgdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzAzCgoyMDE0LTA2LTI2IDE5OjMwOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJICBxdWV1ZWFycmF5OiBIaWRlIGZyb20gYmluZGluZ3MKCSAgT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgdGhlaXIgb3duIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBtb3JlIGNvbnZlbmllbnQgdG8gdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzUwCgoyMDE0LTA1LTI4IDEwOjE0OjQ1ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcC53aXRobmFsbEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zCgkgIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCkgY2FuIHRha2UgTlVMTCBtaW5pLW9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA4NzMKCjIwMTQtMDYtMjYgMTk6MDI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBBcHBsaWNhdGlvbiBhbmQgZWxlbWVudCBtZXNzYWdlcyBzaG91bGQgbm90IGhhdmUgTlVMTCBzdHJ1Y3R1cmVzCgkgIEl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHRoZW0uCgoyMDE0LTA2LTExIDE2OjE5OjAxIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgc29tZSBtaXNzaW5nIGFsbG93LW5vbmUgYW5ub3RhdGlvbnMgdG8gaW4gcGFyYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NTcKCjIwMTQtMDYtMTEgMTY6MDY6MTkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBudWxsYWJpbGl0eSBhbm5vdGF0aW9ucyB0byBvdXQgYW5kIGlub3V0IHBhcmFtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE1OjIxOjM0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucyB0byByZXR1cm4gdmFsdWVzCgkgIFN1cHBvcnQgZm9yIChudWxsYWJsZSkgd2FzIGFkZGVkIHRvIEctSSBhdCB0aGUgc2FtZSB0aW1lIGFzIG51bGxhYmxlCgkgIHJldHVybiB2YWx1ZXMuICBQcmV2aW91cyB2ZXJzaW9ucyBvZiBHLUkgd2lsbCBub3QgbWFyayByZXR1cm4gdmFsdWVzIGFzCgkgIG51bGxhYmxlLCBldmVuIHdoZW4gYW4gKGFsbG93LW5vbmUpIGFubm90YXRpb24gaXMgcHJlc2VudCwgc28gaXQgaXMKCSAgbm90IG5lY2Vzc2FyeSB0byBhZGQgKGFsbG93LW5vbmUpIGFubm90YXRpb25zIGZvciBjb21wYXRpYmlsaXR5IHdpdGgKCSAgb2xkZXIgdmVyc2lvbnMgb2YgRy1JLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE3OjE1OjM5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgYmFzZTogYXNzb3J0ZWQgaW50cm9zcGVjdGlvbiBmaXhlcyBhbmQgYWRkaXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE1NDIKCjIwMTQtMDYtMTEgMTc6MTI6MjAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgYmFzZTogYWRkIChudWxsYWJsZSkgYW5ub3RhdGlvbnMgdG8gcmV0dXJuIHZhbHVlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNTQyCgoyMDE0LTA2LTI2IDE0OjA4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGFkZCBhbm90aGVyIGJ1ZmZlciBsaXN0IHRlc3QgY2FzZQoKMjAxNC0wNi0yNiAxMzoyNDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBwb3J0IGFuZCByZS1lbmFibGUgYnVmZmVyIGxpc3QgdGVzdHMKCSAgQW5kIHJlbW92ZSBzb21lIHdoaWNoIGRvbid0IGFwcGx5IGFueSBtb3JlLgoKMjAxNC0wNi0yNiAxMTo1ODowNCArMDMwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBlbmhhbmNlIHRoZSBnc3RjYXBzIHRlc3RfZmVhdHVyZXMgdG8gYWxzbyB0ZXN0IGdzdF9jYXBzX3NldF9mZWF0dXJlcygpCgkgIENvbXBsaW1lbnRzIG15IHByZXZpb3VzIHBhdGNoIGZvciBnc3RfY2Fwc19zZXRfZmVhdHVyZXMsIHdoaWNoIHdvdWxkCgkgIHByZXZpb3VzbHkgYXNzZXJ0IGFuZCBsZWFrIHRoZSBvbGQgR3N0Q2Fwc0ZlYXR1cmVzIGlmIHRoZSBjYXBzIGFscmVhZHkKCSAgaGFkIGEgR3N0Q2Fwc0ZlYXR1cmVzIGFuZCB5b3Ugd2VyZSB0cnlpbmcgdG8gcmVwbGFjZSBpdCB3aXRoIGEgbmV3IG9uZS4KCjIwMTQtMDYtMjYgMTE6MTY6MzQgKzAzMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1bnNldCB0aGUgcGFyZW50IHJlZmNvdW50IG9mIHRoZSBvbGQgZmVhdHVyZXMgYmVmb3JlIGZyZWVpbmcgdGhlbSBpbiBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKQoJICBPdGhlcndpc2UgZ3N0X2NhcHNfZmVhdHVyZXNfZnJlZSgpIGFzc2VydHMgYW5kIHRoZSBmZWF0dXJlcyBzdHJ1Y3R1cmUgaXMgbGVha2VkCgoyMDE0LTA2LTE2IDE5OjMwOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgcmV0dXJuaW5nIF9PSyBmb3IgX05PVF9MSU5LRUQKCSAgV2hlbiB0aGUgcGFyc2VyIHJlY2VpdmVzIG5vbi1hbGlnbmVkIHBhY2tldHMgaXQgY2FuIHB1c2ggYSBidWZmZXIKCSAgYW5kIGdldCBhIG5vdC1saW5rZWQgcmV0dXJuIHdoaWxlIHN0aWxsIGxlYXZpbmcgc29tZSBkYXRhIHN0aWxsIHRvCgkgIGJlIHBhcnNlZC4gVGhpcyByZW1haW5pbmcgZGF0YSB3aWxsIG5vdCBmb3JtIGEgY29tcGxldGUgZnJhbWUgYW5kCgkgIHRoZSBzdWJjbGFzcyBsaWtlbHkgcmV0dXJucyBfT0sgYW5kIGJhc2VwYXJzZSB3b3VsZCB0YWtlIHRoYXQKCSAgYXMgdGhlIHJldHVybiwgd2hpbGUgaXQgdGhlIGVsZW1lbnQgaXMgYWN0dWFsbHkgbm90LWxpbmtlZC4KCSAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IHN0b3JpbmcgdGhlIGxhc3QgZmxvdy1yZXR1cm4gZnJvbSBhIHB1c2gKCSAgYW5kIHVzaW5nIHRoYXQgaWYgYSBwYXJzaW5nIG9wZXJhdGlvbiBkb2Vzbid0IHJlc3VsdCBpbiBkYXRhIGJlaW5nCgkgIGZsdXNoZWQgb3Igc2tpcHBlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTQ3NAoKMjAxNC0wNi0yNSAxMTo0MDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBlbGVtZW50czogZml4IGNvcHlyaWdodCBhbmQgcmVtb3ZlIGd0ay1kb2MgY2h1bmsKCSAgVHJpdmlhbCBhcyBpdCBtYXkgYmUsIHRoaXMgY29kZSB3YXMgbW9zdGx5IGNvcGllZCBmcm9tCgkgIHNvbWV3aGVyZSBlbHNlLiBUaGUgZ3RrLWRvYyBjaHVuayBpcyBub3QgbmVlZGVkLCBzaW5jZQoJICBpdCdzIG5vdCBwdWJsaWMgQVBJLgoKMjAxNC0wNi0wMiAyMjowNzo1MiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBJZ25vcmUgc2VlayBlcnJvciBvbiBub24tc2Vla2FibGUgZmlsZXMKCSAgVGhpcyBtYWtlIGl0IHdvcmtzIHdpdGggRklGT3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzExNzYKCjIwMTQtMDYtMjIgMTk6MzY6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4zID09PQoKMjAxNC0wNi0yMiAxODowNzo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuMwoKMjAxNC0wNi0yMiAxNzoxNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDYtMjIgMTQ6MjM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3NyLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDYtMjIgMTI6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2NhcHNfaXNfYW55KCkgYW5kIF9pc19lbXB0eSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzA0CgoyMDE0LTA2LTIyIDEyOjUwOjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZ3N0X2NhcHNfaXNfYW55KCkgc2hvdWxkIHJldHVybiBUUlVFIG9yIEZBTFNFCgkgIE5vdCBzb21lIGZsYWcgdmFsdWUgaW5zdGVhZCBvZiBUUlVFLiBGaXhlcyBjb2RlIGxpa2UKCSAgZ3N0X2NhcHNfaXNfYW55KCkgPT0gVFJVRS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MzE3MDQKCjIwMTQtMDYtMDEgMTY6NTY6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZTogcmVuYW1lICJrbGFzcyIgYW5kIGdldF9rbGFzcygpIHRvICJkZXZpY2UtY2xhc3MiIGFuZCBfZ2V0X2RldmljZV9jbGFzcygpCgkgIFRoZXJlJ3Mgc29tZSBwcmVjZWRlbnQgaW4gR3N0RWxlbWVudEZhY3RvcnksIGJ1dCBhCgkgICJrbGFzcyIgcHJvcGVydHkganVzdCBzZWVtcyB3ZWlyZC4KCjIwMTQtMDYtMjAgMTg6MzQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IGNhcHNuZWdvOiBhZGQgLS1sb29wcyBjb21tYW5kIGxpbmUgb3B0aW9uCgkgIEFuZCBkZWZhdWx0IHRvIDUwIGxvb3BzLgoKMjAxNC0wNi0yMCAxNzoxNDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBjYXBzbmVnbzogdXNlIEdPcHRpb25Db250ZXh0IGZvciBvcHRpb24gcGFyc2luZwoKMjAxNC0wNi0xOSAxMjoxMDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogZml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIGdzdHZhbHVlIHRlc3RzCgkgIENhbGxpbmcgR1NUX1ZBTFVFX0hPTERTXyooJnYpIG5vdyByZXN1bHRzIGluIGEgY29tcGlsZXIKCSAgd2FybmluZyBhYm91dCB2YWx1ZSE9TlVMTCBhbHdheXMgYmVpbmcgZmFsc2UsIHNvIGNoZWNrCgkgIHR5cGUgZGlyZWN0bHkgaW4gdGhvc2UgY2FzZXMuCgoyMDE0LTA2LTE3IDIyOjQ1OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogc2ltcGxpZnkgR1NUX1ZBTFVFX0hPTERTIGZvciBvdXIgYm94ZWQgYW5kIGZ1bmRhbWVudGFsIHR5cGVzCgkgIEJveGVkIHR5cGVzIGNhbid0IGJlIGRlcml2ZWQgZnJvbSwgYW5kIHdlIGRvbid0IHN1cHBvcnQKCSAgZGVyaXZpbmcgZnJvbSBvdXIgc3BlY2lhbCBmdW5kYW1lbnRhbCB0eXBlcyAodGhlIGNvZGUKCSAgY2hlY2tzIGZvciBHVHlwZSBlcXVhbGl0eSBpbiBtb3N0IHBsYWNlcy4KCjIwMTQtMDYtMjAgMTY6NTU6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEdzdERldmljZTogRG9jdW1lbnQgR3N0RGV2aWNlIGFuZCByZWxhdGVkIGNsYXNzZXMKCjIwMTQtMDYtMTYgMTM6NDc6NTUgKzAyMDAgIFNyaW1hbnRhIFBhbmRhIDxzcmltYW50YS5wYW5kYUBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBGaXggZnVubmVsIEVPUyBoYW5kbGluZyBhbmQgd3JvbmcgdW5pdHRlc3QKCSAgV2hlbiBubyBkYXRhIGlzIGNvbWluZyBmcm9tIHNpbmtwYWRzIGFuZCBlb3MgZXZlbnRzCgkgIGFycml2ZWQgYXQgb25lIG9mIHRoZSBzaW5rcGFkLCBmdW5uZWwgZm9yd2FyZHMgdGhlIEVPUwoJICBldmVudCB0byBkb3duc3RyZWFtLiBJdCBmb3J3YXJkcyB0aGUgRU9TIGJlY2F1c2UgbGFzdHNpbmsgcGFkCgkgIGlzIE5VTEwuIEFsc28gdGhlIHVuaXQgdGVzdGNhc2Ugb2YgdGhlIGZ1bm5lbCBpcyBub3QgY2hlY2tpbmcKCSAgdGhlIGNvcnJlY3QgYmVoYXZpb3IgYXMgaXQgc2hvdWxkLiBUaGUgdW5pdCB0ZXN0IGNhc2Ugc2hvdWxkCgkgIGZhaWwgaWYgb25lIG9mIHRoZSBzaW5rIHBhZCBoYXMgYWxyZWFkeSBFT1MgcHJlc2VudCBvbiBpdCBhbmQKCSAgd2UgYXJlIHRyeWluZyB0byBwdXNoIG9uZSBtb3JlIEVPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTcxNgoKMjAxNC0wNi0xOSAwODowOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogb3B0aW1pc2UgY2hlY2tzIGZvciBsaXN0cwoJICBPdXIgZnVuZGFtZW50YWwgdHlwZXMgYXJlIG5vbi1kZXJpdmFibGUsIHNvIHdlIGNhbgoJICBqdXN0IGNoZWNrIGZvciBlcXVhbGl0eS4gQWxzbyBhdm9pZCBkb2luZyB0aGUgc2FtZQoJICBjaGVjayBtdWx0aXBsZSB0aW1lcyBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuCgoyMDE0LTA2LTE5IDA4OjA2OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiB1c2UgZ19hc3NlcnQoKSBpbiBpbnRlcm5hbCBmdW5jdGlvbiBmb3IgYWxyZWFkeS1jaGVja2VkIHRoaW5ncwoJICBTbyB0aGVzZSBnZXQgY29tcGlsZWQgb3V0IGZvciByZWxlYXNlcy4KCjIwMTQtMDYtMTkgMDg6MDU6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBpbnRlcm5hbCBfY2FuX2NvbXBhcmVfdW5jaGVja2VkKCkKCjIwMTQtMDYtMTkgMDg6MDM6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBpbnRlcm5hbCBfbGlzdF9jb25jYXQoKSB0aGF0IHRha2VzIG93bmVyc2hpcCBvZiBpbnB1dCB2YWx1ZXMKCSAgQXZvaWRzIHVubmVjZXNzYXJ5IGNvcGllcy4KCjIwMTQtMDYtMTggMTk6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogc2ltcGxpZnkgdmFsdWUgdHlwZSBjaGVja3MgaW4gZ2V0dGVycwoJICBKdXN0IGNoZWNrIGZvciBHVHlwZSBlcXVhbGl0eSBpbiBjb21tb24gY2FzZXMuCgoyMDE0LTA2LTE5IDA5OjI5OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgYSBGSVhNRSAyLjAgZm9yIGEgZnJhY3Rpb24gcmFuZ2VzIG9wdGltaXphdGlvbgoJICBDdXJyZW50bHkgd2UgbGVhayB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlbSBhcyB0d28gR1ZhbHVlcyB0aGF0CgkgIGNvbnRhaW4gYSBmcmFjdGlvbi4gV2l0aG91dCB0aGlzIHdlIGNvdWxkIHN0b3JlIGZyYWN0aW9uIHJhbmdlcyBhcwoJICBkYXRhWzBdID0gKG1pbl9uIDw8IDMyKSB8IChtaW5fZCkKCSAgZGF0YVsxXSA9IChtYXhfbiA8PCAzMikgfCAobWF4X2QpCgkgIGFuZCB3b3VsZG4ndCByZXF1aXJlIGFuIGFkZGl0aW9uYWwgYWxsb2NhdGlvbiBwZXIgcmFuZ2UuCgoyMDE0LTA2LTE5IDA5OjIzOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogTWFrZSBzdXJlIHRvIGNhc3QgaW50IHJhbmdlIHZhbHVlcyB0byBndWludHMgYmVmb3JlIHN0b3JpbmcgdGhlbQoJICBPdGhlcndpc2UgbmVnYXRpdmUgdmFsdWVzIHdpbGwgc2V0cyBhbGwgb2YgdGhlIDY0IGJpdHMgZHVlIHRvIHR3bydzCgkgIGNvbXBsZW1lbnQncyBkZWZpbml0aW9uIG9mIG5lZ2F0aXZlIHZhbHVlcy4KCSAgQWxzbyBhZGQgYSB0ZXN0IGZvciBuZWdhdGl2ZSBpbnQgcmFuZ2VzLgoKMjAxNC0wNi0xOSAwNzo1NzoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMKCjIwMTQtMDYtMTkgMDk6MDU6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFN0b3JlIGludGVnZXIgcmFuZ2VzIGRpcmVjdGx5IGluIGEgR1ZhbHVlIHdpdGhvdXQgYWRkaXRpb25hbCBhbGxvY2F0aW9uCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBzYXZlIHNvbWUgYWxsb2NhdGlvbnMuIE5leHQgc3RlcCB0byBkbyB0aGlzCgkgIHdpdGggZnJhY3Rpb24gcmFuZ2VzIHRvby4KCjIwMTQtMDYtMTkgMDg6NDM6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdF9wcml2YXRlOiBGaXggZHVwbGljYXRlIGRlZmluaXRpb24KCjIwMTQtMDYtMTkgMDg6MDU6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgZ3N0OiBTdG9yZSBtb3JlIGJhc2ljIHR5cGUgR1R5cGVzIGluIHZhcmlhYmxlcwoJICBNaWNybyBvcHRpbWl6YXRpb24gdG8gY2hhbmdlIGEgZnVuY3Rpb24gY2FsbCB0byBhIHZhcmlhYmxlIGFjY2VzcwoJICBmb3IgYWxsIG91ciBiYXNpYyB0eXBlcy4KCjIwMTQtMDYtMTkgMDg6MDQ6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBTdG9yZSBvdXIgZnVuZGFtZW50YWwgdHlwZSBHVHlwZXMgaW4gdmFyaWFibGVzCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBjaGFuZ2UgYSBmdW5jdGlvbiBjYWxsIHRvIGEgdmFyaWFibGUgYWNjZXNzCgkgIGZvciBhbGwgb3VyIGJhc2ljIHR5cGVzLgoKMjAxNC0wNi0xNyAwNzozMTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFNwZWVkIHVwIGdzdF92YWx1ZV9pbnRlcnNlY3QvX3N1YnRyYWN0CgkgIEJvdGggZ3N0X3ZhbHVlX2ludGVyc2VjdCBhbmQgZ3N0X3ZhbHVlX3N1YnRyYWN0IHdpbGwgY2FsbAoJICBnc3RfdmFsdWVfY29tcGFyZSBpZiBvbmUgb2YgdGhlaXIgYXJndW1lbnRzIGlzbid0IGEgbGlzdC4KCSAgZ3N0X3ZhbHVlX2NvbXBhcmUgd2lsbCB0aGVuIHJlLWRvIGEgY2hlY2sgdG8gc2VlIGlmIG9uZSBvZgoJICB0aGUgYXJndW1lbnRzIGlzIGEgbGlzdCAoZm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YgY29tcGFyaW5nIGEgdW5pdGFyeQoJICB2YWx1ZSB3aXRoIGEgbGlzdCBvZiBsZW5ndGggMSkuCgkgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIHZhcmlvdXMgR19WQUxVRV9IT0xEUyByZXByZXNlbnQgYW4gZXhwZW5zaXZlCgkgIGFtb3VudCBvZiBjYWxsaW5nIGdzdF92YWx1ZV9jb21wYXJlIChhbG1vc3QgaGFsZiBvZiBpdCkgdG8gc2VlIGlmCgkgIHRoZSBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGxpc3QuIFRoZXNlIGNoZWNrcyBjYW4gYmUgZG9uZSB3aXRob3V0CgkgIHdoZW4gd2Uga25vdyB0aGF0IHRoZSBhcmd1bWVudHMgYXJlbid0IGxpc3RzLgoJICAqIENyZWF0ZSBhIG5ldyAibm9saXN0IiBnc3RfdmFsdWVfY29tcGFyZSB3aGljaCBhdm9pZHMgdGhhdCBzcGVjaWFsCgkgIGNhc2UgY29tcGFyaXNpb24KCSAgQmVuY2htYXJrczoKCSAgdmFsZ3JpbmQvY2FsbGdyaW5kOiBhdmVyYWdlIHNwZWVkdXAgaW4gaW5zdHJ1Y3Rpb24gY2FsbHMgZm9yCgkgIGdzdF92YWx1ZV9pbnRlcnNlY3QgYW5kIGdzdF92YWx1ZV9zdWJ0cmFjdCBpcyBhcm91bmQgNTYlIChNYWtlcyA2MyUKCSAgb2YgdGhlIGNhbGxzIGl0IHVzZWQgdG8gdGFrZSBwcmV2aW91c2x5KQoJICB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvOiBXaXRoIGRlZmF1bHQgc2V0dGluZ3MgKGRlcHRoIDQsIGNoaWxkcmVuIDMKCSAgNjA3IGVsZW1lbnRzKSwgdGltZSB0YWtlbiBmb3IgdHJhbnNpdGlvbiBmcm9tIFJFQURZIHRvIFBBVVNFRDoKCSAgQmVmb3JlIDogMDAuMzkxNTE5MTUzCgkgIEFmdGVyICA6IDAwLjIyMDM5NzQ5MgoJICA1NiUgb2YgdGhlIHRpbWUgcHJldmlvdXNseSB1c2VkLCArNzclIHNwZWVkdXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTc1NgoKMjAxNC0wNi0xNyAxNDozOTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgc29tZSBjcnVmdCBmcm9tIHRoZSBidWZmZXJsaXN0IHRlc3QKCSAgQnVmZmVycyBubyBsb25nZXIgY2FycnkgY2FwcywgYW5kIGJ1ZmZlcmxpc3RzIGRvbid0IGhhdmUKCSAgZ3JvdXBzIHdoZXJlIGJ1ZmZlcnMgbWF5IG5lZWQgdG8gYmUgbWVyZ2VkIGludG8gb25lIGFueSBtb3JlLgoKMjAxNC0wNi0xNiAyMDozMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBhZGQgdGVzdCBmb3IgZ3N0X2J1ZmZlcl9saXN0X3JlbW92ZSgpCgoyMDE0LTA2LTE2IDIwOjI5OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGJ1ZmZlciBsZWFrIGluIF9yZW1vdmUoKQoKMjAxNC0wNi0xNiAwOToxODo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogZml4IGctaSB0cmFuc2ZlciBhbm5vdGF0aW9ucwoKMjAxNC0wNi0xNiAwODo0MTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IEZpeGVkIEdCb3hlZENvcHlGdW5jCgkgIEknbGwganVzdCBxdW90ZSB0aGUgbW9zdCBpbnRlcmVzdGluZyBtYW4gaW4gdGhlIHdvcmxkOgoJICAiSSBkb24ndCB1c3VhbGx5IHB1c2ggY29tbWl0cywgYnV0IHdoZW4gSSBkbyBJIGRvbid0IGNvbXBpbGUgaXQKCSAgZmlyc3QiCgoyMDE0LTA2LTE0IDE2OjMwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogc29tZSBkb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMKCjIwMTQtMDYtMTQgMTY6Mjg6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgZXhwb3J0cyBmb3IgbmV3IGdldF90eXBlKCkgZnVuY3Rpb24KCjIwMTQtMDYtMTQgMTE6MzE6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGtlZXAgYSByZWYgdG8gdGhlIHBhZHMgd2UncmUgdXNpbmcKCSAgTmVlZGVkIGZvciB1c2UgdmlhIHRoZSBib3hlZCB0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzU1CgoyMDE0LTA2LTE0IDEwOjU0OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYm94ZWQgdHlwZSBmb3IgYmluZGluZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM1NQoKMjAxNC0wNi0xMSAxNjoyODo1MSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgaW50cm9zcGVjdGlvbjogbWlub3IgYW5ub3RhdGlvbiBhZGRpdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0MQoKMjAxNC0wNi0xMSAxOTowODowNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IGluY2x1ZGUgZ3N0dmVyc2lvbi5oIGluIEdJUiBnZW5lcmF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDMwMjEKCjIwMTQtMDYtMTAgMTA6MjM6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IFVzZSBjb25jaXN0YW50IGRlcmVmZW5jZSBtZXRob2QKCSAgVGhpcyBpcyBtaW5vciBzdHlsZSBmaXggdG8gbm90IG1peCAqdmFyIGFuZCB2YXJbTl0uCgoyMDE0LTA2LTEwIDA5OjM1OjM4IC0wNDAwICBTdW5naG8gQmFlIDxiYXZlci5iYWVAbGdlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBVc2UgcG9pbnRlciBpbnN0ZWFkIG9mIGluZGV4IGFjY2VzcwoJICBDdXJyZW50bHkgdGhlIHNjYW4gdXNlcyBCb3llci1tb29yZSBtZXRob2QgYW5kIGl0cyBwZXJmb3JtYW5jZSBpcyBnb29kLgoJICBidXQsIGl0IGNhbiBiZSBvcHRpbWl6ZWQgZnJvbSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB2aWV3LgoJICBUaGUgb3JpZ2luYWwgc2NhbiBjb2RlIGlzIGltcGxlbWVudGVkIGJ5IGJ5dGUgYXJyYXkgYW5kIGluZGV4LWJhc2VkIGFjY2Vzcy4KCSAgSW4gX3NjYW5fZm9yX3N0YXJ0X2NvZGUoKSwgdGhlIGluZGV4IGlzIGluY3JlYXNpbmcgZnJvbSBzdGFydCB0byBlbmQgYW5kIHRoZQoJICBiYXNlIGFkZHJlc3Mgb2YgdGhlIGJ5dGUgYXJyYXkgaXMgcmVmZXJyZWQgdG8gYXMgcmV0dXJuIHZhbHVlLgoJICBJbiB0aGUgY2FzZSwgaW5kZXgtYmFzZWQgYWNjZXNzIGNhbiBiZSByZXBsYWNlZCBieSBwb2ludGVyIGFjY2Vzcywgd2hpY2gKCSAgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgYnkgcmVtb3ZpbmcgaW5kZXgtcmVsYXRlZCBvcGVyYXRpb25zLgoJICBJdHMgcGVyZm9ybWFjZSBpcyBlbmhhbmNlZCBieSBhcHByb3hpbWF0ZWx5IDglIG9uIGFybS1iYXNlZCBlbWJlZGRlZCBkZXZpY2VzLgoJICBBbHRob3VnaCBpdCBzZWVtcyB0cml2aWFsLCBpdCBjYW4gYWZmZWN0IHRoZSBvdmVyYWxsIHBlcmZvcm1hbmNlIGJlY2F1c2UgdGhlCgkgIF9zY2FuX2Zvcl9zdGFydF9jb2RlKCkgZnVuY3Rpb24gaXMgdmVyeSBvZnRlbiBjYWxsZWQgd2hlbiBILjI2NC9ILjI2NSB2aWRlbyBpcwoJICBwbGF5ZWQuCgkgIEluIGFkZGl0aW9uLCB0aGUgdGVjaG5pcXVlIGNhbiBhcHBseSBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgYW5kIGl0IGlzIGdvb2QgaW4KCSAgdmlldyBvZiByZWFkYWJpbGl0eSBhbmQgbWFpbnRhaW5hYmlsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNDQyCgoyMDE0LTA2LTA3IDEwOjEzOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogcHJldHRpZnkgaGVhZGVyCgoyMDE0LTA2LTA3IDA5OjQ2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBxdWV1ZWFycmF5IGV4cGFuc2lvbiBmcm9tIDEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM0OQoKMjAxNC0wNi0wNiAxNjozNjowMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogZml4IGV4cGFuZGluZyBzaXplIG9mIHF1ZXVlIGZyb20gMQoJICBXaXRob3V0IHdlIHdvdWxkIG5vdCBhY3R1YWxseSBleHBhbmQgYW5kIGFjY2VzcwoJICBtZW1vcnkgYmV5b25kIHRoZSBhbGxvY2F0ZWQgcmVnaW9uIGZvciB0aGUgYXJyYXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNDkKCjIwMTQtMDYtMDUgMTY6NTU6MTUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBjbGVhciB1cCBkb2N1bWVudGF0aW9uIG9mIGdzdF9kYXRhX3F1ZXVlX25ldwoJICBUaGUgZ3BvaW50ZXIgYXJndW1lbnQgaXMgcGFzc2VkIHRvIGFsbCB0aHJlZSBjYWxsYmFja3MsIG5vdCBqdXN0IG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTMwMgoKMjAxNC0wNS0zMCAwMDoxNzowNiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIGludHJvc3BlY3Rpb246IGZpeCBzb21lIG1pbm9yIGFubm90YXRpb24gYnVncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTgyCgoyMDE0LTA2LTA1IDEyOjM4OjIwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgYmFzZTogdXNlIGNvcnJlY3Qgc3ludGF4IGluIGRvY3VtZW50YXRpb24gbW9yZSBjb25zaXN0ZW50bHkKCSAgUHJldmlvdXNseSwgbWFueSBjb25zdGFudHMgd2VyZSBwcmVmaXhlZCB3aXRoICMgb3IgdW5wcmVmaXhlZCwKCSAgc29tZSBmdW5jdGlvbnMgYW5kIG1hY3JvcyB3ZXJlIHByZWZpeGVkIHdpdGggIyBpbnN0ZWFkIG9mIHN1ZmZpeGVkCgkgIHdpdGggKCksIGV0Yy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTI5MwoKMjAxNC0wNS0wNyAxODoyNjozOCArMDgwMCAgemhvdW1pbmcgPHptYWZveEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFBhc3MgcmF0ZSBvZiBpbnB1dCBzZWdtZW50IHRvIG91dHB1dCBzZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk3MDEKCjIwMTQtMDQtMDcgMTQ6NDk6NTkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGdzdGJ1ZmZlcjogZmFjdG9yIHRocmVlIGZsYWdzLXRvLXN0cmluZyBsb29wcwoKMjAxNC0wNi0wMyAyMzo0Mjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgcHJpbnRpbmcgZGF0ZXRpbWVzIHdvcmsgd2l0aCBHU1RfUFRSX0ZPUk1BVAoKMjAxNC0wNi0wMyAyMzozODoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkYXRldGltZTogY2hhbmdlIGludGVybmFsIGltcGxlbWVudGF0aW9uIHRvIG1pbmkgb2JqZWN0CgkgIEFuZCBtb3ZlIHR5cGUgc3R1ZmYgZnJvbSBHc3RWYWx1ZSB0byBHc3REYXRlVGltZS4KCjIwMTQtMDYtMDMgMjI6MTk6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTQtMDYtMDMgMjI6MTI6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBpbXByb3ZlIHN0YXJ0L3N0b3AgaW4gYnVmZmVyaW5nIHF1ZXJ5CgkgIFRoZSBzdGFydCBhbmQgc3RvcCBzaG91bGQgcmVwcmVzZW50IHRoZSBjdXJyZW50bHkgZG93bmxvYWRpbmcgcmVnaW9uLgoJICBUaGUgZXN0aW1hdGVkLXRvdGFsIHNob3VsZCByZXByZXNlbnQgdGhlIHJlbWFpbmluZyB0aW1lIHRvIGRvd25sb2FkCgkgIHRoZSBjdXJyZW50bHkgZG93bmxvYWRpbmcgcmVnaW9uLiBUaGlzIG1ha2VzIGl0IGEgbG90IG1vcmUgdXNlZnVsCgkgIGZvciBhcHBsaWNhdGlvbnMgYmVjYXVzZSB0aGV5IGNhbiB0aGVuIHVzZSB0aG9zZSB2YWx1ZXMgdG8gdXBkYXRlCgkgIHRoZSBmaWxsIHJlZ2lvbiBhbmQgdXNlIHRoZSBlc3RpbWF0ZWQgdGltZSB0byBkZWxheSBwbGF5YmFjay4KCSAgVXBkYXRlIHRoZSBkb2NzIHdpdGggdGhpcyBjbGFyaWZpY2F0aW9uLgoKMjAxNC0wNC0wNyAxNDozNTowNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhZGQgc3RhdGljIGFuZCBjb25zdCB3aGVyZSBhcHByb3ByaWF0ZQoKMjAxNC0wNC0wNyAxNDozMToxNyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBmaXggcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdwoJICBDb3Zlcml0eSAxMDM3MTU1CgoyMDE0LTA2LTAzIDE0OjQ5OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHJlc2V0IHJlYWQgYW5kIHdyaXRlIHBvc2l0aW9ucwoJICBSZXNldCB0aGUgcmVhZCBhbmQgd3JpdGUgcG9zaXRpb25zIHJpZ2h0IGFmdGVyIHdlIG9wZW4gdGhlIGZpbGUgb3IgZmx1c2gKCSAgaXQuIFdlIGFyZSBhbHNvIGluIHRoZSBidWZmZXJpbmcgc3RhdGUgd2l0aCAwIHBlcmNlbnQgYnVmZmVyZWQgd2hlbiB3ZQoJICBzdGFydC4KCjIwMTQtMDYtMDMgMTQ6NDc6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZmlyc3QgaGFuZGxlIGFsbCBtaW5pb2JqZWN0cywgdGhlbiBHT2JqZWN0cwoJICBGaXJzdCBoYW5kbGUgYWxsIG1pbmlvYmplY3RzIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIHRoZSBmaXJzdAoJICBmaWVsZCBwb2ludGVyIGFuZCBsb29rIGF0IHRoZSBHVHlwZS4gV2l0aCB0aGUgcmVjZW50IGdsaWIgY2hhbmdlIHRvCgkgIHNwZWVkIHVwIEdfSVNfT0JKRUNULCB0aGlzIGNhdXNlcyBjcmFzaGVzIG9uIG1pbmlvYmplY3RzIG90aGVyd2lzZS4KCjIwMTQtMDYtMDMgMTQ6NDY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogR3N0RGF0ZVRpbWUgZG9lcyBub3QgaGF2ZSBhIEdUeXBlIGFzIGZpcnN0IGZpZWxkCgkgIEdzdERhdGVUaW1lIGRvZXMgbm90IGhhdmUgdGhlIEdUeXBlIGFzIHRoZSBmaXJzdCBmaWVsZCBzbyB3ZSBjYW4ndCB1c2UKCSAgaXQgdG8gZGV0ZWN0IGl0cyB0eXBlLgoKMjAxNC0wNi0wMyAxNDo0NToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgbWFjcm9zIHRvIGNoZWNrIHR5cGVzCgkgIFVzZSB0aGUgbWFjcm9zIHRvIGNoZWNrIHRoZSB0eXBlIG9mIG9iamVjdHMgaW5zdGVhZCBvZiBkaXJlY3RseSBwb2tpbmcKCSAgYXQgdGhlIGZpcnN0IGZpZWxkLgoKMjAxNC0wNi0wMSAyMzo1MToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IGNvbm5lY3Qgc3luYy1tZXNzYWdlIHNpZ25hbCBvbiB0aGUgcmlnaHQgb2JqZWN0CgkgIEZpeGVzIGNyaXRpY2FscyBhdCBydW50aW1lIGFuZCBtYWtlcyBzdHVmZiBhY3R1YWxseSB3b3JrLgoKMjAxNC0wNS0zMSAxNzozNTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBLZWVwIHN0aWxsIG1lYW5pbmdmdWxsIHBlbmRpbmcgZXZlbnRzIG9uIEZMVVNIX1NUT1AKCSAgT25seSBFT1MgYW5kIHNlZ21lbnQgc2hvdWxkIGJlIGRlbGV0ZWQgaW4gdGhhdCBjYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODY4CgoyMDE0LTA1LTMwIDA5OjEzOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgUmV2ZXJ0ICJtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk2MzYxZTliNWM1ZDAwZGM3NzEyZmYzYTlhY2ZiZTEwZGY3Y2Q5ZmUuCgkgIFRoaXMgd2FzIG5vdCBzdXBwb3NlZCB0byBiZSBwdXNoZWQgeWV0IQoKMjAxNC0wNS0zMCAwOToxMjoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IEl0J3MgcG9vbCwgbm90IHBvby4uLiBldmVuIHdoZW4gdGFsa2luZyBhYm91dCBmbHVzaGluZwoKMjAxNC0wNS0yOCAxMDoxNDo0NSArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXAud2l0aG5hbGxAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogQWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucwoJICBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpIGNhbiB0YWtlIE5VTEwgbWluaS1vYmplY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwODczCgoyMDE0LTA1LTMwIDAxOjQyOjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IGZpeCBsZWFrcwoKMjAxNC0wNS0yOSAxNDo1NDozNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBjb252ZXJ0IE5VTEwsIFRSVUUsIGFuZCBGQUxTRSB0byAlTlVMTCwgJVRSVUUsIGFuZCAlRkFMU0UKCSAgVGhpcyBzaG91bGQgaGVscCBpbXByb3ZlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGZvcgoJICBsYW5ndWFnZXMgb3RoZXIgdGhhbiBDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTYxCgoyMDE0LTA1LTMwIDAwOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBmaXggdHlwZSBpbiBHc3RPYmplY3QgZG9jcwoKMjAxNC0wNS0yOSAxNTowNDo0NSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggZ3N0X2J1ZmZlcl9wb29sX2hhc19vcHRpb24oKSBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NjIKCjIwMTQtMDUtMjkgMTQ6MDc6MTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc2V0IHBhZHMgbmVlZC1wYXJlbnQgZmxhZyB0byBmYWxzZSB3aGVuIHJlbW92aW5nCgkgIFdoZW4gYSBwYWQgaXMgYWRkZWQgdGhlIG5lZWQtcGFyZW50IGZsYWcgaXMgc2V0IHRvIHRydWUsIHNvIHdoZW4KCSAgdGhleSBhcmUgcmVtb3ZlZCB0aGUgZmxhZyBzaG91bGQgYmUgc2V0IGJhY2sgdG8gZmFsc2UKCSAgVGhpcyB3YXMgcHJldmVudGluZyBHc3RQYWRzIHRvIGJlIHJldXNlZCBpbiBlbGVtZW50cyAocmVtb3ZlZCBhbmQKCSAgbGF0ZXIgcmUtYWRkZWQpLiBBIHVuaXQgdGVzdHMgd2FzIGFkZGVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgaXMKCSAgd29ya2luZyBub3cuCgkgIFRoZSB1c2UgY2FzZSBpcyB0c2RlbXV4IHRoYXQgaGFzIGEgcHJvZ3JhbS1udW1iZXIgcHJvcGVydHkgYW5kCgkgIGFsbG93cyB0aGUgdXNlciB0byBzd2l0Y2ggcHJvZ3JhbXMuIEluIG9yZGVyIHRvIGRvIHRoYXQgdHNkZW11eAoJICB3aWxsIHJlbW92ZSB0aGUgcGFkcyBvZiB0aGUgY3VycmVudCBwcm9ncmFtIGFuZCBhZGQgZnJvbSB0aGUgbmV3CgkgIG9uZXMuIFRoZSByZW1vdmVkIHBhZHMgYXJlIGtlcHQgaW4gdGhlIGRlbXV4ZXIgZm9yIGxhdGVyIGlmIHRoZQoJICB1c2VyIHNlbGVjdHMgdGhlIG9sZCBwcm9ncmFtIGFnYWluLgoKMjAxNC0wNS0yNyAwODowOTozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcG9zdCBidWZmZXJpbmcgbWVzc2FnZSB3aGVuIHF1ZXVlcyBmbHVzaAoJICBUaGUgYnVmZmVyaW5nIHN0YXR1cyBnb2VzIGJhY2sgdG8gMCwgc28gaW5mb3JtIHRoZSBhcHBsaWNhdGlvbiBhYm91dCBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NDIzCgoyMDE0LTA1LTI5IDE0OjM5OjM2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogSWdub3JlIFZJTSBzd2FwIGZpbGVzCgoyMDE0LTA1LTI3IDEzOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogdHdvIG1pbm9yIGRvY3MgZml4ZXMKCjIwMTQtMDUtMjcgMTA6MDk6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGJlYXV0aWZ5IGhlYWRlcnMgYSBsaXR0bGUKCjIwMTQtMDUtMjcgMTA6MDU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBkb2NzOiBhZGQgR3N0Rmxvd0NvbWJpbmVyCgoyMDE0LTA1LTI3IDA5OjU1OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkgIGJhc2U6IGluY2x1ZGUgZmxvd2NvbWJpbmVyIGhlYWRlciBmcm9tIGJhc2UuaAoKMjAxNC0wNS0yNiAxMjozMTozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Zsb3djb21iaW5lci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGZsb3djb21iaW5lcjogYWRkIEdzdEZsb3dDb21iaW5lcgoJICBBZGRzIGEgdXRpbGl0eSBzdHJ1Y3QgdGhhdCBpcyBjYXBhYmxlIG9mIHN0b3JpbmcgYW5kIGFnZ3JlZ2F0aW5nIGZsb3cgcmV0dXJucwoJICBhc3NvY2lhdGVkIHdpdGggcGFkcy4KCSAgVGhpcyB3YXkgYWxsIGRlbXV4ZXJzIHdpbGwgaGF2ZSBhIHN0YW5kYXJkIGZ1bmN0aW9uIHRvIHVzZSBhbmQgaGF2ZSB0aGUKCSAgc2FtZSBleHBlY3RlZCByZXN1bHRzLgoJICBJbmNsdWRlcyB0ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTIyNAoKMjAxNC0wNS0yMyAxMzoyNTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBzdG9yZSBsYXN0IGZsb3cgcmV0dXJuIGFuZCBwcm92aWRlIGFjZXNzb3IgZnVuY3Rpb24KCSAgU3RvcmVzIHRoZSBsYXN0IHJlc3VsdCBvZiBhIGdzdF9wYWRfcHVzaCBvciBhIHB1bGwgb24gdGhlIEdzdFBhZCBhbmQgcHJvdmlkZXMKCSAgYSBnZXR0ZXIgYW5kIGEgbWFjcm8gdG8gYWNjZXNzIHRoaXMgZmllbGQuCgkgIFdoZW5ldmVyIHRoZSBwYWQgaXMgaW5hY3RpdmUgaXQgaXMgc2V0IHRvIEZMVVNISU5HCgkgIEFQSTogZ3N0X3BhZF9nZXRfbGFzdF9mbG93X3JldHVybgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjI0CgoyMDE0LTA1LTIzIDE1OjI2OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogQWRkIG1ldGhvZCBhbmQgdmlydHVhbHMgdG8gc2V0IGZsdXNoaW5nIHN0YXRlCgkgIEN1cnJlbnRseSB0aGVyZSBpcyBubyBvdGhlciB3YXkgdG8gdW5sb2NrIGEgYnVmZmVyIHBvb2wgb3RoZXIgdGhlbgoJICBzdG9wcGluZyBpdC4gVGhpcyBtYXkgaGF2ZSB0aGUgZWZmZWN0IG9mIGZyZWVpbmcgYWxsIHRoZSBidWZmZXJzLAoJICB3aGljaCBpcyB0b28gaGVhdnkgZm9yIGEgc2Vlay4gVGhpcyBwYXRjaCBhZGQgYSBtZXRob2QgdG8gZW50ZXIgYW5kCgkgIGxlYXZlIGZsdXNoaW5nIHN0YXRlLiBBcyBhIGNvbnZlbmllbmNlLCBmbHVzaF9zdGFydC9mbHVzaF9zdG9wCgkgIHZpcnR1YWwgYXJlIGFkZGVkIHNvIHBvb2wgaW1wbGVtZW50YXRpb24gY2FuIGFsc28gdW5ibG9jayB0aGVpciBvd24KCSAgaW50ZXJuYWwgcG9sbCBhdG9taWNhbGx5IHdpdGggdGhlIHJlc3Qgb2YgdGhlIHBvb2wuICBUaGlzIGlzIGZ1bGx5CgkgIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBkb2luZyBzdG9wL3N0YXJ0IHRvIGFjdHVhbGx5IGZsdXNoIHRoZSBwb29sCgkgIChhcyBiZWluZyBkb25lIGluIEdzdEJhc2VTcmMpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NjExCgoyMDE0LTA1LTI2IDE0OjIzOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFBhc3N0aHJvdWdoIEFMTE9DQVRJT04gcXVlcmllcyBpbiBwYXNzdGhyb3VnaCBtb2RlIGV2ZW4gaWYgd2UgaGFkIG5vIGNhcHMgeWV0CgkgIE9yIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGNhcmUgYWJvdXQgY2FwcyBhdCBhbGwuCgkgIEFsc28gcmVtb3ZlIGFuIGFzc2lnbmVkIGJ1dCB1bnVzZWQgbG9jYWwgdmFyaWFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAyNjgKCjIwMTQtMDUtMjUgMTY6MTA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlCgoyMDE0LTA1LTI1IDE2OjU3OjU5ICswMjAwICBQaW90ciBEcsSFZyA8cGlvdHJkcmFnQGdtYWlsLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogdXBkYXRlIFBPVEZJTEVTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3MTgKCjIwMTQtMDUtMjEgMTM6MjM6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4yID09PQoKMjAxNC0wNS0yMSAxMzowNjozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy4yCgoyMDE0LTA1LTIxIDExOjM5OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNS0yMSAxMDo1MDo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMTFmYTVmIHRvIDFmNWQzYzMKCjIwMTQtMDUtMTkgMTE6MDU6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzb21lIHBvc2l0aXZlIHRlc3RjYXNlIGZvciBzdHJpbmcgZGVzZXJpYWxpemF0aW9uCgoyMDE0LTA1LTE4IDEwOjQ5OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBNYW5kcmFrZSBhbmQgcGFja2FnZXMgd2Ugbm8gbG9uZ2VyIHByb3ZpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDMxMgoKMjAxNC0wNS0xNSAxNjo0MTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBkb2NzOiBmaXggdHlwbwoKMjAxNC0wNS0xNCAxMzo0MDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBvbiB3aW5kb3dzCgkgIGdzdHBsdWdpbmxvYWRlci5jOjU4NDoxOiBlcnJvcjogbGFiZWwgJ2JlYWNoJyBkZWZpbmVkIGJ1dCBub3QgdXNlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMTI1CgoyMDE0LTA1LTEzIDE5OjUxOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmg6CgkgIGVsZW1lbnRzOiBkb24ndCBkZXBlbmQgb24gbGliZ2lvIGp1c3QgZm9yIGdfaW9fZXJyb3JfZnJvbV9lcnJubygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk5NDkKCjIwMTQtMDUtMTMgMTk6MzA6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zcGFyc2VmaWxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgc3BhcnNlZmlsZToga2VlcCBpdCBwcml2YXRlIGFzIGhlbHBlciBBUEkgZm9yIGRvd25sb2FkYnVmZmVyCgkgIFRoZXJlJ3Mgbm8gZXhwZWN0YXRpb24gdGhhdCBhbnkgb3RoZXIgZWxlbWVudCBvciBhcHBsaWNhdGlvbnMKCSAgbWlnaHQgd2FudCB0byB1c2UgdGhpcyBoZWxwZXIgQVBJIGFueSB0aW1lIHNvb24sIHNvIGtlZXAgaXQKCSAgcHJpdmF0ZSBmb3IgdGhlIHRpbWUgYmVpbmcuIFRoZXJlIHdlcmUgb3BlbiBxdWVzdGlvbnMgcmVnYXJkaW5nCgkgIHBvcnRhYmlsaXR5IGFuZCBiaW5kaW5nLWZyaWVuZGxpbmVzcyB0b28uCgkgIFRoaXMgYWxzbyByZW1vdmVzIHRoZSBnaW8gZGVwZW5kZW5jeSBvZiAtYmFzZSBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTk1MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5OTQ5CgoyMDE0LTA1LTEzIDE5OjE0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBkb2NzOiBwaWNrIHVwIEdzdEJhc2VQYXJzZSBoaWVyYXJjaHkgYW5kIHByb3BlcnRpZXMKCjIwMTQtMDUtMTMgMTk6MTA6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBleHBvc2UgR3N0UHVzaFNyY0NsYXNzIGluIGRvY3VtZW50YXRpb24KCSAgTWlnaHQgY29tZSBpbiBoYW5keSBpbiBjYXNlIHNvbWVvbmUgd2FudHMgdG8gZGVyaXZlIGZyb20gaXQuCgoyMDE0LTA1LTEyIDE3OjAzOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IERvbid0IGxlYWsgcGx1Z2lubG9hZGVyIGluIGVycm9yIGNhc2VzCgkgIENJRCAjMTIxMjE1NAoKMjAxNC0wNS0xMiAxNjo1OToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IERvbid0IGxlYWsgZmVhdHVyZXMgb24gZXJyb3IgY2FzZXMKCSAgSWYgd2UgZmFpbCB0byBwYXJzZSBmaWVsZHMsIHdlIHdvdWxkIGVuZCB1cCBsZWFraW5nIHRoZSBmZWF0dXJlcyB3ZQoJICBwYXJzZWQganVzdCBiZWZvcmUKCSAgQ0lEICMxMjEyMTUyCgoyMDE0LTA1LTA5IDE0OjI4OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ29ycmVjdGx5IHJlc2V0IGNvbmZpZ3VyYXRpb24KCSAgV2hlbiBwb29sIGNhbid0IHdlIHVzZSwgYW5kIHdlIGZhbGwgYmFjayB0byBkZWZhdWx0IHBvb2wsIHdlIG5lZWQgdG8KCSAgY29ycmVjdGx5IHJlc2V0IHRoYXQgcG9vbCBjb25maWd1cmF0aW9uLgoKMjAxNC0wNS0wOSAxNDo0Njo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBVc2Ugbm9uLWZyZWVkIHZhcmlhYmxlCgkgIGFkZHJlc3MgaXMgb25seSB1c2VkIHRlbXBvcmFyaWx5LiBVc2UgdGhlIHByb3BlciB2YXJpYWJsZSBpbnN0ZWFkLgoJICBDSUQgIzEyMTIxODkKCjIwMTQtMDUtMDggMTc6MzM6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogdGVzdCB0byBjaGVjayBxdWV1ZSBvdmVycnVuIHdpdGggcHRzPW5vbmUKCSAgQ2hlY2tzIGlmIGJ1ZmZlcnMgd2l0aCBwdHM9bm9uZSBjYW4gYnJlYWsgdGhlIHF1ZXVlIHRpbWUgc2l6ZSBsaW1pdAoJICBhbmQgYWxsb3cgbW9yZSBidWZmZXJzIHRoYW4gZXhwZWN0ZWQKCjIwMTQtMDUtMDggMTQ6NDg6MDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IEZpeCAzMmJpdCBidWlsZAoJICBmb3JtYXQgJyVsbGknIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIGludCcsIGJ1dCBhcmd1bWVudCA4IGhhcyB0eXBlICdnc2l6ZScKCjIwMTQtMDUtMDggMTQ6MTI6MTYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBwb29sLW5lZ286IENvcnJlY3RseSByZXNldCB0aGUgY29uZmlndXJhdGlvbgoJICBXaGVuIHBvb2wgY2Fubm90IGJlIHVzZWQsIGNvcnJlY3RseSByZXNldCB0aGUgY29uZmlndXJhdGlvbiBiZWZvcmUKCSAgY29uZmlndXJhdGlvbiBhIGRlZmF1bHQgcG9vbC4KCjIwMTQtMDQtMTUgMTQ6MTc6MDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcG9vbC1uZWdvOiBSZXRyeSBzZXR0aW5nIGNvbmZpZ3VyYXRpb24gd2l0aCBtb2RpZmllZCBjb25maWcKCSAgQnVmZmVyIHBvb2wgc2V0X2NvbmZpZygpIG1heSByZXR1cm4gRkFMU0UgaWYgcmVxdWVzdGVkIGNvbmZpZ3VyYXRpb24gbmVlZGVkCgkgIHNtYWxsIGNoYW5nZXMuIFJlZ2V0IHRoZSBjb25maWcgYW5kIHRyeSBzZXR0aW5nIGl0IGFnYWluICh2YWxpZGF0aW5nIHRoZQoJICBjaGFuZ2VzIGZpcnN0KS4gVGhpcyBlbnN1cmUgd2UgaGF2ZSBhIGNvbmZpZ3VyZWQgcG9vbCBpZiBwb3NzaWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzkxNgoKMjAxNC0wNS0wOCAxMjo0Nzo0MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBhbiBoZWxwZXIgdG8gdmFsaWRhdGUgY29uZmlnCgkgIFdoZW4gd2UgY2FsbCBnc3RfYnVmZmVyX3Bvb2xfc2V0X2NvbmZpZygpIHRoZSBwb29sIG1heSByZXR1cm4gRkFMU0UgYW5kCgkgIHNsaWdodGx5IGNoYW5nZSB0aGUgcGFyYW1ldGVycy4gVGhpcyBoZWxwZXIgaXMgdXNlZnVsIHRvIGRvIHRoZSBtaW5pYWwgcmVxdWlyZWQKCSAgdmFsaWRhdGlvbiBiZWZvcmUgYWNjZXB0aW5nIHRoZSBtb2RpZmllZCBjb25maWd1cmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTE2CgoyMDE0LTA0LTA4IDE5OjI3OjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBVcGRhdGUgdGhlIGNvbmZpZ3VyZSBldmVuIGlmIHNldF9jb25maWcoKSByZXR1cm5lZCBmYWxzZQoJICBBY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24sIHdoZW4gc2V0X2NvbmZpZygpIHJldHVybiBmYWxzZSwgaXQgc2hvdWxkIGJlCgkgIHBvc3NpYmxlIHRvIHJlYWQgdGhlIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIGNvbmZpZy4gVGhpcyBwYXRjaCBmaXhlcyB0aGUKCSAgaW1wbGVtZW50YXRpb24gc28gaXQgaXMgbm93IGFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzkxNgoKMjAxNC0wNS0wNiAxNTozNToxNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBBZGQgc3VwcG9ydCBmb3IgcmVjb25maWd1cmluZyBhIHBvb2wKCSAgSWYgYSBwb29sIGNvbmZpZyBpcyBiZWluZyBjb25maWd1cmVkIGFnYWluLCBjaGVjayBpZiB0aGUgY29uZmlndXJhdGlvbiBoYXZlIGNoYW5nZWQuCgkgIElmIG5vdCwgc2tpcCB0aGF0IHN0ZXAuIEZpbmFsbHksIGlmIHRoZSBwb29sIGlzIGFjdGl2ZSwgdHJ5IGRlYWN0aXZhdGluZyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODI2OAoKMjAxNC0wNS0wNiAxNjo1OTozNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc3VwcG9ydCBmb3IgR3N0QWxsb2NhdGlvblBhcmFtcyBjb21wYXJpc2lvbgoJICBUaGlzIGlzIHVzZWZ1bCB0byBjb21wYXJlIGJ1ZmZlciBwb29sIGNvbmZpZ3VhcmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MjY4CgoyMDE0LTA1LTA2IDE2OjQ2OjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzdXBwb3J0IGZvciBHT2JqZWN0IGNvbXBhcmlzaW5nIGluIHN0cnVjdHVyZXMKCSAgVGhpcyBpcyB1c2VmdWwgdG8gYWxsb3cgY29tcGFyaW5nIHBvb2wgY29uZmlndXJhdGlvbiB3aGVyZSBhIEdzdEFsbG9jYXRvcgoJICBpcyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgyNjgKCjIwMTQtMDUtMDggMTc6NTA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogZml4IGNhc2Ugd2hlcmUgZ3N0X3BsdWdpbl9sb2FkX2ZpbGUoKSBkaWRuJ3Qgc2V0IHRoZSBlcnJvciBvbiBmYWlsdXJlCgoyMDE0LTA1LTA4IDE2OjMwOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IGFkZCBzb21lIFNpbmNlIG1hcmtlcnMgdG8gZG9jcwoKMjAxNC0wNS0wOCAxNjoyNTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuaDoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBzcGFyc2VmaWxlOiBzcHJpbmtsZSBHX0JFR0lOX0RFQ0xTIC8gR19FTkRfREVDTFMKCSAgZm9yIGMrKywgYW5kIHJlbW92ZSBvdXRkYXRlZCBjb21tZW50LCBhbmQgYWRkCgkgIG5ldyB1bml0IHRlc3QgdG8gLmdpdGlnbm9yZS4KCjIwMTQtMDUtMDggMTY6NDk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogc21hbGwgY2xlYW51cHMKCjIwMTQtMDUtMDggMTQ6NTE6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHVwZGF0ZSBkb2NzCgoyMDE0LTA1LTA4IDE0OjUwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBkZWYKCjIwMTQtMDItMjEgMTY6MzI6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9zcGFyc2VmaWxlLmM6CgkgIEFkZCBuZXcgZG93bmxvYWRidWZmZXIgZWxlbWVudAoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDE4MwoKMjAxNC0wNS0wMiAxNzo0Mjo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBhZHM6IHVwZGF0ZSBkb2NzIGZvciByZXF1ZXN0IHBhZHMKCSAgV2Ugd291bGQgbGlrZSB0byBlbmNvdXJhZ2UgdGhlIHVzZSBvZiBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCgpCgoyMDE0LTA1LTAyIDE3OjAyOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSAgY2hlY2s6IHVzZSBfZXhpdCgpIGluc3RlYWQgb2YgZXhpdCgpIGluIGZhaWxfdW5sZXNzKCkgc28gd2UgZXhpdCBpbW1lZGlhdGVseQoJICBleGl0KCkgd2lsbCBjYWxsIGF0ZXhpdCBoYW5kbGVycywgd2hpY2ggbWF5IHRyeSB0bwoJICBjbGVhbiB1cCB0aGluZ3Mgb3Igd2FpdCBmb3IgdGhpbmdzIHRvIGdldCBjbGVhbmVkIHVwLAoJICB3aGljaCB3ZSBkb24ndCB3YW50IG9yIG5lZWQuIFdlIGp1c3Qgd2FudCB0byBzdG9wCgkgIGFuZCBsZXQgdGhlIHBhcmVudCBrbm93IGFib3V0IHRoZSBmYWlsdXJlIGFzIHF1aWNrbHkKCSAgYXMgcG9zc2libGUgaW4gY2FzZSBmb3JrKCkgaXMgdXNlZC4KCSAgRml4ZXMgdGltZW91dHMgb24gYXNzZXJ0IGZhaWx1cmVzIGluIGNoZWNrcyB3aGVyZQoJICBhbiBleGl0IGhhbmRsZXIgd2FpdHMgZm9yIHRoaW5ncyB0byBzdG9wLCBidXQgdGhleQoJICBkb24ndCBzdG9wIGJlY2F1c2UgdGhleSBoYXZlbid0IGJlZW4gc2h1dCBkb3duLAoJICBhbmQgdGhleSBoYXZlbid0IGJlZW4gc2h1dCBkb3duIGJlY2F1c2UgdGhlcmUncyBubwoJICBzaW1wbGUgd2F5IHRvIGRvIHNvIG9uIGZhaWx1cmVzLgoJICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvY2hlY2svcGF0Y2hlcy81MC8KCjIwMTQtMDUtMDQgMTQ6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGluaXQgZmxhZyBtYXNrIG1vcmUgY29ycmVjdGx5CgoyMDE0LTA1LTA0IDEzOjMyOjQ2ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBnX21lbW1vdmUoKSBpcyBkZXByZWNhdGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI4MTEKCjIwMTQtMDUtMDMgMjA6NDg6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4xID09PQoKMjAxNC0wNS0wMyAxNzo0MTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjEKCjIwMTQtMDUtMDMgMTc6MzQ6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA1LTAzIDE3OjIwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDUtMDMgMTI6MTQ6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgbmV3IGRldmljZSBwcm9iaW5nIEFQSSB0byBkb2NzIHRhYmxlIG9mIGNvbnRlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk0NDAKCjIwMTQtMDUtMDIgMjI6MjI6MDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgR3N0RGV2aWNlKiB0byBnc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk0NDAKCjIwMTQtMDUtMDMgMTA6MTQ6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGJjYjE1MTggdG8gMjExZmE1ZgoKMjAxNC0wNS0wMSAxMDozNzoxOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBbHdheXMgcmVuZGVyIHByZXBhcmVkIGJ1ZmZlcgoJICBDdXJyZW50bHksIGlmIHByZXBhcmUoKSB0YWtlcyB0b28gbXVjaCB0aW1lLCB3ZSBza2lwIHRoZSBjYWxsIHRvIHJlbmRlcigpLgoJICBUaGUgc2lkZSBlZmZlY3Qgb2YgdGhpcywgaXMgdGhhdCB3ZSBlbmR1cCBzdGFydmluZyB0aGUgcmVuZGVyKCkuIFRoZSBzb2x1dGlvbgoJICBpbiB0aGlzIHBhdGNoIGlzIHRvIGFsd2F5cyByZW5kZXIgZnJhbWVzIHRoYXQgYXJlIG9uIHRpbWUgYmVmb3JlIHByZXBhcmUoKSBpcwoJICBleGVjdXRlZC4gVGhpcyB3aWxsIG1heGltaXplIHRoZSBudW1iZXIgb2YgZnJhbWVzIHdlIGRpc3BsYXkgYW5kIHNtb290aGx5CgkgIGRlZ3JhZGUgdGhlIHJlbmRlcmluZyBwZXJmb3JtYW5jZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTMzNQoKMjAxNC0wNS0wMSAxNDo1MjoyNCAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6IGFkZCBtb3JlIG1vZHVsZXMKCSAgQWRkIG1vcmUgZ2l0IHJlcG9zaXRvcmllcyB0byBjaGVjayAoc28gZ2l0LXZlcnNpb24uc2ggaXMgY29uc2lzdGVudCB3aXRoCgkgIGdzdC11bmluc3RhbGxlZCkgYW5kIGRpc3BsYXkgdGhlIGRhdGUgb2YgdGhlIGxhc3QgY29tbWl0LCB3aGljaCBpcyBtb3JlIHZhbHVhYmxlCgkgIGluZm9ybWF0aW9uIHRoYW4gdGhlIGxhc3QgY29tbWl0J3MgaGFzaC4KCjIwMTQtMDUtMDEgMTg6NDI6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogQWx3YXlzIGZpcnN0IHBvc3QgdGhlIHN0YXRlLWNoYW5nZWQgbWVzc2FnZSBmb3IgUEFVU0VELT5SRUFEWSBiZWZvcmUgcG9zdGluZyBhbnkgcGVuZGluZyBFT1MgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ5CgoyMDE0LTA0LTE3IDIxOjEwOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJICBiYXNlc2luazogQWRkIHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgRU9TIGFsd2F5cyBjb21lcyBhZnRlciB0aGUgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0OQoKMjAxNC0wNC0xNSAxNTo1NToyNSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggbG9nIG1lc3NhZ2Ugb2YgYnVmZmVyIHBvaW50ZXIKCjIwMTQtMDQtMzAgMTg6MjA6MjggLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDE0LTA0LTMwIDEwOjQ3OjE5IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgc2NyaXB0cy9naXQtdmVyc2lvbi5zaDogZml4IG1pc3Rha2VuIGNvbW1lbnRzCgoyMDE0LTA0LTI4IDEzOjAyOjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCBzaWduYWxpbmcgb3ZlcnJ1biBvbiB0aGUgZmlyc3Qgc2VnbWVudAoJICBXaGVuIHRoZSBmaXJzdCBzZWdtZW50IGhhcyBwb3NpdGlvbiAhPSAwIGFuZCBwb3NpdGlvbiA+IG1heC1zaXplLXRpbWUKCSAgaXQgd2lsbCBpbW1lZGlhdGVsbHkgY2F1c2UgdGhlIG11bHRpcXVldWUgdG8gc2lnbmFsIG92ZXJydW4uCgkgIFRoaXMgY2FuIGhhcHBlbiBlYXNpbHkgd2l0aCBhZGFwdGl2ZSBzdHJlYW1zIHdoZW4gc3dpdGNoaW5nIGJpdHJhdGVzCgkgIGFuZCBzdGFydGluZyBhIG5ldyBncm91cC4gVGhlIHNlZ21lbnQgZm9yIHRoaXMgbmV3IGdyb3VwIHdpbGwgaGF2ZQoJICBhIHBvc2l0aW9uIHRoYXQgaXMgbXVjaCBncmVhdGVyIHRoYW4gMCBhbmQgd2lsbCBsZWFkIHRvIHRoaXMgaXNzdWUuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGhhcm1mdWwgd2hlbiB0aGUgYWRhcHRpdmUgc3RyZWFtIHVzZXMgbXBlZ3RzCgkgIHRoYXQgZG9lc24ndCBlbWl0IG5vLW1vcmUtcGFkcyBhbmQgaXQgbWlnaHQgaGFwcGVuIHRoYXQgb25seSBvbmUKCSAgb2YgdGhlIHN0cmVhbSBwYWRzIHdhcyBhZGRlZCB3aGVuIHRoZSBtdWx0aXF1ZXVlIG92ZXJydW5zIGFuZCBnZXRzCgkgIHRoZSBncm91cCByZWFkeSBmb3IgZXhwb3NpbmcuIFNvIHRoZSB1c2VyIHdpbGwgb25seSBnZXQgYXVkaW8gb3IKCSAgdmlkZW8uCgkgIFRoZSBzb2x1dGlvbiBpcyB0byBmYWxsYmFjayB0byB0aGUgc2luayBzZWdtZW50IHdoaWxlIHRoZSBzb3VyY2UgcGFkCgkgIGhhcyBubyBzZWdtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5MTI0CgoyMDE0LTA0LTI4IDEwOjE0OjUwICswMjAwICBYYXZpIEFydGlnYXMgPHhhcnRpZ2FzQGZsdWVuZG8uY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBlbmhhbmNlbWVudHMgdG8gcG9ydGluZyBndWlkZSBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc3NTQKCjIwMTQtMDQtMjggMDk6NDM6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBBZGQgYm9vbGVhbiB0byBVUkkgcXVlcnkgdG8gc3BlY2lmeSBpZiBhIHJlZGlyZWN0IGlzIHBlcm1hbmVudCBvciBub3QKCjIwMTQtMDQtMjUgMDc6Mzg6MDAgKzAwMDAgIFNyaW1hbnRhIFBhbmRhIDxwYW5kYV9zcmltYW50YUB5YWhvby5jby5pbj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogQ2hlY2sgaWYgdGhlIGxhc3QgcGFkIHdhcyBzZXQKCSAgSWYgbm8gZGF0YSBpcyBjb21pbmcgYnV0IG9ubHkgRU9TIGlzIHNlbnQgZnJvbSBhbGwgb2YgdGhlIHNpbmtwYWQsIGl0IGlzIG5vdAoJICBmb3J3YXJkaW5nIHRoZSBFT1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDUKCjIwMTQtMDQtMjYgMTc6MDI6MTggKzAxMDAgIEZlbGlwZSBPcnRpeiA8ZmFvcnRpemNAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgdmFyaW91cyBHc3RQYWQgbWFjcm9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM2NTIKCjIwMTQtMDQtMjYgMjM6MTI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmg6CgkgIFJldmVydCAiZG9jczogYWRkIGRvY3MgZm9yIHZhcmlvdXMgR3N0UGFkIG1hY3JvcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkMTc0MzhkNWZkMzIxZGFlYzRhZGJlYjI4YThmYjVkNWUwNzI5OGRjLgoJICBUaGlzIGNvbW1pdCBmZWF0dXJlZCB0aGUgd3JvbmcgYXV0aG9yLCBzb3JyeS4KCjIwMTQtMDQtMjYgMjE6MjE6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL1JFQURNRToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZG9jczogcmVtb3ZlIG91dGRhdGVkIGFuZCBwb2ludGxlc3MgJ0xhc3QgcmV2aWV3ZWQnIGxpbmVzIGZyb20gZG9jcwoJICBUaGV5IGFyZSB2ZXJ5IGNvbmZ1c2luZyBmb3IgcGVvcGxlLCBhbmQgbW9yZSBvZnRlbiB0aGFuIG5vdAoJICBhbHNvIGp1c3Qgbm90IHZlcnkgYWNjdXJhdGUuIFNlZWluZyAnbGFzdCByZXZpZXdlZDogMjAwNScgaW4KCSAgeW91ciBkb2NzIGlzIG5vdCB2ZXJ5IGNvbmZpZGVuY2UtaW5zcGlyaW5nLiBMZXQncyBqdXN0IHJlbW92ZQoJICB0aG9zZSBjb21tZW50cy4KCjIwMTQtMDMtMjYgMTU6NTY6MDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVyOiBPbmx5IHNldCBUQUdfTUVNT1JZIGlmIHRoZSBtZW1vcnkgaGFzIGJlZW4gcmVwbGFjZWQKCSAgQ3VycmVudGx5IHdlIHNldCBUQUdfTUVNT1JZIGFzIHNvb24gYSByZXNpemUgY2hhbmdlcyB0aGUgc2l6ZSBvZiBvbmUKCSAgb2YgdGhlIG1lbW9yeS4gVGhpcyBoYXMgdGhlIHNpZGUgZWZmZWN0IHRoYXQgYnVmZmVyIHBvb2wgY2Fubm90IGtub3cgaWYKCSAgdGhlIG1lbW9yeSBoYXZlIHNpbXBseSBiZWVuIHJlc2l6ZWQsIG9yIGlmIHRoZSBtZW1vcnlzIGhhcyBiZWVuIHJlcGxhY2VkLgoJICBUaGlzIG1ha2UgaXQgaGFyZCB0byBhY3R1YWxseSBpbXBsZW1lbnQgX3Jlc2V0KCkuIEluc3RlYWQsIG9ubHkgc2V0IHRoZQoJICBUQUdfTUVNT1JZIGlmIG9uZSBvciBtb3JlIG1lbW9yeSBoYXMgYmVlbiByZXBsYWNlZCwgYW5kIGRvIGEgbGlnaHQKCSAgc2FuaXR5IGNoZWNrIG9mIHRoZSBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3MTA5CgoyMDE0LTA0LTI2IDE3OjAyOjE4ICswMTAwICBTaG93YXliIFphaGRhIDxzaG93YXliLnphaGRhQGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgdmFyaW91cyBHc3RQYWQgbWFjcm9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM2NTIKCjIwMTQtMDQtMjUgMTU6Mzg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogV2hlbiBnb2luZyB0byBSRUFEWSBtYWtlIHN1cmUgdG8gYWx3YXlzIGRlYWN0aXZhdGUgcGFkcwoJICBXZSBtaWdodCBub3QgaGF2ZSByZWFjaGVkIFBBVVNFRCB5ZXQgYmVjYXVzZSBvZiBhbiBhc3luYyBlcnJvciwKCSAgYnV0IG5vbmV0aGVsZXNzIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhZHMgYXJlIGFsd2F5cwoJICBkZWFjdGl2YXRlZCBpbiBSRUFEWSBzdGF0ZS4KCjIwMTQtMDQtMjIgMTg6MjM6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRG9uJ3QgbGVmdC1zaGlmdCBpbnRvIHRoZSBzaWduIGJpdCwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQKCjIwMTQtMDQtMjIgMTg6MTY6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFVzZSBhbiB1bnNpZ25lZCA2NCBiaXQgaW50ZWdlciBhcyBhIG1hc2sKCSAgV2Ugc2hpZnQgdGhlIG1hc2sgdG8gdGhlIHJpZ2h0IGxhdGVyIGFuZCBzaGlmdGluZyB0aGUgcmVzdWx0CgkgIG9mIHNoaWZ0aW5nIG92ZXIgdGhlIHNpZ24gYml0IGlzIHVuZGVmaW5lZC4KCjIwMTQtMDQtMjAgMTE6NTk6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTWFrZSBzdXJlIHRvIGFsd2F5cyBob2xkIHRoZSBMSVZFX0xPQ0sgd2hlbiBnb2luZyB0byB0aGUgZmx1c2hpbmcgbGFiZWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODU5NgoKMjAxNC0wNC0xMSAxOTo1MjowMiArMDIwMCAgU3JpbWFudGEgUGFuZGEgPHNyaW1hbnRhQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogSGFuZGxlIGVuZCBvZiBzdHJlYW0gZXZlbnQgb24gc2luayBwYWQKCSAgSGFuZGxlIGVuZCBvZiBzdHJlYW0gZXZlbnRzIG9uIHNpbmsgcGFkLiBDaGVjayBhbGwgdGhlIHNpbmsgcGFkCgkgIGhhcyByZWNlaXZlZCBlb3MgYmVmb3JlIGZvcndhcmRpbmcgdG8gc291cmNlIHBhZC4KCSAgRml4ZXMgOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ1CgoyMDE0LTA0LTA1IDExOjM3OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogUHJldmVudCBkaXZpc2lvbiBvciBtb2R1bG8gYnkgemVybwoJICBUaGUgc3RlcCBjYW4gZW5kIHVwIGJlaW5nIHplcm8gaWYgdGhlIHVuZGVybHlpbmcgdmFsdWUgaXNuJ3QgYSB2YWxpZAoJICByYW5nZSBHVmFsdWUuCgkgIEluIHRob3NlIGNhc2VzLCByZXR1cm4gRkFMU0UuCgkgIFdlIGRvbid0IHVzZSBnX3JldHVybipfaWZfZmFpbCBzaW5jZSBpdCB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIHRyaWdnZXJlZAoJICBieSB0aGUgYWJvdmUtbWVudGlvbm5lZCBfZ2V0X3N0ZXAoKSBmdW5jdGlvbnMuCgkgIENJRCAjMTAzNzEzMgoKMjAxNC0wNC0wOSAxNjo0NDowNyArMDIwMCAgQW50b2luZSBKYWNvdXRvdCA8YWphY291dG90QGdub21lLm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZy1pci1zY2FubmVyOiBkbyBub3QgaGFyZGNvZGUgbGlidG9vbCBwYXRoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY1NzEKCjIwMTQtMDQtMTYgMTk6NDk6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5L2J1ZmZlcjogSW5pdGlhbGlzZSBHc3RNYXBJbmZvIHRvIHplcm9lcyBpZiBtYXBwaW5nIGZhaWxzCgkgIFRoaXMgc2hvdWxkIGFsbG93IGZvciBtb3JlIG1lYW5pbmdmdWwgZXJyb3JzLiBEZXJlZmVyZW5jaW5nIE5VTEwKCSAgaXMgbW9yZSB1c2VmdWwgaW5mb3JtYXRpb24gdGhhbiBkZXJlZmVyZW5jaW5nIGEgcmFuZG9tIGFkZHJlc3MKCSAgaGFwcGVuZWQgdG8gYmUgb24gdGhlIHN0YWNrLgoKMjAxNC0wNC0xNiAxNzo0OTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBVbnJlZiByZXR1cm4gdmFsdWUgb2YgZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCgpIGluc3RlYWQgb2YgbGVha2luZyBpdAoKMjAxNC0wNC0xNiAxNzo0ODo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBBdXRvbWF0aWMgY29kZSBzdHlsZSBmaXhlcwoKMjAxNC0wNC0xNiAxNToxNzowNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGZpeCBldmVudC9wcmVyb2xsIGRlYWRsb2NrIGRpZmZlcmVudGx5CgkgIFRoZSBxbG9jayBpcyByZWxlYXNlZCBiZXR3ZWVuIHBvcHBpbmcgYSBidWZmZXIgZnJvbSB0aGUgcXVldWUKCSAgYW5kIHB1c2hpbmcgaXQuIFdoZW4gdGhpcyBidWZmZXIgY2F1c2VzIHRoZSBzaW5rIHRvIHdhaXQgaW4KCSAgcHJlcm9sbCwgdGhpcyBsZXRzIGEgcXVlcnkgc2VlIHRoYXQgdGhlIHF1ZXVlIGlzIGVtcHR5LCBhbmQKCSAgcHVzaCB0aGUgcXVlcnkgdGhlbiB3YWl0IGZvciBpdCB0byBiZSBzZXJ2aWNlZC4gSG93ZXZlciwgdGhpcwoJICB3aWxsIG5vdCBiZSBkb25lIHRpbGwgYWZ0ZXIgcGVyb2xsLCBhbmQgdGhpcyB3aWxsIHRodXMgYmxvY2suCgkgIElmIHVwc3RyZWFtIHdhcyB3YWl0aW5nIG9uIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlIGJlZm9yZQoJICBzd2l0Y2hpbmcgdG8gUExBWUlORywgYSBkZWFkbG9jayB3b3VsZCBlbnN1ZS4KCSAgVGhpcyBoYWQgYmVlbiBmaXhlZCByZWNlbnRseSBieSBmYWlsaW5nIHF1ZXJpZXMgd2hlbiB0aGUKCSAgcXVldWUyIHdhcyBidWZmZXJpbmcsIGJ1dCB0aGlzIGhhcHBlbnMgdG8gYnJlYWsgc29tZSBvdGhlcgoJICBjYXNlIChwbGF5YmluIG9uIGEgbG9jYWwgaHR0cCBzZXJ2ZXIgYW5kIG1hdHJvc2thKSwgd2hpbGUKCSAgdGhpcyBwYXRjaCB3b3JrcyBmb3IgYm90aC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzNDUKCjIwMTQtMDQtMTYgMDc6NTk6MjcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBGaXggZXhwb3J0ZWQgc3ltYm9sIG5hbWUKCSAgaXQncyBfdGVtcGxhdGUgYW5kIG5vdCBfdGVtcGwKCjIwMTQtMDQtMTUgMjE6MTY6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIG1pc3Npbmcgc3BhY2UgaW4gZGVidWcgb3V0cHV0CgoyMDE0LTA0LTE1IDEyOjU4OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgbmV3IEFQSSB0byBzZXQgdXAgcGFkcyBmcm9tIG5vbi1zdGF0aWMgcGFkIHRlbXBsYXRlcwoKMjAxNC0wNC0xNCAyMTozNTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEZpeCBtZW1vcnkgbGVhayBpbiB1bml0IHRlc3QKCjIwMTQtMDQtMTIgMTU6MjI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IHJlcGxhY2UgbmV3bHktYWRkZWQgR3N0VGVzdENsb2NrSURMaXN0IHN0cnVjdHVyZSB3aXRoIGEgc2ltcGxlIEdMaXN0CgkgIEtlZXAgaXQgc2ltcGxlLiBMaWtlbHkgYWxzbyBtYWtlcyB0aGluZ3MgZWFzaWVyIGZvciBiaW5kaW5ncywKCSAgYW5kIGVmZmljaWVuY3kgY2xlYXJseSBoYXMgbm90IGJlZW4gYSBjb25zaWRlcmF0aW9uIGdpdmVuIGhvdwoJICB0aGUgZXhpc3RpbmcgY29kZSBoYW5kbGVkIHRoZXNlIGxpc3RzLgoKMjAxNC0wNC0xMiAxNDozMDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSAgZG9jczogdGVzdGNsb2NrOiBmaXggdXAgU2luY2UgbWFya2VycwoKMjAxNC0wNC0xMiAwMDoyODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkgIHRlc3RjbG9jazogYWRkIGJhY2sgZ3N0X3Rlc3RfY2xvY2tfd2FpdF9mb3JfcGVuZGluZ19pZF9jb3VudCgpCgkgIC4uIGJ1dCBkZXByZWNhdGUgaXQuIEFCSSBzdGFiaWxpdHkgYW5kIGFsbCB0aGF0LgoJICBJdCdzIGEgZGFuZ2Vyb3VzIGFuZCByYWN5IGZ1bmN0aW9uIHRvIHVzZS4KCjIwMTQtMDMtMjMgMTU6MDg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEzLTEyLTE2IDEwOjAxOjM3ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IGFkZCBzdXBwb3J0IGZvciB3YWl0aW5nIGFuZCByZWxlYXNpbmcgbXVsdGlwbGUgR3N0Q2xvY2tJRHMKCSAgSW4gb3JkZXIgdG8gYmUgZGV0ZXJtaW5pc3RpYywgbXVsdGlwbGUgd2FpdGluZyBHc3RDbG9ja0lEcyBuZWVkcyB0byBiZQoJICByZWxlYXNlZCBhdCB0aGUgc2FtZSB0aW1lLCBvciBlbHNlIG9uZSBjYW4gZ2V0IGludG8gdGhlIHNpdHVhdGlvbiB0aGF0CgkgIHRoZSBvbmUgYmVpbmcgcmVsZWFzZWQgZmlyc3QgY2FuIGFkZCBpdHNlbGYgYmFjayBhZ2FpbiBiZWZvcmUgdGhlIG5leHQKCSAgb25lIHdhaXRpbmcgaXMgcmVsZWFzZWQuCgkgIFRlc3QgYWRkZWQgZm9yIG5ldyBBUEkgYW5kIG9sZCB0ZXN0cyByZXdyaXR0ZW4gdG8gY29tcGx5LgoKMjAxNC0wNC0wMSAxNTozODo1NCArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzc25AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgYWNjZXNzIHVub3duZWQgYW5kIHBvc3NpYmx5IGFscmVhZHkgZnJlZWQgZXZlbnQKCSAgRG9uJ3QgcHJpbnQgdGhlIG5hbWUgb2YgdGhlIGV2ZW50IHdoZW4gb3duZXJzaGlwIGlzIGdpdmVuIGF3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc0ODQKCjIwMTQtMDQtMTIgMDc6MTM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogcHJpbnQgc3RydWN0dXJlIHZhbHVlcyBvZiBwcm9wZXJ0aWVzCgoyMDE0LTA0LTExIDIyOjM4OjI1ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogSG9sZCBwYWQgb2JqZWN0IGxvY2sgd2hlbiBjaGFuZ2luZyB0YWdzCgkgIEF2b2lkIHNwdXJpb3VzIGNyYXNoZXMgd2hlbiB0YWdzIGFyZSByZXRyaWV2ZWQganVzdCBhcwoJICBuZXcgb25lcyBhcnJpdmUuCgoyMDE0LTA0LTExIDEzOjQ1OjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEZpeCByYW5nZSBpdGVyYXRpb24KCSAgV2Ugd2FudCB0byBpdGVyYXRlIG92ZXIgaXRlbXMgaWR4IHRvIGlkeCArIGxlbmd0aAoJICBXZSB1c2UgdGhlIGxlbiB2YXJpYWJsZSBhcyB0aGUgY29ycmVjdGVkIG51bWJlciBvZiBtZW1vcnkgdG8gaXRlcmF0ZQoJICBhbmQgdGhlbiBwcm9wZXJseSBnbyBvdmVyIGFsbCBpdGVtcy4KCSAgRml4ZXMgdGhlIGlzc3VlIHdoZXJlIHNwZWNpZnlpbmcgYW55IGlkeCBkaWZmZXJlbnQgZnJvbSAwIGhhZCBubyBlZmZlY3QKCSAgU3BvdHRlZCBieSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKCjIwMTQtMDQtMDkgMTc6MDE6MDEgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGVycm9yIG91dCB3aGVuIHRyeWluZyB0byBmaXhhdGUgYSBmcmFjdGlvbiBuZWFyIGFuIGludmFsaWQgdGFyZ2V0CgoyMDE0LTA0LTA0IDE3OjI4OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBVcGRhdGUgcnVubmluZyB0aW1lIGluIFFvUyBiYXNlZCBvbiB0aGUgcGFkIG9mZnNldHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjY5NwoKMjAxNC0wNC0wNCAxNzoxNToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBcHBseSBwYWQgb2Zmc2V0cyBvbiBhbGwgZXZlbnRzLCBub3QganVzdCBzZWdtZW50IGV2ZW50cwoKMjAxNC0wNC0wNCAxNzowNjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGQgcnVubmluZy10aW1lLW9mZnNldCBmaWVsZCB0byBhbGwgZXZlbnRzCgkgIEV2ZW50cyBwYXNzaW5nIHRocm91Z2ggI0dzdFBhZHMgdGhhdCBoYXZlIGEgcnVubmluZyB0aW1lCgkgIG9mZnNldCBzZXQgdmlhIGdzdF9wYWRfc2V0X29mZnNldCgpIHdpbGwgZ2V0IHRoZWlyIG9mZnNldAoJICBhZGp1c3RlZCBhY2NvcmRpbmcgdG8gdGhlIHBhZCdzIG9mZnNldC4KCSAgSWYgdGhlIGV2ZW50IGNvbnRhaW5zIGFueSBpbmZvcm1hdGlvbiB0aGF0IHJlbGF0ZWQgdG8gdGhlCgkgIHJ1bm5pbmcgdGltZSwgdGhpcyBpbmZvcm1hdGlvbiB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZAoJICBiZWZvcmUgdXNhZ2Ugd2l0aCB0aGlzIG9mZnNldC4KCjIwMTQtMDQtMDkgMTY6NDA6MjcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhdm9pZCBkaXZpZGluZyBieSB6ZXJvIHdoZW4gbXVsdGlwbHlpbmcgeS96IGJ5IDAveAoJICBUaGUgZ2NkIG9mIDAveCBpcyAwLCBhbmQgdGhpcyBpcyB0aGVuIHVzZWQgYXMgYSBkZW5vbWluYXRvci4KCjIwMTQtMDQtMDkgMTY6MDE6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFuZCBhY3R1YWxseSBydW4gdGhlIG90aGVyIHRlc3RzIGFnYWluCgoyMDE0LTA0LTA5IDE1OjU3OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgdGhlIHF1ZXVlcyBpZiBsaW1pdHMgYXJlIGNoYW5naW5nIGluIGEgd2F5IHRoYXQgd291bGQgdW5ibG9jayB0aGUgcXVldWUKCjIwMTQtMDQtMDkgMTU6NDI6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCB0ZXN0IGZvciBjaGVja2luZyBpZiBwYWRzIGFyZSB3YWtlZCB1cCB3aGVuIGxpbWl0cyBhcmUgY2hhbmdlZAoKMjAxNC0wNC0wOSAxMDoxNTozMyArMDIwMCAgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmFzIDxzYW50b3NjYWRlbmFzQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IG1lbW9yeSBsZWFrCgkgIFF1ZXVlZCBmcmFtZXMgd2VyZSBub3QgcmVsZWFzZWQgYWZ0ZXIgYmVpbmcgcHVzaGVkLCB0aGlzCgkgIGNhdXNlZCBhIGxlYWsgb2YgdGhlIEdzdEJhc2VQYXJzZUZyYW1lIHN0cnVjdHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzg4MwoKMjAxNC0wNC0wNyAxNzo0OToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXNlIGdfc3RyZXJyb3IoKSBpbnN0ZWFkIG9mIHN0cmVycm9yKCkKCSAgTmVlZCBVVEYtOCBlbmNvZGluZy4KCjIwMTQtMDQtMDcgMTc6NDc6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgUmV2ZXJ0ICJjaGVjazogb25seSBjYWxsIHNldHBnaWQgb24gdmFsaWQgY2hpbGQgUElEcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiOTMxM2FmYzc1YjY4ZDk4NmU0NzNiNzZiNTU1NDM0NTY4NTc5MTJiLgoJICBUaGlzIHNob3VsZCBiZSBmaXhlZCBpbiB1cHN0cmVhbSBsaWJjaGVjayBpbnN0ZWFkLiBXZSB3YW50CgkgIHRvIGtlZXAgZGlmZiBvZiBvdXIgbG9jYWwgY29weSB0byB1cHN0cmVhbSBsaWJjaGVjawoJICB0byBhIG1pbmltdW0uCgoyMDE0LTA0LTA3IDE3OjMzOjM0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogd2FybiBpZiB3ZSBjYW4ndCByZW1vdmUgb3VyIHRlbXBvcmFyeSBmaWxlCgkgIEl0J3Mgbm90IGZhdGFsIHRob3VnaCwgc28gZG8gbm90IGVycm9yIG91dC4KCSAgQ292ZXJpdHkgMTAzNzEyMQoKMjAxNC0wNC0wNyAxNTozODowOSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IG9ubHkgY2FsbCBzZXRwZ2lkIG9uIHZhbGlkIGNoaWxkIFBJRHMKCSAgQ292ZXJpdHkgMjA2MTg2CgoyMDE0LTA0LTA3IDE1OjM4OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IG5vIG5lZWQgZm9yIGEgdHJhbnNsYXRlZCBtZXNzYWdlIGZvciBpbXBvc3NpYmxlIGVycm9yIGNhc2VzCgkgIFRoZSBtZXNzYWdlIGlzIHRvbyB0ZWNobmljYWwgYW55d2F5LCB0aGUgZGVmYXVsdCBtZXNzYWdlIHdvcmtzCgkgIGp1c3QgZmluZSBoZXJlIGFzIHdlbGwuCgoyMDE0LTA0LTA3IDE1OjE4OjMyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBjYXRjaCBmYWlsdXJlIHRvIHNlZWsgYmFjayB0byB6ZXJvIGFmdGVyIHNlZWsgdGVzdAoJICBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4gdGhlb3JldGljYWxseSwgYnV0IHNpbmNlIGEgdHJhbnNpZW50CgkgIGZhaWx1cmUgd291bGQgZ2V0IHVzIHRvIHNpbGVudGx5IHJlYWQgd3JvbmcgZGF0YSwgaXQncyB3b3J0aAoJICBlcnJvcmluZyBvdXQuIEFuZCBpdCBzaWxlbmNlIHRoaXM6CgkgIENvdmVyaXR5IDIwNjAzNAoKMjAxNC0wNC0wNyAxMTozNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgcGFyc2U6IERvbid0IGRpc3QgdGhlIGJpc29uIGFuZCBmbGV4IGdlbmVyYXRlZCBoZWFkZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjcyNTMKCjIwMTQtMDQtMDYgMTE6MjM6MzQgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEhhbmRsZSBjYXBzIGZpZWxkIHZhbHVlcyBiZWluZyBOVUxMCgkgIEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUoKSB3b3VsZCBjYXVzZSBhIHNlZ2ZhdWx0IHdoZW5ldmVyIGl0IGVuY291bnRlcmVkIGFuCgkgIGVsZW1lbnQncyBjYXBzIHRoYXQgaGFkIGEgZmllbGQgdmFsdWUgYmVpbmcgTlVMTC4gU3VjaCBmaWVsZHMgYXJlIHN1Y2Nlc3NmdWxseQoJICBoYW5kbGVkIGUuZy4gYnkgR1NUXypfT0JKRUNUKCksIGFuZCB3aXRoIHRoaXMgcGF0Y2ggc28gZG9lcwoJICBHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKCkuIEV2ZW4gaWYgc3RyaW5nIGZpZWxkcyB3aXRoIGEgTlVMTCB2YWx1ZSBhcmUKCSAgbm90IHN1cHBvc2VkIHRvIGJlIHZhbGlkIGluIGNhcHMsIHN1Y2ggY2FwcyBjYW4gYmUgY3JlYXRlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzcwMQoKMjAxNC0wNC0wNSAxMTo0NDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbW92ZSBhbHdheXMtdHJ1ZS1jaGVja3MKCSAgYSBnc2l6ZSBpcyBndWFyYW50ZWVkIHRvIGJlIHBvc2l0aXZlIG9uIGFsbCBzeXN0ZW1zIHNpbmNlIGl0J3MgYW4KCSAgdW5zaWduZWQgdmFsdWUuCgkgIENJRCAjMTAzNzE0NwoKMjAxNC0wNC0wNSAxMTo0NDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogUmVtb3ZlIGFsd2F5cy10cnVlLWNoZWNrcwoJICBhIGdzaXplIGlzIGd1YXJhbnRlZWQgdG8gYmUgcG9zaXRpdmUgb24gYWxsIHN5c3RlbXMgc2luY2UgaXQncyBhbgoJICB1bnNpZ25lZCB2YWx1ZS4KCSAgQ0lEICMxMDM3MTQ1CgkgIENJRCAjMTAzNzE0NgoKMjAxNC0wNC0wNSAxMTozNzo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFByZXZlbnQgZGl2aXNpb24gb3IgbW9kdWxvIGJ5IHplcm8KCSAgVGhlIHN0ZXAgY2FuIGVuZCB1cCBiZWluZyB6ZXJvIGlmIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGlzbid0IGEgdmFsaWQKCSAgcmFuZ2UgR1ZhbHVlLgoJICBJbiB0aG9zZSBjYXNlcywgcmV0dXJuIEZBTFNFLgoJICBXZSBkb24ndCB1c2UgZ19yZXR1cm4qX2lmX2ZhaWwgc2luY2UgaXQgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiB0cmlnZ2VyZWQKCSAgYnkgdGhlIGFib3ZlLW1lbnRpb25uZWQgX2dldF9zdGVwKCkgZnVuY3Rpb25zLgoJICBTcG90dGVkIGJ5IENvdmVyaXR5LgoKMjAxNC0wMy0yNSAxMjoyMzozMiArMDEwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uQHBleGlwLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRml4IGNvbXBhcmlzb24gb2YgaW50L2ludDY0IHJhbmdlCgkgIENoZWNraW5nIHN0ZXAgdGhyZWUgdGltZXMgc2VlbXMgdW5uZWNlc3NhcnkuCgkgIEEgc2ltaWxhciBidWcgd2FzIGZpeGVkIGZvciBkb3VibGUgcmFuZ2UgaW4KCSAgY29tbWl0IDNlYTZiMDRjMTBiMTBmZGU5ZDYyMTkwMDY4ZjI3NGI5NDBlZGVmMDcKCjIwMTQtMDQtMDMgMTg6MTc6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBidWlsZCB3aXRoIGRlYnVnIGNhY2hlZCBidWZmZXJzIGVuYWJsZWQKCSAgZ3N0aW5wdXRzZWxlY3Rvci5jOjgxODo1OiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsCgkgIGFuZCBubyBmb3JtYXQgYXJndW1lbnRzIFstV2Vycm9yPWZvcm1hdC1zZWN1cml0eV0KCjIwMTQtMDQtMDMgMjA6MzE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE1ha2Ugc3VyZSB0byBzZXQgdGhlIERJU0NPTlQgZmxhZyBvbiB0aGUgZmlyc3QgYnVmZmVyIG9mIGVhY2ggR09QIGluIHJldmVyc2UgcGxheWJhY2sgbW9kZQoKMjAxNC0wNC0wMyAxMzoyMDoxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZpbmcgZHVwbGljYXRlZCBpbm5lciBpZgoJICBUaGUgaW5uZXIgaWYgcmVwbGljYXRlcyB0aGUgc2FtZSBjb2RlIG9mIHRoZSBvdXRlciBhbmQgaXMgdXNlbGVzcwoJICBhcyBmbGFnX3NlZ21lbnQgd2lsbCBhbHdheXMgYmUgdHJ1ZS4KCSAgRm91bmQgYnkgY292ZXJpdHkuCgoyMDE0LTA0LTAzIDA3OjM2OjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZ3N0LWxhdW5jaC4xOiBQbGF5YmluMiBpcyBkZWFkLCBsb25nIGxpdmUgcGxheWJpbgoJICBMb29rcyBsaWtlIHRoYXQgd2FzIHRoZSBsYXN0IHJlbWFpbmluZyBtZW50aW9uIGluIGNvcmUgLi4uCgoyMDE0LTA0LTAyIDIzOjUyOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEFkZCBtaXNzaW5nIFxuIGluIG91dHB1dAoKMjAxNC0wNC0wMSAxNTozNToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBnc3QtdW5pbnN0YWxsZWQ6IGdzdC1wbHVnaW5zLWdsIGxpYnMgZ290IG1lcmdlZCBpbnRvIC1iYWQKCjIwMTQtMDMtMjkgMTA6MTg6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW5jbHVkZSBldmVudCB0eXBlIGluIGRlYnVnIG91dHB1dCB3aGVuIGRlbGF5aW5nIGEgc3RpY2t5IGV2ZW50IGJlY2F1c2Ugb2Ygbm90LWxpbmtlZAoKMjAxNC0wMy0yOSAxMDoxNjoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHNwbGl0dGluZyBhbmQgcmV2ZXJzaW5nIG9mIEdPUHMgaW4gcmV2ZXJzZSBwbGF5YmFjayBtb2RlCgkgIFdlIGl0ZXJhdGUgdGhlIGN1cnJlbnQgZGlzY29udCBncm91cCBiYWNrd2FyZHMgYW5kIHB1c2ggZWFjaCBHT1AgZm9yd2FyZHMsCgkgIHN0YXJ0aW5nIGZyb20gdGhlIGxhc3Qgb25lLiBIb3dldmVyIGlmIHRoZSBmaXJzdCBidWZmZXIgaW4gdGhlIGN1cnJlbnQKCSAgZGlzY29udCBncm91cCBpcyBhIGtleWZyYW1lLCB3ZSB3aWxsIGtlZXAgaXQgYXJvdW5kIHVudGlsIG5leHQgdGltZSwKCSAgd2hpY2ggaXMgZmFyIGZyb20gaWRlYWwuIEp1c3QgcHVzaCBpdC4KCjIwMTQtMDMtMjUgMTI6Mzg6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IHBsYWNlIHRoZSBkZWVwLW5vdGlmeSBvbiB0aGUgcmlnaHQgcGlwZWxpbmUKCSAgSWYgdGhlIHRvcGxldmVsIGJpbiBpcyBub3Qgbm90IGEgcGlwZWxpbmUsIHdlIHBsYWNlIHRoZSBiaW4gaW4gYQoJICBwaXBlbGluZS4gQWxzbyBtYWtlIHN1cmUgdGhhdCB3ZSBjb25uZWN0IHRvIHRoZSBkZWVwLW5vdGlmeSBvZiB0aGlzIG5ldwoJICBwaXBlbGluZSBiZWNhdXNlIHdlIHdpbGwgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KCkgZnJvbSBpdCBsYXRlci4KCjIwMTQtMDMtMjQgMTY6MzQ6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY29weSBsYXN0X3NhbXBsZSBvbiBEUkFJTgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgaG9sZCBhIHJlZiB0byBhIGJ1ZmZlciBmcm9tIGJlZm9yZSB0aGUgRFJBSU4gcXVlcnkgYnkKCSAgbWFraW5nIGEgY29weSBvZiB0aGUgbGFzdF9idWZmZXIuCgoyMDE0LTAzLTI0IDE2OjExOjMwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBkb24ndCBjbGVhciBUQUcgb24gTlVMTCBidWZmZXIKCSAgV2hlbiB0aGUgYnVmZmVyIGZhaWxzIHRvIGNvcHksIGRvbid0IGNsZWFyIHRoZSBUQUcgb24gdGhlIE5VTEwgcG9pbnRlci4KCjIwMTQtMDMtMjAgMDY6MTQ6MzMgLTA0MDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZXZlbnQvcHJlcm9sbCBkZWFkbG9jawoJICBUaGUgcWxvY2sgaXMgcmVsZWFzZWQgYmV0d2VlbiBwb3BwaW5nIGEgYnVmZmVyIGZyb20gdGhlIHF1ZXVlCgkgIGFuZCBwdXNoaW5nIGl0LiBXaGVuIHRoaXMgYnVmZmVyIGNhdXNlcyB0aGUgc2luayB0byB3YWl0IGluCgkgIHByZXJvbGwsIHRoaXMgbGV0cyBhIHF1ZXJ5IHNlZSB0aGF0IHRoZSBxdWV1ZSBpcyBlbXB0eSwgYW5kCgkgIHB1c2ggdGhlIHF1ZXJ5IHRoZW4gd2FpdCBmb3IgaXQgdG8gYmUgc2VydmljZWQuIEhvd2V2ZXIsIHRoaXMKCSAgd2lsbCBub3QgYmUgZG9uZSB0aWxsIGFmdGVyIHBlcm9sbCwgYW5kIHRoaXMgd2lsbCB0aHVzIGJsb2NrLgoJICBJZiB1cHN0cmVhbSB3YXMgd2FpdGluZyBvbiBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJSBiZWZvcmUKCSAgc3dpdGNoaW5nIHRvIFBMQVlJTkcsIGEgZGVhZGxvY2sgd291bGQgZW5zdWUuCgkgIFdlIGZpeCBpdCBieSByZWZ1c2luZyB0aGUgcXVlcnkgd2hlbiBidWZmZXJpbmcsIGFzIHBlciBXaW0ncwoJICByZWNvbW1lbmRhdGlvbiBvbiBJUkMuCgoyMDE0LTAzLTIzIDEyOjUzOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICB0ZXN0czogbWFrZSBuZXRjbGllbnRjbG9jayB0ZXN0IGZhc3RlciBhbmQgbGVzcyBmbGFreQoKMjAxNC0wMy0yMSAxMjoxNjo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogaW5pdCBuZXcgZmxhZyB0eXBlcyB0byBwYXNzIG1ha2UgY2hlY2sKCjIwMTQtMDMtMTkgMDk6MzM6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVwZGF0ZSBidWZmZXJpbmcgc3RhdHVzIGFuZCBtYXliZSBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHJpZ2h0IHdoZW4gZW5hYmxpbmcgYnVmZmVyaW5nCgoyMDE0LTAzLTE5IDA5OjMyOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVwZGF0ZSBidWZmZXJpbmcgc3RhdHVzIGFuZCBtYXliZSBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHJpZ2h0IHdoZW4gZW5hYmxpbmcgYnVmZmVyaW5nCgoyMDE0LTAzLTE4IDE4OjEyOjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IFVwZGF0ZSBwb3NpdGlvbnMgd2UncmUgY2hlY2tpbmcgZm9yIGFmdGVyIGEgc3RhdGUgaXMgbG9zdAoKMjAxNC0wMy0xOCAxODoxMToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVwZGF0ZSBzdGFydCB0aW1lIHdoZW4gd2UgbG9zZSBvdXIgc3RhdGUKCSAgT3RoZXJ3aXNlIHdlIHJlcG9ydCBub3QgdGhlIGNvcnJlY3QgcG9zaXRpb24gd2hpbGUgdGhlIHN0YXRlIGlzIGxvc3QuCgoyMDE0LTAzLTE4IDE2OjQ3OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgY2xpcCB0aGUgcmVwb3J0ZWQgcG9zaXRpb24gaW4gUEFVU0VEIHRvIGFmdGVyIHRoZSBsYXN0IGJ1ZmZlciBlbmQgdGltZXN0YW1wCgkgIE90aGVyd2lzZSB3ZSBqdW1wIGZvcndhcmQgd2hlbiBwYXVzaW5nLCBhbmQgZ28gYmFja3dhcmRzIGEgYml0IGFnYWluCgkgIHdoZW4gcmVzdW1pbmcgcGxheWJhY2suCgoyMDE0LTAzLTE3IDEwOjA1OjMxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0cyBmb3IgR3N0VG9jIGxvb3AKCjIwMTQtMDMtMTcgMTA6MDU6MTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnQgZm9yIGdzdCpkZXZpY2Ugc3ltYm9scwoKMjAxNC0wMy0xNyAwOTo1MTo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogVXNlIGxvY2FsIGluY2x1ZGVzIGFuZCB1c2UgZ3N0X3ByaXZhdGUgYmVmb3JlIGFueXRoaW5nCgkgIFNob3VsZCBmaXggYnVpbGQgaXNzdWVzIG9uIEJTRAoKMjAxNC0wMy0xNiAyMDo1MDo1MyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5wZWN0OiBQcmludCBkZXZpY2UgbW9uaXRvcgoKMjAxNC0wMy0xNiAxNTo1Njo1OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlOiBBZGQgImtsYXNzIiB0byBHc3REZXZpY2VzCgoyMDE0LTAzLTE2IDE4OjAyOjU2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSAgZGV2aWNlbW9uaXRvcjogTWFrZSBjbGFzc2VzIGludG8gcHVyZSBzdHJpbmdzCgkgIEluc3RlYWQgb2YgaGF2aW5nIHN0cmluZ3MgJiBmbGFncywgbWFrZSB0aGVtIGp1c3Qgc3RyaW5ncwoKMjAxNC0wMy0xNyAwNjoyOToyNyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgRml4IGV4dGVuZGVkIG1lc3NhZ2UgaGFuZGxpbmcgd2l0aCBnc3RfYnVzX3BvcF90aW1lZF9maWx0ZXJlZCgpCgkgIE1ha2Ugc3VyZSBleHRlbmRlZCBtZXNzYWdlIHR5cGVzIGRvbid0IGdldCBhY2NpZGVudGFsbHkgbWF0Y2hlZAoJICB3aGVuIG5vdCBhc2tlZCBmb3IgaW4gdGhlIG1hc2sKCjIwMTQtMDMtMTcgMDU6MjQ6MTIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IEF2b2lkIHBvaW50bGVzcyBvYmplY3QgbG9jayBmb3J3YXJkaW5nIG1lc3NhZ2VzLgoJICBFdmVyeSBpbnN0YW5jZSBvZiBjYWxsaW5nIGJpbl9kb19tZXNzYWdlX2ZvcndhcmQoKSBmaXJzdCB0b29rIHRoZQoJICBvYmplY3QgbG9jaywgc28gdGhhdCBiaW5fZG9fbWVzc2FnZV9mb3J3YXJkKCkgY291bGQgZHJvcCBpdCBhbmQKCSAgdGhlbiByZWNsYWltLiBJbnN0ZWFkLCBvbmx5IHRha2UgdGhlIG9iamVjdCBsb2NrIGFmdGVyd2FyZCB3aGVyZQoJICBuZWVkZWQuCgoyMDE0LTAyLTE5IDAyOjI3OjM2ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtZHVwb25jaGVsbGUxQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFdoZW4gc2VlayBmbHVzaGVkLCBpbW1lZGlhdGVseSBzZXQgZW9zcGFkcyB0byAwCgkgIFRoaXMgcHJldmVudHMgc2l0dWF0aW9ucyB3aGVyZSBhIGZpcnN0IGJyYW5jaCB3b3VsZCBnZXQgc2Vla2VkIGFuZAoJICByZWNlaXZlIGEgYnVmZmVyIGJlZm9yZSBhbGwgYnJhbmNoZXMgZ290IHNlZWtlZCwgYW5kIHRodXMgY29sbGVjdGVkCgkgIHdvdWxkIGdldCBjYWxsZWQgYmFzZWQgb24gRU9TIGZyb20gdGhlIHByZXZpb3VzIHNlZ21lbnQuCgkgIEFzIGEgY29uc2VxdWVuY2UsIGR1cmluZyB0aGUgcHJvY2VzcyBvZiBzZWVraW5nLCBkb24ndCBkZWNyZWFzZQoJICB0aGUgZW9zcGFkcyBudW1iZXIgd2hlbiBhIEZMVVNIX1NUT1AgaXMgcmVjZWl2ZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ1NzEKCjIwMTQtMDMtMTYgMTc6NDc6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVbnJlZiBwZWVyIHBhZAoKMjAxNC0wMi0xNiAyMDozNTowOSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWR1cG9uY2hlbGxlMUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBGb3J3YXJkIHNlZWsgZXZlbnRzIHRvIHRoZSBwZWVyIGRpcmVjdGx5CgkgIFRha2VuIGZyb20gdGhlIGFkZGVyIHNlZWsgaGFuZGxpbmcgY29kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjQ2MQoKMjAxNC0wMS0wMiAyMjozMDoxMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogZXhwYW5kIEdzdFRvY0VudHJ5IHdpdGggbG9vcCBmaWVsZHMKCSAgQWRkIGxvb3BfdHlwZSBhbmQgcmVwZWF0X2NvdW50IGZpZWxkcyB0byBHc3RUb2NFbnRyeSBwbHVzIHNldHRlcnMgYW5kIGdldHRlcnMuCgkgIFRoaXMgYWxsb3dzIHRvIHJlcHJlc2VudCBlZGl0LWxpc3RzIGluIGEgdG9jIGFzIHdlbGwgYXMgbG9vcHMgaW4gaW5zdHJ1ZW1udHMgKHdhdiwgeGkpLgoJICBBUEk6IGdzdF90b2NfZW50cnlfc2V0X2xvb3AKCSAgQVBJOiBnc3RfdG9jX2VudHJ5X2dldF9sb29wCgoyMDE0LTAzLTE2IDE1OjE5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogdXBkYXRlIGZvciBuZXcgbWVzc2FnZSBBUEkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxMy0wMS0wOCAyMTozMDo0NCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogQWRkIGRldmljZSBtb25pdG9yIGFnZ3JlZ2F0b3IKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxNC0wMy0xNiAxNDowODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IGZvciBleHRlbmRlZCBtZXNzYWdlIHR5cGVzIGFuZCBnc3RfYnVzX3RpbWVkX3BvcF9maWx0ZXJlZAoKMjAxNC0wMy0xNiAxNDowODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlLCBidXM6IGRvIGV4dGVuZGVkIG1lc3NhZ2UgdHlwZXMgc2xpZ2h0bHkgZGlmZmVyZW50bHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxNC0wMy0xNiAxNDowNzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBmaXggaW5kZW50YXRpb24KCjIwMTItMTAtMTYgMTI6Mjc6MDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vtb25pdG9yOiBBZGQgR3N0RGV2aWNlTW9uaXRvciBhbmQgcmVsYXRlZAoJICBBbHNvIGFkZCBHc3REZXZpY2UgYW5kIEdzdERldmljZU1vbml0b3JGYWN0b3J5CgkgIEFuZCBhZGQgY29kZSB0byB0aGUgcmVnaXN0cnkgdG8gc2F2ZSB0aGVtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTMtMDgtMTQgMTU6NTY6MTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogQWRkIEdTVF9NRVNTQUdFX0VYVEVOREVECgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTQtMDMtMTYgMTE6MDU6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBhY3R1YWxseSByZXR1cm4gZGF0YS5yZXQKCSAgVGhlIHJldHVybiB2YWx1ZSBmcm9tIGdzdF9wYWRfZm9yd2FyZCgpIGlzIHRoZSBhZ2dyZWdhdGVkIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBjYWxsYmFjayBhbmQgdGhlIGNhbGxiYWNrIHJldHVybnMgRkFMU0UgdG8gY29udGludWUgaXRlcmF0aW5nLgoKMjAxNC0wMy0xNSAxNTo1NDozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGZvcndhcmQgcmV0dXJuIHZhbHVlIGZyb20gZ3N0X3BhZF9mb3J3YXJkCgkgIEluc3RlYWQgb2YgaWdub3JpbmcgdGhlIHJldHVybiB2YWx1ZSBhbmQgYWx3YXlzIHJldHVybiBUUlVFIHBhc3MgdGhlIGFscmVhZHkgYWdyZWdhdGVkIHJlc3VsdCBiYWNrLgoKMjAxNC0wMy0xNSAxMzo1NzoxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGZpeCBtYWtlLWNoZWNrIGJ5IHJ1bm5pbmcgJ21ha2UgdXBkYXRlLWV4cG9ydHMnCgoyMDE0LTAzLTE0IDEzOjMyOjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IGZpeCBlb3MgY291bnQgb24gdGVzdCBmb3Igbm90LWxpbmtlZCBjYXNlCgkgIEZyb20gdGhlIHRlc3QgY2FzZToKCSAgLyogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBtdWx0aXF1ZXVlIHdpdGggMiBzdHJlYW1zLiBPbmUgcmVjZWl2ZXMKCSAgKiBhIGNvbnN0YW50IGZsb3cgb2YgYnVmZmVycywgdGhlIG90aGVyIG9ubHkgZ2V0cyBvbmUgYnVmZmVyLCBhbmQgdGhlbgoJICAqIG5ldy1zZWdtZW50IGV2ZW50cywgYW5kIHJldHVybnMgbm90LWxpbmtlZC4gVGhlIG11bHRpcXVldWUgc2hvdWxkIG5vdCBmaWxsLgoJICAqLwoJICBJZiBvbmUgb2YgdGhlIHF1ZXVlcyBnb2VzIEVPUyBhbmQgdGhlIG90aGVyIHJldHVybnMgTk9UX0xJTktFRCB0aGUgc3RyZWFtCgkgIGNhbiBiZSBjb25zaWRlcmVyZWQgRU9TIGFzIGEgTk9UX0xJTktFRCBtZWFucyB0aGF0IG9uZSBvZiB0aGUgYnJhbmNoZXMgaGFzIG5vCgkgIHNpbmsgZG93bnN0cmVhbSB0aGF0IHdpbGwgYmxvY2sgdGhlIEVPUyBtZXNzYWdlIHBvc3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU5MTcKCjIwMTQtMDMtMDEgMjM6MTg6NDQgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGFwdCBnc3RfYWRhcHRlcl9jb3B5KCkgZm9yIGJpbmRpbmdzCgkgIFRoaXMgaXMgZG9uZSBieSBpbnRyb2R1Y2luZyBhIG5ldyBnc3RfYWRhcHRlcl9jb3B5X2J5dGVzKCkgY2FsbCB0aGF0CgkgIHJldHVybnMgYSBHQnl0ZXMgc3RydWN0dXJlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NDc2CgoyMDE0LTAzLTE0IDE4OjQwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGRvY3M6IGZpeCBtdWx0aXF1ZXVlIGRvY3MgZm9yIG5ldyB0ZW1wbGF0ZSBuYW1lcyBmb29fJWQgLT4gZm9vXyV1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYzNTgKCjIwMTQtMDMtMTEgMjE6NTU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzCgoyMDE0LTAzLTExIDIxOjQ0OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbXBsaWZ5IGdzdF9wYWRfbGlua19nZXRfbmFtZSgpIGFuZCBmaXggU2luY2UgbWFya2VyCgkgIEhhcyBhZGRlZCBiZW5lZml0IHRoYXQgY29tcGlsZXIgbWlnaHQgd2FybiBpZiBtb3JlIHZhbHVlcwoJICBhcmUgYWRkZWQgdG8gdGhlIGVudW0uCgoyMDE0LTAzLTExIDIxOjQ2OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZGVidWcgaGVscGVyIGZvciBHc3RQYWRMaW5rUmV0dXJuIG5hbWVzCgkgIEFkZCBhIGhlbHBlciBsaWtlIGdzdF9mbG93X2dldF9uYW1lKCkgZm9yIEdzdFBhZExpbmtSZXR1cm4uIFVzZSB0aGlzIGluIGNvcmUuCgkgIEFQSTogZ3N0X3BhZF9saW5rX2dldF9uYW1lKCkKCjIwMTQtMDMtMTEgMjE6MTI6MTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSBzdG9yZV9zdGlja3kgZXZlbnRzIGFkZCBhZGQgbW9yZSBsb2dnaW5nCgkgIFVzZSB0aGUgcGFkIGFzIG9iamVjdCBmb3IgbG9nZ2luZyB0byBnZXQgbW9yZSBjb250ZXh0LiBVc2UKCSAgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKSBpbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGV2ZW50LiBUaGlzIGF2b2lkcyBhIHdhcm5pbmcKCSAgYXMgaGVyZSB0aGUgcGFkIGlzIG5vdCB5ZXQgbGlua2VkIGFuZCB3ZSBhY3R1YWxseSBkb24ndCB3YW50IHRvIHNlbmQgYW55d2F5LgoKMjAxNC0wMy0xMCAxMDowMDoyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGlmIGJ1ZmZlcmluZyBpcyBkaXNhYmxlZCB3aGlsZSBidWZmZXJpbmcsIHBvc3QgMTAwJSBtZXNzYWdlCgkgIEF2b2lkcyBzdGFsbCB3YWl0aW5nIGZvciBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJQoKMjAxNC0wMy0xMCAwOTo0OTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCSAgYnVmZmVyaW5nX2l0ZXJhdGlvbiB3YXMgbmV2ZXIgdXNlZAoKMjAxNC0wMy0xMCAwOTo0OTowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiBxdWV1ZTI6IHByZXNlcnZlIGxhc3QgZmxvdyByZXN1bHQgd2hlbiBwdXNoaW5nIGV2ZW50cwoJICBBdm9pZHMgbWlzdGFrZW5seSByZXR1cm5pbmcgX09LIHdoZW4gZG93bnN0cmVhbSBpcyBzdGlsbAoJICBfTk9UX0xJTktFRCBvbiBzdWJzZXF1ZW50IHJlY2VpdmVkIHBhZCBwdXNoZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTkxNwoKMjAxNC0wMy0xMCAwOTo0OTowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaWYgYnVmZmVyaW5nIGlzIGRpc2FibGVkIHdoaWxlIGJ1ZmZlcmluZywgcG9zdCAxMDAlIG1lc3NhZ2UKCSAgQXZvaWRzIHN0YWxsIHdhaXRpbmcgZm9yIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlCgoyMDE0LTAzLTEwIDA5OjQ4OjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkbyBub3QgcmVzZXQgbGFzdCBwdXNoIHJlc3VsdCB3aGVuIHB1c2hpbmcgZXZlbnRzCgkgIFVzZSB0aGUgbGFzdCByZXN1bHQgYXMgYSBkZWZhdWx0IHdoZW4gcHVzaGluZyBhIGl0ZW0gZnJvbSBhIHNpbmdsZSBxdWV1ZSwKCSAgb3RoZXJ3aXNlIHRoZSBzdGF0dXMgZ2V0cyByZXNldCB0byBfT0sgd2hlbiBwdXNoaW5nIGV2ZW50cy4KCSAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBtaXN0YWtlbmx5IGFjdGl2YXRpbmcgYSBub3QtbGlua2VkIHN0cmVhbQoJICB0aGF0IGlzIGJlaW5nIGlnbm9yZWQgdXBzdHJlYW0gYXMgaXQgaXMgbm90IGJlaW5nIHVzZWQgKGFkYXB0aXZlCgkgIHNjZW5hcmlvcyksIGl0IHdpbGwgbWFrZSB0aGUgbXVsdGlxdWV1ZSBwb3N0IGEgYnVmZmVyaW5nIG1lc3NhZ2UKCSAgb24gYSBwYWQgdGhhdCB3b24ndCByZWNlaXZlIGJ1ZmZlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTkxNwoKMjAxNC0wMy0wNyAyMDo0Mzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXI6IGludmVydCBtZWFuaW5nIG9mIEdTVF9CVUZGRVJfRkxBR19UQUdfTUVNT1JZCgkgIEl0J3MgbmljZXIgdG8gb25seSBoYXZlIGl0IHNldCB3aGVuIHNvbWV0aGluZyBub3Rld29ydGh5CgkgIGhhcHBlbmVkIGFuZCBvdGhlcndpc2UgdW5zZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU4NjIKCjIwMTQtMDMtMDYgMjI6NTE6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGdzdF9wYWRfYWRkX3Byb2JlKCkgcmV0dXJuIHZhbHVlIGRvY3MKCSAgQWxzbyBmaXggY29tbWVudCB0eXBvcyBhbmQgYWRkIG1vcmUgZGV0YWlsIGluIHRoZSBsb2dzLgoKMjAxNC0wMy0wNiAyMDo0MDo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZmFrZXNpbmssIGlkZW50aXR5LCBmYWtlc3JjOiBmaXggZGVidWcgcHJpbnRpbmcgaWYgVEFHX01FTU9SWSBidWZmZXIgZmxhZwoJICBUaGUgSU5fQ0FQUyBmbGFnIGRvZXMgbm90IGV4aXN0IGFueSBtb3JlLgoKMjAxNC0wMy0wNiAxMzowMTo0MCArMDIwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogdXNlIGdzdF9wYWRfZ2V0X3BlZXIgdG8gYWNxdWlyZSBhIHJlZmVyZW5jZSB0byB0aGUgdGFyZ2V0IHBhZAoJICBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgbG9jayBvZiB0aGUgaW50ZXJuYWwgcGFkIGlzIGhlbGQgd2hpbGUgcmVmZXJlbmNpbmcKCSAgaXQncyBwZWVyICg9IHRoZSB0YXJnZXQgcGFkKSwgd2hpY2ggZW5zdXJlcyB0aGF0IHRoZSBwZWVyIGlzIG5vdAoJICBnb2luZyB0byBiZSB1bmxpbmtlZC9kZXN0cm95ZWQgaW4gdGhlIG1lYW50aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODA5CgoyMDE0LTAzLTA2IDEyOjQwOjIzICswMjAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSB0YXJnZXQgcGFkIHdoaWxlIHVubGlua2luZyBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODA5CgoyMDE0LTAzLTAyIDA1OjA4OjI0ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBJZ25vcmUgZ2NvdiBpbnRlcm1lZGlhdGUgZmlsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTQ3OAoKMjAxNC0wMy0wMiAxNzo1NTo0NSArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgZG9jczogRml4IHR5cG9zIGFuZCByZW1vdmUgdW5rbm93biBhbm5vdGF0aW9ucwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NTE3CgoyMDE0LTAyLTI4IDIwOjUzOjM4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgZG9jczogdXNlIHRoZSBuZXcgbWFya2Rvd24gZm9yIG9yZGVyZWQgbGlzdC4KCSAgVGhpcyB3YXMgcGxhaW4gdGV4dCB0aGF0IGhhZCBhbGwgbGlzdCBpdGVtcyBvbmUgYWZ0ZXIgdGhlIG90aGVyIChpbmNsdWRpbmcgYQoJICByZXBlYXRlZCBudW1iZXIpLiBOb3cgaXQgd2lsbCBhdGxlYXN0IGxvb2sgZ29vZCB3aGVuIHByb2Nlc3NlZCB3aXRoIGd0ay1kb2MKCSAgMS4yMC4KCjIwMTQtMDItMjggMDk6MzQ6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZlMTY3MmUgdG8gYmNiMTUxOAoKMjAxNC0wMi0yNyAyMjoyNjozMCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIGRvY3M6IGZpeCBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IGMwNjhiMjI1ZmVmNWE5YmYwCgkgIC0gRml4IGZhaWxpbmcgYnVpbGQKCSAgLSBEcm9wIGFkZGVkIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTQtMDItMjcgMTg6Mjc6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIHJldHVybiB2YWx1ZXMgdG8gZ19yZXR1cm5faWZfZmFpbAoJICBGSXhlcyBwcmV2aW91cyBjb21taXQuCgoyMDE0LTAyLTI3IDE4OjA2OjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBkb2NzOiBjb252ZXJ0IHRoZSBleGFtcGxlcyB0byB1c2UgZ3RrLWRvYyBtYXJrdXAsIGluc3RlYWQgb2YgZG9jYm9vawoJICBUaGUgZ3RrLWRvYyBtYXJrdXAgaXMgbGVzcyBpbnRydXNpdmUgYW5kIGJldHRlciBoYW5kbGVkIHdoZW4gY3JlYXRpbmcgZG9jcyBmb3IKCSAgbGFuZ3VhZ2UgYmluZGluZ3MuIFRoZSB0aXRsZXMgKHdoZXJlIHVzZWQpIHdoZXJlIG5vdCBhZGRpbmcgbXVjaC4KCjIwMTQtMDItMjcgMTY6NDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgbmV3IEFQSSBkbyBkb2NzCgoyMDE0LTAyLTI3IDE2OjQwOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IG9ubHkgcmVsZWFzZSBidWZmZXJzIHdpdGggd3JpdGFibGUgbWVtb3J5CgkgIENoZWNrIGlmIHRoZSBtZW1vcnkgaXMgd3JpdGFibGUgYmVmb3JlIHJlbGVhc2luZyB0aGUgYnVmZmVyIGludG8gdGhlCgkgIHBvb2wgYWdhaW4uCgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoaXMgc2NlbmFyaW8uCgoyMDE0LTAyLTI3IDE2OjM5OjUwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBmdW5jdGlvbiB0byBjaGVjayB3cml0YWJpbGl0eSBvZiBtZW1vcnkKCSAgQ2hlY2sgaWYgbWVtb3J5IGlzIHdyaXRhYmxlIGluIGEgYnVmZmVyIGFuZCB0aHVzIGlzIGV4Y2x1c2l2ZWx5IG93bmVkIGJ5CgkgIHRoaXMgYnVmZmVyLgoKMjAxNC0wMi0yNyAxNToxNDo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBVc2UgVEFHX01FTU9SWSB0byBjaGVjayBtZW1vcnkgYmVmb3JlIHJlbGVhc2luZwoJICBUYWcgYWxsb2NhdGVkIGJ1ZmZlcnMgd2l0aCBUQUdfTUVNT1JZLiBXaGVuIHRoZXkgYXJlIHJlbGVhc2VkIGxhdGVyLAoJICBvbmx5IGFkZCB0aGVtIGJhY2sgdG8gdGhlIHBvb2wgaWYgdGhlIHRhZyBpcyBzdGlsbCB0aGVyZSBhbmQgdGhlIG1lbW9yeQoJICBoYXMgbm90IGJlZW4gY2hhbmdlZCwgb3RoZXJ3aXNlIHRocm93IHRoZSBidWZmZXIgYXdheS4KCSAgQWRkIHVuaXQgdGVzdCB0byBjaGVjayB2YXJpb3VzIHNjZW5hcmlvcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDQ4MQoKMjAxNC0wMi0yNyAxNDozNTowOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgYSBuZXcgZmxhZyB0byB0cmFjayBtZW1vcnkgY2hhbmdlcwoJICBBZGQgYSBmbGFnIHRvIGNoZWNrIGlmIHRoZSBtZW1vcnkgY2hhbmdlZCBpbiBhIGJ1ZmZlci4KCjIwMTQtMDItMjYgMTU6MzY6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSB3cm9uZyBjb21tZW50CgkgIFJlZmNvdW50IGFuZCB3cml0YWJpbGl0eSBhcmUgbm90IHJlbGF0ZWQgZm9yIG1lbW9yeSBvYmplY3RzLgoKMjAxNC0wMi0yNSAxNzo0Njo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiByZWZhY3RvciBmcmVlX2J1ZmZlcgoJICBNYWtlIGEgZG9fZnJlZV9idWZmZXIgbWV0aG9kIHRvIGFsc28gZGVjcmVtZW50cyB0aGUgbnVtYmVyIG9mIGFsbG9jYXRlZAoJICBidWZmZXJzLiBTdG9wIHdpbGwgbm93IGJlIHN1Y2Nlc3NmdWwgd2hlbiBhbGwgYnVmZmVycyBhcmUgZnJlZWQuCgoyMDE0LTAyLTI2IDIyOjEwOjI4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxYTA3ZGE5IHRvIGZlMTY3MmUKCjIwMTQtMDItMjYgMjA6MjQ6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBhZGQgYSBsZWdlbmQgdG8gcGlwZWxpbmUgZHVtcHMKCSAgV2UgdXNlIGEgY291cGxlIG9mIHN5bWJvbHMgdG8gcmVwcmVzZW50IHN0YXRlcy9mbGFncy4gQWRkIGEgc2hvcnQgZXhwbGFuYXRpb24gZm9yIHRoZW0uCgoyMDEzLTA3LTMxIDA5OjI2OjI2ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogUHJpbnQgaWYgdGhlcmUgaXMgYSB0YXNrIHN0YXJ0ZWQgZnJvbSBhIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTg5CgoyMDE0LTAyLTI1IDE2OjExOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IFVzZSBnZXRfdWludDY0KCkgaW4gZ3N0X3N0cnVjdHVyZV9nZXRfY2xvY2tfdGltZSgpCgkgIEl0cyBjb2RlIGlzIGlkZW50aWNhbC4KCjIwMTQtMDItMjUgMTU6NDE6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ2V0dGVycyBmb3IgaW50NjQgYW5kIHVpbnQ2NCB2YWx1ZXMKCjIwMTQtMDItMTkgMjE6MTc6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEbyBub3Qgc2VuZCBlb3Mgd2hlbiBzZWVraW5nIGFmdGVyIGxhc3QgYnVmZmVyCgkgIElmIHB1c2hpbmcgdGhlIGxhc3QgYnVmZmVyIHRyaWdnZXJzIGEgc2VlayBmcm9tIGRvd25zdHJlYW0sIGRvIG5vdAoJICBnbyBpbnRvIEVPUyBpZiBhIG5ldyBzZWdtZW50IHdhcyByZXF1ZXN0ZWQuCgkgIENvbnRhaW5zIHVuaXQgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NzU3CgoyMDE0LTAyLTIxIDA5OjAzOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVtb3ZlIGluc2FuaXR5IGFuZCB0aGUgb2xkIGdzdC1vcGVubWF4CgoyMDE0LTAyLTIwIDE4OjQ3OjQyICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgcGF0aHMgdG8gZ3N0LWRldnRvb2xzL3ZhbGlkYXRlCgoyMDE0LTAyLTIwIDE1OjM0OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IElmIHdlIG9ubHkgaGF2ZSBhIHNpbmdsZSBwYWQsIGRvbid0IGNvbnNpZGVyIGFsbCBwYWRzIG5vdCBsaW5rZWQgYW5kIGdyb3cgdGhlIHF1ZXVlIGluZGVmaW5pdGVseQoKMjAxNC0wMi0xOSAxMDo1NzozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhbHNvIHVzZSB0aGUgZ2xvYiBvbiBHU1RfQ0hFQ0tTIHdoZW4gZm9yY2luZyB0byBydW4gYnJva2VuIHRlc3RzCgkgIEdTVF9DSEVDS1MgY2FuIGJlIHNpbXBseSAidGVzdCoiIHRvIHJ1biBydW4gYWxsIHRlc3RzIChpbmNsdWRpbmcgdGhvc2UgdGhhdCBhcmUKCSAgbWFya2VkIGJyb2tlbikuIFVwZGF0ZSB0aGUgc3BhcnNlIGNvbW1lbnRzIGEgYml0IHRvIHRlbGwgaG93IHRoaXMgd29ya3MuCgoyMDE0LTAyLTE4IDE1OjQ2OjMyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgdHJ1bmNhdGUgdGhlIHRlbXAgZmlsZSBvbiBzaHV0ZG93bgoJICBXZSB3YW50IHRvIGtlZXAgdGhlIGRvd25sb2FkZWQgZmlsZSB1bnRydW5jYXRlZCBzbyB0aGF0IHdlIGNhbiB1c2UgaXQKCSAgYWdhaW4gbGF0ZXIuCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MzczCgoyMDE0LTAyLTE4IDE0OjIxOjIwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IG1lcmdpbmcgb2YgcmFuZ2VzCgkgIE1ha2UgYSBtZXRob2QgdG8gZ2V0IHRoZSBzZWVraW5nIHRocmVzaG9sZC4gSWYgZGF0YSBpcyBmdXJ0aGVyIGF3YXkgZnJvbQoJICB0aGlzIHRocmVzaG9sZCB3ZSB3YW50IHRvIHBlcmZvcm0gYSBzZWVrIHVwc3RyZWFtLgoJICBXaGVuIHRoZSBjdXJyZW50IGRvd25sb2FkZWQgcmFuZ2UgY2FuIG1lcmdlIHdpdGggdGhlIG5leHQgcmFuZ2UsCgkgIGFjdHVhbGx5IGluY2x1ZGUgdGhlIGRhdGEgb2YgdGhlIG5leHQgcmFuZ2UgaW50byB0aGUgY3VycmVudCByYW5nZQoJICBpbnN0ZWFkIG9mIGRpc2NhcmRpbmcgaXQuIEFsc28gZGVjaWRlIGlmIHdlIHNlZWsgdG8gdGhlIHdyaXRlIHBvc2l0aW9uCgkgIG9mIHRoZSBtZXJnZWQgcmFuZ2Ugb3IgY29udGludWUgcmVhZGluZy4KCjIwMTQtMDItMTggMTE6NDk6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGluIGF1dG9tYXRpY19lb3MgbW9kZSwgZG9uJ3QgbW9kaWZ5IHRoZSBzaXplCgkgIERvbid0IHNldCB0aGUgc2l6ZSB0byAtMSBpbiBhdXRvbWF0aWNfZW9zIG1vZGUgKHdoaWNoIGFsc28gdXBkYXRlcyB0aGUKCSAgZHVyYXRpb24gdG8gLTEpLiBXZSBvbmx5IHdhbnQgYXV0b21hdGljX2VvcyBtb2RlIGluZmx1ZW5jZSB0aGUgbWF4c2l6ZQoJICBjYWxjdWxhdGlvbnMgd2l0aG91dCBhbnkgc2lkZSBlZmZlY3RzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NTY0CgoyMDE0LTAyLTE3IDExOjM3OjMwICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBwd2c6IFVwZGF0ZSByYXcgcHJvcGVydGllcwoJICBVc2luZyBpbmZvIGZyb20gZ3N0LXBsdWdpbnMtYmFzZS9kb2NzL2Rlc2lnbiAuCgkgIEVuY29kZWQgc3RyZWFtcyBtaWdodCBtYWtlIHVzZSBvZiB0aGUgcmF3IHByb3BlcnRpZXMsIHNvIGxpc3QgdGhlbSBhbGwgdW5kZXIgZm9vLyogLgoJICBGb3IgZm9vL3Jhdywgb25seSBub3RlIHdoaWNoIG9mIHRoZXNlIHByb3BlcnRpZXMgYXJlIG1hbmRhdG9yeS4KCSAgSSBkaWRuJ3QgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSByYXcgZm9ybWF0cyB5ZXQuIFRob3NlIG1pZ2h0IHN0aWxsIGJlIG91dC1vZi1kYXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MTg3CgoyMDE0LTAyLTE3IDE3OjI4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cDogcmVtb3ZlIGRlYWQgaHR0cCBsaW5rcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NTYxCgoyMDE0LTAyLTE1IDIyOjM0OjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBkb2NzOiBhZGQgdGhlIGJveGVkIHR5cGVzIHRvIHRoZSAudHlwZXMuaW4KCSAgVGhpcyBtYWtlcyB0aGVtIHNob3cgdXAgaW4gdGhlIG9iamVjdCBoaWVyYXJjaHkuCgoyMDE0LTAyLTE1IDIxOjIyOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGRvY3M6IGd0a2RvYyBpcyBub3QgZ29vZCBhdCBwYXJzaW5nIGlubGluZSBmdW5jdGlvbnMgaW4gaGVhZGVycwoJICBNYXJrIHRoZSBpbmxpbmUgZnVuY3Rpb24sIHNvIHRoYXQgZ3RrZG9jIHNraXBzIHRoZW0uIEF2b2lkcyBzb21lIHdhcm5pbmdzIGFib3V0CgkgIHVucGFyc2FibGUgZGVjbGFyYXRpb25zLgoKMjAxNC0wMi0xMyAxMjowNzo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc3JjOiBBZGQgZ3N0X2Jhc2Vfc3JjX3NldF9hdXRvbWF0aWNfZW9zKCkgQVBJCgkgIFRoaXMgZGVmYXVsdHMgdG8gVFJVRSBhbmQgaWYgaXQgaXMgc2V0IHRvIEZBTFNFIGl0IGlzIHRoZSBzdWJjbGFzc2VzCgkgIHJlc3BvbnNpYmlsaXR5IHRvIHJldHVybiBHU1RfRkxPV19FT1MgZnJvbSB0aGUgY3JlYXRlKCkgdm1ldGhvZCBvbmNlCgkgIHRoZSBzdHJlYW0gaXMgZG9uZS4KCjIwMTQtMDItMTEgMTY6MzA6MzEgKzAwMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBkb2NzOiBGaXggbG9jYXRpb24gb2YgcGx1Z2lucyBhbmQgcmVnaXN0cnkgaW4gaG9tZSBkaXJlY3RvcmllcwoJICBGaXhlcyBvdXQgb2YgZGF0ZSBkb2N1bWVudGF0aW9uIGxlZnQgb3ZlciBzaW5jZSAwLjEwLiAgSW4gMS4wIHBsdWdpbnMgYXJlCgkgIHN0b3JlZCBpbiAkWERHX0RBVEFfSE9NRSBhbmQgdGhlIHJlZ2lzdHJ5IGluICRYREdfQ0FDSEVfSE9NRSBjb25mb3JtYW50CgkgIHdpdGggdGhlIFhERyBCYXNlIERpcmVjdG9yeSBTcGVjaWZpY2F0aW9uWzFdLgoJICBbMV06IGh0dHA6Ly9zdGFuZGFyZHMuZnJlZWRlc2t0b3Aub3JnL2Jhc2VkaXItc3BlYy9iYXNlZGlyLXNwZWMtbGF0ZXN0Lmh0bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDEzMgoKMjAxNC0wMi0xMSAxMzoyNzoyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlcnJvci5oOgoJICBlcnJvcjogR1NUX1JFU09VUkNFX0VSUk9SX05PVF9BVVRIT1JJWkVEIHdpbGwgYmUgYXZhaWxhYmxlIHNpbmNlIDEuMi40CgoyMDE0LTAyLTExIDEzOjA5OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJICBlcnJvcjogQWRkIFJFU09VUkNFX05PVF9BVVRIT1JJWkVEIGVycm9yCgkgIFRoaXMgYWxsb3dzIHRvIGRpc3Rpbmd1aXNoIG5vcm1hbCByZWFkIGZhaWx1cmVzIGZyb20gcmVhZCBmYWlsdXJlcwoJICB3aGVyZSB3ZSBtaXNzIGF1dGhvcml6YXRpb24uCgoyMDE0LTAyLTEwIDE3OjA5OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEZpeCB5ZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQwNDUKCjIwMTQtMDItMTAgMDg6MDA6MzYgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBhZGQgbWlzc2luZyBzZXFudW0gZmlsZSBmb3IgZGlzdHJpYnV0aW9uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM5OTcKCjIwMTQtMDItMDkgMTY6NTM6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZG9jdW1lbnQgR1NUX1RBR18qRU5DT0RJTkcgZW52aXJvbm1lbnQgdmFyaWFibGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE4NTAKCjIwMTQtMDItMDkgMTY6NDc6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBlbmFibGUgcGFyYWxsZWwgYnVpbGQgb2Ygc3ViZGlyZWN0b3JpZXMKCSAgV2UgY2FuIGJ1aWxkIGd0ayBkb2NzLCBBRE0sIFBXRyBhbmQgRkFRIGluIHBhcmFsbGVsLgoKMjAxNC0wMi0wOSAxNjozODoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBhZGQgc3VwcG9ydCBmb3IgYmxhY2tsaXN0aW5nIGNoZWNrcyB2aWEgR1NUX0NIRUNLU19JR05PUkUKCjIwMTQtMDItMDkgMDA6MjU6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogZml4IGxlYWsgaW4gYmFzZXBhcnNlIHRlc3QKCSAgT3IgcmF0aGVyIG1ha2UgaXQgbm90IHNob3cgdXAgYW55IG1vcmUgYnkgbW92aW5nCgkgIGl0IGZyb20gJ2RlZmluaXRlbHkgbG9zdCcgaW50byAncG9zc2libHkgbG9zdCcuCgoyMDE0LTAyLTA4IDIzOjM5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHRlc3RzOiBmaXggbGVhayBpbiBzeXN0ZW1jbG9jayB0ZXN0CgoyMDE0LTAyLTA4IDE2OjQyOjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IE1ha2UgY2xhbmcgaGFwcHkgd2l0aCBvdXIgZ192cHJpbnRmKCkgd3JhcHBlcgoKMjAxNC0wMi0wNiAxNDoxODozMSArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgd2luZG93czogTWFrZSBHU3RyZWFtZXIgaW5zdGFsbGF0aW9uIHJlbG9jYXRhYmxlCgkgIFVzZSB0aGUgdGVjaG5pcXVlIHRoYXQgaXMgbm93IGRvbmUgaW4gR1RLKyBzbyB0aGF0IHRoZSBwbHVnaW5zIGRvIG5vdCBoYXZlCgkgIHRvIGJlIGluc3RhbGxlZCBpbiBjOlxnc3RyZWFtZXJcbGliXDxkZWJ1Zz5cZ3N0cmVhbWVyLSQoR1NUQXBpVmVyc2lvbiksCgkgIGJ1dCBjYW4gYmUgaW5zdGFsbGVkIGluCgkgIDxwYXJlbnRfZm9sZGVyX29mX2dzdHJlYW1lcl9tYWluX2RsbD5cbGliXDxkZWJ1Zz5cZ3N0cmVhbWVyLSQoR1NUQXBpVmVyc2lvbiksCgkgIG9yIGFzIHBlciBnX3dpbjMyX2dldF9wYWNrYWdlX2luc3RhbGxhdGlvbl9kaXJlY3Rvcnlfb2ZfbW9kdWxlKCkgYWxsb3dzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTE1CgoyMDEzLTEwLTMwIDE3OjAyOjM1IC0wNTAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZ3N0OiBjbGVhciBmbG9hdGluZyByZWZlcmVuY2VzIGZvciBHc3RUYXNrLCBHc3RUYXNrUG9vbCBhbmQgR3N0Q29sbGVjdFBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDM0MgoKMjAxMy0xMC0zMCAxNzowMjowMiAtMDUwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jczogZ3N0X3BhZF9uZXdfZnJvbV8qX3RlbXBsYXRlIGFuZCBnc3RfYnVmZmVyX3Bvb2xfbmV3IGNvbnN0cnVjdG9ycyByZXR1cm4gZmxvYXRpbmcgcmVmZXJlbmNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzQyCgoyMDE0LTAyLTA1IDEwOjExOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICBjaGVjazogUmVtb3ZlIGEgbWlub3IgbGVhayBpbiB1bml0IHRlc3QKCSAgTWFrZXMgdmFsZ3JpbmQgaGFwcHkKCjIwMTQtMDItMDQgMjI6MjM6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggYnVpbGQgYnkgdXNpbmcgdGhlIGNvcnJlY3QgQyBmaWxlIG5hbWUKCjIwMTQtMDItMDQgMjE6MzY6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBDbGVhbiB1cCBjb2RlIGEgYml0IHRvIGJlIHN1aXRhYmxlIGZvciB0aGUgZG9jcwoKMjAxNC0wMS0wMyAwNzoyNTozNyAtMDgwMCAgVG9kZCBBZ3VsbmljayA8dG9kZEBhZ3Vsbmljay5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBSZXBsYWNlIG1hbnVhbCdzIGVmZmVjdHN3aXRjaC5jIHdpdGggbmV3ZXIgdGVzdC1lZmZlY3Qtc3dpdGNoLmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTEwMAoKMjAxNC0wMS0yOSAxNDozOToxOSArMDAwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBhZGQgY2FwcyBmZWF0dXJlcyB1bml0IHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMzYKCjIwMTQtMDItMDQgMTg6NDI6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBXaGVuIGdldHRpbmcgY2Fwc2ZlYXR1cmVzIGFuZCBub25lIGFyZSB0aGVyZSwgc3RvcmUgc3lzbWVtIGNhcHNmZWF0dXJlcwoJICAuLi4gaW5zdGVhZCBvZiByZXR1cm5pbmcgYSByZWZlcmVuY2UgdG8gYSBnbG9iYWwgaW5zdGFuY2UuIFRoZSBjYWxsZXIgbWlnaHQKCSAgd2FudCB0byBjaGFuZ2UgdGhlIGdsb2JhbCBpbnN0YW5jZSBvdGhlcndpc2UsIHdoaWNoIGNhdXNlcyBmdW5ueSBlZmZlY3RzIGxpa2UKCSAgYWxsIGdsb2JhbCBpbnN0YW5jZXMgYmVpbmcgY2hhbmdlZCBhbmQgYXQgdGhlIHNhbWUgdGltZSBub3RoaW5nIGluIHRoZSBjYXBzCgkgIGJlaW5nIGNoYW5nZWQuCgkgIEFzIHRoZSBjYXBzIG1pZ2h0IGJlIGltbXV0YWJsZSB3aGlsZSB3ZSBkbyB0aGlzIHdlIGhhdmUgdG8gZG8gc29tZSBtYWdpYwoJICB3aXRoIGF0b21pYyBvcGVyYXRpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjM2CgoyMDE0LTAyLTA0IDE4OjAzOjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRG9uJ3QgZ2V0IHVzIHN5c21lbSBjYXBzZmVhdHVyZXMgaWYgd2UganVzdCBjaGVjayBmb3IgZml4ZWQgY2FwcwoKMjAxNC0wMi0wNCAxNzo0ODo1NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBNYWtlIHN1cmUgdGhhdCB0aGUgc3RhdGljIEFOWS9FTVBUWSBjYXBzZmVhdHVyZXMgYXJlIG5ldmVyIG11dGFibGUKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMzYKCjIwMTQtMDEtMzEgMDk6MTQ6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGRvY3M6IGZpeCBtb3JlIGd0ay1kb2Mgd2FybmluZ3MKCjIwMTQtMDEtMzEgMDg6MzU6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJICBkb2NzOiB1bmhpZGUgZG9jcyBmb3IgYWxsb2NhdG9yCgkgIFVuaGluZGUgdGhlIGNsYXNzIGRvY3MuIFRlY2ggZ3RrLWRvYyBhYm91dCBHU1RfRVhQT1JUUy4KCjIwMTQtMDEtMzEgMDg6MDg6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBtb3JlIHRlc3RzIGFuZCBzbWFsbCBkb2MgZml4ZXMKCjIwMTQtMDEtMzAgMjE6MjQ6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICB0b29sczogU3VwcG9ydCBub24tQVNDSUkgdGFncwoJICBCeSBjYWxsaW5nIHNldGxvY2FsZSgpIHRvIGdldCB1cyBtdWx0aS1ieXRlL1VURi04IHN1cHBvcnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMxNjQKCjIwMTQtMDEtMzAgMDM6MjI6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogcmVzcGVjdCB0aGUgJ25lZ290aWF0aW9uLW1vZGUnIHByb3BlcnR5CgkgIElmIHRoZSBzZWdtZW50IGV2ZW50IGlzIGFsbG93ZWQgdG8gYmUgcHVzaGVkIHRvIGFsbCBwYWRzIGl0CgkgIHdpbGwgbGVhZCB0byBhbiBhc3NlcnRpb24gb2YgJ3N0aWNreSBldmVudCBtaXNvcmRlcmluZzoKCSAgc2VnbWVudCByZWNlaXZlZCBiZWZvcmUgY2FwcycgaW4gY2FzZSB0aGUgcGFkLW5lZ290aWF0aW9uLW1vZGUKCSAgaXMgc2V0IHRvICdhY3RpdmUnIG9yICdub25lJy4KCSAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IG1ha2luZyBhbGwgc3RpY2t5IGV2ZW50cyBmb2xsb3cgdGhlCgkgIHByb3BlcnR5IGxpa2UgdGhlIGNhcHMgZXZlbnQgdG8gcHJldmVudCBtaXNvcmRlcmluZyB3YXJuaW5ncy4KCSAgV2hlbiBhIG5ldyBwYWQgaXMgYWN0aXZhdGVkIHRoZSBjdXJyZW50IHN0aWNreSBldmVudHMgb24gdGhlCgkgIHNpbmtwYWQgYXJlIGZvcndhcmRlZCB0byBpdCBpbiB0aGUgcHJvcGVyIG9yZGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjY2CgoyMDE0LTAxLTMwIDEyOjU0OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb29sc3RyZXNzLmM6CgkgIHBvb2xzdHJlc3M6IHByaW50IHNwZWVkdXAKCjIwMTQtMDEtMzAgMTI6NDI6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBtaXNjIGNsZWFudXBzCgkgIFJldmlldyB0aGUgZG9jdW1lbnRhdGlvbiwgY29tbWVudHMgYW5kIGxvZ2dpbmcuIFNldCB0aGUgaW5pdGlhbCBzaXplIHRvIDE2IGFzCgkgIHRoZSBzaXplIGlzIHJvdW5kZWQgdXAgdG8gdGhlIG5leHQgcG93ZXIgb2YgdHdvIGFueXdheS4KCjIwMTQtMDEtMzAgMDg6MTE6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBhIG5ldyB0ZXN0c3VpdGUgb3IgdGhlIHBvb2wKCSAgU3RhcnQgd2l0aCBzb21lIGJhc2ljIHRlc3RzLgoKMjAxNC0wMS0zMCAxMjoyNjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhdm9pZCBleGNlc3NpdmUgR3N0UG9sbCBhY3Rpdml0eQoJICBLZWVwIGFuIGV4dHJhIHdyaXRlIHJlZiBvbiB0aGUgY29udHJvbCBzb2NrZXQuIFRoaXMgZW5zdXJlcyB0aGF0IHdlCgkgIGF2b2lkIGEgcmVhZC93cml0ZSBvbiB0aGUgc29ja2V0IHdoZW4gZ29pbmcgZnJvbSBub24tZW1wdHktPmVtcHR5LT5ub3QtZW1wdHkuCgkgIFdlIHJlbW92ZSB0aGUgd3JpdGUgcmVmIG9ubHkgd2hlbiB3ZSBhY3R1YWxseSBhcmUgZW1wdHkgYW5kIHdlIG5lZWQgdG8KCSAgd2FpdCBmb3IgZmx1c2hpbmcgb3IgYSBuZXcgYnVmZmVyLgoJICBUaGlzIG1ha2VzIHRoZSBidWZmZXJwb29sIGJlbmNobWFyayBhYm91dCAzMCUgZmFzdGVyIHRoYW4gdGhlIHB1cmUKCSAgbWFsbG9jIGltcGxlbWVudGF0aW9uLgoKMjAxNC0wMS0zMCAxMjoyNTozMyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbXByb3ZlIGRlYnVnCgkgIEFkZCBvYmplY3QgcG9pbnRlciBpbiBkZWJ1ZyBsaW5lcy4KCjIwMTQtMDEtMzAgMTA6NDM6MzYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ0OGJlZDMgdG8gMWEwN2RhOQoKMjAxNC0wMS0yOSAyMjo0Njo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgcGFydC10b2M6IGVtcGhhc2l6ZSB0aGF0IHRoZSBsYXRlciBjaGFwdGVycyBhcmUgZGVzaWduIGRyYWZ0IGlkZWFzCgoyMDE0LTAxLTI5IDIwOjIwOjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBwYXJ0LXRvYzogYWRkIGZvcm1hdCBzcGVjaWZpYyBpbmZvcm1hdGlvbgoKMjAxNC0wMS0yOSAxODoyMTozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9vbHN0cmVzcy5jOgoJICBwb29sc3RyZXNzOiBjb2RlIGNsZWFudXBzCgkgIEFkZCBhIGZldyBjb21tZW50cy4gVGVsbCBpbiB0aGUgcmVzdWx0cywgd2hpY2ggbnVtYmVyIGFyZSBmcm9tIHdoaWNoIHRlc3QuCgoyMDE0LTAxLTI5IDEzOjIwOjE5ICswMTAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHVzZSBwcmludCBhcyBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjI5CgoyMDE0LTAxLTI4IDExOjU4OjUzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgdGVzdHM6IGNhcHNmaWx0ZXI6IGFkZCB0ZXN0IGZvciBwZW5kaW5nX2V2ZW50cyBwdXNoaW5nCgkgIG1ha2Ugc3VyZSB0aGF0IHBlbmRpbmcgZXZlbnRzIGFyZSBwdXNoZWQgd2hlbiBjYXBzIGFyZSBhbHJlYWR5CgkgIHNldCB3aGVuIGEgYnVmZmVyIGlzIHJlY2VpdmVkCgoyMDE0LTAxLTI4IDExOjEyOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBkbyBub3QgZm9yZ2V0IHRvIHB1c2ggcGVuZGluZyBldmVudHMKCSAgUHVzaCBwZW5kaW5nIGV2ZW50cyBiZWZvcmUgYnVmZmVycyBpZiBjYXBzIGlzIGFscmVhZHkKCSAgc2V0CgoyMDE0LTAxLTI0IDE5OjE5OjA4ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkbyBub3QgcmVkdWNlIHNpbmdsZSBxdWV1ZSBiZWxvdyBjdXJyZW50IGxldmVsCgkgIFdoZW4gdGhlIHNpbmdsZSBxdWV1ZSBzaXplIHdhcyBqdXN0IGJ1bXBlZCBieSAxIHRvIGFsbG93IG1vcmUgYnVmZmVycyB0bwoJICBiZSBhZGRlZCwgdGhlIGJ1ZmZlcnMgbGltaXQgY291bGQgYmUgcmVkdWNlZCB0byB0aGUgY3VycmVudCBsZXZlbCB3aGVuCgkgIHNldHRpbmcgdGhlIG1heC1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuIFRoaXMgd291bGQgcmVzdWx0IGluIGEgc3RhbGwKCSAgc2luY2UgdGhlIHF1ZXVlIHdvdWxkIG5vdCBncm93IGFueW1vcmUgYXQgdGhpcyBwb2ludC4KCSAgUHJldmVudCB0aGlzIGJ5IG5vdCByZWR1Y2luZyBhIHNpbmdsZSBxdWV1ZSBzaXplIGJlbG93IHRoZSBjdXJyZW50CgkgIG51bWJlciBvZiBidWZmZXJzICsgMS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjU5NwoKMjAxNC0wMS0yNCAxMzoyMDo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IGZvcmdldCB0byBjbGVhciB0aGUgZm9yY2VkX2VvcyBmbGFnCgkgIG90aGVyd2lzZSBpdCB3aWxsIGFsd2F5cyB1c2UgdGhlIHNlcW51bSBvZiB0aGUgZXZlbnQKCSAgc2VudCBieSB0aGUgYXBwbGljYXRpb24KCjIwMTQtMDEtMjMgMTU6NTI6NTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcmVzZXJ2ZSBzZXFudW0gb2YgZW9zIGV2ZW50cyBzZW50IGJ5IHRoZSB1c2VyCgkgIFN0b3JlIHRoZSBlb3MgZXZlbnQgc2VxbnVtIGFuZCB1c2UgaXQgd2hlbiBjcmVhdGluZyB0aGUKCSAgbmV3IGVvcyBldmVudCB0byBiZSBwdXNoZWQgZG93bnN0cmVhbS4gVG8ga25vdyBpZiB0aGUgZW9zCgkgIHdhcyBjYXVzZWQgYnkgdGhlIGVvcyBldmVudHMgcmVjZWl2ZWQgb24gc2VuZF9ldmVudCwgYQoJICAnZm9yY2VkX2VvcycgZmxhZyBpcyB1c2VkIHRvIHVzZSB0aGUgY29ycmVjdCBzZXFudW0gb24KCSAgdGhlIGV2ZW50IHB1c2hlZCBkb3duc3RyZWFtLgoJICBVc2VmdWwgaWYgdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIGNoZWNrIGlmIHRoZSBFT1MgbWVzc2FnZQoJICB3YXMgZ2VuZXJhdGVkIGZyb20gaXRzIG93biBwdXNoZWQgRU9TIG9yIGZyb20gYW5vdGhlciBzb3VyY2UKCSAgKHN0cmVhbSByZWFsbHkgZmluaXNoZWQpLgoJICBBbHNvIGFkZHMgYSB0ZXN0IGZvciB0aGlzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OTEKCjIwMTQtMDEtMjMgMTU6MzQ6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZXFudW1zLnR4dDoKCSAgZG9jczogZGVzaWduOiBhZGQgcGFydC1zZXFudW1zCgkgIEhvcGVmdWxseSBjbGFyaWZpZXMgaG93IHNlcW51bXMgc2hvdWxkIGJlIHVzZWQgYW5kIGNvcGllZCBmcm9tCgkgIGV2ZW50cyB0byBldmVudHMvbWVzc2FnZXMgd2hlbiB0aG9zZSBhcmUgaGFuZGxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjc5MQoKMjAxNC0wMS0yNCAwOToyODowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBCcmVhayB0aGUgbG9vcCBpbW1lZGlhdGVseSBpZiB3ZSBmb3VuZCBhbiBlbXB0eSBxdWV1ZQoJICBObyBuZWVkIHRvIGNvbnRpbnVlIGxvb2tpbmcgYXQgYWxsIHRoZSBvdGhlcnMKCjIwMTQtMDEtMjMgMTU6NDc6MjMgKzAxMDAgIFBlciB4IEpvaGFuc3NvbiA8cGVyeGpvaEBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBbGxvdyBncm93aW5nIGEgcXVldWUgaWYgYWxsIG90aGVyIHF1ZXVlcyBhcmUgbm90IGxpbmtlZAoJICBJbiB0aGUgY2FzZSB3aGVyZSBvbmUgc2luZ2xlcXVldWUgaXMgZnVsbCBhbmQgYWxsIG90aGVyIGFyZSBub3QgbGlua2VkLCB0aGUKCSAgZ3Jvd2luZyBvZiB0aGUgZnVsbCBxdWV1ZSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseS4gVGhlIHJlc3VsdCBkZXBlbmRzIG9uIGlmCgkgIHRoZSBmdWxsIHF1ZXVlIGlzIGxhc3QgaW4gdGhlIHF1ZXVlIGxpc3Qgb3Igbm90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODkxCgoyMDE0LTAxLTIyIDExOjEwOjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1pbm9yIGNvZGUgY2xlYW51cAoJICAhY2hlY2tfc3RpY2t5KCk9PUdTVF9GTE9XX09LIGlzIGEgYml0IGNvbmZ1c2luZywgY29tcGFyZWQgdG8KCSAgY2hlY2tfc3RpY2t5KCkhPUdTVF9GTE9XX09LLgoKMjAxNC0wMS0yMCAxNToyNjo1NCArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogQWRkaXRpb25hbCB0ZXN0cyBmb3IgcGFyc2VyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwMzQKCjIwMTQtMDEtMTggMTQ6NDg6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IFByb3Blcmx5IGNvcHkgbXV0ZXhlcyBhcm91bmQgd2hlbiBjcmVhdGluZyBhIGNvcHkgb2YgYSBmaWx0ZXIgaXRlcmF0b3IKCjIwMTQtMDEtMTggMTQ6MzQ6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCB1bml0IHRlc3RzIGZvciBmaWx0ZXJpbmcsIHJlY3Vyc2l2ZSBmaWx0ZXJpbmcgYW5kIGxvY2tpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTEzOAoKMjAxNC0wMS0xOCAxNDo0MzoyMCArMDEwMCAgU3Rld2FydCBCcm9kaWUgPHN0ZXdhcnRAZWgub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBQcmVzZXJ2ZSB0aGUgbWFzdGVyIGxvY2sgd2hlbiBjcmVhdGluZyByZWN1cnNpdmUgaXRlcmF0b3IgZmlsdGVycyB3aXRoIHRoZSBzYW1lIGxvY2sKCSAgVGhpcyB3YXkgd2UgbWFrZSBzdXJlIHRoYXQgYSkgdGhlIGxvY2sgaXMgYWx3YXlzIHRha2VuIHdoZW4gY2hlY2tpbmcKCSAgdGhlIGNvb2tpZSBhbmQgY2FsbGluZyB0aGUgaXRlcmF0b3IncyBuZXh0IGZ1bmN0aW9ucyBhbmQgYikgaXQgaXMKCSAgbm90IHRha2VuIHdoaWxlIGNhbGxpbmcgYW55IG9mIHRoZSBpdGVyYXRvciBmaWx0ZXIgZnVuY3Rpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMTM4CgoyMDE0LTAxLTE3IDIyOjUzOjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggc3RpY2t5IGV2ZW50IGxlYWsgYWZ0ZXIgc3RpY2t5X2V2ZW50c19mb3JlYWNoCgkgIGV2ZW50c19mb3JlYWNoIGFkZHMgYW4gZXh0cmEgcmVmIHdoZW4gZ2l2aW5nIHRoZSBldmVudCB0byB0aGUKCSAgdXNlciBmdW5jdGlvbi4gSW4gY2FzZSBpdCB3YXMgdW5yZWZlZCBieSB0aGUgdXNlciwgdGhpcyBleHRyYSByZWYKCSAgZGlzYXBwZWFyZWQsIGJ1dCBldmVudHNfZm9yZWFjaCBzdGlsbCBzaG91bGQgdW5yZWYgYWdhaW4gdG8KCSAgbG9zZSBpdHMgb3duIHJlZiBiZWZvcmUgcmVtb3ZpbmcgdGhlIGV2ZW50IGZyb20gdGhlIGFycmF5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNDY3CgoyMDE0LTAxLTE2IDIwOjExOjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtb3ZlIHNvbWUgZW52LXZhciBjaGVja3MgZnJvbSBnc3QgdG8gZ3N0aW5mbyBhcyB3ZWxsCgkgIFdlIHdlcmUgZG9pbmcgc29tZSBsb2cgcmVsYXRlZCBpbml0aWFsaXNhdGlvbiBpbiBnc3QuYyBhZnRlciBjYWxsaW5nCgkgIF9wcml2X2dzdF9kZWJ1Z19pbml0KCkuIEp1c3QgbW92ZSBpdCB0aGVyZSBmb3IgY29uc2lzdGVuY3kuCgoyMDE0LTAxLTE2IDE4OjE2OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IE9ubHkgc2V0IGNhcHMgb24gdGhlIHNyY3BhZCBpZiBpdCdzIGFjdGl2YXRlZCBpbiBwdXNoIG1vZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjI4OQoKMjAxNC0wMS0xNiAxMjoyODo0NyArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IFNvbWUgbWlub3IgZml4ZXMKCSAgRml4IGRlc3RydWN0b3Igc2VnZmF1bHRpbmcKCSAgRXhwZWN0IDAgZ3JhbW1hci1hbWJpZ3VpdGllcwoJICBGaXggb3JkZXIgb2YgYmluLXByb3BlcnRpZXMgYXNzaWdubWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMDM0CgoyMDE0LTAxLTE1IDE5OjI4OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmluZyBkdXBsaWNhdGUgZmllbGQgcG9zaXRpb24KCSAgSXQgaXMgYWxyZWFkeSBzdG9yZWQgaW5zaWRlIHRoZSBHc3RTZWdtZW50IHN0cnVjdCBhbmQKCSAgd2FzIG9ubHkgZHVwbGljYXRpbmcgaW5mb3JtYXRpb24uIEFsc28gcmVtb3ZlZCBzb21lCgkgIHdlaXJkIHBvc2l0b24gaWYvZWxzZSB0aGF0IHdvdWxkIHBvc3NpYmx5IGNoYW5nZSB0aGUKCSAgc2VnbWVudCB0aGF0IHdhcyBnb2luZyB0byBiZSBwdXNoZWQgZG93bnN0cmVhbQoKMjAxNC0wMS0xNSAwMDoxMjoyNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcHJldmVudCBidWZmZXJpbmcgZm9yZXZlciB3aXRoIHBsYXliaW4KCSAgV2hlbiBwcmVyb2xsaW5nL2J1ZmZlcmluZywgbXVsdGlxdWV1ZSBoYXMgaXRzIGJ1ZmZlcnMgbGltaXQgc2V0CgkgIHRvIDAsIHRoaXMgbWVhbnMgaXQgY2FuIHRha2UgYW4gaW5maW5pdGUgYW1vdW50IG9mIGJ1ZmZlcnMuCgkgIFdoZW4gcHJlcm9sbGluZy9idWZmZXJpbmcgZmluaXNoZXMsIGl0cyBsaW1pdCBpcyBzZXQgYmFjayB0byA1LCBidXQKCSAgb25seSBpZiB0aGUgY3VycmVudCBsZXZlbCBpcyBsb3dlciB0aGFuIDUuIEl0IHNob3VsZCAoYWxtb3N0KSBuZXZlciBiZQoJICBhbmQgdGhpcyB3aWxsIGNhdXNlIHByZXJvbGxpbmcvYnVmZmVyaW5nIHRvIG5lZWQgdG8gd2FpdCB0byByZWFjaCB0aGUKCSAgaGFyZCBieXRlcyBhbmQgdGltZSBsaW1pdHMsIHdoaWNoIGFyZSBtdWNoIGhpZ2hlci4KCSAgVGhpcyBjYW4gbGVhZCB0byBhIHZlcnkgbG9uZyBzdGFydHVwIHRpbWUuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcwoJICBieSBzZXR0aW5nIHRoZSBzaW5nbGUgcXVldWVzIHRvIHRoZSBtYXgoY3VycmVudCwgbmV3X3ZhbHVlKSBpbnN0ZWFkCgkgIG9mIHNpbXBseSBpZ25vcmluZyB0aGUgbmV3IHZhbHVlIGFuZCBsZXR0aW5nIGl0IGFzIGluZmluaXRlKDApCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI1OTcKCjIwMTQtMDEtMTUgMTE6MTI6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBnc3Rfc2VnbWVudF9vZmZzZXRfcnVubmluZ190aW1lKCkgd2lsbCBiZSBhdmFpbGFibGUgaW4gMS4yLjMKCjIwMTQtMDEtMTQgMTY6MTU6MjEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogVXBkYXRlIHNlY3Rpb25zIHdpdGggdGhlIG5ldyByb3VuZGluZyBtYWNyb3MKCjIwMTQtMDEtMTQgMTY6MTU6MDIgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsOiBBZGQgR1NUX1JPVU5EX1VQX04gYW5kIEdTVF9ST1VORF9ET1dOX04KCSAgVGhlc2UgYXJlIGdlbmVyaWMgcm91bmRpbmcgbWFjcm8gdGhhdCB3b3JrcyBmb3IgYW55IHBvd2VyIG9mIHR3by4KCjIwMTQtMDEtMTQgMTY6NDc6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBBZGQgdW5pdCB0ZXN0IGZvciByZXF1ZXN0aW5nIHBhZCBuYW1lcwoKMjAxNC0wMS0xNCAxNjo0NTo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogTWFrZSBzdXJlIHRvIGdpdmUgcGFkcyB0aGUgbmFtZSB0aGF0IHdhcyByZXF1ZXN0ZWQKCSAgQWxzbyBjaGVjayBmb3IgdW5pcXVlbmVzcyBhbmQgbWFrZSBzdXJlIHdlIGNyZWF0ZSBhIG5ldwoJICBwYWQgaW5kZXggcHJvcGVybHkgaWYgc29tZSB3ZXJlIHJlcXVlc3RlZCB3aXRoIG5hbWVzIGJ1dAoJICB0aGUgbmV3IG9uZSBpcyBub3QuCgoyMDE0LTAxLTE0IDE1OjUyOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IE1ha2Ugc3VyZSB0byBjcmVhdGUgYW5kIGxpbmsgY2hhaW5zIGluIHRoZSBvcmRlciBhcyB3cml0dGVuCgkgIE1ha2UgdGhpcyB3b3JrIGFnYWluOgoJICBhdWRpb3Rlc3RzcmMgISB0ZWUgbmFtZT10ICB0LnNyY18wICEgcXVldWUgISBmYWtlc2luayAgdC5zcmNfMSAhIHF1ZXVlICEgZmFrZXNpbmsKCSAgYW5kIHRoaXMgZmFpbCBhZ2FpbjoKCSAgYXVkaW90ZXN0c3JjICEgdGVlIG5hbWU9dCAgdC5zcmNfMSAhIHF1ZXVlICEgZmFrZXNpbmsgIHQuc3JjXzAgISBxdWV1ZSAhIGZha2VzaW5rCgkgIGFzIHRlZSBqdXN0IGNvdW50cyBpdHNlbGYgYW5kIGRvZXMgbm90IGNhcmUgYWJvdXQgdGhlIHBhZCBuYW1lcyB3ZSByZXF1ZXN0CgkgIGZyb20gaXQuCgoyMDE0LTAxLTE0IDEzOjQ1OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IFJlbW92ZSBzb21lIEM5OS1zdHlsZSBjb21tZW50cwoKMjAxNC0wMS0xNCAxMzo0NDoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZTogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyBhbmQgZnJlZWluZyBsaW5rcyBhbmQgY2hhaW5zCgoyMDE0LTAxLTE0IDEzOjQyOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlOiBBZGQgY29tbWVudCBhYm91dCB3aHkgd2UgZGlzYWJsZSB0aGUgInRyYWNpbmciCgkgIEl0IGRpZCBub3QgcHJpbnQgYW55dGhpbmcgdXNlZnVsIGJlZm9yZSBhbnl3YXksIGV2ZXJ5dGhpbmcKCSAgd2FzIGNvbW1lbnRlZCBvdXQuCgkgIEFsc28gcmVtb3ZlIHNvbWUgdW5uZWVkZWQgc3RydWN0IG1lbWJlcnMuCgoyMDE0LTAxLTE0IDEzOjM2OjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZS1sYXVuY2g6IEFkZCBzb21lIG1vcmUgZmFpbGluZyBwaXBlbGluZXMKCSAgQWxzbyBjb252ZXJ0IHNvbWUgY29tbWVudHMgYWJvdXQgdmFsZ3JpbmQgd2FybmluZ3MgdG8KCSAgRklYTUUgY29tbWVudHMuIFRoZXNlIHdlcmUgbGVha2luZyBzaW5jZSBzb21lIHRpbWUgYWxyZWFkeS4KCjIwMTQtMDEtMTAgMjE6MTA6MTcgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogUmVmYWN0b3IgZ3JhbW1hciwgbWFrZSBpdCBtb3JlIGNvbnNpc3RlbnQgYW5kIGZpeCBjb25mbGljdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDAzNAoKMjAxNC0wMS0xMyAyMDo0ODozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgZG9jczogZW5zdXJlIEdzdEJ1ZmZlclBvb2xzIHNob3dzIHVwIGFzIHdpdGggR09iamVjdCBmZWF0dXJlcwoJICBHc3RCdWZmZXJQb29sIGlzIGEgR3N0T2JqZWN0LCBhZGQgdGhlIF9nZXRfdHlwZSBmdW5jdGlvbiB0byB0aGUgdHlwZXMgZmlsZS4KCjIwMTQtMDEtMTMgMDg6Mzc6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogYWRkIHRlc3QgZm9yIHJldmVyc2UgcGxheWJhY2sgb24gcGFzc3Rocm91Z2gKCSAgQmFzZXBhcnNlIHN0b3JlcyBidWZmZXJzIGZvciByZXZlcnNlIHBsYXliYWNrIHRvIHB1c2ggb24gdGhlIG5leHQKCSAgRElTQ09OVCwgdGhlIGlzc3VlIHdhcyB0aGF0IGl0IHdvdWxkbid0IGV2ZXIgY2hlY2sgZm9yIGEgZGlzY29udAoJICBvbiBwYXNzdGhyb3VnaCBtb2RlIGFzIGl0IHNraXBzIGFsbCByZWFsIHBhcnNpbmcuIFRoaXMgdGVzdAoJICB3YXMgY3JlYXRlIHRvIHZlcmlmeSB0aGlzIGlzc3VlIGFuZCBwcmV2ZW50IGl0IGZyb20gaGFwcGVuaW5nIGFnYWluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE5NDEKCjIwMTQtMDEtMTEgMTA6NDk6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogYWRkIGJhc2ljIHRlc3QgZm9yIGJhc2VwYXJzZQoJICBKdXN0IGEgc21hbGwgdGVzdCB0byBjaGVjayB0aGF0IGJhc2ljIHBsYXliYWNrIHdvcmtzCgoyMDE0LTAxLTEwIDA5OjEwOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IGFjY3VtdWxhdGUgYnVmZmVycyBvbiBwYXNzdGhyb3VnaCBtb2RlCgkgIElmIG9uIHBhc3N0aHJvdWdoIGR1cmluZyByZXZlcnNlIHBsYXliYWNrLCBkbyBub3QgYWNjdW11bGF0ZSBidWZmZXJzIGFzCgkgIGJhc2VwYXJzZSB3aWxsIG5ldmVyIGNoZWNrIGZvciBESVNDT05UIGZsYWcgdG8gcHVzaCB0aG9zZSBidWZmZXJzLgoJICBTbyBqdXN0IHB1c2ggYnVmZmVycyBkb3duc3RyZWFtIGFzIGlmIGl0IHdhcyBmb3J3YXJkIHBsYXliYWNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxOTQxCgoyMDE0LTAxLTA2IDIxOjQ3OjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGNvbmZ1c2UgR1NUX1BBRF9NT0RFX05PTkUgYW5kIFBVTEwKCSAgVXNlIGEgc3dpdGNoLWNhc2UgdG8gZXhwbGljaXRseSBoYW5kbGUgYWxsIHBhZC1tb2Rlcy4gVGhpcyB3YXkgd2UgZG9uJ3QgbG9nIGFuIGVycm9yIHdoZW4gdGhlIHBhZCBpcyBub3QgeWV0IGFjdGl2YXRlZC4KCjIwMTQtMDEtMDkgMDc6NTY6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWRkIEZJWE1FIGFuZCBkb2NzIGZvciB0aGUgZGlzYWJsZWQgbm90aWZ5IG9uIHBhcmVudAoJICBXZSBoYXZlbid0IGZvdW5kIGEgd2F5IHRvIHJlLWVuYWJsZSBlbWl0dGluZyBub3RpZnkgYW5kIGRlZXAtbm90aWZ5IGZvciBwYXJlbnQKCSAgY2hhbmdlcy4gQWRkIGEgRklYTUUtMi4wIGFuZCBhIGRvYyBibG9iIG9uIHRoZSBwcm9wZXJ0eS4gU2VlICM2OTMyODEuCgoyMDE0LTAxLTA4IDE2OjI4OjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IGlnbm9yZSBUSU1FIHNlZ21lbnRzCgkgIFRJTUUgc2VnbWVudHMgYXJlIGJlaW5nIGlnbm9yZWQgYW5kIGEgc3RhbmRhcmQgaW5pdGlhbGl6ZWQKCSAgc2VnbWVudCBpcyB1c2VkIGluc3RlYWQuIFRoaXMgY2F1c2VzIGlzc3VlcyBhcyBub3QgcHJvcGVybHkgZGV0ZWN0aW5nCgkgIHJldmVyc2UgcGxheWJhY2sgb3Igbm90IGNsaXBpbmcgb3V0cHV0IGJhc2VkIG9uIHRoZSBzZWdtZW50LgoJICBUaGlzIHNlZW1zIHRvIGJlIGEgcmVncmVzc2lvbiBmcm9tIG9uZSBvZiB0aGUgR3N0U2VnbWVudC9Hc3RFdmVudAoJICByZWRlc2lnbnMgb24gdGhlIDAuMTAgLT4gMS4wIHRyYW5zaXRpb24KCjIwMTQtMDEtMDggMTU6NDc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGltcHJvdmUgY2hlY2ssIGFsc28gY2hlY2sgc3RyZWFtLXRpbWUKCjIwMTQtMDEtMDggMTU6MzE6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHNlZ21lbnQgX29mZnNldF9ydW5uaW5nX3RpbWUoKQoJICBBZGQgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgb2Zmc2V0cyBhcmUgYXBwbGllZAoJICBjb3JyZWN0bHkgaW4gdmFyaW91cyBjYXNlcy4KCjIwMTQtMDEtMDggMTU6MjM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogdGFrZSBvZmZzZXQgaW50byBhY2NvdW50IGluIF90b19wb3NpdGlvbigpCgkgIFRha2UgdGhlIG9mZnNldCBpbnRvIGFjY291bnQgd2hlbiBjb252ZXJ0aW5nIGJldHdlZW4gcnVubmluZy10aW1lIGFuZAoJICBzZWdtZW50IHBvc2l0aW9ucy4KCjIwMTQtMDEtMDggMTQ6NTc6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgc2VnbWVudCBvZmZzZXQgbWV0aG9kIHRvIGFwcGx5IHRoZSBvZmZzZXQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTQyMgoKMjAxNC0wMS0wOCAxNDo1NDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIG1ldGhvZCB0byBvZmZzZXQgdGhlIHNlZ21lbnQgcnVubmluZy10aW1lCgkgIEFkZCBhIG1ldGhvZCB0aGF0IGNhbiBhcHBseSBhbiBvZmZzZXQgdG8gdGhlIGNhbGN1bGF0ZWQgcnVubmluZy10aW1lIG9mCgkgIGEgc2VnbWVudC4KCjIwMTQtMDEtMDggMTQ6NTI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdGFrZSBvZmZzZXQgaW50byBhY2NvdW50IGZvciBleHBlY3RlZCBzZWdtZW50IHBvc2l0aW9uCgkgIFRoZSBmaXJ0IHZhbGlkIHNlZ21lbnQgcG9zaXRpb24gaXMgc3RhcnQgKyBvZmZzZXQuCgkgIEFsc28gYWRkIHNvbWUgbW9yZSBkZWJ1ZyBhbmQgYSBGSVhNRQoKMjAxNC0wMS0wOCAxNDo1MDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkZWJ1ZyBzZWdtZW50IG9mZnNldCBmaWVsZCBhcyB3ZWxsCgoyMDE0LTAxLTA4IDA5OjUzOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFsbG93IGdyb3dpbmcgYSBxdWV1ZSBpZiBhbGwgb3RoZXIgcXVldWVzIGFyZSBub3QgbGlua2VkCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5ODkzCgoyMDE0LTAxLTA3IDE2OjE4OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBkb24ndCB0cnkgdG8gc2VlayB0byAtMSBvZmZzZXQKCSAgVGhlIG9mZnNldCBjYW4gYmUgLTEgd2hlbiB3ZSBhcmUgY29uZmlndXJlZCBpbiBUSU1FIGZvcm1hdC4gSW5zdGVhZCBvZgoJICBmYWlsaW5nIHRoZSBzZWVrIGFuZCBlcnJvcmluZywgZG8gd2hhdCBhbmQgb2Zmc2V0IG9mIC0xIGlzIHN1cHBvc2VkIHRvCgkgIGRvIGFuZCBzaW1wbHkgcmVhZCBmcm9tIHRoZSBjdXJyZW50IG9mZnNldC4KCjIwMTQtMDEtMDYgMjE6MDQ6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZGVtb3RlIGVycm9yIHRvIHdhcm5pbmcKCSAgVGhpcyBpcyBub3QgYW4gZXJyb3IuIEEgc3ViY2xhc3MgcmV0dXJuaW5nIEZBTFNFIGZvciBpc19zZWVrYWJsZSgpIGlzIG9uZSB3YXkgb2YKCSAgc2F5aW5nIHRoYXQgd2UgY2FuJ3Qgb3BlcmF0ZSBpbiBwdWxsIG1vZGUuCgoyMDE0LTAxLTAzIDExOjQ3OjIzICswODAwICBZYW5waW5nWmhhbmcgPHpoYW5neWFucGluZzIxMEAxNjMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBoYW5naW5nIGlmIHNodXQgZG93biB3aGlsZSBoYW5kbGluZyBhIHNlcmlhbGl6ZWQgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTI1MwoKMjAxNC0wMS0wMiAxNjoyMjozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBwZW5kaW5nX3NlZ21lbnQgYXMgaXQgd2FzIGJlaW5nIG1pc3VzZWQKCSAgSXQgd2Fzbid0IHJlcXVpcmVkLCBpbnN0ZWFkIGJhc2VwYXJzZSB3YXMgdXNpbmcgaXQgdG8gY2hlY2sgdGhlIG1lZGlhCgkgIGNhcHMgdG8gaWRlbnRpZnkgaWYgaXQgd2FzIGhhbmRsaW5nIGF1ZGlvIG9yIHZpZGVvLgoJICBUaGUgcGVuZGluZ19zZWdtZW50IHdhcyByZW1vdmVkIGFuZCBhIGNoZWNrZWRfbWVkaWEgYm9vbGVhbgoJICByZXBsYWNlZCBpdCBmb3IgYSBtb3JlIGFjY3VyYXRlIG5hbWluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTM1MAoKMjAxNC0wMS0wMiAxMzo0Mzo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHB1c2ggcGVuZGluZyBldmVudHMgYmVmb3JlIEdBUCBldmVudAoJICBBIEdBUCBldmVudCBpcyBoYW5kbGVkIGFzIGFuIGVtcHR5IGJ1ZmZlciBieSBzaW5rcyBhbmQgdGhleSBleHBlY3QKCSAgdG8gcmVjZWl2ZSBzdGFydCB1cCBldmVudHMgYmVmb3JlIEdBUCBldmVudHMgKGxpa2UgYSBzZWdtZW50KS4KCSAgVGhpcyBpcyBpbXBvcnRhbnQgc3BlY2lhbGx5IGlmIHRoZXJlIGlzIGEgR0FQIGF0IHRoZSBiZWdpbm5pbmcgb2YKCSAgYSBzdHJlYW0gKGJlZm9yZSBhbnkgYnVmZmVycykgc28gdGhhdCB0aGUgc2VnbWVudCBldmVudCBjYW4gYmUKCSAgcHVzaGVkIGRvd25zdHJlYW0gYmVmb3JlIHRoZSBHQVAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTM1MAoKMjAxNC0wMS0wMiAxMzo0MToyNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIHBlbmRpbmcgZXZlbnRzIHB1c2hpbmcKCSAgUmVmYWN0b3IgY29kZSByZXBlYXRlZCAzIHRpbWVzIHRvIGEgY29tbW9uIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzNTAKCjIwMTQtMDEtMDIgMjA6MTc6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRlc2lnbi9wYXJ0LXRvYy50eHQ6IHVwZGF0ZSBkZXNpZ24gZG9jcwoKMjAxNC0wMS0wMiAxMzozNDo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgdW5pdCB0ZXN0IGZvciBhZGRpbmcvcmVtb3ZpbmcgYmxvY2tpbmcgcHJvYmVzIHdoaWxlIGEgcGFkIGlzIGJsb2NrZWQKCSAgQW5kIG1ha2Ugc3VyZSB0aGF0IHRoZXNlIG5ldyBwcm9iZXMgYXJlIGFjdHVhbGx5IGNhbGxlZCBpZiB0aGV5IHNob3VsZAoJICBpbnN0ZWFkIG9mIHNpbGVudGx5IGJsb2NraW5nIHRoZSBwYWQgZm9yZXZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTI4OQoKMjAxNC0wMS0wMiAxMzozMzoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDaGVjayBpZiBuZXcgcHJvYmVzIG5lZWQgdG8gYmUgY2FsbGVkIHdoZW4gYWRkaW5nL3JlbW92aW5nIHNvbWUKCSAgVGhpcyBhbGxvd3MgYmxvY2tpbmcgYSBwYWQsIGFkZCBhIG5ldyBibG9ja2luZyBwcm9iZSwgcmVtb3ZpbmcKCSAgdGhlIGZpcnN0IHByb2JlIGFuZCB0aGVuIGhhdmluZyB0aGUgc2Vjb25kIHByb2JlIGNhbGxlZC4gV2hpY2gKCSAgY291bGQgdGhlbiBkZWNpZGUgdGhhdCBkYXRhLWZsb3cgc2hvdWxkIGFjdHVhbGx5IGNvbnRpbnVlCgkgIGluc3RlYWQgb2YgYmxvY2tpbmcgbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMjg5CgoyMDE0LTAxLTAyIDExOjEzOjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiBSZW1vdmUgZHluIGxvY2sKCSAgSXQgd2FzIHVzZWQgZm9yIHBhZC1hbGxvYyBpbiAwLjEwIGJ1dCBjdXJyZW50bHkgaXMgY29tcGxldGVseSB1bnVzZWQKCSAgYW5kIG5vdCBuZWNlc3NhcnkuIEFsbCBwYWQgYWNjZXNzIGlzIHByb3RlY3RlZCBieSB0aGUgdGVlIG9iamVjdCBsb2NrCgkgIGFuZCBrZWVwaW5nIGFub3RoZXIgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHBhZC4KCjIwMTQtMDEtMDIgMTE6MDk6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEtlZXAgYW5vdGhlciByZWYgdG8gb3VyIG9uZSBhbmQgb25seSBzcmNwYWQgYXJvdW5kIHdoaWxlIHB1c2hpbmcKCSAgQSBwYWQgcHJvYmUgb24gdGhhdCBwYWQgbWlnaHQgb3RoZXJ3aXNlIGp1c3QgcmVsZWFzZSB0aGUgcGFkLCBkcm9wCgkgIHRoZSBsYXN0IHJlZmVyZW5jZSBhbmQgY2F1c2UgZ3JlYXQgbWlzZXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzAwCgoyMDEzLTEyLTMwIDE5OjAzOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEtlZXAgYW4gZXh0cmEgcmVmIG9mIHRoZSBwYWQgd2hlbiBjYWxsaW5nIGFuIElETEUgcHJvYmUgaW1tZWRpYXRlbHkKCSAgVGhlIGNhbGxiYWNrIG1pZ2h0IGRlc3Ryb3kgdGhlIHBhZC4KCjIwMTMtMTItMzAgMTg6NDQ6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBjYWxsIElETEUgcHJvYmVzIGlmIHdlIGFyZSBhY3R1YWxseSBpZGxlCgkgIEFsc28gb25seSBjaGVjayB0aGUgZGF0YSB0eXBlcyBmb3Igbm9uLUlETEUgcHJvYmVzLiBXaGVuIHdlCgkgIGFyZSBpZGxlLCB3ZSBoYXZlIG5vIGRhdGEgdHlwZSBvYnZpb3VzbHkuCgkgIFByZXZpb3VzbHkgd2Ugd2VyZSBjYWxsaW5nIElETEUgcHJvYmVzIGR1cmluZyBkYXRhIGZsb3cgd2hlbmV2ZXIKCSAgYSBub24tYmxvY2tpbmcgcHJvYmUgd291bGQgYmUgY2FsbGVkLiBUaGUgcGFkIHdhcyB1c3VhbGx5IG5vdCBpZGxlCgkgIGF0IHRoYXQgdGltZS4KCjIwMTMtMTItMzAgMTY6MTA6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogcmVtb3ZlIHVubmVjZXNzYXJ5IE5VTEwgY2hlY2sKCSAgRXJyb3IgaXMgbmV2ZXIgTlVMTCB3aGVuIHdlIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTEKCjIwMTMtMTItMzAgMTY6MDU6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIFJldmVydCAibmV0dGltZXByb3ZpZGVyOiBSZW1vdmUgZGVhZCBjb2RlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk2NDljZDRjYTE5YTc1ZDAzMTkxMTdhNzdhNzYwOWU0YjhjOTY1MzMuCgkgIFRoaXMgaXMgbm90IHJpZ2h0LCBhbmQgaXQncyBhbHNvIG5vdCB3aGF0IGNvdmVyaXR5CgkgIGlzIGNvbXBsYWluaW5nIGFib3V0LgoKMjAxMy0xMi0zMCAxNjo0NzozMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFJlbW92ZSB1bm5lZWRlZCBjaGVja3MKCSAgaXRlbSBpcyBndWFyYW50ZWVkIHRvIGJlIG5vbi1udWxsLgoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MgoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MwoKMjAxMy0xMi0zMCAxNjozNDowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBSZW1vdmUgZGVhZCBjb2RlCgkgIGVyciBpcyBhbHdheXMgTlVMTCBieSB0aGUgcG9pbnQgd2UgcmVhY2ggdGhpcyBsaW5lCgkgIENPVkVSSVRZIENJRCAxMDM3MTUxCgoyMDEzLTEyLTMwIDE0OjQ3OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogZml4IHNpbmNlIG1hcmtlciBhZ2FpbiAoMS4zIC0+IDEuNCkKCSAgU2luY2UgbWFya2VycyBzaG91bGQgcG9pbnQgdG8gdGhlIGFwcHJvcHJpYXRlIHN0YWJsZSB2ZXJzaW9uLgoKMjAxMy0xMi0zMCAxNDo0MDo0MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGZpeCBzaW5jZS1tYXJrZXIgaW4gZG9jcyAod2UncmUgaW4gMS4zLlgpCgoyMDEzLTEyLTMwIDE0OjIyOjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIGEgdGFnIGZvciBtaWRpIGJhc2Ugbm90ZSBudW1iZXJzCgkgIEF1ZGlvIGZpbGVzIGNvbnRhaW5pbmcgc2FtcGxlZCBpbnN0cnVtZW50cyBjYW4gaGF2ZSBtZXRhZGF0YSBkZXNjcmliaW5nIHRoZSBub3RlCgkgIHRoYXQgd2FzIHBsYXllZCBvbiB0aGUgaW5zdHJ1bWVudC4KCjIwMTMtMTItMzAgMTA6MDE6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgaWdub3JlIHByb2JlIGNhbGxiYWNrIHJldHVybiB2YWx1ZSB3aGVuIGltbWVkaWF0ZWx5IGNhbGxpbmcgSURMRSBwcm9iZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMDk2CgoyMDEzLTEyLTI5IDE0OjA2OjU1ICswMDAwICBQZWRybyBDw7RydGUtUmVhbCA8cGVkcm9AcGVkcm9jci5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IGdpdC11cGRhdGUuc2g6IGZpeCBmb3Igbm9uLW1hc3RlciBicmFuY2hlcwoJICBQdWxsIGZyb20gdHJhY2tpbmcgYnJhbmNoIGluc3RlYWQgb2Ygb3JpZ2luL21hc3Rlciwgc28KCSAgdGhhdCB0aGlzIHdvcmtzIHdpdGggZS5nLiAxLjIgYXMgd2VsbC4KCjIwMTMtMTItMjcgMTI6NTU6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBwYXJzZTogVXNlIEdMaWIgbWFsbG9jL2ZyZWUvcmVhbGxvYyBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDEwMAoKMjAxMy0xMi0yNiAxMjoxNjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXA6IHJlLXVzZSBleGlzdGluZyBtYXN0ZXIgYnJhbmNoIGlmIGl0IGV4aXN0cwoJICBXaGVuIGNyZWF0aW5nIHNlcGFyYXRlIGNoZWNrb3V0IGZvciBub24tbWFzdGVyIGJyYW5jaGVzLgoKMjAxMy0xMi0yNiAxMTozOToyNyArMDEwMCAgRXJpayBBbmRyZXNlbiA8ZXJpa0B2b250YWVuZS5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBkb2NzOiBmaXggbWVtb3J5IGxlYWsgb2YgYXBwc2luayBleGFtcGxlIGluIG1hbnVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMDc2CgoyMDEzLTEyLTIyIDIyOjMzOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkYmVkYWEwIHRvIGQ0OGJlZDMKCjIwMTMtMTItMjIgMjI6MDQ6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBzdHJpbmcgY2hhbmdlcwoKMjAxMy0xMi0yMiAyMTo1NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL01ha2V2YXJzOgoJICBwbzogc2V0IGdldHRleHQgZG9tYWluIGluIE1ha2V2YXJzIHNvIHdlIGRvbid0IGhhdmUgdG8gcGF0Y2ggdGhlIGdlbmVyYXRlZCBNYWtlZmlsZS5pbi5pbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NDU1CgoyMDEzLTEyLTIwIDE0OjQxOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQWRkIHJvdW5kIGRvd24gMTI4IG1hY3JvIGZvciBjb21wbGV0ZW5lc3MKCjIwMTMtMTEtMTMgMTc6MDY6MjMgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQWRkIHJvdW5kIHVwIDEyOCBtYWNybwoKMjAxMy0xMi0yMCAxNDozMDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogU2V0dGluZyB0aGUgUFJPWFlfQ0FQUyBmbGFnIG9uIHRoZSBzcmNwYWQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlCgkgIGZ1bm5lbCBvdXRwdXRzIHdoYXRldmVyIG9uZSBvZiB0aGUgdXBzdHJlYW1zIGN1cnJlbnRseSBvdXRwdXRzLCBhIGNhcHMKCSAgcXVlcnkgdG8gYSByYW5kb20gdXBzdHJlYW0gZG9lcyBub3QgZ2l2ZSB0aGUgcmlnaHQgYW5zd2VyIGhlcmUuCgoyMDEzLTEyLTIwIDExOjM3OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBQcm94eSBDQVBTIGFuZCBBTExPQ0FUSU9OIHF1ZXJpZXMKCjIwMTMtMTEtMTggMTA6NDY6MDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHBvc3QgMTAwJSBidWZmZXJpbmcgaWYgc2luZ2xlIHF1ZXVlIGlzIG5vdCBsaW5rZWQKCSAgVGhpcyBtYWtlcyBidWZmZXJpbmcgc3RvcCBpbiBjYXNlIGEgc3RyZWFtIHN3aXRjaCBoYXBwZW5zLiBUaGlzIGlzCgkgIGltcG9ydGFudCBmb3IgYWRhcHRpdmUgc3RyZWFtcyB0aGF0IGNhbiBkaXNhYmxlIG5vdC1saW5rZWQgc3RyZWFtcwoJICB0byBhdm9pZCBjb25zdW1pbmcgdGhlIG5ldHdvcmsgYmFuZHdpZHRoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5NTc1CgoyMDEzLTEyLTE4IDA1OjE5OjQ2IC0wNTAwICBXaWxsaWFtIEpvbiBNY0Nhbm4gPHdpbGxpYW0uam9uLm1jY2FubkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IGZpeCBwcm9qZWN0IGxpbmtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjA2NjUKCjIwMTMtMTItMTAgMTU6NTM6NTQgKzAxMDAgIERhdmlkIFN2ZW5zc29uIEZvcnMgPGRhdmlkc2ZAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdXNlIHNlZ21lbnQgc3RhcnQgaWYgRFRTIGZvciBmaXJzdCBidWZmZXIgaXMgdW5zZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDE5OQoKMjAxMy0xMi0xMiAxNzoxNzo0MCArMDAwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3RyZWFtZXItdmFhcGkgcGF0aHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDMzNwoKMjAxMy0xMi0xNCAyMToyMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLW5vaW5saW5lLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci1ub2lubGluZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXItbm9pbmxpbmUuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGJpdHJlYWRlciwgYnl0ZXJlYWRlciBhbmQgYnl0ZXdyaXRlciB3aXRoIG5vIGlubGluaW5nIHVzZWQKCjIwMTMtMTItMTQgMTg6Mzg6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2YXJpYW50IG9mIGdzdF9ieXRlX3JlYWRlcl9pbml0KCkKCjIwMTMtMTItMTQgMTg6MzE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgZG9jczogZml4IGRvY3MgZm9yIGdzdF9xdWV1ZV9hcnJheV9wZWVrX2hlYWQoKQoKMjAxMy0xMi0xNCAxOTowODozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBEb24ndCBkZWZpbmUgeXlzY2FuX3QgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDMxNgoKMjAxMy0xMi0xMyAyMjo1MTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBtb3ZpbmcgcGx1Z2luczogbWlub3IgMC4xMCAtPiAxLjAgZml4CgkgIFNwb3R0ZWQgYnkgSmF5IEZlbmxhc29uCgoyMDEzLTEyLTExIDE0OjQyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWU6IGRvbid0IGlnbm9yZSBldmVudCByZXR1cm4gdmFsdWUKCSAgUGFzcyB0aGUgZXZlbnQgcmV0dXJuIHZhbHVlIHVwc3RyZWFtLgoJICBSZW1vdmUgc3RyYW5nZSBnb3RvIGNvbnN0cnVjdC4KCjIwMTMtMTItMTAgMTg6MzA6MDMgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBIYW5kbGUgdGFnbGlzdCBjb3B5IGZhaWx1cmUKCSAgSWYgd2UgY291bGRuJ3QgY29weSB0aGUgdGFncywganVzdCByZXR1cm4gaW5zdGVhZCBvZiB0cnlpbmcgdG8gdXNlIGJvZ3VzCgkgIHZhbHVlcy4KCjIwMTMtMTItMTAgMTg6MjU6MjIgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEluZGV4IGZlYXR1cmVzIGFyZSBubyBtb3JlCgkgIFNvIHJlbW92ZSBjb2RlIHRoYXQgd2lsbCBuZXZlciBiZSB1c2VkCgoyMDEzLTEyLTEwIDE3OjUzOjI0IC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEZpeCBjb21wYXJpc2lvbiBvZiBkb3VibGUgcmFuZ2UKCSAgQ2hlY2tpbmcgdHdpY2UgdGhlIGxvd2VyIGJvdW5kIGlzIGdyZWF0ICh5b3UgbmV2ZXIga25vdywgaXQgbWlnaHQgY2hhbmdlCgkgIGJldHdlZW4gdGhlIHR3byBjYWxscyBieSBzb21lb25lIHVzaW5nIGVtYWNzIGJ1dHRlcmZseS1tb2RlKSwgYnV0IGl0J3MgYSBiaXQKCSAgbW9yZSB1c2VmdWwgdG8gY2hlY2sgdGhlIGhpZ2hlciBib3VuZCBhcmUgYWxzbyBpZGVudGljYWwuCgkgIERldGVjdGVkIGJ5IENvdmVyaXR5CgoyMDEzLTEyLTEwIDE3OjA5OjA3IC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogRml4IG91dC1vZi1ib3VuZHMgZGV0ZWN0aW9uCgkgIFdlIHdhbnQgdG8gYWJvcnQgaWYgd2UgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0gKk9SKiBsb3dlciB0aGFuIHRoZSBtaW5pbXVtCgkgIGFjY2VwdGVkIHZhbHVlLgoJICBEZXRlY3RlZCBieSBDb3Zlcml0eS4KCjIwMTMtMTItMDcgMTk6MDQ6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgcmVnaXN0ZXJpbmcgdGhlIHNhbWUgY2F0ZWdvcnkgdHdpY2UKCjIwMTMtMTItMDcgMTk6MzI6NTggKzAxMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmV0dXJuIGV4aXN0aW5nIGNhdGVnb3J5IGlmIGEgZGVidWcgY2F0ZWdvcnkgaXMgcmVnaXN0ZXJlZCB0d2ljZQoJICBJZiBhIGNhdGVnb3J5IHdpdGggdGhlIHNhbWUgbmFtZSBpcyBmb3VuZCB3aGVuIGNyZWF0aW5nIGEgbmV3CgkgIG9uZSwgdGhlIGZvdW5kIGNhdGVnb3J5IGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gaW52YWxpZCBwb2ludGVyLgoJICBGaXhlcyBpc3N1ZSB3aXRoIGdzdC12YWFwaSAod2hpY2ggdXNlcyBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoZQoJICBjb2RlYyBwYXJzZXJzKSBjYXVzZWQgYnkgY29tbWl0IGNjYmE5MTMwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMDM2CgoyMDEzLTEyLTA3IDE1OjM4OjE5ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL291dGxpbmUudHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBkb2NzOiBGaXggdHlwb3MgaW4gZnVuY3Rpb24vb2JqZWN0IGRlc2NyaXB0aW9ucwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMDI5CgoyMDEzLTEyLTA3IDE1OjQwOjMyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBGaXggc29tZSB0eXBvcyBpbiBjb2RlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBtZXNzYWdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMDI5CgoyMDEzLTEyLTA2IDIwOjUwOjE5ICswMDAwICBTdGV3YXJ0IEJyb2RpZSA8c3Rld2FydEBlaC5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGNsYXJpZnkgZW5jb2Rpbmcgb2Ygc3RyaW5ncyBpbiBHc3RTdHJ1Y3R1cmVzIGFuZCB0YWdsaXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjYyCgoyMDEzLTA3LTAyIDIwOjI3OjU5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNldCBmb3JtYXQgdG8gVElNRSBpZiBkby10aW1lc3RhbXAgaXMgVFJVRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyODQyCgoyMDEzLTEyLTA1IDAwOjI2OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZG9uJ3QgdHJ5IHRvIHJlbW92ZSBhbHJlYWR5LXJlbW92ZWQgR1NvdXJjZSBmcm9tIG1haW4gbG9vcAoJICBJdCdzIGNvbnNpZGVyZWQgYSBwcm9ncmFtbWluZyBlcnJvciBpbiByZWNlbnQgR0xpYiB2ZXJzaW9ucyBub3cuCgkgIFdlIG1heSBhbHJlYWR5IGhhdmUgcmVtb3ZlZCB0aGUgc291cmNlIGJ5IHJldHVybmluZyBGQUxTRSBmcm9tCgkgIHRoZSBjYWxsYmFjayBpZiBpdCB3YXMgZmlyZWQuIEZpeGVzIHdhcm5pbmcgd2l0aCBuZXdlciBHTGlicwoJICB3aGVuIGludGVycnVwdGluZyBhIHBpcGVsaW5lIHdpdGggQ29udHJvbC1DLgoKMjAxMy0xMi0wNCAxNzozNToxOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IE1ha2Ugc3VyZSB0aGUgc2FtZSBjYXRlZ29yeSBpcyBub3QgYWRkZWQgdHdpY2UKCjIwMTMtMTItMDQgMTc6MzU6MDIgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBQcm90ZWN0IF9fY2F0ZWdvcmllcyBsaXN0IGluIGdldF9jYXRlZ29yeSB3aXRoIGxvY2sgdG9vCgoyMDEzLTEyLTA0IDAwOjEwOjM2ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogYWRkIG1pc3NpbmcgZmlsZXMgZm9yIGRpc3RyaWJ1dGlvbgoJICAqIGFkZCBzb21lIGRvY3VtZW50YXRpb24gZmlsZXMgaW4gZG9jcy9kZXNpZ24KCSAgKiBhZGQgZG9jcy9saXN0LXVsaW5rLnhzbCBzbyBjaGVjayBpbiBkb2NzL21hbnVhbCB3b3JrcwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5ODE0CgoyMDEzLTEyLTAzIDIxOjQ2OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBBQ0NFUFRfSU5URVJDRVBUIGZsYWcKCSAgTWFrZSBhIG5ldyBmbGFnIG9uIHRoZSBwYWQgdGhhdCB0d2Vha3MgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZQoJICBhY2NlcHQtY2FwcyBmdW5jdGlvbi4gQnkgZGVmYXVsdCBpdCB3aWxsIGNoZWNrIGZvciBhIHN1YnNldCBvZiB0aGUKCSAgcXVlcnktY2FwcyByZXN1bHQgYnV0IHRoaXMgaXMgbm90IGFsd2F5cyBkZXNpcmFibGUuIFRoZSBxdWVyeS1jYXBzCgkgIHJlc3VsdCBjb250YWlucyBhbGwgdGhlIGNvbnN0cmFpbnRzIHRvIG1ha2UgYSBnb29kIGNhcHMgZGVjaXNpb24KCSAgdXBzdHJlYW0gYnV0IHNvbWV0aW1lcywgbGlrZSBmb3IgcGFyc2Vycywgbm90IGFsbCB0aGUgY29uc3RyYWluZWQgY2FwcwoJICBmaWVsZHMgYXJlIGtub3duIHVwc3RyZWFtIGFuZCB0aGVuIGEgc3Vic2V0IGNoZWNrIHdvdWxkIGZhaWwuIFN3aXRjaGluZwoJICB0byBhbiBpbnRlcnNlY3Rpb24gbWFrZXMgdGhpcyB3b3JrIGFnYWluLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTAyNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NDAxCgoyMDEzLTEyLTAyIDIyOjIyOjM2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgb24gcmVjb25maWd1cmUgZXZlbnQKCSAgQWZ0ZXIgcGF0Y2ggYmRhNDA2YzQsIHRoZSBzdGF0ZSBvZiB0aGUgc2luZ2xlcXVldWUgd2FzIHNldCB0byBPSywgYnV0IG5vdGhpbmcKCSAgd291bGQgdGhlbiB3YWtlIHVwIHRoZSB0aHJlYWQsIGFzIHRoZSBvdGhlciB3YWtldXAgZnVuY3Rpb25zIG9ubHkgbG9vayBhdAoJICBzaW5nbGVxdWV1ZXMgdGhhdCBhcmUgbWFya2VkIGFzIGhhdmluZyByZWNlaXZlZCBhcyBub3QtbGlua2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4MjAwCgoyMDEzLTExLTMwIDEyOjE1OjM3ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIGRvY3MsIGZpeGluZyBkb2MgZXJyb3JzCgkgICogYWRkIG1hbnkgbWlzc2luZyBkZWNsYXJhdGlvbnMgdG8gc2VjdGlvbnMKCSAgKiBHc3RDb250cm9sbGVyIGhhcyBiZWVuIHJlbW92ZWQsIHVwZGF0ZSBkb2NzCgkgICogc2tpcCBHc3RJbmRleCB3aGVuIGdlbmVyYXRpbmcgZG9jdW1lbnRhdGlvbgoJICAqIHJlcGhyYXNlIHNvIGd0a2RvYyBkb2Vzbid0IGltYWdpbmUgcmV0dXJuIHZhbHVlCgkgICogYWRkIG1pc3NpbmcgYXJndW1lbnQgZGVzY3JpcHRpb24gZm9yIGdzdF9jb250ZXh0X25ldygpCgkgICogZG9jdW1lbnQgR3N0T3V0cHV0U2VsZWN0b3JQYWROZWdvdGlhdGlvbk1vZGUgYW5kIG1vdmUgdG8gaGVhZGVyLWZpbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTYxNAoKMjAxMy0xMS0zMCAxNDo1Mjo0MCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBkb2NzOiBjb3NtZXRpYyBjaGFuZ2VzIGluIHJlZmVyZW5jZXMvZGVjcmlwdGlvbnMKCSAgKiBmaXggdHlwbyBHc3RCdWZmZXJGbGFnIC0+IEdzdEJ1ZmZlckZsYWdzCgkgICogZml4IHR5cG8gR3N0RmVhdHVyZXMgLT4gR3N0Q2Fwc0ZlYXR1cmVzCgkgICogZml4IHR5cG8gR3N0QWxsb2NhdG9yUGFyYW1zIC0+IEdzdEFsbG9jYXRpb25QYXJhbXMKCSAgKiBmaXggdHlwbyBHc3RDb250cmxTb3VyY2VzIC0+IEdzdENvbnRyb2xTb3VyY2UKCSAgKiBkbyBub3QgcmVmZXIgdG8gZ3N0Y2hlY2sgYXMgYW4gb2JqZWN0CgkgICogbWFrZSByZWZlcmVuY2VzIGd0a19pbml0KCkgYW5kIHRjYXNlX3NldF90aW1lb3V0KCkgbm90IGJlIHJlZmVyZW5jZXMKCSAgKiBnc3RfZWxlbWVudF9nZXRfcGFkKCkgcmVuYW1lZCBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCgpCgkgICogZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCgpIHJlbmFtZWQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKQoJICAqIF9kcm9wX2VsZW1lbnQoKSBpcyByZWFsbHkgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgICogZ3N0X3BhZF9hY2NlcHRfY2FwcygpIHdhcyByZW1vdmVkLCBkbyBub3QgcmVmZXIgdG8gaXQKCSAgKiBzZXBhcmF0ZSBHU1RfTUVUQV9UQUdfTUVNT1JZX1NUUiBkZWNsYXJhdGlvbiBmcm9tIGRlc2NyaXB0aW9uCgkgICogZG8gbm90IGRlc2NyaWJlIHJlbW92ZWQgZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0KCkKCSAgKiBjb3JyZWN0bHkgbGluayB0byBHc3RFbGVtZW50Q2xhc3MnIHZpcnR1YWwgc2V0X2NvbnRleHQoKQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5NjE0CgoyMDEzLTExLTI5IDE0OjAwOjM1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBwYXJzZTogTWFudWFsbHkgaW5zZXJ0IHByaXZfZ3N0X3BhcnNlX3l5Z2V0L3NldF9jb2x1bW4gcHJvdG90eXBlcyBmb3Igb2xkZXIgZmxleAoJICBPbGRlciB2ZXJzaW9ucyBvZiBmbGV4IChiZWZvcmUgMi41LjM2KSBkb24ndCBhZGQgdGhlIHByb3RvdHlwZSwgc28gaXQgbXVzdAoJICBiZSBhZGRlZCBtYW51YWxseS4gV2UgY2FuJ3QgY2hlY2sgYnkgdGhlIHZlcnNpb24gbnVtYmVyLCBiZWNhdXNlIERlYmlhbi9VYnVudHUKCSAgcGF0Y2hlZCBpdCBpbnRvIHRoZWlyIDIuNS4zNSBhdCBzb21lIHBvaW50LgoKMjAxMy0xMS0xOSAxMTo0MTo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0cGFkOiBkcm9wIGFzc2VydGlvbiBvbiBnc3RfcGFkX3BlZXJfcXVlcnlfcG9zaXRpb24KCSAgSXQgaXMgYSAnYm90aCcgcXVlcnksIHNvIGl0IGNhbiBiZSBzZW50IGJvdGggd2F5cwoKMjAxMy0xMS0xOCAxODoxMTo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogaGFuZGxlIGdhcCBldmVudHMKCSAgVXNlIGdhcCBldmVudHMgdG8gYWR2YW5jZSB0aGUgc2VsZWN0b3IncyBwYWQgcG9zaXRpb24uCgkgIFRoaXMgaXMgcmVsZXZhbnQgdG8ga2VlcCBzeW5jX3N0cmVhbXMgbW9kZSB3b3JraW5nIHdoZW4gb25lIG9mIHRoZQoJICBzdHJlYW1zIGRvZXNuJ3QgaGF2ZSBkYXRhIGFsbCB0aGUgdGltZS4KCjIwMTMtMTEtMjkgMTc6MDI6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFJldmVydCAiZ2hvc3RwYWQ6IGNvcHkgc3RpY2t5IGV2ZW50cyB0byBTUkMgZ2hvc3RwYWRzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgxNjJhNTgzYTRkZDY4NTgyYmYxODZlMmU0N2E4ZjBkNjhmYTE5ODAuCgkgIEF1dG9tYXRpY2FsbHkgY29weWluZyB0aGUgc3RpY2t5IGV2ZW50cyBtYWtlcyBpdCBpbXBvc3NpYmxlIGZvciBhcHBzCgkgIGFuZCBlbGVtZW50cyB0byBmaWx0ZXIgdGhlIGV2ZW50cyB3aXRoIGV2ZW50IHByb2Jlcy4gVGhpcyBjYXVzZXMKCSAgcmVncmVzc2lvbnMgKFNlZSAjNzE5NDM3KS4gVGhlIGJlc3Qgb3B0aW9uIGlzIHRvIGxldCB0aGUgYXBwL2VsZW1lbnQKCSAgY29weSBhbmQgZmlsdGVyIHRoZSBldmVudHMgdGhlbXNlbHZlcyBhZnRlciB0aGUgZ2hvc3RwYWQgdGFyZ2V0IGlzCgkgIHNldC4KCjIwMTMtMTEtMTkgMTU6MDM6MzUgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggc2VnZmF1bHRpbmcgcHJvdG90eXBlLW1pc21hdGNoCgkgIE5vdyBZWURFQlVHIGlzIGFsd2F5cyBzZXQsIHNvIGNoZWNrIGl0J3MgdmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjY3OQoKMjAxMy0xMS0yNyAxODozMjoyMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEZpeCBkb2NzdHJpbmcgZm9yIHJvdW5kLXRyaXAtbGltaXQgYW5kIHVuaW5pdCBhY2Nlc3Mgd2FybmluZy4KCSAgRml4IGEgdHlwbyBpbiBhIGRvYyBzdHJpbmcgLSB0aGUgcHJvcGVydHkgaXMgcm91bmQtdHJpcC1saW1pdCwgbm90CgkgIHJvdW5kdHJpcC1saW1pdC4KCSAgUmVtb3ZlIGEgYm9ndXMgR1NUX1dBUk5JTkcgdGhhdCBjYW4gcHJpbnQgYW4gdW5pbml0aWFsaXNlZCB2YXJpYWJsZQoJICBhbmQgaXMgcmVkdW5kYW50IGFueXdheS4KCjIwMTMtMTEtMjYgMTE6NTY6NDYgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogQWRkIHJvdW5kLXRyaXAtbGltaXQgcGFyYW1ldGVyCgkgIFNvbWV0aW1lcywgcGFja2V0cyBtaWdodCB0YWtlIGEgdmVyeSBsb25nIHRpbWUgdG8gcmV0dXJuLiBTdWNoIHBhY2tldHMKCSAgdXN1YWxseSBhcmUgd2F5IHRvbyBsYXRlIGFuZCBkZXN0YWJpbGl6ZSB0aGUgcmVncmVzc2lvbiB3aXRoIHRoZWlyCgkgIG9ic29sZXRlIGRhdGEuIE9uIFdpLUZpLCByb3VuZC10cmlwcyBvZiBvdmVyIDcgc2Vjb25kcyBoYXZlIGJlZW4gb2JzZXJ2ZWQuCgkgIElmIHRoZSBsaW1pdCBpcyBzZXQgdG8gYSBub256ZXJvIHZhbHVlLCBwYWNrZXRzIHdpdGggYSByb3VuZC10cmlwIHBlcmlvZAoJICBsYXJnZXIgdGhhbiB0aGUgbGltaXQgYXJlIGlnbm9yZWQuCgkgIFNpZ25lZC1vZmYtYnk6IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjM4NQoKMjAxMy0xMS0yNSAxOTowNDozOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogRml4IGdpIGFubm90YXRpb25zIG9mIGdzdF9zdHJ1Y3R1cmVfbmV3X2N1c3RvbSgpCgoyMDEzLTExLTI2IDAyOjQzOjU0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRml4IEM5OSBjb21tZW50CgoyMDEzLTExLTI2IDAyOjE3OjM2ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogSW1wbGVtZW50IHJvbGxpbmctYXZlcmFnZSBmaWx0ZXIgb24gb2JzZXJ2YXRpb25zLgoJICBLZWVwIGEgcm9sbGluZyBhdmVyYWdlIG9mIHRoZSByb3VuZCB0cmlwIHRpbWUgZm9yIG5ldHdvcmsgY2xvY2sKCSAgb2JzZXJ2YXRpb25zLCBmYXZvdXJpbmcgc2hvcnRlciByb3VuZCB0cmlwcyBhcyBiZWluZyBtb3JlIGFjY3VyYXRlLgoJICBEb24ndCBwYXNzIGFueSBjbG9jayBvYnNlcnZhdGlvbiB0byB0aGUgY2xvY2sgc2xhdmluZyBpZiBpdCBoYXMgYQoJICByb3VuZC10cmlwIHRpbWUgZ3JlYXRlciB0aGFuIDIgdGltZXMgdGhlIGF2ZXJhZ2UuCgkgIEFjdHVhbCBzaGlmdHMgaW4gdGhlIG5ldHdvcmsgdG9wb2xvZ3kgd2lsbCBiZSBub3RpY2VkIGFmdGVyIHNvbWUKCSAgdGltZSwgYXMgdGhlIHJvbGxpbmcgYXZlcmFnZSBpbmNvcnBvcmF0ZXMgdGhlIG5ldyByb3VuZCB0cmlwIHRpbWVzLgoKMjAxMy0xMS0yNSAyMDozMzo0MiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBZGQgZGVidWcgaW50byBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfcXVlcnkoKSBmb3IgYWNjZXB0X2NhcHMKCjIwMTMtMTEtMTQgMTU6MzI6NTkgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGV4aXQgd2l0aCBhbiBlcnJvciBjb2RlIHdoZW4gYW4gZXJyb3Igb2NjdXJlZAoJICBJZiB0aGUgcGlwZWxpbmUgZmFpbGVkIHRvIHByZS1yb2xsIG9yIHRoZSB1c2VyIGludGVycnVwdGVkIHRoZQoJICBleGVjdXRpb24gdGhlbiBzZXQgdGhlIGV4aXQgY29kZSB0byBhIHBvc2l0aXZlIHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMzAwCgoyMDEzLTExLTIyIDAxOjM1OjE4ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEVzY2FwZSBzdHJlYW0gaWQgZm9ybWF0IGluIGNvbW1lbnRzCgkgIFRoZXNlIG11c3QgYmUgZXNjYXBlZCBmb3IgZ3RrLWRvYyB0byBwYXJzZSB0aGUgY29tbWVudHMgd2l0aG91dCB3YXJuaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDk4OQoKMjAxMy0xMS0yMSAxNTowNDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3Q6IGdfbWVtbW92ZSgpIGlzIGRlcHJlY2F0ZWQKCSAgSnVzdCB1c2UgcGxhaW4gbWVtbW92ZSgpLCBnX21lbW1vdmUoKSBpcyBkZXByZWNhdGVkIGluCgkgIHJlY2VudCBHTGliIHZlcnNpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyODExCgoyMDEzLTExLTIxIDE0OjEzOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogY29weSBzdGlja3kgZXZlbnRzIHRvIFNSQyBnaG9zdHBhZHMKCSAgVXBkYXRlIHRoZSBzdGlja3kgZXZlbnRzIG9uIFNSQyBnaG9zdHBhZHMgd2hlbiByZXRhcmdldGluZy4gVGhpcyBlbnN1cmVzCgkgIHRoYXQgdGhlIGdob3N0cGFkIGhhcyB0aGUgZXhlY3Qgc2FtZSBzdGlja3kgZXZlbnRzIGFzIHRoZSB0YXJnZXQgcGFkLiBXZQoJICBkb24ndCB3YW50IHRvIGRvIHRoaXMgZm9yIFNJTksgZ2hvc3RwYWRzLCB0aGV5IGdvdCB0aGUgZXZlbnRzIGZyb20KCSAgZG93bnN0cmVhbSBhbmQgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgdGhlbSB3aXRoIHRoZSB0YXJnZXQgcGFkCgkgIGV2ZW50cy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzYyMQoKMjAxMy0xMS0yMSAxMjoyODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW92ZSBkZWJ1ZyBmdW5jdGlvbiBjbG9zZXIgdG8gdGhlIGVudW0gaXQgZGVidWdzCgoyMDEzLTExLTE4IDIxOjM5OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGNoZWNrIHJlYWQvd3JpdGUgYmVmb3JlIGNsb3NlZAoJICBmaXJzdCB0cnkgdG8gcmVhZCBvciB3cml0ZSBvbiB0aGUgc29ja2V0IGJlZm9yZSBjaGVja2luZyB0aGUgY2xvc2VkIHN0YXRlLiBUaGlzCgkgIG1ha2VzIHN1cmUgd2UgaGFuZGxlIGFsbCBkYXRhIG9uIHRoZSBzb2NrZXQgYmVmb3JlIGVycm9yaW5nIG91dC4KCjIwMTMtMTEtMTggMjE6Mzc6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbXByb3ZlIGRlYnVnCgkgIFNvIHRoYXQgd2UgY2FuIHNlZSB0aGUgcmV0dXJuIHZhbHVlcyBvZiBmdW5jdGlvbnMgaW4gdGhlIGxvZy4KCjIwMTMtMTEtMTggMTU6Mjg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBmaXggR3N0QnVzIHVuaXQgdGVzdCB3aXRoIGxhdGVzdCBHTGliCgkgIGdfc291cmNlX3JlbW92ZSgpIHdvcmtzIG9uIHRoZSBkZWZhdWx0IG1haW4gY29udGV4dCwgYW5kCgkgIHdlJ3JlIGRvaW5nIHRoaW5ncyB3aXRoIGEgY3VzdG9tIGNvbnRleHQuIEZpeGVzIHdhcm5pbmcKCSAgd2l0aCBuZXdlciBHTGliIHZlcnNpb25zLgoKMjAxMy0xMS0xNiAxMjoyNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIGRvY3M6IGNvc21ldGljIHNpbmNlIG1hcmtlciBmaXhlcwoKMjAxMy0xMS0xNiAxNToxNzo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbnN1cmUgdG8gcHJlc2VydmUgdXBzdHJlYW0gdGltZXN0YW1wcwoJICAuLi4gcmF0aGVyIHRoYW4gaGF2ZSBzdWJjbGFzcyBjb21pbmcgdXAgd2l0aCBhbiBpbnRlcm5hbGx5IHBhcnNlZCBvbmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcyMzAKCjIwMTMtMTEtMTUgMDc6MzI6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogUmVzeW5jIGl0ZXJhdG9yIGlmIG5lY2Vzc2FyeQoKMjAxMy0xMS0xMyAxOTo1NTo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB2YWx1ZTogTGlzdHMgd2l0aCBhbGwgZXF1YWwgZWxlbWVudHMgYXJlIGVxdWFsIHRvIGEgc2luZ2xlIHZhbHVlCgkgIE90aGVyd2lzZSBjYXBzIGNvbnRhaW5pbmcgZj17WCwgWH0gYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggZj1YCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNTMKCjIwMTMtMTEtMTEgMTY6NDc6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgQVBJCgoyMDEzLTExLTExIDE3OjI5OjQ4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogUmVhbGx5IHVwZGF0ZSB0aGUgZGVmIGZpbGVzCgoyMDEzLTExLTExIDE3OjAyOjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWYgZmlsZXMKCjIwMTMtMTEtMTEgMTY6NTA6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBbHNvIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEggZm9yIGdzdC1wbHVnaW5zLWdsCgoyMDEzLTExLTA1IDEyOjIyOjUxICswMDAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogZXhwb3J0IGdzdC1wbHVnaW5zLWdsIERZTERfTElCUkFSWV9QQVRICgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE0ODgKCjIwMTMtMTEtMDYgMTg6NDY6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBBbHdheXMgc2VuZCBTRUVLIGV2ZW50cyB0byBhbGwgcGFkcywgZXZlbiBpZiBvbmUgZmFpbHMKCjIwMTMtMTEtMDYgMTg6NDE6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciBmbHVzaGluZyBzZWVrIGhhbmRsaW5nCgoyMDEzLTExLTA2IDE4OjA1OjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgbGVhayBzZWVrIGV2ZW50cwoKMjAxMy0wOS0xNiAwOTo1NTo1OCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGltcGxlbWVudCBmbHVzaGluZyBzZWVrIHN1cHBvcnQKCSAgSW1wbGVtZW50IGNvbW1vbiBmbHVzaGluZyBzZWVrIGxvZ2ljIGluIEdzdENvbGxlY3RQYWRzLiBBZGQgbmV3CgkgIEFQSSBzbyB0aGF0IGVsZW1lbnRzIGNhbiBvcHQtaW4gdG8gdXNpbmcgdGhlIG5ldyBsb2dpYwoJICAoZ3N0X2NvbGxlY3RfcGFkc19zcmNfZXZlbnRfZGVmYXVsdCkgYW5kIGNhbiBleHRlbmQgaXQKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoX2Z1bmN0aW9uKSB0byBmbHVzaCBhbnkgaW50ZXJuYWwKCSAgc3RhdGUuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2Nzc5IGFuZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDQxIGZvciB0aGUKCSAgYmFja2dyb3VuZCBkaXNjdXNzaW9uLgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoX2Z1bmN0aW9uKCkKCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NyY19ldmVudF9kZWZhdWx0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0wOS0xNiAwODozNTozNyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBjb2xsZWN0cGFkczogYWRkIGZsdXNoaW5nIHNlZWsgdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0wOS0xNiAwODozMTo0NyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBjb2xsZWN0cGFkczogdHdlYWsgc3R1YiBfY29sbGVjdCB0byBwdXNoIGFsbCBidWZmZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMDktMTYgMDg6MjY6MjUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IHVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMTEtMTEgMTM6Mjc6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgdXNlIGdzdF9idWZmZXJfZ2V0X3NpemUoKSB3aGVuIHBvc3NpYmxlCgkgIE1ha2VzIHFzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSAyMCUgZmFzdGVyCgoyMDEzLTExLTExIDEyOjI1OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN5c3RlbWNsb2NrOiBBZGQgZ3N0X3N5c3RlbV9jbG9ja19zZXRfZGVmYXVsdAoJICBVc2VkIGZvciBzZXR0aW5nIHRoZSBkZWZhdWx0IHN5c3RlbSBjbG9jayB0aGF0IGlzIG9idGFpbmVkIHRocm91Z2gKCSAgZ3N0X3N5c3RlbV9jbG9ja19vYnRhaW4oKSwgd2hpY2ggaXMgc29tZXRpbWVzIG5lZWRlZCBmb3IgdW5pdAoJICB0ZXN0aW5nLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMjY5CgoyMDEzLTExLTA0IDE4OjU3OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIHR5cGVmaW5kOiB1c2UgZ19nZXRfcHJnbmFtZSgpIGZvciBlcnJvciBtZXNzYWdlCgoyMDEzLTExLTA2IDEwOjE1OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogcHJveHkgY2FwcyBhbmQgYWxsb2NhdGlvbgoJICBQcm94eSB0aGUgY2FwcyBxdWVyaWVzIG9uIHRoZSBzcmNwYWQgYXMgd2VsbC4KCSAgUHJveHkgdGhlIGFsbG9jYXRpb24gcXVlcnkgb24gdGhlIHNpbmtwYWQuCgoyMDEzLTExLTA1IDExOjE3OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4NjVhYTIwIHRvIGRiZWRhYTAKCjIwMTMtMTEtMDQgMTM6NTY6MzcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogUmVtb3ZlIHNvbWUgZGVhZCBjb2RlCgoyMDEzLTExLTA0IDExOjQ4OjQ3ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBleHBsaWNpdGx5IGNhc3QgdG8gR3N0TG9ja0ZsYWdzIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEzLTExLTAyIDE1OjM2OjE5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiByZXN1cnJlY3Qgc2FuaXRpemluZyBzdGFydCBhbmQgc3RvcCBmb3Igc2Vla2luZwoKMjAxMy0xMS0wMiAxNTo0MjowNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1pbmQgYm9nZ2xpbmcgd3JhcCB3aGVuIGNvbXBhcmluZyBvZmZzZXRzCgoyMDEzLTExLTAyIDE1OjM4OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHRyeSBmaXJzdCBmcmFtZSBwdHMgYW5kIGR0cyBmb3IgYSB2YWxpZCBzdGFydCB0aW1lc3RhbXAKCjIwMTMtMTEtMDIgMTU6Mzc6MzAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJpbnQgcHJvcGVyIHZhcmlhYmxlIGluIGRlYnVnIHN0YXRlbWVudAoKMjAxMy0xMS0wMSAxNjozNTo1OSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBNYWtlIHRoZSBGQVRBTF9FUlJPUlMgZmxhZyBhbHNvIHdvcmsgd2l0aG91dCBhIEdFcnJvcgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdHMKCjIwMTMtMTAtMjMgMTU6NTY6MjAgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGZpeCBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA3NTgKCjIwMTMtMTAtMzEgMTY6MTY6NDggLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkgIGRvY3M6IGZpeCBjb21tb24gdHlwb3MgZW1pdGVkL2VhY2hvdGhlci8uLi4KCjIwMTMtMTAtMzAgMjE6NTM6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBZGQgc29tZSBhdHRyaWJ1dGVzIGFuZCByZW9yZ2FuaXplIGNvZGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIGdzdHV0aWxzLmM6MzY1OTo0MTogZXJyb3I6IGZvcm1hdCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIGxpdGVyYWwKCSAgWy1XZXJyb3IsLVdmb3JtYXQtbm9ubGl0ZXJhbF0KCSAgZ2NoYXIgKmV4cGFuZGVkID0gZ19zdHJkdXBfdnByaW50ZiAoc3RyZWFtX2lkLCB2YXJfYXJncyk7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA2MjEKCjIwMTMtMTAtMjUgMTQ6NTY6MTYgKzAyMDAgIEFudG9uaW8gT3NwaXRlIDxvc3BpdGVAc3R1ZGVudGkudW5pbmEuaXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogcmVuYW1lIHRoZSAic2FtcGxlcmF0ZSIgdmFyaWFibGUgdG8gbWFrZSBleGFtcGxlIGNvZGUgY29tcGlsYWJsZQoJICBJbiBvbmUgb2YgdGhlIGV4YW1wbGVzIGFib3V0IGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpIHRoZXJlIGlzIGEgdmFyaWFibGUKCSAgZGVjbGFyZWQgYXMgInJhdGUiLCBidXQgdGhlbiB0aGUgbmFtZSAic2FtcGxlcmF0ZSIgaXMgdXNlZCB3aGVuIHNldHRpbmcKCSAgdGhlIGNhcHMuCgkgIFVzZSB0aGUgbmFtZSAicmF0ZSIgZXZlcnl3aGVyZSBpbiBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDg3NgoKMjAxMy0xMC0yOSAxODowOTozMiArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgZG9jOiBmaXggZm9yd2FyZCByZWZlcmVuY2UgYWJvdXQgZ2hvc3QgcGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMDg5CgoyMDEzLTEwLTI4IDEyOjU1OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgZG9jczogZGVzaWduOiBmaXggc29tZSBmaXhlcwoKMjAxMy0xMC0yNiAwOTo0ODowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0LXVuaW5zdGFsbGVkIGVudHJ5IGluIGZhcSBzb21lIG1vcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTkxNgoKMjAxMy0xMC0xNiAxNTowMDo0MSArMDIwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGRvY3M6IEZBUSB1cGRhdGUgdG8gbWVudGlvbiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTkxNgoKMjAxMy0xMC0yNSAyMToyOTowMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogc21hbGwgY2xlYW51cHMgYW5kIHVzZSBvYmplY3QgbG9nIHZhcmlhbnRzIG1vcmUKCjIwMTMtMTAtMjUgMjE6Mjg6MzAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgcHJpdmF0ZTogcmVtb3ZlIGxlZnQtb3ZlciBjb21tZW50CgkgIFRoZSBjYXBzIGFyZSBzYXZlZCBpbiB0aGUgcmVnaXN0cnkuCgoyMDEzLTEwLTI1IDE4OjUxOjUzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiB1c2UgZ19zbGljZV9mcmVlIGZvciBzbGljZSBtZW1vcnkKCSAgQXZvaWQgbWVtb3J5IGxpc3QgY29ycnVwdGlvbiwgYnV0IGdfZnJlZSdpbmcgc2xpY2UgbWVtb3J5LgoKMjAxMy0xMC0yMyAxODoxNjo1NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IGZsZXNoIG91dCB0aGUgdHJhY2luZyBkZXNpZ24gYSBsaXR0bGUgbW9yZQoKMjAxMy0xMC0yNSAxMTowMjoxOSAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZml4IHR5cG9zIGluIGdzdG9iamVjdAoKMjAxMy0xMC0yMSAxODowMToyMSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtbWV0YS50eHQKCjIwMTMtMTAtMTQgMjI6MDM6NTAgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1lbGVtZW50LXNvdXJjZS50eHQKCjIwMTMtMTAtMTQgMjE6NTQ6MzEgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtc2luay50eHQKCjIwMTMtMTAtMTQgMTg6NDM6NDAgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jb252ZW50aW9ucy50eHQKCjIwMTMtMTAtMTQgMTg6MzQ6MDYgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNvbnRyb2xsZXIudHh0CgoyMDEzLTEwLTE0IDE4OjI0OjE4IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jb250ZXh0LnR4dAoKMjAxMy0xMC0xNCAxODoxMzozNSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jbG9ja3MudHh0CgoyMDEzLTEwLTE0IDE4OjA1OjQzIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jYXBzLnR4dAoKMjAxMy0xMC0xNCAxNzo0NDoyNyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1idWZmZXIudHh0CgoyMDEzLTEwLTE0IDE3OjI5OjE5IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1idWZmZXJwb29sLnR4dAoKMjAxMy0xMC0xNCAwNTozOToxOSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1idWZmZXJpbmcudHh0CgoyMDEzLTEwLTEzIDIxOjE2OjQ3IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtbWVzc2FnZXMudHh0CgoyMDEzLTEwLTEzIDIwOjQyOjQwIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LW1lbW9yeS50eHQKCjIwMTMtMTAtMTggMDg6NTg6MDUgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwLndpdGhuYWxsQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgbmV0OiBDb25zdGlmeSBhIHBhcmFtZXRlciB0byBnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcoKQoJICBFdmVuIHRob3VnaCB0aGlzIHBhcmFtZXRlciBpcyBub3QgdXNlZCwgaXQgc2hvdWxkIGJlIGNvbnN0IHRvIGZpdCBpbiB3aXRoIHRoZQoJICBjb2Rpbmcgc3RhbmRhcmRzIGZvciBvdGhlciBzaW1pbGFyIHBhcmFtZXRlcnMuIENsaWVudCBjb2RlIGFscmVhZHkgcGFzc2VzIGluCgkgIGNvbnN0IHN0cmluZ3MgdW5kZXIgdGhlIGV4cGVjdGF0aW9uIHRoYXQgdGhleSB3b27igJl0IGJlIG1vZGlmaWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDQyCgoyMDEzLTEwLTE1IDExOjQ0OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IE1ha2Ugc3VyZSB0byBpbmNsdWRlIGdzdF9wcml2YXRlLmggYmVmb3JlIGdsaWItY29tcGF0LXByaXZhdGUuaAoJICBXZSBuZWVkIHRvIGRlZmluZSB0aGUgR0xpYiBsb2cgZG9tYWluIGJlZm9yZSBpbmNsdWRpbmcgZ2xpYi5oLCB3aGljaCBpcwoJICBpbmNsdWRlZCBieSBnbGliLWNvbXBhdC1wcml2YXRlLmguCgoyMDEzLTEwLTE0IDE4OjA3OjE3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQgdG8gc2VjdGlvbnMudHh0CgkgIFNvIGl0IGFwcGVhcnMgaW4gdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uCgoyMDEzLTA5LTI5IDE3OjM1OjExICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0cy9maWxlc3JjOiBTZXQgbG9jYXRpb24gaW4gd3Jvbmcgc3RhdGUKCSAgQWxzbyByZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQgYWJvdXQgY29kZSBwb3NzaWJseSBub3QgYmVpbmcgcmVhY2hhYmxlCgkgIHRoYXQgaXMgbm93IGV4ZXJjaXNlZCBieSB0aGUgZmlsZXNyYyB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4MzEKCjIwMTMtMTAtMTIgMTY6MTY6MDkgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBGaXggdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIHBhcnNlX2xhdW5jaCBmdW5jdGlvbnMuCgkgIGdzdF9wYXJzZV9sYXVuY2h2LCBnc3RfcGFyc2VfbGF1bmNodl9mdWxsIGFuZCBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwKCSAgYWxsIHJldHVybiBmbG9hdGluZyByZWZzLCB0aGUgc2FtZSBhcyBnc3RfcGFyc2VfbGF1bmNoLCB3aGljaCBqdXN0CgkgIGNhbGxzIGdzdF9wYXJzZV9sYXVuY2hfZnVsbCBpbnRlcm5hbGx5IGFueXdheS4KCSAgQWRkIGEgdW5pdCB0ZXN0IGFzc2VydGlvbiB0byBjaGVjayBpdCdzIHRydWUuCgkgIFNwb3R0ZWQgYnkgbmVtZXF1IG9uIElSQy4KCjIwMTMtMTAtMTAgMDg6MzA6MjcgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZ3N0L2dzdC5jOgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkgIGNvcmU6IEZpeCBtYXggREVCVUdfTEVWRUwgaW5jb25ncnVlbmNlIG9uIDUgdnMgOQoJICBJbiB0aGUgZG9jcyBhbmQgdGhlIGF1dG9jb21wbGV0aW9uIGxvZ2ljIHRoZSBtYXhpbXVtCgkgIHZhbHVlIGp1bXBlZCBpbmNvbmdydWVudGx5IGJldHdlZW4gNSBhbmQgOS4KCjIwMTMtMTAtMTAgMTM6MTk6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFNraXAgdGVzdF9zdWJzZXRfZHVwbGljYXRpb24gdW50aWwgdGhlIGJ1ZyBpcyBmaXhlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjUzCgoyMDEzLTEwLTEwIDEyOjU2OjU0ICswMjAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBkb2NzOiBGaXggc29tZSByZWZlcmVuY2UgVVJJcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODA0CgoyMDEzLTEwLTAyIDEzOjAzOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgYSB0ZXN0Y2FzZSBmb3Igc3Vic2V0IGNoZWNrcyBvbiBsaXN0cyB3aXRoIGR1cGxpY2F0ZWQgaXRlbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI1MwoKMjAxMy0xMC0wOSAxNTozNjo0OCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQ2FsbCB0aGUgY29sbGVjdGVkIGZ1bmN0aW9uIHdoaWxlIGl0IHJldHVybnMgRkxPV19PSwoJICBUaGlzIGFsbG93cyB1cyB0byBtYWtlIHN1cmUgdGhlIGVsZW1lbnRzIGlzIEVPUyBhbmQgZG9lcyBub3QgaGF2ZQoJICByZW1haW5pbmcgYnVmZmVycyB0byBiZSBkcmFpbmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5NjM3CgoyMDEzLTEwLTA1IDEwOjA4OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiBmaXggZnVuY3Rpb24gbmFtZSBpbiBxb3MgZGVzaWduIGRvY3MKCjIwMTMtMTAtMDIgMTI6MzA6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiB1c2UgdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpIHRvIHNraXAgYnJva2VuIG11bHRpcXVldWUgdGVzdAoJICBTbyB0aGF0IHdlIGdldCBhIHdhcm5pbmcgaW4gdGhlIG91dHB1dCB0aGF0IHJlbWluZHMgdXMgdGhhdAoJICBzb21ldGhpbmcgbmVlZHMgdG8gYmUgZml4ZWQuCgoyMDEzLTEwLTAyIDExOjI0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgY2hlY2s6IERpc2FibGUgbXVsdGlxdWV1ZSB0ZXN0X291dHB1dF9vcmRlciBjaGVjawoJICBUaGUgY2hlY2sgaXRzZWxmIGlzIHJhY3kuCgkgIChDS19GT1JLPW5vIEdTVF9DSEVDSz10ZXN0X291dHB1dF9vcmRlciBtYWtlIGVsZW1lbnRzL211bHRpcXVldWUuZm9yZXZlcikuCgkgIFRoZSBwcm9ibGVtIGlzIGluZGVlZCB0aGUgdGVzdCBhbmQgbm90IHRoZSBhY3R1YWwgZWxlbWVudCBiZWhhdmlvdXIuCgkgIFRoZSBvYmplY3RzIHRvIHB1c2ggYXJlIGJlaW5nIHB1bGxlZCBvdXQgb2YgdGhlIHNpbmdsZSBpbnRlcm5hbCBxdWV1ZXMgaW4gdGhlCgkgIHJpZ2h0IG9yZGVyIGFuZCBhdCB0aGUgcmlnaHQgdGltZS4uLgoJICBCdXQgYmV0d2VlbjoKCSAgKiB0aGUgbW9tZW50IHRoZSBnbG9iYWwgbXVsdGlxdWV1ZSBsb2NrIGlzIHJlbGVhc2VkICh3aGljaCB3YXMgdXNlZCB0byBkZXRlY3QKCSAgaWYgd2Ugc2hvdWxkIHBvcCBhbmQgcHVzaCBkb3duc3RyZWFtIHRoZSBuZXh0IGJ1ZmZlcikKCSAgKiBhbmQgdGhlIG1vbWVudCBpdCBpcyByZWNlaXZlZCBieSB0aGUgc291cmNlIHBhZCAod2hpY2ggZG9lcyB0aGUgY2hlY2spCgkgID0+IGFub3RoZXIgc2luZ2xlIHF1ZXVlIChsaWtlIHRoZSB1bmxpbmtlZCBwYWQpIG1pZ2h0IHBvcCBhbmQgcHVzaCBhIGJ1ZmZlcgoJICBkb3duc3RyZWFtCgkgIFdoYXQgc2hvdWxkIHdlIGRvID8gUHV0dGluZyBhIGJpZ2dlciBtYXJnaW4gb2YgZXJyb3IgKHNheSA1IGJ1ZmZlcnMpIGRvZXNuJ3QKCSAgaGVscCwgaXQnbGwgZXZlbnR1YWxseSBmYWlsLgoJICBJIGNhbid0IHNlZSBob3cgd2UgY2FuIGRldGVjdCB0aGlzIHJlbGlhYmx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjYxCgoyMDEzLTA5LTI1IDE5OjA2OjU1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGNhcHMgc2VyaWFsaXphdGlvbiB3aGVuIHRoZXJlIGFyZSBjYXBzIGluc2lkZSBjYXBzCgkgIFdyYXAgY2FwcyBzdHJpbmdzIHNvIHRoYXQgaXQgY2FuIGhhbmRsZSBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24KCSAgb2YgY2FwcyBpbnNpZGUgY2Fwcy4gT3RoZXJ3aXNlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgaW50ZXJuYWwgY2FwcyBhcmUgcGFyc2VkCgkgIGFzIGlmIHRoZXkgd2VyZSBmcm9tIHRoZSB1cHBlciBvbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODc3MgoKMjAxMy0wOS0yOCAwODo0MDo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBDaGVjayBlcnJvcnMgb24gdGhlIHByb3BlciBmZAoJICBNb3N0IGxpa2VseSBhIGNvcHktcGFzdGUgZXJyb3IgZnJvbSB0aGUgYmxvY2sgYmVmb3JlLgoJICBJZiB3ZSdyZSBnb2luZyB0byBjaGVjayBmb3IgZXJyb3IvY2xvc2VkIG9uIHRoZSB3cml0ZSBmZC4uLiBkbyBpdAoJICBvbiB0aGUgd3JpdGUgZmQKCjIwMTMtMDktMjYgMTQ6MDk6MDIgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogZml4IHNwZWxsaW5nIG9mICJnZW5lcmljIiBpbiBHc3RCYXNlU3JjJ3MgZG9jdW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODg3MAoKMjAxMy0wOS0yNiAxMTozMjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvbmx5IGNoZWNrIGV2ZW50IG9yZGVyIHdoZW4gc29tZXRoaW5nIGNoYW5nZWQKCSAgQ2hlY2sgdGhlIGV2ZW50IG9yZGVyIGluIGRhdGFmbG93IG9ubHkgd2hlbiBzb21ldGhpbmcgY2hhbmdlZCBpbnN0ZWFkCgkgIG9mIGZvciBlYWNoIGJ1ZmZlci4KCjIwMTMtMDktMjQgMTg6Mjg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmIwM2JhNyB0byA4NjVhYTIwCgoyMDEzLTA5LTI0IDE1OjA1OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQWN0dWFsbHkgdXNlIDEuMy4wLjEgYXMgdmVyc2lvbiB0byBtYWtlIGNvbmZpZ3VyZSBoYXBweQoKMjAxMy0wOS0yNCAxNTowMDoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjIuMCA9PT0KCjIwMTMtMDktMjQgMTQ6MDc6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjIuMAoKMjAxMy0wOS0yNCAxNDowNjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wOS0yNCAxMzoxMDozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogQWRkIHRlc3QgZm9yIHRoZSBjb250ZXh0IGNhY2hpbmcgaW4gR3N0QmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2NjgKCjIwMTMtMDktMjQgMTI6NDc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBSZXZlcnQgIlBvdGVudGlhbCBHc3RDb250ZXh0IHJlZ3Jlc3Npb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZTY1ODM3OTUzNGViNGE5MGI2NTRkOTBmMWQwYmRmODZmMzdjNmUzMS4KCSAgVGhpcyB0ZXN0IGNvbW1pdCBzaG91bGQndmUgbmV2ZXIgYmVlbiBwdXNoZWQuIE9vcHMuCgoyMDEzLTA5LTI0IDEyOjQ2OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogTWFrZSBzdXJlIHRvIGNhY2hlIGNvbnRleHQgdHlwZXMgdGhhdCB3ZSBkaWQgbm90IHN0b3JlIHlldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjY4CgoyMDEzLTA5LTI0IDEwOjI5OjA2ICswMTAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgUG90ZW50aWFsIEdzdENvbnRleHQgcmVncmVzc2lvbgoJICBTaW5jZSB0aGUgcmVmYWN0b3Jpbmcgb2YgR3N0Q29udGV4dCAoY29tbWl0cwoJICBxYzlmYTI3NzFiNTA4ZTlhYWVlY2M3MDBlNjZlOTU4MTkwNDc2ZiwKCSAgYTdmNWRjOGI4YWY4MzdmMDE3ODJkMTU3MjM3OTk0OGZmNjJkYWFiNywKCSAgNjkwMzI2ZjkwNmRjODJlNDFlYTU4YjgxY2RiMmUzZTg4Yjc1NCwKCSAgZDM2N2RjMWIwZDRlY2IzN2Y0ZDI3MjY3ZTAzZDdiZjBjNmMwNmE2LCBhbmQKCSAgODJkMTU4YWVkM2YyZTg1NDVlMWU3ZDM1MDg1MDg1ZmY1OGYxOCkgSSBhbSBubyBsb25nZXIgYWJsZSB0byBnZXQKCSAgYSBzaGFyZWQgY29udGV4dCBmb3IgYW4gZWxlbWVudCB0aGF0IGlzIHVzZWQgdHdpY2UgaW4gYSBwaXBlbGluZS4KCSAgSSB1c2VkIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBlZ2xnbGVzc2luayBhcyBteSByZWZlcmVuY2UgZm9yCgkgIGltcGxlbWVudGluZyB0aGUgR3N0Q29udGV4dCBsb2dpYy4KCSAgQXMgdGhlIGNvZGUgd2FzIHRpZWQgdG8gYSBoYXJkd2FyZSBkZWNvZGVyLCBJIGhhdmUgcG9ydGVkIHRoZQoJICBHc3RDb250ZXh0IGNvZGUgdG8gZmFrZXNpbmsgdG8gc2hvdyB0aGUgcHJvYmxlbS4gVXNpbmcgdGhlIG9sZAoJICBBUEkgYSBzaW5nbGUgRXhhbXBsZU1nciBpbnN0YW5jZSBpcyBjcmVhdGVkLCBidXQgdXNpbmcgdGhlIG5ldwoJICBBUEkgZWFjaCBlbGVtZW50IGlzIGNyZWF0aW5nIGl0cyBvd24gaW5zdGFuY2UuCgoyMDEzLTA5LTI0IDEwOjQyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBNYWtlIHN1cmUgdGhhdCB0aGUgb2JqZWN0IGxvY2sgaXMgYWx3YXlzIHRha2VuIHdoZW4gYWNjZXNzaW5nIHRoZSBwcml2YXRlIHBhZCBsaXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2MzYKCjIwMTMtMDktMTcgMjM6MjM6MzQgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVzZSBwcml2YXRlIHBhZCBsaXN0IGluIHNldF9mbHVzaGluZ191bmxvY2tlZAoJICBwYWRzLT5kYXRhIGlzIHRoZSBwdWJsaWMgbGlzdC4gSXQgaXMgZHluYW1pY2FsbHkgcmVidWlsdCBhdCBlYWNoIGNhbGwgdG8KCSAgY2hlY2tfY29sbGVjdGVkLCBpbiBjaGVja19wYWRzIHRvIGJlIHNwZWNpZmljLiBXaGVuIHlvdSBhZGQgYSBwYWQgYW5kCgkgIGNvbGxlY3RwYWRzIGhhdmUgYmVlbiBzdGFydGVkLCBpdCBpcyBub3QgYWRkZWQgdG8gdGhlIHB1YmxpYyBsaXN0LgoJICBUaHVzIHRoZXJlIGV4aXN0cyBhIHBvc3NpYmxlIHJhY2Ugd2hlcmUgOgoJICAxKSBZb3Ugd291bGQgYWRkIGEgcGFkIHRvIGNvbGxlY3RwYWRzIHdoaWxlIHJ1bm5pbmcuCgkgIDIpIFlvdSBzZXQgY29sbGVjdHBhZHMgdG8gZmx1c2hpbmcgYmVmb3JlIGNoZWNrX2NvbGxlY3RlZCBoYXMgYmVlbiBjYWxsZWQgYWdhaW4KCSAgLT4gdGhlIHBhZCBpcyBub3Qgc2V0IHRvIGZsdXNoaW5nCgkgIDMpIHRoZSBwYWQgc3RhcnRzIHB1c2hpbmcgZGF0YSBhcyBkb3duc3RyZWFtIG1pZ2h0IG5vdCBiZSBwcmVwYXJlZCwgaW4gdGhlIGNhc2UKCSAgb2YgYWRkZXIgaXQgdGhlbiByZXR1cm5zIEZMT1dfRkxVU0hJTkcuCgkgIDQpIGVsZW1lbnRzIGxpa2UgZGVtdXhlcnMsIHdoZW4gdGhleSBnZXQgYSBGTE9XX0ZMVVNISU5HLCBzdG9wIHRoZWlyIHRhc2tzLAoJICBuZXZlciB0byBiZSBzZWVuIGFnYWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjM2CgoyMDEzLTA5LTIzIDExOjQ3OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RzOiBoYW5kbGUgdW5zY2hlZHVsZWQgZW50cmllcyBjb3JyZWN0bHkKCSAgTWFrZSB0aGUgdGVzdGNsb2NrIHJldHVybiBHU1RfQ0xPQ0tfVU5TQ0hFRFVMRUQgd2hlbiBhbiB1bnNjaGVkdWxlZCBlbnRyeSBpcwoJICB1c2VkIGZvciBnc3RfY2xvY2tfd2FpdCgpIG9yIGdzdF9jbG9ja193YWl0X2FzeW5jKCkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2MDUKCjIwMTMtMDktMjIgMTE6MDk6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBbGxvdyBzcGVjaWZ5aW5nIHRoZSBjaGVja291dCBkaXJlY3RvcnkgYnkgZW52IHZhcmlhYmxlCgkgIEZvciBzb21lIHJhcmUgY2FzZXMsIG9uZSBtaWdodCBub3QgYmUgYWJsZSB0byB1c2UgdGhlIGhhcmRjb2RlZCAkSE9NRS9nc3QKCSAgbG9jYXRpb24geWV0IHdvdWxkIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IGFzLWlzICh3aGljaAoJICBoYXMgdGhlIGJlbmVmaXQgb2YgYmVpbmcgY29uc3RhbnRseSB1cGRhdGVkKS4KCSAgRm9yIHRoZXNlIGNhc2VzLCB0aGUgY2hlY2tvdXQgZGlyZWN0b3J5IGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUKCSAgR1NUX1VOSU5TVEFMTEVEX1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIEV4OgoJICBleHBvcnQgR1NUX1VOSU5TVEFMTEVEX1JPT1Q9JEhPTUUvc29tZXdoZXJlL3dpdGgvY2hlY2tvdXRzCgkgIEFuZCB0aGVuIGp1c3QgY2FsbCBnc3QtdW5pbnN0YWxsZWQgZGlyZWN0bHk6CgkgICRHU1RfVU5JTlNUQUxMRURfUk9PVC9nc3RyZWFtZXIvZ3N0LXVuaW5zdGFsbGVkCgoyMDEzLTA5LTIwIDE2OjE2OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjYxMzY2MSB0byA2YjAzYmE3CgoyMDEzLTA5LTE5IDE4OjQyOjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3NGE2ODU3IHRvIGI2MTM2NjEKCjIwMTMtMDktMTkgMTc6MzQ6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDEyYWYxMDUgdG8gNzRhNjg1NwoKMjAxMy0wOS0xOSAxNzoxMjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogdGVzdGNsb2NrOiBmaXggZnVuY3Rpb24gZ3VhcmRzCgkgIFNob3VsZCBiZSBnX3JldHVybl8qKCkgbm90IGdfYXNzZXJ0KCksIGV2ZW4gaWYgaXQncyBmb3IgdGVzdHMgb25seS4KCjIwMTMtMDktMTkgMTY6NDM6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IHRlc3RjbG9jazogZG9uJ3QgcHV0IGNvZGUgd2l0aCBzaWRlLWVmZmVjdHMgaW4gZ19hc3NlcnQoKQoJICBGaXhlcyB1bml0IHRlc3QgZmFpbHVyZXMgd2hlbiAtREdfRElTQUJMRV9BU1NFUlQgaXMgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjU1MQoKMjAxMy0wOS0xOSAxMjowNzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBnc3Rjb250ZXh0OiBGaXggcmV0dXJuIHZhbHVlcyBzb21lIG1vcmUKCSAgUmV0dXJuIHZhbHVlIGlzIGEgYm9vbGVhbiBub3QgYSBwb2ludGVyCgoyMDEzLTA5LTE5IDExOjQ5OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBGaXggcmV0dXJuIHZhbHVlcyBmb3IgZ3N0X2NvbnRleHRfaGFzX2NvbnRleHRfdHlwZSgpIGluIGFzc2VydGlvbnMKCjIwMTMtMDktMTkgMTE6MzQ6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjkwID09PQoKMjAxMy0wOS0xOSAxMDo0ODoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjkwCgoyMDEzLTA5LTE5IDEwOjA1OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA5LTE5IDA5OjQ5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udGV4dDogQWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGdzdF9jb250ZXh0X2hhc19jb250ZXh0X3R5cGUoKQoKMjAxMy0wOS0xOSAwOTo0MjoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTMtMDktMTggMjM6MDc6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEltcGxlbWVudCBnZXR0aW5nIHRoZSBuYW1lIG9mIHRoZSBjb250ZXh0IG1lc3NhZ2UgdHlwZXMKCjIwMTMtMDktMTcgMjE6MzY6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBGaXggdW5pdCB0ZXN0IGZvciBHc3RDb250ZXh0IGNoYW5nZXMKCjIwMTMtMDktMTcgMTQ6MzQ6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogVXBkYXRlIGZvciBHc3RDb250ZXh0IGNoYW5nZXMKCjIwMTMtMDktMTcgMTQ6Mjk6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250ZXh0OiBVcGRhdGUgZG9jcwoKMjAxMy0wOS0xNyAxNDoyNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEltcGxlbWVudCBjb250ZXh0IGNhY2hpbmcgYW5kIHByb3BhZ2F0aW9uIGFnYWluCgoyMDEzLTA5LTE3IDEzOjUwOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgbWVzc2FnZS9xdWVyeTogU2ltcGxpZnkgQ09OVEVYVCBtZXNzYWdlcy9xdWVyaWVzIHRvIG9ubHkgY29udGFpbiBhIHNpbmdsZSB0eXBlCgoyMDEzLTA5LTE3IDEzOjMzOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBVcGRhdGUgZG9jdW1lbnRhdGlvbgoKMjAxMy0wOS0xNyAxMzoyODo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgY29udGV4dDogQ2hhbmdlIEdzdENvbnRleHQgdG8gY29udGFpbiBvbmx5IGEgc2luZ2xlIGNvbnRleHQKCSAgSXQgd2FzIHVuaW50dWl0aXZlIHRoYXQgR3N0Q29udGV4dCB3YXMgYWN0dWFsbHkgYSBsaXN0IG9mIGRpZmZlcmVudAoJICBjb250ZXh0cy4gR3N0Q29udGV4dCBub3cgaXMgb25seSBhIHR5cGUgc3RyaW5nIGFuZCBhIHN0cnVjdHVyZSB0bwoJICBjb250YWluIHRoZSBhY3R1YWwgY29udGV4dC4KCjIwMTMtMDktMTcgMTM6MTI6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogUmVtb3ZlIEdzdENvbnRleHQgY2FjaGluZwoKMjAxMy0wOS0xNyAxMzoxMDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSAgY29udGV4dDogQWRkIHBlcnNpc3RlbnQgcXVhbGlmaWVyIGZvciBhIGNvbnRleHQKCSAgTm9uLXBlcnNpc3RlbnQgY29udGV4dHMgYXJlIHJlbW92ZWQgd2hlbiBlbGVtZW50cyBnbyBiYWNrCgkgIHRvIE5VTEwgc3RhdGUsIHBlcnNpc3RlbnQgY29udGV4dHMgYXJlIG5vdC4gQXBwbGljYXRpb25zCgkgIG1vc3QgbGlrZWx5IHdhbnQgdG8gc2V0IHBlcnNpc3RlbnQgY29udGV4dHMuCgoyMDEzLTA5LTE3IDEzOjEwOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IE1ha2UgQ09OVEVYVCBxdWVyeSB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbQoKMjAxMy0wOS0xNyAxMzowOTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBSZW1vdmUgQ09OVEVYVCBkb3duc3RyZWFtIGV2ZW50CgkgIFRoaXMgaXMgZ29pbmcgdG8gYmUgaW1wbGVtZW50ZWQgd2l0aCBhbiB1cHN0cmVhbSBxdWVyeSBpbnN0ZWFkCgkgIGZvciBjb25zaXN0ZW5jeSBhbmQgc2ltcGxpY2l0eS4KCjIwMTMtMDktMTMgMTQ6NDE6NDUgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IFN0b3AgYWxsIHVudXNlZCB0aHJlYWRzIGluIEdUaHJlYWRQb29sIGluIGdzdF9kZWluaXQoKQoJICBTaW5jZSB0aGUgZGVmYXVsdCBudW1iZXIgb2YgbWF4IHVudXNlZCB0aHJlYWRzIGluIEdUaHJlYWRQb29sIGhhcyBiZWVuCgkgIGNoYW5nZWQgZnJvbSAwIHRvIDIgaXQgbmVlZHMgdG8gYmUgc2V0IHRvIDAgdG8gc3RvcCBhbGwgdGhyZWFkcyBvcgoJICB2YWxncmluZCB3aWxsIHJlcG9ydCB0aGVtIGFzIG1lbW9yeSBsZWFrcy4KCjIwMTMtMDktMTAgMTY6Mzk6MzAgKzAxMDAgIFJpY28gVHpzY2hpY2hob2x6IDxyaWNvdHpAdC1vbmxpbmUuZGU+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nczogZml4IHBzcGVjIHJlbGF4YXRpb24gZm9yIGNvbnRyb2wgc291cmNlIHByb3BlcnRpZXMKCSAgVGhlIGNoYW5nZSBzaG91bGQgaGF2ZSBiZWVuIGZyb20gUEFSQU1fQ09OU1RSVUNUX09OTFkgdG8KCSAgUEFSQU1fQ09OU1RSVUNULCBvdGhlcndpc2UgYmluZGluZ3MgYXJlIGFmZmVjdGVkLCBzaW5jZQoJICB0aGV5IGxvb2sgZm9yIHRoZSBDT05TVFJVQ1QgZmxhZy4KCSAgU2VlIGVjNTUzNjNkCgoyMDEzLTA5LTEwIDEwOjE1OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE9ubHkgdXBkYXRlIGN1cnJlbnQgbGV2ZWwgaWYgd2UgYWxyZWFkeSBkb3dubG9hZGVkIGEgcmFuZ2UKCSAgT3RoZXJ3aXNlIHF1ZXVlLT5sZXZlbCBpcyBOVUxMIGFuZCBkZXJlZmVyZW5jaW5nIHRoYXQgaXMgbm90IGEgZ29vZAoJICBpZGVhIGluIGdlbmVyYWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2NDgKCjIwMTMtMDktMDkgMTU6NDA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IERlcHJlY2F0ZSBHU1RfTUVUQV9UQUdfTUVNT1JZCgkgIFRoZSBHUXVhcmtzIGFyZSBub3QgZXhwb3J0ZWQgYnkgYW55IHB1YmxpYyBBUEkKCjIwMTMtMDgtMjIgMDA6MDI6MjggKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBBZGQgYSAjZGVmaW5lIGZvciBtZW1vcnkgbWV0YWRhdGEKCjIwMTMtMDgtMjIgMDA6MDE6NDQgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBpbXBsZW1lbnQgYSBkZWZhdWx0IHRyYW5zZm9ybV9tZXRhLiBJZiBhIG1ldGFkYXRhIGhhcyBubyBkZXBlbmRlbmN5IGFzIHNob3duIGJ5IHRoZSB0YWdzLCBjb3B5IGl0LgoKMjAxMy0wOC0yMiAyMTozMjozNiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogQVBJOiBBZGQgZ3N0X21ldGFfYXBpX3R5cGVfZ2V0X3RhZ3MoKSB0byBnZXQgYWxsIG1ldGEgdGFncy4KCjIwMTMtMDktMDkgMTQ6MjE6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgdGVzdHMvY2Fwc2ZpbHRlcjogRml4IG1lbW9yeSBsZWFrIGFuZCBjb21wYXJlIGNhcHMgZGlyZWN0bHkgaW5zdGVhZCBvZiBzdHJjbXAoKQoKMjAxMy0wOS0wNiAyMzowMzo1NCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIHRlc3RzL2NhcHNmaWx0ZXI6IFRlc3QgY2Fwcy1yZWxhdGVkIHF1ZXJpZXMgYW5kIHByb3BlcnR5CgoyMDEzLTA5LTA2IDE1OjA5OjQ2IC0wMzAwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBVcGRhdGUgdGhlIGJ1ZmZlcmluZyBzdGF0ZSBiZWZvcmUgc3RhbGxpbmcgZm9yIG1vcmUgZGF0YQoJICBJbiBzb21lIGNhc2VzIHRoZSB3YWl0IGZvciBtb3JlIGRhdGEgd2FzIGhhcHBlbmluZyB3aXRob3V0IHVwZGF0aW5nCgkgIHRoZSBidWZmZXJpbmcgc3RhdGUsIG1lYW5pbmcgdGhlIEFQSSB1c2VyIHdvdWxkIG5vdCBiZSBhYmxlIHRvIG5vdGljZQoJICBpdCBzaG91bGQgcGF1c2UgdGhlIHBpcGVsaW5lIGFuZCB1cGRhdGUgVUkgdG8gaW5kaWNhdGUgdGhhdCBpcyB0aGUKCSAgY2FzZSwgdGhlIHZpZGVvIHdvdWxkIGxpa2VseSBzdHV0dGVyIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2NDgKCjIwMTMtMDktMDQgMTU6Mjg6MTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcmVzZXJ2ZSBzZXFudW0gb24gc2VnbWVudHMgYWZ0ZXIgc2Vla3MKCSAgVGhlIHNlcW51bSBvZiB0aGUgc2VnbWVudCBhZnRlciBhIHNlZWsgc2hvdWxkIGJlIHRoZSBzYW1lIG9mCgkgIHRoZSBzZWVrIGV2ZW50LiBEb3duc3RyZWFtIGVsZW1lbnRzIG1pZ2h0IHJlbHkgb24gc2VxbnVtcyB0bwoJICBpZGVudGlmeSBldmVudHMgcmVsYXRlZCB0byBhIHNlZWsuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCB3aGVuIGEgZGVtdXhlciBtYXBzIGEgVElNRSBzZWVrCgkgIGludG8gYSBCWVRFUyBzZWVrIGZvciB1cHN0cmVhbSBhbmQgaXQgbmVlZHMgdG8gaWRlbnRpZnkgdGhlCgkgIGNvcnJlc3BvbmRpbmcgc2VnbWVudCBldmVudCBhbmQgbWFwIGl0IGJhY2sgaW50byBUSU1FIHRvIHB1c2gKCSAgZG93bnN0cmVhbSwgcG9zc2libHkgdXNpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW5hbCBzZWVrCgkgIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NTMwCgoyMDEzLTA5LTA1IDE0OjE0OjQyICswMjAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJtZXJhbGlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgdW5yZWYgTlVMTCBHc3RDb2xsZWN0RGF0YQoJICBJZiBhIHBhZCBpcyByZW1vdmVkIHdoaWxlIGEgY29sbGVjdHBhZHMgZWxlbWVudCAoc2F5IGFkZGVyKSBpcyBpbiBhIGNoYWluCgkgIGZ1bmN0aW9uIHdhaXRpbmcgdG8gYmUgY29sbGVjdGVkLCB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgYW4gdW5yZWYgaGFwcGVucwoJICBvbiBhIE5VTEwgcG9pbnRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzUzNgoKMjAxMy0wOS0wNCAxNzoxMToyMCArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW5nLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBSZW1vdmUgUHlYTUwgZnJvbSBzcGVjIGZpbGUsIGl0IGlzIG5vdCBsb25nZXIgbmVlZGVkCgoyMDEzLTA5LTA0IDE0OjQwOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQWRkIG1pc3NpbmcgYnJlYWsgYWZ0ZXIgaGFuZGxpbmcgdGhlIEdBUCBldmVudAoJICBUaGFua3MgdG8gRWR3YXJkIEhlcnZleSBmb3Igbm90aWNpbmcuCgoyMDEzLTA5LTA0IDA5OjE4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtcGxvdC10aW1lbGluZS5weToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIHRvb2xzOiBtb3ZlIGdzdC1wbG90LXRpbWVsaW5lLnB5IGludG8gc2NyaXB0cyBkaXJlY3RvcnkKCSAgU28gaXQncyBub3QgaW4gUEFUSCBpbiBhbiB1bmluc3RhbGxlZCBzZXR1cCAodGh3YXJ0aW5nCgkgIGdzdC1wbGF5IGF1dG9jb21wbGV0aW9uKS4KCjIwMTMtMDktMDMgMjM6NTk6MDUgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgcmVkdWNlIHNpbmdsZSBxdWV1ZSB2aXNpYmxlIHNpemUgYmVsb3cgaXRzIGN1cnJlbnQgbGV2ZWwKCSAgSWYgdGhlIG11bHRpcXVldWUgaGFzIGF1dG9tYXRpY2FsbHkgZ3Jvd24gY2hhbmNlcyBhcmUgZ29vZCB0aGF0CgkgIHdlIHdpbGwgY2F1c2UgdGhlIHBpcGVsaW5lIHRvIHN0YXJ2ZSBpZiB0aGUgbWF4aW11bSBsZXZlbCBpcyByZWR1Y2VkCgkgIGJlbG93IHRoYXQgYXV0b21hdGljYWxseSBncm93biBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MTU2CgoyMDEzLTA5LTAyIDEzOjUzOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBEb24ndCBhZGp1c3Qgc2VnbWVudC0+c3RhcnQgdG8gdGhlIGN1cnJlbnQgdGltZSB3aGVuIHN3aXRjaGluZyBwYWRzCgkgIFRoaXMgZG9lcyBub3QgbWFrZSBhbnkgc2Vuc2UgYXQgYWxsIGFuZCBicmVha3MgdGltZXN0YW1wLT5ydW5uaW5nX3RpbWUKCSAgY2FsY3VsYXRpb25zIGluIHVucHJlZGljdGFibGUgd2F5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzEzMAoKMjAxMy0wOC0yOSAyMzoxODozMSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IERlbGV0ZSBsaW5rIGRpcmVjdGx5IGluIHBlbmRpbmdfZXZlbnRzLgoJICBXaGVuIHJlbW92aW5nIGEgc2VnbWVudCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzA4OAoKMjAxMy0wOC0yOSAxMTowNzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRlbW90ZSBsb2cgbWVzc2FnZSwgZG9uJ3Qgc3BhbSBJTkZPIGxldmVsIHdoZW4gaGFuZGxpbmcgYnVmZmVyIGxpc3RzCgoyMDEzLTA4LTI4IDEzOjI2OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS40ID09PQoKMjAxMy0wOC0yOCAxMjozNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjQKCjIwMTMtMDgtMjggMTI6MzY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDgtMjggMTI6MzA6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEzLTA4LTI3IDA5OjMxOjIyICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHBsZWFzZSBnY2MgKGF2b2lkIGEgd2Fybl91bnVzZWRfcmVzdWx0IHdhcm5pbmcpCgoyMDEzLTA4LTI3IDA3OjUxOjM1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGZsdXNoIChkaXNjYXJkIGRhdGEpIG9uIEZMVVNIX1NUT1AKCSAgUmVzZXQgdGhlIHdyaXRlIHBvc2l0aW9uIHRvIDAgYW5kIHRydW5jYXRlIHRoZSBmaWxlIG9uIEZMVVNIX1NUT1AuCgoyMDEzLTA4LTI3IDA3OjA1OjExICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3RzOiBmaWxlc2luazogc21hbGwgcmVmYWN0b3JpbmcKCjIwMTMtMDgtMjYgMTM6MTk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBkb24ndCBwcmludCBwcm9wZXJ0aWVzIGJlaW5nIHJlc2V0IHdoZW4gc2h1dHRpbmcgZG93bgoJICBJdCdzIGp1c3Qgbm9pc2UuCgoyMDEzLTA4LTIyIDE5OjAxOjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCBwdXNoIG91dCBpZGVudGljYWwgY2FwcwoJICBUaGlzIGF2b2lkcyB0cmlnZ2VyaW5nIHBsZW50eSBvZiBleHRyYSBjb2RlL21ldGhvZHMvb3ZlcmhlYWQgZG93bnN0cmVhbSB3aGVuCgkgIHdlIGNhbiBqdXN0IHF1aWNrbHkgY2hlY2sgd2hlbmV2ZXIgd2Ugd2FudCB0byBzZXQgY2FwcyB3aGV0aGVyIHRoZXkgYXJlCgkgIGlkZW50aWNhbCBvciBub3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjYwMAoKMjAxMy0wOC0yMSAxMjoyMTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgZG9jczogZmxlc2ggb3V0IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcigpIGEgbGl0dGxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NzgKCjIwMTMtMDgtMjAgMjM6NTk6MjkgLTA3MDAgIEtlcnJpY2sgU3RhbGV5IDxrZXJyaWNrQGtlcnJpY2tzdGFsZXkuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IG1ha2UgZ3JhbW1hci55IHdvcmsgd2l0aCBCaXNvbiAzCgkgIFlZTEVYX1BBUkFNIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgaW4gQmlzb24gMy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ2MgoKMjAxMy0wOC0yMCAxNzoxNTo0MSArMDkwMCAgV29uY2h1bCBMZWUgPGNodWwwODEyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgc2FtcGxlOiBBZGQgZ3N0X3NhbXBsZV9jb3B5KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ1NAoKMjAxMy0wOC0xOSAxNDo1NToyMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBnc3RfYnVmZmVyX21lbWNtcCgpIHdoZXJlIHRoZSBidWZmZXIgaXMgc21hbGxlciB0aGFuIHNpemUKCSAgQWxzbyBhZGQgdW5pdCB0ZXN0cyBmb3IgZ3N0X2J1ZmZlcl9tZW1jbXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjE2MgoKMjAxMy0wOC0yMCAxNzowNjo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0X2VsZW1lbnRfcXVlcnlfe2R1cmF0aW9uLHBvc2l0aW9ufSBkb2NzIGEgYml0CgoyMDEzLTA4LTE0IDE2OjE4OjU5ICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogaGFuZGxlIHB1Ymxpc2hlciBhbmQgaW50ZXJwcmV0ZWQtYnkgdGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTk5CgoyMDEzLTA4LTIwIDEzOjU4OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRG9uJ3QgY2FsbCBtZW1jcHkoKSB3aXRoIE5VTEwgc3JjIGFuZCAwIGxlbmd0aAoKMjAxMy0wOC0yMCAxMDoxNjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUHJvcGVybHkgdW5sb2NrIHRoZSBzaW5rcGFkIHN0cmVhbWluZyB0aHJlYWQgd2hlbiBkZWFjdGl2YXRpbmcgdGhlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA4LTIwIDEwOjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFByb3Blcmx5IHVubG9jayB0aGUgc2lua3BhZCBzdHJlYW1pbmcgdGhyZWFkIHdoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjM2MAoKMjAxMy0wOC0xOSAxNjozODo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IENsZWFuIHVwIGFmdGVyIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBzdG9wcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDgtMTkgMTY6Mzg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wOC0xOSAxNjozODoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wNy0wMSAxNDowNDo0NiAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IEFkZCBHU1RfRkxBR19OT19TSU5HTEVfRUxFTUVOVF9CSU5TCgkgIFRoaXMgbWFrZXMgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgcmV0dXJuIGFuIGVsZW1lbnQgaW5zdGVhZCBvZgoJICBhIGJpbiBpZiB0aGVyZSdzIG9ubHkgb25lIGVsZW1lbnQuIEFsc28gY2hhbmdlZCBnc3RwYXJzZS5jIHRvIHVzZSB0aGlzLAoJICBzbyBnc3QtbGF1bmNoIHdvbid0IGNyZWF0ZSBzdXBlcmZsdW91cyBiaW5zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNDA1CgoyMDEzLTA4LTE2IDIwOjM2OjUzICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogcmV0dXJuIE5VTEwgd2hlbiBwYXJzaW5nIHVyaSByZWRpcmVjdGlvbiB0aGF0IHdhcyBub3Qgc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYxNjAKCjIwMTMtMDgtMTggMTE6NDg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBVcGRhdGUgc2luY2UgbWFya2VyIGZvciBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkgdG8gMS4wLjEwCgoyMDEzLTA4LTE2IDE2OjQ1OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBjcmFzaCBvbiBFT1MgaWYgcXVldWUgaXMgZW1wdHkKCSAgRml4ZXMgc3B1cmlvdXMgY3Jhc2ggaW4gdGVzdF9zaW1wbGVfc2h1dGRvd25fd2hpbGVfcnVubmluZwoJICB1bml0IHRlc3QuCgoyMDEzLTA4LTE2IDE2OjI4OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBjaGFuZ2UgZ2xvYmFsIGJ1ZmZlcmluZyBzdGF0ZSBmcm9tIHdpdGhpbiBxdWVyeSBoYW5kbGVyCgkgIFdoZW4gYSBidWZmZXJpbmcgcXVlcnkgaXMgaGFuZGxlZCBpdCB1c2VzIHRoZSBnZXRfYnVmZmVyaW5nX3BlcmNlbnQoKQoJICBmdW5jdGlvbiB0byBnZXQgc29tZSBzdGF0aXRpY3MuIFVuZm9ydHVuYXRlbHkgdGhpcyBmdW5jdGlvbiBhbHNvCgkgIGNhbGN1bGF0ZXMgd2hldGhlciB0aGUgcXVldWUgc2hvdWxkIGJlIGJ1ZmZlcmluZyBhbmQgYWRhcHRzIHRoZQoJICBnbG9iYWwgcXVldWUyIHN0YXRlIGluIGNhc2Ugb2Ygc3RhdGUgdHJhbnNpdGlvbnMgZnJvbS90byBidWZmZXJpbmcKCSAgKGluY2x1ZGluZyB3aGV0aGVyIGEgYnVmZmVyaW5nIG1lc3NhZ2Ugd2FzIHBvc3RlZCBvbiB0aGUgYnVzISkuCgkgIFRoaXMgbWVhbnMgdGhhdCB0aGVyZSBpcyBhIHJhY2Ugd2hpY2ggY2FuIGNhdXNlIGJ1ZmZlcmluZyBtZXNzYWdlcwoJICB0byBuZXZlciBwb3N0ZWQgaWYgdGhlIGdsb2JhbCBzdGF0ZSBjaGFuZ2VzIGhhcHBlbiBhcyBhIHJlc3VsdCBvZiBhYQoJICBxdWVyeSBpbnN0ZWFkIG9mIHJlc3VsdGluZyBmcm9tIGJ5dGVzIGZsb3dpbmcgaW4vb3V0LgoJICBTcG90dGVkIGJ5IFNqb2VyZCBTaW1vbnMuCgkgIENoYW5nZSB0byBvbmx5IHF1ZXJ5IHN0YXRlIGluIGdldF9idWZmZXJpbmdfcGVyY2VudCgpIGFuZCB1cGRhdGUKCSAgc3RhdGUgb25seSBpbiB1cGRhdGVfYnVmZmVyaW5nKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUzMzIKCjIwMTMtMDgtMTYgMTI6NTQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVwZGF0ZSBidWZmZXJpbmcgd2hlbiBjaGFuZ2luZyBjYXBhY2l0eQoJICBXaGVuIHRoZSBjYXBhY2l0eSBvZiB0aGUgcXVldWUgY2hhbmdlcywgbWFrZSBzdXJlIHdlIHBvc3QgYW4gdXBkYXRlZCBidWZmZXJpbmcKCSAgbWVzc2FnZSBiZWNhdXNlIHdlIG1pZ2h0IHN1ZGRlbmx5IGhhdmUgY29tcGxldGVkIHRoZSBidWZmZXJpbmcgc3RhZ2UuCgoyMDEzLTA4LTE1IDE1OjM1OjA4ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgRnJlZSB0aHJlYWQgcG9vbHMgaW4gZ3N0X2RlaW5pdCgpCgoyMDEzLTA4LTE2IDExOjAzOjMwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBDYWxsIGdzdF9kZWluaXQoKSBhdCBleGl0IG9mIGFsbCBwcm9jZXNzZXMKCjIwMTMtMDgtMTQgMjE6NDE6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHNpbXBsaWZ5IGludGVybmFsIGdzdF9jbG9ja19yZXR1cm5fZ2V0X25hbWUoKSBoZWxwZXIKCjIwMTMtMDgtMTQgMTc6NDQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBmbHVzaC1zdGFydCBoYW5kbGluZwoJICBVc2UgY3VzdG9tIGNvZGUgdG8gaW1wbGVtZW50IGZsdXNoLXN0b3AsIHdlIGNhbid0IHJldXNlIHRoZSBzZXRfZmx1c2hpbmcgY29kZQoJICBiZWNhdXNlIHdlIGNhbid0IHRvdWNoIHRoZSBsaXZlX3BsYXlpbmcgZmxhZyBhbmQgd2UgbmVlZCB0byBzaWduYWwgdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuCgoyMDEzLTA4LTE0IDE3OjE0OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHN0b3AgZmx1c2hpbmcgaW4gZmx1c2gtc3RvcAoKMjAxMy0wOC0xNCAxNjo1ODo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgZmx1c2ggYmV0dGVyCgkgIFVubG9jayB0aGUgc3RyZWFtaW5nIHRocmVhZCB3aGVuIGZsdXNoaW5nIHNvIHRoYXQgd2UgY2FuCgkgIGluc2VydCB0aGUgZmx1c2gtc3RvcCBjb3JyZWN0bHkuCgoyMDEzLTA4LTE0IDE1OjQ2OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSAuZGlyc3RhbXAKCjIwMTMtMDgtMTQgMDc6MjE6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBEb24ndCB1c2Ugbm9kaXN0IGhlYWRlcnMgb24gZ2lyIHNjYW5uZXIKCSAgSnVzdCBjcmVhdGVzIG5vaXNlIGFuZCBib2d1cyBzeW1ib2xzCgoyMDEzLTA4LTA3IDE4OjIwOjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0OiBtaW5vciBkb2NzdHJpbmcgZml4dXBzIHRvIG1ha2UgZy1pIGhhcHB5CgkgIG5vdGU6IHRoZSAjaWZuZGVmIG1vdmUgaXMgYWN0dWFsbHkgYSBtb3ZlIG9mIHRoZSAiU0VDVElPTiIgZG9jc3RyaW5nCgoyMDEzLTA4LTEzIDE3OjE0OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IElnbm9yZSBmaWxlcyBmcm9tIGF1dG9tYWtlIHRlc3QtZHJpdmVyCgoyMDEzLTA4LTA3IDE4OjI0OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWRkIGEgcHJvcGVydHkgdG8gZGlzYWJsZSBwYXNzdGhyb3VnaAoJICBJbiBzb21lIHNwZWNpZmljIGNhc2VzIChsaWtlIHRyYW5zbXV4aW5nKSB3ZSB3YW50IHRvIGZvcmNlIHRoZSBlbGVtZW50CgkgIHRvIGFjdHVhbGx5IHBhcnNlIGFsbCBpbmNvbWluZyBkYXRhIGV2ZW4gaWYgdGhlIGVsZW1lbnQgZGVlbXMgaXQgaXMgbm90CgkgIG5lY2Vzc2FyeS4KCSAgVGhpcyBwcm9wZXJ0eSBzaW1wbHkgaWdub3JlcyByZXF1ZXN0cyBmcm9tIHRoZSBlbGVtZW50IHRvIGVuYWJsZSBwYXNzdGhyb3VnaAoJICBtb2RlIHdoaWNoIHJlc3VsdHMgaW4gcHJvY2Vzc2luZyBhbHdheXMgYmVpbmcgZW5hYmxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTYyMQoKMjAxMy0wOC0wNyAyMToyNjowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWU6IGFkZCBnc3RfZGF0YV9xdWV1ZV9wdXNoX2ZvcmNlCgkgIEFkZHMgYSB2YXJpYW50IG9mIHRoZSBfcHVzaCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgY2hlY2sgdGhlIHF1ZXVlIGxpbWl0cwoJICBiZWZvcmUgYWRkaW5nIHRoZSBuZXcgaXRlbS4gSXQgaXMgdXNlZnVsIHdoZW4gcHVzaGluZyBhbiBlbGVtZW50IHRvIHRoZQoJICBxdWV1ZSBzaG91bGRuJ3QgbG9jayB0aGUgdGhyZWFkLgoJICBPbmUgcGFydGljdWxhciBzY2VuYXJpbyBpcyB3aGVuIHRoZSBxdWV1ZSBpcyB1c2VkIHRvIHNlcmlhbGl6ZSBidWZmZXJzCgkgIGFuZCBldmVudHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgcHVzaGVkIGZyb20gYW5vdGhlciB0aHJlYWQuIFRoZQoJICBkYXRhcXVldWUgc2hvdWxkIGhhdmUgYSBsaW1pdCBvbiB0aGUgYW1vdW50IG9mIGJ1ZmZlcnMgdG8gYmUgc3RvcmVkIHRvCgkgIGF2b2lkIGxhcmdlIG1lbW9yeSBjb25zdW1wdGlvbiwgYnV0IGV2ZW50cyBjYW4gYmUgY29uc2lkZXJlZCB0byBoYXZlCgkgIG5lZ2xpZ2libGUgaW1wYWN0IG9uIG1lbW9yeSBjb21wYXJlZCB0byBidWZmZXJzLiBTbyBpdCBpcyB1c2VmdWwgdG8gYmUKCSAgdXNlZCB0byBwdXNoIGl0ZW1zIGludG8gdGhlIHF1ZXVlIHRoYXQgY29udGFpbiBldmVudHMsIGV2ZW4gdGhvdWdoIHRoZQoJICBxdWV1ZSBpcyBhbHJlYWR5IGZ1bGwsIGl0IHNob3VsZG4ndCBtYXR0ZXIgaW5zZXJ0aW5nIGFuIGl0ZW0gdGhhdCBoYXMKCSAgbm8gc2lnbmlmaWNhdGl2ZSBzaXplLgoJICBUaGlzIHNjZW5hcmlvIGhhcHBlbnMgb24gYWRhcHRpdmUgZWxlbWVudHMgKGRhc2hkZW11eCAvIG1zc2RlbXV4KSBhcwoJICB0aGVyZSBpcyBhIHNpbmdsZSBkb3dubG9hZCB0aHJlYWQgZmV0Y2hpbmcgYnVmZmVycyBhbmQgcHV0dGluZyBpbnRvIHRoZQoJICBkYXRhcXVldWVzIGZvciB0aGUgc3RyZWFtcy4gVGhpcyBzYW1lIGRvd25sb2FkIHRocmVhZCBjYW4gYWxzIGdlbmVyYXRlCgkgIGV2ZW50cyBpbiBzb21lIHNpdHVhdGlvbnMgYXMgY2FwcyBjaGFuZ2VzLCBlb3Mgb3IgYSBpbnRlcm5hbCBjb250cm9sCgkgIGV2ZW50cy4gVGhlcmUgY2FuIGJlIGEgZGVhZGxvY2sgYXQgcHJlcm9sbCBpZiB0aGUgZmlyc3QgYnVmZmVyIGZldGNoZWQKCSAgaXMgbGFyZ2UgZW5vdWdoIHRvIGZpbGwgdGhlIGRhdGFxdWV1ZSBhbmQgdGhlIGRvd25sb2FkIHRocmVhZCBhbmQgdGhlCgkgIG5leHQgaXRlcmF0aW9uIG9mIHRoZSBkb3dubG9hZCB0aHJlYWQgZGVjaWRlcyB0byBwdXNoIGFuIGV2ZW50IHRvIHRoaXMKCSAgc2FtZSBkYXRhcXVldWUgYmVmb3JlIGZldGNoaW5nIGJ1ZmZlcnMgdG8gb3RoZXIgc3RyZWFtcywgaWYgdGhpcyBwdXNoCgkgIGxvY2tzLCB0aGUgcGlwZWxpbmUgd2lsbCBiZSBzdHVjayBpbiBwcmVyb2xsIGFzIG5vIG1vcmUgYnVmZmVycyB3aWxsIGJlCgkgIGRvd25sb2FkZWQuCgkgIFRoZXJlIGlzIGEgc29tZXdoYXQgY29tbW9uIHByYWN0aWNlIGluIGRhc2ggc3RyZWFtcyB0byBoYXZlIGEgc2luZ2xlCgkgIHZlcnkgbGFyZ2UgYnVmZmVyIGZvciBhdWRpbyBhbmQgb25lIGZvciB2aWRlbywgc28gdGhpcyB3aWxsIGFsd2F5cwoJICBoYXBwZW4gYXMgdGhlIGRvd25sb2FkIHRocmVhZCB3aWxsIGhhdmUgdG8gcHVzaCBhbiBFT1MgcmlnaHQgYWZ0ZXIKCSAgZmV0Y2hpbmcgdGhlIGZpcnN0IGJ1ZmZlciBmb3IgYW55IHN0cmVhbS4KCSAgQVBJOiBnc3RfZGF0YV9xdWV1ZV9wdXNoX2ZvcmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2OTQKCjIwMTMtMDgtMTMgMTM6MDY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgc3lzbWVtOiBPbmx5IGNvcHkgdGhlIHJlcXVlc3RlZCBwYXJ0IG9mIG1lbW9yeSBpbnN0ZWFkIG9mIHRoZSBjb21wbGV0ZSBzb3VyY2UgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2NzgKCjIwMTMtMDgtMTMgMTI6MTE6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBhZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IEFQSSBhbmQgYWRkIHRvIGV4cG9ydHMgZmlsZQoKMjAxMy0wNy0yMyAxNjoyNToyNyArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGFubm90YXRpb24gZm9yIGdzdF9xdWVyeV9wYXJzZV91cmkKCjIwMTMtMDQtMTkgMTI6MTQ6NTQgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBuZXcgcmVkaXJlY3Rpb24gdXJpIHRoZSBVUkkgcXVlcnkKCjIwMTMtMDgtMTIgMDk6MjU6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIHNvbWUgbWlzc2luZyAndHJhbnNmZXIgbm9uZScgZ2kgYW5ub3RhdGlvbnMKCSAgVGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBpcyBjb250cm92ZXJzZSwgd2hpbGUgaXQgc3RhdGVzIHRoYXQgdGhlCgkgIHJldHVybmVkIHZhbHVlIGlzIHZhbGlkIG9ubHkgd2hpbGUgdGhlIHF1ZXJ5IGlzIGlzIHZhbGlkLCB3aGljaCBwcmVzdW1lcwoJICBhICd0cmFuc2ZlciBub25lJyBwb2xpY3kuIEJ1dCB0aGUgdG9vbHRpcCBmb3IgdGhlICdvdXQnIGFubm90YXRpb24KCSAgc3RhdGVzIHRoZSBkZWZhdWx0IGlzICd0cmFuc2Zlci1mdWxsJy4KCSAgQWRkIHRoZSBtaXNzaW5nICd0cmFuc2ZlciBub25lJyBhbm5vdGF0aW9ucyB0byBmaXggdGhpcy4KCjIwMTMtMDgtMDggMTI6MDg6MzEgKzAyMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBBY2NlbGVyYXRlIE1QRUcvSDI2NCBzdGFydCBjb2RlIHNjYW5uaW5nCgkgIEFjY2VsZXJhdGUgTVBFRy9IMjY0IHN0YXJ0IGNvZGUgc2Nhbm5pbmcgdXNpbmcgQm95ZXItTW9vciBiYWQgY2hhcmFjdGVyCgkgIGhldXJpc3RpYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjM1NwoKMjAxMy0wOC0xMCAxMTozMToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogZy1pOiBhbGxvdyBjbG9jayB0byBiZSBOVUxMIGluIGdzdF9waXBlbGluZV91c2VfY2xvY2soKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NzUxCgoyMDEzLTA4LTA3IDE0OjE3OjI4IC0wMzAwICBBZHJpYW4gUGFyZGluaSA8cHVibGljb0B0YW5nb3BhcmRvLmNvbS5hcj4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZml4ZXMgaW50IG92ZXJmbG93IHdpdGggcHJvcGVydGllcyB0aGF0IHNwYW4gKy1JTlRfTUFYCgkgIFdoZW4gdGhlIHJhbmdlIGZvciBhIHByb3BlcnR5IGlzIGRlZmluZWQgYXMgLUlOVF9NQVgtMSAuLiBJTlRfTUFYLCBsaWtlCgkgIHRoZSB4cG9zIGluIGEgdmlkZW9taXhlciB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gaW4gdGhlIG1hY3JvCgkgIGRlZmluaXRpb25zIG9mIGNvbnZlcnRfZ192YWx1ZV90b18jI3R5cGUgKGFuZCB0aGUgZXF1aXZhbGVudCBpbgoJICBjb252ZXJ0X3ZhbHVlX3RvXyMjdHlwZSkKCSAgdiA9IHBzcGVjLT5taW5pbXVtICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgocHNwZWMtPm1heGltdW0gLSBwc3BlYy0+bWluaW11bSkgKiBzKTsKCSAgYXJlIGNvbnZlcnRlZCB0bzoKCSAgdiA9IC0yMTQ3NDgzNjQ4ICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgoMjE0NzQ4MzY0NyAtIC0yMTQ3NDgzNjQ4KSAqIHMpOwoJICAoMjE0NzQ4MzY0NyAtIC0yMTQ3NDgzNjQ4KSBvdmVyZmxvd3MgdG8gLTEgYW5kIHRoZSBuZXQgcmVzdWx0IGlzOgoJICB2ID0gLTIxNDc0ODM2NDggKyAoZyMjdHlwZSkgUk9VTkRJTkdfT1AgKC0xICogcyk7CgkgIHNvIHYgb25seSB0YWtlcyB0aGUgdmFsdWVzIC0yMTQ3NDgzNjQ4IGZvciBzID09IDAgYW5kIDIxNDc0ODM2NDcKCSAgZm9yIHMgPT0gMS4KCSAgUmV3cml0aW5nIHRoZSBleHByZXNzaW9uIGFzIG1pbmltdW0qKDEtcykgKyBtYXhpbXVtKnMgZ2l2ZXMgdGhlIGNvcnJlY3QKCSAgcmVzdWx0IGluIHRoaXMgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MDU2MzAKCjIwMTMtMDgtMDIgMTM6MzE6NTkgKzAyMDAgIEx1Ym9zeiBTYXJuZWNraSA8bHVib3N6QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IGFkZCBzdWJkaXItb2JqZWN0cyB0byBBTV9JTklUX0FVVE9NQUtFCgkgIEZpeGVzIHdhcm5pbmdzIHdpdGggYXV0b21ha2UgMS4xNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MzUwCgoyMDEzLTA4LTAyIDE2OjIxOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIGRlc2lnbjogZml4IHR5cG8KCjIwMTMtMDctMjkgMTU6NDg6MzIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYmFja3dhcmRzIHNlZWtzIGludG8gdW5kb3dsb2FkZWQgcmFuZ2VzCgkgIFdoZW4gaW4gZG93bmxvYWQgYnVmZmVyaW5nIG1vZGUgcXVldWUyIGRpZG4ndCBjaGVjayBpZiBhIHJhbmdlIG9mZnNldCBpcwoJICBpbiBhIHVuZG93bmxvYWRlZCByYW5nZSBiZWZvcmUgdGhlIGN1cnJlbnRseSBpbi1wcm9ncmVzcyByYW5nZS4gQ2F1c2luZwoJICBzZWVrcyB0byBhbiBlYXJsaWVyIG9mZnNldCB0bywgd2VsbCwgdGFrZSBhIHdoaWxlLgoKMjAxMy0wNy0zMCAxOToyNzoyMyArMDIwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBkb2NzOiBzb21lIHNtYWxsIGd0ay1kb2MgbWFya3VwIGZpeGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxNTYKCjIwMTMtMDctMzAgMTk6Mjc6MjMgKzAyMDAgIEtqYXJ0YW4gTWFyYWFzIDxrbWFyYWFzQGdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWdpc3RlciBuZXcgY29sb3IgbW9kZSBlbnVtLCBmaXhpbmcgJ21ha2UgY2hlY2snCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxNTYKCjIwMTMtMDQtMTYgMTk6MDQ6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogQXZvaWQgdXNpbmcgYnVmZmVyX2dldF9zaXplIGluIHRpZ2h0IGxvb3BzCgkgIENhbGxpbmcgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSByZXByZXNlbnRlZCAyLzMgb2YgdGhlIGNvc3Qgb2YgaGVscGVyX2ZpbmRfcGVlawoJICB3aGljaCB3YXMgY2FsbGVkIHdoZW5ldmVyIGEgdHlwZWZpbmRmdW5jdGlvbiB3YW50ZWQgdG8gcGVlayBhdCBkYXRhLgoJICBXZSBhbHJlYWR5IGtub3cgdGhlIHNpemUgKGZyb20gdGhlIEdzdE1hcEluZm8pLCBzbyBqdXN0IHVzZSB0aGF0LgoKMjAxMy0wNy0yOSAxOTozODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTMtMDctMjkgMTk6MTM6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogcmV2ZXJ0IGFjY2lkZW50YWwgcmUtd2luZGluZyBvZiBjb21tb24gc3VibW9kdWxlCgoyMDEzLTA3LTI2IDE2OjE1OjI0ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQ2xhcmlmeSB0aGUgZXN0aW1hdGVkLXRvdGFsIGRvY3VtZW50YXRpb24KCSAgVHdlYWsgdGhlIGRvY3VtZW50YXRpb24gc2xpZ2h0bHkgdG8gY2xhcmlmeSB0aGF0IHRoZSBlc3RpbWF0ZWQtdG90YWwgaW4KCSAgYSBhIEJ1ZmZlcmluZyBxdWVyeSB0aGUgdG90YWwgcmVtYWluaW5nIHRpbWUgb2YgYSBkb3dubG9hZCwgbm90IHRoZQoJICB0b3RhbCB0aW1lIGZvciB0aGUgY29tcGxldGUgZG93bmxvYWQuIEFsc28gaW5kaWNhdGUgdGhlIHVuaXQgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDkzNAoKMjAxMy0wNy0yNiAxNTowODoxMyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZvcndhcmQgdGhlIHNjaGVkdWxlIHF1ZXJ5IHVwc3RyZWFtCgkgIFdoZW4gYXNrZWQgYWJvdXQgdGhlIHNjaGVkdWxpbmcgZmxhZ3MgZmlyc3QgY2hlY2sgd2l0aCB1cHN0cmVhbSBhbmQKCSAgc2ltcGx5IGFkZCB0aGUgX1NFRUtBQkxFIGZsYWcgd2hlbiB1c2luZyBhIHRlbXBvcmFyeSBmaWxlIGFzIHN0b3JhZ2UuCgkgIFRoaXMgZW5hYmxlcyB0aGUgZm9yd2FyZGluZyBvZiBfU0VRVUVOVElBTCBhbmQgX0JBTkRXSURUSF9MSU1JVEVEIGZyb20KCSAgc291cmNlcyBpZiBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5MjcKCjIwMTMtMDctMjkgMTQ6NDc6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjMgPT09CgoyMDEzLTA3LTI5IDEzOjM0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjMKCjIwMTMtMDctMjkgMTM6MzA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wNy0yOSAxMjoxMDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogRml4IGhhbmRsaW5nIG9mIFNFR01FTlQgcXVlcnkKCSAgVGhlIHZhbHVlcyBzaG91bGQgYmUgaW4gc3RyZWFtLXRpbWUsIGFuZCBzdGFydC9zdG9wIHNob3VsZCBub3QKCSAgYmUgc3dhcHBlZCBmb3IgbmVnYXRpdmUgcmF0ZXMuCgoyMDEzLTA3LTI5IDExOjA1OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBhZHZhbmNlIG9mZnNldCBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdlIGFjdHVhbGx5IHJlYWQKCSAgVGhlcmUgbWlnaHQgYmUgYSBzaG9ydCByZWFkIGF0IEVPUy4KCjIwMTMtMDctMjkgMTA6NDg6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogSW1wbGVtZW50IFNFR01FTlQgcXVlcnkKCjIwMTMtMDctMjYgMTg6MzY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IFNpbmNlOiBtYXJrZXIgZm9yIG5ldyBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkKCjIwMTMtMDctMjYgMTI6MTk6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGRlYnVnIHRoZSBjbG9jayByZXR1cm4gdmFsdWVzCgoyMDEzLTA3LTI1IDEyOjIwOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZXFudW0gaGFuZGxpbmcgZm9yIHNlZWtzCgkgIFVzZSB0aGUgc2FtZSBzZXFudW0gYXMgdGhlIHNlZWsgZm9yIGZsdXNoZXMvc2VnbWVudHMgdGhhdCBhcmUKCSAgY2F1c2VkIGJ5IHRoZSBzZWVrLiBBbHNvIGRvIHRoZSBzYW1lIGZvciBzZWdtZW50IGV2ZW50cwoJICBGaXhlcyAjNjc2MjQyCgoyMDEzLTA3LTI0IDEwOjI5OjMwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHBhcnNlIGRlYnVnIGxldmVscyA+IDkKCjIwMTMtMDctMjQgMTY6NTc6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogRml4IGNvcHkmcGFzdGUgbWlzdGFrZXMgaW4gdGhlIGJpdG1hc2sgZnVuY3Rpb24gZG9jcwoKMjAxMy0wNy0yNCAxMToyMToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3Qgc2hhZG93IHZhcmlhYmxlcyB0aGF0IGFyZSBzZXQgaW5zaWRlIG91ciBzY29wZSBhbmQgdGhlbiB1c2VkIG91dHNpZGUgb3VyIHNjb3BlCgkgIEZpeGVzIHVuaW5pdGlhbGl6ZWQgdXNlIG9mIHRoZXNlIHZhcmlhYmxlcy4KCjIwMTMtMDctMjQgMTA6MzA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIG90aGVyIGludGVyZmFjZSBzdHJ1Y3RzIGZyb20gdGhlIEFCSSB0ZXN0cyB0b28KCjIwMTAtMTAtMTUgMTM6MTY6NTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBSZW1vdmUgR3N0VGFnU2V0dGVyIGZyb20gQUJJIGNoZWNrcwoJICBJbnRlcmZhY2VzIGNhbiBoYXZlIG5ldyBtZW1iZXJzIGFkZGVkIHdpdGhvdXQgYnJlYWtpbmcgQUJJLCBzbwoJICByZW1vdmUgaXQgZnJvbSB0aGUgY2hlY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM3OTkKCjIwMTMtMDctMjMgMTU6Mzk6NTMgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkgIGxpYmNoZWNrOiBFc2NhcGUgc3RyaW5ncyBpbiB0aGUgZ2VuZXJhdGVkIHhtbCBmaWxlcwoJICBUaGlzIGlzIGNvcHkgcGFzdGVkIGZyb20gdXBzdHJlYW0gbGliY2hlY2sKCjIwMTMtMDctMjMgMTg6NTM6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFByaW50IHNvbWUgZGVidWcgb3V0cHV0IGlmIGEgc3RyZWFtLXN0YXJ0IGV2ZW50IHdpdGhvdXQgZ3JvdXAtaWQgYXJyaXZlcwoJICBJZGVhbGx5IGFsbCBlbGVtZW50cyB3b3VsZCBpbXBsZW1lbnQgaGFuZGxpbmcgb2YgdGhhdCB0byBnZXQgcHJvcGVyCgkgIHN0cmVhbS1zdGFydCBtZXNzYWdlIGhhbmRsaW5nIGFuZCBvdGhlciB0aGluZ3MuCgoyMDEzLTA3LTIyIDE4OjAzOjAxICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRml4IG1pc3NpbmcgcGFkIGFjdGl2YXRpb24gbm90aWZpY2F0aW9uCgkgIEEgbmV3IGFjdGl2ZSBwYWQgbWlnaHQgbm90IGJlIG5vdGlmaWVkIGluIHNvbWUgY2FzZXMsIHdoaWNoIHJlc3VsdHMKCSAgaW4gdGhlIGN1cnJlbnQgdHJhY2sgbnVtYmVyIG5vdCBiZWluZyBzZXQgaW4gcGxheWJpbi4KCSAgVGhlIGFjdGl2ZS1wYWQgbm90aWZpY2F0aW9uIGlzIG9ubHkgc2VudCBpbiB0aGUgY2hhaW4gYW5kIHNpbmtfZXZlbnQKCSAgZnVuY3Rpb25zLCBhbmQgb25seSB3aGVuIHRoZSBidWZmZXIgb3IgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGFjdGl2ZQoJICBwYWQgc2VsZWN0aW9uIGlzIGZyb20gdGhlIG5ld2x5IGFjdGl2YXRlZCBwYWQuIFNvIGluIHRoZSBvdGhlciBjYXNlCgkgIHRoZSBub3RpZmljYXRpb24gd2lsbCBuZXZlciBiZSBzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0NjkxCgoyMDEzLTA3LTIyIDE3OjI1OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogaGFuZGxlIGRlc2VyaWFsaXNhdGlvbiBvZiBub25leGlzdGFudCBlbnVtIHZhbHVlIG1vcmUgZ3JhY2VmdWxseQoKMjAxMy0wNy0yMiAxNDoxMjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBwdXNoIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnRzIG9uIHN0cmVhbSBjaGFuZ2UgdW5sZXNzIHRoZXkgYWxsIGhhdmUgZ3JvdXAgaWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ0MDgKCjIwMTMtMDctMjIgMTI6MDY6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBVc2UgbmV3IGdyb3VwLWlkIGluIHN0cmVhbS1zdGFydCBldmVudAoKMjAxMy0wNy0yMiAxMjowNjowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogVXNlIG5ldyBncm91cC1pZCBmaWVsZCBpbiBzdHJlYW0tc3RhcnQgZXZlbnQgYW5kIG1lc3NhZ2UKCjIwMTMtMDctMjIgMTE6NDI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBVc2UgdGhlIG5ldyBncm91cC1pZCBmaWVsZCBvZiB0aGUgc3RyZWFtLXN0YXJ0IG1lc3NhZ2UgZm9yIHN0cmVhbS1zdGFydCBtZXNzYWdlIGFnZ3JlZ2F0aW9uCgkgIElmIGFsbCBzdHJlYW0tc3RhcnQgbWVzc2FnZXMgaGFkIGEgZ3JvdXAgaWQgKGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSksCgkgIHdlIG9ubHkgY29uc2lkZXIgYSBzdHJlYW0gc3RhcnRlZCBpZiBhbGwgaGFkIHRoZSBzYW1lIGdyb3VwIGlkLgoJICBJbiAyLjAgd2Ugc2hvdWxkIG1ha2UgdGhlIGdyb3VwIGlkIG1hbmRhdG9yeS4KCjIwMTMtMDctMjIgMTE6NDE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBuZXcgZ3JvdXAtaWQgZmllbGQgdG8gdGhlIHN0cmVhbS1zdGFydCBldmVudAoJICBBbGwgc3RyZWFtcyB0aGF0IGhhdmUgdGhlIHNhbWUgZ3JvdXAgaWQgYXJlIHN1cHBvc2VkIHRvIGJlIHBsYXllZAoJICB0b2dldGhlciwgaS5lLiBhbGwgc3RyZWFtcyBpbnNpZGUgYSBjb250YWluZXIgZmlsZSBzaG91bGQgaGF2ZSB0aGUKCSAgc2FtZSBncm91cCBpZCBidXQgZGlmZmVyZW50IHN0cmVhbSBpZHMuIFRoZSBncm91cCBpZCBzaG91bGQgY2hhbmdlCgkgIGVhY2ggdGltZSB0aGUgc3RyZWFtIGlzIHN0YXJ0ZWQsIHJlc3VsdGluZyBpbiBkaWZmZXJlbnQgZ3JvdXAgaWRzCgkgIGVhY2ggdGltZSBhIGZpbGUgaXMgcGxheWVkIGZvciBleGFtcGxlLgoKMjAxMy0wNy0xOCAyMzoyOTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiByZXZlcnQgYWNjaWRlbnRhbCBjaGFuZ2Ugb2YgY29tbW9uIHN1Ym1vZHVsZQoKMjAxMy0wNy0xOCAxNDozOTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZ3N0OiBBZGQgc29tZSBtb3JlIFNpbmNlOiAxLjIKCjIwMTMtMDctMTggMTQ6MzQ6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEFkZCBzb21lIFNpbmNlOiAxLjIKCjIwMTMtMDctMTggMTU6MTA6MTAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogQWRkIGRlYnVnIGNvbG9yIG1vZGUgb3B0aW9uCgkgIFRoaXMgYWxsb3dzIHRvIGV4cGxpY2l0ZWx5IHNldCB0aGUgZGVidWcgb3V0cHV0IGNvbG9yCgkgIG1vZGUgdG8gVU5JWCBvbiBldmVyeSBwbGF0Zm9ybSwgZW5hYmxlIGl0ICh1c2UgcGxhdGZvcm0KCSAgZGVmYXVsdCBjb2xvciBtb2RlKSBvciBlbmFibGUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQzMjAKCjIwMTItMDQtMTggMTQ6MzU6MzIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRml4IGJsYWNrIGFuZCB1bmRlcmxpbmUgY29sb3Jpbmcgb24gVzMyCgkgIEZpeGVzICM2NzQzMjAKCjIwMTItMDQtMTggMTQ6MTI6MTYgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogQ3V0IGRvd24gc3JjIGZpbGUgbmFtZXMgZm9yIE1pbkdXIHRvbwoJICBGaXhlcyAjNjc0MzIwCgoyMDEzLTA3LTE2IDE3OjQ3OjQ1ICswMjAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEZpeCBnc3QtcGx1Z2lucy1nbCBpbiB1bmluc3RhbGxlZCBzZXR1cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNDk5CgoyMDEzLTA3LTE2IDE1OjM1OjA4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBUYWtlIGFjY291bnQgb2YgdGhlIHNraXAgaW4gZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfZmFzdCgpCgkgIEluY2x1ZGUgcmVncmVzc2lvbiB0ZXN0CgoyMDEzLTA3LTE1IDE1OjQxOjQ0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGQgZnVuY3Rpb24gdG8gcmV0dXJuIGJ1ZmZlciBjb21wb3NlZCBvZiBtdWx0aXBsZSBtZW1vcmllcwoJICBBUEk6IGdzdF9hZGFwdGVyX3Rha2VfZmFzdCgpCgoyMDEzLTA3LTE2IDE2OjI0OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IERvbid0IGFzc2VydCBpZiBubyBjb250ZXh0IGlzIHNldCBpbiB0aGUgcXVlcnkKCjIwMTMtMDctMTYgMTQ6NDc6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGJlbmNobWFya3M6IGlnbm9yZSBuZXcgYmVuY2htYXJrIGJpbmFyeQoKMjAxMy0wNy0xNiAxNDo0NjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHNwcmlua2xlIHNvbWUgU2luY2UgMS4yIG1hcmtlcnMgaW4gZG9jcwoKMjAxMy0wNy0xNiAxNDo0NDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgdGltZXByb3ZpZGVyOiBnLWk6IGFsbG93IE5vbmUgYXMgYWRkcmVzcyBmb3IgZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldygpCgoyMDEzLTA3LTE2IDE1OjM0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBSZXR1cm4gYW4gZW1wdHkgR3N0Q29udGV4dCBpZiBub25lIHdhcyBzZXQgeWV0CgoyMDEzLTA3LTE2IDE1OjE2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogQWRkIGdzdF9xdWVyeV9oYXNfY29udGV4dF90eXBlKCkKCjIwMTMtMDctMTYgMTE6MzY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBvbmx5IGJsb2NrIHNlcmlhbGl6ZWQgcXVlcnkgd2hlbiBpdCdzIHNhZmUKCSAgV2UgbXVzdCBiZSBjZXJ0YWluIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYSBkZWFkbG9jayB3aGVuIGJsb2NraW5nIHRoZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMuIE9uZSBzdWNoIGRlYWRsb2NrIGNhbiBoYXBwZW4gd2hlbiB3ZSBhcmUgYnVmZmVyaW5nIGFuZCBkb3duc3RyZWFtIGlzCgkgIGJsb2NrZWQgaW4gcHJlcm9sbCBhbmQgYSBzZXJpYWxpemVkIHF1ZXJ5IGFycml2ZXMuIERvd25zdHJlYW0gd2lsbCBub3QgdW5ibG9jawoJICAoYW5kIGFsbG93IG91ciBxdWVyeSB0byBleGVjdXRlKSB1bnRpbCB3ZSBjb21wbGV0ZSBidWZmZXJpbmcgYW5kIGJ1ZmZlcmluZyB3aWxsCgkgIG5vdCBjb21wbGV0ZSB1bnRpbCB3ZSBjYW4gYW5zd2VyIHRoZSBxdWVyeS4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDAKCjIwMTMtMDctMTUgMTE6MzY6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBIG5ld2x5IGFjdGl2YXRlZCBwYWQgc2hvdWxkIGJlIG1hcmtlZCBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbgoKMjAxMy0wNy0xNSAxMTozMjo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogRG9uJ3QgY29uc2lkZXIgZmx1c2hpbmcgcGFkcyBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NDhhOWQyZjJiNzI4ZjVmYjYwYmU0NWQ0N2E4MThjZWJlYjYwYzdkLgoJICBUaGlzIGlzIHJhY3kgYW5kIHRyeWluZyB0byByZWNvbmZpZ3VyZSBhbmQgZmFpbCBpcyBzdGlsbCBiZXR0ZXIKCSAgdGhhbiBub3QgdHJ5aW5nIHRvIHJlY29uZmlndXJlIGF0IGFsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDEwMAoKMjAxMy0wNy0xNSAxMTozMjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IExlYXZlIHRoZSBsb29wIGZ1bmN0aW9uIGZhc3RlciBpZiB3ZSdyZSBmbHVzaGluZwoJICBFc3BlY2lhbGx5IGRvbid0IGV2ZW4gdHJ5IHRvIHNlbmQgc3RyZWFtLXN0YXJ0IGV2ZW50IG9yIHRyeQoJICB0byBuZWdvdGlhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxMDAKCjIwMTMtMDctMTIgMTA6MDg6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEZWFjdGl2YXRlIGFuZCByZW1vdmUgcGFkIHdpdGhvdXQgdGhlIGlucHV0c2VsZWN0b3IgbG9jawoJICBPdGhlcndpc2Ugd2UgbWlnaHQgZ2V0IGRlYWRsb2NrcyBjYXVzZWQgYnkgbG9jayBvcmRlciBpbnZlcnNpb246CgkgIER1cmluZyB0aGUgY2hhaW4gZnVuY3Rpb24gdGhlIHN0cmVhbSBsb2NrIGlzIGZpcnN0IGxvY2tlZCBhbmQgdGhlbiB0aGUKCSAgaW5wdXRzZWxlY3RvciBsb2NrLiBEdXJpbmcgcGFkIHJlbGVhc2Ugd2UgZmlyc3QgbG9ja2VkIHRoZSBpbnB1dHNlbGVjdG9yCgkgIGxvY2sgYW5kIHRoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQgd291bGQgbG9jayB0aGUgc3RyZWFtIGxvY2suCgkgIFRoZXJlJ3Mgbm8gcmVhc29uIHdoeSB0aGUgaW5wdXRzZWxlY3RvciBsb2NrIHNob3VsZCBiZSByZXF1aXJlZCB3aGlsZQoJICBkZWFjdGl2YXRpbmcgYW5kIHJlbW92aW5nIHRoZSBwYWQsIGl0J3Mgb25seSBuZWVkZWQgYmVmb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MDAyCgoyMDEzLTA3LTExIDE2OjU3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS4yID09PQoKMjAxMy0wNy0xMSAxNToxMjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS4yCgoyMDEzLTA3LTExIDE1OjExOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDctMTAgMTU6NTI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBbHdheXMgZm9yd2FyZCBjbG9jay1sb3N0IG1lc3NhZ2UgaWYgd2UncmUgbm90IGEgdG9wLWxldmVsIGJpbgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBubyBiaW4gbWlzc2VzIHRoZSBjbG9jay1sb3N0IG1lc3NhZ2VzLCBpbmRlcGVuZGVudAoJICBvZiB0aGUgc3RhdGUsIGFuZCBjb3VsZCByZXR1cm4gYW4gb2xkLCBub24td29ya2luZyBjbG9jayBmcm9tCgkgIGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE5OTcKCjIwMTMtMDctMTAgMTQ6MzA6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBLZWVwIHByZXZpb3VzIGFjdGl2ZSBzaW5rcGFkIGFyb3VuZCB1bnRpbCB3ZSdyZSBkb25lIHdpdGggaXQKCSAgT3RoZXJ3aXNlIHdlJ2xsIHNlbmQgYSBuZXcgc2VnbWVudCBldmVudCBkb3duc3RyZWFtIGZvciBlYWNoIGJ1ZmZlci4KCjIwMTMtMDctMDggMTU6MjY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGZpeCB0eXBlIG9mIGdzdF9tZW1vcnlfYWxpZ25tZW50IHRvIG1hdGNoIGRlY2xhcmF0aW9uCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmdzIHN1Y2ggYXMKCSAgZ3N0YWxsb2NhdG9yLmM6NjE6ODogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAnZ3N0X21lbW9yeV9hbGlnbm1lbnQnCgkgIC4uL2dzdC9nc3RhbGxvY2F0b3IuaDo1MjoxODogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2dzdF9tZW1vcnlfYWxpZ25tZW50JyB3YXMgaGVyZQoKMjAxMy0wNy0wNSAyMTozNjoyNyArMDIwMCAgUGlvdHIgRHLEhWcgPHBpb3RyZHJhZ0BnbWFpbC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IHVwZGF0ZSBQT1RGSUxFUy5pbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNjgyCgoyMDEzLTA3LTA0IDIwOjM5OjI2IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG8gbm90IGxvY2sgYSBtdXRleCB0aGF0IGRvZXMgbm90IGV4aXN0CgkgIFRoZSBHU1RfTElWRV9MT0NLIGlzIG9uIEdzdEJhc2VTcmMsIG5vdCBvbiBpdHMgc291cmNlIHBhZC4KCjIwMTMtMDctMDMgMjE6MjM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IFBUUyBhZnRlciBzZWVrCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI3NzgKCjIwMTMtMDctMDMgMTM6MDM6NDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIEFkZCBmZXcgbWlzc2luZyBhbGxvdy1ub25lIGFubm90YXRpb24KCjIwMTMtMDctMDMgMDk6Mjc6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgbmV3IC1iYWQgbXBlZ3RzIGxpYgoJICBBbmQgcmVtb3ZlIHNpZ25hbHByb2Nlc3Nvci92aWRlbyBsaWJzIGZyb20gLWJhZCB3aGljaCBoYXZlIGdvbmUKCSAgYXdheSBvciB3ZXJlIG1lcmdlZCBpbnRvIC1iYXNlLgoKMjAxMy0wNy0wMSAyMDozNToyMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IFJlLXB1c2ggYWxsIHN0aWNreSBldmVudHMgd2hlbiBidWZmZXJzIGNvbWUgZnJvbSBhIGRpZmZlcmVudCBwYWQKCSAgRG9uJ3Qgc3BlY2lhbCBjYXNlIHNlZ21lbnQvY2FwcywganVzdCBwdXNoIGFsbCBzdGlja3kgZXZlbnRzIHdoZW4gdGhleSBhcmUKCSAgcmVjZWl2ZWQgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgcGFkIG9yIHdoZW4gdGhlIGFjdGl2ZSBwYWQgY2hhbmdlcy4KCjIwMTMtMDctMDEgMjA6MjE6MTAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFVzZSBkZWZhdWx0IHBhZCBmdW5jdGlvbiBmb3IgdXBzdHJlYW0gZXZlbnQvcXVlcmllcwoJICBUaGUgZGVmYXVsdCBmdW5jdGlvbnMgaW4gMS54IGFscmVhZHkgZG8gdGhlIHJpZ2h0IHRoaW5nCgoyMDEzLTA3LTAxIDIwOjE4OjU4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBSZW1vdmUgZnVubmVsIHBhZF9hbGxvYyB0ZXN0CgoyMDEzLTA3LTAxIDIwOjA3OjAzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IENoYW5nZSBzdHJlYW1faWQgcGFyYW1ldGVyIG5hbWUgdG8gbWF0Y2ggR3RrRG9jCgoyMDEzLTA3LTAxIDExOjEwOjAwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgY2hlY2s6IEFkZGVkIGdzdF9jaGVja19zZXR1cF9ldmVudHNfd2l0aF9zdHJlYW1faWQoKQoJICBBZGRlZCBhIG5ldyBmdW5jdGlvbiBnc3RfY2hlY2tfc2V0dXBfZXZlbnRzX3dpdGhfc3RyZWFtX2lkKCksIHNpbmNlCgkgIGdzdF9jaGVja19zZXR1cF9ldmVudHMoKSBkb2VzIG5vdCB3b3JrIHdpdGggbXVsdGlwbGUgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzM3NwoKMjAxMy0wNi0zMCAxODozOTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGNvbnNpZGVyIGZsdXNoaW5nIHBhZHMgYXMgbmVlZGluZyByZWNvbmZpZ3VyYXRpb24KCSAgUmVuZWdvdGlhdGlvbiBhbmQgcmVjb25maWd1cmF0aW9uIHdpbGwgZmFpbCBiZWNhdXNlIGFsbCBxdWVyaWVzCgkgIGFuZCBldmVudHMgd29uJ3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHBhZCBpZiBpdCdzIGZsdXNoaW5nLiBJbiB0aGUKCSAgYmVzdCBjYXNlIHRoaXMganVzdCBjYXVzZXMgdW5uZWVkZWQgd29yayBhbmQgc3B1cmlvdXMgd2FybmluZ3MgaW4KCSAgdGhlIGRlYnVnIGxvZ3MsIGluIHRoZSB3b3JzdCBjYXNlIGl0IGNhdXNlcyBlbGVtZW50cyB0byBmYWlsIGNvbXBsZXRlbHkuCgoyMDEzLTA2LTI0IDIzOjI1OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBvbmx5IGJsb2NrIHNlcmlhbGl6ZWQgcXVlcnkgd2hlbiBpdCdzIHNhZmUKCSAgV2UgbXVzdCBiZSBjZXJ0YWluIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYSBkZWFkbG9jayB3aGVuIGJsb2NraW5nIHRoZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMuIE9uZSBzdWNoIGRlYWRsb2NrIGNhbiBoYXBwZW4gd2hlbiB3ZSBhcmUgYnVmZmVyaW5nIGFuZCBkb3duc3RyZWFtIGlzCgkgIGJsb2NrZWQgaW4gcHJlcm9sbCBhbmQgYSBzZXJpYWxpemVkIHF1ZXJ5IGFycml2ZXMuIERvd25zdHJlYW0gd2lsbCBub3QgdW5ibG9jawoJICAoYW5kIGFsbG93IG91ciBxdWVyeSB0byBleGVjdXRlKSB1bnRpbCB3ZSBjb21wbGV0ZSBidWZmZXJpbmcgYW5kIGJ1ZmZlcmluZyB3aWxsCgkgIG5vdCBjb21wbGV0ZSB1bnRpbCB3ZSBjYW4gYW5zd2VyIHRoZSBxdWVyeS4uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDAKCjIwMTMtMDYtMTkgMTI6MzA6NDcgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCBhIGZpbHRlciB0byB0aGUgY2Fwc19xdWVyeSBkb25lIGJ5IGFjY2VwdGNhcHMKCSAgVXNlIHRoZSBjYXBzIHRoYXQgdGhlIHBhZCBpcyBhc2tlZCB0byBhY2NlcHQgYXMgZmlsdGVyIGZvciB0aGUgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYzMgoKMjAxMy0wNi0xOSAxMjoxOTowMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb3B0aW1pemUgZGVmYXVsdCBhY2NlcHRjYXBzIGltcGxlbWVudGF0aW9uCgkgIFBhc3MgdGhlIGZpeGVkIGNhcHMgd2UncmUgYXNrZWQgdG8gYWNjZXB0IGFzIGEgZmlsdGVyIGZvciB0aGUgY2FwcwoJICBxdWVyeSwgc28gd2UgZG9uJ3QgZ2V0IGEgZnVsbHktZXhwYW5kZWQgc2V0IG9mIGNhcHMgYmFjayAod2hpY2ggd2UgZG9uJ3QKCSAgbmVlZCBhbmQgY2FuIHRha2UgYSBsb3Qgb2YgdGltZSBmb3IgaW50ZXJzZWN0aW9uKS4KCSAgVGhpcyByZWR1Y2VzIHRoZSB0aW1lIGZvciBjYW1lcmFiaW4gdG8gcHJvZHVjZSBhIHNlY29uZCBmcmFtZSBvbiBhCgkgIGxvZ2l0ZWNoIEM5MTAgY2FtZXJhIGZyb20gYXJvdW5kIDUyIHNlY29uZHMgdG8gYSBiaXQgbGVzcyB0aGVuIDE2CgkgIHNlY29uZHMgb24gbXkgc3lzdGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjMyCgoyMDEzLTA2LTE5IDA5OjE5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IEF2b2lkIGNvbWJpbmF0b3JpYWwgZXhwbG9zaW9uIHdoZW4gbWVyZ2luZyB0YWdzCgkgIFdoZW4gYXBwZW5kaW5nL3ByZXBlbmRpbmcgdGFncywgYXZvaWQgcmUtY3JlYXRpbmcgKGFuZCBjb3B5aW5nKSBsaXN0cyBpZiB3ZSBhbHJlYWR5CgkgIGhhdmUgb25lIGFuZCBpbnN0ZWFkIGp1c3QgYXBwZW5kL3ByZXBlbmQgdGhlIEdWYWx1ZSB0byB0aGUgbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjU0NQoKMjAxMy0wNi0xOSAxMDo1MzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgaG9sZCB0aGUgcXVldWUgbXV0ZXggd2hpbGUgZG9pbmcgc2VyaWFsaXplZCBxdWVyaWVzIGRvd25zdHJlYW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjUyMAoKMjAxMy0wNi0xOSAxMDo0NTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEFkZCB1bml0IHRlc3QgZm9yIG1hcF9yYW5nZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MTcKCjIwMTMtMDYtMTkgMDg6MzY6MjIgKzAyMDAgIFBhdWwgSEVOUllTIDx2aXNlY2hlbGxlQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggd3Jvbmcgc2l6ZS9pbmRleCBoYW5kbGluZyB3aGVuIG1lcmdpbmcgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MTcKCjIwMTMtMDYtMTggMTE6Mzk6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpc3QtdWxpbmsueHNsOgoJICBkb2NzOiBhZGQgbWlzc2luZyBmaWxlIGZvciBkb2MtbGluayBjaGVjawoKMjAxMy0wNi0xNyAxMToxMjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9vbHN0cmVzcy5jOgoJICB0ZXN0czogYWRkIHN0cmVzcyB0ZXN0IGZvciBidWZmZXJzIGFuZCBwb29scwoKMjAxMy0wNi0xNyAxMDoyNToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNhbGwgc3RhdGUgY2hhbmdlIGluIGFsbCBjYXNlcwoJICBXaGVuIHdlIGFzeW5jaHJvbm91c2x5IGdvIGZyb20gUkVBRFkgdG8gUExBWUlORywgYWxzbyBjYWxsIHRoZQoJICBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gc28gdGhhdCBzdWJjbGFzc2VzIGNhbiB1cGRhdGUgdGhlaXIgc3RhdGUgZm9yIFBMQVlJTkcuCgkgIEJlY2F1c2UgdGhlIFBSRVJPTEwgbG9jayBpcyBub3QgcmVjdXJzaXZlLCB3ZSBjYW4ndCBtYWtlIHRoaXMgd2l0aG91dAoJICByYWNlcyBhbmQgd2UgbXVzdCBhc3N1bWUgZm9yIG5vdyB0aGF0IHRoZSBzdWJjbGFzcyBjYW4gaGFuZGxlIGNvbmN1cnJlbnQgY2FsbHMKCSAgdG8gUEFVU0VELT5QTEFZSU5HIGFuZCBQTEFZSU5HLT5QQVVTRUQuIFdlIGNhbiBtYWtlIHRoaXMgYXNzdW1wdGlvbiBiZWNhdXNlIG5vdAoJICBtYW55IGVsZW1lbnRzIGFjdHVhbGx5IGRvIHNvbWV0aGluZyBpbiB0aG9zZSBzdGF0ZSBjaGFuZ2VzIGFuZCB0aGUgb25lcyB0aGF0CgkgIGRpZCB3b3VsZCBiZSBicm9rZW4gZXZlbiBtb3JlIHdpdGhvdXQgdGhpcyBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIyODIKCjIwMTMtMDYtMTYgMTU6MDc6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIGRvY3M6IGZpeCBzb21lIGV4dGVybmFsIGxpbmtzCgoyMDEzLTA2LTE2IDE0OjQ1OjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogY2hlY2sgZm9yIGJyb2tlbiBsaW5rcyBpbiBkb2NzCgkgIFRoZSBjaGVjayBpcyBkb25lIHVzaW5nIGN1cmwgKGlmIGF2YWlsYWJsZSkuIEl0IGxpc3RzIHRoZSBjdXJsIGV4aXQgY29kZSArIGh0dHAKCSAgc3RhdHVzIGNvZGUgKGZvciB0aG9zZSA+IDM5OSkgdG9nZXRoZXIgd2l0aCB0aGUgdXNlIG9mIHRoZSB1cmwgaW4gdGhlIGNvZGUuIFRoZQoJICBjaGVjayBpcyBub3QgZmF0YWwuCgoyMDEzLTA2LTE2IDEzOjA1OjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIGRvY3M6IGNoYW5nZSBodHRwcyB0byBodHRwIHVybHMKCSAgVGhhbmsgeW91IGJyb3dzZXIgZm9yIG5lZWRsZXNzbHkgY2hhbmdpbmcgdG8gaHR0cHMgZm9yIHN0YXRpYyBkb2MgcGFnZXMuCgoyMDEzLTA2LTE2IDExOjQxOjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIGRvY3M6IHVwZGF0ZSBsaW5rcyB0byBkZXZlbG9wZXIuZ25vbWUub3JnCgkgIFRoZSBVUkwgbGF5b3V0IGhhcyBjaGFuZ2VkLiBGaXggdGhlIGxpbmtzIGFuZCBjb21tZW50IG91dCBvbmUgcGFyYWdyYXBoIHdoZXJlCgkgIHRoZSBkb2MgaXMgZ29uZS4KCSAgRml4ZXMgIzcwMjEzNQoKMjAxMy0wNi0xNCAxMzowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX25ld19mcm9tX3N0cmluZygpCgkgIENvbnZlbmllbmNlIEFQSSBmb3IgYmluZGluZ3MsIGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcoKSByZXR1cm5zCgkgIGEgdHVwbGUgKHN0cnVjdHVyZSwgZW5kX3B0cikgaW4gYmluZGluZ3MgYW5kIGlzIHVuaW50dWl0aXZlIHRvIHVzZQoJICBiZWNhdXNlIG9mIHRoYXQuCgoyMDEzLTA2LTEzIDA4OjM2OjIzICswMjAwICBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IERvbid0IGludGVyY2VwdCAtLWhlbHAgaW4gZ3N0X2luaXQoKQoJICBCZWZvcmUgdGhpcyBwYXRjaCBnc3RfaW5pdCB3b3VsZCBpbnRlcmNlcHQgLS1oZWxwLCBjYXVzaW5nIGZvciBleGFtcGxlCgkgIGNoZWVzZSdzIC0taGVscCB0byBsb29rIGxpa2UgdGhpczoKCSAgW2hhbnNAc2hhbGVtIGNoZWVzZV0kIGNoZWVzZSAtLWhlbHAKCSAgVXNhZ2U6CgkgIGNoZWVzZSBbT1BUSU9OLi4uXSAtIEdTdHJlYW1lciBpbml0aWFsaXphdGlvbgoJICBIZWxwIE9wdGlvbnM6CgkgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgICBTaG93IGhlbHAgb3B0aW9ucwoJICAtLWhlbHAtYWxsICAgICAgICAgICAgICAgICAgICAgICAgU2hvdyBhbGwgaGVscCBvcHRpb25zCgkgIC0taGVscC1nc3QgICAgICAgICAgICAgICAgICAgICAgICBTaG93IEdTdHJlYW1lciBPcHRpb25zCgkgIGdzdF9pbml0IGlzIHRoZSBvbmx5IGdmb29faW5pdCBmdW5jdGlvbiB3aGljaCBkb2VzIHRoaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIwODkKCjIwMTMtMDYtMTIgMDk6NDU6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdXJpZG93bmxvYWRlciBsaWIgaW4gLWJhZCB0byBzZWFyY2ggcGF0aHMKCSAgRXZlbiBpZiBpdCBtaWdodCBub3QgYmUgYXJvdW5kIGZvciBsb25nLgoKMjAxMy0wNi0xMSAxMDoyNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBSZW1vdmUgdW5yZWYgdGhhdCBzaG91bGQgbm90IGJlIHRoZXJlCgkgIFdlIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQgYXJvdW5kIGFsbCB0aGUgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTk4NQoKMjAxMy0wNi0wOSAxNzoyMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBJbXByb3ZlIEdzdENvbnRleHQgaGFuZGxpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDk2NwoKMjAxMy0wNi0wNyAxMzowNzozNyArMDIwMCAgS2ltIExhbSA8a2ltQHJlZGdpYW50c29mdHdhcmUuY29tPgoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSAgd2luMzI6IERvbid0IGluY2x1ZGUgZ3N0Y29sbGVjdHBhZHMuYyB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjAzCgoyMDEzLTA1LTMxIDA5OjM5OjU1IC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBzZW5kIG5vdGlmeTo6YWN0aXZlIHNpZ25hbCBmb3IgaW5wdXQtc2VsZWN0b3IgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTMxOQoKMjAxMy0wNi0wNiAxNjo0NjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBmb3JjZS11cGRhdGUgdGhlIGR1cmF0aW9uIGZvciBkeW5hbWljIHNvdXJjZXMgd2hlbiBkb2luZyB0aGUgRFVSQVRJT04gcXVlcnkKCSAgRG9pbmcgaXQgYWZ0ZXIgZXZlcnkgc2luZ2xlIGNyZWF0ZSgpIGlzIG5vdCB2ZXJ5IGVmZmljaWVudCBhbmQgbm90IG5lY2Vzc2FyeS4KCSAgRXNwZWNpYWxseSBvbiBuZXR3b3JrIGZpbGUgc3lzdGVtcyBmc3RhdCgpIGlzIG5vdCBjYWNoZWQgYW5kIGNhdXNlcyBuZXR3b3JrCgkgIHRyYWZmaWMsIG1ha2luZyB0aGUgc291cmNlIHBvc3NpYmx5IHVudXNhYmxlIHNsb3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIwMzcKCjIwMTMtMDYtMDUgMTg6MzY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuMSA9PT0KCjIwMTMtMDYtMDUgMTc6NTg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuMQoKMjAxMy0wNi0wNSAxNjowNjozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDYtMDUgMTU6MTQ6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDk4YzBkNyB0byAwMWE3YTQ2CgoyMDEzLTA2LTA1IDExOjAyOjUwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGQgX2FwcGVuZF9hbmRfdGFrZV92YWx1ZSgpIHB1YmxpYyB2YXJpYW50cwoJICBBUEk6IGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfYW5kX3Rha2VfdmFsdWUKCSAgQVBJOiBnc3RfdmFsdWVfbGlzdF9hcHBlbmRfYW5kX3Rha2VfdmFsdWUKCSAgV2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHRoaXMgaW50ZXJuYWxseSwgdGhpcyBtYWtlcyBpdCBwdWJsaWMgZm9yIGNvZGUKCSAgd2hpY2ggZnJlcXVlbnRseSBhcHBlbmRzIHZhbHVlcyB3aGljaCBhcmUgZXhwZW5zaXZlIHRvIGNvcHkgKGxpa2UKCSAgc3RydWN0dXJlcywgYXJyYXlzLCBjYXBzLCAuLi4pLgoJICBBdm9pZHMgY29waWVzIG9mIHRoZSB2YWx1ZXMgZm9yIHVzZXJzLiBUaGUgcGFzc2VkIEdWYWx1ZSB3aWxsIGFsc28KCSAgYmUgMC1tZW1zZXQnZWQgZm9yIHJlLXVzZS4KCSAgTmV3IHVzZXJzIGNhbiByZXBsYWNlIHRoaXMga2luZCBvZiBjb2RlOgoJICBnc3RfdmFsdWVfKl9hcHBlbmRfdmFsdWUobXljb250YWluZXIsICZteXZhbHVlKTsKCSAgZ192YWx1ZV91bnNldCgmbXl2YWx1ZSk7CgkgIGJ5OgoJICBnc3RfdmFsdWVfKl9hcHBlbmRfYW5kX3Rha2VfdmFsdWUobXljb250YWluZXIsICZteXZhbHVlKTsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTYzMgoKMjAxMy0wNS0yOSAxNzoyMDozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogVXNlIGludGVybmFsIGZ1bmN0aW9uIGZvciBidWZmZXJfbmV3X3dyYXBwZWQKCSAgU2hhdmVzIH4xMCUgaW5zdHJ1Y3Rpb24gY2FsbHMgZnJvbSB0aGUgdG90YWwgY29zdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjMzCgoyMDEzLTA1LTMwIDIyOjU3OjQ5IC0wNjAwICBCcmVuZGFuIExvbmcgPHNlbGZAYnJlbmRhbmxvbmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiByZXR1cm4gRkFMU0UgZm9yICJhY3RpdmUiIHByb3BlcnR5IGlmIHNlbGVjdG9yIGlzIE5VTEwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTMyMwoKMjAxMy0wNi0wMSAxNDowMDoyMiArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZWxlbWVudHMgdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgIkJvb3N0IHByaW9yaXR5IG9mIGEgdGhyZWFkIiBzZWN0aW9uCgoyMDEzLTA2LTAxIDEzOjU1OjUwICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCBjb21tZW50IGluIGVmZmVjdHN3aXRjaCBleGFtcGxlCgoyMDEzLTA2LTAxIDEzOjQ5OjE4ICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCBhIHR5cG8gaW4gIkluc2VydGluZyBkYXRhIHdpdGggYXBwc3JjIiBzZWN0aW9uCgoyMDEzLTA2LTAxIDEzOjIyOjIyICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICBwd2c6IGZpeCBhIGZldyB0eXBvcwoKMjAxMy0wNS0zMSAyMzozNzowNyArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiByZW1vdmUgZG91YmxlICJ0aGUiCgoyMDEzLTA1LTI4IDIzOjM0OjU0ICswMTAwICBLcnp5c3p0b2YgS29ub3BrbyA8a3J6eXN6dG9mLmtvbm9wa29AZ21haWwuY29tPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBpbXByb3ZlIGdpdC11cGRhdGUuc2ggc3RhdHVzIG1lc3NhZ2UKCSAgQnkgZGVmYXVsdCB3aGVuIHRoZSBzY3JpcHQgaXMgYWJvdXQgdG8gZXhpdCAobm9ybWFsbHkgb3IgZHVlIHRvIGFuIGVycm9yKSwKCSAgaXQgY2hlY2tzIHdoZXRoZXIgJEVSUk9SX0xPRyBmaWxlIGV4aXN0cy4gIElmIHRoZSBsb2cgZmlsZSBleGlzdHMsIHRoZQoJICBzY3JpcHQgcHJpbnRzIGEgIkZhaWx1cmVzOiAiIG1lc3NhZ2UgcHJlZml4IGFuZCBkdW1wcyB0aGUgbG9nIGZpbGUgdG8gdGhlCgkgIG91dHB1dC4KCSAgQXBwYXJlbnRseSB0aGUgbG9nIGZpbGUgaXMgYWx3YXlzIGNyZWF0ZWQgYW5kIGlmIHRoZSB1cGRhdGUvYnVpbGQgaXMKCSAgc3VjY2Vzc2Z1bCwgdGhlIHNjcmlwdCBmaW5pc2hlcyB3aXRoIGEgYml0IG1pc2xlYWRpbmcgIkZhaWx1cmVzOiAiIG1lc3NhZ2UuCgkgIEFuIGltcHJvdmVtZW50IHByb3ZpZGVkIHdpdGggdGhpcyBjaGFuZ2UgbGV0cyB0aGUgbG9nIGZpbGUgdG8gYmUgY3JlYXRlZCBhcwoJICBuZWVkZWQsIGkuZS4gaWYgdGhlcmUncyBhbiBlcnJvciBtZXNzYWdlIHRvIGJlIHByaW50ZWQuICBJZiB0aGUgZmlsZQoJICBkb2Vzbid0IGV4aXN0cywgdGhlIHNjcmlwdCBwcmludHMgYSAiVXBkYXRlIGRvbmUiIG1lc3NhZ2Ugd2hpY2ggY2xlYXJseQoJICBpbmRpY2F0ZXMgc3VjY2Vzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTE3NwoKMjAxMy0wNS0zMCAwNzowMzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGZpeCBwb3NpdGlvbiB1bml0IHRlc3QKCjIwMTMtMDUtMzAgMDY6NTE6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyB3aXRob3V0IGNsb2NrCgkgIFdoZW4gbm8gYmFzZSB0aW1lIG9yIHdoZW4gc3luYyBpcyBkaXNhYmxlZCwgdXNlIHRoZSBzYW1lIGxvZ2ljIGFzCgkgIGluIHBhdXNlZCB0byByZXBvcnQgcG9zaXRpb24uIFRoZSBsb2dpYyBpbiBQTEFZSU5HIGFzc3VtZXMgd2UgdXNlIHRoZQoJICBjbG9jay4KCjIwMTMtMDUtMjkgMTE6MzY6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdW5pdCB0ZXN0CgoyMDEzLTA1LTI4IDEyOjQ0OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIHN1cHBvcnQgZm9yIGNoZWNraW5nIHN1YnRpdGxlL21ldGFkYXRhIGZhY3RvcnkgdHlwZXMKCjIwMTMtMDUtMjggMTI6NDE6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgc3VwcG9ydCBmb3IgY2hlY2tpbmcgb25seSB0aGUgbWVkaWEgdHlwZSBvZiBhIGZhY3RvcnkKCSAgQW5kIHdoaWxlIGF0IGl0IGFsc28gYWRkIE1ldGFkYXRhIGFuZCBTdWJ0aXRsZSBtZWRpYSB0eXBlcy4KCjIwMTMtMDUtMjcgMTY6Mzg6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKG11bHRpKXF1ZXVlOiBEb24ndCBhY2Nlc3MgcXVlcnkgaXRlbXMgZHVyaW5nIGZsdXNoaW5nCgoyMDEzLTA1LTI3IDE2OjIyOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBkbyBzZXJpYWxpemVkIHF1ZXJpZXMgd2hlbiB3ZSdyZSBmbHVzaGluZwoJICBKdXN0IGltbWVkaWF0ZWx5IGZhaWwgdGhlIHF1ZXJ5LCBvdGhlcndpc2Ugd2Ugd291bGQgd2FpdCBmb3JldmVyCgkgIGZvciB0aGUgcXVlcnkgdG8gYmUgYW5zd2VyZWQuCgoyMDEzLTA1LTI3IDE2OjA4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRmlyc3Qgc2V0IHF1ZXJ5IHJlc3VsdCwgdGhlbiBzaWduYWwgR0NvbmQKCjIwMTMtMDUtMjcgMTU6NTk6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBGaXggaGFuZGxpbmcgb2Ygc2VyaWFsaXplZCBxdWVyaWVzCgkgIER1cmluZyBGTFVTSF9TVEFSVCB0aGUgcXVlcnkgbmVlZHMgdG8gYmUgdW5ibG9ja2VkIGFscmVhZHksIG90aGVyd2lzZQoJICBpdCBjYW4gbGVhZCB0byBkZWFkbG9ja3MgaWYgdGhlIEZMVVNIX1NUQVJUIGlzIHRoZSByZXN1bHQgb2Ygc29tZXRoaW5nCgkgIGRvbmUgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCBvZiB0aGUgc3JjcGFkICh0aGUgcXVldWUgd2lsbCBuZXZlciBiZQoJICBlbXB0aWVkISkuCgoyMDEzLTA1LTI3IDE1OjQxOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVW5ibG9jayBhbnkgd2FpdGluZyBzZXJpYWxpemUgcXVlcmllcyBvbiBGTFVTSF9TVEFSVAoJICBGaXhlcyBzb21lIGRlYWRsb2NrcyBkdXJpbmcgZmx1c2hpbmcuCgkgIEFuZCBzdG9yZSBxdWV1ZSBpdGVtcyBkaWZmZXJlbnRseSB0byBub3QgYWNjaWRlbnRpYWxseSByZWFkCgkgIGFscmVhZHkgdW5yZWZmZWQgcXVlcmllcyB3aGVuIGZsdXNoaW5nLiBRdWVyaWVzIGFyZSBvd25lZCBieQoJICB1cHN0cmVhbSBhbmQgbm90IHVzLgoKMjAxMy0wNS0yNyAxMzowMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUvcXVldWUyL211bHRpcXVldWU6IFdoZW4gZmx1c2hpbmcsIG1ha2Ugc3VyZSB0byBub3QgbG9zZSBhbnkgc3RpY2t5IGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4ODI0CgoyMDEzLTA1LTI3IDEyOjQwOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU3RvcmUgc3RpY2t5IGV2ZW50cyBldmVuIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgQnV0IGRvIHRoaXMgb25seSBmb3IgZXZlbnRzIHRoYXQgYXJlIG5vdCBkcm9wcGVkIGJ5IGZsdXNoaW5nLAoJICBpLmUuIGRvIGl0IG9ubHkgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0IFNFR01FTlQgYW5kIEVPUy4KCSAgV2l0aG91dCB0aGlzIHdlIG1pZ2h0IGRyb3AgYSBDQVBTIGV2ZW50IGlmIGZsdXNoaW5nIGhhcHBlbnMKCSAgYXQgYW4gdW5mb3J0dW5hdGUgdGltZSBhbmQgbm9ib2R5IGlzIHJlc2VuZGluZyB0aGUgQ0FQUyBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDgwNgoKMjAxMy0wNS0yNSAyMjowMzo1MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBEb24ndCByZWFkIHN0aWNreSBmbGFnIGZyb20gdW5yZWZlZCBldmVudAoKMjAxMy0wNS0yNCAyMzoyODowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciBub3ctdW51c2VkICJhbGxvYy1wYWQiIHByb3BlcnR5CgkgIFNob3VsZCBwcm9iYWJseSBwcm94eSBBTExPQ0FUSU9OIHF1ZXJpZXMgb24gdGhhdCB0aG91Z2gsIGlmIHNldC4KCSAgQnV0IHdoYXQgZWxzZT8gQ0FQUyBhbmQgQUNDRVBUX0NBUFMgdG9vPwoKMjAxMy0wNS0yNCAyMzowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgMC4xMC1pc20gZnJvbSBkb2NzCgkgIGdzdF9idWZmZXJfcGFkX2FsbG9jKCkgbmV2ZXIgZXhpc3RlZCwgYW5kIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkKCSAgZG9lc24ndCBleGlzdCBhbnkgbW9yZSBlaXRoZXIsIHNvIGRvbid0IG1lbnRpb24gaXQgaW4gdGhlIGRvY3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQ3MTQKCjIwMTMtMDUtMjQgMTk6MjI6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHN1cHBvcnQgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcyBpZiB1c2luZyBhIG1lbW9yeSBxdWV1ZQoKMjAxMy0wNS0yNCAxODo0NzoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogU2V0IHRoZSBsYXN0IHNlcmlhbGl6ZWQgcXVlcnkgcmVzdWx0IHRvIEZBTFNFIHdoZW4gZmx1c2hpbmcKCjIwMTMtMDUtMjQgMTg6NDI6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbml0aWFsaXplIGFsbCBHc3RNdWx0aVF1ZXVlSXRlbSBmaWVsZHMgaW4gYm90aCBjb2RlIHBhdGhzCgoyMDEzLTA1LTI0IDE4OjM4OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgYWNjZXNzIHRoZSBxdWVyeSBhZnRlciBzaWduYWxsaW5nIHRoZSB3YWl0aW5nIHRocmVhZAoJICBJdCBtaWdodCd2ZSBmcmVlJ2QgdGhlIHF1ZXJ5IGFscmVhZHkuCgoyMDEzLTA1LTI0IDE4OjMwOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTWFrZSBzdXJlIHRvIGFsd2F5cyBzaWduYWwgYW55IHBvc3NpYmxlIHBlbmRpbmcgc2VyaWFsaXplZCBxdWVyaWVzCgkgIEFuZCBkb24ndCB1bnJlZiB0aGVtIHdoZW4gZmx1c2hpbmcgdGhlIHF1ZXVlLCB0aGV5J3JlIG93bmVkIGJ5IHRoZSBjYWxsZXIhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDAzNDIKCjIwMTMtMDUtMjQgMTQ6Mzc6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgdGhlIGFsbG9jYXRvciBkaWQgbm90IGFsbG93IHRvIGFsbG9jYXRlIGEgYnVmZmVyCgoyMDEzLTA1LTI0IDE2OjI0OjEwICswOTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBSZW1vdmUgbWVudGlvbiBvZiBnY29uZiogZWxlbWVudHMKCSAgSW5zdGVhZCByZWNvbW1lbmQgcHVsc2VzcmMvc2luayBmb3IgYXVkaW8sIHRoZXJlIGlzIG5vdGhpbmcgR05PTUUKCSAgc3BlY2lmaWMgZm9yIHZpZGVvLgoKMjAxMy0wNS0xNSAxMzoyMjowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogSGFuZGxlIHRoZSBmb3JjZS1jYXBzIHByb3BlcnR5IG1vcmUgc2ltaWxhciB0byBhbGwgdHlwZWZpbmRpbmcgY29kZSBmbG93CgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGV2ZW50cyBoYXBwZW4gaW4gb3JkZXIgYW5kIHNpbXBsaWZpZXMgdGhlIGNvZGUgYSBiaXQuCgoyMDEzLTA1LTE1IDExOjIxOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBGaXggZXZlbnQgaGFuZGxpbmcgaW4gZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCgpCgoyMDEzLTA1LTE1IDEwOjUxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWVkY2Q4NSB0byAwOThjMGQ3CgoyMDEzLTA1LTEwIDE2OjAzOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGNoZWNrIGlmIHdlIGdldCBidWZmZXJzIGJlZm9yZSBzdHJlYW0tc3RhcnQvc2VnbWVudCBpZiBjb21waWxpbmcgd2l0aG91dCBHX0RJU0FCTEVfQVNTRVJUCgkgIEluIHJlbGVhc2VzIHRoaXMgaXMgc2V0IHVzdWFsbHkuCgoyMDEzLTA1LTA5IDE3OjE3OjE0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBoZWxwZXIgdGhhdCBzZW5kcyBpbml0aWFsIGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwMDMzCgoyMDEzLTA1LTA5IDE3OjIyOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDEzLTA1LTA5IDE3OjIxOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNYWtlIHN1cmUgcGVuZGluZywgb2xkZXIgc3RpY2t5IGV2ZW50cyBhcmUgc2VudCBkb3duc3RyZWFtIGluIGR5bmFtaWMgbGlua2luZyBzY2VuYXJpb3MKCSAgSWYgYSBwYWQgYmxvY2sgd2FzIHRyaWdnZXJlZCBmcm9tIHNlbmRpbmcgYSBzdGlja3kgZXZlbnQgZG93bnN0cmVhbSwgaXQKCSAgY291bGQgaGFwcGVuIHRoYXQgdGhlIHBhZCBibG9jayBpcyByZWxpbmtpbmcgcGFkcywgd2hpY2ggdGhlbiByZXF1aXJlcwoJICB0byByZXNlbmQgcHJldmlvdXMgc3RpY2t5IGV2ZW50cy4KCjIwMTMtMDUtMDkgMTM6MzI6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IEZpeCBldmVudCBvcmRlciB3YXJuaW5ncyBhbmQgZGF0YWZsb3cgYmVmb3JlIHN0cmVhbS1zdGFydC9zZWdtZW50IGV2ZW50CgoyMDEzLTA1LTA5IDEzOjMxOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByb3Blcmx5IHBvcnQgdW5pdCB0ZXN0IHRvIGFjdHVhbGx5IHVzZSBjYXBzIGFuZCBjaGVjayByZXN1bHRzCgoyMDEzLTA1LTA5IDEyOjUwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFN0b3JlIHN0aWNreSBldmVudHMgb24gdGhlIHNyY3BhZCBpZiB3ZSdyZSBkcm9wcGluZyB0aGVtIGJlY2F1c2Ugb2YgbGVha2luZwoKMjAxMy0wNS0wOSAxMjoyNzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBBbHdheXMgZm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIGFsbCBwYWRzCgoyMDEzLTA1LTA5IDEyOjE1OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGb3J3YXJkIGFsbCBzdGlja3kgZXZlbnRzLCBpbmNsdWRpbmcgc3RyZWFtLXN0YXJ0CgoyMDEzLTA1LTA5IDExOjA1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBXYXJuIGlmIGRhdGEgZmxvdyBoYXBwZW5zIGJlZm9yZSBzdHJlYW0tc3RhcnQgb3Igc2VnbWVudCBldmVudAoKMjAxMy0wNS0wOSAxMDo1OTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBsZXQgZ3N0X3BhZF9zdGlja3lfZXZlbnRzX2ZvcmVhY2goKSBpdGVyYXRlIG92ZXIgZXhpc3RpbmcgZXZlbnRzCgoyMDEzLTA1LTA5IDEwOjI5OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJZiB3ZSBwdXNoIHN0aWNreSBldmVudHMgYmVjYXVzZSBvZiBhbm90aGVyIHN0aWNreSBldmVudCwgb25seSBwdXNoIHRob3NlIHRoYXQgY29tZSBiZWZvcmUgdGhlIG5ldyBldmVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5OTM3CgoyMDEzLTA1LTA5IDA5OjUwOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgbW9yZSBkZWJ1ZyBvdXRwdXQgYW5kIGZvcndhcmQgY2FwcyBldmVudHMgaW1tZWRpYXRlbHkgdG9vCgoyMDEzLTA1LTA5IDA5OjQyOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBObyBzdGlja3kgZXZlbnRzIG11c3QgYXJyaXZlIGFmdGVyIEVPUwoKMjAxMy0wNS0wOSAwOTozODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRml4IHR5cG8gaW4gbGFzdCBjb21taXQKCjIwMTMtMDUtMDggMTk6NDQ6MDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEltcHJvdmUgd2FybmluZyBtZXNzYWdlIG5hbWluZyBldmVudHMgdHlwZSBuYW1lCgkgIFdpdGggdGhpcyBwYXRjaCwgbWVzc2FnZSBzaG91bGQgbG9vayBsaWtlIMKoU3RpY2t5IGV2ZW50IG1pc29yZGVyaW5nLCBnb3QKCSAgJ2NhcHMnIGJlZm9yZSAnc3RyZWFtLXN0YXJ0J8KoIG1ha2luZyBpdCBmYXN0ZXIgdG8gZGVidWcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDggMTg6MTk6NDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgaW5mb3JjZSBTVFJFQU1fU1RBUlQsIENBUFMgYW5kIFNFR01FTlQgb3JkZXJpbmcKCSAgUHJldmlvdXMgcGF0Y2ggd2FzIGluZm9yY2luZyBhIGNvbXBsZXRlIG9yZGVyaW5nIG9mIHRoZSBzdGlja3kgZXZlbnRzLCB3aGlsZQoJICBpbiBmYWN0LCBvbmx5IFNUUkVBTV9TVEFSVCwgQ0FQUyBhbmQgU0VHTUVOVCBldmVudHMgbmVlZCBwcm9wZXIgb3JkZXJpbmcuCgkgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE4OAoKMjAxMy0wNS0wOSAwOTozMjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IFNlbmQgYWxsIGV2ZW50cyB0aGF0IHNob3VsZCBoYXBwZW4gYWZ0ZXIgQ0FQUyBhZnRlciB0aGUgQ0FQUyBldmVudAoKMjAxMy0wNS0wOCAyMTo0NTowOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IFNlbmQgY2FwcyBiZWZvcmUgc2VnbWVudAoJICBJbiB0aGUgY2FzZSB0aGUgc291cmNlIGhhcyBubyBjYXBzLCBjYXBzIG11c3QgYmUgc2VudCBiZWZvcmUgc2VnbWVudC4gVGhpcwoJICBmaXhlcyBmZXcgdW5pdCB0ZXN0cyB0aGF0IHdoZXJlIGZhaWxpbmcgZHVlIHRvIHRoZSBuZXcgbWlzb3JkZXJpbmcgd2FybmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTk2OAoKMjAxMy0wNS0wNyAyMTo1MzozNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRGV0ZWN0LCBmaXggYW5kIHdhcm4gd2hlbiBzdGlja3kgZXZlbnRzIGFyZSBpbiB3cm9uZyBvcmRlcgoJICBXZSBjYW4gcHJldmVudCBidWdneSBlbGVtZW50IGZyb20gY2F1c2luZyBvdGhlciBlbGVtZW50cyB0byBmYWlsIG9yIGNyYXNoCgkgIGJ5IHNvcnRpbmcgc3RpY2t5IGV2ZW50IGF0IGluc2VydGlvbi4gSW4gdGhpcyBjYXNlLCB3ZSBhbHNvIHdhcm4gYXMgdGhpcwoJICBpcyBub3Qgc3VwcG9zZWQgdG8gaGFwcGVuLgoJICBTZWU6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDggMTA6MjY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyBjaGVja3MgZm9yIGdzdF9idWZmZXJfZmlsbCgpCgoyMDEzLTA1LTA4IDEwOjI1OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFsbG93IGNhbGxpbmcgX2ZpbGwoKSB3aXRoIGEgTlVMTCBkYXRhIHBvaW50ZXIgaWYgc2l6ZSBpcyAwIGJ5dGVzCgoyMDEzLTA1LTA3IDE2OjQ2OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBBZGQgRklYTUUgY29tbWVudCBmb3IgdW51c2VkIGFzc2lnbm1lbnQgcmVzdWx0cwoKMjAxMy0wNS0wNyAxNToxODowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gbWV0YWRhdGEgc2VjdGlvbiBpbiBhcHAgZGV2IG1hbnVhbAoJICBUaGVyZSdzIG5vIGdfdGFnX2xpc3RfZ2V0X3h5eigpLgoKMjAxMy0wNS0wNyAxNDo0NzowOSArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBGaXggdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgYSBtaW5vciB0eXBvIGZpeAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5ODI3CgoyMDEzLTA1LTA2IDE4OjQ3OjQ0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU2VuZCBzdHJlYW0tc3RhcnQgYmVmb3JlIGFueXRoaW5nIGVsc2UKCSAgVG8gZG8gc28sIHNlbmQgc3RyZWFtLXN0YXJ0IHdoZW4gdGhlIHN0cmVhbWluZyB0aHJlYWQgZ29lcyB1cCBmb3IgdGhlIGZpcnN0CgkgIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk3NjcKCjIwMTItMTItMjYgMTE6NTQ6NTEgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBBbGxvdyAxLjAgYW5kIDAuMTAgc2NyaXB0cyBpbnN0YWxsZWQgc2ltdWx0YW5lb3VzbHkKCSAgQXMgbG9uZyBhcyB0aGUgc2NyaXB0cycgZmlsZW5hbWVzIGFyZSBkaWZmZXJlbnQsIGFuZCB0aGUgX2dzdF9pbnNwZWN0CgkgIGFuZCBfZ3N0X2xhdW5jaCBmdW5jdGlvbnMgYXJlIG5hbWVkIGRpZmZlcmVudGx5LCB0aGUgY29tcGxldGlvbiBzY3JpcHRzCgkgIGZvciBHU3RyZWFtZXIgMS4wIGFuZCAwLjEwIGNhbiBiZSBpbnN0YWxsZWQgc2lkZS1ieS1zaWRlIGluCgkgIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQuCgkgIE9uIG15IDAuMTAgYnJhbmNo4oCgIHRoZSBjb21wbGV0aW9uIHNjcmlwdCBpcyByZW5hbWVkIHRvCgkgICJnc3RyZWFtZXItY29tcGxldGlvbi0wLjEwIiBhbmQgdGhlIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCB0bwoJICAiX2dzdF9pbnNwZWN0XzBfMTAiIGFuZCAiX2dzdF9sYXVuY2hfMF8xMCIuIFRoZSByZW1haW5pbmcgaGVscGVyCgkgIGZ1bmN0aW9ucyBzaG91bGQgcmVtYWluIGlkZW50aWNhbCAodGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgdG8KCSAgZ3N0LWluc3BlY3QgaGFzbid0IGNoYW5nZWQsIG5vciBoYXMgdGhlIGZvcm1hdCBvZiB0aGUgZ3N0LWxhdW5jaAoJICBwaXBlbGluZSksIHNvIGl0IGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSAxLjAgc2NyaXB0IG92ZXJyaWRlcyB0aGUgMC4xMAoJICBzY3JpcHQncyBkZWZpbml0aW9ucy4KCSAgTm90ZSB0aGF0IEkgZG9uJ3QgZXhwZWN0IHRoZXJlIHRvIGJlIGFub3RoZXIgR1N0cmVhbWVyIDAuMTAgcmVsZWFzZSwgc28KCSAgdGhlIDAuMTAgY29tcGxldGlvbiBzY3JpcHQgd2lsbCBwcm9iYWJseSBuZXZlciBiZSBvZmZpY2lhbGx5IHJlbGVhc2VkOwoJICBidXQgaXQgaXMgc3RpbGwgd29ydGh3aGlsZSBhbGxvd2luZyBib3RoIHNjcmlwdHMgdG8gYmUgaW5zdGFsbGVkCgkgIGFsb25nc2lkZSBlYWNoIG90aGVyLCBmb3IgdGhvc2Ugd2hvIGluc3RhbGwgdGhlIDAuMTAgY29tcGxldGlvbiBzY3JpcHQKCSAgbWFudWFsbHkuCgkgIEZpeGVzOiAjNjkwNTE1CgkgIOKAoCBodHRwczovL2dpdGh1Yi5jb20vZHJvdGhsaXMvZ3N0cmVhbWVyL2Jsb2IvYmFzaC1jb21wbGV0aW9uLTAuMTAvdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb24tMC4xMAoKMjAxMi0xMi0yMSAxODoxMzo1MyArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogQ29tcGxldGUgb3B0aW9uICYgcHJvcGVydHkgdmFsdWVzIG9uIGJhc2ggMy4yCgkgIEJhc2ggMydzIGNvbXBsZXRpb24gZG9lc24ndCBzcGxpdCB3b3JkcyBieSBjaGFyYWN0ZXJzIGluCgkgIENPTVBfV09SREJSRUFLUy4gSW4gcGFydGljdWxhciBpdCBkb2Vzbid0IHNwbGl0IGF0ICI9IiBzaWducy4gTm93CgkgIF9nc3RfbGF1bmNoX3BhcnNlIGhhbmRsZXMgYm90aCBiYXNoIDMgYW5kIDQgZm9ybWF0IG9mIENPTVBfV09SRFMuCgkgIE5vdGUgdGhhdCAiJHtjdXIlJT0qfSIgbWVhbnMgY3VyJ3MgdmFsdWUgd2l0aCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBtYXRjaAoJICBvZiAiPSoiIGRlbGV0ZWQgZnJvbSB0aGUgZW5kOyAiJHtjdXIjKj19IiBtZWFucyBjdXIncyB2YWx1ZSB3aXRoIHRoZQoJICBzaG9ydGVzdCBwb3NzaWJsZSBtYXRjaCBvZiAiKj0iIGRlbGV0ZWQgZnJvbSB0aGUgYmVnaW5uaW5nLiBTZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9TaGVsbC1QYXJhbWV0ZXItRXhwYW5zaW9uLmh0bWwKCSAgUmVnYXJkbGVzcyBvZiB0aGUgdmVyc2lvbiBvZiBiYXNoIHJ1bm5pbmcgdGhlIHVuaXQgdGVzdHMsIEkgY2FuIHRlc3QgZm9yCgkgIGJvdGggYmVoYXZpb3VycyBiZWNhdXNlIHRoZSB1bml0IHRlc3QgcG9wdWxhdGVzIENPTVBfV09SRFMgbWFudWFsbHkuIFNvCgkgIHRoaXMgdGVzdHMgdGhlIGJhc2ggMyBiZWhhdmlvdXI6CgkgIHRlc3RfZ3N0X2luc3BlY3RfY29tcGxldGlvbiAtLWdzdC1kZWJ1Zy1sZXZlbD00CgkgIGFuZCB0aGlzIHRlc3RzIHRoZSBiYXNoIDQgYmVoYXZpb3VyOgoJICB0ZXN0X2dzdF9pbnNwZWN0X2NvbXBsZXRpb24gLS1nc3QtZGVidWctbGV2ZWwgPSA0CgoyMDEyLTEyLTIxIDA4OjU2OjI2ICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBCYXNoIDMuMiBjb21wYXRpYmlsaXR5IGZpeGVzCgkgIENvbXBhdGlibGUgd2l0aCBiYXNoIDMuMjsgZG9lc24ndCByZXF1aXJlIHRoZSBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSBhdAoJICBhbGwgKHRob3VnaCB0aGUgZWFzaWVzdCB3YXkgdG8gaW5zdGFsbCB0aGlzIHNjcmlwdCBpcyBzdGlsbCB0byBpbnN0YWxsCgkgIGJhc2gtY29tcGxldGlvbiwgYW5kIHRoZW4gZHJvcCB0aGlzIHNjcmlwdCBpbnRvIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQpLgoJICBOb3RlIHRoYXQgYmFzaCAzIGRvZXNuJ3QgYnJlYWsgQ09NUF9XT1JEUyBhY2NvcmRpbmcgdG8gY2hhcmFjdGVycyBpbgoJICBDT01QX1dPUkRCUkVBS1MsIHNvICJwcm9wZXJ0eT12YWwiIGxvb2tzIGxpa2UgYSBzaW5nbGUgd29yZCwgc28gdGhpcwoJICB3b24ndCBjb21wbGV0ZSBwcm9wZXJ0eSB2YWx1ZXMgKG9uIGJhc2ggMykuIFNpbWlsYXJseSwKCSAgIi0tZ3N0LWRlYnVnLWxldmVsPTxUQUI+IiB3b24ndCBjb21wbGV0ZSBwcm9wZXJseSAob24gYmFzaCAzKSwgYnV0CgkgICItLWdzdC1kZWJ1Zy1sZXZlbCA8VEFCPiIgd2lsbC4KCSAgRm9yIHRoYXQgcmVhc29uLCBJIG5vdyBvZmZlciAiLS1nc3QtZGVidWctbGV2ZWwiIGV0YyBhcyBjb21wbGV0aW9ucwoJICBpbnN0ZWFkIG9mICItLWdzdC1kZWJ1Zy1sZXZlbD0iLgoJICBGdW5jdGlvbnMgIl9pbml0X2NvbXBsZXRpb24iIGFuZCAiX3BhcnNlX2hlbHAiIHdlcmUgcHJvdmlkZWQgYnkgdGhlCgkgIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlID49IDIuMDsgbm93IEkgcm9sbCBteSBvd24gZXF1aXZhbGVudCBvZgoJICAiX3BhcnNlX2hlbHAiLCBhbmQgaW5zdGVhZCBvZiAiX2luaXRfY29tcGxldGlvbiIgSSB1c2UKCSAgIl9nZXRfY29tcF93b3Jkc19ieV9yZWYiIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIGJhc2gtY29tcGxldGlvbiAxLjIKCSAgb253YXJkcy4gSWYgdGhlIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlIGlzbid0IGF2YWlsYWJsZSBhdCBhbGwgSSB1c2UKCSAgYmFzaCdzIHJhdyBmYWNpbGl0aWVzLCBhdCB0aGUgZXhwZW5zZSBvZiBub3QgY29tcGxldGluZyBwcm9wZXJseSB3aGVuCgkgIHRoZSBjdXJzb3IgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQuCgkgIFRoZSBidWlsdGluICJjb21wb3B0IiBkb2Vzbid0IGV4aXN0IGluIGJhc2ggMzsgdGhvc2UgdXNlcnMgd2lsbCBqdXN0CgkgIGhhdmUgdG8gbGl2ZSB3aXRoIHRoZSBpbmNvbnZlbmllbmNlIG9mICJwcm9wZXJ0eT0iIGNvbXBsZXRpbmcgdG8KCSAgInByb3BlcnR5PSAiIHdpdGggYSB0cmFpbGluZyBzcGFjZS4gUHJvcGVydHkgdmFsdWVzIGFyZW4ndCBjb21wbGV0ZWQKCSAgcHJvcGVybHkgYW55d2F5IG9uIGJhc2ggMyAoc2VlIGFib3ZlKS4KCSAgIltbIC12IHZhciBdXSIgdG8gdGVzdCB3aGV0aGVyIGEgdmFyaWFibGUgaXMgc2V0LCBhbHNvIGRvZXNuJ3QgZXhpc3QgaW4KCSAgYmFzaCAzLiBOZWl0aGVyIGRvZXMgIjs7JiIgdG8gZmFsbCB0aHJvdWdoIGluIGEgImNhc2UiIHN0YXRlbWVudC4KCSAgSW4gdGhlIHVuaXQgdGVzdHM6CgkgICogT24gbXkgc3lzdGVtIChPUyBYKSwgIiMhL2Jpbi9iYXNoIiBpcyBiYXNoIDMuMiwgd2hlcmVhcwoJICAiIyEvdXNyL2Jpbi9lbnYgYmFzaCIgaXMgdGhlIDQuMiB2ZXJzaW9uIEkgYnVpbHQgbXlzZWxmLgoJICAqIEkgaGF2ZSB0byBpbml0aWFsaXNlIGFycmF5IHZhcmlhYmxlcyBsaWtlICJleHBlY3RlZD0oKSIsIG9yIGJhc2ggMwoJICB0cmVhdHMgIis9IiBhcyBhcHBlbmRpbmcgdG8gYW4gYXJyYXkgYWxyZWFkeSBwb3B1bGF0ZWQgd2l0aCBvbmUgZW1wdHkKCSAgc3RyaW5nLgoKMjAxMi0xMi0xOSAxMDo0Njo1MCArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogU3VwcG9ydCBnc3QtaW5zcGVjdCwgYW5kIGdzdC1sYXVuY2ggZWxlbWVudCBwcm9wZXJ0aWVzCgkgIENvbXBsZXRlcyBvcHRpb25zIGxpa2UgIi0tZ3N0LWRlYnVnLWxldmVsIiBhbmQgdGhlIHZhbHVlcyBvZiBzb21lIG9mCgkgIHRob3NlIG9wdGlvbnM7IGNvbXBsZXRlcyBnc3QtbGF1bmNoIHBpcGVsaW5lIGVsZW1lbnQgbmFtZXMsIHByb3BlcnR5CgkgIG5hbWVzLCBhbmQgZXZlbiBwcm9wZXJ0eSB2YWx1ZXMgKGZvciBlbnVtIG9yIGJvb2xlYW4gcHJvcGVydGllcyBvbmx5KS4KCSAgRG9lc24ndCBjb21wbGV0ZSBhbGwgY2FwcyBzcGVjaWZpY2F0aW9ucywgbm9yIGVsZW1lbnQgbmFtZXMgc3BlY2lmaWVkCgkgIGVhcmxpZXIgaW4gdGhlIHBpcGVsaW5lIHdpdGggIm5hbWU9Li4uIi4KCSAgVGhlIEdTdHJlYW1lciB2ZXJzaW9uIG51bWJlciBpcyBoYXJkLWNvZGVkIGludG8gdGhlIGNvbXBsZXRpb24gc2NyaXB0OgoJICBUaGlzIHBhdGNoIGlzIG9mZiB0aGUgbWFzdGVyIGJyYW5jaCBhbmQgaGFzIHRoZSB2ZXJzaW9uIGhhcmQtY29kZWQgYXMKCSAgIjEuMCI7IGl0IG5lZWRzIHRvIGJlIHVwZGF0ZWQgaWYgYmFja3BvcnRlZCB0byB0aGUgMC4xMCBicmFuY2guIFlvdQoJICBjb3VsZCBhbHdheXMgY3JlYXRlIGEgImdzdHJlYW1lci1jb21wbGV0aW9uLmluIiB0aGF0IGhhcyB0aGUgYXBwcm9wcmlhdGUKCSAgdmVyc2lvbiBpbnNlcnRlZCBieSAiY29uZmlndXJlIiwgYnV0IEknZCByYXRoZXIgbm90IGRvIHRoYXQuIFRoZQoJICBoYXJkLWNvZGVkIHZlcnNpb24gaXMgY29uc2lzdGVudCB3aXRoIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBvZgoJICBnc3RyZWFtZXItY29tcGxldGlvbiwgd2hpY2ggaGFkIHRoZSByZWdpc3RyeSBwYXRoIGhhcmQtY29kZWQgYXMKCSAgfi8uZ3N0cmVhbWVyLTEuMC9yZWdpc3RyeS54bWwuCgkgIE5vdGUgdGhhdCBHU3RyZWFtZXIgMC4xMCBpbnN0YWxscyAiZ3N0LWluc3BlY3QiIGFuZCAiZ3N0LWluc3BlY3QtMC4xMCIuCgkgICJnc3QtaW5zcGVjdCAtLWhlbHAiIG9ubHkgcHJpbnRzIDQgZmxhZ3MgKC0taGVscCwgLS1wcmludCwgLS1nc3QtbW0sCgkgIGdzdC1saXN0LW1tKSB3aGVyZWFzICJnc3QtaW5zcGVjdC0wLjEwIC0taGVscC1hbGwiIHByaW50cyB0aGUgZnVsbCBsaXN0CgkgIG9mIGZsYWdzLiBUaGUgc2FtZSBhcHBsaWVzIHRvICJnc3QtbGF1bmNoIiBhbmQgImdzdC1sYXVuY2gtMC4xMCIuCgkgIEdTdHJlYW1lciAxLjAgb25seSBpbnN0YWxscyAiZ3N0LWluc3BlY3QtMS4wIiwgbm90ICJnc3QtaW5zcGVjdCIuCgkgIFJlcXVpcmVzIGJhc2ggNDsgb25seSB0ZXN0ZWQgd2l0aCBiYXNoIDQuMi4gUmVxdWlyZXMgImJhc2gtY29tcGxldGlvbiIKCSAgKHdoaWNoIHlvdSBpbnN0YWxsIHdpdGggeW91ciBzeXN0ZW0ncyBwYWNrYWdlIG1hbmFnZXIpLgoJICBQdXQgdGhpcyBpbiAvZXRjL2Jhc2hfY29tcGxldGlvbi5kLyBvciBpbiBgcGtnLWNvbmZpZwoJICAtLXZhcmlhYmxlPWNvbXBhdGRpciBiYXNoLWNvbXBsZXRpb25gLCB3aGVyZSBpdCB3aWxsIGJlIGxvYWRlZCBhdCB0aGUKCSAgYmVnaW5uaW5nIG9mIGV2ZXJ5IG5ldyB0ZXJtaW5hbCBzZXNzaW9uOwoJICBvciBpbiBgcGdrLWNvbmZpZyAtLXZhcmlhYmxlPWNvbXBsZXRpb25zZGlyIGJhc2gtY29tcGxldGlvbmAsIHJlbmFtZWQgdG8KCSAgbWF0Y2ggdGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQgaXQgY29tcGxldGVzIChlLmcuICJnc3QtbGF1bmNoLTEuMCIsIHdpdGgKCSAgYW4gYWRkaXRpb25hbCBzeW1saW5rIG5hbWVkICJnc3QtaW5zcGVjdC0xLjAiKSwgd2hlcmUgaXQgd2lsbCBiZQoJICBhdXRvbG9hZGVkIHdoZW4gbmVlZGVkLgoJICB0ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoIGlzIChmb3Igbm93KSBpbiB0ZXN0cy9taXNjIC0tIGl0IG1pZ2h0IGJlCgkgIHdvcnRoIGNyZWF0aW5nICJ0ZXN0cy9jaGVjay90b29scyIsIHdpdGggYWxsIHRoZSBuZWNlc3NhcnkgYXV0b21ha2UKCSAgYm9pbGVycGxhdGUsIGFuZCBtb3ZpbmcgdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaCB0aGVyZSwgYW5kIGhhdmUgaXQKCSAgcnVuIGF1dG9tYXRpY2FsbHkgd2l0aCAibWFrZSBjaGVjayIuCgkgIElGIFlPVSdSRSBORVcgVE8gQkFTSCBDT01QTEVUSU9OIFNDUklQVFMKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAiY29tcGxldGUgLUYgX2dzdF9sYXVuY2ggZ3N0LWxhdW5jaC0xLjAiIG1lYW5zIHRoYXQgYmFzaCB3aWxsIHJ1biB0aGUKCSAgZnVuY3Rpb24gIl9nc3RfbGF1bmNoIiB0byBnZW5lcmF0ZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBmb3IgdGhlIGNvbW1hbmQKCSAgImdzdC1sYXVuY2gtMS4wIi4KCSAgIl9nc3RfbGF1bmNoIiBtdXN0IHJldHVybiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgaW4gdGhlIGFycmF5IHZhcmlhYmxlCgkgIENPTVBSRVBMWS4gKE5vdGUgb24gYmFzaCBzeW50YXg6ICJWPShhIGIgYykiIGFzc2lnbnMgdGhyZWUgZWxlbWVudHMgdG8KCSAgdGhlIGFycmF5ICJWIikuCgkgICJjb21wZ2VuIiBwcmludHMgYSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIHRvIHN0YW5kYXJkIG91dHB1dC4gVHJ5CgkgIGl0OgoJICBjb21wZ2VuIC1XICJhYmMxIGFiYzIgZGVmIiAtLSAiYSIKCSAgY29tcGdlbiAtZiAtLSAiLyIKCSAgVGhlIGxhc3QgYXJndW1lbnQgaXMgdGhlIHdvcmQgY3VycmVudGx5IGJlaW5nIGNvbXBsZXRlZDsgY29tcGdlbiB1c2VzIGl0CgkgIHRvIGZpbHRlciBvdXQgdGhlIG5vbi1tYXRjaGluZyBjb21wbGV0aW9ucy4gV2UgcHV0ICItLSIgZmlyc3QsIGluIGNhc2UKCSAgdGhlIHdvcmQgY3VycmVudGx5IGJlaW5nIGNvbXBsZXRlZCBzdGFydHMgd2l0aCAiLSIgb3IgIi0tIiwgc28gdGhhdCBpdAoJICBpc24ndCB0cmVhdGVkIGFzIGEgZmxhZyB0byBjb21wZ2VuLgoJICBGb3IgdGhlIGRvY3VtZW50YXRpb24gb2YgQ09NUF9XT1JEUywgQ09NUF9DV09SRCwgZXRjIHNlZQoJICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL0Jhc2gtVmFyaWFibGVzLmh0bWwjaW5kZXgtQ09NUF8wMDVmQ1dPUkQtMTgwCgkgIFNlZSBhbHNvOgoJICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24uaHRtbAoJICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24tQnVpbHRpbnMuaHRtbAoJICBUaGUgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgcHJvdmlkZXMgdGhlIGhlbHBlciBmdW5jdGlvbgoJICAiX2luaXRfY29tcGxldGlvbiIgd2hpY2ggcG9wdWxhdGVzIHZhcmlhYmxlcyAiY3VyIiwgInByZXYiLCBhbmQgIndvcmRzIi4KCSAgU2VlCgkgIGh0dHA6Ly9hbm9uc2NtLmRlYmlhbi5vcmcvZ2l0d2ViLz9wPWJhc2gtY29tcGxldGlvbi9iYXNoLWNvbXBsZXRpb24uZ2l0O2E9YmxvYjtmPWJhc2hfY29tcGxldGlvbjtoPTg3MDgxMWI0O2hiPUhFQUQjbDYzNAoJICBOb3RlIHRoYXQgYnkgZGVmYXVsdCwgYmFzaCBhcHBlbmRzIGEgc3BhY2UgdG8gdGhlIGNvbXBsZXRlZCB3b3JkLiBXaGVuCgkgIHRoZSBjb21wbGV0aW9uIGlzICJwcm9wZXJ0eT0iIHdlIGRvbid0IHdhbnQgYSB0cmFpbGluZyBzcGFjZTsgY2FsbGluZwoJICAiY29tcG9wdCAtbyBub3NwYWNlIiBtb2RpZmllcyB0aGUgY3VycmVudGx5LWV4ZWN1dGluZyBjb21wbGV0aW9uCgkgIGFjY29yZGluZ2x5LiBTZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9Qcm9ncmFtbWFibGUtQ29tcGxldGlvbi1CdWlsdGlucy5odG1sI2luZGV4LWNvbXBvcHQKCjIwMTItMTEtMTMgMTY6MzY6NDYgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBVcGRhdGVkIHRvIHdvcmsgd2l0aCB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgIFRoZSBvcmlnaW5hbCByZWdpc3RyeSB3YXMgaW4geG1sIGZvcm1hdCAofi8uZ3N0cmVhbWVyLSovcmVnaXN0cnkueG1sKS4gQQoJICBiaW5hcnkgcmVnaXN0cnkgZm9ybWF0IHdhcyBhZGRlZCBpbiAyMDA3IChjb21taXQgZWJmMGM5ZDMpIGFuZCBtYWRlIHRoZQoJICBkZWZhdWx0IGluIDIwMDggKGNvbW1pdCAzZjM5ZmQ3ZSkuIEluIDAuMTAgeW91IGNvdWxkIHN0aWxsIGNob29zZSBhdAoJICAiY29uZmlndXJlIiB0aW1lIHRvIHVzZSB0aGUgeG1sIHJlZ2lzdHJ5IGluc3RlYWQ7IGluIDEuMCB0aGUgYmluYXJ5CgkgIHJlZ2lzdHJ5IGlzIHlvdXIgb25seSBjaG9pY2UuCgkgIFRoaXMgY2hhbmdlIHRvIGdzdHJlYW1lci1jb21wbGV0aW9uIHNob3VsZCB3b3JrIHdpdGggZWl0aGVyIGZvcm1hdAoJICBiZWNhdXNlIGl0IHBhcnNlcyB0aGUgb3V0cHV0IG9mICJnc3QtaW5zcGVjdCIgaW5zdGVhZCBvZiByZWFkaW5nIHRoZQoJICByZWdpc3RyeSBmaWxlIGRpcmVjdGx5LgoJICBOb3RlIHRoYXQgX2dzdF9sYXVuY2ggbm8gbG9uZ2VyIG5lZWRzIGFuIGV4cGxpY2l0ICJyZXR1cm4gMCIgYmVjYXVzZSwKCSAgdW5saWtlIHRoZSBwcmV2aW91cyBncmVwIGNvbW1hbmQsIGNvbXBnZW4gYWx3YXlzIHJldHVybnMgMCAodW5sZXNzIGEKCSAgZ2VudWluZSBlcnJvciBvY2N1cnMpLgoJICBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGJ5IERhdmlkIFNjaGxlZWYsIHRoaXMgIm9ubHkKCSAgY29tcGxldGVzIG5hbWVzIG9mIGZlYXR1cmVzLCBidXQgdGhhdCdzIDkwJSBvZiB3aGF0IEkgd2FudCBpdCBmb3IuIgoKMjAxMy0wNC0yOSAyMToxMTozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBuaXQgY2xhcmlmaWNhdGlvbgoJICBJdCBpcyB0aGUgcHJvY2VzcyBjb250ZXh0IHRoYXQgbWF0dGVycy4KCjIwMTMtMDQtMjkgMTM6MjA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEFsd2F5cyBsZWF2ZSBUWVBFRklORCBtb2RlIHdoZW4gd2UncmUgc3RvcHBpbmcgdHlwZWZpbmRpbmcKCjIwMTMtMDQtMjkgMTM6MDM6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNpbXBsaWZ5IGNvZGUKCSAgVGhpcyBpcyBvbmx5IGNhbGxlZCB3aGVuIGluIFRZUEVGSU5EIG1vZGUuCgoyMDEzLTA0LTI5IDEyOjU4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBQdXNoIHBlbmRpbmcgZXZlbnRzIGluZGVwZW5kZW50IG9mIHRoZSBleGlzdGVuY2Ugb2YgYSBkb3duc3RyZWFtIGNoYWluIGZ1bmN0aW9uIGFuZCBwZWVyCgkgIERvd25zdHJlYW0gbWlnaHQgY3JlYXRlIGEgcGVlciBvbmx5IGFzIHJlc3VsdCBvZiB0aGUgZXZlbnRzIGluIHRoZW9yeS4KCjIwMTMtMDQtMjkgMTI6NTY6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgcHVzaCBDQVBTIGV2ZW50IG9uY2UgaWYgd2UgZ2V0IG9uZSBmcm9tIHVwc3RyZWFtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI3ODQKCjIwMTMtMDQtMjkgMTI6NTQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3AgdHlwZWZpbmRpbmcgaWYgd2UgZ2V0IGEgQ0FQUyBldmVudCBmcm9tIHVwc3RyZWFtCgoyMDEzLTA0LTI5IDEyOjUyOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBJbXByb3ZlIGhhbmRsaW5nIG9mIEdBUCBldmVudHMKCSAgVGhlcmUncyBzdGlsbCByb29tIGZvciBpbXByb3ZlbWVudCB0aG91Z2guCgoyMDEzLTA0LTI5IDEyOjQ4OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBGb3J3YXJkIGV2ZW50cyB0aGF0IHNob3VsZCBoYXBwZW4gYmVmb3JlIHRoZSBjYXBzIGV2ZW50IGRpcmVjdGx5CgkgIFRoZXJlJ3Mgbm8gcG9pbnQgaW4gc3RvcmluZyB0aGVtIGFuZCBzZW5kaW5nIHRoZW0gbGF0ZXIsIGFuZCBkb2luZyBzbyB3b3VsZAoJICBsYXRlciByZXF1aXJlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gZXZlbnRzIHRoYXQgc2hvdWxkIGNvbWUgYmVmb3JlIGNhcHMgYW5kCgkgIGFmdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNzg0CgoyMDEzLTA0LTI5IDEyOjQ4OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IHB1c2ggcGVuZGluZyBidWZmZXJzIGFuZCBldmVudHMgaWYgd2UgaGF2ZSBjYXBzCgoyMDEzLTA0LTI5IDEyOjM5OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZW1vdmUgY29kZSB0aGF0IHdvdWxkIGNhdXNlIGNhcHMgdG8gYmUgc2VudCB0d2ljZQoJICBXaGVuZXZlciB3ZSBzZXQgdHlwZWZpbmQtPmNhcHMgd2Ugd2lsbCBhbHNvIHNlbmQgYSBjYXBzIGV2ZW50IGRvd25zdHJlYW0uCgoyMDEzLTA0LTI3IDIwOjMzOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogaW1wcm92ZSBhbGxvY2F0aW9uIGRvY3MKCjIwMTMtMDQtMjcgMTE6NDY6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogc2V0IENLX1RJTUVPVVRfTVVMVElQTElFUiBvbiBBUk0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTU5OQoKMjAxMy0wNC0yNyAwMDowNTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHR5cGVmaW5kOiBmaXggY2FwcyBsZWFrIHdoZW4gdXNlZCBpbiBjb25uZWN0aW9uIHdpdGggdXJpZGVjb2RlYmluIGFuZCBwbGF5YmluCgkgIERvbid0IGxlYWsgZm9yY2VkIHNpbmsgY2Fwcy4KCjIwMTMtMDQtMjIgMTg6MDg6NDMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogRml4IGVsZW1lbnQtdHlwZSBhbm5vdGF0aW9ucwoKMjAxMy0wNC0yNSAxNjozODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVHJ5IHRvIG5vdCBwdXNoIHJlYWQtb25seSBidWZmZXJzCgkgIFdlIHNob3VsZCBvbmx5IGluY3JlYXNlIHRoZSByZWZjb3VudCBiZWZvcmUgcHVzaGluZyBpZiB3ZSdyZQoJICByZWFsbHkgZ29pbmcgdG8gdXNlIHRoZSBidWZmZXIgYWZ0ZXJ3YXJkcy4KCjIwMTMtMDQtMjUgMDc6MTU6MzkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogYWRkIGNoZWNrIGZvciBGTFVTSCBwYWQgcHJvYmVzCgoyMDEzLTA0LTI0IDA4OjQwOjMyICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBydW4gcHJvYmVzIGZvciBGTFVTSCBldmVudHMgc2VudCB3aXRoIGdzdF9wYWRfc2VuZF9ldmVudAoJICBNb3ZlIHByb2JlIGhhbmRsaW5nIGluIGdzdF9wYWRfc2VuZF9ldmVudF91bmNoZWNrZWQgc28gdGhhdCBwcm9iZXMgYXJlIHJ1biBmb3IKCSAgRkxVU0ggZXZlbnRzIHRvby4KCjIwMTMtMDQtMjQgMTU6NTg6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0Y2xvY2s6IEFkZCBzdXBwb3J0IGZvciBJUHY2CgoyMDEzLTA0LTI0IDEyOjMwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBhZGQgdHJvdWJsZXNob290aW5nIHNlY3Rpb24KCSAgQWRkIG5vdGUgYWJvdXQgImNhbm5vdCByZWdpc3RlciBleGlzdGluZyB0eXBlIGBHc3RPYmplY3QnIiB3YXJuaW5nLgoKMjAxMy0wNC0yMyAxMTo0Nzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE9ubHkgaW5mZXIgVFMgaWYgUFRTIGludGVycG9sYXRpb24gaXMgZW5hYmxlZAoJICBPdGhlcndpc2UgdGhpcyBpcyBicmVha2luZyB0aW1lc3RhbXBzIG9mIGZvcm1hdHMgdGhhdAoJICBuZWVkIHJlb3JkZXJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc2NjIKCjIwMTMtMDQtMjMgMTE6MTc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90aWZ5IGNhcHMgcHJvcGVydHkgb24gTlVMTCBhcyB3ZWxsCgkgIEFsc28gbm90aWZ5IHRoZSBjYXBzIHByb3BlcnR5IHdoZW4gaXQgY2hhbmdlcyB0byBOVUxMCgoyMDEzLTA0LTIzIDExOjE2OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsYXJpZnkgbG9ja2luZwoKMjAxMy0wNC0yMiAyMzo1MDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIE1BSU5UQUlORVJTOgoJKiBSRUFETUU6CgkqIFJFQURNRS5zdGF0aWMtbGlua2luZzoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzY2IzZDNjIHRvIDVlZGNkODUKCjIwMTMtMDQtMTkgMTU6MDE6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIHBhcnQtY29udGV4dDogV3JpdGUgc29tZSBkZXNpZ24gZG9jdW1lbnRhdGlvbiBhYm91dCBHc3RDb250ZXh0CgoyMDEzLTA0LTE5IDEzOjIxOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIHBhcnQtY2FwczogQWRkIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgY2FwcyBmZWF0dXJlcywgY2FwcyBzZW1hbnRpY3MgYW5kIGhvdyB0byB1c2UgdGhlbQoKMjAxMy0wNC0xOSAxMToyMzozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogQWRkIGRvY3VtZW50YXRpb24gYWJvdXQgQU5ZIEdzdENhcHNGZWF0dXJlcwoKMjAxMy0wNC0xOSAxMDoyNDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBzZXQgbGFzdF9yZW5kZXJfdGltZSBpZiB3ZSdyZSBjaGVja2luZyBmb3IgYSBsYXRlIGJ1ZmZlciBiZWZvcmUgOjpwcmVwYXJlKCkKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgYXQgbGVhc3Qgb25lIGJ1ZmZlciBwZXIgc2Vjb25kIGlzIHJlbmRlcmVkIGlmIGJ1ZmZlcnMKCSAgYXJlIGRyb3BwZWQgYmVmb3JlIDo6cHJlcGFyZS4gV2l0aG91dCB0aGlzIGNoYW5nZSwgYXQgbGVhc3Qgb25lIGJ1ZmZlciBwZXIKCSAgc2Vjb25kIHdvdWxkbid0IGJlIHRvbyBsYXRlIGJlZm9yZSA6OnByZXBhcmUgYW55bW9yZSBidXQgd291bGQgYmUgZHJvcHBlZAoJICBiZWZvcmUgOjpyZW5kZXIgYmVjYXVzZSBvZiBsYXN0X3JlbmRlcl90aW1lIGJlaW5nIHNldCBiZWZvcmUgOjpwcmVwYXJlCgkgIGFscmVhZHkuCgoyMDEzLTAyLTA4IDAzOjU3OjQ0IC0wMjAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgY29tcGFyZSBmdW5jdGlvbiBmb3IgY2FwcwoKMjAxMy0wMS0xNSAxNjo1NzoyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWU6IGFkZCBnc3RfZGF0YV9xdWV1ZV9wZWVrCgkgIFRoaXMgZnVuY3Rpb24gd29ya3MganVzdCBsaWtlIGdzdF9kYXRhX3F1ZXVlX3BvcCwgYnV0IGl0IGRvZXNuJ3QKCSAgcmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGUgcXVldWUuCgkgIFVzZWZ1bCB3aGVuIGluc3BlY3RpbmcgbXVsdGlwbGUgR3N0RGF0YVF1ZXVlcyB0byBkZWNpZGUgZnJvbSB3aGljaAoJICB0byBwb3AgdGhlIGVsZW1lbnQgZnJvbS4KCSAgQWRkOiBnc3RfZGF0YV9xdWV1ZV9wZWVrCgoyMDEzLTA0LTE4IDEwOjE0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBpZ25vcmUgbmV3IHRlc3QgYmluYXJ5CgoyMDEzLTA0LTE4IDEwOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogdXBkYXRlIGZvciBsYXRlc3QgY29udGV4dCBBUEkgY2hhbmdlcwoKMjAxMy0wNC0xOCAxMDoxNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udGV4dDogQWRkIGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVyZSgpIGFuZCBsZXQgZ2V0X3N0cnVjdHVyZSgpIHJldHVybiBjb25zdCBhZ2FpbgoKMjAxMy0wNC0xOCAwMDo0NDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHByaW50ZjogZml4IGhhbmRsaW5nIG9mIG9sZCBwcmludGYgZXh0ZW5zaW9uIHNwZWNpZmllcnMgZm9yIEFCSSBjb21wYXRpYmlsaXR5CgkgIEZpeGVzIGFib3J0IHdoZW4gdGhlIG9sZCBzcGVjaWZpZXJzIGFyZSB1c2VkLiBGaXggdXAgdGhlIGNvbnZlcnNpb24KCSAgc3BlY2lmaWVyLCBpdCB3b3VsZCBnZXQgb3ZlcndyaXR0ZW4gd2l0aCAnYycgYmVsb3cgdG8gdGhlIGV4dGVuc2lvbgoJICBmb3JtYXQgY2hhciwgd2hpY2ggdGhlbiBsYXRlciBpcyB1bmhhbmRsZWQsIGxlYWRpbmcgdG8gdGhlIGFib3J0LgoJICBBbHNvIGZpeCB1cCBhbmQgZW5hYmxlIHVuaXQgdGVzdCBmb3IgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvcHJvY2Vzc19idWcuY2dpCgoyMDEzLTA0LTE4IDAwOjI4OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIG9sZCBwcmludGYgZXh0ZW5zaW9uIHNwZWNpZmllcnMKCSAgVG8gbWFrZSBzdXJlIHdlIG1haW50YWluIGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZAoJICBzcGVjaWZpZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MjQyCgoyMDEzLTA0LTE4IDAwOjE5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IHJ1biBza2lwcGVkIHRlc3RzIGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHZpYSBHU1RfQ0hFQ0tTCgkgIElmIGEgdGVzdCB0aGF0J3MgZGlzYWJsZWQgd2l0aCB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkgaXMgbGlzdGVkCgkgIGluIHRoZSBHU1RfQ0hFQ0tTIGVudmlyb25tZW50IHZhcmlhYmxlLCBydW4gaXQgYW55d2F5LgoKMjAxMy0wNC0xNyAxMzo0NzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEFkZCBHc3RDb250ZXh0IHN1cHBvcnQKCSAgZ3N0LWxhdW5jaCB3aWxsIGNvbGxlY3QgYWxsIHRoZSBjb250ZXh0cyBmcm9tIHRoZSBwaXBlbGluZSBlbGVtZW50cwoJICBhbmQgdXBkYXRlIHRoZSBvdmVyYWxsIHBpcGVsaW5lIGNvbnRleHQgd2l0aCBpdC4KCjIwMTMtMDQtMTcgMTI6NDQ6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEFkZCB1bml0IHRlc3QgZm9yIEdzdENvbnRleHQKCjIwMTMtMDQtMTcgMTI6MTc6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSAgY29udGV4dDogUmV0dXJuIGEgbm9uLWNvbnN0IEdzdFN0cnVjdHVyZSB0byBtYWtlIGNvZGUgc2ltcGxlciBhbmQgdXBkYXRlIGRvY3MKCjIwMTMtMDMtMjkgMTQ6NTY6NTcgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBxdWVyeTogbmV3IF9CQU5EV0lEVEhfTElNSVRFRCBmbGFnCgkgIFNvdXJjZSBlbGVtZW50cyB3aXRoIGxpbWl0ZWQgYmFuZHdpZHRoIGNhcGFiaWxpdGllcyBhbmQgc3VwcG9ydGluZwoJICBidWZmZXJpbmcgZm9yIGRvd25zdHJlYW0gZWxlbWVudHMgc2hvdWxkIHNldCB0aGlzIGZsYWcgd2hlbiBhbnN3ZXJpbmcKCSAgYSBzY2hlZHVsaW5nIHF1ZXJ5LiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGhlIG9uLWRpc2sgYnVmZmVyaW5nIHNjZW5hcmlvCgkgIG9mIHVyaWRlY29kZWJpbiB0byBhdm9pZCBjaGVja2luZyB0aGUgVVJJIHByb3RvY29sIGFnYWluc3QgYSBsaXN0IG9mCgkgIGhhcmRjb2RlZCBwcm90b2NvbHMuCgkgIEJ1ZyA2OTM0ODQKCjIwMTMtMDQtMTYgMDk6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGZpeCBtaXNzaW5nIGZsYWNkZWMgaW4gcG9ydGluZy10by0xLjAgcGlwZWxpbmUgZXhhbXBsZQoKMjAxMy0wNC0xNiAwOTowMzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogYWRkIG5vdGUgYWJvdXQgZGVjb2RlcnMgYW5kIHBhcnNlcnMgdG8gcG9ydGluZy10by0xLjAgZG9jCgoyMDEyLTEwLTI0IDExOjU4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBnc3Q6IEFkZCBiZXR0ZXIgc3VwcG9ydCBmb3Igc3RhdGljIHBsdWdpbnMKCSAgQVBJOiBHU1RfUExVR0lOX1NUQVRJQ19ERUNMQVJFKCkKCSAgQVBJOiBHU1RfUExVR0lOX1NUQVRJQ19SRUdJU1RFUigpCgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4uCgkgIFRoaXMgbm93IGFsbG93cyBHU1RfUExVR0lOX0RFRklORSgpIHRvIGNyZWF0ZSBhIHN0YXRpYyBwbHVnaW4gaWYKCSAgR1NUX1BMVUdJTl9CVUlMRF9TVEFUSUMgaXMgZGVmaW5lZC4gVGhlIHJlc3VsdGluZyBwbHVnaW4gY2FuIGJlCgkgIHN0YXRpY2FsbHkgbGlua2VkIG9yIGR5bmFtaWNhbGx5IGxpbmtlZCBkdXJpbmcgY29tcGlsYXRpb24gYnV0CgkgIGNhbid0IGJlIGR5bmFtaWNhbGx5IGxvYWRlZCBkdXJpbmcgcnVudGltZS4KCSAgQWxzbyBhZGRzIEdTVF9QTFVHSU5fU1RBVElDX0RFQ0xBUkUoKSBhbmQgR1NUX1BMVUdJTl9TVEFUSUNfUkVHSVNURVIoKSwKCSAgd2hpY2ggYWxsb3dzIHRvIHJlZ2lzdGVyIGEgc3RhdGljIGxpbmtlZCBwbHVnaW4gZWFzaWx5LgoJICBJdCBpcyBzdGlsbCByZXF1aXJlZCB0byBtYW51YWxseSByZWdpc3RlciBldmVyeSBzaW5nbGUgc3RhdGljYWxseSBsaW5rZWQKCSAgcGx1Z2luIGZyb20gaW5zaWRlIHRoZSBhcHBsaWNhdGlvbiBhcyB0aGlzIGNhbid0IGJlIGF1dG9tYXRlZCBpbiBhIHBvcnRhYmxlCgkgIHdheS4KCSAgQSBuZXcgY29uZmlndXJlIHBhcmFtZXRlciAtLWVuYWJsZS1zdGF0aWMtcGx1Z2lucyB3YXMgYWRkZWQgdGhhdCBhbGxvd3MKCSAgdG8gYnVpbGQgYWxsIHBsdWdpbnMgd2UgYnVpbGQgaGVyZSBhcyBzdGF0aWMgcGx1Z2lucy4KCSAgRml4ZXMgYnVnICM2NjczMDUuCgoyMDEzLTA0LTEyIDEzOjUwOjM5ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIG1hbnVhbDogUGF0Y2ggbWFudWFsIHRvIHJlZmVyIHRvIHBvcnRpbmcgZ3VpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzg0NQoKMjAxMy0wNC0xMyAxOTo0MzoxMCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogRml4IHRoZSBHc3RQbHVnaW5GZWF0dXJlIG5hbWUgY29tcGFyaXNvbi4KCSAgVGhlIGdzdF9wbHVnaW5fZmVhdHVyZV9yYW5rX2NvbXBhcmVfZnVuYygpIHNob3VsZCByZXR1cm4KCSAgbmVnYXRpdmUgdmFsdWUsIGlmIHRoZSByYW5rIG9mIGJvdGggUGx1Z2luRmVhdHVyZXMgYXJlIGVxdWFsIGFuZAoJICB0aGUgbmFtZSBvZiBmaXJzdCBQbHVnaW5GZWF0dXJlIGNvbWVzIGJlZm9yZSB0aGUgc2Vjb25kIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzk5MAoKMjAxMy0wNC0xNCAxNzo1NDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjczNjU5MiB0byAzY2IzZDNjCgoyMDEzLTA0LTE0IDE3OjI1OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhZWQ4N2FlIHRvIDI3MzY1OTIKCjIwMTMtMDQtMTQgMTE6MzM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5oOgoJICBwcmludGY6IGRpc2FibGUgc29tZSB1bnVzZWQgcHJpbnRmIHZhcmlhbnRzCgoyMDEzLTA0LTE0IDExOjIzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkgIHByaW50ZjogdXNlIHNwcmludGYoKSB0byB3b3JrIGFyb3VuZCBnbGliYyBjb21wbGFpbmluZyBhYm91dCAlbiBpbiBhIHdyaXRhYmxlIGZvcm1hdCBzdHJpbmcKCSAgRG9uJ3QgdXNlIHNucHJpbnRmKCksIGJ1dCB1c2Ugc3ByaW50ZiBpbnN0ZWFkIGFuZCBkbyBvdXIgb3duCgkgIGxlbmd0aCBjYWxjdWxhdGlvbnMsIGJlY2F1c2UgZ2xpYmMgbWF5IGNvbXBsYWluIGFib3V0IHVzIHBhc3NpbmcKCSAgJW4gaW4gYSBmb3JtYXQgc3RyaW5nIGlmIHRoZSBzdHJpbmcgaXMgaW4gd3JpdGFibGUgbWVtb3J5LCBhbmQKCSAgaGVyZSB0aGUgZm9ybWF0IHN0cmluZyBpcyBhbHdheXMgaW4gd3JpdGFibGUgbWVtb3J5IHNpbmNlIHdlCgkgIGNvbnN0cnVjdCBpdCBvbiB0aGUgZmx5LiBUaGlzIGhhcHBlbnMgaWYgZ2xpYmMgaGFzIGJlZW4gY29tcGlsZWQKCSAgd2l0aCBfRk9SVElGWV9TT1VSQ0U9Miwgd2hpY2ggc2VlbXMgdG8gYmUgdGhlIGNhc2Ugb24gc29tZQoJICBkaXN0cm9zL3N5c3RlbXMpLiBPbiB0aGUgdXBzaWRlLCB3ZSBub3cgdXNlIHRoZSBzcHJpbnRmIGNvZGUgcGF0aAoJICBvbiBhbGwgc3lzdGVtcyB3aGljaCBzaG91bGQgYmUgYmV0dGVyIGZyb20gYSBtYWludGVuYW5jZSBwb2ludAoJICBvZiB2aWV3LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3OTcwCgoyMDEzLTA0LTEzIDEyOjE4OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgdGVzdHM6IHNraXAgYWxsIEdzdFBvbGwgdGVzdHMgb24gV2luZG93cwoJICBBcyB0aGV5IGRvbid0IHdvcmsgdGhlcmUsIGFuZCBpdCdzIG5vbi10cml2aWFsIHRvIGZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzYwOQoKMjAxMy0wNC0xMyAxMjowMDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBvbmx5IGFkZCBhICcqJyBmb3Igbm9uLSdncG9pbnRlcicgcG9pbnRlcnMKCSAgU3BvdHRlZCBieSBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzc5MQoKMjAxMy0wNC0xMiAxNDo0ODoyOSArMDIwMCAgR3dlbm9sZSBCZWF1Y2hlc25lIDxnd2Vub2xlLmJlYXVjaGVzbmVAaW50ZWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IGZpeCBuYW1lIGV4cGFuc2lvbiBmb3IgR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm8KCSAgTWFrZSBHU1RfUExVR0lOX0RFRklORSB1c2UgR19TVFJJTkdJRlkoKSB0byBjb252ZXJ0IHRoZSBuYW1lIGFyZ3VtZW50CgkgIGludG8gYSBtZWFuaW5nZnVsIHN0cmluZy4gVGhlIGFkdmFudGFnZSBvZiB0aGlzIGlzIHRoYXQgYG5hbWUnIGNhbiBiZQoJICBleHBhbmRlZCBmcm9tIG90aGVyIG1hY3JvcyBkZWZpbmVkIGluIHRoZSBwbHVnLWluIGVsZW1lbnQuCgkgIFNpZ25lZC1vZmYtYnk6IEd3ZW5vbGUgQmVhdWNoZXNuZSA8Z3dlbm9sZS5iZWF1Y2hlc25lQGludGVsLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzg3MgoKMjAxMy0wNC0xMyAxMTozNTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IGFkZCBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTMtMDQtMTIgMjM6NTg6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBwcmludGY6IGRvbid0IGJ1aWxkIGlmIGRlYnVnZ2luZyBzdWJzeXN0ZW0gd2FzIGRpc2FibGVkCgoyMDEzLTA0LTEwIDExOjUxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiBkZWFsIHdpdGggc29tZSBvZiB0aGUgSEFWRV9GT08gdXNlZCBpbiB0aGUgcHJpbnRmIGNvZGUKCSAgUHJvYmFibHkgbmVlZHMgc29tZSBtb3JlIHdvcmsgZm9yIE1TVkMuCgoyMDEzLTA0LTA4IDE5OjQyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wcmludGYvUkVBRE1FOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBmaXggYWxsb2NhIHVzZSBmb3Igd2luZG93cyB3aXRoIG1pbmd3MzIKCSAgRG9uJ3QgdXNlIGp1c3QgR0xJQl9IQVZFX0FMTE9DQV9IIHRvIGNoZWNrIGlmIGFsbG9jYSBpcyBhdmFpbGFibGUsCgkgIHRoYXQncyBqdXN0IGZvciB0aGUgaGVhZGVyLiBHTGliIG1heSBkZWZpbmUgYWxsb2NhIGZvciB1cyBvdGhlcndpc2UKCSAgdG9vIGlycmVzcGVjdGl2ZSBvZiBHTElCX0hBVkVfQUxMT0NBX0guCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBtaW5ndzMyOgoJICBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzo3MzowOiB3YXJuaW5nOiAiYWxsb2NhIiByZWRlZmluZWQKCjIwMTMtMDQtMDcgMjA6MTE6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGVuYWJsZSBhbmQgZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIEJ1dCBzdXBwcmVzcyAtV2Zvcm1hdC1ub25saXRlcmFsIHdhcm5pbmdzIHNpbmNlIHNwcmludGYKCSAgaXMgdXNlZCB3aXRoIGEgcnVudGltZS1nZW5lcmF0ZWQgZm9ybWF0IHN0cmluZyBpbiBvdXIKCSAgdmFzbnByaW50ZiBpbXBsZW1lbnRhdGlvbi4KCjIwMTMtMDQtMDcgMTg6MjE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmg6CgkgIHByaW50ZjogZml4IHVwIGRvZGd5IHVzZSBvZiAjaWYgSEFWRV9GT08gYW5kICNpZiAhSEFWRV9GT08KCSAgU2hvdWxkIHVzZSAjaWZkZWYgYW5kICNpZm5kZWYuCgoyMDEzLTA0LTA3IDE3OjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSAgcHJpbnRmOiBtYXJrIGludGVybmFsIGZ1bmN0aW9ucyBhcyBpbnRlcm5hbAoKMjAxMy0wNC0wNyAxNzoyOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50Zjogc2tpcCBwb2ludGVyIGV4dGVuc2lvbiBzaWduaWZpZXIgY2hhcnMgYWZ0ZXIgJXAKCSAgU28gdGhleSBkb24ndCBnZXQgcHJpbnRlZCBhZnRlciB0aGUgc2VyaWFsaXNlZCBwb2ludGVyIHN0cmluZy4KCjIwMTMtMDQtMDcgMTc6MjE6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBkb24ndCBsZWFrIHNlcmlhbGlzZWQgcG9pbnRlciBleHRlbnNpb24gc3RyaW5ncwoKMjAxMy0wNC0wNyAxNzowMjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50ZjogaGFuZGxlIG9sZCBHU1RfUFRSX0ZPUk1BVCAlUCBhbmQgR1NUX1NFR01FTlRfRk9STUFUICVRIGRlZmluZXMgdG9vCgkgIEZvciBiaW5hcnkgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDEzLTA0LTA3IDE2OjQxOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmg6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IG1ha2UgcHJpbnRmIHBhcnNlciByZWNvZ25pc2Ugb3VyIHBvaW50ZXIgZXh0ZW5zaW9uIGZvcm1hdAoJICBhbmQgY2FsbCB0aGUgaG9vayB0byBnZXQgYSBzdHJpbmcgZm9yIHRoZSBwb2ludGVyIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTg6Mjg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi9wcmludGYtZXh0ZW5zaW9uLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLWV4dGVuc2lvbi5oOgoJICBwcmludGY6IGFkZCBpbmZyYXN0cnVjdHVyZSBmb3IgcG9pbnRlciBleHRlbnNpb25zIGhvb2sKCSAgRG9lcyBub3QgZG8gYW55dGhpbmcgeWV0LiBPbiBhIHNpZGVub3RlLCB3ZSBjYW4ndCBqdXN0IHVzZQoJICAlcFwwMDEgb3Igc28gdG8gc2lnbmFsIHRoZSBleHRlbnNpb24gYmVjYXVzZSBnLWkgY29tcGxhaW5zCgkgIGFib3V0IGFuIGludmFsaWQgYXNjaWkgY2hhcmFjdGVyIHRoZW4sIHNvIGhhdmUgdG8gcmVzb3J0IHRvCgkgIHNvbWV0aGluZyBtb3JlIGVsYWJvcmF0ZSwgc3VjaCBhcyAlcFxhQSBldGMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTc6MjA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogdXNlIG5ldyBpbnRlcm5hbCBwcmludGYgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnRpbmcKCSAgYW5kIHJlbW92ZSBhbGwgdGhlIHByaW50ZiBleHRlbnNpb24vc3BlY2lmaWVyIHN0dWZmIGZvcgoJICB0aGUgc3lzdGVtIHByaW50Zi4gTmV4dCB3ZSBuZWVkIHRvIGFkZCBiYWNrIHRoZSBjdXN0b20KCSAgc3BlY2lmaWVycyB0byBvdXIgb3duIHByaW50ZiBpbXBsZW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wMy0zMCAxNToxMzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi9hc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5oOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmg6CgkgIHByaW50ZjogYWRkIG91ciBvd24gcHJpbnRmIGltcGxlbWVudGF0aW9uIGZvciBkZWJ1ZyBsb2dnaW5nCgkgIFdlIHdpbGwgYWRkIHN1cHBvcnQgZm9yIG91ciBvd24gcHJpbnRmIG1vZGlmaWVycywgc28gd2UgY2FuCgkgIGdldCBuaWNlIGRlYnVnIGxvZyBvdXRwdXQgb24gYWxsIG9wZXJhdGluZyBzeXN0ZW1zIGlycmVzcGVjdGl2ZQoJICBvZiB0aGUgc3BlY2lmaWMgbGliYyB2ZXJzaW9uIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDQtMTIgMTY6MTM6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCB0cmlnZ2VyaW5nIGFuIGFzc2VydGlvbgoJICBXaGVuIGRlc2VyaWFsaXphdGlvbiBvZiB0aGUgc3RydWN0dXJlIGZhaWxzLCByZXR1cm4gYSBOVUxMIHRhZ2xpc3QgaW5zdGVhZCBvZgoJICBhc3NlcnRpbmcuCgoyMDEzLTA0LTExIDE0OjU0OjMyICswMjAwICBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYXMgPHNhbnRvc2NhZGVuYXNAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGFkZCBwb2ludGVyIG1hcmsgdG8gc2lnbmFsIGFuZCBhY3Rpb24gcmV0dXJuIHR5cGVzIHRoYXQgYXJlIHBvaW50ZXJzCgkgIFdoZW4gdGhlIHJldHVybiB0eXBlIG9mIGEgc2lnbmFsIG9yIGFjdGlvbiBpcyBhIHBvaW50ZXIsIGl0CgkgIHNob3VsZCBoYXZlIGFuIGFzdGVyaXNrIHRvIG1hcmsgaXQgYXMgc3VjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzc5MQoKMjAxMy0wNC0xMSAyMjozMjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogZG9jdW1lbnQgdHlwZSBjaGFuZ2Ugb2YgcGxheWJpbidzIGNvbm5lY3Rpb24tc3BlZWQgcHJvcGVydHkgaW4gcG9ydGluZyBkb2NzCgoyMDEzLTA0LTExIDE0OjMxOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBfZ3N0X21heF9tZW1vcnkoKSBmdW5jdGlvbgoJICBBZGQgdGhlIGEgZnVuY3Rpb24gdG8gcXVlcnkgdGhlIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSBibG9ja3MgdGhhdCBjYW4gYmUKCSAgYWRkZWQgdG8gYSBidWZmZXIuIEFsc28gaW1wcm92ZSB0aGUgZG9jcyBmb3IgX2luc2VydF9tZW1vcnkoKS4KCjIwMTMtMDQtMTEgMTQ6MDQ6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogbm90aWZ5IG9mIGNoYW5nZWQgYm91bmQgYWRkcmVzcwoJICBOb3RpZnkgd2hlbiB0aGUgYm91bmQgYWRkcmVzcyBpcyBrbm93biwganVzdCBsaWtlIHRoZSBwb3J0LgoKMjAxMy0wNC0xMSAxMzo1NTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBoYW5kbGUgUFJPR1JFU1MgbWVzc2FnZXMKCSAgV2FpdCBmb3IgYWxsIFBST0dSRVNTIG1lc3NhZ2VzIChpZiBhbnkpIHRvIGNvbXBsZXRlIGJlZm9yZSBnb2luZyB0byB0aGUgUExBWUlORwoJICBzdGF0ZS4gVGhpcyBpcyB0aGUgb25seSB3YXkgd2UgY2FuIHdhaXQgZm9yIGxpdmUgZWxlbWVudHMgdG8gY29tcGxldGUgdGhlaXIKCSAgb3BlcmF0aW9ucy4KCSAgVGhpcyBpcyBpbnRlcmVzdGluZyBmb3IgZWxlbWVudHMgbGlrZSBydHNwc3JjIHRoYXQgZG8gc29tZSBhc3luY2hyb25vdXMgbmV0d29yawoJICByZXF1ZXN0cyBhcyBwYXJ0IG9mIGdvaW5nIHRvIHRoZSBQQVVTRUQgc3RhdGUuIEl0IGNvdWxkIGJlIHBvc3NpYmxlIHRoYXQgaXQsIGZvcgoJICBleGFtcGxlLCBwcm92aWRlcyBhIGNsb2NrIGFuZCB0aGVuIHdlIHdvdWxkIGxpa2UgdG8gd2FpdCB1bnRpbCBpdCBjb21wbGV0ZXMKCSAgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBwcm92aWRlZCBjbG9jayB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgoyMDEzLTA0LTExIDE1OjA1OjA4ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBUb2dnbGUgdXBzdHJlYW0gYW5kIGRvd25zdHJlYW0gaW4gUkVDT05GSUdVUkUgcGFyYWdyYXBoLgoKMjAxMy0wNC0xMSAxMDoxMToyNSArMTIwMCAgRG91Z2xhcyBCYWduYWxsIDxkb3VnbGFzQHBhcmFkaXNlLm5ldC5uej4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgR3N0Q29sbGVjdFBhZHMgZG9jdW1lbnRhdGlvbjogZ3N0X2NvbGxlY3RfcGFkc19yZWFkIGlzIGdvbmUuCgoyMDEzLTA0LTEwIDIxOjI0OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0aGUgcHJlY29uZGl0aW9uIGZvciBnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKCkKCSAgVXNlIHRoZSByaWdodCB2YXJpYWJsZSBhbmQgaW52ZXJ0IHRoZSB0ZXN0LiBUaGUgcHJlY29uZGl0aW9uIHNob3VsZCBjYXRjaAoJICBzb21lb25lIGNhbGxpbmcgdG8gb25jZSB0b28gb2Z0ZW4uCgoyMDEzLTA0LTA5IDE5OjM3OjA2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEluaXQgZGVidWcgY2F0ZWdvcnkgYmVmb3JlIGV2ZXIgdXNpbmcgaXQKCjIwMTMtMDQtMDkgMjA6NTk6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA0YzdhMWUgdG8gYWVkODdhZQoKMjAxMy0wNC0wMyAyMTozMjo1NCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBVc2UgeGxzdHByb2MgaW5zdGVhZCBvZiBkb2Nib29rMmh0bWwKCjIwMTMtMDQtMDkgMTA6MTc6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGJpbmQgc29ja2V0IGJlZm9yZSBxdWVyeWluZyBsb2NhbCBhZGRyZXNzCgkgIEZhaWxzIG9uIHdpbmRvd3Mgb3RoZXJ3aXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjA4CgoyMDEzLTA0LTA4IDEzOjE0OjM1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBBbHNvIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lIGluIGxpYnB0aHJlYWQKCSAgbGlid2lucHRocmVhZHMgcHJvdmlkZXMgUE9TSVggdGltZSBBUEkuCgkgIEl0IGFsc28gcHJvdmlkZXMgbGlicHRocmVhZCBhbGlhcyBmb3IgaXRzZWxmLCBmb3IgY29tcGF0aWJpbGl0eSwgc28gdGhhdAoJICBpcyB3aGF0IHdlIHdpbGwgbGluayB3aXRoLgoJICBGaXhlcyAjNjk3NTUwCgoyMDEzLTA0LTA4IDE1OjMwOjA3ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgY2xvY2s6IERvIHVzZSBIQVZFX0NMT0NLX0dFVFRJTUUKCSAgRml4ZXMgIzY5NzU0OQoKMjAxMy0wNC0wOCAxNDo0MjoxNSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSAgbGlic2FiaTogU3BlY2lhbCBzdHJ1Y3Qgc2l6ZSB2YWx1ZXMgZm9yIFczMgoJICBUaGVzZSBhY2NvdW50IGZvciBib3RoIHBvc3NpYmxlIHR5cGUgc2l6ZSBtaXNtYXRjaCBBTkQgLW1tcy1iaXRmaWVsZHMKCSAgcGFja2luZy4gU2l6ZXMgYXJlIHRha2VuIGZyb20gYW4gaTY4Ni13NjQtbWluZ3czMi1idWlsdCBHU3RyZWFtZXIsCgkgIGdjYyA0LjguMCwgbWluZ3ctdzY0IHN2bi1yNTY4NS4KCSAgRml4ZXMgIzY5NzU1MQoKMjAxMy0wNC0wOSAwOToyMjozOSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggR3N0UGFkIHRlc3Qgb24gd2luZG93cyBhbmQgaW4gQ0tfRk9SSz1ubyBtb2RlCgkgIE5lZWQgdG8gY2xlYXIgYnVmZmVyIGxpc3RzIGF0IHRoZSBlbmQgb2YgZWFjaCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjEwCgoyMDEzLTA0LTA2IDE2OjA5OjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4IHNwYWNlIGluIGZhdWx0IG1lc3NhZ2UKCjIwMTMtMDQtMDYgMjI6MTA6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IENvcHkgQU5ZIGZsYWcgd2hlbiBjb3B5aW5nIGNhcHMgZmVhdHVyZXMgdG9vCgoyMDEzLTA0LTA2IDIxOjQ5OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGNhcHM6IEhhbmRsZSBBTlkgY2FwcyBmZWF0dXJlcyBwcm9wZXJseSBpbiBtb3JlIHBsYWNlcwoKMjAxMy0wNC0wNiAyMToyMTozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgdGVzdCBmb3Igb3BlcmF0aW9ucyBvbiBjYXBzIHdpdGggQU5ZIGZlYXR1cmVzCgoyMDEzLTA0LTA2IDIxOjA5OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFByb3Blcmx5IGhhbmRsZSBBTlkgY2FwcyBmZWF0dXJlcyBpbiBjYXBzIG9wZXJhdGlvbnMKCjIwMTMtMDQtMDUgMjE6MTA6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogdXBkYXRlIHNpZ25hbCBkb2NzIGZvciBnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24oKQoKMjAxMy0wNC0wNSAxMDoxNTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpZ25vcmUgZW1wdHkgbm90LWxpbmtlZCBxdWV1ZXMKCSAgV2UgbmVlZCB0byBpZ25vcmUgdGhlIG5vdC1saW5rZWQgcXVldWVzIGluIHRoZSB1bmRlcnJ1biBhbmQgb3ZlcnJ1biBjYWxsYmFja3MKCSAgYmVjYXVzZSB0aGV5IGFyZSBleHBlY3RlZCB0byBiZSBlbXB0eS4KCjIwMTMtMDQtMDQgMjM6MTI6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggY2FwcyBmZWF0dXJlIGxlYWsKCSAgRml4ZXMgbGVha3MgaW4gMTQgY29yZSB1bml0IHRlc3RzIGluY2x1ZGluZwoJICBnc3QvZ3N0Y2Fwcy4KCjIwMTMtMDQtMDQgMTk6MTY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxOTowNzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxOTowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHN0YXJ0IHB1c2hpbmcgYWdhaW4gb24gUkVDT05GSUdVUkUKCSAgV2hlbiB3ZSBnb3QgTk9UX0xJTktFRCBiZWZvcmUgYW5kIHdlIHJlY2VpdmUgYSBSRUNPTkZJR1VSRSBldmVudCwgc3RhcnQgcHVzaGluZwoJICBhZ2FpbiBvbiB0aGUgc291cmNlIHBhZC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDQKCjIwMTMtMDQtMDQgMTc6NTk6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogc2ltcGxpZnkgaXNfc3Vic2V0IGNoZWNrCgkgIEl0ZXJhdGUgb3ZlciB0aGUgZmllbGRzIG9mIHRoZSBzdXBlcnNldCBpbnN0ZWFkIG9mIHRob3NlIG9mIHRoZSBzdWJzZXQuCgkgIFRoaXMgd2F5IHdlIGNhbiBjaGVjayB0aGUgcHJlc2VuY2Ugb2YgdGhlIHN1YnNldCBmaWVsZCBhbmQgZG8gdGhlIHN1YnNldCBjaGVjawoJICBpbiBvbmUgaXRlcmF0aW9uLgoKMjAxMy0wNC0wNCAxNzo0NjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVwZGF0ZSBkb2NzLCBpc19zdWJzZXQoKSB3b3JrcyBub3cKCjIwMTMtMDQtMDQgMTY6Mzk6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggZG9jcwoKMjAxMy0wNC0wNCAxNjoyMDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKQoJICBSZXdpcmUgc29tZSBpbnRlcm5hbCBmdW5jdGlvbnMgYW5kIGV4cG9zZSBhIG5ldwoJICBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpIGZ1bmN0aW9uLgoJICBBUEk6IGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkKCjIwMTMtMDQtMDQgMTU6NDU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogY2xhcmlmeSBkb2NzCgoyMDEzLTA0LTA0IDE1OjQ1OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWcKCjIwMTMtMDQtMDQgMTA6MTc6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBkb24ndCBXQVJOLCBqdXN0IERFQlVHCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY5MTEKCjIwMTMtMDMtMzAgMTE6MDY6NTkgKzAwMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IEZpeCBzZWVraW5nIHdoZW4gcG9zaXRpb24gaXMgc2xpZ2h0bHkgb3V0c2lkZSB0aGUgc2VnbWVudAoJICBWZXJ5IG9mdGVuLCB3aGVuIHRoZSBlbmQgb2YgYSBzZWdtZW50IGlzIGRldGVjdGVkIGJ5IGRlbXV4ZXIsIHRoZSBwb3NpdGlvbgoJICBpcyBzbGlnaHRseSBvdXRzaWRlIHRoZSBzZWdtZW50IGJvdW5kYXJpZXMuIEN1cnJlbnRseSwgaWYgdGhhdCBpcyB0aGUgY2FzZQoJICB0aGUgYmFzZSB3aWxsIGJlIHNldCB0byBOT05FIGluc3RlYWQgb2Ygbm9ybWFsIGFjY3VtdWxhdGlvbi4gVGhpcyB3b3VsZAoJICBicmVhayBub24tZmx1c2hpbmcgc2Vla3MgaW4gb2dnZGVtdXggYW5kIG1vc3QgbGlrZWx5IG90aGVyIGRlbXV4ZXJzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2ODk5CgoyMDEzLTA0LTAzIDE3OjI5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMy0wNC0wMyAxNjowMjozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgc3RyZWFtIGZsYWdzCgoyMDEzLTA0LTAyIDE4OjE3OjAwIC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nLXRvLTEuMC50eHQ6IHN1YnRpdGxlIHRleHQgbWVkaWEgdHlwZXMgY2hhbmdlZCBhcyB3ZWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcxNTMKCjIwMTMtMDQtMDIgMjM6NTE6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBkb2NzOiBtb3JlIHNpbmNlIG1hcmtlcnMgYW5kIG90aGVyIGRvY3MgZml4ZXMKCjIwMTMtMDQtMDIgMjM6MjE6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGRvY3M6IGFkZCBzaW5jZSBtYXJrZXJzIHRvIGNhcHNmZWF0dXJlcyBkb2NzCgoyMDEzLTA0LTAyIDIzOjE4OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBhZGQgc29tZSBtb3JlIG1vZHVsZXMgdG8gZ2l0LXVwZGF0ZS5zaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MDU4CgoyMDEzLTA0LTAyIDIzOjA0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVuaW5zdGFsbGVkIG9yYy9vcmMtdGVzdC8ubGlicyB0byBsaWJyYXJ5IHBhdGhzCgkgIFRoaXMgaXMgbmVlZGVkIGJ5IHRoZSB1bml0IHRlc3RzIGluIGdzdC1wbHVnaW5zLWJhc2UsIC1nb29kIGV0Yy4KCSAgU3BvdHRlZCBieSBBbGV4IEtheWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcwOTMKCjIwMTMtMDQtMDIgMjI6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBBZGQgR1NUX0NBUFNfRkVBVFVSRVNfQU5ZCgkgIFRoaXMgaXMgZXF1YWwgdG8gYW55IG90aGVyIGNhcHMgZmVhdHVyZXMgYnV0IHJlc3VsdHMgaW4gdW5maXhlZCBjYXBzLiBJdAoJICB3b3VsZCBiZSB1c2VkIGJ5IGVsZW1lbnRzIHRoYXQgb25seSBsb29rIGF0IHRoZSBidWZmZXIgbWV0YWRhdGEgb3IgYXJlCgkgIGN1cnJlbnRseSB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUsIGFuZCBhcyBzdWNoIGRvbid0IGNhcmUgYWJvdXQgYW55CgkgIHNwZWNpZmljIGZlYXR1cmVzLgoKMjAxMy0wNC0wMSAyMjoxMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1pbm9yIGNvc21ldGljIGNoYW5nZXMKCSAgTGV0J3Mgbm90IHVzZSB1Z2x5IGxlYWRpbmcgdW5kZXJzY29yZXMgZm9yCgkgIHN0YXRpYyBmdW5jdGlvbnMuCgoyMDEzLTA0LTAxIDIxOjIzOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IG9iamVjdCBwcmludGluZyBvZiBjYXBzIGZlYXR1cmVzIGluIGRlYnVnIGxvZwoKMjAxMy0wNC0wMSAxNjozODo0MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkcmFmdC10cmFjaW5nOiB1cGRhdGUgZHJhZnQgZGVzaWduIHdpdGggdGltZXIgaWRlYXMKCjIwMTMtMDMtMzAgMTc6MDM6NDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZWZhY3RvciBwcmV0dHkgcHJpbnRpbmcgb2JqZWN0cwoJICBFeHRyYWN0IGZvcm1hdHRlcnMgaW50byBsb2NhbCBmdW5jdGlvbnMuIENoYW5nZSB0aGUgc3RydWN0dXJlIGZpbHRlcmluZyBzbyB0aGF0CgkgIGl0IHdvcmtzIGZvciB0YWdsaXN0cyB0b28uCgoyMDEzLTAzLTMwIDE2OjM5OjM4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWFrZSBwb3N0X21lc3NhZ2UgYW5kIHF1ZXJ5IG1vcmUgYWxpa2UKCjIwMTMtMDQtMDEgMTA6MjA6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFByaW50IGNhcHMgZmVhdHVyZXMgdG9vCgoyMDEzLTA0LTAxIDEwOjE5OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBGb3IgY29weWluZyBmZWF0dXJlcyBpdCdzIG5vdCByZXF1aXJlZCB0byBoYXZlIG5vIHBhcmVudCByZWZjb3VudAoKMjAxMy0wNC0wMSAxMDoxOTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBTZXQgZmVhdHVyZXMnIHBhcmVudCByZWZjb3VudCBpbiBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKSB0b28KCjIwMTMtMDQtMDEgMTA6MTg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogU2V0IHN5c21lbSBmZWF0dXJlcyBpZiBleHBsaWNpdGVseSByZXF1ZXN0ZWQKCjIwMTMtMDMtMzEgMTk6MDk6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgZGVzaWduOiBBZGQgdGhlIGNhcHMgZmVhdHVyZXMgYW5kIGRlc2NyaWJlIGhvdyB0aGUgY2FwcyBvcGVyYXRpb25zIGFjdHVhbGx5IHdvcmsKCjIwMTMtMDMtMzAgMTU6MzU6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IEFkZCBuZXcgZGF0YSB0eXBlIGZvciBoYW5kbGluZyBjYXBzIGZlYXR1cmVzIHRvIHRoZSBjYXBzCgkgIFRoZXNlIGFyZSBtZWFudCB0byBzcGVjaWZ5IGZlYXR1cmVzIGluIGNhcHMgdGhhdCBhcmUgcmVxdWlyZWQKCSAgZm9yIGEgc3BlY2lmaWMgc3RydWN0dXJlLCBmb3IgZXhhbXBsZSBhIHNwZWNpZmljIG1lbW9yeSB0eXBlCgkgIG9yIG1ldGEuCgkgIFNlbWFudGljYWxseSB0aGV5IGNvdWxkIGJlIHRob3VnaCBvZiBhcyBhbiBleHRlbnNpb24gb2YgdGhlIG1lZGlhCgkgIHR5cGUgbmFtZSBvZiB0aGUgc3RydWN0dXJlcyBhbmQgYXJlIGhhbmRsZWQgZXhhY3RseSBsaWtlIHRoYXQuCgoyMDEzLTAzLTMxIDE1OjMwOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgU0VMRUNUIGFuZCBVTlNFTEVDVCBzdHJlYW0gZmxhZ3MgZm9yIHN0cmVhbS1zdGFydCBldmVudAoJICBTbyBkZW11eGVycyBjYW4gc2lnbmFsIHdoaWNoIGF1ZGlvL3ZpZGVvL3N1YnRpdGxlIHN0cmVhbXMgc2hvdWxkCgkgIGJlIHNlbGVjdGVkIGJ5IGRlZmF1bHQgYW5kIHdoaWNoIHNob3VsZCBub3QgYmUgc2VsZWN0ZWQKCSAgYXV0b21hdGljYWxseS4KCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfU0VMRUNUCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX1VOU0VMRUNUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU5NjgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDkxMQoKMjAxMy0wMS0wNiAyMDoyNzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogYWRkIHN0cmVhbSBmbGFncyB0byBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgQVBJOiBnc3RfZXZlbnRfc2V0X3N0cmVhbV9mbGFncygpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9mbGFncygpCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX05PTkUKCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfU1BBUlNFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDA2NDgKCjIwMTMtMDMtMzEgMTE6MjY6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogQWRkIEFQSSB0byBnZXQgdGhlIGxhc3Qgc2V0IGNvbnRleHQgZnJvbSBhbiBlbGVtZW50CgkgIEVsZW1lbnRzIHNob3VsZCBvdmVycmlkZSBHc3RFbGVtZW50OjpzZXRfY29udGV4dCgpIGFuZCBhbHNvIGNhbGwKCSAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQoKSB0byBrZWVwIHRoaXMgY29udGV4dCB1cC10by1kYXRlIHdpdGgKCSAgdGhlIHZlcnkgbGF0ZXN0IGNvbnRleHQgdGhleSBpbnRlcm5hbGx5IHVzZS4KCjIwMTMtMDMtMzAgMTQ6MDQ6MjggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiBhZGQgaW5pdGlhbCB0cmFjaW5nIGRlc2lnbiBkb2MKCjIwMTMtMDMtMzAgMTE6NDc6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IExldCBnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMoKSBwYXNzIHRoZSBjYXBzIG93biBjYXBzIGFzIGZpbHRlcgoJICBUaGlzIHdpbGwgcmVkdWNlIHRoZSBudW1iZXIgb2YgY2FwcyBjcmVhdGVkIGRvd25zdHJlYW0gYW5kIHdlIGRvbid0CgkgIG5lZWQgdG8gaW50ZXJzZWN0IGluIHRoZSB2ZXJ5IGVuZCB3aXRoIHRoZSBwYWQncyBvd24gY2Fwcy4KCjIwMTMtMDMtMzAgMTA6MjQ6MjcgKzAxMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeGVzIGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0YmFzZXNpbmsuYzogSW4gZnVuY3Rpb24gJ2dzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQnOgoJICBnc3RiYXNlc2luay5jOjMyMDQ6IHdhcm5pbmc6ICdyZXQnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgoKMjAxMy0wMy0yOSAxOTowMTo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBnaXIgd2FybmluZwoKMjAxMy0wMy0yOSAxODo0OToxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBSZXZlcnQgInB3ZzogRml4IGV4YW1wbGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWQ2NGYyN2Q4ODEyNzRhNDBmMDQ0MWJiOGM1YjM4MTZmZGZjNWI5ZS4KCSAgKnNpZ2gqCgoyMDEyLTExLTA2IDA5OjQxOjU4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogRml4IGV4YW1wbGUKCjIwMTItMTEtMTEgMTM6NTI6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBTRUdNRU5UIHN0aWNreSBldmVudHMgd2hlbiBmbHVzaGluZwoJICBXaGVuIGZsdXNoaW5nLCBpdCBpcyBleHBlY3RlZCB0aGF0IHVwc3RyZWFtIHdpbGwgc2VuZCBhIFNFR01FTlQKCSAgZXZlbnQgYWZ0ZXJ3YXJkcy4KCSAgVGhpcyBhbHNvIGF2b2lkcyBzdHJheSBTRUdNRU5UIGV2ZW50cyBmcm9tIGNvbWluZyB0aHJvdWdoIGFmdGVyIGEKCSAgZmx1c2guCgoyMDEzLTAzLTI4IDE1OjM1OjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBuZXcgR3N0Q29udGV4dCBtaW5pb2JqZWN0IGZvciBzaGFyaW5nIGNvbnRleHRzIGluIGEgcGlwZWxpbmUKCjIwMTMtMDMtMjggMTY6NDI6NTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJICBhcmdiLWNvbnRyb2xiaW5kaW5nOiBmaXggbWVzc2VkIHVwIHByb3BlcnR5IHNldHRlcgoJICBUaGlzIHdhcyBtaXNhc3NpZ25pbmcgdGhlIGNvbnRyb2wgc291cmNlcy4gSXQgd2FzIGFsc28gbGVha2luZyB0aGUgb2xkIHZhbHVlcyBpZgoJICBhIGNvbnRyb2wgc291cmNlIHdvdWxkIGJlIHJlcGxhY2VkLgoKMjAxMy0wMy0yNyAxODoyNTowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBuZXh0X3B0cyB1cG9uIFNFR01FTlQgZXZlbnQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MQoKMjAxMy0wMi0yNiAxOTo1ODo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb3JlIGludGVyLXRpbWVzdGFtcCB0cmFja2luZwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAzLTI2IDE5OjIyOjE4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogQWRkIGFubm90YXRpb25zIGFuZCBweWdpIGZyaWVuZGx5IGV4dHJhY3Rpb24gZnVuY3Rpb24KCSAgQVBJOiBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwCgoyMDEzLTAzLTI3IDE3OjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBob3BlZnVsbHkgY2xhcmlmeSBhIGxpdHRsZQoKMjAxMy0wMy0yNSAxODoxMTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgVXBkYXRlIGRvY3MgZm9yIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZF9wcmludGYoKQoJICBUbyBpbmRpY2F0ZSB0aGF0IGZvcm1hdCBzdHJpbmdzIHNob3VsZCBiZSBhbHBoYSBzb3J0YWJsZS4KCjIwMTMtMDMtMjUgMDk6MTY6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIHVuaXQgdGVzdCBmb3IgR1NUX0NBUFNfe0FOWSxOT05FfSBhbmQgR1NUX1NUQVRJQ19DQVBTX3tBTlksTk9ORX0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjQzNQoKMjAxMy0wMy0yNSAwOToxOToyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggZ3N0X3N0YXRpY19jYXBzX2dldChHU1RfU1RBVElDX0NBUFNfTk9ORSkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjQzNQoKMjAxMy0wMy0yMSAyMTowMDo1NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3Qgc2VuZCBlcnJvciBpZiBuZWdvdGlhdGUgZmFpbHMgYmVjYXVzZSB3ZSBhcmUgZmx1c2hpbmcKCSAgTmVnb3RpYXRpb24gbWF5IGJlIGFib3J0ZWQgYnkgYSBmbHVzaCBmcm9tIGFub3RoZXIgdGhyZWFkIHRoYXQgbmVlZCB0bwoJICBzdG9wIHRoZSB0YXNrIChpLmUuIHNlZWspLiBDaGVjayB0aGF0IGNhc2UgYW5kIHNpbGVudGx5IHBhdXNlIHRoZSB0YXNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MzU3CgoyMDEzLTAzLTI0IDE3OjUzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogc29tZSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMKCjIwMTMtMDMtMjIgMjA6MDI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcXVlcnlmbi54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIHF1ZXJ5IGZ1bmN0aW9uIGV4YW1wbGUgaW4gUGx1Z2luIFdyaXRlcidzIEd1aWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYxNDIKCjIwMTMtMDMtMDcgMTI6MTE6MzAgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogZml4IHNwdXJpb3VzIGZhaWx1cmUgaW4gdGVzdF9jb2xsZWN0IGNvbGxlY3RwYWRzIHRlc3QKCSAgcG9wKCkgaW4gY29sbGVjdGVkIGNhbGxiYWNrLgoJICBUaGVyZSB3ZXJlIHRocmVlIHRocmVhZHMgaW4gdGhlIHRlc3QgY2FzZXMgdGhhdCBoYW5nZWQ6IHRoZSB0ZXN0IHRocmVhZCBhbmQgdHdvCgkgIHRocmVhZHMgdGhhdCBwdXNoIGJ1ZmZlcnMuIEVhY2ggdGhyZWFkIHB1c2ggb25lIGJ1ZmZlciBvbiBvbmUgcGFkLiBUaGVyZSBhcmUKCSAgdHdvIHBhZHMgaW4gdGhlIGNvbGxlY3RwYWRzIHNvIHRoZSBzZWNvbmQgYnVmZmVyIHdpbGwgdHJpZ2dlciB0aGUKCSAgY29sbGVjdC1jYWxsYmFjay4KCSAgVGhpcyBpcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgaGFuZyBvY2N1cnM6CgkgIFRoZSBmaXJzdCB0aHJlYWQgcHVzaGVzIGEgYnVmZmVyIGFuZCBpbml0aWFsaXplcyBhIGNvb2tpZSB0byB0aGUgdmFsdWUgb2YgYQoJICBjb3VudGVyIGluIHRoZSBjb2xsZWN0cGFkcyBvYmplY3QgYW5kIHdhaXRzIG9uIGEgY29uZCBmb3IgdGhlIGNvdW50ZXIgdG8gY2hhbmdlCgkgIGFuZCBmb3Igc29tZW9uZSB0byBjb25zdW1lIHRoZSBidWZmZXIgKGkuZS4gX3BvcCgpIGl0KS4KCSAgVGhlIHNlY29uZCB0aHJlYWQgcHVzaGVzIGEgYnVmZmVyIGFuZCBjYWxscyB0aGUgY29sbGVjdGVkIGNhbGxiYWNrLCB3aGljaAoJICBzaWduYWxzIHRoZSBjb25kIHRoYXQgdGhlIHRlc3QgdGhyZWFkIGlzIHdhaXRpbmcgZm9yLgoJICBUaGUgdGVzdCB0aHJlYWQgcG9wcyBib3RoIGJ1ZmZlcnMgKHdpdGhvdXQgaG9sZGluZyBhbnkgbG9jaykuIEVhY2ggY2FsbCB0bwoJICBfcG9wKCkgaW5jcmVhc2VzIHRoZSBjb3VudGVyIGJyb2FkY2FzdHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRoZSBmaXJzdCB0aHJlYWQgaXMKCSAgbm93IHdhaXRpbmcgZm9yLiBJdCB0aGVuIGpvaW5zIGJvdGggdGhyZWFkcyAoaGFuZ3MpLgoJICBUaGUgZmlyc3QgdGhyZWFkIHdha2VzIHVwIGFuZCByZXR1cm5zLCBzaW5jZSBpdHMgYnVmZmVyIGhhcyBiZWVuIGNvbnN1bWVkLgoJICBUaGUgc2Vjb25kIHRocmVhZCBzdGFydHMgZXhlY3V0aW5nIGFnYWluLiBXaGVuIHRoZSBjYWxsYmFjaywgY2FsbGVkIGJ5IHRoZQoJICBzZWNvbmQgdGhyZWFkLCBoYXMgcmV0dXJuZWQgaXQgaW5pdGlhbGl6ZXMgYSBjb29raWUgdG8gdGhlIHZhbHVlIG9mIGEgY291bnRlciwKCSAgd2hpY2ggaGFzIGFscmVhZHkgcHJlbWF0dXJlbHkgYmVlbiBpbmNyZWFzZWQgYnkgdGhlIHRlc3QgdGhyZWFkIHdoZW4gaXQgcG9wcGVkCgkgIHRoZSBidWZmZXJzLCBhbmQgd2FpdCdzIG9uIGEgY29uZCBmb3IgdGhlIGNvdW50ZXIgdG8gY2hhbmdlIGFuZCBmb3Igc29tZW9uZSB0bwoJICBjb25zdW1lIHRoZSBidWZmZXIgKGkuZS4gX3BvcCgpIGl0KS4gU2luY2UgdGhlIGJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIHBvcGVkCgkgIGFuZCB0aGUgY291bnRlciBoYXMgYWxyZWFkeSBiZWVuIGluY3JlYXNlZCBpdCB3aWxsIGJlIHN0dWNrIGZvcmV2ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU1NTUKCjIwMTMtMDMtMTYgMTI6MDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW1vdmUgZmZtcGVnIGxpYnMgZnJvbSBkeW5hbWljIGxpbmtlciBwYXRocwoJICBXZSBsaW5rIHRob3NlIGxpYnMgaW50byB0aGUgcGx1Z2luIHN0YXRpY2FsbHksIG9yIHVzZSBleHRlcm5hbAoJICBzeXN0ZW0gbGlicywgYnV0IG5ldmVyIHRoZSBpbnRlcm5hbCBzbmFwc2hvdCBkeW5hbWljYWxseS4KCjIwMTMtMDMtMTYgMTI6MDA6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LWVkaXRpbmctc2VydmVzIHRvIEdJX1RZUEVMSUJfUEFUSAoJICBTbyBweWdpIGNhbiBmaW5kIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTM3CgoyMDEzLTAzLTEyIDEzOjUzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogbWFrZSBzdXJlIHNsb3cgR1NUX1JFQURfVUlOVCogdmFyaWFudHMgZG9uJ3QgaGF2ZSB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cwoJICBGaXhlcyB1bml0IHRlc3Qgb24gc3lzdGVtcyB3aGVyZSB1bmFsaWduZWQgbWVtb3J5IGFjY2VzcyBpcyBub3QgcG9zc2libGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU1OTkKCjIwMTMtMDMtMDUgMTE6MTQ6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogZG9uJ3QgZXhpdCB0aGUgbG9vcCBvbiBidWZmZXJpbmcgaW4gcGF1c2VkCgkgIFdoZW4gd2UgcmVjZWl2ZSBhIGJ1ZmZlcmluZyBtZXNzYWdlIG9mIDEwMCUgaW4gdGhlIHBhdXNlZCBzdGF0ZSwgd2UgZXhpdAoJICB0aGUgZXZlbnRfbG9vcCBhbmQgbW92ZSB0byB0aGUgUExBWUlORyBzdGF0ZS4gV2hhdCBzaG91bGQgaGFwcGVuIGlzIHRoYXQKCSAgd2Ugd2FpdCBmb3IgYm90aCBBU1lOQy1ET05FIGFuZCAxMDAlIGJ1ZmZlcmluZyBiZWZvcmUgY29udGludWVpbmcuCgoyMDEzLTAzLTA4IDEzOjE1OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgY29udHJvbGxlciBkZXNpZ24gYW5kIGFkZCBzb21lIHRob3VnaHMgZm9yIGZ1dHVyZSBzdHVmZgoKMjAxMy0wMy0wOCAwODoxMzowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgZG9jczogbWVudGlvbiBjbGlwcGluZyBvZiB2YWx1ZXMgaW4gY29udHJvbC1iaW5kaW5nIGRvY3MKCjIwMTMtMDMtMDggMDg6MTA6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBjb2RlIGNsZWFudXBzCgkgIFVzZSBhIHByb3BlcnR5IGZvciBhY2Nlc3NpbmcgdGhlIGNvbnRyb2wtc291cmNlIG9uIHRoZSBiaW5kaW5nLiBEcm9wIGJhc2VfaW5pdAoJICBvbiB0aGUgdGVzdCBvYmplY3QuCgoyMDEzLTAzLTA3IDExOjQ2OjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZ3N0X3F1ZXJ5X2dldF9uX2FsbG9jYXRpb25fcGFyYW1zKCkgcmV0dXJucyBhIG5ldyByZWYgdG8gdGhlIGFsbG9jYXRvcgoKMjAxMy0wMy0wNyAxMTozNTowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgYSBib2d1cyB0ZXN0CgkgIFdlIHByZXZpb3VzbHkgZm9yZ290IHRvIGluaXRpbGl6ZSB0aGUgYW1wbGl0ZGUgcHJvcGVydHkgdG8gdGhlIGRlZmF1bHQgYW5kIHRodXMgaXQgd2FzIDAuMC4gVGhlcmVmb3JlIGEgZGVmYXVsdCBsZm8gY29udHJvbHNvdXJjZSByZXR1cm5lZCBhIHNlcmllcyBvZiAwLjAgYW5kIHRoZSB0ZXN0IHdhcyBhc3NlcnRpbmcgb24gdGhhdC4KCjIwMTMtMDMtMDcgMDk6MTU6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogcmVsYXggdGhlIHBzcGVjIGZvciB0aGUgY29udHJvbC1zb3VyY2UKCSAgV2UgY2FuIGNoYW5nZSBjb250cm9sIHNvdXJjZXMgb24gY29udHJvbGJpbmRpbmdzLgoKMjAxMy0wMy0wNyAwOToxMjo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm86IHNldCBhIHNlbnNpYmxlIGxvd2VyIGJvdW5kYXJ5IGZvciB0aGUgZnJlcXVlbmN5CgkgIFVzZSBEQkxfTUlOLCB3aGljaCBpcyBhIHRoZSBzbWFsbGVzIGRvdWJsZSBncmVhdGVyIHRoYW4gemVybyB0aGF0IGlzIG5vdCBpbgoJICBkZW5vcm1hbCBmb3JtYXQuIFRoaXMgZXhwb3NlcyB0aGUgbGltaXQgYmV0dGVyIHRoYW4gdGhlIHJ1bnRpbWUgY2hlY2suCgoyMDEzLTAzLTA2IDIzOjU5OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyZGUyMjFjIHRvIDA0YzdhMWUKCjIwMTMtMDMtMDYgMTY6NDA6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogaW5pdCB0aGUgYW1wbGl0dWRlIHRvIHRoZSBkZWZhdWx0IGFuZCB1cGRhdGUgdGhlIGRvY3MKCjIwMTMtMDMtMDUgMTE6MzA6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIGFsbCB0aGUgYmFzZS9iYWQgbGlicmFyaWVzIGFuZCByZW1vdmUgb2Jzb2xldGUgb25lcwoKMjAxMy0wMy0wMyAxNjowMDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoJICBSdW5uaW5nIHN1aXRlKHMpOiBHc3RCYXNlU2luawoJICA9PTIyMDIzPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQoJICA9PTIyMDIzPT0gICAgYXQgMHg1MDVGRkNFOiBnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzIChnc3RiYXNlc2luay5jOjE5MzYpCgkgID09MjIwMjM9PSAgICBieSAweDUwNjhDODA6IGdzdF9iYXNlX3NpbmtfZG9fc3luYyAoZ3N0YmFzZXNpbmsuYzoyMzc5KQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDZCQ0QyOiBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfd2FpdF9ldmVudCAoZ3N0YmFzZXNpbmsuYzoyOTAzKQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDYzM0E0OiBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MjkxOCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NkY1QzIxNjogZ3N0X2Zha2Vfc2lua19ldmVudCAoZ3N0ZmFrZXNpbmsuYzozODMpCgkgID09MjIwMjM9PSAgICBieSAweDUwNUYxNjQ6IGdzdF9iYXNlX3NpbmtfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MzEwOCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTJGQTA5MDogZ3N0X3BhZF9zZW5kX2V2ZW50X3VuY2hlY2tlZCAoZ3N0cGFkLmM6NDgyMikKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTMwMzc1NjogZ3N0X3BhZF9zZW5kX2V2ZW50IChnc3RwYWQuYzo0OTg0KQoJICA9PTIyMDIzPT0gICAgYnkgMHg0MDE2NUI6IGJhc2VzaW5rX3Rlc3RfZ2FwIChiYXNlc2luay5jOjE0OCkKCjIwMTMtMDMtMDMgMTI6MDY6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBtZW1vcnkgY29weWluZyBsb2dpYyBpbiBjb3B5X2ludG8oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1MDM1CgoyMDEzLTAzLTAzIDExOjI4OjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogVXNlIGNvcnJlY3QgcHJpbnQgZm9ybWF0IHNwZWNpZmllcnMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEzLTAyLTIyIDE0OjIyOjAxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgRml4IG1pc3NwZWxsaW5ncyBvZiAnY29udGludW91cycKCjIwMTMtMDItMjIgMTQ6NTY6NDkgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdGFrZSBEVFMgaW50byBhY2NvdW50CgkgIEltcG9ydGFudGx5LCB0aGlzIHBhdGNoIGNvbnZlcnRzIERUUyB0byBydW5uaW5nIHRpbWUuICBMZXNzIGltcG9ydGFudGx5LAoJICBhbmQgcG9zc2libHkgYSBwcm9ibGVtIGZvciBzb21lIG11eGVycywgaXMgdGhhdCBpdCBvcmRlcnMgYnVmZmVycyBieQoJICBEVFMgKGlmIGl0IGlzIHZhbGlkLCBvdGhlcndpc2UgUFRTKS4gIFRoaXMgaXMgZ2VuZXJhbGx5IGNvcnJlY3QsIGJ1dAoJICBtaWdodCBiZSBzb21ld2hhdCBzdXJwcmlzaW5nIHRvIG11eGVycy4KCSAgQWxzbyBub3RlIHRoYXQgb25jZSBjb252ZXJ0ZWQgdG8gcnVubmluZyB0aW1lLCBEVFMgY2FuIGVuZCB1cCBuZWdhdGl2ZS4KCjIwMTMtMDItMjggMjI6NTk6NDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiBpbXByb3ZlIHRoZSBjb250cm9sbGVyIGRvY3MgYSBsaXR0bGUgbW9yZQoJICBSZXdvcmQgc29tZSBzZWN0aW9ucy4gRXhwbGFpbiB2YWx1ZSBtYXBwaW5ncyBiZXR0ZXIuCgoyMDEzLTAyLTI4IDE5OjQwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1saWJhdiB0byBwa2ctY29uZmlnIHBhdGgKCjIwMTMtMDItMjcgMjI6MTU6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBzZWVraW5nOiBhZGQgbW9yZSBsb2dnaW5nIGZvciBzZWVraW5nCgkgIEVzcGVjaWFsbHkgYWRkIGxvZ2dpbmcgdG8gZXJyb3IgY29kZSBwYXRocy4KCjIwMTMtMDItMjcgMTA6MDk6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogR3JhY2VmdWxseSBoYW5kbGUgZ3N0X21lbW9yeV9jb3B5KCkgcmV0dXJuaW5nIE5VTEwgd2l0aG91dCBjcmFzaGluZwoJICBnc3RfYnVmZmVyX2NvcHlfaW50bygpIGFuZCBnc3RfYnVmZmVyX3Jlc2l6ZV9yYW5nZSgpIGNhbiBub3cgZmFpbC4KCjIwMTMtMDItMjYgMTc6MzM6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhbGxvY2F0b3I6IHNtYWxsIGludGVybmFsIGNsZWFudXBzCgkgIFJlbmFtZSBTeXN0ZW0gbWVtb3J5IGFsbG9jYXRvciB0byBHc3RBbGxvY2F0b3JTeXNtZW0gYW5kIHRoZSBtZW1vcnkgdG8KCSAgR3N0TWVtb3J5U3lzdGVtLgoKMjAxMy0wMi0yNiAxNTozNzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZXRob2QgdG8gY2hlY2sgbWVtb3J5IHR5cGUKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGEgbWVtb3J5IHdhcyBhbGxvY2F0ZWQgZnJvbSBhbiBhbGxvY2F0b3Igb2YKCSAgYSBnaXZlbiB0eXBlLgoJICBBUEk6IGdzdF9tZW1vcnlfaXNfdHlwZSgpCgoyMDEzLTAyLTI2IDE1OjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgoyMDEzLTAyLTI2IDE1OjMyOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJICB1c2UgR1NUX01FU1NBR0VfRFVSQVRJT05fQ0hBTkdFRCBpbiBkb2NzIGFuZCBjb2RlCgoyMDEzLTAyLTI2IDE0OjQwOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGRvbid0IHVucmVmIGFsbG9jYXRvciB0b28gc29vbgoJICBVbnJlZiB0aGUgYWxsb2NhdG9yICphZnRlciogd2UgaGF2ZSBmcmVlZCB0aGUgbWVtb3J5LiBXZSBhbHNvIG5lZWQgdG8ga2VlcAoJICBhIHJlZiB0byB0aGUgYWxsb2NhdG9yIGFyb3VuZCBiZWNhdXNlIGZvbGxvd2luZyB0aGUgbm93IGZyZWVkIG1lbW9yeSB3b3VsZAoJICBsZWFkIHRvIGNyYXNoZXMuCgoyMDEzLTAyLTI2IDA5OjA4OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggaW52ZXJ0ZWQgbG9naWMgZm9yIGRlY2lkaW5nIGlmIG1lbW9yeSBzaG91bGQgYmUgc2hhcmVkIG9yIGNvcGllZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0NzE3CgoyMDEzLTAyLTI2IDA3OjUwOjEzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBtZW50aW9uIHNlZ21lbnQgYWNjdW11bGF0aW9uIGluIHRoZSBwb3J0aW5nIGd1aWRlCgkgIFRoaXMgbmVlZHMgbW9yZSBkZXRhaWwsIGJ1dCBhdCBsZWFzdCBnaXZlcyBwZW9wbGUgYSBoaW50IG9uIHRoZSBpc3N1ZS4KCjIwMTMtMDItMjYgMDc6NDg6MzUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkb2NzOiBzL3N0YXJ0L2RvbmUvIGNvcHknbidwYXN0ZSBtaXN0YWtlCgoyMDEzLTAyLTI1IDEzOjU3OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBBZGQgbmV3IEFQSSB0byByZW1vdmUgYWxsb2NhdGlvbiBwYXJhbXMgYW5kIHBvb2xzIGZyb20gdGhlIGFsbG9jYXRpb24gcXVlcnkKCjIwMTMtMDItMjUgMTM6MjQ6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBEb2N1bWVudCB0aGF0IHRoZSBmaXJzdCBhbGxvY2F0b3IgaW4gdGhlIGFsbG9jYXRpb24gcXVlcnkgc2hvdWxkIGFsbG93IG1hcHBpbmcgdG8gc3lzdGVtIG1lbW9yeQoKMjAxMy0wMi0yNCAwOToyNDoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgYWxsb2NhdG9yCgkgIE90aGVyd2lzZSB0aGUgYWxsb2NhdG9yIG1pZ2h0IGdldCBmcmVlZCB3aGlsZSBpdCdzIHN0aWxsIHVzZWQKCSAgYnkgdGhlIG1lbW9yeQoKMjAxMy0wMi0yNCAwOTozMzowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogSWYgc2hhcmluZyBhIEdzdE1lbW9yeSBmYWlscywgZmFsbCBiYWNrIHRvIGNvcHlpbmcgaXQKCjIwMTMtMDItMjMgMTg6MzY6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHBvcnRpbmctdG8tMS4wLnR4dDogc29tZSBlbGVtZW50IG5hbWVzIGhhdmUgY2hhbmdlZAoKMjAxMy0wMi0yMyAwODoxOTo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogSXQncyBjb250aWd1b3VzLCBub3QgY29udGlub3VzCgoyMDEzLTAyLTIyIDEyOjQxOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbmV3IG1lbW9yeSBmbGFnIHRvIHNwZWNpZnkgdGhhdCBtZW1vcnkgY2FuJ3QgYmUgbWFwcGVkCgoyMDEzLTAyLTIyIDA5OjAyOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbWVtb3J5IGZsYWcgdG8gbWFyayBwaHlzaWNhbGx5IGNvbnRpbm91cyBtZW1vcnkKCjIwMTMtMDItMTYgMjM6MDI6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG9uJ3QgcGFzcyBOVUxMIG91dGNhcHMgdG8gdHJhbnNmb3JtX3NpemUgb24gc2h1dGRvd24KCSAgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgb24gdGhlIHNvdXJjZSBwYWQgbWlnaHQgeWllbGQgTlVMTCBjYXBzCgkgIGlmIHdlJ3JlIGJlaW5nIHNodXQgZG93biBhbmQgdGhlIHNvdXJjZSBwYWQgaGFzIGFscmVhZHkgYmVlbgoJICBkZWFjdGl2YXRlZCBieSB0aGUgb3RoZXIgdGhyZWFkIHRoYXQncyBjaGFuZ2luZyBzdGF0ZS4gSnVzdCBiYWlsCgkgIG91dCBpbiB0aGF0IGNhc2UsIGluc3RlYWQgb2YgcGFzc2luZyBOVUxMIGNhcHMgdG8gdGhlIHRyYW5zZm9ybV9zaXplCgkgIGZ1bmN0aW9uLCB3aGljaCBpdCBtaWdodCBub3QgZXhwZWN0LgoJICBGaXhlcyBzcHVyaW91cyB3YXJuaW5ncyBpbiBhdWRpb3Jlc2FtcGxlIHNodXRkb3duIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mzk5NgoKMjAxMy0wMi0yMSAxMDoxODoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgT1JDCgoyMDEzLTAyLTE5IDE4OjAwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIHVuZXhwZWN0ZWQgc2lkZS1lZmZlY3RzIG9mIEdTVF9XUklURV8qIG1hY3JvcwoJICBNYWtlIHN1cmUgdGhlIGRhdGEgYXJndW1lbnQgaXMgb25seSBldmFsdWF0ZWQgb25jZS4KCjIwMTMtMDItMTkgMTc6MzY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGNoZWNrOiBhZGQgc29tZSBtb3JlIGZhaWxfdW5sZXNzXyooKSBtYWNyb3MgZm9yIGNvbnZlbmllbmNlCgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX2ludF9oZXgKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX2ludF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfaW50NjRfaGV4CgkgIEFQSTogYXNzZXJ0X2VxdWFsc19pbnQ2NF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfdWludDY0X2hleAoJICBBUEk6IGFzc2VydF9lcXVhbHNfdWludDY0X2hleAoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc19wb2ludGVyCgkgIEFQSTogYXNzZXJ0X2VxdWFsc19wb2ludGVyCgoyMDEzLTAyLTE5IDEyOjQyOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBhZGQgbmV3IC1iYXNlIGFsbG9jYXRvcnMgbGlicmFyeSB0byBnc3QtdW5pbnN0YWxsZWQgc2VhcmNoIHBhdGhzCgoyMDEzLTAyLTE4IDIwOjQ3OjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIHR3byBtb3JlIHRlc3RzIHVzaW5nIGNvbGxlY3RwYWRzIHdpdGhpbiBhbiBlbGVtZW50CgkgIEFkZCBhIHN0YXRpYyBwbHVnaW4gd2l0aCBhIHJ1ZGltZW50YXJ5IGVsZW1lbnQgdXNpbmcgY29sbGVjdHBhZHMgYW5kIGRvIHNvbWUKCSAgcGlwZWxpbmUgYmFzZWQgdGVzdHMuCgoyMDEzLTAyLTE3IDEyOjUwOjAzIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBkb2NzOiBGaXggc29tZSBhbWJpZ3VvdXMgd29yZGluZwoKMjAxMy0wMi0xNyAxOTo1Mzo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgdHJpZ2dlcmNvbnRyb2xzb3VyY2U6IGFkZCBtaXNzaW5nIGVuZF9pdGVyIGNoZWNrIGZvciBzZXF1ZW5jZQoJICBBdm9pZCBhY2Nlc3NpbmcgdGhlIGVuZC1pdGVyLCB0aGlzIGlzIGEgbWFya2VyIHdpdGhvdXQgYSBkYXRhIGZpZWxkLgoKMjAxMy0wMi0xNyAxMzoyMDoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IGxpbmsgdG8gdGhlIGFwcHJvcHJpYXRlIG1lc3NhZ2VzIGZyb20gZ3N0X2VsZW1lbnRzX3NldF9zdGF0ZSgpIGRvY3MKCSAgRm9yIGFuIGFzeW5jIHN0YXRlIGNoYW5nZSByZXR1cm4gb25lIHdvdWxkIHdhaXQgZm9yIEFTWU5DX0RPTkUgb3IgU1RBVEVfQ0hBTkdFRC4KCjIwMTMtMDItMTYgMTQ6MjA6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIHNpbmNlIG1hcmtlciBmb3IgbmV3IENPUFlfREVFUCBidWZmZXIgZmxhZwoKMjAxMy0wMi0xNiAxNDo1OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBvcHRpb24gdG8gZGVlcCBjb3B5IGEgYnVmZmVyCgkgIEFkZCBhIGJ1ZmZlciBjb3B5IGZsYWcgdG8gZm9yY2UgYSBtZW1vcnkgY29weSBpbiBhbGwgY2FzZXMuCgoyMDEzLTAyLTE0IDE0OjA5OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBSZXZlcnQgInV0aWxzOiBVc2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgaW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWExYTllMTQzZmIwZTE1NWQ3NjI3YWE4ZTQ4OWNkNWQwNGJjMDkzYy4KCSAgVGhpcyBicmVha3MgdGhlIHBpcGVsaW5lcy90YWdzY2hlY2tpbmcgdW5pdCB0ZXN0IGZvciBzb21lIHJlYXNvbgoJICAoZmFrZXNyYyAhIGNhcHNmaWx0ZXIgISBxdG11eCBsaW5raW5nIGZhaWxzIG5vdykuIEl0IG1pZ2h0IGJlCgkgIGEgYnVnIGluIHRoZSB1bml0IHRlc3Qgb2YgY291cnNlLCBidXQgc29tZW9uZSB3aWxsIG5lZWQgdG8KCSAgaW52ZXN0aWdhdGUgdGhpcy4gUmV2ZXJ0aW5nIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI1MDgKCjIwMTMtMDItMTUgMTM6MDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogaW1wcm92ZSBmYWxsYmFjayBjb3B5IGZ1bmN0aW9uCgkgIE9ubHkgdXNlIHRoZSBhbGxvY2F0b3Igb2YgdGhlIGNvcGllZCBtZW1vcnkgd2hlbiB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0CgkgIF9hbGxvYyBmdW5jdGlvbiBvbiBpdC4gT3RoZXJ3aXNlIHdlIHdpbGwgaGF2ZSB0byB1c2UgdGhlIGRlZmF1bHQKCSAgYWxsb2NhdG9yIGZvciB0aGUgY29weS4KCjIwMTMtMDItMTQgMTM6NTU6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGZpeCBsb2NhdGlvbiBpbiB1c2VyJ3MgaG9tZSBkaXJlY3Rvcnkgd2hlcmUgR1N0cmVhbWVyIGxvb2tzIGZvciBwbHVnaW5zCgkgIEl0J3MgYmFzZWQgb24gdGhlIHhkZyB1c2VyIGRhdGEgZGlyIG5vdyBpbiAxLjAuCgoyMDEzLTAxLTI1IDA2OjUwOjI3IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgaW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKCkKCSAgbW90aXZhdGlvbiBjb21lcyBmcm9tOiAvKiBGSVhNRTogd2h5IG5vdCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgKHBhZCk7ICovCgkgIHRoaXMgY29kZSBwYXRoIGlzIHF1aXRlIG5pY2VyLCB3ZSBub3cgb25seSByZXZlcnQgdG8gY3JlYXRpbmcgdGhlIHRlbXBsYXRlCgkgIGlmIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSBmYWlscy4KCSAgd2l0aCB0aGlzIGZvcmssIHdlIGdhaW4gYSBub24tYWxsb2NhdGlvbiBvZiBHc3RDYXBzICp0ZW1wbGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjUwOAoKMjAxMy0wMi0xMyAwMDoyNzoyOCArMDAwMCAgS3J6eXN6dG9mIEtvbm9wa28gPGtyenlzenRvZi5rb25vcGtvQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogVXNlIGdfdW5peF9zaWduYWxfYWRkKCkgdG8gaGFuZGxlIGtleWJvYXJkIGludGVycnVwdGlvbgoJICBDdXJyZW50IGltcGxlbWVudGF0aW9uIHVzZXMgYSB0cmFkaXRpb25hbCBzaWduYWwgaGFuZGxlciBhbmQgYSAyNTBtcwoJICB0aW1lb3V0IGNhbGxiYWNrIGluIHRoZSBldmVudCBsb29wLiAgQWRkaW5nIGEgR1NvdXJjZSB3aXRoCgkgIGdfdW5peF9zaWduYWxfYWRkKCkgdG8gdGhlIEdNYWluTG9vcCBpcyBhIG11Y2ggbW9yZSBlbGVnYW50IHNvbHV0aW9uLgoJICBUaGUgc2lnbmFsIGhhbmRsZXIgd2l0aCB0aGlzIGFwcHJvYWNoIGNhbiBzZW5kIGEgbWVzc2FnZSB0byB0aGUgYnVzCgkgIGRpcmVjdGx5IHJhdGhlciB0aGFuIHNldCBhIGZsYWcgYXMgYWxsIGRpc3BhdGNoaW5nIGludHJpY2FjaWVzIGFyZSBoYW5kbGVkCgkgIGJ5IEdMaWIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM0ODEKCjIwMTMtMDItMTQgMDA6MDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZmxlc2ggb3VyICdSdW5uaW5nIEdTdHJlYW1lcicgYml0cyBhIGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNjA3CgoyMDEzLTAyLTEzIDIzOjI3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UgYSBsaXR0bGUKCSAgRml4IHVwIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIHJlZ2lzdHJ5LgoJICBNZW50aW9uIG1vcmUgb3B0aW9ucyBmb3IgR1NUX0RFQlVHICh3aWxkY2FyZHMgYW5kCgkgIG5hbWVkIGRlYnVnIGxldmVscykuCgkgIEV4cGxhaW4gd2hhdCB0byBkbyB3aXRoIHRoZSBkb3QgZmlsZXMgdGhhdCBjYW4gYmUKCSAgcHJvZHVjZWQgYnkgc2V0dGluZyBHU1RfREVCVUdfRFVNUF9ET1RfRElSLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNjA3CgoyMDEyLTEyLTI3IDAwOjAzOjA2ICswMTAwICBHZXJ0IE1pY2hhZWwgS3VseWsgPGdrdWx5a0B5YWhvby5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogZml4IGFkdmFuY2VkLW1ldGFkYXRhIGNvZGUgZXhhbXBsZSBpbiBtYW51YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDc1MQoKMjAxMy0wMi0xMyAxNjo1MjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhY2NlcHQgTlVMTCBlcnJvciBhcmd1bWVudCBpbiBnc3RfbWVzc2FnZV9wYXJzZV97ZXJyb3Isd2FybmluZyxpbmZvfQoJICBBbmQgc2ltcGxpZnkgY29kZSBhIGJpdCB3aGlsZSBhdCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzcwNAoKMjAxMy0wMi0xMyAxNzowMDoyMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBSZW1vdmUgc2V0LXN0eWxlIGJpdG1hc2sgaW50ZXJzZWN0aW9uL3VuaW9uL3N1YnRyYWN0aW9uIGZ1bmN0aW9ucwoJICBTZXQgb3BlcmF0aW9ucyBvbiB0aGUgYml0bWFza3MgZG9uJ3QgbWFrZSBtdWNoIHNlbnNlIGFuZCByZXN1bHQKCSAgaW4gaW52YWxpZCBjYXBzIHdoZW4gdXNlZCBhcyBhIGNoYW5uZWwtbWFzay4gVGhleSBhcmUgbm93IGhhbmRsZWQKCSAgZXhhY3RseSBsaWtlIGludGVnZXJzLgoJICBUaGlzIGZ1bmN0aW9uYWxpdHkgd2FzIG5vdCB1c2VkIGFueXdoZXJlIGV4Y2VwdCBmb3IgdGVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTEzNzAKCjIwMTMtMDItMTMgMTE6MTk6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFRoZSBsYXRlbmN5IHF1ZXJ5IHNob3VsZCByZXR1cm4gVFJVRSBieSBkZWZhdWx0LCBkaWZmZXJlbnQgdG8gb3RoZXIgcXVlcmllcwoJICBGaXhlcyB1bml0IHRlc3QgZmFpbHVyZXMgY2F1c2VkIGJ5IGYzZDI2OGRlN2Y3ZmIxMTYxNzc4YTlhOTVlMGQ1NGQ4Yzg5ZWY2MjYKCjIwMTMtMDItMTMgMTA6NDY6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBzdHJ1Y3R1cmU6IE1ha2Ugc3VyZSB0aGF0IHN1YnNldHMgaGF2ZSBhbGwgZmllbGRzIG9mIHRoZSBzdXBlcnNldAoJICAidmlkZW8veC1oMjY0LHBhcnNlZD0oYm9vbGVhbil0cnVlIiBpcyBub3QgYSBzdXBlcnNldCBvZgoJICAidmlkZW8veC1oMjY0LHN0cmVhbS1mb3JtYXQ9KHN0cmluZylieXRlLXN0cmVhbSxhbGlnbm1lbnQ9KHN0cmluZyluYWwiCgkgIGZvciBleGFtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzMzY1CgoyMDEzLTAyLTEyIDEyOjMyOjIzIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgdXBkYXRlIGV4cG9ydHMgZm9yIGJhc2VwYXJzZSBBUEkgY2hhbmdlcwoKMjAxMy0wMi0xMiAxMjozMTo0MiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBkb2MgdHlwbwoKMjAxMy0wMi0xMSAxNjo1MTo0OCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBnc3RfYmFzZV9wYXJzZV9zZXRfdHNfYXRfb2Zmc2V0KCkKCSAgU2V0cyB0aGUgYnVmZmVyIHRpbWVzdGFtcHMgYmFzZWQgb24gbGFzdCBzZWVuIHRpbWVzdGFtcHMgYXQgYQoJICBwYXJ0aWN1bGFyIG9mZnNldCBpbnRvIHRoZSBmcmFtZS4KCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9zZXRfdHNfYXRfb2Zmc2V0KCkKCjIwMTMtMDItMTEgMTY6NDI6NDEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBBZGQgZ3N0X2FkYXB0ZXJfcHJldl9bcGRddHNfYXRfb2Zmc2V0KCkKCSAgT3JpZ2luYWwgcGF0Y2ggd3JpdHRlbiBieSBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+LgoJICBBUEk6IGdzdF9hZGFwdGVyX3ByZXZfcHRzX2F0X29mZnNldCgpCgkgIEFQSTogZ3N0X2FkYXB0ZXJfcHJldl9kdHNfYXRfb2Zmc2V0KCkKCjIwMTMtMDItMDkgMTg6MTQ6MDkgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcXVlcnkgc2luayBlbGVtZW50cyBhbmQgc291cmNlIHBhZHMgb2YgdGhlIGJpbgoJICBnc3RfYmluX3F1ZXJ5KCkgbm93IGZvcndhcmRzIHRoZSBxdWVyeSB0byB0aGUgc291cmNlIHBhZHMgYXMgd2VsbCBpZgoJICBub25lIG9mIHRoZSBzaW5rcyBvZiB0aGUgYmluIHNhdGlzZmllZCB0aGUgcXVlcnkuIFRoaXMgaGVscHMgaW4gdGhlCgkgIGNhc2Ugb2YgRFVSQVRJT04gcXVlcmllcyBkb25lIGEgYmluIGNvbnRhaW5pbmcgYSBzb3VyY2UgZWxlbWVudC4KCSAgRml4ZXMgYnVnIDYzODc0OQoKMjAxMy0wMi0wNyAxMjo0NzowMiArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IExldCBnc3RfYmluX3NlbmRfZXZlbnQoKSBzZW5kIGV2ZW50cyB0byBnaG9zdCBwYWRzIGFzIHdlbGwKCjIwMTMtMDItMTEgMjI6NTI6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGNvbXBhdDoga2lsbCBtb3JlIHVzZXMgb2YgZ3N0X3BhZF9zZXRfY2FwcygpCgoyMDEzLTAyLTEyIDAwOjA4OjUxICsxMTAwICBUaW0gJ21pdGhybycgQW5zZWxsIDxtaXRocm9AbWl0aGlzLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkaW5nIG9mZnNldCB0byBHc3RTZWdtZW50IHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzU4NwoKMjAxMy0wMi0wOSAxMjozMjowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbXByb3ZlIFBUUyBpbnRlcnBvbGF0aW5nCgkgIC4uLiBhbmQgdHJhY2tpbmcgb2YgRFRTLiAgRml4ZXMgY2FzZXMgd2hlcmUgUFRTIGlzIGxvY2tlZCBvbiB0byB0aGUKCSAgRFRTIG9mIGFuIGluY29taW5nIGJ1ZmZlciB3aXRoIG5vIFBUUyB3aXRoIGludmFsaWQgZGF0YSwgbGVhZGluZyB0bwoJICBubyBvdXRnb2luZyBQVFMgKHNpbmNlIGl0IGlzIG5vdCBhbGxvd2VkIHNtYWxsZXIgdGhhbiBEVFMpLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAyLTA4IDIxOjI4OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBwb3J0aW5nIGRldGFpbHMKCjIwMTMtMDItMDggMjE6MjE6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBlcnJvciBoYW5kbGluZyBmb3IgYmluZGluZyBjb250cm9sc291cmNlcyB0byB3cm9uZyBwcm9wZXJ0aWVzCgkgIEFkZCB3YXJuaW5nIGlmIHByb3BlcnR5IGlzIG5vdCBzdWl0YWJsZSBmb3IgY29udHJvbGxpbmcuIFdoZW4gYWRkaW5nIGEgY29udHJvbC0KCSAgYmluZGluZyBjaGVjayB0aGF0IHBzcGVjIT1OVUxMLgoKMjAxMy0wMi0wNyAxMzowODo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSBvbGQgZG9jcyBhYm91dCBpdGVyYXRvcnMKCjIwMTMtMDItMDcgMTI6NTI6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIG9sZCBjb21tZW50CgkgIFRoZSBpdGVyYXRvcnMgbm93IHJldHVybiBhIEdWYWx1ZSBhbmQgbm90IHRoZSBvYmplY3QgZGlyZWN0bHkgYW55bW9yZS4KCjIwMTMtMDItMDcgMTI6NTA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVzZXQgR1ZhbHVlIGZyb20gaXRlcmF0b3IgYWZ0ZXIgdXNhZ2UKCjIwMTMtMDItMDUgMTc6MTU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIHRlc3RzOiBhZGQgYmFzZXNpbmsgdGVzdAoKMjAxMy0wMi0wNSAxNzoxOTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBzeW5jIG9mIEVPUyBhZnRlciBpdGVtIHdpdGhvdXQgZHVyYXRpb24KCSAgQWZ0ZXIgYSBidWZmZXIgb3IgR0FQIHdpdGhvdXQgZHVyYXRpb24sIGFuIEVPUyBldmVudCBzaG91bGQgYmUgcmVuZGVyZWQKCSAgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIHRoZSBzZWdtZW50LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyODY4CgoyMDEzLTAyLTAyIDExOjU1OjUyIC0wODAwICBOYXRlIEJvZ2Rhbm93aWN6IDxuYXRlemJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdHBpcGVsaW5lOiBmaXggZmFpbGVkIGFzc2VydGlvbiBjYXVzZWQgYnkgc2Vla2luZyBwaXBlbGluZSB3aXRoIE5VTEwgY2xvY2sKCSAgVW5kZXIgY2VydGFpbiBHU1RfU1RBVEVfQ0hBTkdFRF9QQVVTRURfVE9fUExBWUlORyB0cmFuc2l0aW9ucywgYSBwaXBlbGluZSB3aXRoCgkgIGEgTlVMTCBjbG9jayB3aWxsIGZhaWwgYW4gYXNzZXJ0aW9uIGR1ZSB0byBhbiB1bmNoZWNrZWQgY2FsbCB0byBnc3Rfb2JqZWN0X3JlZigpLgoJICBUaGlzIGlzIGZpeGVkIGJ5IHNpbXBseSBhZGRpbmcgYSBjaGVjayBhbmQgb25seSByZWYtaW5nIGlmIHRoZSBjbG9jayBpcyBub3QgTlVMTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzA2NQoKMjAxMy0wMi0wNSAxMzo0NDowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBjaGFuZ2UgYXJndW1lbnQgbmFtZSBmb3IgZG9jcwoKMjAxMy0wMi0wNCAxMDozMDozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBvcmRlciBvZiBjYXBzIG9uIGFuIHVubmVnb3RpYXRlZCBsaW5rCgkgIGhlYWRsYWJlbCBpcyB0aGUgc2lua19wYWQgKHdoZXJlIHRoZSBsaW5rIHBvaW50cyB0bykgYW5kIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMTMtMDItMDEgMjE6NTk6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGRvY3M6IHVwZGF0ZSB0aGUgY29udHJvbGxlciBkb2NzCgkgIEFkZCB0aGUgY29udHJvbCBiaW5kaW5ncyB0byB0aGUgZG9jcy4gQWRkIGEgbGl0dGxlIG1vcmUgZGV0YWlsLgoKMjAxMy0wMi0wMSAyMTo1Nzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZzogYSBmZXcgdXBkYXRlcyBmb3IgdGhlIHBvcnRpbmcgZ3VpZGUKCjIwMTMtMDEtMzAgMTM6MDY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBjYW4ndCBwYXNzIGEgR1R5cGUgdGhyb3VnaCBHSU5UX1RPX1BPSU5URVIKCSAgVXNlIEdTSVpFX1RPX1BPSU5URVIgaW5zdGVhZC4gc2l6ZW9mKEdUeXBlKSBtYXkgYmUgbGFyZ2VyCgkgIHRoYW4gc2l6ZW9mKGd1bG9uZykgYW5kIHNpemVvZihpbnQpLCBzbyB0aGUgY2FzdHMgbWF5CgkgIGNob3Agb2ZmIHNvbWUgYml0cyBmcm9tIHRoZSBHVHlwZSB2YWx1ZSBvbiBzb21lIGFyY2hpdGVjdHVyZXMuCgoyMDEzLTAxLTI5IDEyOjQwOjUyICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogdW5pdCB0ZXN0IHRvIHRyaWdnZXIgdGhlIHF1ZXVlL2ZsdXNoaW5nIHJhY2UgY29uZGl0aW9uIGJ1ZyBmb3IgYWxsb2NhdGlvbiBxdWVyaWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSBxdWVyeSBmcm9tIHF1ZXVlIGlmIHF1ZXVlIGlzIGZsdXNoaW5nCgkgIFdoZW4gcXVlcnlpbmcgYSBxdWV1ZSB0aGF0IGlzIGZsdXNoaW5nIHdlIGVuZCB1cCBhZGRpbmcKCSAgYSBxdWVyeSB0byB0aGUgcXVldWVhcnJheSB3aXRob3V0IHRha2luZyBhIHJlZmVyZW5jZSB0bwoJICB0aGF0IHF1ZXJ5IChiZWNhdXNlIHRoZSBub3JtYWwgZnVuY3Rpb25hbGl0eSBpcyB0byBibG9jawoJICB1bnRpbCB0aGF0IHF1ZXJ5IGlzIGRvbmUgYW5kIGRpc2NhcmRlZCBmcm9tIHRoZSBxdWV1ZSkuCgkgIFRoaXMgbGF0ZXIgY2F1c2VzIHByb2JsZW0gaWYgdGhlIHF1ZXJ5IGlzIHVucmVmZmVkIG91dHNpZGUKCSAgb2YgdGhlIHF1ZXVlIGJlZm9yZSB3ZSBkaXNjYXJkIHRoZSBxdWV1ZS4gVGhlcmUgaXMgYSBjaGVjawoJICB0byBhdm9pZCB1bnJlZmZpbmcgYW55IGxpbmdlcmluZyBxdWVyeS1vYmplY3RzLCBidXQgc2luY2UKCSAgdGhlIHF1ZXJ5IGhhcyBiZWVuIGRlbGV0ZWQgdGhhdCBjaGVjayBmYWlscy4KCSAgVGhpcyBjb21taXQgZGVwZW5kcyBvbiBvdGhlciBmaXhlcyBkb25lIHRvIGdzdF9xdWV1ZV9hcnJheV9maW5kKCkKCSAgYW5kIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0zMCAxMTo1NToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogbWFrZSBfZmluZCgpIGZpbmQgdGhlIHZhbHVlIGlmIG5vIGNvbXBhcmUgZnVuY3Rpb24gaXMgcHJvdmlkZWQKCSAgQWxsb3cgTlVMTCBhcyBjb21wYXJlIGZ1bmN0aW9uIGZvciBkaXJlY3QgdmFsdWUgbG9va3VwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTMwIDExOjM0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogY2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKSB0b28KCSAgV2FzIGFkZGVkIHdoZW4gdGhlIEFQSSB3YXMgbWFkZSBwdWJsaWMgaW4gZ2l0IG1hc3Rlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0yOSAyMjo1NDoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogb25lIG1vcmUgdGVzdCBmb3IgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCSAgQ29uZmxpY3RzOgoJICB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYwoKMjAxMy0wMS0yOCAxMTowNToyOCArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IGZpeCBnc3RfcXVldWVfYXJyYXlfZmluZCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBmaXggZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYwoKMjAxMy0wMS0yOSAxNjo1NToyMyArMDIwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJICBkb2NzOiBhbGlnbiB0aGUgY29tbWVudHMgY29ycmVjdGx5IHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIGJpdHJlYWRlciBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI4MDkKCjIwMTMtMDEtMjkgMDk6NDU6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIHJlbmVnb3RpYXRpb24gY29ycmVjdGx5CgkgIERvbid0IHJldHJ5IHRvIG5lZ290aWF0ZSB3aGVuIHdlIGZhaWwgdG8gbmVnb3RpYXRlIGJ1dCBpbnN0ZWFkIHByb2R1Y2UgYQoJICBOT1RfTkVHT1RJQVRFRCBlcnJvci4gV2Ugb25seSB3YW50IHRvIHJldHJ5IG5lZ290aWF0aW9uIGlmIHRoZSByZXN1bHQgZnJvbQoJICBnc3RfcGFkX3B1c2goKSByZXR1cm5lZCBOT1RfTkVHT1RJQVRFRC4KCjIwMTMtMDEtMjggMjA6NDE6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE5NDIyOTMgdG8gMmRlMjIxYwoKMjAxMy0wMS0yOCAxMzowNTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICBleGFtcGxlOiBmaXggRklYTUUgaW4gZXhhbXBsZQoJICBVc2Ugc2V0cHJpb3JpdHkgdG8gcmFpc2UgcHJpb3JpdHkKCjIwMTMtMDEtMjcgMDY6MjA6NTEgLTA4MDAgIFNpbW9uIEZlbHRtYW4gPHNmZWx0bWFuQHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGctaTogYWRkIGJ1aWx0IGVudW10eXBlcyBoZWFkZXJzIGFuZCBzb3VyY2VzIHRvIGdpciBjcmVhdGlvbgoJICBBZGQgZ3N0ZW51bXR5cGVzLmgvYyBmb3IgaW5jbHVzaW9uIHdpdGggZy1pci1zY2FubmVyLiBUaGlzIGZpeGVzCgkgIHByb2JsZW1zIHdoZXJlIGludHJvc3BlY3Rpb24gYmFzZWQgYmluZGluZ3MgdGhpbmsgR3N0U3RhdGUgaXMKCSAgdHlwZWxlc3MgZHVlIHRvIHRoZSBHVHlwZSBub3QgYmVpbmcgaW5jbHVkZWQgYXMgYW4gYW5ub3RhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTE4NQoKMjAxMy0wMS0yNyAwOToxODowMCArMDUzMCAgQi5QcmF0aGliaGEgPHByYXRoaWJoYWJAY2RhYy5pbj4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgdGVzdHM6IHVzZSBnX3RpbWVvdXRfYWRkX3NlY29uZHMgaW4gcGlwZWxpbmUgc3RyZXNzIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjYxMgoKMjAxMy0wMS0yNCAxNzo1MDozMSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IFB1dCB0aGUgcmlnaHQgcGF0aCBmb3IgdGhlIGdzdHR0ZXN0Y2xvY2sgaW5jbHVkZSBmaWxlCgoyMDEzLTAxLTI0IDE1OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHJlbmFtZSB2YXJpYWJsZQoJICBUaGUgZmlsdGVyIHZhcmlhYmxlIHdhcyB1c2VkIHR3aWNlIGZvciBkaWZmZXJlbnQgdGhpbmdzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNDMyCgoyMDEzLTAxLTE3IDIxOjM1OjQ4IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RfcGFkX2NoZWNrX3JlY29uZmlndXJlOiBvbmx5IHJlbW92ZSBmbGFnIGlmIHNldC4KCSAgdGhlIGNvZGUgaWZlZCBhIGRlYnVnIHN0YXRlbWVudCwgdGhhdCBjYW4ndCBiZSByaWdodC4gYW55d2F5LCB0aGUgd2F5IGl0IGlzLAoJICB3ZSBkb24ndCByZWFsbHkgbmVlZCB0aGF0IGJyYW5jaCwgYXMgd2Ugc2V0IHRoZSBmbGFnIHRvIHVuc2V0IG9ubHkgaWYgc2V0CgkgIChhbmQgdGhhdCBjYW4ndCBmYWlsKSBoZW5jZSB0aGUgZW5kIHJlc3VsdCBpcyBhbHdheXMgdG8gdW5zZXQgdGhlIGZsYWcuCgkgIFNpZ25lZC1vZmYtYnk6IE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE5ODUKCjIwMTMtMDEtMTcgMjE6NDM6MjUgLTAzMDAgIE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc2V0IE5FRURfUkVDT05GSUdVUkUgZmxhZyBpZiBuZWdvdGlhdGUgZmFpbHMKCSAgV2hlbiBuZWdvdGlhdGlvbiBmYWlscywgbWFyayB0aGUgcGFkIGFzIG5lZWRpbmcgYSByZWNvbmZpZ3VyZSBhZ2FpbiBzbwoJICB0aGF0IGl0IGdldHMgcGlja2VkIHVwIGFnYWluIG5leHQgdGltZS4KCSAgU2lnbmVkLW9mZi1ieTogTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTk4NgoKMjAxMy0wMS0xOSAxMjo1MTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9nZXRfc3RyZWFtX2lkKCkgdXRpbGl0eSBmdW5jdGlvbgoJICBBUEk6IGdzdF9wYWRfZ2V0X3N0cmVhbV9pZCgpCgoyMDEzLTAxLTE4IDE2OjA1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IG1pbm9yIGFkZGl0aW9uIHRvIGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTIwMTUKCjIwMTMtMDEtMTggMTY6MDE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogdXBkYXRlIGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlIGZvciBuZXcgZGVidWcgbGV2ZWxzCgkgIFRoZXJlIGFyZSBtb3JlIGRlYnVnIGxldmVscyB0aGVzZSBkYXlzLCBub3Qgb25seSAwLTUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTIwMTUKCjIwMTMtMDEtMTcgMDA6Mzg6MTQgLTA2MDAgIERhbmllbCBEw61heiA8eW9zb3lAZGFuaWVsZGlhei5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGZpeCBBQkkgY2hlY2sgc3RydWN0IHNpemVzIGZvciBBUk0KCSAgYW5kIHJlLWVuYWJsZSBBQkkgY2hlY2sgZm9yIEFSTS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTgyOAoKMjAxMy0wMS0xNiAxNzoyNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jczogYWRkIGEgbm90ZSB0byB0aGUgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKSBkb2NzIGFib3V0IGJ1ZmZlciBmbGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMTEwCgoyMDEzLTAxLTE2IDExOjI5OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlc3RzOiBkaXNhYmxlIEFCSSBjaGVja3MgZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUgdGhlIHN0cnVjdCBzaXplcyBhcmUgbm90IHVwLXRvLWRhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTgyOAoKMjAxMy0wMS0xNSAxNTowMzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJhMDY4Y2UgdG8gYTk0MjI5MwoKMjAxMy0wMS0xNSAxMzo0NzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBHU1RfKl8xXzAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGV2ZXJ5d2hlcmUKCSAgVGhlIF8xXzAgc3VmZml4ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIHRoZQoJICBub24tc3VmZml4ZWQgb25lcywgc28gaWYgd2UncmUgaW4gYW4gZW52aXJvbm1lbnQgdGhhdAoJICBzZXRzIHRoZSBfMV8wIHN1ZmZpeGVkIG9uZXMsIHN1Y2ggYXMgamhidWlsZCwgd2UgbmVlZAoJICB0byBzZXQgdGhvc2UgdG8gbWFrZSBzdXJlIG91cnMgYWN0dWFsbHkgYWx3YXlzIGdldAoJICB1c2VkLgoKMjAxMy0wMS0xNSAxMzo0NzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGVkIHN0cmluZwoKMjAxMy0wMS0xNSAwOTo0MjoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGFkZCBhbGxvdy1ub25lIGFubm90YXRpb24gZm9yIGdzdF9waXBlbGluZV9uZXcoKSdzIG5hbWUgcHJvcGVydHkKCjIwMTMtMDEtMTQgMjA6MDI6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogbWlub3IgR3N0QmFzZVBhcnNlIGRvY3MgZml4ZXMKCSAgRXhwb3NlIGRvY3MgZm9yIGdzdF9iYXNlX3BhcnNlX2ZpbmlzaF9mcmFtZSgpLgoKMjAxMy0wMS0xNCAxNzowMToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGhhbmRsZSBtYXAgZmFpbHVyZQoKMjAxMy0wMS0xNCAxNzowMDo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgbWFwIGZhaWx1cmUKCjIwMTMtMDEtMTQgMTc6MDA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaGFuZGxlIG1hcCBmYWlsdXJlCgoyMDEzLTAxLTEzIDE0OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgdmZ1bmNzIHRvIGludGVyY2VwdCBxdWVyaWVzCgkgIFVzZWZ1bCBmb3IgdmlkZW8gcGFyc2VzIHRoYXQgd2FudCB0byBhdHRhY2ggbWF0dGVyIG9yCgkgIGZpbmQgb3V0IGlmIGRvd25zdHJlYW0gc3VwcG9ydHMgY2VydGFpbiBtZXRhcy4KCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6c3JjX3F1ZXJ5KCkKCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6c2lua19xdWVyeSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0NzUKCjIwMTMtMDEtMTIgMjA6NTQ6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB1cCBuYW1lIG9mIGRlZmF1bHQgZXZlbnQgdmZ1bmNzCgoyMDEzLTAxLTEwIDExOjM0OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGNvbnRyb2xiaW5kaW5nOiBoaWRlIG9uZSB1bnVzZWQgdHlwZWRlZgoJICBUaGlzIGlzIG5vdCB1c2VkIGludGVybmFsbHkuCgoyMDEzLTAxLTEwIDExOjMzOjQyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGRvY3M6IGltcHJvdmUgYXBpIGRvY3MgZm9yIGNvbnRyb2xzb3VyY2UgYW5kIC1iaW5kaW5nCgoyMDEzLTAxLTA1IDE2OjMwOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggbGVhayBpbiBnaG9zdHBhZCB1bml0IHRlc3QKCSAgVGhlIGNyZWF0ZWQgcGFkIGlzIG5ldmVyIHVzZWQgYW5kIG92ZXJ3cml0dGVuIHdpdGgKCSAgYW5vdGhlciBuZXdseS1jcmVhdGVkIHBhZCBhIGZldyBsaW5lcyBiZWxvdy4KCjIwMTMtMDEtMDQgMTI6Mjc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIGRvY3M6IG1pbm9yIHN5c3RlbXNjbG9jayBkb2MgZml4CgoyMDEzLTAxLTAzIDEwOjE2OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEluaXRpYWxpemUgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAxMi0xMi0zMCAyMzozNTo0OCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogcmV0dXJuIGdzc2l6ZSBmcm9tIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuXyogZnVuY3Rpb25zCgkgIEFzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBpcyAtMSB3aGVuIHRoZSBtYXRjaCBpcyBub3QgZm91bmQKCjIwMTMtMDEtMDEgMTA6MjM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQ2hlY2sgaWYgYnVmZmVycyBhcmUgdG9vIGxhdGUgYmVmb3JlIGNhbGxpbmcgcHJlcGFyZS9wcmVwYXJlX2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDkzNgoKMjAxMi0xMi0zMCAyMzo0ODo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZXBsYWNlIGRlcHJlY2F0ZWQgQU1fQ09ORklHX0hFQURFUiB3aXRoIEFDX0NPTkZJR19IRUFERVJTCgkgIEFNX0NPTkZJR19IRUFERVIgaGFzIGJlZW4gcmVtb3ZlZCBpbiB0aGUganVzdC1yZWxlYXNlZCBhdXRvbWFrZSAxLjEzOgoJICBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2F1dG9tYWtlLzIwMTItMTIvbXNnMDAwMzguaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwODgxCgoyMDEyLTEyLTIyIDE2OjUwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBjYXBzLCBzdHJ1Y3R1cmUsICB0YWdsaXN0OiBtaWNyby1vcHRpbWlzYXRpb25zCgkgIEF2b2lkIHNvbWUgdW5uZWNlc3NhcnkgR1ZhbHVlIGNvcHlpbmcgYnkgbWFraW5nIHVzZSBvZgoJICBnc3Rfc3RydWN0dXJlX2lkX3Rha2VfdmFsdWUoKSB3aGVyZSBwb3NzaWJsZS4KCjIwMTItMTItMjIgMTY6Mjk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHNvbWUgbWljcm8tb3B0aW1pc2F0aW9ucwoJICBBdm9pZCB1bm5lY2Vzc2FyeSB2YWx1ZSBjb3B5aW5nLCBhbmQgdW5uZWNlc3NhcnkgaW5pdC91bnNldAoJICBjeWNsZXMgd2hpY2ggYWxsIGdvIHRocm91Z2ggdGhlIHZhbHVlIHRhYmxlLiBUaGVyZSdzIGEgYnVuY2gKCSAgb2YgcGxhY2VzIHdoZXJlIHdlIGNvcHkgYSB2YWx1ZSBhbmQgdGhlbiB1bnNldCBpdCBpbiB0aGUgbmV4dAoJICBsaW5lLCBpbnN0ZWFkIG9mIGp1c3QgdGFraW5nIG92ZXIgdGhlIHNvdXJjZSB2YWx1ZS4KCjIwMTItMTItMjIgMTY6NTM6NDcgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogZml4IGxvY2F0aW9uIG9mIHJlcG9zaXRvcnkgd2l0aCBzc2gKCjIwMTItMTItMjEgMTY6MzY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSAgYmluOiBhZGQgZmxhZyB0byBkaXNhYmxlIHJlc3luYyBzdGF0ZSBjaGFuZ2UKCSAgQWRkIGEgR1NUX0JJTl9GTEFHX05PX1JFU1lOQyB0aGF0IGRpc2FibGVzIGEgcmVzeW5jIHdoZW4gYW4gZWxlbWVudCBpcyBhZGRlZCwKCSAgcmVtb3ZlZCBvciBsaW5rZWQgaW4gdGhlIGJpbi4gVGhpcyBpcyBpbnRlcmVzdGluZyBmb3IgY29tcGxleCBiaW5zIHRoYXQKCSAgZHluYW1pY2FsbHkgYWRkIGVsZW1lbnRzIHRvIHRoZW1zZWx2ZXMgYW5kIHdhbnQgdG8gbWFuYWdlIHRoZSBzdGF0ZSBvZiB0aG9zZQoJICBlbGVtZW50cyB3aXRob3V0IGludGVyZmVyZW5jZSBmcm9tIHJlc3luY3MuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNDIwCgoyMDEyLTEyLTIxIDEwOjA5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgc3luY2hyb25pemF0aW9uIGRvY3VtZW50IGEgbGl0dGxlCgoyMDEyLTEyLTIwIDE2OjQwOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBhZGQgT1RIRVIgY2xvY2sgdHlwZQoJICBBZGQgYW4gT1RIRVIgY2xvY2sgdHlwZSBzbyB0aGF0IHN1YmNsYXNzZXMgYXJlIGFibGUgdG8gbWFyayB0aGVtc2VsdmVzIGFzCgkgIHVzaW5nIHNvbWUgb3RoZXIgY2xvY2sgc291cmNlIHRoYW4gdGhlIHJlYWx0aW1lIG9yIG1vbm90b25pYyBjbG9jay4KCjIwMTItMTItMjAgMTM6MzE6MDIgKzAxMDAgIEJyYW5rbyBTdWJhc2ljIDxicmFua29AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY29ycmVjdCBvdmVycnVuIGhhbmRsaW5nCgkgIFRoZSBjb250cm9sIG9mIHdoZXRlaGVyIGEgU2luZ2xlUXVldWUgaXMgZnVsbCBpcyBub3QgY29ycmVjdC4KCSAgUmV3cm90ZSBzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYigpIHNvIGl0IGNoZWNrcyB0aGUgY29ycmVjdCB2YXJpYWJsZXMKCSAgd2hlbiBjaGVja2luZyBpZiB0aGUgcXVldWUgaGFzIHJlYWNoZWQgdGhlIGhhcmQgbGltaXRzLCBhbmQgdG8KCSAgaW5jcmVhc2UgdGhlIG1heCBidWZmZXIgbGltaXQgb25jZSBmb3IgZWFjaCBjYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNTU3CgoyMDEyLTEyLTIwIDExOjU5OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpbXBsZW1lbnQgYnVmZmVyaW5nIHF1ZXJ5IGZvciBhbGwgbW9kZXMKCSAgQWxzbyBpbXBsZW1lbnQgdGhlIGJ1ZmZlcmluZyBxdWVyeSBmb3IgU1RSRUFNIG1vZGUuCgoyMDEyLTEyLTIwIDExOjMwOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWZhY3RvciBidWZmZXJpbmcgcGVyY2VudCBhbmQgc3RhdHMKCSAgTWFrZSBtZXRob2RzIHRvIGdldCB0aGUgY3VycmVudCBidWZmZXJpbmcgcGVyY2VudCBhbmQgdGhlIHN0YXRzLiBXZSB3aWxsIHVzZQoJICB0aGlzIGluIHRoZSBxdWVyeSBsYXRlci4KCjIwMTItMTItMTMgMTM6NDc6MjkgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggaW52YWxpZCBvdXRwdXQgdGltZXN0YW1wcyBpbiBzb21lIGNhc2VzCgoyMDEyLTEyLTE0IDE1OjIyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBORVdTRUdNRU5UIC0+IFNFR01FTlQKCjIwMTItMTItMTQgMTQ6MDM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGRvY3MKCSAgVXBkYXRlIGFyZ3Mvc2lnbmFscyBldGMuCgoyMDEyLTEyLTE0IDExOjA5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGFkZCBkZWJ1ZyBjYXRlZ29yeQoJICBBZGRpbmcgYSBkZWJ1ZyBjYXRlZ29yeSBpcyBuaWNlciB0aGFuIGxvZ2dpbmcgdG8gdGhlIGRlZmF1bHQgY2F0ZWdvcnkKCjIwMTItMTItMTQgMTE6MDg6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBpbXByb3ZlIGRlYnVnCgoyMDEyLTEyLTEzIDE0OjQ4OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGNhbGwgX3N0b3Agd2hlbiBzdGFydCBmYWlsZWQKCSAgV2hlbiB3ZSBmYWlsZWQgdG8gY29tcGxldGUgdGhlIHN0YXJ0LCBjYWxsIHN0b3AgYWdhaW4uIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGFsbAoJICBzdWNjZXNzZnVsbCBjYWxscyB0byBfc3RhcnQgYXJlIHBhaXJlZCB3aXRoIGEgX3N0b3AuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc4NDUKCjIwMTItMTItMTIgMTY6NDQ6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9jaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvbmV0Lmg6CgkgIGxpYnM6IFVzZSBmb28vZm9vLmggYXMgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGNvbnNpc3RlbnRseSBldmVyeXdoZXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg3ODUKCjIwMTItMTItMTEgMTY6NDY6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBhc3MgRFRTIGFuZCBQVFMgdG8gaGFuZGxlX2J1ZmZlcgoJICBUaGlzIG1ha2VzIGl0IGhhbmRsZSB0aGUgdGltZXN0YW1wcyBjb3JyZWN0bHkgYW5kIGF2b2lkcyB1c2luZyBhIHdyb25nIHRpbWVzdGFtcAoJICBmb3IgdGhlIG91dHB1dC4KCjIwMTItMTItMTEgMTY6NDY6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltcHJvdmUgZGVidWcKCSAgQWRkIHB0cyBhbmQgZHRzIGluIGRlYnVnIGxvZwoKMjAxMi0xMS0wMyAxNjo1OTozOSArMDAwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlcG9ydCBleGVjdXRpb24gdGltZSBpbiBHU1RfVElNRV9GT1JNQVQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzUyMwoKMjAxMi0xMi0xMCAxMTo1NTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBwcm90ZWN0IGFnYWluc3QgTlVMTCBmaWxlbmFtZSBpbiBkZWJ1ZwoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTk0OAoKMjAxMi0xMi0wNiAwOTo0ODowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGNsYXJpZnkgZG9jcwoKMjAxMi0xMi0wNSAxNDo1Njo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBkb2NzCgoyMDEyLTEyLTA1IDE0OjI0OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCAwLjEwIGRvY3MgdG8gbWFrZSBtb3JlIHNlbnNlIGluIDEuMAoKMjAxMi0xMi0wNSAxNDowMzoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggZG9jcyBmb3IgMS4wCgkgIEFkZCBwYXJlbnQgdG8gY2hhaW4gZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB1c2UgaXQuCgoyMDEyLTExLTMwIDEwOjQxOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIHJlc2V0LXRpbWUgdHlwZSBzdHJpbmcKCjIwMTItMTEtMzAgMTA6NDE6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIHNvbWUgY2FzdHMKCjIwMTItMTEtMjggMTg6MDg6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBhZGQgbGluayB0byBweXRob24gcG9ydGluZyBkb2MgYW5kIGFwcCBkZXYgbWFudWFsIHRvIHBvcnRpbmctdG8tMS4wLnR4dAoKMjAxMi0xMS0yOCAxNzozNjo1NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBVcGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nCgkgIEluIG9yZGVyIGZvciAxLnggYW5kIDEuKHgrMSkgdmVyc2lvbnMgdG8gbm90IGludmFkZSBvbiBlYWNoIG90aGVyCgkgIHdlIG5lZWQgdG8gaGF2ZSBkaWZmZXJlbnQgbGliIHZlcnNpb25zLgoJICBTbyB3ZSBuZWVkIGEgY29uc2lzdGVudCBhbmQgcHJlZGljdGFibGUgc2NoZW1lOgoJICBsaWJyYXJ5IHZlcnNpb24gbnVtYmVyID0gTUlOT1IgKiAxMDAgKyBNSUNSTwoJICBFeDoKCSAgMS4wLjAgPT4gMCAoZHVoKQoJICAxLjAuMyA9PiAzCgkgIDEuMS4wID0+IDEwMAoJICAxLjEuMSA9PiAxMDEKCSAgMS4yLjAgPT4gMTIwCgkgIDEuMTAuNSA9PiAxMDA1CgkgIC4uLi4KCjIwMTItMTEtMjYgMTg6MTY6NTIgLTA1MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdzdC1lZGl0aW5nLXNlcnZpY2VzIHRvIFBLR19DT05GSUdfUEFUSAoKMjAxMi0xMS0yNiAwMDo1MTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGNsZWFuIHVwIHNlY3Rpb25zIGZpbGUgZm9yIHBhZCBwcm9iZSBkZWZpbmVzIHRoYXQgbW92ZWQgaW50byBlbnVtCgoyMDEyLTExLTI2IDAwOjIwOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGdzdDogZG9uJ3QgcmVxdWlyZSBndGhyZWFkLTIuMAoJICBXZSBkb24ndCBuZWVkIHRvIGxpbmsgdG8gZ3RocmVhZC0yLjAgYW55IGxvbmdlciwgc2luY2UgYWxsCgkgIHRoZSBub3JtYWwgdGhyZWFkLXJlbGF0ZWQgc3R1ZmYgaXMgaW4gR0xpYiBwcm9wZXIsIGFuZCB3ZQoJICBkb24ndCB1c2UgZ190aHJlYWRfaW5pdCgpIGFueSBtb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5MDQzCgoyMDEyLTExLTI1IDIzOjQyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBnc3RyZWFtZXItMS4wLnBjOiBtb3ZlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMCBkZXBlbmRlbmN5IHRvIFJlcXVpcmVzLnByaXZhdGUKCSAgVXNlcnMgb2YgR1N0cmVhbWVyIGFyZSBub3QgZ2VuZXJhbGx5IGV4cGVjdGVkIHRvIHVzZSB0aGUgR01vZHVsZSBBUEkKCSAgZGlyZWN0bHkuIHNvIGRvbid0IGZvcmNlIHRoZW0gYWxsIHRvIGxpbmsgYWdhaW5zdCBpdC4KCSAgV2hpbGUgd2UncmUgYXQgaXQsIG5vIG5lZWQgdG8gZGVmaW5lIHRoaXMgdmlhIGNvbmZpZ3VyZS5hYyByZWFsbHksIGp1c3QKCSAgcHV0IHRoZSBkZXBlbmRlbmNpZXMgZGlyZWN0bHkgaW50byB0aGUgLnBjLmluIGZpbGUuCgoyMDEyLTExLTI1IDIzOjI2OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGdzdC9nc3QuYzoKCSAgZG9jczogcmVtb3ZlIGFsbCBtZW50aW9uIG9mIGdfdGhyZWFkX2luaXQoKQoJICBJdCdzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSBHTGliIDIuMzIgYW5kIGlzbid0IG5lZWRlZCBhbnkKCSAgbG9uZ2VyLgoKMjAxMi0xMS0yNSAxODoxMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogcmVkdWNlIGRlYnVnIGxvZyBzcGFtIGEgYml0CgkgIExvZyBsb2NraW5nL3VubG9ja2luZyB3aXRoIFRSQUNFIGRlYnVnIGxldmVsLgoKMjAxMi0xMS0yMyAyMTowOTo0NSArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBhbm5vdGF0aW9uIGZvciBnc3RfZXZlbnRfcGFyc2Vfc3RyZWFtX3N0YXJ0CgoyMDEyLTExLTIzIDEzOjM2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGRvY3VtZW50IG1vcmUgcGFkIHByb2JlIHZhbHVlcwoKMjAxMi0xMS0yMyAxMzozNDoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJICB0ZXN0Y2xvY2s6IHJlbW92ZSB1bm5lY2Vzc2FyeSBpbmNsdWRlCgoyMDEyLTExLTIzIDEzOjMyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIHRlc3RzOiBmaXggY2xvY2sgdW5pdCB0ZXN0IGJ1aWxkIGZhaWx1cmUgYWZ0ZXIgaGVhZGVyIGNoYW5nZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODc4NQoKMjAxMi0xMS0yMyAxMjo0NzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBkb24ndCB1c2UgcGFyZW50aGVzaXMgZm9yIE9SZWQgcGFkIHByb2JlIGZsYWcgZW51bXMKCSAgZ2xpYi1ta2VudW0gZG9lc24ndCBsaWtlIHRoZW0gZm9yIHNvbWUgcmVhc29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4ODA0CgoyMDEyLTExLTIzIDEwOjU4OjI1ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IFB1dCBhbGwgb2YgdGhlIHByb2JlIHR5cGVzIGluIHRoZSBlbnVtIHNvIHRoZXkgd29yayB3aXRoIGJpbmRpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg4MDQKCjIwMTItMTEtMjAgMjM6MTM6MzMgLTA4MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldC5oOgoJICBsaWJzOiBBZGQgbWlzc2luZyBzaW5nbGUgaW5jbHVkZSBoZWFkZXJzIGFuZCB1c2UgdGhlbSBpbiBHSVJzCgoyMDEyLTExLTIwIDE2OjM0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdHM6IGRvbid0IHVzZSBkZXByZWNhdGVkIHRocmVhZCBBUEkKCjIwMTItMTEtMjAgMTY6MTk6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgc29tZSBkZWJ1ZwoKMjAxMi0xMS0yMCAxNjoxOToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlc2V0IFNUQVJUX1RJTUUgd2hlbiBuZWVkZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTg3MAoKMjAxMi0xMS0yMCAxNTozNzoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IE1ha2UgRy1JIGhhcHB5IGJ5IGhpZGluZyBnc3RfZ190aHJlYWRfZ2V0X3R5cGUoKQoKMjAxMi0xMS0yMCAxNTowNzozNyArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFJlbW92ZSB4ZmlnIGZyb20gc3BlYyBmaWxlCgoyMDEyLTExLTIwIDE1OjA2OjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogVXNlIHRoZSBHTGliIEdUeXBlIGZvciBHVGhyZWFkIGlmIGNvbXBpbGluZyBhZ2FpbnN0IEdMaWIgMi4zNS4zIG9yIG5ld2VyCgoyMDEyLTExLTIwIDEyOjU2OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBEb24ndCBzZXQgdGhlIGxvY2FsZSBpbiBnc3RfaW5pdCgpCgkgIFRoZSBmdW5jdGlvbiBpbml0X3ByZSgpIGluIGdzdHJlYW1lci9nc3QvZ3N0LmMgY2FsbHMgc2V0bG9jYWxlKExDX0FMTCwgIiIpLAoJICB3aGljaCBzZXRzIHRoZSBsb2NhbGUgdG8gdGhlIHZhbHVlcyBzcGVjaWZpZWQgaW4gdGhlIGVudmlyb25tZW50LiAgVGhpcyBpcwoJICB3cm9uZyBmb3IgdHdvIHJlYXNvbnM6CgkgIDEuIEl0IGlzIGFic29sdXRlbHkgbm90IHRoZSB0YXNrIG9mIGEgbGlicmFyeSB0byBkZWNpZGUgb24gdGhlIGNvcnJlY3QgbG9jYWxlCgkgIGZvciBhIHByb2dyYW0uICBTb21lIHByb2dyYW1zIGNoYW5nZSB0aGUgbG9jYWxlIGZvciB2YXJpb3VzIChnb29kIG9yIGJhZCkKCSAgcmVhc29ucywgYW5kIGxpYnJhcmllcyBzaG91bGQgcmVzcGVjdCB0aGF0LiAgUHJvZ3JhbXMgd2hlcmUgR1N0cmVhbWVyJ3MKCSAgb3ZlcndyaXRpbmcgb2YgdGhlIGxvY2FsZSBjYXVzZXMgYnVncyBpbmNsdWRlIEVtYWNzIFsxLCAyXSwgU3VibGltZSBUZXh0IFszXSwKCSAgYW5kIEx1YSBbNF0uCgkgIFsxXSBodHRwOi8vZGViYnVncy5nbnUub3JnL2NnaS9idWdyZXBvcnQuY2dpP2J1Zz0xMjM5MgoJICBbMl0gaHR0cDovL2J1Z3ppbGxhLm5vdmVsbC5jb20vc2hvd19idWcuY2dpP2lkPTc3OTQyNgoJICBbM10gaHR0cDovL3d3dy5zdWJsaW1ldGV4dC5jb20vZm9ydW0vdmlld3RvcGljLnBocD9mPTMmdD04NTQzCgkgIFs0XSBodHRwczovL2dpdGh1Yi5jb20vcGF2b3VrL2xnaS9pc3N1ZXMvMTkKCSAgTm90ZSB0aGF0IHNldHRpbmcgdGhlIGxvY2FsZSBjYW4gY2F1c2UgcHJvYmxlbXMgZm9yIHByb2dyYW1zIHRoYXQgYXJlIG5vdCBldmVuCgkgIGxpbmtlZCBhZ2FpbnN0IEdTdHJlYW1lci4gIEluIHRoZSBjYXNlIG9mIEVtYWNzLCBmb3IgZXhhbXBsZSwgR1N0cmVhbWVyIHNlZW1zCgkgIHRvIGJlIGluaXRpYWxpemVkIHRocm91Z2ggR1RLIHZpYSBsaWJjYW5iZXJyYS4KCSAgMi4gU2V0dGluZyB0aGUgbG9jYWxlIGlzIG5vdCB0aHJlYWQtc2FmZSwgYW5kIHRoZXJlZm9yZSBzaG91bGQgbm90IGJlIGRvbmUgaW4gYQoJICBsaWJyYXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NjUwCgoyMDEyLTExLTE2IDE5OjQxOjQ4ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZm9yd2FyZCBzdHJlYW0tc3RhcnQgZXZlbnQgaW4gcHVzaCBtb2RlCgoyMDEyLTExLTE5IDEzOjM4OjMwICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9tYW51YWwvc3RhdGUtZGlhZ3JhbS5maWc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvcGxheWVyLmZpZzoKCSAgUmVtb3ZlIHR3byBsYXN0IC5maWcgZmlsZXMgZnJvbSBidWlsZCwgdGhleSBhcmUgbm93IHJlcGxhY2VkIHdpdGggLnN2ZyBmaWxlcy4gVGhhdCBzYWlkIEkgZG9uJ3QgdGhpbmsgZWl0aGVyIC5maWcgZmlsZSB3YXMgc3RpbGwgYmVpbmcgdXNlZCBhbnl3aGVyZS4gV2l0aCB0aGlzIGNoYW5nZSBhbmQgdGhlIG9uZSBpbiBjb21tb24gR1N0cmVhbWVyIG5vIGxvbmdlciBkZXBlbmRzIG9uIHhmaWcuCgoyMDEyLTExLTE5IDEzOjE2OjQ4ICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAxMi0xMS0xOSAxMToyMzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjQ5N2M0ZiB0byBhNzJmYWVhCgoyMDEyLTExLTE5IDExOjQ1OjA3ICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBkb2NzL21hbnVhbC9zdGF0ZS1kaWFncmFtLnN2ZzoKCSogZG9jcy9yYW5kb20vd3RheS9wbGF5ZXIuc3ZnOgoJICBBZGQgU1ZHIHZlcnNpb25zIG9mIC5maWcgZmlsZQoKMjAxMi0xMS0xNyAxMDoyNzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IGRvbid0IGNvbXBpbGUgdGVzdHJ0cG9vbCBleGFtcGxlIGlmIHB0aHJlYWRzIGFyZSBub3QgYXZhaWxhYmxlIGxpa2Ugb24gd2luMzIKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IGl0YWxhcmFiQGdtYWlsLmNvbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NTExCgoyMDEyLTExLTEzIDIxOjEzOjAwICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY2xvY2sgbGVhayBpbiB3YWl0X3J1bm5pbmdfdGltZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NDc3CgoyMDEyLTExLTE3IDAwOjEzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBnc3Rjb21wYXQuaDogbW92ZSBtb3JlIGRlcHJlY2F0ZWQgQVBJIGludG8gdGhlIGRlcHJlY2F0ZWQgc2VjdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NTk4CgoyMDEyLTExLTE0IDEyOjIwOjU0ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZG9jdW1lbnRhdGlvbiB1cGRhdGUKCSAgR1N0YXRpY1JlY011dGV4IHVzYWdlIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IEdSZWNNdXRleCwgcmVmbGVjdCB0aGlzCgkgIGNoYW5nZSBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCjIwMTItMTEtMTQgMTA6NTU6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBwb3J0IHRvIG5ldyBHTGliIHRocmVhZGluZyBBUEkKCjIwMTItMTEtMTMgMjM6MTE6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGdzdF9hZGFwdGVyX3ByZXZfdGltZXN0YW1wIC0+IGdzdF9hZGFwdGVyX3ByZXZfcHRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU1OTgKCjIwMTItMTEtMTMgMjI6NDI6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgdGVzdGNsb2NrOiBtaW5vciBjbGVhbnVwcywgYWRkIHNpbmNlIG1hcmtlcnMgZm9yIGd0ay1kb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0wOC0zMCAwMTo1ODo0MSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogYWxsb3cgR3N0VGVzdENsb2NrIHRvIGhhbmRsZSBjbG9jayBub3RpZmljYXRpb25zCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfcGVla19pZF9jb3VudCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfaGFzX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19wZWVrX25leHRfcGVuZGluZ19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfd2FpdF9mb3JfbmV4dF9wZW5kaW5nX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja193YWl0X2Zvcl9wZW5kaW5nX2lkX2NvdW50KCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19wcm9jZXNzX25leHRfY2xvY2tfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX2dldF9uZXh0X2VudHJ5X3RpbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTExLTEzIDIxOjI5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBhZGQgZGVwZW5kZW5jeSBvbiBnc3RjaGVjayBoZWFkZXIgZmlsZXMgZm9yIGV4cG9ydHMuc3ltCgkgIFNvIGV4cG9ydHMuc3ltIGdldHMgdXBkYXRlZCBjb3JyZWN0bHksIGFuZCBvdXIgbmV3IHN5bWJvbHMgZ2V0CgkgIGV4cG9ydGVkIGNvcnJlY3RseSwgd2hpY2ggbWFrZXMgZy1pci1zY2FubmVyIG11Y2ggaGFwcGllciBpbgoJICB0ZXJtcyBvZiBsaW5raW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTA4LTI5IDE2OjExOjEwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IGFkZCBHc3RUZXN0Q2xvY2sgYXMgYSBkZXRlcm1pbmlzdGljIGNsb2NrIGZvciB0ZXN0aW5nCgkgIEFQSTogR3N0VGVzdENsb2NrCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfbmV3KCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19uZXdfd2l0aF9zdGFydF90aW1lKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19zZXRfdGltZSgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfYWR2YW5jZV90aW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0xMS0wOSAyMToxMDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZGVidWcgbWVzc2FnZQoKMjAxMi0xMS0wOCAyMDoyMjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiByZS1pbmRlbnQgaGVhZGVyIGZpbGUKCSAgVGFicyB0byBzcGFjZXMuCgoyMDEyLTExLTEyIDExOjQwOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdmFsdWU6IEFQSTogQWRkIGJveGVkIHR5cGUgZm9yIEdUaHJlYWQKCjIwMTItMTEtMTIgMTA6MzA6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEZpeCBpbmRlbnRpb24gZm9yIHByaW50aW5nIHR5cGVmaW5kZXIgZmVhdHVyZXMKCjIwMTItMTEtMTIgMDE6NDA6NDIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2hlbiBkZWJ1Z2dpbmcgZGlzYWJsZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODEzMAoKMjAxMi0xMS0xMCAwOTo1MDo0OSArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgdW51c2VkIGxhYmVsLiBGaXhlcyBjb21waWxlciB3YXJuaW5nLgoKMjAxMi0xMC0yOSAxMjowODozMSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBkb24ndCBmYWlsIGluIF9zaW5rX2V2ZW50IGZvciBzdGlja3kgZXZlbnRzCgkgIEltcGxlbWVudCB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgZ3N0X3BhZF9wdXNoX2V2ZW50IHdoZW4gcHVzaGluZyBzdGlja3kgZXZlbnRzCgkgIGZhaWxzLCB0aGF0IGlzIGRvbid0IGZhaWwgaW1tZWRpYXRlbHkgYnV0IGZhaWwgd2hlbiBkYXRhIGZsb3cgcmVzdW1lcyBhbmQgdXBzdHJlYW0KCSAgY2FuIGFnZ3JlZ2F0ZSBwcm9wZXJseS4KCSAgVGhpcyBmaXhlcyBzZWdtZW50IHNlZWtzIHdpdGggZGVjb2RlYmluIGFuZCB1bmxpbmtlZCBhdWRpbyBvciB2aWRlbyBicmFuY2hlcy4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc4OTkKCjIwMTItMTEtMDkgMTY6NTA6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBzaW1wbGUgcmF0ZSBjb250cm9sCgkgIEFkZCBhIG1heC1iaXRyYXRlIHByb3BlcnR5IHRoYXQgd2lsbCBzbGlnaHRseSBkZWxheSByZW5kZXJpbmcgb2YgYnVmZmVycyBpZiBpdAoJICB3b3VsZCBleGNlZWQgdGhlIG1heGltdW0gZGVmaW5lZCBiaXRyYXRlLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRvCgkgIHJhdGUgY29udHJvbCBvbiBuZXR3b3JrIHNpbmtzLCBmb3IgZXhhbXBsZS4KCSAgQVBJOiBHc3RCYXNlU2luazo6bWF4LWJpdHJhdGUKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9tYXhfYml0cmF0ZSgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2JpdHJhdGUoKQoKMjAxMi0xMS0wOCAxNTozMzowMSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPHlzdHJlZXQwMEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBsb2NrIGJlZm9yZSB1bmxvY2sgaW4gX2dldF9jb25maWcKCSAgRml4ZXMgZGVhZGxvY2sgb24gV2luZG93cwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3ODk2CgoyMDEyLTExLTA3IDE4OjE1OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1cGRhdGUgY291cnRlc3kgb2YgYXV0b3VwZGF0ZQoKMjAxMi0xMS0wNyAxNzo1OTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBBR19HU1RfUExVR0lOX0RPQ1MgcHl0aG9uIGNoZWNrcwoKMjAxMi0xMS0wNiAxODoyOToyOCArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvY3VtZW50IEdTVF9ERUJVR19GSUxFCgoyMDEyLTExLTA2IDE3OjAzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGZpeCBhbGlnbm1lbnQgb2YgcmFuaywgZXRjLgoKMjAxMi0xMS0wNiAxNjo1ODowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZWxlbWVudHM6IGZpeCBsZWFkaW5nIHNwYWNlIGluIHBsdWdpbiBkZXNjcmlwdGlvbiBzdHJpbmcKCjIwMTItMTEtMDMgMjA6NDQ6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDT1BZSU5HOgoJKiBkb2NzL3JhbmRvbS9MSUNFTlNFOgoJKiBnc3QvZ2V0dGV4dC5oOgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50bWV0YWRhdGEuaDoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvaW5pdC5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1kaXNhYmxlZC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuaDoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSogdGVzdHMvbWlzYy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbToKCSogdGVzdHMvbWlzYy9uZXR3b3JrLWNsb2NrLnNjbToKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBGaXggRlNGIGFkZHJlc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzUyMAoKMjAxMi0xMC0zMSAxOTozMzozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCAiZmx1c2gtb24tZW9zIiBwcm9wZXJ0eQoJICBJbiBmbHVzaC1vbi1lb3M9dHJ1ZSBtb2RlIGFueSBkYXRhIHJlbWFpbmluZyBpbiB0aGUgcXVldWUgaXMKCSAgZGlzY2FyZGVkIHdoZW4gYW4gRU9TIGV2ZW50IGlzIHJlY2VpdmVkLCBhbmQgdGhlIEVPUyBwYXNzZWQKCSAgZG93bnN0cmVhbSBhcyBzb29uIGFzIHBvc3NpYmxlIChpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIGFsbAoJICBidWZmZXJzIGluIHRoZSBxdWV1ZSB0byBnZXQgcHJvY2Vzc2VkIGJ5IGRvd25zdHJlYW0gZmlyc3QpLgoJICBNYXkgb3IgbWF5IG5vdCBiZSB1c2VmdWwgaW4gY2FwdHVyZS9lbmNvZGluZyBzY2VuYXJpb3MuCgoyMDEyLTEwLTMxIDE4OjMyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgcHl0aG9uIGRldGVjdGlvbgoJICBGaXhlcyBkb2NzIGJ1aWxkLgoKMjAxMi0xMC0zMSAxNzozNzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGxldCBBR19HU1RfUExVR0lOX0RPQ1MgY2hlY2sgZm9yIHB5dGhvbgoJICBBbmQgdXBkYXRlIGNvbW1vbiBmb3IgbW92ZSBmcm9tIEFTX1BBVEhfUFlUSE9OIHRvIEFNX1BBVEhfUFlUSE9OLAoJICB3aGljaCBhcyBhIHNpZGUtZWZmZWN0IHNob3VsZCBwaWNrIHVwIG5ld2VyIHB5dGhvbiB2ZXJzaW9ucyBhcyB3ZWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzOTAzCgoyMDEyLTEwLTMwIDEwOjA0OjQ0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBDbGFyaWZ5IGRvY3MgYWJvdXQgdGhlIGJ1ZmZlciBoYW5kbGVyIGNhbGxiYWNrLgoJICBDbGFyaWZ5IHRoYXQgdGhlIGNhbGxiYWNrIG93bnMgYSByZWYgb24gYSBwYXNzZWQgYnVmZmVyLgoKMjAxMi0xMC0zMCAxMDowNDoxNCArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCBFT1Mgc3RhdHVzIHRvIGRlYnVnIG91dHB1dCBhYm91dCBmaWxsZWQvdW5maWxsZWQKCjIwMTItMTAtMjIgMDA6MzE6MDkgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY2hlY2s6IEFkZCBhIHNpbXBsZSB0ZXN0IGZvciB0aGUgQ29sbGVjdFBhZHMgYnVmZmVyIGNvbGxlY3QgY2FsbGJhY2sKCjIwMTItMTAtMjkgMTM6MjY6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZy1pOiBmaXggImNhbid0IHJlc29sdmUgbGlicmFyaWVzIHRvIHNoYXJlZCBsaWJyYXJpZXM6IGdzdGNoZWNrLTEuMCIgYnVpbGQgZXJyb3IKCSAgUmV2ZXJ0IC0tbGlicmFyeT1saWJmb28tMS4wLmxhIC0+IC0tbGlicmFyeT1mb28tMS4wIGNoYW5nZSBtYWRlCgkgIGluIHByZXZpb3VzIGNvbW1pdC4gVHVybnMgb3V0IHRoYXQgd2FzIHdyb25nLCBkZXNwaXRlIHdoYXQgdGhlCgkgIG1hbiBwYWdlIHNheXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDM3MTAKCjIwMTItMTAtMjkgMTE6MzA6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBkb3duZ3JhZGUgJ2NyZWF0aW5nIHJhbmRvbSBzdHJlYW0taWQnIGRlYnVnIGxvZyBtZXNzYWdlCgkgIE5vIG5lZWQgZm9yIGl0IHRvIGJlIGEgd2FybmluZy4KCjIwMTItMDYtMTMgMTM6MDI6NDggKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGV4Y2Vzc2l2ZWx5IGhpZ2ggbWVtb3J5IHVzYWdlIHdpdGggbG9uZyBzdHJlYW1zCgkgIExhcmdlIHN0cmVhbXMgd291bGQgaW5kZXggb25lIGZyYW1lIGV2ZXJ5IHNlY29uZCwgd2hpY2ggY2FuIGdldCBxdWl0ZQoJICBsYXJnZSB3aXRoIG11bHRpLWhvdXIgc3RyZWFtcywgc28gYWRkIGFuIGFkZGl0aW9uYWwgYnl0ZS1iYXNlZAoJICBtaW5pbXVtIGRpc3RhbmNlIGFzIHdlbGwsIHdoaWNoIHdpbGwga2ljayBpbiBmb3IgbG9uZyBzdHJlYW1zCgkgIGFuZCBtYWtlIHN1cmUgd2UgbmV2ZXIgaGF2ZSBtb3JlIHRoYW4gYSBjb3VwbGUgb2YgdGhvdXNhbmQgaW5kZXgKCSAgZW50cmllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjA1MwoKMjAxMi0xMC0yOCAxNzoxNzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGctaTogYXZvaWQgbXVsdGlwbGUgbGlicmFyaWVzIGluIHRoZSBzaGFyZWQtbGlicmFyeSB0YWcKCSAgVXNpbmcgbXVsdGlwbGUgbGlicmFyaWVzIGNhdXNlcyBwcm9ibGVtcyBmb3IgdGhlIEMjIGJpbmRpbmdzIGFuZAoJICB3aWxsIGZvciBzaW1pbGlhciBsYW5ndWFnZXMgc3VjaCBhcyBKYXZhIHdoZW4gdGhlcmUgYXJlIGJpbmRpbmdzCgkgIGZvciB0aGVtLgoJICBBbHNvIGNoYW5nZSAtLWxpYnJhcnk9bGliZ3N0Zm9vLVgubGEgdG8gLS1saWJyYXJ5PWdzdGZvby1YIGFzCgkgIHRoZSBtYW4gcGFnZSBzdWdnZXN0cyBpdCBzaG91bGQgYmUgZG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTMxNQoKMjAxMi0xMC0yOCAxNTo1MzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW5fbmFtZSgpCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW5fbmFtZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NzE4MzIKCjIwMTItMTAtMjcgMTQ6NDA6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhbGxvdyBzZXR0aW5nIG9mIEdTVF9ERUJVRyBsZXZlbHMgYnkgbmFtZQoJICBlLmcuIEdTVF9ERUJVRz0qOklORk8sKnNyYzpMT0cKCjIwMTItMDYtMjkgMTI6Mzg6NTIgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBtYWtlIHVzIG9mIHRoZSBuZXcgZ3N0X2RlYnVnX3NldF90aHJlc2hvbGRfZnJvbV9zdHJpbmcgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTE1MgoKMjAxMi0wNi0yOSAxMjowNTozNiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IGFkZCBhIGZ1bmN0aW9uIHRvIHNldCBkZWJ1ZyB0aHJlc2hvbGQgZnJvbSBhIEdTVF9ERUJVRy1zdHlsZSBzdHJpbmcKCSAgVXNlIHRoZSBzYW1lIGZvcm1hdCBhcyB3aXRoIHRoZSBHU1RfREVCVUcgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIEFQSTogZ3N0X2RlYnVnX3NldF90aHJlc2hvbGRfZnJvbV9zdHJpbmcoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTUyCgoyMDEyLTEwLTI1IDE1OjI3OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBGaXggdW5pdCB0ZXN0CgoyMDEyLTEwLTIyIDEwOjEzOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGF0YXF1ZXVlL3F1ZXVlYXJyYXk6IE1ha2UgcHVibGljIEFQSSBhZ2FpbgoJICBUaGVzZSBhcmUgYWN0dWFsbHkgdXNlZCBvdXRzaWRlIG9mIGNvcmVlbGVtZW50cyBub3dhZGF5cy4KCSAgQWxzbyBoaWRlIGxvdHMgb2YgaW50ZXJuYWxzIGFuZCBhZGQgcGFkZGluZyBhbmQgZG9jdW1lbnRhdGlvbi4KCjIwMTItMTAtMjUgMTI6MTA6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZmVhdHVyZSBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4wLjIgPT09CgoyMDEyLTEwLTI1IDAwOjA0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMC4yCgoyMDEyLTEwLTI0IDE2OjEzOjM0ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IGxpbmsgdGVzdHJ0cG9vbCB0byBwdGhyZWFkcwoJICBGaXhlcyAjNjg2Nzg3CgoyMDEyLTEwLTI0IDExOjQ2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWxsb3cgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyBkdXJhdGlvbiBmb3IgR0FQIGV2ZW50cwoKMjAxMi0xMC0yNCAxMToxNjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgbmV3IEdDb25kIGZvciBhc3luYyBzdGF0ZSBjaGFuZ2UKCSAgVXNlIGEgbmV3IEdDb25kLCBwcm90ZWN0ZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2ssIHRvIHNpZ25hbCBjb21wbGV0aW9uCgkgIG9mIHRoZSBhc3luYyBzdGF0ZSBjaGFuZ2UuIFdlIGNhbid0IHJldXNlIHRoZSBsaXZlIGxvY2sgYmVjYXVzZSB0aGF0CgkgIG9uZSBjYW4gYmUgbG9ja2VkIHdoZW4gdGhlIGNyZWF0ZSBmdW5jdGlvbiBibG9ja3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY3MjMKCjIwMTItMTAtMjIgMjA6MjU6NDMgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGZpeCBtZW1vcnkgbGVhayBpbiBfZmFsbGJhY2tfbWVtX2NvcHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjY1OAoKMjAxMi0xMC0yMiAyMDozMzowNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogcmVtb3ZlIHZhcmlhYmxlIG5vdCByZWFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY2NTkKCjIwMTItMTAtMjIgMTU6MDQ6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbTQvYXhfcHRocmVhZC5tNDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBQcm9wZXJseSBjaGVjayBmb3IgcHRocmVhZAoJICBUaGUgb2xkIGNoZWNrIGZhaWxlZCBvbiBBbmRyb2lkIGZvciBleGFtcGxlLgoKMjAxMi0xMC0yMiAxMDoyNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBEb24ndCB1c2UgR1NUX0RFQlVHKCkgaW4gZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24oKSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMgdW5jb25kaXRpb25hbGx5CgkgIElmIEdTdHJlYW1lciB3YXMgbm90IGluaXRpYWxpemVkIHlldCB0aGlzIHdpbGwgY2F1c2UgZ193YXJuaW5ncygpLgoKMjAxMi0xMC0yMCAxOTo0NDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGZpeCBnLWkgYW5ub3RhdGlvbiBmb3IgR3N0Q29sbGVjdFBhZHNCdWZmZXJGdW5jdGlvbgoJICBXZSBwYXNzIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIHRvIHRoZSBmdW5jdGlvbi4KCjIwMTItMTAtMjAgMTI6NTQ6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgZ190eXBlX2luaXQoKSBpcyBubyBsb25nZXIgcmVxdWlyZWQgYW5kIGRlcHJlY2F0ZWQgaW4gZ2xpYiA+PSAyLjM1LjAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjQ1NgoKMjAxMi0xMC0xOSAxMzozNjozMyAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHJkaW8uY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBHc3RTYW1wbGU6IGZpeCB0eXBvIGluIEctSSBhbm5vdGF0aW9ucywgYWxsb3dzIGNyZWF0aW5nIEdzdFNhbXBsZXMgZnJvbSBiaW5kaW5ncy4KCjIwMTItMTAtMTggMTU6MzE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY29uc3RuZXNzCgkgIHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnZ19tdXRleF9sb2NrJyBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCSAgcGFzc2luZyBhcmd1bWVudCAxIG9mICdnX211dGV4X3VubG9jaycgZGlzY2FyZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgoyMDEyLTEwLTE3IDE2OjQ5OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGJpbiwgcGlwZWxpbmU6IHVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCSAgU28gdGhlIHN0cmluZ3MgYXJlbid0IGNvcGllZC4KCjIwMTItMTAtMTYgMTI6MzE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQVBJOiBBZGQgR3N0RWxlbWVudDo6cG9zdF9tZXNzYWdlKCkgdmZ1bmMKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZWxlbWVudC5oCgoyMDEyLTEwLTE2IDExOjU0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgcHdnOiBsaW5rIHRvIGNhcHMgYW5kIHFvcyBjaGFwdGVycwoKMjAxMi0xMC0xNiAxMToyMDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXF1ZXJ5Zm4ueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IGFkZCBzZWN0aW9uIGFib3V0IHF1ZXJ5IGZ1bmN0aW9uCgoyMDEyLTEwLTE2IDExOjEyOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctZXZlbnRmbi54bWw6CgkgIHB3ZzogZml4IGV2ZW50IGZ1bmN0aW9uCgoyMDEyLTEwLTE1IDE5OjU2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogbWlub3IgZG9jcyBmaXhlcwoKMjAxMi0xMC0xNSAxOTo1NTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBmaXggYnVmZmVyIGxlYWsgaW4gY2xpcF90aW1lCgoyMDEyLTEwLTE1IDE4OjQ0OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGNhbGwgY2xpcCBmdW5jdGlvbiB3aXRoIHVzZXIgZGF0YQoKMjAxMi0xMC0xNSAxNDowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogcmVvcmRlciBzb21lIGNoYXB0ZXJzCgkgIFJlb3JkZXIgc29tZSBjaGFwdGVyIHNvIHRoYXQgdGhleSBtYXRjaCB0aGUgc3RlcHMgZG9uZSBpbiB0aGUKCSAgZWxlbWVudC4KCjIwMTItMTAtMTUgMTM6NTk6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3Zzogc21hbGwgdHdlYWtzIHRvIG5lZ290aWF0aW9uCgoyMDEyLTEwLTE1IDEzOjQ0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IGltcHJvdmUgbmVnb3RpYXRpb24gZG9jdW1lbnRhdGlvbiBzb21lIG1vcmUKCjIwMTItMTAtMTUgMTI6MTA6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHVwZGF0ZSBuZWdvdGlhdGlvbiBwYXJ0CgoyMDEyLTEwLTE1IDEyOjEwOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgc3luY2hyb25pemF0aW9uIGRvY3MKCjIwMTItMTAtMTIgMTY6NTg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3Zzogd29yayBvbiByZXdyaXRpbmcgY2FwcyBuZWdvdGlhdGlvbiBkb2NzCgoyMDEyLTEwLTEyIDE2OjA5OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRlc2lnbjogcmVuYW1lIHBhc3N0aHJvdWdoIG5lZ290aWF0aW9uCgkgIFJlbmFtZSBwYXNzdGhyb3VnaCBuZWdvdGlhdGlvbiB0byB0cmFuc2Zvcm0gbmVnb3RpYXRpb24gdG8gYXZvaWQKCSAgY29uZnVzaW9uIHdpdGggcGFzc3Rocm91Z2ggb3BlcmF0aW9uLgoKMjAxMi0xMC0xMiAxMzoxNTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgbWFudWFsOiBubyBtb3JlIG5ldy1kZWNvZGVkLXBhZAoKMjAxMi0xMC0xMiAxMzoxMzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jb21waWxpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBtYW51YWw6IG1vdmUgZW1iZWRkaW5nIGVsZW1lbnRzIHRvIHNlcGFyYXRlIGNoYXB0ZXIKCjIwMTItMTAtMTIgMTM6MDE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJICBwd2c6IHNtYWxsIGV4YW1wbGUgZm9yIHRocm90dGxlCgoyMDEyLTEwLTEyIDEyOjU1OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiBhZGQgaW5mbyBhYm91dCBRb1MKCjIwMTItMTAtMTIgMTI6NTU6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBwd2c6IGFkZHMgc29tZSBtb3JlIGxpbmtzCgoyMDEyLTEwLTEyIDEyOjU1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBxb3M6IG1lc3NhZ2VzIGFyZSBwb3N0ZWQsIG5vdCBkcm9wcGVkCgoyMDEyLTEwLTEyIDEwOjM1OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJKiBkb2NzL21hbnVhbC9nc3RyZWFtZXItb3ZlcnZpZXcucG5nOgoJKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSogZG9jcy9tYW51YWwvdGhyZWFkLWJ1ZmZlcmluZy5wbmc6CgkgIG1hbnVhbDogdXBkYXRlIGdyYXBoaWNzCgoyMDEyLTEwLTExIDE3OjEwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgZXhhbXBsZSBvZiBuby1yZWJ1ZmZlciBidWZmZXJpbmcgc3RyYXRlZ3kKCjIwMTItMTAtMTEgMTc6MTA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgbWFudWFsOiBzbWFsbCB0d2Vha3MKCjIwMTItMTAtMTEgMTc6MDk6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGJ1ZmZlcmluZyB0aW1lIGxlZnQgaXMgaW4gbWlsbGlzZWNvbmRzCgoyMDEyLTEwLTExIDE3OjA3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICBtYW51YWw6IGFkZCBzb21lIHRleHQgYWJvdXQgYmluIHN0YXRlIGNoYW5nZSBvcmRlcgoKMjAxMi0xMC0xMCAxNjo0Mzo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1wbGF5YmFjay54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiB0YWxrIGFib3V0IHBsYXlzaW5rCgkgIFRhbGsgYWJvdXQgcGxheXNpbmsgYW5kIGdpdmUgYW4gZXhhbXBsZSBvZiBpdHMgdXNhZ2UuCgoyMDEyLTEwLTEwIDEzOjA4OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXBsYXliYWNrLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBzb21ldGhpbmcgYWJvdXQgdXJpZGVjb2RlYmluCgoyMDEyLTEwLTEwIDExOjM1OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGVuc3VyZSBhbGwgdGltZXN0YW1wcyBhcmUgaW4gc2FtZSB0aW1lIGRvbWFpbgoJICAuLi4gYnkgbm90IG9ubHkgcHJvY2Vzc2luZyBpbmNvbWluZyBidWZmZXJzIHRocm91Z2ggYSBjbGlwIGZ1bmN0aW9uLAoJICBidXQgYWxzbyBvdGhlciB0aW1lc3RhbXBzIHN1Y2ggYXMgdGhvc2UgY29taW5nIGZyb20gR0FQIGV2ZW50LgoKMjAxMi0xMC0xMCAxMDozNjozMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgU3dpdGNoIHRvIEYxOCBuYW1pbmcgb2YgdGhlIHBhY2thZ2UKCjIwMTItMDktMTUgMTg6NDM6MzkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdXNlIGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhIHRvIHJlcGxhY2Ugb2Jzb2xldGUgQVBJCgoyMDEyLTA5LTE0IDE3OjUyOjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIHJlcGxhY2UgZ3N0X3RhZ19saXN0X2ZyZWUgd2l0aCBnc3RfdGFnX2xpc3RfdW5yZWYKCjIwMTItMDktMTQgMTc6MDA6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIHJlcGxhY2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIHdpdGggZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFkYXRhCgoyMDEyLTA5LTA2IDE2OjMyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogd2hpdGVzcGFjZSBmaXgKCjIwMTItMDktMTQgMTQ6MDg6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBkb2NzOiBpbmRleGVycyBhcmUgbm8gbW9yZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MDE4CgoyMDEyLTA5LTE0IDEzOjM0OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICB0ZXN0czogZml4IGZvciBhcHBzaW5rIHJldHVybiB2YWx1ZSBhZGRpdGlvbgoKMjAxMi0wOS0xNCAwMjo1NDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45NCA9PT0KCjIwMTItMDktMTQgMDI6NDY6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTQKCjIwMTItMDktMTQgMDE6Mjg6NDYgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgdHJ5IHRvIHByZXR0eS1wcmludCBldmVudCBhZnRlciB3ZSd2ZSBnaXZlbiBhd2F5IG93bmVyc2hpcAoJICBNaWdodCBjYXVzZSBjcmFzaGVzIHdpdGggZGVidWcgbG9nZ2luZyBlbmFibGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzOTk2CgoyMDEyLTA5LTE0IDAxOjE3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMi0wOS0xNCAwMDozMDozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgZ3N0Y29tcGF0OiBmaXggYmFja3dhcmRzIGNvbXBhdCBtYWNybyBmb3IgZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uCgkgIE5hbWUgaXQgcHJvcGVybHksIHNvIGl0LCBsaWtlLCB3b3Jrcy4gQ2xlYXJseSBubyBvbmUgYWN0dWFsbHkKCSAgdXNlZCB0aGF0Li4KCjIwMTItMDktMTMgMTI6MDA6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGZpeCBmb3JtYXRzIGEgbGl0dGxlCgoyMDEyLTA5LTEzIDExOjM4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IGJhc2VwYXJzZSBmdW5jdGlvbgoKMjAxMi0wOS0xMyAxMTozODozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZm91cmNjIGlzIG5vIG1vcmUKCjIwMTItMDktMTMgMTE6MzU6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZpeCBzb21lIGRvY3MKCSAgZnJvbSBnaXQgZ3JlcCBmb3IgZmZtcGVnY29sb3JzcGFjZSBhbmQgeC1yYXctCgoyMDEyLTA5LTEzIDEwOjQ4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgcGFyc2U6IGFkZCBtaXNzaW5nIGRlY2xhcmF0aW9uCgoyMDEyLTA5LTEzIDEwOjI0OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGluZGVudCBmaXgKCjIwMTItMDktMTIgMjI6NDQ6MzcgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWRkIGEgbW9kZS9mbGFnIGZvciBkaXNhYmxpbmcgUFRTIGludGVycG9sYXRpb24KCSAgVG8gYmUgdXNlZCBieSBzdWItY2xhc3NlcyBpbXBsZW1lbnRpbmcgdmlkZW8gZm9ybWF0cyB3aXRoIHJlb3JkZXJpbmcKCSAgc3VjaCBhcyBNUEVHLgoKMjAxMi0wOS0xMCAxODozODo1NyAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBIYW5kbGUgR0FQIGFuZCBzdGlsbC1mcmFtZSBldmVudHMuCgkgIEhhY2t5LCBiZWNhdXNlIHRoZSBzdGlsbC1mcmFtZSBjb2RlIGFsbCBsaXZlcyBpbiAtYmFzZSwgd2hlcmUgd2UKCSAgY2FuJ3QgdXNlIGl0IC0gc28gdGhpcyBpcyBhIGhhY2t5IGR1cGxpY2F0aW9uIG9mIC1iYXNlIGNvZGUuIE5vdAoJICBzdXJlIHdoaWNoIHdheSB0byBmaXggdGhpczogTW92ZSBiYXNlcGFyc2UgdG8gLWJhc2UsIG9yIG1vdmUgc3RpbGwtZnJhbWUKCSAgZXZlbnRzIHRvIGNvcmU/CgoyMDEyLTA5LTA0IDE5OjM4OjI2IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlc3RydWN0dXJlIGV2ZW50IGhhbmRsaW5nCgkgIE1ha2UgdGhlIGV2ZW50IGhhbmRsaW5nIG1vcmUgbGlrZSB3aGF0IHZpZGVvZGVjb2RlciBkb2VzLAoJICB0byBlbnN1cmUgdGhhdCBhbGwgZXZlbnRzIGFyZSBwYXNzZWQgdG8gY2hpbGQgY2xhc3NlcyBiZWZvcmUgYmVpbmcKCSAgcGxhY2VkIG9uIHRoZSBwZW5kaW5nIHF1ZXVlIG9yIHB1c2hlZCBvbndhcmQuCgoyMDEyLTA5LTAzIDEwOjMwOjA4IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFN0b3JlIGluY29taW5nIGNhY2hlZCBldmVudHMgaW4gcmV2ZXJzZSBvcmRlcgoJICBSZXZlcnNlIHRoZSBsaXN0IGp1c3QgYmVmb3JlIHNlbmRpbmcuIFByZXBlbmRpbmcgaXMgbW9yZSBlZmZpY2llbnQKCSAgdGhhbiBhcHBlbmRpbmcsIHNvIHRoaXMgc2F2ZXMgc29tZSBjeWNsZXMuCgoyMDEyLTA5LTAyIDIzOjMyOjUwIC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpcnN0IGF0dGVtcHQgYXQgaGFuZGxpbmcgYm90aCBEVFMgYW5kIFBUUwoKMjAxMi0wOS0xMyAwMDozODoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGFkZCB3YXJuaW5nIHdoZW4gd2UgZ2V0IHNvbWV0aGluZyBlbHNlIHRoYW4gYSBzYW1wbGUgZm9yIGEgc2FtcGxlIHRhZwoJICBGYWNpbGl0YXRlIEdzdEJ1ZmZlciAtPiBHc3RTYW1wbGUgdHJhbnNpdGlvbiBmb3Igc29tZSB0YWdzLAoJICBjb3VsZCBiZSBoYXJkIHRvIGNhdGNoIG90aGVyd2lzZSB3aGVuIGNyZWF0aW5nIHRhZ3MsIHNpbmNlCgkgIGl0J2xsIG9ubHkgYmUgYXBwYXJlbnQgbGF0ZXIgd2hlbiBzb21lb25lIHRyaWVzIHRvIHJlYWQgdGhlCgkgIHRhZ3MuCgoyMDEyLTA5LTEyIDE0OjE0OjMxICswMjAwICBBbmRyZWFzIEZyaXNjaCA8ZnJheGluYXNAb3BlbmRyZWFtYm94Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZG9uJ3QgY3Jhc2ggaWYgbm8gZWxlbWVudCBrbGFzcyBoYXMgYmVlbiBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mzg2NQoKMjAxMi0wOS0xMiAyMzoxMjoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGZpeCBhIG1pc3BsYWNlZCAnKScKCjIwMTItMDktMTIgMjE6MjA6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZXJyb3I6IGRvbid0IHRlbGwgcGVvcGxlIHRvIGZpbGUgYSBidWcgZm9yIG5lZ290aWF0aW9uIGVycm9ycwoKMjAxMi0wOS0xMiAyMDo1NDo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IHJlbW92ZSBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbAoJICBSZW5hbWUgZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwoKSB0byBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQoKSBhbmQgZml4IGFsbAoJICBpbnZvY2F0aW9ucy4KCjIwMTItMDktMTIgMTc6MTY6NDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogZml4IGJ1aWxkIG9uIEN5Z3dpbgoJICAuLi4gd2hlcmUgX19mYnVmc2l6ZSBpcyBub3QgYXZhaWxhYmxlCgoyMDEyLTA5LTEyIDEzOjAwOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIFJldmVydCAidGVzdHM6IGZpeCBidWZmZXIgbGVhayBpbiBxdWV1ZTIgdW5pdCB0ZXN0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDIzMmZkMjk1M2ViMDBmNjk0YjY2N2U3Nzk2NzA0ZjU5NzRjZWE0NTIuCgkgIFRoaXMgd2FzIGFscmVhZHkgZml4ZWQuCgoyMDEyLTA1LTI0IDEzOjA4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHBvc3NpYmxlIGRhdGEgY29ycnVwdGlvbiBpbiByaW5nIGJ1ZmZlciBtb2RlIHdoZW4gc2Vla2luZwoJICBGaXggcmFjZSB0aGF0IGNvdWxkIGNhdXNlIGRhdGEgY29ycnVwdGlvbiB3aGVuIHNlZWtpbmcgaW4gcmluZyBidWZmZXIKCSAgbW9kZS4KCSAgSW4gcGVyZm9ybV9zZWVrX3RvX29mZnNldCgpLCBjYWxsZWQgZnJvbSB0aGUgZGVtdXhlcidzIHB1bGxfcmFuZ2UKCSAgcmVxdWVzdCwgd2UgZHJvcCB0aGUgbG9jaywgdGVsbCB1cHN0cmVhbSAodXN1YWxseSBhIGh0dHAgc291cmNlKQoJICB0byBzZWVrIHRvIGEgZGlmZmVyZW50IG9mZnNldCwgdGhlbiByZS1hY3F1aXJlIHRoZSBsb2NrIGJlZm9yZSB3ZQoJICBkbyB0aGluZ3MgdG8gdGhlIHJhbmdlcy4gSG93ZXZlciwgYmV0d2VlbiB1cyBzZW5kaW5nIHRoZSBzZWVrIGV2ZW50CgkgIGFuZCByZS1hY3F1aXJpbmcgdGhlIGxvY2ssIHRoZSBzb3VyY2UgdGhyZWFkIG1pZ2h0IGFscmVhZHkgaGF2ZSBwdXNoZWQKCSAgc29tZSBkYXRhIGFuZCBtb3ZlZCBhbG9uZyB0aGUgcmFuZ2UncyB3cml0aW5nX3BvcyBiZXlvbmQgdGhlIHNlZWsKCSAgb2Zmc2V0LiBJbiB0aGF0IGNhc2Ugd2UgZG9uJ3Qgd2FudCB0byBzZXQgdGhlIHdyaXRpbmcgcG9zaXRpb24gYmFjawoJICB0byB0aGUgcmVxdWVzdGVkIHNlZWsgcG9zaXRpb24sIGFzIGl0IHdvdWxkIGNhdXNlIGRhdGEgdG8gYmUgd3JpdHRlbgoJICB0byB0aGUgd3Jvbmcgb2Zmc2V0IGluIHRoZSBmaWxlIG9yIHJpbmcgYnVmZmVyLgoJICBSZXByb2R1Y2libGUgZG9pbmcgc2Vlay1lbXVsYXRlZCBmYXN0LWZvcndhcmQvYmFja3dhcmQgb24gMDA2NjUzLgoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDUtMjQgMTM6MDY6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBmaXggYnVmZmVyIGxlYWsgaW4gcXVldWUyIHVuaXQgdGVzdAoKMjAxMi0wOS0xMiAxMjoyMzoyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogcmVtb3ZlIGdsaWIgZGVwcmVjYXRpb24gY29tcGF0aWJpbGl0eSB0cmlja2VyeQoKMjAxMi0wOS0xMiAxMjoyMjo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgY2hlY2s6IHBvcnQgdG8gdGhlIG5ldyBHTGliIHRocmVhZCBBUEkKCjIwMTItMDktMTIgMTE6NTI6MjUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogcG9ydCB0byBuZXcgR0xpYiB0aHJlYWQgQVBJCgoyMDEyLTA5LTEyIDExOjQ5OjU1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIHRlc3RzOiBiZW5jaG1hcmtzOiBhbGlnbiBlcnJvciBtZXNzYWdlIHdpdGggY29kZQoKMjAxMi0wOS0xMSAxOTo0OTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogZXhwb3NlIGdzdF9wYWRfbW9kZV9nZXRfbmFtZSgpIGFuZCB1c2UgaXQgaW4gYmFzZXBhcnNlCgoyMDEyLTA5LTExIDEzOjIyOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogdXBkYXRlIGZvciBnc3QtZmZtcGVnIC0+IGdzdC1saWJhdgoJICBOb3cgdGhhdCB3ZSBoYXZlIGEgZ3N0LWxpYmF2IGdpdCByZXBvc2l0b3J5IChzeW1saW5rZWQgdG8gZ3N0LWZmbXBlZykuCgoyMDEyLTA5LTExIDE3OjI3OjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRqdXN0IHRlc3QgbG9naWMgZm9yIHNjaGVkdWxpbmcgbW9kZSB3aXRoIGZsYWdTCgoyMDEyLTA5LTExIDE2OjM5OjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBhZGQgY29udmVuaWVuY2UgQVBJIHRvIHF1ZXJ5IGZvciBzY2hlZHVsaW5nIG1vZGUgYW5kIGZsYWdzCgoyMDEyLTA5LTExIDE2OjI5OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50czogcmVtb3ZlIFNUUkVBTV9DT05GSUcKCSAgV2Ugd29uJ3QgYmUgYWJsZSB0byBpbXBsZW1lbnQgdGhpcyBzbyBpdCdzIGJldHRlciB0byBtb3ZlIGl0IG91dCBvZiB0aGUgd2F5LgoKMjAxMi0wOS0xMSAxNjowOTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGNsZWFuIHVwIGhlYWRlciBpbmRlbnRhdGlvbgoKMjAxMi0wOS0xMSAxMTozNDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYWxsb3cgTlVMTCBzdHJlYW1faWQgYWxzbyB3aGVuIDAgc3JjcGFkcwoJICBXZSB1c3VhbGx5IGZpcnN0IGNyZWF0ZSB0aGUgc3RyZWFtX2lkIGZvciB0aGUgc3RyZWFtX3N0YXJ0IGV2ZW50IGFuZCB0aGVuIGFkZAoJICB0aGUgcGFkIHRvIHRoZSBlbGVtZW50LiBUaGlzIG1lYW5zIHRoYXQgdGhpcyBmdW5jdGlvbnMgc2hvdWxkIHdvcmsgd2hlbiB0aGVyZQoJICBhcmUgbm8gcGFkcyBvbiB0aGUgZWxlbWVudCB5ZXQuCgoyMDEyLTA5LTEwIDIxOjM5OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGJhc2VwYXJzZSwgdHlwZWZpbmQ6IG9ubHkgYWN0aXZhdGUgaW4gcHVsbCBtb2RlIGlmIHVwc3RyZWFtIGlzIHNlZWthYmxlCgkgIFVwc3RyZWFtIG1pZ2h0IHN1cHBvcnQgcHVsbCBtb2RlLCBidXQgb25seSBzZXF1ZW50aWFsIHB1bGxzLAoJICB3aGljaCBpc24ndCBnb25uYSBkbyBtdWNoIGZvciB1cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDkyNwoKMjAxMi0wOS0xMCAyMDozMDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmctdG8tMC4xMS50eHQ6IHNvbWUgbWlub3IgZml4ZXMKCjIwMTItMDktMTAgMTY6NTI6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBzYW1wbGU6IGZyZWUgaW5mbyBzdHJ1Y3R1cmUgd2l0aCBzYW1wbGUgaWYgdGhlcmUgaXMgb25lIGFuZCBmaXggY29weSB3aXRoIE5VTEwgaW5mbyBzdHJ1Y3R1cmUKCjIwMTItMDktMTAgMTI6MjA6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBwYWRkaW5nIHRvIEdzdE1hcEluZm8KCjIwMTItMDktMTAgMTI6MTI6MDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGxpYnM6IGFkanVzdCBjb21tZW50IHN0eWxlCgoyMDEyLTA5LTEwIDEyOjExOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3Q6IHJlbW92ZSBzb21lIGRlZnVuY3QgY29tbWVudGVkIGNvZGUKCjIwMTItMDktMTAgMTI6MDA6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBpbXByb3ZlIHBvcnRpbmcgZG9jCgoyMDEyLTA5LTEwIDEwOjA4OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJICB0ZXN0czogZGlzYWJsZSBkZXByZWNhdGlvbiB3YXJuaW5ncwoJICBkZWZpbmUgR0xJQl9ESVNBQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTIGVhcmxpZXIgc28gdGhhdCBpdCBpcyBkZWZpbmVkIGJlZm9yZQoJICB0aGUgZ2xpYiBoZWFkZXJzIGFyZSBsb2FkZWQgb3IgZWxzZSB3ZSB0cmlwIG92ZXIgdGhlIEdWYWx1ZUFycmF5IGRlcHJlY2F0aW9ucyBpbgoJICBnc3QtaW5zcGVjdC5jLgoKMjAxMi0wOS0wNyAwMTowMjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZml4IGRpcmVjdCBjb250cm9sIGJpbmRpbmcgZG91YmxlIC0+IGludCBjb252ZXJzaW9uCgkgIFJvdW5kIHByb3Blcmx5IHRvIG5lYXJlc3QgaW50ZWdlci4gRml4ZXMgY29udHJvbGxlcgoJICB1bml0IHRlc3Qgb24gUG93ZXJQQyBHNC4KCjIwMTItMDktMDYgMTU6MDY6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIGV4YW1wbGVzOiBmaXggYnVzL2ZkIGxlYWsgaW4gaGVsbG8gd29ybGQgZXhhbXBsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzNDcwCgoyMDEyLTA5LTA1IDE5OjU1OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC1lbGVtZW50LWNoZWNrLm00OgoJICBnc3QtZWxlbWVudC1jaGVjay5tNDogZml4IGFjdGlvbi1pZi1mb3VuZCBhbmQgbm90LWZvdW5kIGludm9jYXRpb24KCSAgQXJndW1lbnRzIGdvdCBzaGlmdGVkIGJhY2sgYnkgb25lLgoKMjAxMi0wOS0wNSAxNTozNzoxMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBoYW5kbGUgR0FQIGV2ZW50CgoyMDEyLTA5LTA0IDEyOjEzOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiB3YWl0X2VvcyAtPiB3YWl0X2V2ZW50CgkgIEZpeCBhIEZJWE1FLiBOb3cgd2UgY2FuIGFsc28gcGFzcyB0aGUgR0FQIGV2ZW50IHRvIHRoZSBzdWJjbGFzcy4KCjIwMTItMDktMDMgMTg6NDU6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogdXBkYXRlIE1ha2VmaWxlLmFtIGFuZHJvaWQgYml0cyBpbiBjb250cm9sbGVyIGV4YW1wbGUKCSAgU2hvdWxkIGZpeCBidWlsZCBmYWlsdXJlIHJlcG9ydGVkIG9uIElSQy4KCjIwMTItMDgtMzAgMTk6MTU6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2hlY2sgc3RpY2t5IGV2ZW50cyBhbHNvIGFmdGVyIHBhZCBibG9jawoJICBSZWNoZWNrIGZvciBzdGlja3kgZXZlbnRzIGFmdGVyIGRvaW5nIGEgcGFkIGJsb2NrIGJlY2F1c2UgdGhlIHBhZCBibG9jayBjb3VsZAoJICBoYXZlIGNhdXNlZCBhIHJlbGluayBhbmQgdGhlbiB3ZSBuZWVkIHRvIHJlc2VuZCB0aGUgZXZlbnRzIHRvIHRoZSBuZXdseSBsaW5rZWQKCSAgcGFkLgoJICBGaXhlcyB0aGluZ3MgbGlrZSBzd2l0Y2hpbmcgb2YgdmlzdWFsaXNhdGlvbnMuCgoyMDEyLTA5LTAyIDAyOjA0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgZm9yIGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiAtPiBfZHVyYXRpb25fY2hhbmdlZCgpCgoyMDEyLTA5LTAyIDAxOjE3OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IHJlbmFtZSBHU1RfTUVTU0FHRV9EVVJBVElPTiAtPiBHU1RfTUVTU0FHRV9EVVJBVElPTl9DSEFOR0VECgkgIFRoZSBkdXJhdGlvbiBzaG91bGQgYmUgcmUtcXVlcmllZCB2aWEgYSBxdWVyeSB1c2luZyB0aGUKCSAgbm9ybWFsIHBhdGgsIHdlIGRvbid0IHdhbnQgYXBwbGljYXRpb25zIHRvIHVzZSB0aGUgdmFsdWUKCSAgZnJvbSB0aGUgbWVzc2FnZSBpdHNlbGYsIHNpbmNlIGl0IG1pZ2h0IG5vIG1hdGNoIHdoYXQgYQoJICBkdXJhdGlvbiBxdWVyeSBkb25lIGZyb20gdGhlIHNpbmsgdXBzdHJlYW0gbWlnaHQgeWllbGQuCgkgIEFsc28gZGlzYWJsZXMgZHVyYXRpb24gY2FjaGluZyBpbiBHc3RCaW4uIEl0IHNob3VsZCBiZQoJICBhZGRlZCBiYWNrIGFnYWluIGF0IHNvbWUgcG9pbnQuCgoyMDEyLTA5LTAxIDIzOjU0OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGFkZCByZW1pbmRlciB0byByZW1vdmUgR1NUX1VOU1RBQkxFX0FQSSBzdHVmZiBiZWZvcmUgMS4wLjAKCjIwMTItMDktMDEgMTg6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiAuZ2l0aWdub3JlOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNDoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkgIGdzdC1lbGVtZW50LWNoZWNrLm00OiByZW5hbWUgQU1fR1NUX0VMRU1FTlRfQ0hFQ0sgdG8gR1NUX0VMRU1FTlRfQ0hFQ0sKCSAgQW5kIGFsbG93IHBhc3Npbmcgb2YgYSBtaW5pbXVtIHZlcnNpb24gKGlmIG5vdCBuZWVkZWQsIHBhc3MgMS4wKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk2OAoKMjAxMi0wOS0wMSAxNzo1MDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkgIHRlc3RzOiBhZGQgY2hlY2sgZm9yIGdzdC1pbnNwZWN0IC0tZXhpc3RzIGZ1bmN0aW9uYWxpdHkKCjIwMTItMDktMDEgMTc6NDc6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogYWRkIC0tZXhpc3RzIGFuZCAtLWF0bGVhc3QtdmVyc2lvbiBvcHRpb24gdG8gZ3N0LWluc3BlY3QKCSAgRm9yIGNoZWNraW5nIGlmIGFuIGVsZW1lbnQgZXhpc3RzIHdpdGggYSBnaXZlbiBtaW5pbXVtIHZlcnNpb24uCgkgIFdpbGwgdXNlIHRoYXQgaW4gb3VyIG5ldyBHU1RfRUxFTUVOVF9DSEVDSyBtNCBtYWNyby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk2OAoKMjAxMi0wOS0wMSAxNzozMjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBkaXNhYmxlIHZlcnNpb24gbWFuZ2xpbmcgZm9yIHBvc3QtMS4wLjAgcmVsZWFzZQoJICBKdXN0IGluIGNhc2Ugd2UgZG9uJ3QgZ3JlcCBmb3IgRklYTUUgMS4wIGJlZm9yZSB0aGUgcmVsZWFzZS4KCjIwMTItMDgtMzEgMTE6MzE6NDUgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE1ha2UgR0FQIGV2ZW50cyBhY3R1YWxseSB0cmlnZ2VyIHByZXJvbGwKCSAgU2xpZ2h0bHkgaGFja3kgYXBwcm9hY2ggbmVlZGluZyByZWZpbmVtZW50CgoyMDEyLTA4LTMxIDA2OjI1OjIyIC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogbWFrZSBzb21lIGRlYnVnIHN0YXRlbWVudHMgbW9yZSB2ZXJib3NlCgoyMDEyLTA4LTMxIDA2OjIzOjUzIC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGdob3N0cGFkOiBNYWtlIHNvbWUgZGVidWdnaW5nIG1vcmUgdmVyYm9zZQoJICBBbHNvLCByZW1vdmUgYW4gdW5uZWNlc3NhcnkgI2luY2x1ZGUgaW4gaW5wdXQtc2VsZWN0b3IKCjIwMTItMDgtMjggMTU6NDQ6NDggLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEdzdFNlZ21lbnQ6IEZpeCBkb2MgZGVzY3JpcHRpb24gc3RyaW5nIGxhc3Rfc3RvcC0+cG9zaXRpb24KCjIwMTItMDgtMzAgMTk6NDc6NTcgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjbG9jayBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5OTcKCjIwMTItMDgtMjkgMjI6NTc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IG91dHB1dCBnc3QtaW5zcGVjdCBlcnJvcnMgdG8gc3RkZXJyCgoyMDEyLTA4LTI4IDA3OjM5OjUwICswMjAwICBBbGJhbiBCcm93YWV5cyA8cHJhaGFsQHlhaG9vLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGNyYXNoIHNlcmlhbGlzaW5nIGEgMCBmbGFncyB2YWx1ZSB3aGVuIHRoZXJlJ3Mgbm8gbmFtZSBmb3IgaXQKCSAgRml4ZXMgc2VnZmF1bHQgd2hlbiBkb2luZyBnc3QtbGF1bmNoLTEuMCAtdiAtbSBjYW1lcmFiaW4KCSAgKGVuY29kZWJpbiBub3RpZmllcyBhIDAgdmFsdWUgZm9yIGl0cyAiZmxhZyIgcHJvcGVydHkpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTU4CgoyMDEyLTA4LTI0IDIzOjE0OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGxvZyBwZXJmb3JtYW5jZSB3YXJuaW5nIGRlYnVnIG1lc3NhZ2UgaWYgZ2xpYiBlbXVsYXRlcyBhdG9taWMgb3BzCgoyMDEyLTA4LTIzIDEzOjUxOjI3ICswMTAwICBMaW9uZWwgTGFuZHdlcmxpbiA8bGxhbmR3ZXJsaW5AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IHVzZSBjb25maWd1cmUtZGV0ZWN0ZWQgb3IgZXh0ZXJuYWxseSBwcm92aWRlZCBnbGliLW1rZW51bXMKCSAgVG8gZWFzZSBjcm9zcy1jb21waWxhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzYyMAoKMjAxMi0wOC0yMiAxMzoyOTozNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjY4YWNlZSB0byA0Zjk2MmY3CgoyMDEyLTA4LTIyIDEzOjE0OjU2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgZ3RrLWRvYyByZXEgdG8gMS4xMiAobWFyLTIwMDkpCgkgIFRoaXMgYWxsb3dzIHVzIHRvIGUuZy4gdW5jb25kaXRpb25hbGx5IHVzZSBndGtkb2MtcmViYXNlLgoKMjAxMi0wOC0yMSAxMzozMDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgX21ha2Vfd3JpdGFibGUKCjIwMTItMDgtMjEgMDA6MDM6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIHNvbWUgbWVkaWEgdHlwZSBjaGFuZ2VzIGluIHBvcnRpbmctdG8tMC4xMS50eHQgZG9jCgoyMDEyLTA4LTIwIDEzOjUxOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1pbm9yIHVwZGF0ZSB0byBwb3J0aW5nIGRvYyBmb3IgY2hpbGQgcHJveHkgbG9va3VwIG1ldGhvZAoJICBBbmQgYSB0eXBvIGZpeC4KCjIwMTItMDgtMjAgMTE6MzE6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogbWFrZSBhIGNvcHkgd2l0aCB0aGUgc2FtZSBhbGlnbm1lbnQKCSAgV2hlbiBtYWtpbmcgYSBjb3B5IG9mIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZyb20gdGhlIGRlZmF1bHQgbWVtb3J5IGFsbG9jYXRvciwKCSAgbWFrZSBzdXJlIHRoZSBuZXcgY29weSBoYXMgdGhlIHNhbWUgYWxpZ25tZW50IGFzIHRoZSBvcmlnaW5hbCBtZW1vcnkuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzk2CgoyMDEyLTA4LTE5IDE3OjUxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIHNlZWtpbmcgaW4gREVGQVVMVCBmb3JtYXQgd29yayBpZiB0aGUgc3ViY2xhc3MgY2FuIGNvbnZlcnQgZm9yIHVzCgkgIFdlIG9ubHkgZGVhbCBpbiBUSU1FIGZvcm1hdCBvdXJzZWx2ZXMsIGJ1dCBpZiB0aGUgc3ViY2xhc3MgY2FuIGhhbmRsZQoJICBjb252ZXJ0aW5nIG90aGVyIGZvcm1hdHMgaW50byBUSU1FIGZvcm1hdCwgd2UgY2FuIHN1cHBvcnQgdGhhdCB0b28uCgkgIEZpeGVzIHNlZWtpbmcgaW4gREVGQVVMVCAoc2FtcGxlKSBmb3JtYXQgd2l0aCBmbGFjcGFyc2UsCgkgIGFuZCB0aGUgZmxhY2RlYyB1bml0IHRlc3QuCgoyMDEyLTA4LTE4IDIxOjQyOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogbWlub3IgZml4ZXMgdG8gZ3N0LWxhdW5jaCBtYW4gcGFnZQoKMjAxMi0wOC0xNyAxMjoyMzo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBpbXBsZW1lbnQgY2hpbGRfcHJveHkgc3VwcG9ydAoJICBFbGVtZW50cyBzdWNoIGFzIHRoZSBHc3RJaXJFcXVhbGl6ZXJOQmFuZHMgd291bGQgc28gZmFyIG5vdCBzdG9yZSB0aGUgcHJvcGVydGllcwoJICBvZiB0aGVpciBjaGlsZHJlbi4gTm93IHdlIGFsc28gZ3JhYiB0aGUgcHJvcGVydGllcyBvZiBjaGlsZCBlbGVtZW50cyBhbmQgdHJ5IHRvCgkgIHJlc3RvcmUgdGhlbS4KCjIwMTItMDgtMTQgMTg6NDQ6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFdhaXQgZm9yIG90aGVyIHN0cmVhbXMgdG8gYWR2YW5jZSBvbiB1bnNlbGVjdGVkIHBhZHMKCSAgT3RoZXJ3aXNlIHdlIGVuZCB1cCBkcm9wcGluZyBhIGxvdCBvZiBkYXRhIGluIHRoZSBjYXNlIHdoZXJlIGRhdGEgc3RhcnRzCgkgIGFycml2aW5nIG9uIHRoZSBub24tc2VsZWN0ZWQgcGFkLCByZXN1bHRpbmcgaW4gYmlnIGdhcHMgaW4gc3RyZWFtIHN3aXRjaGluZwoKMjAxMi0wOC0xNCAxODo0Mzo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTW9yZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEyLTA4LTE0IDE4OjQyOjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBmb3J3YXJkIHN0cmVhbS1zdGFydCBzdGlja3kgZXZlbnRzCgkgIE9ubHkgb25lIFNUUkVBTV9TVEFSVCBldmVudCBzaG91bGQgYmUgbGV0IHRocm91Z2gsIGVsc2UgaXQgd2lsbAoJICBjb25mdXNlIGRvd25zdHJlYW0gZWxlbWVudHMgdGhhdCB0aGluayBhIG5ldyBzdHJlYW0gaXMgc3RhcnRpbmcKCSAgd2hlcmVhcyBpbiBmYWN0IHdlIGFyZSBqdXN0IHN3aXRjaGluZyB0byBhIGRpZmZlcmVudCBpbnB1dC4KCSAgSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50IHRvIGxldCB0aGVtIHRocm91Z2ggYnV0IHdpdGggdGhlIHNhbWUKCSAgc2VxdWVuY2UgbnVtYmVyLgoKMjAxMi0wOC0xNCAxNTo0NjozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRvY3M6IEFkZCBuZXcgYmFzZXNyYy9iYXNldHJhbnNmb3JtIEFQSSB0byB0aGUgZG9jcwoKMjAxMi0wOC0wNyAxNzozODo1MyArMDIwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGdldHRlcnMgZm9yIHBvb2wgYW5kIGFsbG9jYXRvcgoJICBTb21ldGltZXMgYSB0cmFuc2Zvcm0gZmlsdGVyIHdvdWxkIG5lZWQgdGhlIGJ1ZmZlciBwb29sIG9yIHRoZSBtZW1vcnkKCSAgYWxsb2NhdG9yIG5lZ290aWF0ZWQgYnkgdGhlIGJhc2UgY2xhc3MsIGZvciBleGFtcGxlLCBmb3IgcXVlcnlpbmcgZGlmZmVyZW50CgkgIHBhcmFtZXRlcnMsIHN1Y2ggYXMgYSBiaWdnZXIgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYWxsb2NhdGUgYnkgdGhlIGJ1ZmZlciBwb29sLgoJICBUaGlzIHBhdGNoIGV4cG9zZSBhIHR3byBnZXR0ZXJzIGFjY2Vzc29yczogb25lIGZvciB0aGUgYnVmZmVyIHBvb2wgYW5kIHRoZQoJICBvdGhlciBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IuCgoyMDEyLTA4LTA3IDE3OjM1OjQ4ICswMjAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogZ2V0dGVycyBmb3IgcG9vbCBhbmQgYWxsb2NhdG9yCgkgIFNvbWV0aW1lcyB0aGUgc291cmNlcyB3b3VsZCB1c2UgdGhlIGJ1ZmZlciBwb29sIG9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yIGZvcgoJICBzb21ldGhpbmcgZWxzZSB0aGFuIGp1c3QgYWxsb2NhdGluZyBvdXRwdXQgYnVmZmVyczsgZm9yIGV4YW1wbGUsIHF1ZXJ5aW5nIGZvcgoJICBkaWZmZXJlbnQgcGFyYW1ldGVycywgc3VjaCBhcyBhIGJpZ2dlciBudW1iZXIgb2YgYnVmZmVycyB0byBhbGxvY2F0ZSBieSB0aGUKCSAgcG9vbC4KCSAgVGhpcyBwYXRjaCBleHBvc2UgYSB0d28gZ2V0dGVycyBhY2Nlc3NvcnM6IG9uZSBmb3IgdGhlIGJ1ZmZlciBwb29sIGFuZCB0aGUKCSAgb3RoZXIgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yLgoKMjAxMi0wOC0xNCAwMDozOToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgc29tZSB1bnVzZWQgYW5kIGluIHRoZWlyIGN1cnJlbnQgZm9ybSBwb2ludGxlc3MgQVBJCgkgIE5vdCBzbyB1c2VmdWw6IGp1c3QgYWRkcy9yZWFkcyBzdHVmZiBmcm9tIGFuIGludGVybmFsIEdMaXN0IHdpdGhvdXQKCSAgYWN0dWFsbHkgZG9pbmcgYW55dGhpbmcgd2l0aCB0aG9zZSBwYXRocywgc28gcmVtb3ZlIGZvciBub3c6CgkgIGdzdF9yZWdpc3RyeV9hZGRfcGF0aAoJICBnc3RfcmVnaXN0cnlfZ2V0X3BhdGhfbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4ODQxCgoyMDEyLTA4LTEyIDEzOjI3OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCB1cCBmb3IgZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCgpIG9ubHkgd29ya2luZyBvbiBjaGlsZCBwcm94eSBpbnRlcmZhY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE2ODEKCjIwMTItMDgtMTIgMTM6MjQ6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBtYWtlIGdzdF9jaGlsZF9wcm94eV9sb29rdXAoKSBhIHByb3BlciBHc3RDaGlsZFByb3h5IG1ldGhvZAoJICBObyBsb25nZXIgYWNjZXB0IGFueSBvbGQgR09iamVjdHMuIFRoaXMgbWFrZXMgdGhpbmdzIG5pY2VyIGZvcgoJICBiaW5kaW5ncy4gSWYgYSB1dGlsaXR5IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBib3RoIG5pY2VseQoJICBpcyBkZWVtZWQgd29ydGh3aGlsZSwgd2UgY2FuIHN0aWxsIGFkZCBvbmUgdG8gZ3N0dXRpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE2ODEKCjIwMTItMDgtMTMgMDA6MDE6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IHdoZW4gc2VyaWFsaXNpbmcgYXJyYXlzIG9yIGxpc3RzLCBoYW5kbGUgdHlwZXMgd2UgY2FuJ3Qgc2VyaWFsaXNlIG1vcmUgZ3JhY2VmdWxseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMzIyCgoyMDEyLTA4LTEyIDE5OjM5OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogYWRkIHNvbWUgbW9yZSBkZXRhaWxzIHRvIGZhaWx1cmUgbWVzc2FnZXMKCSAgTWVudGlvbiBwYWQgd2hlcmUgdGhlIHByb2JsZW0gb2NjdXJlZCwgYW5kIHRoZSBldmVudCBuYW1lLgoKMjAxMi0wOC0xMiAxODozNjowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBmaXggY29sbGVjdHBhZHMgdGVzdAoJICBBZnRlciBhbiBFT1Mgd2UgbXVzdCBzZW5kIGEgRkxVU0hfU1RPUCBldmVudCBpZgoJICB3ZSB3YW50IHRvIHNlbmQgZGF0YSBhZ2Fpbi4KCjIwMTItMDgtMTIgMTg6MzE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBsZWFrIGluIGdzdF9ldmVudF9wYXJzZV9zdHJlYW1fc3RhcnQoKQoJICBnc3Rfc3RydWN0dXJlX2lkX2dldCgpIHdpbGwgbWFrZSBhIGNvcHkgb2YgdGhlIHN0cmluZwoJICBleHRyYWN0ZWQsIGJ1dCB3ZSdyZSBhc3NpZ25pbmcgaXQgdG8gYSBjb25zdCBnY2hhciAqLgoKMjAxMi0wOC0xMiAxNjo0MDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogbWFrZSBwaXBlbGluZSB0ZXN0IHZhbGdyaW5kIGNsZWFuCgoyMDEyLTA4LTEyIDE2OjM3OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogZml4IHBpcGVsaW5lIHVuaXQgdGVzdAoJICBXaGljaCB3YXMgZGlzYWJsZWQgYmVjYXVzZSBpdCBmYWlsZWQuCgoyMDEyLTA4LTEyIDE1OjQ4OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGZpeCB1bnRlcm1pbmF0ZWQgcXVvdGVkIHN0cmluZyBpbiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2gKCjIwMTItMDgtMTIgMDA6MTI6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIGdzdF92aWRlb19mb3JtYXRfcGFyc2VfY2FwcygpIGluIHBvcnRpbmcgZ3VpZGUKCjIwMTItMDgtMTEgMjI6MTk6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmaXggdXAgZG9jcyBhIGJpdAoKMjAxMi0wOC0xMSAyMjoxODoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCB1cCBnLWkgYW5ub3RhdGlvbiBmb3IgX2xvb2t1cCgpIHBhcmFtc3BlYyByZXR1cm4gdmFsdWUKCSAgTm8gcmVmIGlzIHJldHVybmVkIGhlcmUuCgoyMDEyLTA4LTExIDIyOjE3OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgYnVmZmVyIGZ1bmN0aW9ucwoKMjAxMi0wOC0xMCAyMjo1ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHJldmVyc2UgcGxheWJhY2sgd2l0aCB1cHN0cmVhbSBkZW11eGVycyB0aGF0IHN1cHBvcnQgaXQKCSAgRG9uJ3QganVzdCByZXR1cm4gRkFMU0UgZm9yIHNlZWsgZXZlbnRzIHdpdGggbmVnYXRpdmUgcmF0ZXMgd2hlbgoJICBvcGVyYXRpbmcgaW4gcHVzaCBtb2RlLiBBbiB1cHN0cmVhbSBkZW11eGVyIG1heSBzdXBwb3J0IHRoaXMganVzdAoJICBmaW5lLCBzbyBpZiB3ZSdyZSBub3Qgb3BlcmF0aW5nIGluIHB1bGwgbW9kZSBhbHdheXMgY2hlY2sgdXBzdHJlYW0KCSAgZmlyc3QgaWYgaXQgY2FuIGhhbmRsZSB0aGUgc2VlayBldmVudC4gVGhpcyBmaXhlcyByZXZlcnNlIHBsYXliYWNrCgkgIHdoZXJlIHRoZSB1cHN0cmVhbSBkZW11eGVyIHN1cHBvcnRzIGl0IChlLmcuIHdpdGggcXRkZW11eCkuIFRoZQoJICBzYW1lIGNvZGUgd291bGQgd29yayBmaW5lIGluIDAuMTAsIGJlY2F1c2UgYmFzZXBhcnNlIHdpbGwganVzdAoJICBjYWxsIHRoZSBkZWZhdWx0IHBhZCBldmVudCBoYW5kbGVyIGlmIEZBTFNFIHdhcyByZXR1cm5lZCBmcm9tIHRoZQoJICBiYXNlcGFyc2UgZXZlbnQgaGFuZGxlciwgYW5kIHRoZSBwYWQgZXZlbnQgaGFuZGxlciB3aWxsIGp1c3QKCSAgZm9yd2FyZCBpdCB1cHN0cmVhbS4gSW4gMC4xMSB0aGUgYmFzZWNsYXNzIG9yIHN1YmNsYXNzIGlzCgkgIHJlc3BvbnNpYmxlIGZvciBjaGFpbmluZyB1cCB0byB0aGUgcGFyZW50IGNsYXNzIG9yIGZvcndhcmRpbmcgdGhlCgkgIGV2ZW50IHVwc3RyZWFtIGluIGFueSBjYXNlLgoJICBEaXNhYmxlIHJldmVyc2UgcGxheWJhY2sgaW4gcHVsbCBtb2RlIGZvciBub3csIHRoZXJlIHNlZW1zIHRvCgkgIGJlIHNvbWV0aGluZyBnb2luZyB3cm9uZyB3aXRoIHRoZSBzZWdtZW50IGNvbmZpZ3VyYXRpb24gaW4gdGhhdAoJICBjYXNlLgoKMjAxMi0wOC0wNCAxMTo0ODo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvIG5vdCBlcnJvciBvbiBub3QtbmVnb3RpYXRlZAoJICBEb24ndCBlcnJvciBvdXQgdG9vIGVhcmx5IGFuZCBsZXQgdXBzdHJlYW0gZGVjaWRlIGlmIGl0IGNhbgoJICB3b3JrYXJvdW5kIGEgbm90LW5lZ290aWF0ZWQgcHJvYmxlbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTk4CgoyMDEyLTA4LTA0IDExOjQ4OjEzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0cnkgb24gbm90LW5lZ290aWF0ZSBpZiBhIHJlY29uZmlndXJlIGlzIHBlbmRpbmcKCSAgQmVmb3JlIGVycm9yaW5nIG91dCBvbiBub3QtbmVnb3RpYXRlZCByZXR1cm5zLCBjaGVjayBpZiB0aGUgcGFkCgkgIGhhcyB0aGUgcmVjb25maWd1cmUgZmxhZyBzZXQgYW5kIHJldHJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTk4CgoyMDEyLTA4LTA0IDExOjQyOjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGdzdF9wYWRfbmVlZHNfcmVjb25maWd1cmUKCSAgQWRkIGFuIGFsdGVybmF0aXZlIHZlcnNpb24gb2YgZ3N0X3BhZF9jaGVja19yZWNvbmZpZ3VyZSB0aGF0IGRvZXNuJ3QKCSAgY2xlYXIgdGhlIHJlY29uZmlndXJlIGZsYWcuCgkgIFVzZWZ1bCBmb3IgaW5jcmVhc2luZyBlcnJvciByZXNpbGllbmNlIHdpdGhvdXQgZHVwbGljYXRpbmcgdGhlCgkgIHJlY29uZmlndXJlIGNvZGUgaW4gcGFkIHRhc2sgZnVuY3Rpb25zLgoJICBBUEk6IGdzdF9wYWRfbmVlZHNfcmVjb25maWd1cmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE5OAoKMjAxMi0wNy0yOSAxNTo0NDo0NSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIEdTVF9QQURfTElOS19DSEVDS19ERUZBVUxUIHRvIEdzdFBhZExpbmtDaGVjawoJICBUaGlzIGFsbG93cyBpbnRyb3NwZWN0aW9uLWJhc2VkIGJpbmRpbmdzIHRvIGFjY2VzcwoJICBHc3QuUGFkTGlua0NoZWNrLkRFRkFVTFQgaW5zdGVhZCBvZgoJICBHc3QuUEFEX0xJTktfQ0hFQ0tfREVGQVVMVC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wNy0yOSAxNDo1Nzo0MSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbWFyayBnc3RfYnVmZmVyX3dyYXBwZWQqIGRhdGEgYXMgYXJyYXkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wNy0yNCAxMzoyNjowMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSAgaW50cm9zcGVjdGlvbjogZml4IHNvbWUgd2FybmluZ3MgZ2VuZXJhdGVkIGJ5IGctaXItc2Nhbm5lci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wNy0zMCAyMTo0NjoxOCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBjb252ZXJ0IGdzdF9idWZmZXJfKiBtYWNyb3MgdG8gZnVuY3Rpb25zCgkgIEdPYmplY3QgSW50cm9zcGVjdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG1hY3Jvcy4KCSAgVGhpcyBpcyBuZWVkZWQgZm9yIGJpbmRpbmdzLiBXZSBjYW4gc3RpbGwgYWRkIGJhY2sKCSAgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlvbnMgYWdhaW4gbGF0ZXIgaWYgd2UgdGhpbmsKCSAgaXQncyB3b3J0aCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wOC0xMCAxMzo1MDo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGZpeCBwcmludGYgZm9ybWF0IGluIGRlYnVnIG1lc3NhZ2UKCjIwMTItMDgtMTAgMTI6MjM6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggbWF4X2J1ZmZlcnMgaGFuZGxpbmcKCSAgV2hlbiBtYXhfYnVmZmVycyA+IDAgYW5kIHRoZSBwb29sIGlzIGVtcHR5LCBhY3R1YWxseSB0cnkgdG8gYWxsb2NhdGUgbW9yZQoJICBidWZmZXJzIHVwIHRvIHRoZSBtYXhfYnVmZmVycyBsaW1pdC4KCSAgV2UgbmVlZCB0byBhZGQgYSBjb3VudGVyIGZvciB0aGlzIHRvIGNvdW50IGhvdyBtYW55IGJ1ZmZlcnMgd2UgYWxsb2NhdGVkIGFuZAoJICBjaGVjayB0aGlzIGFnYWluc3QgdGhlIG1heF9idWZmZXJzIGxpbWl0LgoJICBSZW9yZ2FuaXNlIGFuZCBjbGVhbiB1cCBzb21lIGNvZGUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExNTMKCjIwMTItMDgtMTAgMDk6MTk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IHNpbXBsaWZ5IGJ5IHVzaW5nIGdfc29ja2V0X2NvbmRpdGlvbl90aW1lZF93YWl0KCkKCSAgTm8gbmVlZCB0byB1c2UgYSBjdXN0b20gbWFpbiBjb250ZXh0IGFuZCBjdXN0b20gdGltZW91dCBzb3VyY2VzLAoJICBqdXN0IHVzZSBnX3NvY2tldF9jb25kaXRpb25fdGltZWRfd2FpdCgpIGluc3RlYWQsIHdoaWNoIHdhcyBhZGRlZAoJICBmb3IgZXhhY3RseSB0aGlzIGNhc2UuCgkgIEFsc28gc2VlbXMgdG8gaGVscCB3aXRoIHRoZSB1bml0IHRlc3QgZGVhZGxvY2tpbmcgd2l0aCBnbGliIDIuMzMueAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNTc1CgoyMDEyLTA4LTA5IDE5OjE1OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBmaXggZG91YmxlIHN0cmluZyBlc2NhcGluZyBpbiBnc3Rfb2JqZWN0X2RlZmF1bHRfZGVlcF9ub3RpZnkoKQoJICBNYWtlIG91dHB1dCBvZiBnc3QtbGF1bmNoIC12IHJlYWRhYmxlIGFnYWluLgoJICBsYXN0LW1lc3NhZ2UgPSAiZXZlbnRcIFwgXCBcKlwqXCpcKlwqXCpcKlwgXChmYWtlc2luazA6c2lua1wpXCBFXCBcKHR5cGU6XCB0YWdcIFwoMjA1MTBcKVwsXCBHc3RUYWdMaXN0LXN0cmVhbVwsXCB0YWdsaXN0XD1cKHRhZ2xpc3RcKVwidGFnbGlzdFxcXCxcXFwgdmlkZW8tY29kZWNcXFw9XFxcKHN0cmluZ1xcXClIMjY0XFxcLFxcXAoJICBtaW5pbXVtLWJpdHJhdGVcXFw9XFxcKHVpbnRcXFwpNjM2NjExXFxcLFxcXCBiaXRyYXRlXFxcPVxcXCh1aW50XFxcKTk4MDcyOVxcXCxcXFwgbWF4aW11bS1iaXRyYXRlXFxcPVxcXCh1aW50XFxcKTExMTY3MDdcXFw7XCJcO1wpXCAweDE1YmM3NjAiCgkgIHZzLgoJICBsYXN0LW1lc3NhZ2UgPSBldmVudCAgICoqKioqKiogKGZha2VzaW5rMDpzaW5rKSBFICh0eXBlOiB0YWcgKDIwNTEwKSwgR3N0VGFnTGlzdC1zdHJlYW0sIHRhZ2xpc3Q9KHRhZ2xpc3QpInRhZ2xpc3RcLFwgdmlkZW8tY29kZWNcPVwoc3RyaW5nXClIMjY0XCxcIG1pbmltdW0tYml0cmF0ZVw9XCh1aW50XCk4NTYwMzlcLFwgYml0cmF0ZQoJICBcPVwodWludFwpMTAxOTc0OFwsXCBtYXhpbXVtLWJpdHJhdGVcPVwodWludFwpMTExNjcwN1w7IjspIDB4MTExNDllMAoKMjAxMi0wOC0wOSAxNjoxODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGNoZWNrIHdyaXRhYmlsaXR5CgkgIGZpeCB0aGUgd3JpdGFiaWxpdHkgY2hlY2sgZm9yIG1pbmlvYmplY3RzLiBXZSBzaG91bGQgY2hlY2sgdGhlIHNoYXJlZCBjb3VudGVyLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNDUwCgoyMDEyLTA4LTA4IDE2OjA4OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBTZXQgdGhlIGFsaWdubWVudCBhdCB0aGUgY29ycmVjdCBwbGFjZSBpbiBHc3RBbGxvY2F0aW9uUGFyYW1zCgoyMDEyLTA4LTA4IDE2OjE4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkzID09PQoKMjAxMi0wOC0wOCAxNTowNTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45MwoKMjAxMi0wOC0wOCAxNDo0OToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIHRlc3RzOiByZW1vdmUgc2lsbHkgdGVzdF9mYWlsX2Fic3RyYWN0X25ldyBjaGVjawoJICBPdXIgY2hlY2sgd291bGQgbWFrZSBzdXJlIHRoYXQgR0xpYiBzZWdmYXVsdHMgd2hlbgoJICBzb21lb25lIHRyaWVzIHRvIGluc3RhbnRpYXRlIGFuIGFic3RyYWN0IHR5cGUsIHdoaWNoCgkgIGlzIGFuIGV4dHJlbWVseSB1c2VmdWwgdGhpbmcgdG8gY2hlY2sgZm9yLgoJICBJbiBuZXdlciBHTGlicyB0aGlzIGlzIGZpeGVkIGFuZCB3ZSBnZXQgYW4gYWJvcnQgd2l0aAoJICBhIGdfZXJyb3IoKSBub3cgaXQgc2VlbXMsIHNvIGxldCdzIGp1c3QgcmVtb3ZlIHRoaXMKCSAgY2hlY2sgZW50aXJlbHkuCgoyMDEyLTA4LTA4IDA5OjUzOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBleGFtcGxlczogZG9uJ3QgcHV0IHRoaW5ncyB3aXRoIHNpZGUgZWZmZWN0cyBpbnNpZGUgZ19hc3NlcnQoKQoJICBUaGV5IHdpbGwgYmUgZGVmaW5lZCBhd2F5IHRvIE5PT1BzIG90aGVyd2lzZSBpbiByZWxlYXNlIGJ1aWxkcy4KCjIwMTItMDgtMDggMDk6MTM6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBmb3Igc3RyZWFtLWlkIEFQSSBhZGRpdGlvbnMKCjIwMTItMDgtMDggMDA6NTQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IGZvciBuZXcgR3N0Q2hpbGRQcm94eTo6Y2hpbGQtYWRkZWQgc2lnbmFsIGNhbGxiYWNrIHNpZ25hdHVyZQoJICBGaXhlcyBjcmFzaCB3aXRoIGdzdC1sYXVuY2gtMS4wIHVyaWRlY29kZWJpbiB1cmk9Li4uIHN1YnVyaT0uLi4gISAuLgoKMjAxMi0wOC0wNyAxMDo0NjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQWRkIGFsbG93LW5vbmUgdG8gdGhlIGZ1bmN0aW9uIGFyZ3VtZW50IG9mIGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExMzkKCjIwMTItMDgtMDYgMTY6MzM6NTcgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGRvY3M6IE1ha2Ugc3VyZSBzY2FubmVyIGdldHMgcmVxdWlyZWQgbGlicmFyaWVzCgoyMDEyLTA4LTA2IDIwOjA4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IHByaW50IHdoaWNoIGV2ZW50IHdlIHJlY2VpdmVkIGJlZm9yZSBzdHJlYW0tc3RhcnQKCjIwMTItMDgtMDYgMjA6MDQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IHRyeSB0byBhbnN3ZXIgVVJJIHF1ZXJpZXMgd2l0aCBOVUxMIFVSSXMKCSAgU2hvdWxkIG1ha2UgdW5pdCB0ZXN0cyBpbiAtYmFzZSB0aGF0IHVzZSBhcHBzcmMgYSBiaXQgaGFwcGllci4KCjIwMTItMDctMjkgMTQ6MjU6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBldmVudDogVXBkYXRlIGZvciBzdHJlYW0tc3RhcnQgZXZlbnQgQVBJIGNoYW5nZXMKCjIwMTItMDctMjggMDg6Mzc6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZXZlbnQ6IEFkZCBuZXcgc3RyZWFtLWlkIGZpZWxkIHRvIHRoZSBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgVGhpcyBpcyBzdXBwb3NlZCB0byBhbGxvdyB1bmlxdWVseSBpZGVudGlmeWluZyBhIHNpbmdsZSBzdHJlYW0uCgoyMDEyLTA3LTI3IDE3OjQxOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIGZpcnN0IGNyZWF0ZWQgcGFkIGJ5IGRlZmF1bHQKCSAgVGhpcyBndWFyYW50ZWVzIGEgYml0IG1vcmUgY29uc2lzdGVuY3kgaW4gd2hpY2ggaW5wdXQgc3RyZWFtIHdpbGwKCSAgYmUgc2VsZWN0ZWQgYnkgZGVmYXVsdC4gSXQgd291bGQgcHJldmlvdXNseSBiZSB0aGUgZmlyc3QgcGFkIG9uIHdoaWNoCgkgIGFuIGV2ZW50L2J1ZmZlci9xdWVyeSB3YXMgcmVjZWl2ZWQgLi4uIHdoaWNoIHdhcyByYWN5IGFuZCBub24tcHJlZGljdGFibGUuCgoyMDEyLTA3LTI3IDE3OjM4OjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFNwZWNpZnkgdGhlIG9yZGVyIG9mIHBhZCBpdGVyYXRvcnMKCSAgVGhlIG9yZGVyIG9mIHJldHVybmVkIHBhZHMgd2Fzbid0IHNwZWNpZmllZCBiZWZvcmUsIHNvIGxldCdzIHNwZWNpZnkKCSAgaXQgYW5kIHVzZSBhbiBvcmRlciB3aGljaCBtaWdodCBwcm92ZSB0aGUgbW9zdCB1c2VmdWwgOiB0aGUgb3JkZXIgaW4KCSAgd2hpY2ggcGFkcyB3ZXJlIGFkZGVkIHRvIHRoZSBlbGVtZW50LgoJICBJZiBzb21lb25lIGNoYW5nZXMgdGhlIG9yZGVyLCBtYWtlIHN1cmUgdXNlcnMgb2YgdGhvc2UgaXRlcmF0b3JzIGZyb20KCSAgbm93IG9uIGRvbid0IHJlbHkgb24gdGhhdCBvcmRlciAhCgoyMDEyLTA4LTA1IDE3OjE2OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkgZGVmaW5lCgkgIFNraXBzIGJyb2tlbiB0ZXN0cyBidXQgbG9ncyBhbiBFUlJPUi1sZXZlbCBtZXNzYWdlIHRvCgkgIGRyYXcgYXR0ZW50aW9uIHRvIHRoYXQgZmFjdC4KCjIwMTItMDgtMDUgMTc6MTI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHRlc3RzOiB1cGRhdGUgLmdpdGlnbm9yZSBmb3IgcXVldWVhcnJheSB0ZXN0IGJpbmFyeQoKMjAxMi0wOC0wNSAxNzoxMTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgdGVzdHM6IGZpeCBzcHVyaW91cyBuZXRjbGllbnRjbG9jayB0ZXN0IGZhaWx1cmVzCgkgIEdpdmUgY2xvY2tzIGEgYml0IG1vcmUgdGltZSB0byBzeW5jaHJvbmlzZS4KCjIwMTItMDgtMDUgMTY6NTk6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIGdlbmVyYXRlZCBmaWxlcwoKMjAxMi0wOC0wNSAxNjo0MToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogdXNlIGdlbmVyaWMgbWFyc2hhbGxlciBmb3IgImJsb2NrIiBhY3Rpb24gc2lnbmFsCgoyMDEyLTA4LTA1IDE2OjM3OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NGNjZjRjIHRvIDY2OGFjZWUKCjIwMTItMDgtMDQgMTM6Mzc6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyLCBkZWZhdWx0bWVtOiBhZGQgb3B0aW9uIHRvIHBvaXNvbiBtZW1vcnkgYmVmb3JlIGZyZWVpbmcgaXQKCSAgTWlnaHQgYmUgdXNlZnVsIHRvIHRyYWNrIGRvd24gY2VydGFpbiBidWdzLgoKMjAxMi0wOC0wMyAyMzo1NDozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYvdW5yZWYgdGFnbGlzdCBzY29wZSBlbnVtIGluIGdzdF9pbml0KCkKCSAgRml4ZXMgbWFrZSBjaGVjayBhbmQgZGlzdGNoZWNrCgoyMDEyLTA4LTAzIDAwOjA1OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHdhcm4gaWYgcGx1Z2luIG5hbWUgc3RhcnRzIHdpdGggYSAiCgkgIFRoaXMgY2FuIGVhc2lseSBoYXBwZW4gYXMgc2lkZS1lZmZlY3Qgb2YgdGhlIHBsdWdpbiBuYW1lCgkgIGluIEdTVF9QTFVHSU5fREVGSU5FIG5vIGxvbmdlciBiZWluZyBhIHN0cmluZyBpbiAwLjExLCBidXQKCSAgYSBuYW1lIHRvIEdfU1RSSU5HSUZZLgoKMjAxMi0wOC0wMiAxMzoxOToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZy10by0wLjExIGRvY3VtZW50IHdpdGggYSAic29mdCIgQVBJIGNoYW5nZXMgY2hlY2tsaXN0CgkgIFBvaW50IG91dCBzb21lIEFQSSBjaGFuZ2VzIHRoYXQgdGhlIGNvbXBpbGVyIHdvbid0CgkgIGJlIGFibGUgdG8gd2FybiBhYm91dC4KCjIwMTItMDgtMDIgMTE6MzM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZml4IHByaW50aW5nIG9mIHBhcnRpYWwgZGF0ZXMgaW4gZ3N0LWxhdW5jaAoKMjAxMi0wOC0wMiAxMToxNToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAidG9vbHM6IHByaW50IFRPQyBzY29wZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlZTZhYjdjOTM2MzhhNjUxOWFjYjk3NjY5OWE2YWQxNDlkNTIwYTk1LgoJICBUaGUgYXBwbGljYXRpb24gd2lsbCBwcm9iYWJseSBvbmx5IGV2ZXIgcmVjZWl2ZSBnbG9iYWwgVE9DcywKCSAgc28gZG9uJ3QgcmVhbGx5IG5lZWQgdGhpcy4KCjIwMTItMDgtMDEgMTc6NDk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgdGFnIGxpc3Qgc2NvcGUgc3ltYm9scwoKMjAxMi0wOC0wMSAxMTo1ODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBzZW5kIHNlZ21lbnRfZG9uZSBldmVudCBpbiBhZGRpdGlvbiB0byBzZWdtZW50X2RvbmUgbWVzc2FnZQoKMjAxMi0wNy0zMSAxNzoyNTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGJhc2VzcmM6IEFkZCBkZWZhdWx0IGhhbmRsZXIgZm9yIFVSSSBxdWVyeSBpbiBHc3RVUklIYW5kbGVyIHN1YmNsYXNzZXMKCjIwMTItMDctMjggMTc6MzM6NTIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkgIGNoZWNrOiB1bmJyZWFrIGZhaWwgI2RlZmluZQoJICBUaGUgZmFpbCgpIGRlZmluaXRpb24gd2FzIGNoYW5nZWQgdG8gbm90IGZhaWwgd2l0aCBub24tR0NDIGNvbXBpbGVycywKCSAgdW5mb3J0dW5hdGVseSB0aGUgY2hhbmdlIHdhcyBpbmNvcnJlY3QgYW5kIGFwcGVuZGVkIHRoZSBmaXJzdCBhcmd1bWVudAoJICBvZiBmYWlsIHRvIHRoZSBleHByZXNzaW9uIHN0cmluZyBpbnN0ZWFkIG9mIG1ha2luZyBpdCB0aGUgbWVzc2FnZS4KCSAgVGhpcyBjaGFuZ2UgZG9lcyBtZWFuIHRoYXQgZmFpbCgpIG5vdyByZXF1aXJlcyBhIG1lc3NhZ2UgdG8gYmUgcGFzc2VkCgkgIGFsb25nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzU1CgoyMDEyLTA3LTI5IDIzOjM3OjE5ICswMjAwICBKZW5zIEdlb3JnIDxtYWlsQGplbnNnZS5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogVXBkYXRlIGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA4MDUKCjIwMTItMDctMjkgMjM6MjA6MDcgKzAyMDAgIEplbnMgR2VvcmcgPG1haWxAamVuc2dlLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXBkYXRlIGFubm90YXRpb24gZm9yIGdldF9jb21wYXRpYmxlX3BhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwODA0CgoyMDEyLTA3LTI4IDIxOjIzOjI0IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IHdyb25nICdhcnJheSB6ZXJvLXRlcm1pbmF0ZWQ9MScgYW5ub3RhdGlvbiBmb3Igc3RyaW5ncwoKMjAxMi0wNy0yOCAxMTowMjozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogdXBkYXRlIFRPQyBkZXNpZ24gZG9jcyBhIGxpdHRsZQoKMjAxMi0wNy0yOCAwOTo0MTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogbWFrZSBUT0MgZXZlbnQgbXVsdGktc3RpY2t5CgkgIFdlIG5lZWQgdG8gc2VuZCB0d28ga2luZHMgb2YgVE9DcyBkb3duc3RyZWFtIGFzIGV2ZW50cywKCSAgYW5kIG5lZWQgYm90aCB0byBzdGljayB0byB0aGUgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODc0MgoKMjAxMi0wNy0yOCAwODozMDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBwcmludCBUT0Mgc2NvcGUKCjIwMTItMDctMjcgMjM6NTY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IGFkZCBHc3RUb2NTY29wZSBhbmQgcmVxdWlyZSBpdCBpbiB0aGUgY29uc3RydWN0b3IKCSAgVGhpcyBpcyBiZWNhdXNlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzaWduYWwgZGlmZmVyZW50IFRPQ3MKCSAgdG8gZG93bnN0cmVhbSBlbGVtZW50cyBzdWNoIGFzIG11eGVycyBhbmQgdGhlIGFwcGxpY2F0aW9uLAoJICBhbmQgYmVjYXVzZSB3ZSBuZWVkIHRvIHNlbmQgYm90aCB0eXBlcyBhcyBldmVudHMgKGJlY2F1c2UKCSAgdGhlIHNpbmsgc2hvdWxkIHBvc3QgdGhlIFRPQyBtZXNzYWdlcyBmb3IgdGhlIGFwcCBpbiB0aGUKCSAgZW5kLCBqdXN0IGxpa2UgdGFnIG1lc3NhZ2VzIGFyZSBub3cgcG9zdGVkIGJ5IHRoZSBzaW5rcyksCgkgIGFuZCBoZW5jZSBuZWVkIHRvIG1ha2UgVE9DIGV2ZW50cyBtdWx0aS1zdGlja3kuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg3NDIKCjIwMTItMDctMjcgMjM6NTQ6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDogY2hlY2sgZm9yIGJhc2ljIGJ1aWxkIHRvb2xzIGFuZCBkZXBzCgkgIC4uIGJlZm9yZSBjaGVja2luZyBvdXQgc3R1ZmYuCgoyMDEyLTA3LTI3IDIzOjUyOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0YWc6IEFkZCBhIHNjb3BlIHRvIHRhZ2xpc3RzCgkgIFRoaXMgc3BlY2lmaWVzIGlmIGEgZ2l2ZW4gdGFnbGlzdCBhcHBsaWVzIHRvIHRoZSBjb21wbGV0ZQoJICBtZWRpdW0gb3Igb25seSB0aGlzIHNwZWNpZmljIHN0cmVhbS4gQnkgZGVmYXVsdCBhIHRhZ2xpc3QKCSAgaGFzIGEgc3RyZWFtIHNjb3BlLgoJICBGaXhlcyBidWcgIzY3NzYxOS4KCjIwMTItMDctMjcgMTc6MDk6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBhZGQgb2Zmc2V0IGZpZWxkCgkgIEFkZCBhbiBvZmZzZXQgZmllbGQgdGhhdCBpcyB1c2VkIHRvIHRyYWNrIGF0IHdoYXQgcG9zaXRpb24gdGhlIHNlZ21lbnQgd2FzCgkgIHVwZGF0ZWQuIFRoaXMgaXMgdXNlZCB0byBzZXQgdGhlIHJ1bm5pbmcgdGltZSB0byAwIHdoZW4gd2UgZG8gYSBmbHVzaGluZwoJICBzZWVrIHRoYXQgZG9lc24ndCB1cGRhdGUgdGhlIHBvc2l0aW9uLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDMwNgoKMjAxMi0wNy0yNyAxNToxOTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFVwZGF0ZSBmb3IgbmV3IHNlZWtpbmcgdmFyaWFibGUgbmFtZQoJICBXaGVuIHNlZWtpbmcsIHRoZSBzdGFydCB2YWx1ZSBhbmQgdHlwZSBhcmUgbm93IGNhbGxlZCBzdGFydCBhbmQgc3RhcnRfdHlwZS4KCjIwMTItMDctMjcgMTQ6NTM6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBzbWFsbCBjbGVhbnVwCgkgIE1vdmUgdGhlIGNvZGUgdG8gdXBkYXRlIHRoZSBzZWdtZW50IGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uLgoKMjAxMi0wNy0yNyAxMjowNToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlIGRvY3MgYW5kIC5kZWYgZmlsZSBmb3IgdGFnbGlzdCBBUEkgY2hhbmdlCgoyMDEyLTA3LTI3IDEzOjAyOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogcmVtb3ZlIHJlZHVuZGFudCBjaGVja3MKCSAgV2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgc2VnbWVudCBmb3JtYXQgYW55bW9yZSBiZWNhdXNlIHdlIGFzc2VydGVkIG9uIHRoZW0KCSAgYmVpbmcgZXF1YWwgYmVmb3JlLgoKMjAxMi0wNy0yNyAxMjoyNDowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBpbXByb3ZlIHNlZ21lbnQgdGVzdHMKCjIwMTItMDctMjcgMTI6MTI6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIGFsbG9jYXRvcjogcmVtb3ZlIHVzZXJfZGF0YSBmcm9tIGFsbG9jIHZtZXRob2QKCSAgUmVtb3ZlIHRoZSB1c2VyX2RhdGEgZnJvbSB0aGUgYWxsb2Mgdm1ldGhvZC4gU3ViY2xhc3NlcyB0aGF0IGltcGxlbWVudCBhIG5ldwoJICBhbGxvYyBmdW5jdGlvbiBjYW4gYWxzbyBpbXBsZW1lbnQgdGhlaXIgb3duIHZtZXRob2QgdG8gcGFzcyBleHRyYSBhcmd1bWVudHMuIFdlCgkgIGNhbiB0aGVuIGFsc28gcmVxdWlyZSB0aGF0IGN1c3RvbSBhbGxvY2F0b3JzIGltcGxlbWVudCBhbiBhbGxvYyBmdW5jdGlvbiBzbyB0aGF0CgkgIGdzdF9hbGxvY2F0b3JfYWxsb2MoKSBhbHdheXMgd29ya3MuCgoyMDEyLTA3LTI3IDEwOjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IHJlbW92ZSBzZWdtZW50IGFjY3VtdWxhdGlvbiBjaGVja3MKCSAgUmVtb3ZlIHRoZSBjaGVja3MgYmVjYXVzZSB0aGVyZSBpcyBubyBtb3JlIHNlZ21lbnQgYWNjdW11bGF0aW9uLgoKMjAxMi0wNy0yNiAxNjo0NDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2UgR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBIGFsc28gYSBHc3RTYW1wbGUKCSAgVGhhdCB3YXkgYWRkaXRpb25hbCBtZXRhLWRhdGEgY2FuIGJlIHBhc3NlZCBhbG9uZyB3aXRoIGl0LgoKMjAxMi0wNy0yNiAxNTo1MToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGFnbGlzdDogZ3N0X3RhZ19saXN0X2dldF9idWZmZXIqKCkgPT4gZ3N0X3RhZ19saXN0X2dldF9zYW1wbGUqKCkKCSAgSW1hZ2UgdGFncyBhbmQgb3RoZXIgdGFncyBhcmUgbm93IG9mIEdzdFNhbXBsZSB0eXBlLgoKMjAxMi0wNy0yNiAxNToyNjowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJpbnQgaW1hZ2UgdGFncyBhbmQgb3RoZXIgR3N0U2FtcGxlIHRhZ3MgcHJvcGVybHkKCSAgVGhlc2UgdGFncyBhcmUgbm93IG9mIHR5cGUgR3N0U2FtcGxlIG5vdCBHc3RCdWZmZXIuCgoyMDEyLTA3LTI0IDIxOjM4OjM1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IHJlbW92ZSB1bmltcGxlbWVudGVkIGFwaQoJICBXZSBjYW4gYWx3YXlzIGFkZCB0aGlzIGJhY2sgaWYgd2UgbmVlZCBpdC4gRml4ZXMgcGFydHMgb2YgIzY3MDg1Mi4KCjIwMTItMDctMjQgMTM6NDk6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIGFjY291bnQgZm9yIGZyYW1lIHNpemUgd2hlbiBtZXJlbHkgc2Nhbm5pbmcgZm9yIGZyYW1lCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA0OTUKCjIwMTItMDctMjQgMTM6NDg6MzkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgb2Jzb2xldGUgZnVuY3Rpb24gcGFyYW1ldGVyCgoyMDEyLTA3LTI0IDEyOjM4OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHJlcXVpcmUgYnl0ZXMgYmVmb3JlIHR5cGVmaW5kaW5nCgkgIFJlcXVpcmUgdGhhdCB3ZSBoYXZlIHNvbWUgYnl0ZXMgaW4gdGhlIGFkYXB0ZXIgYmVmb3JlIHdlIGF0dGVtcHQgdG8gdHlwZWZpbmQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA0NzkKCjIwMTItMDctMjMgMTg6NDk6MTMgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMKCjIwMTItMDctMjMgMTY6Mjc6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBwYXNzIGluZGV4IGFzIGdpbnQgdG8gX2luc2VydAoJICBNYWtlIHRoZSBpZHggYXJndW1lbnQgb2YgX2luc2VydCgpIGEgZ2ludCBiZWNhdXNlIHdlIGFsbG93IC0xIGFzIGEgdmFsdWUuCgkgIEltcHJvdmUgYW5ub3RhdGlvbi4KCjIwMTItMDctMjMgMTM6NDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIHBsdWdpbnM6IHByaW50IGZsYWdzIGJldHRlcgoJICBwcmludCB0aGUgYnVmZmVyIGZsYWdzIGFzIGEgaGV4IG51bWJlciBzbyB0aGF0IGl0IGJlY29tZXMgZWFzaWVyIHRvIHNlZSB3aGF0CgkgIGZsYWdzIGFyZSBzZXQuCgoyMDEyLTA3LTE4IDE3OjAzOjQ1ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEltcHJvdmUgd2FybmluZyBtZXNzYWdlIHdoZW4gcmUtYWRkaW5nIGZkIHRvIGZkc2V0CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODAxODEKCjIwMTItMDctMjMgMDg6NDQ6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5OGUzODZmIHRvIDk0Y2NmNGMKCjIwMTItMDctMjAgMDA6NDk6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogYWRkIEdzdFRhZ0xpc3Qgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24KCSAgU28gd2UgY2FuIHNlcmlhbGlzZS9kZXNlcmlhbGlzZSB0YWdsaXN0cyBpbnNpZGUgc3RydWN0dXJlcywKCSAgd2hpY2ggdXNlZCB0byB3b3JrIGF1dG9tYWdpY2FsbHkgYmVmb3JlIGJlY2F1c2UgR3N0VGFnTGlzdAoJICB3YXMganVzdCBhIHR5cGVkZWYgdG8gR3N0U3RydWN0dXJlIChzYW1lIGZvciB0aGUgR1R5cGUpLAoJICBidXQgbm93IHRoYXQgaXQncyBhIHNlcGFyYXRlIEdUeXBlIHdlIG5lZWQgdG8gcmVnaXN0ZXIKCSAgZXhwbGljaXQgZnVuY3Rpb25zIGZvciB0aGlzLgoJICBIZWxwcyB3aXRoIEdEUCBzdHVmZiBpbiBwaXBlbGluZXMvc3RyZWFtaGVhZGVyIHRlc3RzLgoKMjAxMi0wNy0yMCAwOTozODo0NyArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDctMTkgMTM6NTE6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogZ3N0YnVmZmVyOiBhZGQgdGVzdHMgZm9yIHNvbWUgbXVsaXRwbGUgbWFwIGNvbWJpbmF0aW9ucwoKMjAxMi0wNy0xOSAxMzozNTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBzaGFyZWRuZXNzIGNoZWNrCgoyMDEyLTA3LTE5IDEzOjIwOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogcmVmdXNlIHdyaXRlIHdoZW4gb2JqZWN0IGlzIHNoYXJlZAoJICBJbiBhbGwgY2FzZXMsIHJlZnVzZSB0byB3cml0ZSBhbiBvYmplY3Qgd2hlbiBpdCBpcyBzaGFyZWQgYnkgbW9yZSB0aGFuIG9uZQoJICBvYmplY3QgKGFsc28gd2hlbiB0aGUgb2JqZWN0IHdhcyBsb2NrZWQgYmVmb3JlKS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxNDUKCjIwMTItMDctMTggMTU6MjE6MzMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogZ3N0YnVmZmVyOiBleHRlbmQgYnVmZmVyIGNvcHkgdGVzdAoKMjAxMi0wNy0xOSAxMjo0MjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IGJ1ZmZlcmluZy1sZWZ0IHRvIDAgb24gMTAwJSBidWZmZXJpbmcKCSAgU2V0IHRoZSBidWZmZXJpbmctbGVmdCBmaWVsZCBpbiB0aGUgcXVlcnkgdG8gMCB3aGVuIHdlIGFyZSBjb21wbGV0ZWx5IGJ1ZmZlcmVkLgoJICBJbXByb3ZlIHRoZSBkZWJ1Zy4KCjIwMTItMDctMTkgMTI6MTQ6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBidWZmZXJpbmcgcXVlcnkKCSAgRml4IHRoZSBidWZmZXJpbmcgcXVlcnksIGZpbGwgaW4gdGhlIHJpZ2h0IGJ1ZmZlcmluZy1sZWZ0IGFuZCBlc3RpbWF0ZWQtdG90YWwKCSAgdmFsdWVzLgoKMjAxMi0wNy0xOSAxMDo1NDoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHRoZSBidWZmZXJpbmctbGVmdCBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2UKCSAgVGhlIGJ1ZmZlcmluZy1sZWZ0IGZpZWxkIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZSBzaG91bGQgY29udGFpbiBhIHRpbWUgZXN0aW1hdGUKCSAgaW4gbWlsbGlzZWNvbmRzIGFib3V0IGZvciBsb25nIHRoZSBidWZmZXJpbmcgaXMgZ29pbmcgdG8gdGFrZS4gV2UgY2FuIGNhbGN1bGF0ZQoJICB0aGlzIHZhbHVlIHdoZW4gd2UgZG8gcmF0ZV9lc3RpbWF0ZXMuCgoyMDEyLTA3LTE5IDEwOjE0OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogaW1wcm92ZSBidWZmZXJpbmcgbWVzc2FnZSBkZWZhdWx0cwoJICBSZW1vdmUgdGhlIGVzdGltYXRlZC10b3RhbCBmaWVsZCwgdGhpcyBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhlIGJ1ZmZlcmluZwoJICBtZXNzYWdlLgoJICBTZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYnVmZmVyaW5nLWxlZnQgdG8gMCB3aGVuIHRoZSBwZXJjZW50IGlzIDEwMC4KCjIwMTItMDctMTggMTc6NDQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGRlYnVnIGxpbmUKCSAgVXNlIFFVRVJZX1RZUEUgb24gcXVlcnkgdHlwZXMuCgoyMDEyLTA3LTE4IDE3OjM1OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSBjdXN0b20gZnVuY3Rpb24KCSAgUmVtb3ZlIGN1c3RvbSBwYWQgZnVuY3Rpb25zLCB0aGUgZGVmYXVsdCBvbmVzIGFyZSBiZXR0ZXIuCgoyMDEyLTA3LTE4IDE3OjMwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIFBST1hZX1NDSEVEVUxJTkcgZmxhZwoJICBBZGQgYSBmbGFnIHRoYXQgbWFrZXMgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciBmb3J3YXJkIHRoZSBzY2hlZHVsaW5nIHF1ZXJ5LgoKMjAxMi0wNy0xOCAxNzozMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGRvY3MKCjIwMTItMDctMTggMTY6MjA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGltcHJvdmUgcXVlcnkgY2FwcyBmdW5jdGlvbgoJICBJbiB0aGUgcHJveHlfcXVlcnlfY2FwcyBmdW5jdGlvbiwgYWxzbyBmaWx0ZXIgYWdhaW5zdCB0aGUgZmlsdGVyIGluIHRoZSBxdWVyeS4KCSAgV2UgZG9uJ3QgbmVlZCB0byBmaWx0ZXIgYWdhaW5zdCB0aGUgZmlsdGVyIGluIHRoZSBxdWVyeSBhbnltb3JlIGluIHRoZSBkZWZhdWx0CgkgIGNhcHMgcXVlcnkgZnVuY3Rpb24gYmVjYXVzZSB3ZSBhbHJlYWR5IGRpZCB0aGlzIGluIHRoZSBwcm94eV9xdWVyeV9jYXBzLgoKMjAxMi0wNy0xOCAxMToxNzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIC0xIHN0ZXAgYW1vdW50cwoJICBEZWZpbmUgYSAwIGFuZCAtMSBzdGVwIGFtb3VudC4gVGhleSB1c2VkIHRvIGFsbW9zdCBkbyB0aGUgc2FtZSB0aGluZyBidXQgbm93LCAwCgkgIGNhbmNlbHMvc3RvcHMgdGhlIGN1cnJlbnQgc3RlcCBhbmQgLTEga2VlcHMgb24gc3RlcHBpbmcgdW50aWwgdGhlIGVuZCBvZiB0aGUKCSAgc2VnbWVudC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkzNzgKCjIwMTItMDctMTggMTI6MzA6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggZ3N0X3F1ZXJ5X3BhcnNlX250aF9hbGxvY2F0aW9uX3Bvb2woKSBhbm5vdGF0aW9uCgkgIEl0IHJldHVybnMgYSByZWYgdG8gdGhlIHBvb2wuCgoyMDEyLTA3LTE3IDE1OjUyOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVjazogQXZvaWQgZGVhZGxvY2sKCSAgUXVlcmllcyB3aWxsIGJlIHNlbnQgd2hlbiBwaXBlbGluZSBnb2VzIGRvd24gdG8gTlVMTCwgd2hpY2ggd291bGQKCSAgcmVzdWx0IGluIHRoZSBwcm9iZSBiZWluZyBjYWxsZWQgLi4uIGJ1dCBjYW4ndCB0YWtlIHRoZSBsb2NrLgoKMjAxMi0wNy0xNyAxNTo1MDowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IEZvcndhcmQgcXVlcmllcyBpbiBib3RoIGRpcmVjdGlvbgoJICBVc2UgdGhlIHBlZXIgb2YgdGhlIGludGVybmFsIHBhZCB0byBmb3J3YXJkIHRoZW0sIGluc3RlYWQgb2YgdGhlCgkgIHRhcmdldCB3aGljaCBvbmx5IGV4aXN0cyBmb3IgdGhlIGdob3N0cGFkIChhbmQgbm90IHRoZSBpbnRlcm5hbAoJICBwcm94eSBwYWQpLgoKMjAxMi0wNy0xNyAxMToyMDo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBNb3JlIGVudHJpZXMKCjIwMTItMDctMTggMDk6MTU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhbnN3ZXIgU0NIRURVTElORyBxdWVyeQoJICBJbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciBmYWlsLgoKMjAxMi0wNy0xNyAxOToyMDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGhhbmRsZSBDQVBTIGV2ZW50IGFuZCBkcm9wIGl0IGlmIG9wZXJhdGluZyBpbiByaW5nIGJ1ZmZlciBtb2RlCgkgIEZpeGVzICJVbmV4cGVjdGVkIGV2ZW50IG9mIGtpbmQgY2FwcyBjYW4ndCBiZSBhZGRlZCBpbiB0ZW1wIGZpbGUiCgkgIHdhcm5pbmcgd2hlbiBkb2luZyBkb3dubG9hZCBidWZmZXJpbmcuCgoyMDEyLTA3LTE3IDEyOjU3OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogbWFrZSBfZm9yZWFjaF9tZXRhIG1vcmUgcG93ZXJmdWwKCSAgTWFrZSBfZm9yZWFjaF9tZXRhIHJldHVybiBGQUxTRSB3aGVuIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybmVkIEZBTFNFLgoKMjAxMi0wNy0xNyAxMjo1Mjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IGltcHJvdmUgZm9yZWFjaCBmdW5jdGlvbgoJICBNYWtlIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybiBGQUxTRSB3aGVuIG9uZSBvZiB0aGUgZnVuY3Rpb24gY2FsbHMgcmV0dXJuZWQKCSAgRkFMU0UuCgoyMDEyLTA3LTE3IDEyOjUwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIGRlYnVnCgoyMDEyLTA3LTE3IDEyOjQwOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGRlYnVnIHN0cmluZwoKMjAxMi0wNy0xNyAwOTo1Nzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2U6IGZpeCBzb21lIGRlYnVnCgoyMDEyLTA3LTE3IDA5OjQ4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIHBhcnNlOiBvbmx5IGVzY2FwZSBzcGFjZXMgb3V0c2lkZSBvZiBxdW90ZXMKCSAgV2hlbiB3ZSBlc2NhcGUgc3BhY2VzIHRvIGtlZXAgYXJndW1lbnRzIHRvZ2V0aGVyLCBvbmx5IGVzY2FwZSB3aGVuIHRoZSBzcGFjZSBpcwoJICBvdXRzaWRlIGEgIiIgc3RyaW5nLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzMxOQoKMjAxMi0wNy0xNyAwOTo0NDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBSZXZlcnQgInBhcnNlOiBlc2NhcGUgXCB3aXRoIGEgXCBhcyB3ZWxsLCBzbyB0aGF0IHdlIGRvbid0IGxvc2UgdGhlIFwgd2hlbiB1bmVzY2FwaW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGRkOWZlZGI0MWYxYWRhOGUxZjhiZDUzNDZmY2NkM2QwNjhkNTQzY2IuCgkgIFRoaXMgaXMgbm90IHRoZSByaWdodCBwbGFjZSB0byBlc2NhcGUgdGhlIFwsIHdlIHNob3VsZCBvbmx5IGVzY2FwZSB0aGUgc3BhY2VzIHRvCgkgIGtlZXAgdGhlIGFyZ3VtZW50cyB0b2dldGhlciB0aGF0IHdlcmUgcHJvdmlkZWQgYXMgb25lIGdyb3VwICh3aXRoIHF1b3RlcyBvbiB0aGUKCSAgc2hlbGwpLgoKMjAxMi0wNy0xMCAxMjoyNzoxMSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHNldCByZXR1cm4gdHlwZSBvZiBnc3RfcGFyc2VfYmluXyogdG8gR3N0QmluIGZvciBpbnRyb3NwZWN0aW9uCgoyMDEyLTA2LTMwIDEyOjMzOjQzIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIG5ldHRpbWVwYWNrZXQ6IGFkZCBtaXNzaW5nIGFycmF5IGFubm90YXRpb24gdG8gZ3N0X25ldF90aW1lX3BhY2tldF9uZXcKCjIwMTItMDYtMjkgMTc6MzM6NDkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbWlzc2luZyBhcnJheSBhbm5vdGF0aW9uIHRvIGdzdF9mb3JtYXRzX2NvbnRhaW5zCgoyMDEyLTA3LTE2IDIwOjU0OjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogYWdncmVnYXRlIGR1cmF0aW9ucyBsaWtlIGluIGFkZGVyCgkgIFN0b3AgcXVlcnlpbmcgdGhlIGR1cmF0aW9uIG9uY2UgYW4gZWxlbWVudCByZXR1cm4gdW5rbm93biBhbmQgcmV0dXJuIHVua25vd24KCSAgYXMgYSBmaW5hbCByZXN1bHQuIFRoaXMgYXZvaWQgZXZlbnR1YWxseSBjdXR0aW5nIG9mZiBhIHN0cmVhbSB0b28gZWFybHkuCgkgIEFkZCBhIHRlc3RzIHRvIGRvY3VlbWVudCB0aGUgYmVoYXZpb3IuCgoyMDEyLTA3LTE2IDAwOjI0OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBqdXN0IHJldHVybiBOVUxMIG9uIHNob3J0IGlucHV0IHN0cmluZ3MgaW5zdGVhZCBvZiBhIHdhcm5pbmcKCSAgV2Ugd2FudCB0byBiZSBhYmxlIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIG9uIHJhbmRvbSBub24tTlVMTCBpbnB1dCwKCSAgdGhpcyBzaG91bGQgbm90IHJlc3VsdCBpbiBhIHJ1bnRpbWUtY3JpdGljYWwuCgoyMDEyLTA3LTE1IDEyOjU5OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2Vla2FiaWxpdHkgcXVlcnlpbmcgd2l0aCBmb3JtYXRzIHdpdGggaGVhZGVycyBsaWtlIEZMQUMKCSAgTW92ZSBjb2RlIHRoYXQgY2hlY2tzIGZvciB1cHN0cmVhbSBzZWVrYWJpbGl0eSBhbmQgYWxsIHRoYXQgdG8KCSAgdGhlIHJpZ2h0IHBsYWNlLCBvdGhlcndpc2UgaXQgd2lsbCBuZXZlciBiZSBkb25lIGZvciBmb3JtYXRzCgkgIHRoYXQgaGF2ZSBoZWFkZXJzIHN1Y2ggYXMgRkxBQywgYXMgaGFuZGxlX2FuZF9wdXNoIGZyYW1lIHdpbGwKCSAgYmUgY2FsbGVkIHRoZSBmaXJzdCB0aW1lIG9ubHkgYWZ0ZXIgaGVhZGVycyBoYXZlIGJlZW4gcHJvY2Vzc2VkCgkgIChhbmQgZnJhbWVjb3VudCBpcyA+IDApLiBUaGlzIHRoZW4gbWFrZXMgdXMgcmVwb3J0IHRoYXQgd2UKCSAgY2FuJ3Qgc2Vlaywgd2hpY2ggZGlzYWJsZXMgdGhlIHNlZWsgYmFyIGluIHRvdGVtLgoKMjAxMi0wNy0xNCAyMDozMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkgIHBsdWdpbnM6IGVtYmVkIEdzdEF1ZXVlQXJyYXkgaW4gZGF0YXF1ZXVlIHN0cnVjdCBhcyB3ZWxsCgoyMDEyLTA3LTE0IDIwOjI4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBwbHVnaW5zOiBkb24ndCB1c2Ugb25lLXRpbWUgYXJyYXkgaW4gcGx1Z2luX2luaXQKCjIwMTItMDctMTQgMjA6MjY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGVtYmVkIEdzdFF1ZXVlQXJyYXkgc3RydWN0dXJlCgoyMDEyLTA3LTE0IDIwOjAwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBwbHVnaW5zOiBzcHJpbmtsZSBzb21lIG1vcmUgR19HTlVDX0lOVEVSTkFMCgoyMDEyLTA3LTE0IDE5OjM4OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJICBwbHVnaW5zOiBhZGQgaW5pdC9jbGVhciBmdW5jdGlvbnMgdG8gR3N0UXVldWVBcnJheQoKMjAxMi0wNy0xNCAxOToyNDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlOiBtYWtlIEdzdFF1ZXVlQXJyYXkgcHJpdmF0ZSB0byBjb3JlZWxlbWVudHMgZm9yIG5vdwoJICBLZWVwIGl0IHByaXZhdGUgdW50aWwgd2UgaGF2ZSBhIHJlYXNvbiB0byBtYWtlIGl0IHB1YmxpYy4KCjIwMTItMDctMTQgMTk6MDg6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBjaGVjayB2YWx1ZSB0eXBlIG1hdGNoZXMgdGFnIHR5cGUgd2hlbiBhZGRpbmcgdmFsdWVzIHRvIGEgdGFnbGlzdAoKMjAxMi0wNy0xNCAxODo1Mjo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgdGFnbGlzdHMgYW5kIGRhdGV0aW1lIGxvZ2dhYmxlIHZpYSBHU1RfUFRSX0ZPUk1BVAoKMjAxMi0wNy0xMyAxMjowNToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2VuZCBzZWVrIGV2ZW50IHVwc3RyZWFtIGZpcnN0CgkgIEZpcnN0IHRyeSB0byBsZXQgdXBzdHJlYW0gaGFuZGxlIHRoZSBzZWVrIGV2ZW50LCB0aGVuIGZhaWwgaWYgdGhlIGV2ZW50IGlzCgkgIHNvbWV0aGluZyB3ZSBkb24ndCB1bmRlcnN0YW5kLgoKMjAxMi0wNy0xMyAwOTo0Mzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdGVzdCByYWNpbmVzcwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTA2CgoyMDEyLTA3LTEyIDEzOjE3OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGZpeCBnc3QtZmZtcGVnIHBsdWdpbiBwYXRoIGFnYWluCgoyMDEyLTA3LTEyIDEyOjA5OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBjbHV0dGVyLWdzdCBhbmQgcmVmaW5lIHBsdWdpbiBzZWFyY2ggcGF0aHMKCjIwMTItMDctMTIgMDA6MzQ6MjIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBNb3ZlIHN0aWNreSBmbGFnIGNsZWFyaW5nIGNvZGUgdG8gZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlCgkgIFRoZSBnaG9zdHBhZCBjb2RlIGRpcmVjdGx5IGFjdGl2YXRlcy9kZWFjdGl2YXRlcyB0aGUgY2hpbGQgY29kZSBieQoJICBjYWxsaW5nIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSwgcmF0aGVyIHRoYW4gZ3N0X3BhZF9zZXRfYWN0aXZlLCBzbwoJICBtYWtlIHN1cmUgdG8gY2xlYXIgdGhlIGZsYWdzIGluIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpLCB3aGljaCBzaG91bGQKCSAgY2F0Y2ggYWxsIGNhc2VzLgoKMjAxMi0wNy0xMSAxMjo0MDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogaW1wcm92ZSBhbm5vdGF0aW9uCgoyMDEyLTA3LTExIDEyOjM3OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIHN0ZXAgZW5kIGNvcnJlY3RseQoJICB3aGVuIHdlIGhhdmUgYSBuZXcgc3RlcCBldmVudCB3aXRoIGEgLTEgYW1vdW50LCBtYWtlIHN1cmUgdGhhdCB3ZSBmb2xsb3cgdGhlCgkgIHJlZ3VsYXIgY29kZSBwYXRoIHNvIHRoYXQgdGhlIHN0b3BfZW5kIGhhbmRsZXIgaXMgY2FsbGVkIGFzIHVzdWFsLiBUaGlzIHRha2VzCgkgIGNhcmUgb2YgZmx1c2hpbmcgdGhlIGJ1ZmZlciBpbiBjYXNlIG9mIGEgZmx1c2hpbmcgc3RlcCBhbmQgYWxzbyBwb3N0cyBhIHN0ZXAgZW5kCgkgIG1lc3NhZ2UuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5Mzc4CgoyMDEyLTA3LTExIDEzOjE0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIHdpbjMyOiBGaXggZXhwb3J0ZWQgc3ltYm9scyBsaXN0IGZvciByZWFsIG5vdwoKMjAxMi0wNy0xMSAxMToyMToxOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSByZW1vdmVkIGFwaSBmcm9tIHRoZSBkb2NzLgoKMjAxMi0wNy0xMSAxMjo0NjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scyBsaXN0CgoyMDEyLTA3LTExIDEyOjQ1OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IEFkZCBmdW5jdGlvbnMgdG8gcmV0cmlldmUgdGhlIHBhcmVudCBHc3RUb2MvR3N0VG9jRW50cnkgb2YgYSBHc3RUb2NFbnRyeQoKMjAxMi0wNy0xMCAxODoxNToyMCArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IEZpeCBnc3RfdG9jX2ZpbmRfZW50cnkoKQoJICBSZWN1cnNpdmUgc2VhcmNoIGZvciB0aGUgcmVxdWlyZWQgZW50cnksIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZQoJICB0b3AtbGV2ZWwgZW50cnkgdGhhdCBjb250YWlucyBhbiBlbnRyeSB3aXRoIHRoZSBzZWFyY2ggVUlELgoKMjAxMi0wNy0xMSAxMDoyNjoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFB1c2ggU1RSRUFNX1NUQVJUIGluIHB1bGwtbW9kZQoKMjAxMi0wNy0xMSAxMDoyNDo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRGVtb3RlIFdBUk5JTkcgdG8gREVCVUcKCSAgSXQgaXMgbm90IGFuIGlzc3VlIHRvIGdldCBmaWVsZHMgdGhhdCBkb24ndCBleGlzdCwgY2FsbGluZyBjb2RlIHNob3VsZAoJICBoYW5kbGUgdGhhdC4KCjIwMTItMDctMTAgMTE6NDY6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgUmVtb3ZlIDAuMTAtcmVsYXRlZCBkb2N1bWVudGF0aW9uIGFuZCAiU2luY2UiIG1hcmtlcnMKCjIwMTItMDctMTAgMDA6Mzk6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJvdmlkZSBmYWxsYmFjayBpbiBjYXNlIGEgY3JlYXRlIGZ1bmN0aW9uIGRvZXNuJ3Qga25vdyBhYm91dCBwcm92aWRlZCBidWZmZXJzCgkgIEluIDAuMTEgdGhlIGNhbGxlciBtYXkgcHJvdmlkZSBhIGJ1ZmZlciB0byBiZSBmaWxsZWQgYnkgdGhlIHNvdXJjZSB0bwoJICBwdWxsX3JhbmdlL2dldF9yYW5nZS9jcmVhdGUsIGJ1dCBpdCdzIGVhc3kgdG8gbWlzcyB0aGlzIG5ldyBjYXNlIHdoZW4KCSAgcG9ydGluZyBjb2RlIGZyb20gMC4xMC4gUHJvdmlkZSBmYWxsYmFjayB0aGF0IGNvcGllcyB0aGUgY3JlYXRlZCBkYXRhCgkgIGludG8gdGhlIHByb3ZpZGVkIGJ1ZmZlciBmb3Igbm93LgoJICBUaGlzIG1ha2VzIG9nZ2RlbXV4IGluIHB1bGwtbW9kZSB3b3JrIHdpdGggZGF0YXVyaXNyYy4KCjIwMTItMDctMTAgMTA6MzE6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogY29weSBzdHJ1Y3R1cmUgaW4gX2FkZF9hbGxvY2F0aW9uX21ldGEoKQoJICBNYWtlIGdzdF9xdWVyeV9hZGRfYWxsb2NhdGlvbl9tZXRhKCkgdGFrZSBhIGNvcHkgb2YgdGhlIHBhc3NlZCBjYXBzIGluc3RlYWQgb2YKCSAgdGFraW5nIG93bmVyc2hpcC4gVGhpcyBtYWtlcyBpdCBlYXNpZXIgZm9yIHRoZSBjYWxsZXIgaW4gbW9zdCBjYXNlcyBiZWNhdXNlIGl0CgkgIGRvZXNuJ3QgaGF2ZSB0byBtYWtlIGEgY29weSBhbmQgZGVhbCB3aXRoIE5VTEwgdmFsdWVzLgoKMjAxMi0wNy0xMCAxMDoxMTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgbmV3IGZsYWdzCgoyMDEyLTA3LTA5IDIzOjQ3OjUzICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IGV4Y2x1c2l2ZSBsb2NrL3VubG9jayByYWNlCgoyMDEyLTA3LTA5IDIxOjUxOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgYmFzZXNyYywgYmFzZXNpbmssIGJhc2VwYXJzZSwgdHlwZWZpbmQ6IHVzZSBHU1RfU0VHTUVOVF9GTEFHIHdpdGggc2VnbWVudCBmbGFncwoKMjAxMi0wNy0wOSAyMjoxMTozMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IGFsc28gY29weSB0aGUgc2VnbWVudCBmbGFnCgkgIEZpeGVzIHNlZ21lbnRlZCBzZWVrcyAoYXMgdGVzdGVkIGUuZy4gaW4gdGhlIGFkZGVyIHRlc3RzIGluIGJhc2UpLgoKMjAxMi0wNy0wOSAyMDo1NTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+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+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSBmaW5hbGl6ZXIgZm9yIHRoZSB0ZXN0IGNvbnRyb2xiaW5kaW5ncwoJICBObyBpZGVhIHdoeSB2YWxncmluZCBzdGlsbCBpbmlzdHMgdGhhdCB0aGVyZSBhcmUgbGVha3MuCgoyMDEyLTA0LTA1IDE4OjQyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2ZkYTUyNCB0byA0NjRmZTE1CgoyMDEyLTA0LTA1IDE0OjE3OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBnc3Q6IENoYW5nZSBuYW1lIHBhcmFtZXRlciBvZiBHU1RfUExVR0lOX0RFRklORSgpIHRvIG5vdCB0YWtlIGEgc3RyaW5nIGFueW1vcmUKCSAgVGhpcyB3aWxsIGJlIG5lZWRlZCB3aGVuIHdlIGxhdGVyIGFkZCBzdXBwb3J0IGZvciBzdGF0aWMgbGlua2luZwoJICBvZiBwbHVnaW5zIHdpdGhvdXQgaW50cm9kdWNpbmcgbmV3IEFQSSBvciBjaGFuZ2luZyBleGlzdGluZyBBUEkuCgoyMDEyLTA0LTA1IDEzOjIzOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZ3N0cGx1Z2luOiBBZGQgaGFjayBmb3IgaGFuZGxpbmcgMC4xMS45WCBhbmQgMC4xMS44OS5YIHdpdGggWD4wIHRoZSBzYW1lIGFzIDEuMC4wCgkgIEFsc28gdXBkYXRlIHRoZSB2ZXJzaW9uIG51bWJlciB0byAwLjExLjg5LjEKCjIwMTItMDQtMDUgMTI6MjI6MTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IGNsZWFyIG11dGV4IHVwb24gZnJlZQoKMjAxMi0wNC0wNSAxMDo1NjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgcmVnaXN0cnk6IFNldCByZWdpc3RyeSB2ZXJzaW9uIHRvIDEuMC4wIHRvbwoKMjAxMi0wNC0wNSAxMDozNjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA0LTA1IDEwOjAzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzdG9wIHdhaXRpbmcgZm9yIG1vcmUgZGF0YSBhZnRlciBFT1MKCSAgV2hlbiB3ZSBoYXZlIEVPUywgcmVhZCB0aGUgcmVtYWluaW5nIGJ5dGVzIGluIHRoZSBidWZmZXIgYW5kIG1ha2Ugc3VyZSB3ZSBkb24ndAoJICB3YWl0IGZvciBtb3JlIGRhdGEuIEFsc28gY2xpcCB0aGUgb3V0cHV0IGJ1ZmZlciB0byB0aGUgYW1vdW50IG9mIHJlbWFpbmluZwoJICBieXRlcy4KCjIwMTItMDQtMDUgMDk6NTY6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNoZWNrIGZvciBmaWxsZWQgYnVmZmVyIGNvcnJlY3RseQoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyIG1vZGUsIHRoZSBidWZmZXIgaXMgZmlsbGVkIHdoZW4gd2UgcmVhY2hlZCB0aGUKCSAgbWF4X2xldmVsLmJ5dGVzIG1hcmsgb3IgdGhlIHRvdGFsIHNpemUgb2YgdGhlIHJpbmdidWZmZXIsIHdoaWNoZXZlciBpcyBzbWFsbGVyLgoKMjAxMi0wNC0wNCAxMzowNzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgd2FpdGluZyBmb3IgYSBmaWxsZWQgYnVmZmVyCgkgIFVzZSBhIHRocmVzaG9sZCB2YXJpYWJsZSB0byBob2xkIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIGN1cnJlbnQgcG9zaXRpb24KCSAgZm9yIHdpdGggd2Ugd2lsbCB3YWl0IGluc3RlYWQgb2YgZG9pbmcgYSBzZWVrLgoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyIGFuZCB0aGUgcmVxdWVzdGVkIG9mZnNldCBpcyBub3QgYXZhaWxhYmxlLCBhdm9pZAoJICB3YWl0aW5nIHVudGlsIHRoZSBjb21wbGV0ZSByaW5nYnVmZmVyIGlzIGZpbGxlZCBidXQgaW5zdGVhZCBkbyBhIHNlZWsgd2hlbiB0aGUKCSAgcmVxdWVzdGVkIGRhdGEgaXMgZnVydGhlciB0aGFuIHRoZSB0aHJlc2hvbGQuCgkgIEF2b2lkIGRvaW5nIHRoZSBzZWVrIHR3aWNlIGluIHRoZSByaW5nYnVmZmVyIGNhc2UuCgkgIFVzZSB0aGUgc2FtZSB0aHJlc2hvbGQgZm9yIHJpbmdidWZmZXIgYW5kIGRvd25sb2FkIGJ1ZmZlcmluZy4KCjIwMTItMDQtMDUgMDk6MDc6MTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGZpeCBjb21waWxlIHdhcm5pbmcKCjIwMTItMDQtMDQgMTM6MTM6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9yYW5kb20vYXV0b3Rvb2xzOgoJKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZ3N0OiBDaGFuZ2UgdmVyc2lvbmluZwoJICBSZW1vdmUgR1NUX01BSk9STUlOT1IgYW5kIHJlcGxhY2UgaXQgYnkgR1NUX0FQSV9WRVJTSU9OCgkgIEFsc28gc2V0IEdTVF9WRVJTSU9OX3tNQUpPUixNSU5PUixNSUNSTyxOQU5PfSBleHBsaWNpdGVseQoJICBub3cuCgkgIEFsbCB2ZXJzaW9ucyBhcmUgYXQgMS4wLjAgbm93IGZvciB0aGUgcmVsZWFzZSBzb29uIGJ1dAoJICBBUEkvQUJJIGNhbiBzdGlsbCBjaGFuZ2UgdW50aWwgdGhlIDEuMC4wIHJlbGVhc2UuCgkgIE5leHQgcmVsZWFzZSB2ZXJzaW9ucyB1bnRpbCAxLjAuMCB3aWxsIGJlIDAuMTAuOVggYW5kCgkgIHRoZXNlIHdpbGwgYmUgcmVsZWFzZSBjYW5kaWRhdGVzLiBHU1RfVkVSU0lPTl8qIHdpbGwKCSAgbm9uZXRoZWxlc3Mgc3RheSBhdCAxLjAuMC4wLgoKMjAxMi0wNC0wNCAxMjoyNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9NYWtlZmlsZS5hbQoJICBnc3QvZ3N0LmMKCSAgZ3N0L2dzdC5oCgkgIGdzdC9nc3RldmVudC5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RtZXNzYWdlLmMKCSAgZ3N0L2dzdG1lc3NhZ2UuaAoJICBnc3QvZ3N0cXVhcmsuYwoJICBnc3QvZ3N0cXVhcmsuaAoJICBnc3QvZ3N0cXVlcnkuYwoJICBnc3QvZ3N0cXVlcnkuaAoJICBnc3QvZ3N0dG9jLmMKCSAgZ3N0L2dzdHRvYy5oCgkgIGdzdC9nc3R0b2NzZXR0ZXIuYwoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbQoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmMKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jCgoyMDEyLTA0LTAzIDE2OjUxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgX3NldF9zaXplKCkKCjIwMTItMDQtMDMgMTY6NDQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbWFrZSBnZXRfc2l6ZXMgYW5kIF9yZXNpemUgd2l0aCByYW5nZXMKCSAgTWFrZSB0aGUgX2dldF9zaXplcyBhbmQgX3Jlc2l6ZSBtZXRob2RzIHdvcmsgb24gYSByYW5nZSBvZiBtZW1vcnkgdG8gbWFrZSB0aGVtCgkgIG1vcmUgcG93ZXJmdWxsLgoKMjAxMi0wNC0wMyAxODoyNTo0MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBhbGxvdyBzb21lIG1vcmUgZXZlbnRzIGJlZm9yZSBhIHNlZ21lbnQgZXZlbnQKCjIwMTItMDQtMDMgMTU6NDY6MjkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogdXNlIG5ldyBnbGliIG11dGV4IGFwaQoKMjAxMi0wNC0wMiAyMzoxNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBnc3QtbGF1bmNoLmM6IEluIGZ1bmN0aW9uIOKAmHByaW50X3RvY19lbnRyeeKAmToKCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdGhlIHNpemUgb2YgYXJyYXkg4oCYc3Bj4oCZIGNhbuKAmXQgYmUgZXZhbHVhdGVkIFstV2Vycm9yPXZsYV0KCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdmFyaWFibGUtc2l6ZWQgb2JqZWN0IG1heSBub3QgYmUgaW5pdGlhbGl6ZWQKCjIwMTItMDQtMDIgMjM6Mjk6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBhZGQgbmV3IHVuaXQgdGVzdCBiaW5hcmllcyB0byAuZ2l0aWdub3JlCgoyMDEyLTA0LTAyIDIzOjI4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYgbmV3IGVudHJ5IGVudW0gdHlwZXMKCSAgRml4ZXMgJ21ha2UgY2hlY2snLCBhZ2Fpbi4KCjIwMTItMDQtMDIgMjM6MjQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCSAgRml4ZXMgJ21ha2UgY2hlY2snLgoKMjAxMi0wNC0wMiAyMzoyMzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogZG9uJ3QgZXhwb3J0IHByaXZhdGUgZnVuY3Rpb25zCgoyMDEyLTA0LTAyIDIzOjE3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdC1sYXVuY2guYzogSW4gZnVuY3Rpb24g4oCYcHJpbnRfdG9jX2VudHJ54oCZOgoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB0aGUgc2l6ZSBvZiBhcnJheSDigJhzcGPigJkgY2Fu4oCZdCBiZSBldmFsdWF0ZWQgWy1XZXJyb3I9dmxhXQoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB2YXJpYWJsZS1zaXplZCBvYmplY3QgbWF5IG5vdCBiZSBpbml0aWFsaXplZAoKMjAxMi0wNC0wMiAyMzoxNjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxMi0wNC0wMiAyMzowMToxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInCgoyMDEyLTA0LTAyIDIyOjA5OjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvYzogcG9ydCB0byAwLjExCgoyMDEyLTAzLTIyIDA4OjM2OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLWMsIC0tdG9jIHRvIHByaW50IHRoZSB0b2MKCSAgUHJpbnQgdGhlIG5lc3RlZCBjaGFwdGVyIGFuZCBlZGl0aW9uIHN0cnVjdHVyZSBvZiB0aGUgY2hhcHRlcnMgbWVzc2FnZS4KCjIwMTItMDMtMjggMjM6MTU6NDEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiBhZGQgb3ZlcnZpZXcgb2YgR3N0VG9jIHVzYWdlCgoyMDEyLTAzLTE0IDIxOjE0OjIzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdFRvYyBhbmQgR3N0VG9jU2V0dGVyIHNlY3Rpb25zIHdpdGggcmVsYXRlZCBmdW5jdGlvbnMKCjIwMTItMDMtMTQgMjE6MTM6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2NTZXR0ZXIKCjIwMTItMDMtMTQgMjE6MTI6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2MKCjIwMTItMDMtMTQgMjA6NDU6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIEFkZCBuZXcgR3N0VG9jU2V0dGVyIGludGVyZmFjZQoKMjAxMi0wMy0xNCAyMDo0Mjo1NiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIG5ldyBUT0MgcXVlcnkKCjIwMTItMDMtMTQgMjA6NDE6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgbmV3IFRPQyBtZXNzYWdlCgoyMDEyLTAzLTE0IDIwOjQwOjMyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBuZXcgVE9DIGFuZCBUT0Mgc2VsZWN0IGV2ZW50cwoKMjAxMi0wMy0xNCAyMDowMTo1MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgQWRkIGdlbmVyaWMgdGFibGUgb2YgY29udGVudHMgKFRPQykgc3VwcG9ydAoKMjAxMi0wNC0wMiAyMToxNTowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9NYWtlZmlsZS5hbQoJICBnc3QvZ3N0LmMKCSAgZ3N0L2dzdC5oCgkgIGdzdC9nc3RldmVudC5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdHF1YXJrLmMKCSAgZ3N0L2dzdHF1YXJrLmgKCSAgZ3N0L2dzdHF1ZXJ5LmMKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0KCjIwMTItMDQtMDIgMTU6MzA6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMi0wNC0wMiAxNToxMzoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsd2F5cyBhdHRlbXB0IHRvIHB1c2ggaWYgbm90LWxpbmtlZAoJICBUaGlzIGF2b2lkcyBlbmRpbmcgdXAgd2l0aCBwbGVudHkgb2YgcGVuZGluZyBkYXRhIChzaW5jZSB3ZSdsbCBvbmx5CgkgIHRyeSB0byBwYXJzZS9wdXNoIG9uZSBmcmFtZSBmcm9tIHRoZSBpbmNvbWluZyBidWZmZXIpLgoJICBGaXhlcyBpbmNyZWFzaW5nIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIHBhcnNlcnMgYXJlbid0IGxpbmtlZAoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTItMDQtMDIgMTU6MTM6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHdheXMgYXR0ZW1wdCB0byBwdXNoIGlmIG5vdC1saW5rZWQKCSAgVGhpcyBhdm9pZHMgZW5kaW5nIHVwIHdpdGggcGxlbnR5IG9mIHBlbmRpbmcgZGF0YSAoc2luY2Ugd2UnbGwgb25seQoJICB0cnkgdG8gcGFyc2UvcHVzaCBvbmUgZnJhbWUgZnJvbSB0aGUgaW5jb21pbmcgYnVmZmVyKS4KCSAgRml4ZXMgaW5jcmVhc2luZyBtZW1vcnkgY29uc3VtcHRpb24gd2hlbiBwYXJzZXJzIGFyZW4ndCBsaW5rZWQKCjIwMTItMDQtMDEgMDM6MzA6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBUaW1lb3V0IGlzIG5vdCB1c2VkIG9uIFczMgoJICBGaXhlcyAjNjczMjY3CgoyMDEyLTA0LTAyIDExOjA5OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICB0cmFuczogYWRkIHRyYW5zZm9ybV9pcF9vbl9wYXNzdGhyb3VnaAoJICBBZGQgYW4gb3B0aW9uIHRvIGNvbnRyb2wgaWYgdHJhbnNmb3JtX2lwIGlzIGNhbGxlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIG9yIG5vdC4KCSAgZm9yIGVsZW1lbnRzIHRoYXQgZG9uJ3Qgd2FudCB0byBsb29rIGF0IHRoZSBkYXRhIGluIHBhc3N0aHJvdWdoIG1vZGUsIHRoaXMgY2FuCgkgIGF2b2lkIHNvbWUgZXh0cmEgcHJvY2Vzc2luZywgbW9zdGx5IGluIHN1YmNsYXNzZXMuCgoyMDEyLTAzLTIyIDA4OjM2OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLWMsIC0tdG9jIHRvIHByaW50IHRoZSB0b2MKCSAgUHJpbnQgdGhlIG5lc3RlZCBjaGFwdGVyIGFuZCBlZGl0aW9uIHN0cnVjdHVyZSBvZiB0aGUgY2hhcHRlcnMgbWVzc2FnZS4KCjIwMTItMDMtMjggMjM6MTU6NDEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiBhZGQgb3ZlcnZpZXcgb2YgR3N0VG9jIHVzYWdlCgoyMDEyLTAzLTE0IDIxOjE0OjIzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdFRvYyBhbmQgR3N0VG9jU2V0dGVyIHNlY3Rpb25zIHdpdGggcmVsYXRlZCBmdW5jdGlvbnMKCjIwMTItMDMtMTQgMjE6MTM6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2NTZXR0ZXIKCjIwMTItMDMtMTQgMjE6MTI6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2MKCjIwMTItMDMtMTQgMjA6NDU6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIEFkZCBuZXcgR3N0VG9jU2V0dGVyIGludGVyZmFjZQoKMjAxMi0wMy0xNCAyMDo0Mjo1NiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIG5ldyBUT0MgcXVlcnkKCjIwMTItMDMtMTQgMjA6NDE6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgbmV3IFRPQyBtZXNzYWdlCgoyMDEyLTAzLTE0IDIwOjQwOjMyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBuZXcgVE9DIGFuZCBUT0Mgc2VsZWN0IGV2ZW50cwoKMjAxMi0wMy0xNCAyMDowMTo1MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgQWRkIGdlbmVyaWMgdGFibGUgb2YgY29udGVudHMgKFRPQykgc3VwcG9ydAoKMjAxMi0wNC0wMSAxMjowMTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZXVzZSBtb3JlIGNvZGUKCjIwMTItMDQtMDEgMTE6NDI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtYWtlIGZ1bmN0aW9uIHRvIGZpbmQgbWVtb3J5IGluIGEgYnVmZmVyCgkgIE1ha2UgYSBmdW5jdGlvbiB0byBmaW5kIHRoZSBtZW1vcnkgYmxvY2tzIGZvciBhIHJlZ2lvbiBpbiBhIGJ1ZmZlci4KCjIwMTItMDMtMzEgMjE6MjY6MjIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggbW9yZSBtaXNzaW5nIEdTVF9PQkpFQ1QgLT4gR19PQkpFQ1QgdXNlCgoyMDEyLTAzLTMxIDE4OjM0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVzZSBidWZmZXJfd3JhcAoKMjAxMi0wMy0zMSAxNzoxMDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgcGVla19tZW1vcnkgbWV0aG9kCgkgIEFkZCBhIHBlZXJrX21lbW9yeSBtZXRob2QgdGhhdCBzaW1wbHkgZmV0Y2hlcyB0aGUgbWVtb3J5IGF0IGFuIG9mZnNldCB3aXRob3V0CgkgIHJlZmNvdW50aW5nIG9yIG1lcmdpbmcuCgoyMDEyLTAzLTMxIDEyOjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3JhbW1hci55OiBmaXggY2hpbGRwcm94eSBjb2RlCgkgIEl0IHRha2VzIEdPYmplY3QgYW5kIG5vdCBHc3RPYmplY3Qgbm93CgoyMDEyLTAzLTMwIDIyOjQ2OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBpbmNsdWRlIHRoZSBjaGlsZCBuYW1lIGluIHRoZSBzaWduYWwKCjIwMTItMDMtMzAgMjI6NDQ6MzEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IHVwZGF0ZSBmb3IgY2hpbGRwcm94eSBhcGkgY2hhbmdlcwoKMjAxMi0wMy0zMCAyMjozNjozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBzaWduYWwgcGFyYW1ldGVyIHR5cGVzCgoyMDEyLTAzLTMwIDIyOjE3OjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiB1c2UgR09iamVjdCBpbnN0ZWFkIG9mIEdzdE9iamVjdAoJICBUaGlzIG1ha2VzIGl0IHByb3NzaWJsZSB0byBiZSB1c2VkIG1vcmUgd2lkZWx5LiBGaXggaW1wbGVtZW50YXRpb25zIGZvciB0aGUgQVBJCgkgIGNoYW5nZS4KCjIwMTItMDMtMzAgMjI6MDE6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBtYWtlIGdldF9jaGlsZF9ieV9uYW1lIHZpcnR1YWwKCSAgQWxsb3dzIGltcGxlbWVudGF0aW9ucyB0byB1c2UgY3VzdG9tIG5hbWUtPm9iamVjdCBtYXBwaW5ncy4KCjIwMTItMDMtMzAgMjI6MDE6MjYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggaW5kZW50YXRpb24KCjIwMTItMDMtMzAgMTg6MDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGltcHJvdmUgdGhlIGJ1ZmZlciBtZW1vcnkgbWV0aG9kcwoJICBnc3RfYnVmZmVyX3Rha2VfbWVtb3J5IC0+IGdzdF9idWZmZXJfaW5zZXJ0X21lbW9yeSBiZWNhdXNlIGluc2VydCBpcyB3aGF0IHRoZQoJICBtZXRob2QgZG9lcy4KCSAgTWFrZSBhbGwgbWV0aG9kcyBkZWFsIHdpdGggcmFuZ2VzIHNvIHRoYXQgd2UgY2FuIHJlcGxhY2UsIG1lcmdlLCByZW1vdmUgYW5kIG1hcAoJICBhIGNlcnRhaW4gc3Vic2V0IG9mIHRoZSBtZW1vcnkgaW4gYSBidWZmZXIuIFdpdGggdGhlIG5ldyBtZXRob2RzIHdlIGNhbiBtYWtlCgkgIHNvbWUgY29kZSBuaWNlciBhbmQgcmV1c2UgbW9yZSBjb2RlLiBCZWluZyBhYmxlIHRvIGRlYWwgd2l0aCBhIHN1YnNldCBvZiB0aGUKCSAgYnVmZmVyIG1lbW9yeSBhbGxvd3MgdXMgdG8gb3B0aW1pemUgbW9yZSBjYXNlcyBsYXRlciAobW9zdCBub3RhYmx5IFJUUCBoZWFkZXJzCgkgIGFuZCBwYXlsb2FkIHRoYXQgY291bGQgYmUgaW4gZGlmZmVyZW50IG1lbW9yeSBvYmplY3RzKS4KCSAgTWFrZSBzb21lIG1vcmUgY29udmVuaWVudCBtYWNyb3MgdGhhdCBjYWxsIHRoZSBtb3JlIGdlbmVyaWMgcmFuZ2UgbWV0aG9kcy4KCjIwMTItMDMtMzAgMTY6NTM6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBwbHVnIGNhcHMgbGVha3MKCjIwMTItMDMtMzAgMTY6NTM6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogYWxzbyB1bm1hcCBjb2xsZWN0ZWQgbWFwcGVkIGJ1ZmZlcnMKCjIwMTItMDMtMzAgMTY6NTM6MDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHBsdWcgY2FwcyBsZWFrCgoyMDEyLTAzLTMwIDExOjU4OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogUmVuYW1lIDo6ZXZlbnQoKSB0byA6OnNpbmtfZXZlbnQoKSBmb3IgY29uc2lzdGVuY3kKCjIwMTItMDMtMzAgMTE6NDk6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzaW5rOiBsb3dlciBHU1RfQkFTRV9TUkNfRkxBR19MQVNUCgkgIEl0IHdvdWxkbid0IGxlYXZlIHRoYXQgbXVjaCByb29tIGZvciBzdWJjbGFzcyB1c2VycwoKMjAxMi0wMy0zMCAwODo1NTozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlCgoyMDEyLTAzLTI5IDE4OjAzOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBY3R1YWxseSBjb21taXQgdGhlIC5jIGZpbGUgY2hhbmdlcyB0b28KCjIwMTItMDMtMjkgMTc6NTk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bmNoZWNrZWQvaW5saW5lIHZhcmlhbnQgb2YgZ3N0X2J5dGVfd3JpdGVyX3B1dF9idWZmZXIoKQoKMjAxMi0wMy0yOSAxNzo1Mzo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IEZpeCBhbm5vdGF0aW9uCgoyMDEyLTAzLTI5IDE3OjQ0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEZsdXNoIHRoZSBpbnRlcm5hbCBxdWV1ZSB3aGVuIHdlIHNlZSBHU1RfRkxPV19GTFVTSElORwoJICBFbnN1cmVzIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHdpdGggc3RhbGUgY29udGVudHMgKGxpa2UgR3N0UXVlcnkpIGluCgkgIHRoZSBpbnRlcm5hbCBHUXVldWUgYWZ0ZXIgYW55IGJsb2NraW5nIHVwc3RyZWFtIHRocmVhZCByZXR1cm5zLgoKMjAxMi0wMy0yOSAxNzo0MzoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCB1bnJlZiBHc3RRdWVyeSB0cmF2ZWxsaW5nIHRocm91Z2ggdGhlIHF1ZXVlCgkgIFVubGlrZSBldmVudHMgYW5kIGJ1ZmZlcnMsIHRoZSByZWZlcmVuY2UgaXMgbm90IGdpdmVuIHRvIHVzCgoyMDEyLTAzLTI5IDE3OjA4OjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogcGFyc2luZyBhbGxvY2F0aW9uIHF1ZXJ5IG5lZWQgbm90IHByb3ZpZGUgcmVmZmVkIGNhcHMKCSAgLi4uIGluIGxpbmUgd2l0aCBvdGhlciBxdWVyeSBwYXJzaW5nIGZ1bmN0aW9uLgoKMjAxMi0wMy0yOSAxNTo0NTowMCArMDIwMCAgRmFicml6aW8gKE1pc3RvKSBNaWxvIDxtaXN0b2JhYW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc3BlbGxpbmcgZml4ZXMKCjIwMTItMDMtMjkgMTU6Mjg6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0ZWxlbWVudDogbG93ZXIgR1NUX0VMRU1FTlRfRkxBR19MQVNUCgkgIEl0IHdvdWxkbid0IGxlYXZlIHRoYXQgbXVjaCByb29tIGZvciBzdWJjbGFzcyB1c2VycwoKMjAxMi0wMy0yOSAxNToxODozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGUKCSAgZ2NjIDQuNSBjb21wbGFpbnMgb3RoZXJ3aXNlIDooCgoyMDEyLTAzLTI5IDE0OjU0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jCgoyMDEyLTAzLTI5IDE0OjQ1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIGFsbCBub3QtbGlua2VkIHN0cmVhbXMgd2hlbiBhIHN0cmVhbSBzd2l0Y2hlcyBmcm9tIGxpbmtlZCB0byBub3QtbGlua2VkCgkgIFdlIHJlc2V0IGFsbCB0aGUgd2FpdGluZyBzdHJlYW1zLCBsZXQgdGhlbSBwdXNoIGFub3RoZXIgYnVmZmVyIHRvCgkgIHNlZSBpZiB0aGV5J3JlIG5vdyBhY3RpdmUgYWdhaW4uIFRoaXMgYWxsb3dzIGZhc3RlciBzd2l0Y2hpbmcKCSAgYmV0d2VlbiBzdHJlYW1zIGFuZCBwcmV2ZW50cyBkZWFkbG9ja3MgaWYgZG93bnN0cmVhbSBkb2VzIGFueQoJICB3YWl0aW5nIHRvby4KCSAgQWxzbyBpbXByb3ZlIGxvY2tpbmcgYSBiaXQsIHNyY3Jlc3VsdCBtdXN0IGJlIHByb3RlY3RlZCBieSB0aGUKCSAgbXVsdGlxdWV1ZSBsb2NrIHRvbyBiZWNhdXNlIGl0J3MgdXNlZC9zZXQgZnJvbSByYW5kb20gdGhyZWFkcy4KCjIwMTItMDMtMjkgMTQ6MzI6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlY29tcHV0ZSBoaWdoLXRpbWUgdG9vIHdoZW4gZmx1c2hpbmcsIG5vdCBvbmx5IGhpZ2gtaWQKCjIwMTItMDMtMjkgMTM6Mzk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE9ubHkgd2FpdCB1bnRpbCB0aGUgYWN0aXZlIHBhZCdzIHJ1bm5pbmcgdGltZSBpcyByZWFjaGVkIGlmIHRoZSBhY3RpdmUgcGFkIGFscmVhZHkgc2F3IGRhdGEKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGJsb2NrIGZvcmV2ZXIgYmVjYXVzZSB1cHN0cmVhbSAoZS5nLiBtdWx0aXF1ZXVlKSBpcyB3YWl0aW5nCgkgIGZvciB0aGUgcHJldmlvdXNseSBhY3RpdmUgc3RyZWFtIHRvIHJldHVybiBmb3JldmVyICh3aGljaCBpcyB3YWl0aW5nIGhlcmUKCSAgaW4gaW5wdXRzZWxlY3RvcikgYmVmb3JlIHB1c2hpbmcgc29tZXRoaW5nIG9uIHRoZSBuZXdseSBzZWxlY3RlZCBzdHJlYW0uCgoyMDEyLTAzLTI5IDEzOjM0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogdXBkYXRlIG1vcmUgZG9jdW1lbnRhdGlvbgoKMjAxMi0wMy0yOCAxODoxMjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgcmV2aWV3IHNvbWUgZG9jcwoKMjAxMi0wMy0yOCAxNjo0NDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBzaW1wbGlmeSBhbmQgcmVmYWN0b3IgX3NwYW4gYW5kIF9tZXJnZQoJICBVbmlmeSB0aGUgX3NwYW4gYW5kIF9tZXJnZSBjb2RlIHBhdGhzIGFuZCBzaW1wbGlmeSBub3cgdGhhdCB3ZSBvbmx5IHVzZSB0aGlzCgkgIGludGVybmFsbHkuCgoyMDEyLTAzLTI4IDE1OjE2OjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHdlIGFsd2F5cyBjYWxsIF9zcGFuIHdpdGggdGhlIGJ1ZmZlciBzaXplCgoyMDEyLTAzLTI4IDE1OjEyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG1vdmUgc29tZSBjb2RlIGFyb3VuZAoKMjAxMi0wMy0yOCAxNTowODo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiB3ZSBjYWxsIF9zcGFuIGFsd2F5cyB3aXRoIDAgb2Zmc2V0CgoyMDEyLTAzLTI4IDEzOjA4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSBhbHdheXMgRkFMU0UgZnVuY3Rpb24gYXJndW1lbnQKCjIwMTItMDMtMjggMTY6Mzk6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRlbGF5IGJ1ZmZlciB1bnJlZiB1bnRpbCBidWZmZXIgbm8gbG9uZ2VyIG5lZWRlZAoKMjAxMi0wMy0yOCAxMjo0NDo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IHVuaWZ5IGJ1ZmZlciBtZXJnZSBtZXRob2RzCgkgIEFkZCBnc3RfYnVmZmVyX2FwcGVuZCgpIHdoaWNoIGFwcGVuZHMgdGhlIG1lbW9yeSBibG9ja3MgZnJvbSBvbmUgYnVmZmVyIHRvCgkgIGFub3RoZXIuIFJlbW92ZSB0aGUgb2xkIGluZWZmaWNpZW50IF9tZXJnZSgpIGFuZCBfam9pbigpIG1ldGhvZHMgd2hpY2ggZm9yY2VkIGEKCSAgcHJlbWF0dXJlIG1lbWNweSBpbiBtb3N0IGNhc2VzLgoJICBSZW1vdmUgdGhlIF9pc19zcGFuKCkgYW5kIF9zcGFuKCkgbWV0aG9kcyB0aGV5IGFyZSBub3QgbmVlZGVkIGFueW1vcmUgbm93IHRoYXQKCSAgd2UgY2FuIF9hcHBlbmQoKS4gTWVyZ2luZyBhbmQgc3Bhbm5pbmcgd2lsbCBiZSBkZWxheWVkIHVudGlsIG1hcHBpbmcgb3IgbWF5YmUKCSAgbm90IGF0IGFsbCB3aGVuIHRoZSBlbGVtZW50IGNhbiBkZWFsIHdpdGggdGhlIGRpZmZlcmVudCBtZW1vcnkgYmxvY2tzLgoKMjAxMi0wMy0yNyAxNToyNDo0OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCB0eXBvIGluIGRvY3N0cmluZwoKMjAxMi0wMy0yNyAxNToyNDo0OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCB0eXBvIGluIGRvY3N0cmluZwoKMjAxMi0wMy0yNyAxNToxNjo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZS1lbmFibGUgX3NwYW4gb2Zmc2V0IGNhbGN1bGF0aW9ucwoJICB3aGVuIHdlIF9zcGFuIHR3byBjb21wbGV0ZSBidWZmZXJzLCB3ZSBjYW4gY29weSBvZmZzZXRzIGFuZCB0aW1lc3RhbXBzLgoKMjAxMi0wMy0yNyAxNTowMDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogYWRkIHJlZmNvdW50IHRvIHRyYWNlIGRlYnVnCgoyMDEyLTAzLTI3IDE0OjU5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIF9pc193cml0YWJsZSBjaGVja3MKCSAgQWRkIHNvbWUgY2hlY2tzIHRvIGFzc2VydCBvbiB3cml0YWJpbGl0eSBmb3IgZnVuY3Rpb25zIHRoYXQgbW9kaWZ5IG1ldGFkYXRhLgoKMjAxMi0wMy0yNyAxMjo0MDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHJlbW92ZSBjb25zdCBmcm9tIGdldC9zZXRfcGFyYW0KCSAgUmVtb3ZlIHRoZSBjb25zdCBmcm9tIHRoZSBHc3RDYXBzIGluIGdldC9zZXRfcGFyYW0uIHNldF9wYXJhbSBtb2RpZmllcwoJICB0aGUgcmVmY291bnQgb2YgdGhlIGNhcHMuCgkgIERvbid0IGluY3JlbWVudCB0aGUgcmVmY291bnQgb2YgdGhlIGNhcHMgcmVzdWx0IG9mIGdldF9wYXJhbSBsaWtlIHdlCgkgIGRvIHdpdGggb3RoZXIgb2JqZWN0cy4KCSAgVXBkYXRlIHNvbWUgYW5ub3RpYXRpb25zLgoKMjAxMi0wMy0yNyAxMjozOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBhbm5vdGF0aW9uIGZvciBfcmVsZWFzZQoJICBfcmVsZWFzZSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlcgoKMjAxMi0wMy0yNyAxMjozMToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBDaGFuZ2UgdGhlIHRpbWVvdXQgYXJndW1lbnQgdHlwZSBvZiBnc3RfYnVzX3BvbGwoKSBmcm9tIEdzdENsb2NrVGltZURpZmYgdG8gR3N0Q2xvY2tUaW1lCgkgIFRoaXMgaXMgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIEdzdEJ1cyBtZXRob2RzIHRoYXQgaGF2ZSBhIHRpbWVvdXQuCgoyMDEyLTAzLTI2IDE5OjEzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogcmVtb3ZlIG9sZCBjb2RlCgkgIFJlbW92ZSBhdHRlbXB0IHRvIGRlbGF5IF9tYWtlX3dyaXRhYmxlCgoyMDEyLTAzLTI2IDE4OjA3OjM1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGVuc3VyZSB3cml0YWJsZSBjYXBzIHByaW9yIHRvIG1vZGlmaWNhdGlvbgoKMjAxMi0wMy0yNiAxNzozODo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGNoZWNrIG1pbi9tYXhfYnVmZmVycwoKMjAxMi0wMy0yNiAxNzozNToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTpmaXggY29weS1hbmQtcGFzdGUgcHJvYmxlbQoKMjAxMi0wMy0yNiAxMTo1NDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIFJlcGxhY2UgbWFzdGVyIHdpdGggMC4xMQoKMjAxMi0wMy0yMyAxODo1MTo1MiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGFkZCBhbmQgaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlcwoJICAuLi4gc28gdGhleSBlbmQgdXAgaW4gYSBtb3JlIGV4cGVjdGVkIGRlYnVnIGNhdGVnb3J5IHJhdGhlciB0aGFuIG9ibGl2aW9uLgoKMjAxMi0wMy0yMiAxNTo1NDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBkZXZlbAoKMjAxMi0wMy0yMiAxNTo0OTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QtYnVpbGQuc3RhbXA6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjExLjMKCjIwMTItMDMtMjIgMTU6MjI6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBhdXRvbWF0aWMgYW5kIHVuZG9jdW1lbnRlZCBzZXR0aW5nIG9mIGFsd2F5c19pbl9wbGFjZQoJICAuLi4gd2hpY2ggY29udHJvbHMgaG93IHRvIChmb3JjaWJseSkgZGVhbCB3aXRoIChub24tKXdyaXRhYmxlIGRhdGEgYW5kCgkgIGlzIG5vdCBuZWNlc3NhcmlseSByZWxhdGVkIHRvIGlkZW50aWNhbCBjYXBzLgoJICBJbiBwYXJ0aWN1bGFyLCBpdCBpcyBhbHNvIG5vdCBzbyBoZWxwZnVsIGFueW1vcmUgd2l0aCBhIG1vcmUgYWR2YW5jZWQKCSAgR3N0VmlkZW9GaWx0ZXIgc3ViY2xhc3Mgd2hpY2ggYWx3YXlzIGhhcyBhIHRyYW5zZm9ybV9pcCBtZXRob2QgY3VycmVudGx5LAoJICBldmVuIHRob3VnaCBpdHMgc3ViY2xhc3MgbWF5IG5vdCBoYXZlIGEgY29ycmVzcG9uZGluZyBfaXAgbWV0aG9kLgoKMjAxMi0wMy0yMiAxMDo0NTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCjIwMTItMDMtMjIgMDg6MzU6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IHNoYWRvdyBnbG9iYWwgdmFyaWFibGUKCjIwMTItMDMtMjEgMTI6MTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgZGlzdCBuZXQgZGlyZWN0b3J5IG9ubHkgb25jZQoKMjAxMi0wMy0yMSAwOTowMDo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IE9ubHkgYWxsb3cgZml4ZWQgY2FwcyBpbiB0aGUgYWNjZXB0LWNhcHMgcXVlcnkKCjIwMTItMDMtMjAgMTc6MDg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIHF1ZXJpZXMgbW9yZSBkaXJlY3RseQoJICBKdXN0IGNhbGwgb3VyIGludGVybmFsIHF1ZXJ5IGZ1bmN0aW9uIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCB0aGUgcGFkIGFuZCB0aGUKCSAgcXVlcnkgaGFuZGxlciBldGMuCgoyMDEyLTAzLTIwIDE3OjA4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBzb21lIHBlcmZvcm1hbmNlIGRlYnVnCgoyMDEyLTAzLTIwIDEzOjE0OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGFkOiBpbXByb3ZlIGRvY3Mgb2YgZ2V0L3B1bGxfcmFuZ2UKCSAgSW1wcm92ZSB0aGUgZG9jcyBvZiB0aGUgZ2V0L3B1bGxfcmFuZ2UgZnVuY3Rpb25zLCBkZWZpbmUgdGhlIGxpZmV0aW1lIG9mIHRoZQoJICBidWZmZXIgaW4gY2FzZSBvZiBlcnJvcnMgYW5kIHNob3J0IHJlYWRzLgoJICBNYWtlIHN1cmUgdGhlIGNvZGUgZG9lcyB3aGF0IHRoZSBkb2NzIHNheS4KCjIwMTItMDMtMjAgMTA6MjA6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoKQoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHdyYXAgYWxsIGtpbmRzIG9mIG1lbW9yeSBieSBleHBvc2luZyBhbGwgcHJvcGVydGllcyB0bwoJICBnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoKS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBhbHNvIGNyZWF0ZSB3cml0YWJsZQoJICBtZW1vcnkgd2l0aG91dCBhIGZyZWUgZnVuY3Rpb24gb3IgbWVtb3J5IHdpdGggZXh0cmEgcGFkZGluZy4KCjIwMTItMDMtMTkgMTE6NDU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaGFuZGxlIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNiAyMjo1MToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDMtMTYgMjI6MjU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc21hbGwgY2xlYW51cHMKCjIwMTItMDMtMTYgMjE6Mzc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHBhZDogY2hhbmdlIHRoZSBzZW1hbnRpY3Mgb2YgZ2V0L3B1bGxfcmFuZ2UgYSBsaXR0bGUKCSAgTWFrZSBpdCBzbyB0aGF0IG9uZSBjYW4gc3BlY2lmeSBhIGJ1ZmZlciBmb3IgZ2V0L3B1bGxfcmFuZ2Ugd2hlcmUgdGhlIGRvd25zdHJlYW0KCSAgZWxlbWVudCBzaG91bGQgd3JpdGUgaW50by4gV2hlbiBwYXNzaW5nIE5VTEwsIHVwc3RyZWFtIHNob3VsZCBhbGxvY2F0ZSBhIGJ1ZmZlciwKCSAgbGlrZSBpbiAwLjEwLgoJICBXZSBhbHNvIG5lZWQgdG8gY2hhbmdlIHRoZSBwcm9iZXMgYSBsaXR0bGUgYmVjYXVzZSBiZWZvcmUgdGhlIHB1bGwgcHJvYmUsIHRoZXJlCgkgIGNvdWxkIGFscmVhZHkgYmUgYSBidWZmZXIgcGFzc2VkLiBUaGlzIHRoZW4gYWxsb3dzIHVzIHRvIHVzZSB0aGUgc2FtZSBQUk9CRQoJICBtYWNybyBmb3IgYmVmb3JlIGFuZCBhZnRlciBwdWxsaW5nLgoJICBXaGlsZSB3ZSdyZSBhdCB0aGUgcHJvYmVzLCBtYWtlIHRoZSBxdWVyeSBwcm9iZSBtb3JlIHBvd2VyZnVsIGJ5IGhhbmRsaW5nIHRoZQoJICBHU1RfUEFEX1BST0JFX0RST1AgcmV0dXJuIHZhbHVlLiBSZXR1cm5pbmcgX0RST1AgZnJvbSBhIHF1ZXJ5IHByb2JlIHdpbGwgbm93CgkgIHJldHVybiBUUlVFIHVwc3RyZWFtIGFuZCB3aWxsIG5vdCBmb3J3YXJkIHRoZSBwcm9iZSB0byB0aGUgcGVlciBvciBoYW5kbGVyLgoJICBBbHNvIGhhbmRsZSBfRFJPUCBmb3IgZ2V0L3B1bGxfcmFuZ2UgcHJvcGVybHkgYnkgbm90IGRpc3BhdGNoaW5nIHRvIHRoZQoJICBwZWVyL2hhbmRsZXIgb3IgYnkgZ2VuZXJhdGluZyBFT1Mgd2hlbiB0aGUgcHJvYmUgcmV0dXJucyBEUk9QIGFuZCBubyBidWZmZXIuCgkgIE1ha2UgZmlsZXNyYyBoYW5kbGUgdGhlIG5vbi1OVUxMIGJ1ZmZlciBwYXNzZWQgaW4gdGhlIGdldF9yYW5nZSBmdW5jdGlvbiBhbmQKCSAgc2tpcCB0aGUgYWxsb2NhdGlvbiBpbiB0aGF0IGNhc2UsIHdyaXRpbmcgZGlyZWN0bHkgaW50byB0aGUgZG93bnN0cmVhbSBwcm92aWRlZAoJICBidWZmZXIuCgkgIFVwZGF0ZSB0ZXN0cyBiZWNhdXNlIG5vdyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0byBub3QgcGFzcyBhIHJhbmRvbSB2YWx1ZSBpbiB0aGUKCSAgYnVmZmVyIHBvaW50ZXIgdG8gZ2V0L3B1bGxfcmFuZ2UKCjIwMTItMDMtMTYgMjE6MzY6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMi0wMy0xNiAxODozOTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGRvY3MgYSBsaXR0bGUsIGFsbG9jX2J1ZmZlciBpcyBnb25lCgoyMDEyLTAzLTE1IDIyOjA5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IHNwbGl0IGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbgoJICBNYWtlIHNlcGFyYXRlIG1ldGhvZHMgdG8gY29udHJvbCB0aGUgYnVmZmVycG9vbCBhbmQgdGhlIGFsbG9jYXRvciB1c2VkIGJ5IHRoZQoJICBidWZmZXJwb29sLgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgYWxsb2NhdG9yIG9mIGEgcG9vbC4KCjIwMTItMDMtMTUgMjA6MjM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiByZXdvcmsgdGhlIEFMTE9DQVRJT04gcXVlcnkKCSAgU2VwYXJhdGUgdGhlIGJ1ZmZlcnBvb2wgYW5kIGFsbG9jYXRvciBoaW50cyBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeSwgc29tZQoJICBvZiB0aGUgdmFsdWVzIGRvbid0IGFsd2F5cyBtYWtlIHNlbnNlIHRvZ2V0aGVyLgoJICBLZWVwIHRoZSBidWZmZXJwb29sIGFuZCBpdHMgY29uZmlndXJhdGlvbiB0b2dldGhlci4KCSAgS2VlcCB0aGUgYWxsb2NhdG9yIGFuZCBpdHMgcGFyYW1ldGVycyB0b2dldGhlci4KCSAgQWxsb3cgZm9yIG11bHRpcGxlIGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbnMgaW4gdGhlIHF1ZXJ5LgoKMjAxMi0wMy0xNSAxNjo1MDozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjb21tZW50IGFuZCBkZWJ1ZyBpbXByb3ZlbWVudAoKMjAxMi0wMy0xNSAxNjo0OTozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogaW1wcm92ZSBkZWJ1ZwoJICBhbHNvIGZpeCBhIHBvdGVudGlhbCBtZW1vcnkgbGVhawoKMjAxMi0wMy0xNSAxNDoyODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDMtMTUgMTQ6MDE6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIEdzdEJ1ZmZlclBvb2xQYXJhbXMgLT4gR3N0QnVmZmVyUG9vbEFjcXVpcmVQYXJhbXMKCSAgQmVjYXVzZSB0aG9zZSBmbGFncyBhcmUgbm90IGZyb20gdGhlIGJ1ZmZlcnBvb2wgYnV0IGZvciB0aGUgYWNxdWlyZSBmdW5jdGlvbi4KCjIwMTItMDMtMTUgMTM6Mjg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGdyb3VwIGFsbG9jYXRpb24gcGFyYW1ldGVycyBpbiBhIHN0cnVjdAoJICBHcm91cCB0aGUgZXh0cmEgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGluIGEgR3N0QWxsb2NhdGlvblBhcmFtcyBzdHJ1Y3R1cmUgdG8gbWFrZQoJICBpdCBlYXNpZXIgdG8gZGVhbCB3aXRoIHRoZW0gYW5kIHNvIHRoYXQgd2UgY2FuIGV4dGVuZCB0aGVtIGxhdGVyIGlmIG5lZWRlZC4KCSAgTWFrZSBnc3RfYnVmZmVyX25ld19hbGxvY2F0ZSgpIHRha2UgdGhlIEdzdEFsbG9jYXRpb25QYXJhbXMgZm9yIGFkZGVkCgkgIGZ1bmN0aW9uYWxpdHkuCgkgIEFkZCBib3hlZCB0eXBlIGZvciBHc3RBbGxvY2F0aW9uUGFyYW1zLgoKMjAxMi0wMy0xNSAwMDoyNTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBvbmx5IHVwZGF0ZSBidWZmZXIgc2l6ZSBvbiBzaG9ydCByZWFkCgoyMDEyLTAzLTE1IDAwOjI0OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggY29weSBmdW5jdGlvbgoJICBDb3B5IHRoZSBzdHJ1Y3R1cmUgdG9vLgoKMjAxMi0wMy0xNSAwMDoyMzo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbWF4c2l6ZSBhZnRlciBhbGlnbgoJICB3aGVuIHdlIGFsaWduIHRoZSBkYXRhIHBvaW50ZXIsIG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhlIG1heHNpemUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTItMDMtMTQgMjI6NTg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiByZW1vdmUgdXNlbGVzcyBQUk9YWV9BTExPQ0FUSU9OIGZsYWcKCjIwMTItMDMtMTQgMjE6MzI6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEFkZCAwIHBhZGRpbmcKCSAgQ2hhbmdlIGdzdF9hbGxvY2F0b3JfYWxsb2MoKSBzbyB0aGF0IHdlIGNhbiBhbHNvIHNwaWNpZnkgZmxhZ3MgYW5kIHBhZGRpbmcuCgkgIEFkZCAyIG5ldyBmbGFncyB0byBtYXJrIHRoZSBtZW1vcnkgMCBwcmVmaXhlZC9wYWRkZWQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHJlbW92ZSBzb21lIHJlc2l6ZXMgaW4gdGhlIGJhc2UgY2xhc3Nlcy4KCSAgV2hlbiBhbGxvY2F0aW5nIG1lbW9yeSwgbWVtc2V0IHByZWZpeCBhbmQgcGFkZGluZyB3aXRoIDAgd2hlbiB0aGUgZmxhZ3MgdGVsbAoJICB1cyB0by4KCSAgT24gcmVzaXplLCBjbGVhciB0aGUgemVybyBwYWRkaW5nIGZsYWdzIGlmIHdlIGNhbid0IGd1YXJhbnRlZSB0aGUgbWVtb3J5IGlzCgkgIHN0aWxsIDAgZmlsbGVkLgoJICBVcGRhdGUgdGVzdHMuCgoyMDEyLTAzLTE0IDE5OjM3OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcXVlcnk6IGFsc28gaW5jbHVkZSBwYWRkaW5nIGluIEFMTE9DQVRJT04gcXVlcnkKCSAgTmVnb3RpYXRpbmcgcGFkZGluZyBpcyBuZWVkZWQgb24gc2Vjb25kIHRob3VnaHQgc28gaW5jbHVkZSBpdCBpbiB0aGUKCSAgQUxMT0NBVElPTiBxdWVyeS4KCSAgTWFrZSB0aGUgYnVmZmVycG9vbCB0YWtlIHBhZGRpbmcgaW50byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZy4KCSAgTWFrZSBiYXNlc3JjIHRha2UgcGFkZGluZyBpbnRvIGFjY291bnQuCgkgIFVzZSBwYWRkaW5nIGFuZCBwcmVmaXggd2hlbiBhbGxvY2F0aW5nIGluIGJhc2V0cmFuc2Zvcm0uCgoyMDEyLTAzLTE0IDE4OjQ1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHRha2UgcHJlZml4IGludG8gYWNjb3VudCB3aGVuIGFsbG9jYXRpbmcKCSAgVGFrZSBpbnRvIGFjY291bnQgdGhlIHByZWZpeCB0aGF0IHdlIHJlY2VpdmVkIGZyb20gdGhlIGFsbG9jYXRpb24gcXVlcnkgYW5kIHVzZQoJICBpdCB0byBhbGxvY2F0ZSBhbmQgcmVzaXplIGEgbGFyZ2VyIGJ1ZmZlci4KCjIwMTItMDMtMTQgMTc6MTY6MzYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZnJlZSBvd25lZCBkaXNjYXJkZWQgcG9vbCBjb25maWcKCjIwMTItMDMtMTQgMTY6Mjc6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgcGFkOiBpbXBsZW1lbnQgRFJBSU4gaGFuZGxpbmcKCSAgV2hlbiB3ZSBmb3J3YXJkIHRoZSBEUkFJTiBxdWVyeSBhbmQgdGhlcmUgaXMgbm90aGluZyB0byBmb3J3YXJkIGl0IHRvLCBhc3N1bWUgd2UKCSAgYXJlIGRyYWluZWQuCgkgIFdoZW4gYSBiYXNlc2luayByZWNlaXZlcyBhIGRyYWluIHF1ZXJ5LCByZXBseSB3aXRoIFRSVUUuCgoyMDEyLTAzLTE0IDE2OjE0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogYWRkIG5ldyBkcmFpbiBxdWVyeQoJICBXaXRoIHRoZSBuZXcgc2VyaWFsaXplZCBkb3duc3RyZWFtIHF1ZXJpZXMgd2UgY2FuIGltcGxlbWVudCBhIGRyYWluIHF1ZXJ5IHRoYXQKCSAgbWFrZXMgYW4gZWxlbWVudCB3YWl0cyB1bnRpbCBhIGRvd25zdHJlYW0gZWxlbWVudCByZXBsaWVzIHRvIHRoZSBxdWVyeS4KCjIwMTItMDMtMTQgMTY6MDE6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzZXJpYWxpemVkIHF1ZXJpZXMgcHVzaCBzdGlja3kgZXZlbnRzIGZpcnN0CgkgIEJlZm9yZSB3ZSBjYW4gcHJvY2VlZCB3aXRoIGEgc2VyaWFsaXplZCBxdWVyeSwgd2UgbmVlZCB0byBiZSBzdXJlIHRoYXQgYWxsCgkgIHN0aWNreSBldmVudHMgd2VyZSBwdXNoZWQuCgoyMDEyLTAzLTE0IDE1OjQyOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlczogd2FybiB3aGVuIHJlY2VpdmluZyBhIHNlcmlhbGl6ZWQgZXZlbnQKCSAgLi4gdW50aWwgd2UgaW1wbGVtZW50IGl0LgoKMjAxMi0wMy0xNCAxNTo0MjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkIHN1cHBvcnQgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNCAxNToyOToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB0YWtlIHN0cmVhbSBsb2NrIG9uIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNCAxNToxNjo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBlbmZvcmNlIGNvcnJlY3QgcXVlcnkgZGlyZWN0aW9uCgoyMDEyLTAzLTE0IDE0OjUxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogcmVnaXN0ZXIgcXVlcmllcyBsaWtlIGV2ZW50cwoJICBBbHNvIHJlZ2lzdGVyIHF1ZXJpZXMgd2l0aCBhIFF1ZXJ5VHlwZSB0aGF0IGFsbG93cyB1cyB0byBjaGVjayBpZiB0aGUgZXZlbnQgaXMKCSAgc2VudCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLiBBZGQgYSBzZXJpYWxpemVkIHF1ZXJ5IHR5cGUgYmVjYXVzZSB3ZSB3aWxsIG5lZWQKCSAgdGhpcyBmb3IgdGhlIGFsbG9jYXRpb24gcXVlcnkuCgkgIFJlbW92ZSB0aGUgUXVlcnlUeXBlRGVmaW5pdGlvbiBzdHVmZiwgaXQgaXMgbm90IHVzZWQgYW55bW9yZSBhbmQgd2Ugbm93IHVzZQoJICBjdXN0b20gcXVlcmllcyBhbmQgc2VwYXJhdGUgQVBJIGZvciB0aGVtLgoJICBVcGRhdGUgZGVmcy4KCjIwMTItMDMtMTQgMTI6NDI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIG1vcmUgZGVidWcKCjIwMTItMDMtMTMgMTU6NDA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIG9sZCBjb21wYXQgbW9kZQoKMjAxMi0wMy0xMyAxNTo0MDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGRvY3MgdXBkYXRlCgoyMDEyLTAzLTEzIDEwOjA0OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogcmVtb3ZlIGdzdF9jYXBzX3VuaW9uKCkKCSAgUmVtb3ZlIGdzdF9jYXBzX3VuaW9uKCksIHVzZSBnc3RfY2Fwc19tZXJnZSgpLiBUaGlzIGZ1bmN0aW9uIHdhcyBub3QgdXNlZAoJICBhbnltb3JlIGFuZCBpdCBpcyB1bmNsZWFyIHdoYXQgdGhlIGRpZmZlcmVuY2UgaXMgd2l0aCBfbWVyZ2UoKS4KCjIwMTItMDMtMTIgMjM6MDU6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgQVNfTElCVE9PTCB2ZXJzaW9uCgkgIEFQSSB3YXMgYWRkZWQgdG8gY29sbGVjdHBhZHMyCgoyMDEyLTAzLTEyIDIzOjAyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBiYWNrcG9ydCBBU19MSUJUT09MIHZlcnNpb24gZnJvbSAwLjEwLjM2IHJlbGVhc2UKCSAgTWlnaHQgZml4IGlzc3VlcyB3aXRoIG1pc3Npbmcgc3ltYm9scyBmb3IgcGVvcGxlIHdobyBpbnN0YWxsIEdTdHJlYW1lcgoJICBmcm9tIHNvdXJjZSBhbmQgYXQgc29tZSBwb2ludCBqdW1wZWQgYmFjayBhbmQgZm9ydGggYmV0d2VlbiBnaXQgbWFzdGVyCgkgIGFuZCB0aGUgMC4xMC4zNiByZWxlYXNlIChvciAwLjEwLiBicmFuY2gpLgoKMjAxMi0wMy0xMiAyMzowODowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGRvY3M6IGZpeCBmdW5jdGlvbiBuYW1lIGFuZCB0eXBvCgoyMDEyLTAzLTEyIDE5OjUyOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGdldCB0ZW1wbGF0ZSBjYXBzIG9ubHkgb25jZQoJICBHZXQgdGhlIHRlbXBsYXRlIGNhcHMgb2YgdGhlIHBhZHMgb25seSBvbmNlLCBhdm9pZHMgdW5lY2Vzc2FyeSByZWYKCSAgYW5kIHVucmVmcy4KCjIwMTItMDMtMTIgMTg6MzQ6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBkZWxheSBfbWFrZV93cml0YWJsZSgpIHVudGlsIG5lZWRlZCBpbiBfbm9ybWFsaXplKCkKCSAgRGVsYXkgX21ha2Vfd3JpdGFibGUoKSB1bnRpbCB3ZSBhY3R1YWxseSBmb3VuZCBhIGxpc3QgYW5kIG5lZWQgdG8gdXBkYXRlIHRoZQoJICBjYXBzLgoKMjAxMi0wMy0xMiAxODoyNTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNob3J0Y3V0IHNpbXBsaWZ5IGVhcmxpZXIKCSAgQSBzaW1wbGUgY2FwcyBpcyBhbHJlYWR5IHNpbXBsaWZpZWQsIG5vIG5lZWQgdG8gY2hlY2sgZm9yIGZpeGVkbmVzcy4KCjIwMTItMDMtMTIgMTg6MjI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBjbGVhbnVwLCByZW1vdmUgY29uc3QKCjIwMTItMDMtMTIgMTg6MDI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBjbGVhbnVwcwoKMjAxMi0wMy0xMiAxNjo0MDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGRvYyBpbXByb3ZlbWVudAoKMjAxMi0wMy0xMiAxNjoxODo0NSArMDIwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGJ1bXAgcmVxdWlyZWQgR0xpYiB0byAyLjMxLjE0CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE5MTEKCjIwMTItMDMtMTIgMTM6NTA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmctdG8tMC4xMS50eHQgYSBsaXR0bGUKCjIwMTItMDMtMTIgMTI6MzU6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggc29tZSAwLjExIEZJWE1FcwoKMjAxMi0wMy0xMiAxMjoyMTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1ha2UgX25vcm1hbGl6ZSB0YWtlIG93bmVyc2hpcCBvZiBpbnB1dAoJICBNYWtlIGdzdF9jYXBzX25vcm1hbGl6ZSgpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBzbyB0aGF0IGl0IGNhbiBtb3JlCgkgIGludGVsbGlnZW50bHkgZGVjaWRlIHdoZW4gdG8gY29weSBvciBub3QuCgoyMDEyLTAzLTEyIDExOjM4OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IF9kb19zaW1wbGlmeSgpIC0+IF9zaW1wbGlmeSgpCgkgIFJlbmFtZSBfZG9fc2ltcGxpZnkoKSB0byBfc2ltcGxpZnkoKS4gVGhlIG5hbWUgd2FzIGludHJvZHVjZWQgYXMgYSByZXBsYWNlbWVudAoJICBtZXRob2QgZm9yIGEgZGVwcmVjYXRlZCBtZXRob2QgYnV0IHdlIGNhbiBub3cgcmVuYW1lIGl0IGFnYWluLgoJICBGaXggc29tZSBkb2NzLgoKMjAxMi0wMy0xMiAxMDo0MjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogaW1wcm92ZSBfZG9fc2ltcGxpZnkKCSAgTWFrZSBnc3RfY2Fwc19kb19zaW1wbGlmeSgpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBjYXBzIGFuZCBwcm9kdWNlIGEKCSAgc2ltcGxpZmllZCBvdXRwdXQgY2Fwcy4gVGhpcyByZW1vdmVzIHRoZSByZXF1aXJlbWVudCBvZiBoYXZpbmcgd3JpdGFibGUgaW5wdXQKCSAgY2FwcyBhbmQgdGhlIG1ldGhvZCBjYW4gbWFrZSB0aGUgY2FwcyB3cml0YWJsZSBvbmx5IHdoZW4gbmVlZGVkLgoKMjAxMi0wMy0xMiAxMDo0MToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCSAgd2l0aCB0aGUgbmV3IGNhcHMgQVBJLCB0aGVyZSBpcyBtb3JlIHNoYXJpbmcgYW5kIGxlc3MgY29weWluZyBnb2luZyBvbiBzbyB0aGUKCSAgdW5pdCB0ZXN0IHJlZmNvdW50cyBhcmUgZGlmZmVyZW50LgoKMjAxMi0wMy0xMiAwOTowMzo0MiArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICB1cGRhdGUgbGljZW5zZSBsaW5rIHRvIHBvaW50IHRvIDIuMSBsaWNlbnNlLCBpbnN0ZWFkIG9mIGp1c3QgZ2VuZXJpYyBsZ3BsIGZpbGUsIHdoaWNoIGlzIGFsd2F5cyB0aGUgbGF0ZXN0IGFuZCB0aHVzIG5vdCBjb3JyZWN0IGZvciBnc3RyZWFtZXIKCjIwMTItMDMtMTEgMTg6NTc6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYXZvaWQgdXNpbmcgaW4tcGxhY2Ugb3ByYXRpb25zCgkgIFJld29yayBzb21lIGNhcHMgb3BlcmF0aW9ucyBzbyB0aGV5IGRvbid0IHJlbHkgb24gd3JpdGFibGUgY2FwcyBidXQgaW5zdGVhZCB0YWtlCgkgIG93bmVyc2hpcCBvZiB0aGUgaW5wdXQgY2FwcyBhbmQgZG8gX21ha2Vfd3JpdGFibGUoKSBvbmx5IHdoZW4gbmVlZGVkLgoJICBSZW1vdmUgc29tZSBjb25zdCBmcm9tIGNhcHMgZnVuY3Rpb25zLCBpdCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgZm9yCgkgIHJlZmNvdW50ZWQgb2JqZWN0cyBhbmQgZG9lcyBub3QgYWxsb3cgdXMgdG8gcmV0dXJuIGEgcmVmY291bnQgdG8gdGhlIGNvbnN0IGlucHV0CgkgIGNhcHMuCgkgIFJld29yayB0aGUgYmFzZSBjbGFzc2VzIGZpeGF0ZSB2bWV0aG9kcyB0byBub3Qgb3BlcmF0ZSBvbiB0aGUgY2FwcyBpbi1wbGFjZS4KCSAgQWxsIHRoaXMgc2F2ZXMgdXMgYXJvdW5kIDMwJSBvZiBjYXBzIGFuZCBzdHJ1Y3R1cmUgY29weSBhbmQgbmV3IG9wZXJhdGlvbnMuCgoyMDEyLTAzLTExIDE3OjIyOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBhbGxvY2F0aW9uIGRlYnVnCgoyMDEyLTAzLTEwIDA5OjI1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiByZW1vdmUgY29uc3QgZnJvbSByZWZjb3VudGVkIEdzdENhcHMKCSAgSGF2aW5nIGNvbnN0IG9uIHJlZmNvdW50ZWQgb2JqZWN0cyByZXF1aXJlIHVzIHRvIG1ha2UgY29waWVzIGluc3RlYWQgb2Ygc2ltcGx5CgkgIHRha2luZyBhIHJlZiwgZG9uJ3QgZG8gdGhhdC4KCjIwMTItMDMtMTAgMDk6MTU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIGNvcHkgd2hlbiBjYXBzIGFyZSBmaXhlZAoJICBBdm9pZCBkb2luZyBhIHVzZWxlc3MgY29weSB3aGVuIHRoZSBjYXBzIGFyZSBmaXhlZCBhbmQgc2ltcGxpZnkgd2lsbCBub3QgZG8KCSAgYW55dGhpbmcuCgoyMDEyLTAzLTA5IDE2OjE0OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHNtYWxsIG9wdGltaXphdGlvbnMKCSAgc2hvcnRjdXQgaGVhdnkgd29yayB3aGVuIGJ1ZmZlcl9yZXNpemUgZG9lcyBub3RoaW5nLgoJICBBdm9pZCBhbiBleHRyYSBfcmVmIHdoZW4gbWFwcGluZyBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgR19MSUtFTFkuCgoyMDEyLTAzLTA5IDE1OjAzOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgYnVmZmVycG9vbDogZml4IGFycmF5IHR5cGVzCgoyMDEyLTAzLTA5IDE0OjMwOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wMy0wOSAxMTo1Mzo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhbHNvIHB1c2ggc3RpY2t5IGV2ZW50cyBvbiBuZXcgZXZlbnQKCSAgTWFrZSBhIGhlbHBlciBmdW5jdGlvbiBjaGVja19zdGlja3kgdG8gY2hlY2sgYW5kIHB1c2ggcGVuZGluZyBzdGlja3kgZXZlbnRzLgoJICBNb3ZlIHRoZSBoYW5kbGluZyBvZiB0aGUgcmVzdWx0IG9mIHB1c2hpbmcgdGhlIHN0aWNreSBldmVudCBpbnNpZGUgdGhlCgkgIHB1c2hfZXZlbnQgZnVuY3Rpb24sIHdlIG5lZWQgdG8gbWFyayB0aGUgZXZlbnQgYXMgcmVjZWl2ZWQgd2hlbiBpdCB3YXMgcHVzaGVkCgkgIGNvcnJlY3RseS4KCSAgTW92ZSB0aGUgc3RpY2t5IGV2ZW50cyBjb2RlIG91dHNpZGUgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50X3VuY2hlY2tlZCBhbmQKCSAgbWFrZSBpdCBwdXJlbHkgaGFuZGxlIHNlbmRpbmcgdGhlIGV2ZW50IHRvIHRoZSBwZWVyLgoJICB3aGVuIHB1c2hpbmcgYSBzdGlja3kgZXZlbnQsIGZpcnN0IHN0b3JlIGl0IG9uIHRoZSBwYWQuIFRoZW4gY2hlY2sgYW5kIHB1c2ggYW55CgkgIHBlbmRpbmcgc3RpY2t5IGV2ZW50cyB3aGVuIHdlIGdldCBhIHNlcmlhbGl6ZWQgb3Igc3RpY2t5IGV2ZW50IG9uIGEgc3JjcGFkLiBUaGlzCgkgIGZpeGVzIHRoZSBpc3N1ZSB3aGVyZSBzdGlja3kgZXZlbnRzIGFyZSBub3QgcHVzaGVkIHdoZW4gYW4gZXZlbnQgaXMgcHVzaGVkLgoKMjAxMi0wMy0wOSAxMTo1MjoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzdG9yZSB0aGUgcmVjZWl2ZWQgcmVzdWx0IGZyb20gX2ZvcmVhY2gKCSAgSWYgdGhlIGZvcmVhY2ggZnVuY3Rpb24gY2hhbmdlcyB0aGUgcmVjZWl2ZWQgc3RhdGUgb2YgdGhlIHN0aWNreSBldmVudCwgbWFrZQoJICBzdXJlIHdlIHJlbWVtYmVyIHRoYXQuCgoyMDEyLTAzLTA5IDExOjUyOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBjb21tZW50CgoyMDEyLTAzLTA5IDExOjQ5OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0OiBhZGQgdGVzdCB0byBjaGVjayBzdGlja3kgZXZlbnRzIG9yZGVyCgkgIFN0aWNreSBldmVudHMgcHVzaGVkIG9uIGFuIHVubGlua2VkIHBhZCBzaG91bGQgYmUgc3RvcmVkIG9uIHRoZSBwYWQuIFdoZW4gdGhlCgkgIHBhZCBpcyB0aGVuIGxpbmtlZCBhbmQgYW4gZXZlbnQgaXMgcHVzaGVkLCB0aGUgZXZlbnQgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIHRoZQoJICBhbHJlYWR5IGV4aXN0aW5nIHN0aWNreSBldmVudHMgYW5kIHRoZW4gdGhlIHN0aWNreSBldmVudHMgc2hvdWxkIGJlIHB1c2hlZCBpbgoJICB0aGUgb3JkZXIgdGhhdCB0aGV5IHdlcmUgb3JpZ2luYWxseSBwdXNoZWQuCgoyMDEyLTAzLTA5IDExOjQ4OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3Q6IGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTItMDMtMDggMjA6MDg6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IHBvcnQgcGlwZWxpbmUvc2VlayB0ZXN0IHRvIDAuMTEKCSAgRG9lc24ndCBmYWlsIGluIDAuMTEgb2YgY291cnNlLCBhdCBsZWFzdCBub3Qgb24gbXkgbWFjaGluZS4KCjIwMTItMDMtMDggMTk6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29tbW9uCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0dGFzay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmgKCjIwMTItMDMtMDggMTY6MzA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBwYWQsIHRhc2s6IGltcHJvdmUgZGVidWcgbG9nZ2luZwoKMjAxMi0wMy0wOCAxNjoyNjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIHBhZHMsIGNvbGxlY3RwYWRzMjogZ2V0IHJpZCBvZiBzdXBlcmZsdW91cyBicmFja2V0cyBhcm91bmQgc3RhdGljIHJlYyBtdXRleCBjYWxscwoJICBNYWtlcyBpdCBwb3NzaWJsZSB0byBkZWZpbmUgdGhvc2UgY2FsbHMgdG8gc29tZXRoaW5nIGZvciB0cmFjaW5nLgoKMjAxMi0wMy0wOCAxNjoyNToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGNvbW1vbiBtb2R1bGUKCSAgRm9yIG1ha2UgZm9vL2Jhci5jaGVjay1ub3JlcGVhdCB0YXJnZXQuCgoyMDEyLTAzLTA4IDE1OjIzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IGFkZCBtaW5pbWFsIGJhc2VzcmMgISBzaW5rIHNlZWtpbmcgdW5pdCB0ZXN0CgkgIFNob3VsZCByZXByb2R1Y2UgJ0dTdHJlYW1lci1XQVJOSU5HICoqOiB3cm9uZyBTVFJFQU1fTE9DSyBjb3VudCAwJwoJICB3YXJuaW5ncyAod2l0aCBtYWtlIHBpcGVsaW5lcy9zZWVrLnRvcnR1cmUgb3IgcGlwZWxpbmVzL3NlZWsuZm9yZXZlcgoJICBhbnl3YXksIHNpbmNlIGl0IGFwcGVhcnMgdG8gYmUgcmFjeSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4NDYKCjIwMTEtMTItMjYgMDA6MTg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdmFsdWU6IHJlbW92ZSBnc3RfdmFsdWVfcmVnaXN0ZXJfe3N1YnRyYWN0LHVuaW9uLGludGVyc2VjdH1fZnVuYygpIEFQSQoJICBUaGVyZSBpc24ndCByZWFsbHkgYW55IG5lZWQgdG8gcHJvdmlkZSBwdWJsaWMgQVBJIGZvciB0aGF0LiBJdCdzIG5vdAoJICB1c2VkIGFueXdoZXJlIGluIHByYWN0aWNlLCBhbmQgd2UgYWltIHRvIHByb3ZpZGUgYW4gQVBJIHRoYXQgd29ya3MKCSAgZm9yIEdzdENhcHMsIG5vdCBzb21lIGtpbmQgb2YgZ2VuZXJpYyBzZXQgbWFuaXB1bGF0aW9uIEFQSSBiYXNlZCBvbgoJICBHVmFsdWUuIE1ha2luZyB0aGlzIHByaXZhdGUgYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gb3B0aW1pc2UgdGhpcwoJICBsYXRlci4gV2UgY2FuIGFsd2F5cyBwdXQgaXQgYmFjayBpZiBzb21lb25lIGFjdHVhbGx5IG5lZWRzIGl0LgoKMjAxMi0wMy0wOCAxMDo0NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHJlZmNvdW50IGVycm9yCgoyMDEyLTAzLTA4IDA5OjQ1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV0dXJuIEFOWSBmb3IgYSBwYWQgd2l0aG91dCB0ZW1wbGF0ZQoJICBCZWNhdXNlIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZV9jYXBzKCkgcmV0dXJucyBBTlkgd2hlbiB0aGVyZSBpcyBubyB0ZW1wbGF0ZSwKCSAgdGhlIHF1ZXJ5IGNhcHMgZnVuY3Rpb24gc2hvdWxkIGFsc28gcmV0dXJuIEFOWSB3aGVuIHRoZXJlIGlzIG5vIHRlbXBsYXRlIChhbmQgbm8KCSAgcGFkIGN1cnJlbnQgY2FwcykgaW5zdGVhZCBvZiBFTVBUWS4KCjIwMTItMDMtMDggMDk6NDQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMi0wMy0wNyAxNTozNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgY29tbWVudAoKMjAxMi0wMy0wOCAxMDozMjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBtZXJnZSBtaXN0YWtlCgoyMDEyLTAzLTA4IDEwOjE5OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmMKCjIwMTItMDMtMDcgMTE6MjM6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhcnJhbmdlIGZvciBwcm9wZXJseSBkaXNqb2ludCBmcmFtZSBmbGFncwoKMjAxMi0wMy0wNiAxNToxNzowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkZWxheSBwb29sIGFjdGl2YXRpb24KCSAgRGVsYXkgdGhlIGFjdGl2YXRpb24gb2YgdGhlIGJ1ZmZlcnBvb2wgdW50aWwgd2UgYWN0dWFsbHkgbmVlZCBhIGJ1ZmZlciBmcm9tIHRoZQoJICBwb29sLgoKMjAxMi0wMy0wNiAxMjoyODowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCAnc2VsZi1jb21wYXJpc29uIGFsd2F5cyBldmFsdWF0ZXMgdG8gdHJ1ZScKCSAgVGhpcyB3YXMgcmVhbGx5IGEgYnVnLgoKMjAxMi0wMy0wNiAxMjoyNDo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEZpeCAndXNlIG9mIGxvZ2ljYWwgJyYmJyB3aXRoIGNvbnN0YW50IG9wZXJhbmQnIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhpcyBpcyBhY3R1YWxseSBhIHJlYWwgYnVnLgoKMjAxMi0wMy0wNiAxMjoyMzoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4ICdlcXVhbGl0eSBjb21wYXJpc29uIHdpdGggZXh0cmFuZW91cyBwYXJlbnRoZXNlcycgY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMy0wNiAxMjoxNjoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4ICdjb21wYXJpc29uIG9mIHVuc2lnbmVkIGVudW0gZXhwcmVzc2lvbiA+PSAwIGlzIGFsd2F5cyB0cnVlJyBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAzLTA1IDE1OjIzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvbid0IHByb3Bvc2VfYWxsb2NhdGlvbiBiZWZvcmUgbmVnb3RpYXRpb24KCSAgQW5zd2VyIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHdpdGggRkFMU0Ugd2hlbiB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgeWV0IGJlY2F1c2UgYXQKCSAgdGhhdCBwb2ludCB3ZSBoYXZlIG5vIGlkZWEgaWYgd2UgbmVlZCB0byBwcm94eSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBvciBub3QuCgoyMDEyLTAzLTA1IDE0OjQxOjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGhhbmRsaW5nIG9mIG11bHRpcGxlIG5ld3NlZ21lbnQgZXZlbnRzCgkgIFByZXZpb3VzbHkgb25seSB0aGUgbGFzdCB3b3VsZCBiZSBwdXNoZWQsIHdoaWNoIHdvdWxkIGNhdXNlCgkgIGludmFsaWQgcnVubmluZyB0aW1lcyBkb3duc3RyZWFtLiBUaGlzIGFsc28gZml4ZXMgdGhlIGhhbmRsaW5nCgkgIG9mIHVwZGF0ZSBuZXdzZWdtZW50IGV2ZW50cy4KCjIwMTItMDMtMDUgMTQ6MjU6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBbHNvIGZsdXNoIHRoZSBjbG9zZV9zZWdtZW50CgkgIFB1c2hpbmcgdGhpcyBhZnRlciBmbHVzaGluZyB3aWxsIGNvbmZ1c2UgZG93bnN0cmVhbS4KCjIwMTItMDMtMDUgMTQ6MjM6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1vdmUgb2Jzb2xldGUgY29kZSBhbmQgbW92ZSBnYXAgaGFuZGxpbmcgdG8gdGhlIGNvcnJlY3QgcGxhY2UKCSAgVGhlIHNlZ21lbnQgc3RhcnQgYWRqdXN0bWVudCBjb2RlIGluIHB1bGwgbW9kZSBzaG91bGQgbmV2ZXIgdHJpZ2dlcgoJICBhbnltb3JlIGJlY2F1c2UgdGhlIGJpc2VjdGlvbiBjb2RlIGVhcmxpZXIgd291bGQgaGF2ZSBhbHJlYWR5IG1hZGUKCSAgc3VyZSB0aGF0IHdlJ3JlIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uLgoJICBBbHNvIG1vdmUgdGhlIGdhcCBoYW5kbGluZyBzb21lIGxpbmVzIGJlbG93IGFmdGVyIHNlbmRpbmcgdGhlIGN1cnJlbnRseQoJICBjb25maWd1cmVkIHNlZ21lbnRzLiBPdGhlcndpc2Ugd2UgbWlnaHQgZmlsbCBnYXBzIGluIGEgc2VnbWVudCB0aGF0IGlzCgkgIG5vdCBjb25maWd1cmVkIGRvd25zdHJlYW0geWV0LgoKMjAxMi0wMy0wNSAxMzoxMjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IENsZWFyIHNvbWUgbW9yZSBzdGF0ZSB3aGVuIHJlY2VpdmluZyBGTFVTSF9TVE9QCgkgIExpa2UgcGVuZGluZyBzZXJpYWxpemVkIGV2ZW50cyBhbmQgdGhlIGN1cnJlbnRseSBjYWNoZWQgYnVmZmVyLgoKMjAxMi0wMy0wNSAxMzowMDozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE9ubHkgcXVldWUgc2VyaWFsaXplZCBldmVudHMgZm9yIHNlbmRpbmcgdGhlbSBsYXRlcgoKMjAxMi0wMy0wNSAwMDozNDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGliZ3N0Y2hlY2s6IGV4cG9ydCBnc3RfY29uc2lzdGVuY3lfY2hlY2tlcl9hZGRfcGFkKCkKCSAgRml4IGJ1aWxkIG9mIHRoZSBhZGRlciB1bml0IHRlc3QgaW4gLWJhc2UgYWdhaW4uCgoyMDEyLTAzLTAyIDE3OjMyOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZWZpbmUgbWV0YWRhdGEgZmlsdGVyIGFuZCB0cmFuc2Zvcm0KCSAgQWRkIGEgdm1ldGhvZCB0byBmaWx0ZXIgbWV0YWRhdGEgdGhhdCBzaG91bGQgYmUgcGFzc2VkIHVwc3RyZWFtLiBCeSBkZWZhdWx0LAoJICBkb24ndCBwYXNzIGFueXRoaW5nLgoJICBBZGQgYSB2bWV0aG9kIHRvIHRyYW5zZm9ybSBtZXRhZGF0YSBmcm9tIHRoZSBpbnB1dCBidWZmZXIgdG8gdGhlIG91dHB1dCBidWZmZXIuCgkgIEJ5IGRlZmF1bHQsIG5vdGhpbmcgaXMgdHJhbnNmb3JtZWQgb3IgY29waWVkLgoKMjAxMi0wMy0wMiAxNzowNDowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0OiBpbmNsdWRlIGdzdG1ldGEuaAoKMjAxMi0wMy0wMiAxNzowMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtb3JlIGRlYnVnIGluZm8KCjIwMTItMDMtMDIgMTM6MDI6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAzLTAyIDEzOjAyOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGltcHJvdmUgbWV0YWRhdGEgdGVzdAoKMjAxMi0wMy0wMiAxMjo0NToyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIGJvb2xlYW4gdG8gc2lnbmFsIGEgcmVnaW9uIGNvcHkKCSAgQWRkIGEgYm9vbGVhbiB0byB0aGUgbWV0YWRhdGEgY29weSB0cmFuc2Zvcm0gdGhhdCBzaWduYWxzIGlmIGEgb25seSBhCgkgIHJlZ2lvbiBpcyBjb3BpZWQuCgoyMDEyLTAzLTAyIDEyOjE2OjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpdGVuY3ljaGVja2VyOiBkb24ndCBmYWlsIG9uIG11bHRpcGxlIGZsdXNoX3N0YXJ0IGV2ZW50cwoJICBUaGlzIHNlZW1zIHRvIGJlIG9rYXkgYWZ0ZXIgYSBpcmMgZGlzY3Vzc2lvbi4KCjIwMTItMDMtMDIgMTE6NTc6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiB0cmFuc2Zvcm0gZG9jcwoJICBVc2UgZ3N0LSBwcmVmaXggZm9yIG1ldGFkYXRhIHRyYW5zZm9ybSB0eXBlcy4KCjIwMTItMDMtMDIgMTE6MDQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBmaXggY29tbWVudAoKMjAxMi0wMy0wMiAxMTowNTo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBNYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICBnc3Q6IFJlbW92ZSBnc3RtYXJzaGFsLltjaF0gY29tcGxldGVseSBhbmQgdXNlIHRoZSBnZW5lcmljIG1hcnNoYWxsZXIKCSAgRml4ZXMgYnVnICM2NzExMzAuCgoyMDEyLTAzLTAyIDEwOjUxOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBEb24ndCBpbnN0YWxsIGdzdG1hcnNoYWwuaAoJICBUaGUgZ2VuZXJpYywgRkZJIGJhc2VkIG1hcnNoYWxsZXIgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGVzZQoJICBhbmQgd2UgZGVmaW5pdGVseSBzaG91bGRuJ3QgZXhwb3J0IHRoZSBtYXJzaGFsbGVycyBpbiBvdXIgcHVibGljIEFQSS4KCjIwMTItMDMtMDEgMTc6Mzk6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogaW1wcm92ZSBkZWJ1Z2dpbmcKCSAgQWRkIGNhdGVnb3J5IGZvciBtZXRhZGF0YSBkZWJ1ZwoKMjAxMi0wMy0wMSAxNzozODo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMy0wMSAxNzozODoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMy0wMSAxNToxODowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIG1ldGFkYXRhIHRhZ2dlZCB3aXRoIHRoZSBtZW1vcnkgdGFnCgkgIFJlbW92ZSBtZXRhZGF0YSB0aGF0IGRlc2NyaWJlcyB0aGUgcGFydGljdWxhciBtZW1vcnkgb2YgdGhlIGJ1ZmZlciBpdCBpcwoJICBhdHRhY2hlZCB0by4gV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2UgaW4gbm9uLXBhc3N0aHJvdWdoIG1vZGUgd2Ugd2lsbCBhbGxvY2F0ZQoJICBuZXcgbWVtb3J5IGZvciBvdXIgb3V0cHV0IGJ1ZmZlci4KCjIwMTItMDMtMDEgMTU6MTc6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgdGFnIGZvciBtZW1vcnkgbWV0YWRhdGEKCjIwMTItMDMtMDEgMTQ6NDk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbWV0aG9kIHRvIHJlbW92ZSBhbGxvY2F0aW9uX21ldGEKCSAgQWxzbyBnX3JldHVybl9pZl9mYWlsIGZvciBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbnN0ZWFkIG9mIHNpbGVudGx5IGZhaWxpbmcuCgoyMDEyLTAzLTAxIDE0OjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBJbXByb3ZlIHRoZSBwcm9wb3NlIGFsbG9jYXRpb24gdm1ldGhvZCBieSBwYXNzaW5nIHRoZSBkb3duc3RyZWFtIGFsbG9jYXRpb24KCSAgcXVlcnkgdG8gaXQuIFRoaXMgd2F5IHRoZSB2bWV0aG9kIGltcGxlbWVudGF0aW9uIGNhbiB1c2UgcHJvcGVydGllcyBvZiB0aGUKCSAgZG93bnN0cmVhbSBhbGxvY2F0aW9uIHRvIGdlbmVyYXRlIHRoZSB1cHN0cmVhbSBxdWVyeSByZXN1bHQuIElmIHRoZXJlIGlzIG5vCgkgIGRvd25zdHJlYW0gcXVldHksIGl0IG1lYW5zIHRoYXQgdGhlIGVsZW1lbnQgaXMgd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlLgoJICBJbXBsZW1lbnQgYSBkZWZhdWx0IGRlY2lkZV9hbGxvY2F0aW9uLgoKMjAxMi0wMy0wMSAxMToxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjbGVhciBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgaW4gcGFzc3Rocm91Z2gKCSAgQ2xlYXIgdGhlIGFsbG9jYXRpb24gcGFyYW1ldGVycyB3aGVuIHdlIG9wZXJhdGUgaW4gcGFzc3Rocm91Z2guCgoyMDEyLTAzLTAxIDExOjA2OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHRlc3RzOiBmaXggb2xkIGNhcHMgaW4gdGVzdHMgbm93IHRoYXQgY29yZSB3YXJucwoKMjAxMi0wMy0wMSAxNDo1MToyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgbGliczogRml4IHNvbWUgbWVyZ2UgbWlzdGFrZXMKCjIwMTItMDMtMDEgMTQ6NDM6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmMKCjIwMTItMDItMjggMTI6MDM6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBzb21lIGRlYnVnIG1lc3NhZ2UgdHlwb3MKCjIwMTItMDItMjkgMjE6NTc6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGNvbnNpdGVuY3ljaGVja2VyOiBhZGQgaGFuZGxpbmcgZm9yIHNpbmstcGFkcwoJICBBZGQgYSBwYWQtcHJvYmUgZm9yIHNpbmstcGFkcy4gT25lIGNhbiBub3cgYWRkIGV4dHJhIHBhZHMgKGJlbG9uZ2luZyB0byB0aGUgc2FtZQoJICBlbGVtZW50KSB0byBhIGNoZWNrZXIuIFRoaXMgYWxsb3dzIHVzIHRvIGV4dGVuZCB0aGUgY2hlY2tzLgoKMjAxMi0wMi0yOSAxNzoyMDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBzcGxpdCByZWdpc3RyYXRpb24gb2YgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgoJICBTcGxpdCBvdXQgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgbWV0YWRhdGEgQVBJIGFuZCBpdHMgaW1wbGVtZW50YXRpb24uIE1ha2UgYQoJICBHVHlwZSBmb3IgZWFjaCBtZXRhZGF0YSBBUEkuIFRoaXMgYWxsb3dzIHVzIHRvIHN0b3JlIGV4dHJhIGluZm9ybWF0aW9uIHdpdGggdGhlCgkgIEFQSSB0eXBlIHN1Y2ggYXMgdGhlIHRhZ3MuCgkgIENoYW5nZSB0aGUgYnVmZmVyIEFQSSBzbyB0aGF0IHdlIGNhbiBnZXQgdGhlIG1ldGFkYXRhIHVzaW5nIHRoZSBBUEkgR1R5cGUuCgkgIENoYW5nZSB0aGUgcXVlcnkgQVBJIHNvIHRoYXQgd2UgdXNlIHRoZSBtZXRhZGF0YSBBUEkgR1R5cGUgaW4gdGhlIGFsbG9jYXRpb24KCSAgcXVlcnkgaW5zdGVhZCBvZiBhIHN0cmluZy4KCSAgVXBkYXRlIG5ldGFkZHJlc3MgYW5kIHVuaXQgdGVzdHMKCjIwMTItMDItMjkgMTY6MDA6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5vYmplY3Q6IHNtYWxsIC5oIGluZGVudCBmaXgKCjIwMTItMDItMjkgMTI6NDE6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHByaW50IGEgZ193YXJuaW5nKCkgaWYgc29tZW9uZSB0cmllcyB0byBjb25zdHJ1Y3QgMC4xMC1zdHlsZSByYXcgYXVkaW8vdmlkZW8gY2FwcwoKMjAxMi0wMi0yOSAwODo0NDowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IGFsc28gY2hlY2sgZm9yIGR1cGxpY2F0ZWQgZmx1c2hfc3RhcnRzCgoyMDEyLTAyLTI4IDIwOjM2OjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhZGQgbW9yZSBsb2dnaW5nCgoyMDEyLTAyLTI4IDE2OjE3OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGFkZCByZXR1cm4gdmFsZSB0byB0cmFuc2Zvcm0KCSAgQWRkIGEgYm9vbGVhbiByZXR1cm4gdmFsdWUgc28gdGhhdCB3ZSBjYW4gc2VlIHdoZW4gYSB0cmFuc2Zvcm0gZmFpbHMuCgoyMDEyLTAyLTI4IDEyOjUyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGFkZCBtZXRob2QgdG8gY2hlY2sgZm9yIGEgdGFnCgoyMDEyLTAyLTI4IDEyOjUxOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCjIwMTItMDItMjggMTE6MzQ6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSAgbWV0YTogYWRkIHN1cHBvcnQgdG8gdGFnZ2luZyB0aGUgbWV0YWRhdGEKCSAgQWRkIHN1cHBvcnQgZm9yIGFkZGluZyB0YWdzIHRvIHRoZSBtZXRhZGF0YS4gd2l0aCBzb21lIHN0YW5kYXJkIGtleXMsIHRoaXMKCSAgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gZGVzY3JpYmUgd2hhdCB0aGUgbWV0YWRhdGEgcmVmZXJzIHRvLiBXZSBzaG91bGQgYmUKCSAgYWJsZSB0byB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUgaWYgYSB0cmFuc2Zvcm1hdGlvbiBkZXN0cm95cyB0aGUgbWV0YWRhdGEKCSAgb3Igbm90LgoKMjAxMi0wMi0yNyAxMzozNToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgU3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gc2VsZWN0ZWQgZmlsZXMsIGZvciBnX3ZhbHVlX2FycmF5XyogbW9zdGx5CgoyMDEyLTAyLTI3IDExOjQ2OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogaW5jcmVhc2UgYnVzIHRlc3QgdGltZW91dAoKMjAxMi0wMi0yMSAyMDo0Mzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IG1ha2UgZGF0ZXRpbWUgdGVzdCBtb3JlIHJlbGlhYmx5IHdoZW4gY29tcGFyaW5nIHR3byBhbG1vc3QgaWRlbnRpY2FsIG5vd3MKCSAgQWNjb3VudCBmb3Igcm91bmRpbmcgZXJyb3JzIGluIHNvbWUgcGxhY2VzLCBhbmQgdGhhdCB0d28gbm93cyBhcmUKCSAgbm90IGFsd2F5cyBlbnRpcmVseSBpZGVudGljYWwsIHNvIGFsbG93IHNvbWUgbGVld2F5IHdoZW4gY29tcGFyaW5nCgkgIG1pY3Jvc2Vjb25kcyBhbmQgc2Vjb25kcy4gUmFuIGludG8gdGhpcyB0b28gb2Z0ZW4sIGVzcC4gd2hlbiB0aGUKCSAgc3lzdGVtIGlzIHVuZGVyIGxvYWQuCgoyMDEyLTAyLTI3IDA5OjQ4OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgcmVtb3ZlIHNvbWUgdXNlbGVzcyBpbmNsdWRlcyBpbiAuaAoKMjAxMi0wMi0yNyAwOTowMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoJICBFeHBvc2UgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgdGltZW91dCBiZWNhdXNlIHN1YmNsYXNzZXMgdXNlcyB0aGlzLgoKMjAxMi0wMi0yNiAyMDo0NToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgc3lzdGVtY2xvY2s6IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgoyMDEyLTAyLTI2IDIwOjQ0OjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDItMjYgMTY6MzI6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBtYWtlIG1vcmUgZmllbGRzIHByaXZhdGUKCjIwMTItMDItMjcgMDA6MDk6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBmaXggY29tcGlsYXRpb24gYWZ0ZXIgbWVyZ2UKCjIwMTItMDItMjcgMDA6MDg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgTkVXUwoJICBSRUxFQVNFCgkgIGNvbmZpZ3VyZS5hYwoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmMKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYwoJICB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oCgoyMDEyLTAyLTI2IDIzOjExOjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiByZXNjdWUgdGhlIGFubm90YXRpb24gZnJvbSBjb2xsZWN0cGFkcwoKMjAxMi0wMi0yNiAyMzoxMDo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogZml4IGEgdHlwbyBpbiBjb21tZW50CgoyMDEyLTAyLTI2IDIyOjU3OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBtb3ZlICJNVCBzYXZlIiB0YWdzIHRvIGRvYyBib2R5CgkgIEl0IGlzIG5vdCB1c2VmdWwgdG8gaGF2ZSAiTVQgc2FmZSIgdGFncyByYW5kb21seSBpbiBib2R5LCByZXR1cm5zIG9yIHNpbmNlIHBhcmFncmFwaHMuCgoyMDEyLTAyLTI1IDE1OjE4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogaW1wbGVtZW50IEdzdEJhc2VTaW5rOjpxdWVyeSBpbnN0ZWFkIG9mIG1lc3Npbmcgd2l0aCB0aGUgcGFkCgoyMDEyLTAyLTI1IDE1OjA4OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogaW1wbGVtZW50IFNFRUtJTkcgcXVlcnkKCSAgV2UgbWF5IG9yIG1heSBub3Qgc3VwcG9ydCBzZWVraW5nLiBzdGRvdXQgdG8gYQoJICB0ZXJtaW5hbCBkb2Vzbid0IHN1cHBvcnQgc2Vla2luZywgZm9yIGV4YW1wbGUsIGJ1dAoJICAuLi4gISBmZHNpbmsgPiBmaWxlLmZvbyBqdXN0IG1pZ2h0LgoKMjAxMi0wMi0yNSAxNTowNzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBpbXBsZW1lbnQgU0VFS0lORyBxdWVyeQoJICBXZSBtYXkgb3IgbWF5IG5vdCBkbyBzZWVraW5nLCBkZXBlbmRzIG9uIHRoZQoJICBvdXRwdXQgZmlsZS9kZXZpY2UgcmVhbGx5LCBpdCBkb2Vzbid0IGhhdmUgdG8KCSAgYmUgYSBmaWxlIGFmdGVyIGFsbC4KCjIwMTItMDItMjUgMTU6MDc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogYW5zd2VyIFNFRUtJTkcgcXVlcnkKCSAgV2UgZG9uJ3QgZG8gc2Vla2luZywgaW4gY2FzZSBhbnlvbmUgd2FudHMgdG8ga25vdy4KCjIwMTItMDItMjQgMjM6Mzk6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggbHNlZWsoKSByZXR1cm4gY29kZSBoYW5kbGluZwoJICBsc2VlaygpIHJldHVybnMgdGhlIG9mZnNldCBpZiBzdWNjZXNzZnVsLCBhbmQgdGhpcyBpcyAhPSAwIGFuZAoJICBkb2VzIG5vdCBpbmRpY2F0ZSBhbiBlcnJvci4gQW5kIGlmIGl0IGRvZXMgYWN0dWFsbHkgZmFpbCwgZG9uJ3QKCSAgcmV0dXJuIEZBTFNFICgwKSBhcyBhbiBpbnQsIGJ1dCAtMS4gTm9uZSBvZiB0aGVzZSB0aGluZ3MgYXJlCgkgIGxpa2VseSB0byBoYXZlIG1hZGUgYSBkaWZmZXJlbmNlLCBldmVyLiBJIGRvbid0IHRoaW5rIHRoZSBvZmZzZXQKCSAgc2VlayBjYW4gZXZlciBhY3R1YWxseSBoYXBwZW4sIHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24gYW5kIHRoZQoJICBjdXJyZW50IG9mZnNldCBzaG91bGQgYWx3YXlzIGJlIGluY3JlYXNlZCBpbiBsb2NrIHN0ZXAsIHVubGVzcwoJICB0aGVyZSB3YXMgYW4gZXJyb3IgaW4gd2hpY2ggY2FzZSB3ZSdkIGp1c3QgZXJyb3Igb3V0LgoKMjAxMi0wMi0yNCAyMzoxOTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRvbid0IGZvcmdldCB0byBjbGVhbiB1cCByZWdpc3RyeSB0ZW1wIGZpbGUgaW4gYW5vdGhlciBlcnJvciBjYXNlCgkgIEFsc28gY2xlYW4gdXAgdGVtcCBmaWxlIGlmIHdlIGdldCBhbiBlcnJvciBkdXJpbmcgd3JpdGUoKSByYXRoZXIKCSAgdGhhbiBqdXN0IHdoZW4gZG9pbmcgZnN5bmMoKSBvciBjbG9zZSgpLgoKMjAxMi0wMi0yNCAxNToyNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHJhY2UKCSAgQWZ0ZXIgYSB3cml0ZXIgaGFzIHdyaXR0ZW4gdG8gaXRzIHJlc2VydmVkIHdyaXRlIGxvY2F0aW9uLCBpdCBjYW4gb25seSBtYWtlIHRoZQoJICBsb2NhdGlvbiBhdmFpbGFibGUgZm9yIHJlYWRpbmcgaWYgYWxsIG9mIHRoZSB3cml0ZXJzIHdpdGggbG93ZXIgbG9jYXRpb25zIGhhdmUKCSAgZmluaXNoZWQuCgoyMDEyLTAyLTI0IDEyOjUxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggc3VidGxlIHJhY2UKCSAgRml4IGEgcmFjZSB3aGVyZSB0aGUgcmVhZGVyIHdvdWxkIHNlZSB0aGUgdXBkYXRlZCB0aGUgdGFpbCBwb2ludGVyIGJlZm9yZSB0aGUKCSAgd3JpdGUgY291bGQgd3JpdGUgdGhlIGRhdGEgaW50byB0aGUgcXVldWUuIEZpeCB0aGlzIGJ5IGhhdmluZyBhIHNlcGFyYXRlIHJlYWRlcgoJICB0YWlsIHBvaW50ZXIgdGhhdCBpcyBvbmx5IGluY3JlbWVudGVkIGFmdGVyIHRoZSB3cml0ZXIgd3JvdGUgdGhlIGRhdGEuCgoyMDEyLTAyLTI0IDExOjAwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmVjb25maWd1cmUgbWV0aG9kcwoJICBSZW5hbWUgZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QgdG8gZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlX3NpbmsgYmVjYXVzZQoJICB0aGF0IGlzIHdoYXQgaXQgZG9lcy4gQWxzbyByZW1vdmUgdGhlIGNhcHMgYW5kIHNpemUgYmVjYXVzZSB0aGF0IGlzIG5vdCBuZWVkZWQuCgkgIFJlbmFtZSBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUgdG8gZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlX3NyYy4KCSAgUmVtb3ZlIHNvbWUgb2xkIHVudXNlZCBjb2RlIGluIGNhcHNmaWx0ZXIuCgoyMDEyLTAyLTI0IDEwOjIzOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGZsZXNoIG91dCB0aGUgbWV0YWRhdGEgdHJhbnNmb3JtCgkgIEZsZXNoIG91dCB0aGUgdHJhbnNmb3JtIG1ldGhvZC4gQWRkIGEgdHlwZSBhbmQgZXh0cmEgaW5mbyB0byB0aGUgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uIHNvIHRoYXQgaW1wbGVtZW50YXRpb24gY2FuIHRyYW5zZm9ybSB0aGUgbWV0YWRhdGEuCgkgIFJlbW92ZSB0aGUgY29weSBmdW5jdGlvbiBhbmQgcmVwbGFjZSB3aXRoIHRoZSBtb3JlIGdlbmVyaWMgdHJhbnNmb3JtLgoKMjAxMi0wMi0yNCAxMDoyMzoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEyLTAyLTIzIDA4OjQ4OjIyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBGaXggZ2FwIGluIE1ha2VmaWxlCgoyMDEyLTAyLTIzIDA4OjQ4OjEwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgc3BlbGxpbmcgZml4CgoyMDExLTEyLTI2IDE2OjQ1OjIwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGZpeCBzcGVsbGluZyBvZiB3cml0YWJsZQoKMjAxMi0wMi0yMyAxNTozMjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgdXNlcl9kYXRhIHRvIEdzdE1hcEluZm8KCSAgQWRkIGV4dHJhIHBvaW50ZXJzIHRvIEdzdE1hcEluZm8gc28gdGhhdCBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSB0aGVzZSB0byBzdG9yZQoJICBleHRyYSBpbmZvLgoKMjAxMi0wMi0yMyAxNTozMjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGltcHJvdmUgZG9jcwoKMjAxMi0wMi0yMyAxMjowOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJICBVcGRhdGUgTkVXUyBhbmQgUkVMRUFTRSBhcyB3ZWxsCgoyMDEyLTAyLTIzIDExOjU5OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHRyYW5zZm9ybSBsb2NrCgoyMDEyLTAyLTIzIDEwOjM2OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQnVtcCB2ZXJzaW9uIGFmdGVyIHJlbGVhc2VzCgoyMDEyLTAyLTIzIDExOjA4OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgdHJhbnNmb3JtIGxvY2sKCSAgVGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUgYnkgdGhlIGJhc2VjbGFzcy4gc3ViY2xhc3NlcyBzaG91bGQgZG8gdGhlaXIgb3duCgkgIGxvY2tpbmcgd2hlbiBuZWVkZWQuCgoyMDEyLTAyLTIzIDEwOjEyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogY2xlYW51cHMKCSAgQ2xlYW4gdXAgdGhlIHNldGNhcHMgZnVuY3Rpb24uCgkgIFRoZSBwYXNzdGhyb3VnaCB2YXJpYWJsZSBpcyBwcm90ZWN0ZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2suCgoyMDEyLTAyLTIyIDE1OjI2OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBBbHdheXMgY2FsbCB0aGUgcHJvcG9zZV9hbGxvY2F0aW9uIG1ldGhvZCBhbmQgcHJvdmlkZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KCSAgdGhhdCBwYXNzZXMgdGhlIHF1ZXJ5IG9uIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBhbHNvIGNhbGwKCSAgdGhpcy4gQWxzbyBwYXNzIGlmIHRoZSB0cmFuc2Zvcm0gaXMgaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGF0IHRoZQoJICBpbXBsZW1lbnRhdGlvbiBjYW4gYWRqdXN0IGl0cyBhbGdvcml0aG0uCgoyMDEyLTAyLTIyIDEyOjI0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnM6IGltcHJvdmUgZml4YXRlX2NhcHMgZnVuY3Rpb24KCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBhbHNvIGltcGxlbWVudCBub24taW5wbGFjZSBmaXhhdGUgZnVuY3Rpb25zLiBMZXQgdGhlIGZpeGF0ZQoJICBmdW5jdGlvbiBtYWtlIHRoZSBjYXBzIHdyaXRhYmxlIHdoZW4gbmVlZGVkIGJlY2F1c2Ugc29tZSBmaXhhdGUgZnVuY3Rpb25zIG1pZ2h0CgkgIG5vdCBuZWVkIHRvIG1vZGlmeSB0aGUgY2Fwcy4KCjIwMTItMDItMjIgMDI6MDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgbWVtb3J5OiBtYWtlIF9uZXdfd3JhcHBlZCB0YWtlIHVzZXJfZGF0YSBhbmQgbm90aWZ5CgkgIE1ha2UgaXQgcG9zc2libGUgdG8gY29uZmlndXJlIGEgR0Rlc3Ryb3lOb3RpZnkgYW5kIHVzZXJfZGF0YSBmb3IKCSAgZ3N0X21lbW9yeV9uZXdfd3JhcHBlZCgpIHRoaXMgYWxsb3dzIGZvciBtb3JlIGZsZXhpYmxlIHdyYXBwaW5nIG9mIGZvcmVpZ24KCSAgbWVtb3J5IGJsb2Nrcy4KCjIwMTItMDItMDIgMTM6NDU6MjUgLTA1MDAgIFJ5YW4gTG9ydGllIDxkZXNydEBkZXNydC5jYT4KCgkqIGF1dG9nZW4uc2g6CgkgIGJ1aWxkOiBhdm9pZCB0b3VjaGluZyAucG8gZmlsZXMgZHVyaW5nICdtYWtlJwoJICBBIHNpbXBsZSB3b3JrYXJvdW5kIHRvIGRlYWwgd2l0aCBHTlUgZ2V0dGV4dCBhdXRvbWFrZSBpbnRlZ3JhdGlvbgoJICBmYWlsaW5nIHRvIGRlYWwgd2l0aCBnaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjkyMDcKCjIwMTItMDItMjEgMjE6MDY6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBkZWZhdWx0IHRvIHN5bmMtc3RyZWFtcz10cnVlCgkgIEkgdGhpbmsgdGhpcyBpcyB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VyLCBhbmQgd2UgY291bGRuJ3QgZG8gdGhpcwoJICBpbiAwLjEwIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zLCBzbyBjaGFuZ2UgaXQgbm93LgoKMjAxMi0wMi0yMSAxNjozOTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBmaXggcXVldWUgdW5pdCB0ZXN0IGFmdGVyIHF1ZXVlIGNoYW5nZXMKCjIwMTItMDItMjEgMTY6Mzg6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgc29tZSBvbGQgY29kZQoKMjAxMi0wMi0yMSAxNjozNzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBoYW5kbGUgTlVMTCBjYWxsYmFja3MKCSAgV2hlbiB3ZSBoYXZlIGEgbWF0Y2hpbmcgTlVMTCBjYWxsYmFjaywgYWxzbyBjb25zaWRlciB0aGUgJ2NhbGxiYWNrJyBtYXJzaGFsbGVkLAoJICB0aGlzIHdheSBibG9ja2luZyBwcm9iZXMgd2l0aCBhIE5VTEwgY2FsbGJhY2sgYWN0dWFsbHkgd29yay4KCjIwMTItMDItMjEgMTI6NTI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgd2VpcmQgbGluayBiZWhhdmlvdXIKCSAgUmVtb3ZlIHRoZSBsaW5rIGZ1bmN0aW9ucyBhbmQgYWx3YXlzIHN0YXJ0IHRoZSBwYWQgdGFzayBvbiB0aGUgc3JjcGFkLiBJZgoJICBhcHBsaWNhdGlvbnMgbmVlZCB0byBhdXRvcGx1ZyB0aGV5IGNhbiBwdXQgYSBibG9ja2luZyBwcm9iZSBvbiB0aGUgc3JjcGFkIGxpa2UKCSAgdGhleSB3b3VsZCB3aXRoIGFueSBvdGhlciBlbGVtZW50LgoKMjAxMi0wMi0yMSAxMjo1MjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBoYW5kbGUgcHRzL2R0cwoKMjAxMi0wMi0yMSAxMjo0Njo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHJlbW92ZSBjdXN0b20gbWFyc2hhbGxlcgoKMjAxMi0wMi0yMSAxMjo0MzoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGFsc28gZGVidWcgZHRzL3B0cwoKMjAxMi0wMi0yMSAxMjoxMzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGRlYnVnIHB0cyBhbmQgZHRzCgoyMDEyLTAyLTIxIDEyOjEyOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgoyMDExLTExLTI0IDE4OjQwOjQwICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBVbml0IHRlc3QgZm9yIHF1ZXVlIHNyYyBjYXBzIG5vdGlmaWNhdGlvbgoKMjAxMi0wMi0yMCAxNDozNzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggdXNlbGVzcyBzZWdtZW50IHRlc3QKCjIwMTItMDItMjAgMTQ6Mjk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBkb24ndCB1c2UgZHVyYXRpb24gaW4gY2xpcHBpbmcKCSAgRG9uJ3QgdXNlIHRoZSBkdXJhdGlvbiBpbiB0aGUgc2VnbWVudCBmb3IgY2FsY3VsYXRpbmcgY2xpcHBpbmcgdmFsdWVzLgoJICBUaGUgZHVyYXRpb24gaXMgZXhwcmVzc2VkIGluIHN0cmVhbSB0aW1lIGFuZCBjbGlwcGluZyBpcyBkb25lIG9uIHVucmVsYXRlZAoJICB0aW1lc3RhbXAgdmFsdWVzLgoJICBUaGlzIHVzZWQgdG8gYmUgaW50ZXJlc3RpbmcgZm9yIGVsZW1lbnRzIHRoYXQgdXNlZCB0aGUgc2VnbWVudCBzdHJ1Y3R1cmUgdG8KCSAgaW1wbGVtZW50IHNlZWtpbmcgYmVjYXVzZSB0aGVuIHRoZXkgd291bGQgdXNlIHN0cmVhbS10aW1lIGZvciB0aGUgc2VnbWVudAoJICBzdGFydC9zdG9wIHZhbHVlcyBhbmQgdGhlIGR1cmF0aW9uIGNvdWxkIGJlIHVzZWQgYXMgYSBmYWxsYmFjayB3aGVuIHRoZSBzdG9wCgkgIHBvc2l0aW9uIHdhcyBub3Qgc2V0LiBOb3cgdGhhdCB0aGUgY29tcGxldGUgc2VnbWVudCBldmVudCBpcyBwYXNzZWQgYmV0d2VlbgoJICBlbGVtZW50cyB3ZSBjYW5ub3QgZG8gdGhpcyBhbnltb3JlIGJlY2F1c2Ugc29tZSBlbGVtZW50cyBtaWdodCBzdG9yZSB0aGUKCSAgZHVyYXRpb24gYW5kIHN0YXJ0L3N0b3AgdmFsdWVzIHdpdGggZGlmZmVyZW50IHRpbWUgYmFzZXMgaW4gdGhlIHNlZ21lbnQuCgoyMDEyLTAyLTIwIDE0OjIyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZGVidWcgc2VnbWVudCBkdXJhdGlvbiBhcyB3ZWxsCgoyMDEyLTAyLTIwIDExOjQ2OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNvcHkgbWV0YWRhdGEgd2hlbiB1c2luZyBhIHBvb2wKCSAgYWxzbyBjb3B5IHRoZSBtZXRhZGF0YSB3aGVuIHdlIGFsbG9jYXRlZCBhIG5ldyBidWZmZXIgZnJvbSBhIHBvb2wKCjIwMTItMDEtMjYgMDM6MDI6NDggLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBuZXR0aW1lcGFja2V0OiBmaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nIGluIGRlYnVnIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQ5MQoKMjAxMi0wMi0xOCAwMTowNDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbW9yZSBkb2NzCgoyMDEyLTAyLTE3IDE1OjUzOjU4IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGRvYyBmaXh1cHMKCjIwMTItMDItMTcgMTU6MDk6NTYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1vdmUgdmFyaWFibGUgYW5kIGFzc2lnbm1lbnQgdG8gd2hlcmUgaXQncyBuZWVkZWQKCjIwMTItMDItMTcgMTU6MDk6MDYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSByZXR1cm4gdmFsdWUgb2YgZGVjaWRlX2FsbG9jYXRpb24gdm1ldGhvZAoJICBJZiBpdCBmYWlscywgcHJvcGVybHkgcHJvcGFnYXRlIHRoZSBlcnJvcgoKMjAxMi0wMi0xNyAxNTowODozMiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFJlbW92ZSB1c2VsZXNzIGFzc2lnbm1lbnQKCjIwMTItMDItMTcgMTU6MDc6NTYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBHcmFjZWZ1bGx5IGhhbmRsZSBOVUxMIEd2YWx1ZQoJICBBdm9pZHMgdW5yZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIKCjIwMTItMDItMTggMDA6MDM6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzb21lIGVycm9ycyBjcml0aWNhbAoJICBXaGVuIHdlIGhhdmUgbm8gY2hhaW4gZnVuY3Rpb24gb3Igd2hlbiB3ZSBhcmUgb3BlcmF0aW5nIHRoZSBwYWQgaW4gdGhlIHdyb25nCgkgIG1vZGUsIGVtaXQgYSBjcml0aWNhbCBpbnN0ZWFkIG9mIHBvc3RpbmcgYW4gZXJyb3IgbWVzc2FnZS4gVGhpcyBpcyBjZXJ0YWlubHkgYQoJICBwcm9ncmFtbWluZyBlcnJvciBhbmQgd2UgY2Fubm90IGFsd2F5cyBwb3N0IGEgbWVzc2FnZSAobGlrZSB3aGVuIHRoZSBwYWQgaGFzIG5vCgkgIHBhcmVudCkKCjIwMTItMDItMTggMDA6MDM6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhbHNvIGRlYnVnIHBvc2l0aW9uIG9mIHNlZ21lbnQKCjIwMTItMDItMTcgMjM6NTk6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiBiYWNrIHRvIGRldmVsb3BtZW50CgoyMDEyLTAyLTE3IDExOjAyOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuMiA9PT0KCjIwMTItMDItMTcgMTE6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUkVMRUFTRSAwLjExLjIKCjIwMTItMDItMTUgMTc6MTI6MDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB0d2VhayBzb21lIGRvY3VtZW50YXRpb24KCjIwMTItMDItMTUgMTc6MTE6NTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBzaW1wbGlmeSBhbmQgaW1wcm92ZSBmcmFtZSBzdGF0ZSBoYW5kbGluZwoJICBVc2UgYSBmcmFtZSBmbGFnIHRvIHNpZ25hbCB0byBzdWJjbGFzcyBpdCBzaG91bGQgcmVzZXQgYW55IHJldGFpbmVkCgkgIHN0YXRlIHcuci50LiBmcmFtZSBwYXJzaW5nIHNpbmNlIHRoZSBmcmFtZSBiZWluZyBwYXNzZWQgaXMgJ25ldycsCgkgIGkuZS4gbm90IHJlbGF0ZWQgdG8gcHJldmlvdXNseSBwYXNzZWQgYW5kIHByb2Nlc3NlZCBkYXRhLgoKMjAxMi0wMi0xNSAxMzoxNTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgbGVhayBldmVudAoJICBJbiB0aGUgdW5saWtlbHkgY2FzZSB3aGVyZSB0aGUgc3ViY2xhc3Mgc2V0IHRoZSBldmVudCBmdW5jdGlvbiB0byBOVUxMLCBkb24ndAoJICBsZWFrIHRoZSBldmVudC4KCjIwMTItMDItMTUgMTI6MTk6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgYWN0aXZhdGlvbiBjb2RlIG1vcmUgbGlrZSBvdGhlcgoJICBNYWtlIHRoZSBwYWQgYWN0aXZhdGlvbiBjb2RlIGxvb2sgbW9yZSBsaWtlIG90aGVyIGFjdGl2YXRpb24gY29kZS4KCSAgT25seSBzdGFydCB0aGUgc2lua3BhZCB0YXNrIHdoZW4gd2UgZGVjaWRlIHRvIGFjdGl2YXRlIGluIHB1bGwgbW9kZSwgd2hlbiB3ZQoJICBsYXRlciBhZGQgc3JjcGFkIHB1bGxtb2RlIHRoaXMgd2lsbCBiZSBuZWVkZWQuCgoyMDEyLTAyLTE1IDEyOjE4OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYWRkIG1vcmUgZGVidWcKCjIwMTItMDItMTUgMTE6MTE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTItMDItMTUgMTA6NTg6MDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0cmFjayBjb25zdW1lZCBpbnB1dCBzaXplCgkgIC4uLiBhcyB1c2VkIGJ5IHN1YnNlcXVlbnQgaW5wdXQgZGF0YSByYXRlIGVzdGltYXRpb24gKGFuZCBzZWVraW5nKS4KCjIwMTItMDItMTUgMTA6MTE6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGNoYWluIHVwIHRvIHBhcmVudCBmb3IgZGVmYXVsdHMKCSAgQ2hhaW4gdXAgdG8gdGhlIHBhcmVudCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBGQUxTRSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZXZlbnQKCSAgZnVuY3Rpb24gKGJlY2F1c2UgaXQncyBvdGhlcndpc2UgaW1wb3NzaWJsZSB0byByZXR1cm4gYW4gZXJyb3IpLgoKMjAxMi0wMi0xNSAxMDoxMDo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCBpZ25vcmUgcmV0dXJuIHZhbHVlIHdoZW4gc3RhcnRpbmcgYSB0YXNrCgoyMDEyLTAyLTE0IDIwOjE3OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV2ZXJ0ICJiYXNlcGFyc2U6IHJlYWxseSBwcm92aWRlIHVwc3RyZWFtIHRzIHRvIHN1YmNsYXNzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDIzNjM0OTBlZjVhOWZlOGQ0MTQzNjlkMjRmY2FhNjVhOWRmYTgzYWMuCgoyMDEyLTAyLTE0IDE5OjMzOjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGRlYWQgY29kZSBhbmQgc3VwZXJmbHVvdXMgbG9vcCBsZXZlbAoKMjAxMi0wMi0xNCAxOTozMzo0NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1vZGlmeSByZXZlcnNlIHBsYXliYWNrIGhhbmRsaW5nCgkgIC4uLiBzbyBhcyB0byBhbGxvdyB0aGUgcHVzaC1tb2RlIGNhc2UgdG8gcHJvdmlkZSBkYXRhIHRvIHN1YmNsYXNzCgkgIG9uIGEgYnVmZmVyIGJ5IGJ1ZmZlciBiYXNpcyAoYXMgaW4gcmVndWxhciBmb3J3YXJkIGNhc2UpLCByYXRoZXIKCSAgdGhhbiBhbGwgYnVmZmVycyBvZiBhIGZyYWdtZW50IGNodWNrZWQgdG9nZXRoZXIuCgkgIEFsc28gcmVmYWN0b3IgYnVmZmVyIGhhbmRsaW5nIHNvbWUgbW9yZSwgYW5kIGFkZCBzb21lIGRlYnVnLgoKMjAxMi0wMi0xNCAxOTozMzozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlYWxseSBwcm92aWRlIHVwc3RyZWFtIHRzIHRvIHN1YmNsYXNzCgoyMDEyLTAyLTE0IDEzOjI0OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNsZWFuIHVwIHNyYyBxdWVyeSBoYW5kbGVyCgoyMDEyLTAyLTE0IDEyOjU3OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHBhc3MgcmVzdWx0cyBmcm9tIGFjdGl2YXRpb24KCjIwMTItMDItMTQgMTA6MzU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTE0IDEwOjMwOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDItMTMgMTg6MjI6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb2RpZnkgQVBJIHRvIGEgX2ZpbmlzaF9mcmFtZSBiYXNlZCBhcHByb2FjaAoJICAuLi4gd2hpY2ggYWxpZ25zIGl0IHdpdGggb3RoZXIgYmFzZWNsYXNzIGluIHRoZSB3aWxkLCBhbmQgc2hvdWxkIGdpdmUKCSAgY29udmVydGVyIHBhcnNlcnMgYSBiaXQgY2xlYW5lciBmcmVlZG9tLgoKMjAxMi0wMi0xMyAxODowOTo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCByZXZlcnNlIHBsYXliYWNrCgkgIC4uLiBlc3BlY2lhbGx5IGZvciBhbGwta2V5ZnJhbWUgKGF1ZGlvKSBjYXNlcy4KCjIwMTItMDItMTMgMTY6MzM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gcmVmY291bnQgYW5kIHdyaXRhYmlsaXR5CgkgIFJlbmFtZSBfaXNfd3JpdGFibGUoKSB3aXRoIF9pc19leGNsdXNpdmUgYmVjYXVzZSB0aGUgd3JpdGFiaWxpdHkgZG9lcyBub3QgZGVwZW5kCgkgIG9uIHRoZSBhbW91bnQgb2YgcmVmZXJlbmNlcyB0byB0aGUgbWVtb3J5IG9iamVjdCBhbnltb3JlLgoJICBBZGQgYWNjZXNzb3IgbWFjcm9zIGZvciB0aGUgbWVtb3J5IGZsYWdzLgoJICBSZW5hbWUgdGhlIEdzdEJ1ZmZlciBfcGVla19tZW1vcnkoKSBtZXRob2QgdG8gX2dldF9tZW1vcnkoKSBhbmQgcmV0dXJuIGEKCSAgcmVmZXJlbmNlIHRvIHRoZSBtZW1vcnkgbm93IHRoYXQgd2UgY2FuIGRvIHRoaXMgd2l0aG91dCBhZmZlY3Rpbmcgd3JpdGFiaWxpdHkKCSAgb2YgdGhlIG1lbW9yeSBvYmplY3QuIE1ha2UgaXQgcG9zc2libGUgdG8gYWxzbyBtYWtlIHRoaXMgZnVuY3Rpb24gbWVyZ2UgdGhlCgkgIGJ1ZmZlciBtZW1vcnkuCgkgIEFkZCBtZXRob2RzIHRvIHJlcGxhY2UgbWVtb3J5IGluIGEgYnVmZmVyLiBNYWtlIHNvbWUgY29udmllbmNlIG1hY3JvcyBmb3IgdGhlCgkgIGJ1ZmZlciBtZW1vcnkgZnVuY3Rpb25zLgoJICBGaXggdW5pdCB0ZXN0cy4KCjIwMTItMDItMTMgMTc6MjI6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUKCjIwMTItMDItMTMgMTU6MTg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBmaXggdHlwb3MKCjIwMTItMDItMTIgMjE6MTc6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBkb2NzOiBhZGQgYSBwYXJhZ3JhcGggYWJvdXQgdGhlIFNUUkVBTSBDT05GSUcgZXZlbnQgdG8gdGhlIGRlc2lnbiBkb2NzCgoyMDEyLTAyLTEyIDIxOjA0OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1ha2UgX3BhcnNlX250aF9zdHJlYW1fY29uZmlnX2hlYWRlcigpIGFuZCBfcGFyc2Vfc2V0dXBfZGF0YSgpIHJldHVybiBhIGJvb2xlYW4KCSAgQXMgdGhleSBjYW4gZmFpbCAob25seSBvbmUgb2Ygc3RyZWFtIGhlYWRlcnMgb3Igc2V0dXAgZGF0YQoJICBpcyB1c3VhbGx5IHByZXNlbnQpLgoKMjAxMi0wMi0xMiAyMDo1MTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiByZW5hbWUgZ3N0X2V2ZW50X3tzZXQscGFyc2V9X3N0cmVhbV9jb25maWdfY29kZWNfZGF0YSgpIHRvIF9zZXR1cF9kYXRhKCkKCSAgTW9yZSBnZW5lcmljLgoKMjAxMi0wMi0xMCAxNTowMzowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMTAgMTQ6NTg6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGNsZWFuIHVwIG9iamVjdCBpbml0CgkgIE1ha2UgYW4gX2luaXQgbWV0aG9kIHdoZXJlIHRoZSBwYXJlbnQgbWluaS1vYmplY3QgYW5kIG90aGVyIGZpZWxkcyBhcmUKCSAgaW5pdGlhbGl6ZWQuCgkgIENoZWNrIHRoYXQgdGhlIHBhc3NlZCBzdHJ1Y3R1cmUgZG9lc24ndCBhbHJlYWR5IGhhdmUgYSBwYXJlbnQuCgkgIFVzZSB0aGUgX25ld19jdXN0b20gKCkgY29uc3RydWN0b3JzCgoyMDEyLTAyLTA3IDExOjI4OjQxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYml0cmF0ZSBtZWNoYW5pY3Mgc2hvdWxkIG5vdCBkZWFsIHdpdGggZHVyYXRpb24gdXBkYXRlCgkgIC4uLiBzaW5jZSB0aGF0IGlzIGFscmVhZHkgaGFuZGxlZCBieSBfdXBkYXRlX2R1cmF0aW9uLCBvciBzaG91bGQgbm90IGJlIGRvbmUKCSAgYWx0b2dldGhlciBpZiB0aGUgZHVyYXRpb24gaXMgZGV0ZXJtaW5lZCBieSBub24tZXN0aW1hdGVkIG1lYW5zLgoJICBGaXhlcyAjNjY5NTAyLgoKMjAxMi0wMi0xMCAxMjo0NTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IHB1c2hfZXZlbnQgZG9lc24ndCByZXR1cm4gYSBmbG93IHZhbHVlIGFmdGVyIGFsbAoKMjAxMi0wMi0xMCAxMjowNToxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaWxlbmNlIHByb2JlIGRlYnVnIGEgbGl0dGUKCjIwMTItMDItMTAgMTE6MjQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXBsZW1lbnQgZmFzdGVyIEFDQ0VQVF9DQVBTIHF1ZXJ5CgoyMDEyLTAyLTEwIDExOjA5OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IGFkZCBzb21lIHBlcmZvcm1hbmNlIGxvZ2dpbmcKCSAgQWRkIHNvbWUgcGVyZm9ybWFuY2UgbG9nZ2luZyBmb3IgY2FwcyBjb3B5IGFuZCB0aGUgc2xvdyBkZWZhdWx0IGFjY2VwdGNhcHMKCSAgaW1wbGVtZW50YXRpb24KCjIwMTItMDEtMTQgMTk6MTY6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHVwZGF0ZSBhbmQgaW1wcm92ZSBkb2NzCgoyMDEyLTAyLTA5IDAwOjE0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgZ3N0X2VsZW1lbnRfY2xhc3NfaW5zdGFsbF9zdGRfcHJvcHMoKQoJICBJdCdzIG9ubHkgdXNlZCBpbiBvbmUgcGxhY2UgKHJ0bXApLCBhbmQgdGhlcmUgbm90IHZlcnkgd2VsbC4KCjIwMTItMDItMDggMjM6NDc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBmYWtlc3JjLCBpZGVudGl0eSwgZmFrZXNpbms6IGRvIG5vdCBnZW5lcmF0ZSBsYXN0LW1lc3NhZ2UgdXBkYXRlcyBieSBkZWZhdWx0CgkgIERlZmF1bHQgdG8gbm90IGNyZWF0aW5nIGxvdHMgb2Ygb3ZlcmhlYWQgYnkgZG9pbmcgYSBjb3VwbGUgb2YKCSAgZ19zdHJkdXBfcHJpbnRmKCkvZ19mcmVlKCkgcGVyIGJ1ZmZlciBvciBldmVudCBqdXN0IHRvIGdlbmVyYXRlCgkgIGEgbGFzdC1tZXNzYWdlIHVwZGF0ZSB0aGF0IHJhcmVseSBhbnlvbmUgbGlzdGVucyB0by4gVGhpcyBtZWFucwoJICB0aGF0IHlvdSBuZWVkIHRvIGVuYWJsZSBzaWxlbnQ9dHJ1ZSBleHBsaWNpdGx5IGluIG9yZGVyIHRvIGdldAoJICBsYXN0LW1lc3NhZ2UgZHVtcHMgaW4gZ3N0LWxhdW5jaCAtdiBub3cuIE9uIHRoZSB1cHNpZGUsIHBlb3BsZQoJICB3b24ndCBpbmFkdmVydGVudGx5IGVuZCB1cCBiZW5jaG1hcmtpbmcgZ19zdHJkdXBfcHJpbnRmKCkKCSAgcGVyZm9ybWFuY2UgaW5zdGVhZCBvZiBnc3RyZWFtZXIgZGF0YSBoYW5kbGluZyBwZXJmb3JtYW5jZSBhbnkKCSAgbW9yZS4KCSAgTWF5YmUgdGhlIHNpbGVudCBwcm9wZXJ0eSBzaG91bGQgYmUgcmVuYW1lZCB0byBlbmFibGUtbGFzdC1tZXNzYWdlCgkgIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQ/CgoyMDEyLTAyLTA4IDE1OjE2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSAgR1NUX0ZMT1dfV1JPTkdfU1RBVEUgLT4gR1NUX0ZMT1dfRkxVU0hJTkcKCjIwMTItMDItMDggMTU6MzQ6MjggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogdXNlIGRlZmF1bHQgcXVlcnkgZnVuY3Rpb24gdG8gb3B0aW9uYWxseSBmb3J3YXJkIHF1ZXJ5CgkgIC4uLiByYXRoZXIgdGhhbiBxdWVyeWluZyBwZWVyIHVuY29uZGl0aW9uYWxseSB3aXRoIHBvc3NpYmx5IHVuZGVzaXJhYmxlCgkgIG91dGNvbWUgaW4gY2FzZSBvZiBlLmcuIFNDSEVEVUxJTkcgcXVlcnkuCgoyMDEyLTAyLTA4IDE1OjAzOjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYW4gdXAgYSBmZXcgbWlub3IgZXh0cmFuZW91cyB0b2tlbnMKCjIwMTItMDItMDcgMTI6NDg6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgY2xvc2luZyBzZWdtZW50IGhhbmRsaW5nCgoyMDEyLTAyLTA4IDE0OjQ1OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0wOCAxNDozMjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggcmFjZSBpbiBwYWQgbW9kZSBjaGFuZ2UKCSAgRml4ZXMgIzY2ODkwOSBhbmQgcHJlc3VtYWJseSBhbHNvICM2Njk0ODMKCjIwMTItMDItMDggMTI6NTc6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZXJyb3Igd2hlbiBhY3RpdmF0aW9uIG1vZGUgaXMgd3JvbmcKCSAgUG9zdCBhbiBlcnJvciB3aGVuIHdlIHRyeSB0byBwdXNoIG9uIGEgcGFkIGFjdGl2YXRlZCBpbiBwdWxsIG1vZGUgYW5kIHB1bGwgb24gYQoJICBwYWQgaW4gcHVzaCBtb2RlLgoKMjAxMi0wMi0wOCAwOTozMDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIG1ldGhvZCBkZWNsYXJhdGlvbiB0b28KCjIwMTItMDItMDcgMTM6NDE6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiByZW1vdmUgdW5pbXBsZW1lbnRlZCBzdGF0cyBwcm9wZXJ0eSB3aGlsZSB3ZSBjYW4KCjIwMTItMDItMDcgMTA6NDQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgkgIFJlbW92ZSBvdXIgY3VzdG9tIG1hcnNoYWxsZXIuCgkgIE1ha2UgdGhlIGJ1ZmZlciBpbiB0aGUgaGFuZG9mZiBzaWduYWwgc3RhdGljX3Njb3BlIHNvIHRoYXQgaXQgaXMgYWN0dWFsbHkKCSAgd3JpdGFibGUuCgoyMDEyLTAyLTA2IDA5OjQ2OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTItMDEtMDQgMTc6MTA6MTUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZml4IGNvbXBpbGF0aW9uIHdpdGggLS1kaXNhYmxlLXJlZ2lzdHJ5CgkgIF9fcmVnaXN0cnlfcmV1c2VfcGx1Z2luX3NjYW5uZXIgaXMgb25seSBkZWZpbmVkIHdoZW4KCSAgR1NUX0RJU0FCTEVfUkVHSVNUUlkgaXMgbm90IGRlZmluZWQuCgkgIGdzdHJlZ2lzdHJ5LmM6IEluIGZ1bmN0aW9uICdnc3RfcmVnaXN0cnlfc2Nhbl9wbHVnaW5fZmlsZSc6CgkgIGdzdHJlZ2lzdHJ5LmM6MTEzMTo4OiBlcnJvcjogJ19fcmVnaXN0cnlfcmV1c2VfcGx1Z2luX3NjYW5uZXInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg0CgoyMDEyLTAyLTAyIDE3OjE4OjIyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZXNldCB0aGUgRU9TIGRldGVjdGlvbiBtYWNoaW5lcnkgYWZ0ZXIgc2VuZGluZyBhbiBFT1MgbWVzc2FnZQoJICBUaGlzIHdpbGwgYWxsb3cgZGV0ZWN0aW5nIGZ1cnRoZXIgRU9TLCBmb3IgaW5zdGFuY2UgYWZ0ZXIgbG9vcGluZwoJICBhIHN0cmVhbSB3aXRob3V0IGNoYW5naW5nIHN0YXRlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODI4OQoKMjAxMi0wMS0wNyAyMzowMDoxMiAtMDUwMCAgUnlhbiBMb3J0aWUgPGRlc3J0QGRlc3J0LmNhPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogYWxsb3cgY2FsbGluZyBmcm9tIG91dC1vZi10cmVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc2NjQKCjIwMTItMDItMDIgMTY6NTk6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IHByaW50IGNhcHMgaW4gZHVtcAoKMjAxMi0wMi0wMiAxNjowNDoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDItMDIgMTU6NTc6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIGRlYnVnIGFuZCB0cmFjZSBmb3IgR3N0TWVtb3J5CgoyMDEyLTAyLTAyIDE1OjU1OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGRvbid0IGNoZWNrIHJhbmRvbSBwb2ludGVycyBmb3Igb2JqZWN0cwoJICBPbmx5IHNlZSBpZiB0aGUgdHJhY2VkIHBvaW50ZXIgaXMgYSBHT2JqZWN0IHdoZW4gaXQgd2FzIHJlZ2lzdGVyZWQgd2l0aCB0aGUKCSAgc3BlY2lhbCBvZmZzZXQgb2YgLTIuCgoyMDEyLTAyLTAyIDE1OjU0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIFVwZGF0ZSBkZWJ1ZyBjYXRlZ29yaWVzCgkgIFJlbW92ZSBzb21lIGNhdGVnb3JpZXMgbWFya2VkIGZvciBkZWxldGlvbi4KCSAgQWRkIGEgY2F0ZWdvcnkgZm9yIEdzdE1lbW9yeS4KCjIwMTItMDItMDIgMTU6NTI6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgcmVtb3ZlIFRSQUNFX05BTUUgZnJvbSBoZWFkZXJzCgoyMDEyLTAyLTAyIDEzOjE3OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBuZXcgdGVzdAoKMjAxMi0wMi0wMiAxMzoxNToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZGVudGl0eTogcmVtb3ZlIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICBDb3JyZWN0bHkgbWFyayBwYXNzdGhyb3VnaCBvbiB0aGUgYmFzZWNsYXNzIHNvIHRoYXQgaXQgY2FuIGNvcnJlY3RseSBkbyB0aGUKCSAgYWxsb2NhdGlvbiBvZiB0aGUgb3V0cHV0IGJ1ZmZlcnMuCgkgIFJlbW92ZSBvdXIgY3VzdG9tIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbiBub3cgdGhhdCB0aGUgYmFzZWNsYXNzIGlzCgkgIHNtYXJ0ZXIuCgoyMDEyLTAyLTAyIDEzOjEwOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIENsZWFuIHVwIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZnVuY3Rpb24uCgkgIFJldXNlIHRoZSBpbnB1dCBidWZmZXIgd2hlbiBpdCBpcyB3cml0YWJsZSBhbmQgd2hlbiBkb2luZyBhbgoJICBpbi1wbGFjZSBidXQgbm9uLXBhc3N0aHJvdWdoIHRyYW5zZm9ybS4KCSAgTW92ZSB0aGUgY29weS1tZXRhZGF0YSBmdW5jdGlvbiBjYWxsIHRvIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZGVmYXVsdAoJICBmdW5jdGlvbi4gSWYgc3ViY2xhc3NlcyBpbXBsZW1lbnQgYSBjdXN0b20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyLCB0aGV5IG11c3QgYWxzbwoJICBjb3B5IHRoZSBtZXRhZGF0YSB0aGVtc2VsdmVzLgoJICBSZW1vdmUgYSB1c2VsZXNzIG1lbW9yeSBjb3B5IGJlY2F1c2UgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGFscmVhZHkgZGlkIHRoYXQuCgoyMDEyLTAyLTAyIDEyOjMyOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogb25seSBtYXAgd2hlbiB1c2luZyB0aGUgbWVtb3J5CgoyMDEyLTAyLTAyIDEyOjMyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGx1Z2luczogcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMi0wMi0wMiAxMjozMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzaW1wbGlmeSBjb2RlCgkgIFdlIGFscmVhZHkgY2hlY2tlZCBwYXNzdGhyb3VnaCBhIGZldyBsaW5lcyBhYm92ZS4KCjIwMTItMDItMDIgMTI6MDc6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgc29tZSBwZXJmb3JtY2UgZGVidWcgaW5mbwoJICBBZGQgc29tZSBQRVJGT1JNQU5DRSBkZWJ1ZyBsaW5lcyB3aGVyZSB3ZSBjb3B5IGFuZCBkbyBvdGhlciBzdWJvcHRpbWFsIHRoaW5ncy4KCjIwMTItMDItMDIgMTI6MDU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZmxhZyB0byBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIEFkZCBhIGZsYWcgdG8gZm9yY2UgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciB0byBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIGluc3RlYWQgb2YgZGlzY2FyZGluZyBpdC4KCSAgUmVvcmRlciB0aGUgcGFkIGZsYWdzIGEgYml0LgoKMjAxMi0wMi0wMiAwMTozMDoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IHBhc3MgZXh0ZW5zaW9ucyBhcyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpbiBhIHNpbXBsZSBzdHJpbmcKCSAgRml4IGFubm95aW5nIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIoKSBmdW5jdGlvbiBzaWduYXR1cmUuIEEgc2ltcGxlCgkgIHN0cmluZyB3aXRoIGNvbW1hLXNlcGFyYXRlZCBleHRlbnNpb25zIHdvcmtzIGp1c3QgYXMgd2VsbCBhbmQgc2F2ZXMKCSAgbGluZXMgb2YgY29kZSwgY2FzdHMsIHJlbG9jYXRpb25zIGFuZCB1bHRpbWF0ZWx5IGtpdHRlbnMuCgoyMDEyLTAxLTMxIDE3OjQxOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByYWNlIGluIHN0YXJ0dXAKCSAgTWFyayByZW5lZ290aWF0ZSBiZWZvcmUgc3RhcnRpbmcgdGhlIHB1c2hpbmcgdGhyZWFkLgoJICBEbyBhbHNvIGNoZWNrIGlmIHdlIGFyZSBzdGFydGluZyBpbiB0aGUgZ2V0X3JhbmdlIGZ1bmN0aW9uLgoKMjAxMi0wMS0zMSAxNjoyNzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IGNyYXNoIG9uIG1pc3NpbmcgdGVtcGxhdGUKCSAgU29tZSByZXF1ZXN0IHBhZHMgZG9uJ3QgaGF2ZSBhIHBhZHRlbXBsYXRlIChtb3N0bHkgdGhvc2UgZnJvbSBlbmNvZGViaW4pLiBBdm9pZAoJICBjcmFzaGluZyBpbiB0aGlzIGNhc2UuCgoyMDEyLTAxLTMxIDEyOjIwOjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGNvbnN0cnVjdHVyZXMgZm9yIGNvbnRyb2wgc291cmNlcyByZXR1cm4gR3N0Q29udHJvbFNvdXJjZQoJICBEb24ndCByZXR1cm4gdGhlIHNwZWNpZmljIHR5cGVzLiBJbiBtb3N0IGNhc2VzIHRoZXJlIGlzIG5vIHNwZWNpZmljIGFwaSB0aGVyZQoJICBhbnl3YXkuCgoyMDEyLTAxLTMxIDEyOjEwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBkb24ndCBkbyBsb2dpYyBpbiBnX2Fzc2VydC4uLgoKMjAxMi0wMS0zMCAxOToxNzowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcjogcmVuYW1lIGNvbnRyb2wtYmluZGluZ3MKCSAgZ3N0X2NvbnRyb2xfYmluZGluZ194eHggLT4gZ3N0X3h4eF9jb250cm9sX2JpbmRpbmcgZm9yIGNvbnNpc3RlbmN5LgoKMjAxMi0wMS0zMCAxNDo0ODo0NCAtMDIwMCAgSm/Do28gUGF1bG8gUGl6YW5pIEZsb3IgPGpvYW9waXphbmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHByZXNldC5oOgoJICBGaXhlcyB0aGUgbGFjayBvZiBhbiBpbmNsdWRlIGRpcmVjdGl2ZSBpbiBnc3QvZ3N0cHJlc2V0LmgKCSAgSXQgYmxvY2tlZCB0aGUgYnVpbGQgb2YgZXh0ZXJuYWwgbGlicmFyaWVzIGRlcGVuZGluZyBvbiBnc3RyZWFtZXItY29yZSAobmFtZWx5LCBnc3RyZWFtZXJtbSkuCgkgIENvbXBsZXRlIGJ1ZyByZXBvcnQgYXQgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTAzNgoKMjAxMi0wMS0zMCAxODoxNzozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IHNpbmsgdGhlIGZsb2F0aW5nIHJlZgoJICBjb250cm9sIHNvdXJjZXMgY2FuIGJlIHVzZWQgb24gc2V2ZXJhbCBjb250cm9sIGJpbmRpbmdzLgoKMjAxMi0wMS0zMCAxNzoxNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOyByZW1vdmUgSU5fQ0FQUyBidWZmZXIgZmxhZwoJICBUaGUgSU5fQ0FQUyBidWZmZXIgZmxhZyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgSEVBREVSCgkgIGZsYWcuCgoyMDEyLTAxLTMwIDE2OjA5OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM7IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMi0wMS0zMCAxNTo1OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogcGFzcyBhbGxvY2F0b3IgaW4gcXVlcnkKCSAgUGxhY2UgdGhlIGFsbG9jYXRvciBvYmplY3QgaW4gdGhlIEFMTE9DQVRJT04gcXVlcnkgaW5zdGVhZCBvZiB0aGUgbmFtZS4gVGhpcwoJICBhbGxvd3MgdXMgdG8gZXhjaGFuZ2UgYWxsb2NhdG9ycyB0aGF0IGFyZSBub3QgaW4gdGhlIGdsb2JhbCBwb29sIG9mIGFsbG9jYXRvcnMuCgkgIFVwZGF0ZSBlbGVtZW50cyBmb3IgdGhlIG5ldyBhcGkKCjIwMTItMDEtMzAgMTU6NTc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbWVtb3J5IHR5cGUKCSAgQWRkIG1lbW9yeSB0eXBlIHdoZW4gcmVnaXN0ZXJpbmcgbWVtb3J5IGFsbG9jYXRvcnMuIEFkZCBnZXR0ZXIgZm9yIHRoZSBtZW1vcnkKCSAgdHlwZS4KCjIwMTItMDEtMjkgMjI6NTg6NTEgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IFJlcHVzaCBzdGlja3kgZXZlbnRzIGFmdGVyIGRpc2FibGluZyBkcm9wcGluZwoKMjAxMi0wMS0zMCAxMzoyODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBib3hlZCBHVHlwZSBmb3IgdGhlIGFsbG9jYXRvcgoKMjAxMi0wMS0zMCAxMzowMjoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtYWtlIHRoZSBhbGxvY2F0b3IgcmVmY291bnRlZAoJICBBZGQgcmVmY291bnRpbmcgdG8gdGhlIEdzdEFsbG9jYXRvciBvYmplY3QuCgkgIFJlbW92ZSBjb25zdCBmcm9tIGZ1bmN0aW9ucyBiZWNhdXNlIHRoZSBhbGxvY2F0b3IgaXMgcmVmY291bnRlZCBub3cuCgkgIFJlbmFtZSB0aGUgdm1ldGhvZHMgZm9yIGNvbnNpc3RlbmN5CgkgIEV4cG9zZSB0aGUgY29uc3RydWN0b3IgZm9yIEdzdEFsbG9jYXRvciBhbmQgYWRkIGEgZGVzdHJveSBub3RpZnkgZm9yIHRoZQoJICB1c2VyX2RhdGEuIFRoaXMgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gY3JlYXRlIGFsbG9jYXRvcnMgdGhhdCBhcmUgbm90CgkgIHJlZ2lzdGVyZWQgYW5kIHNoYXJlZCBnbG9iYWxseSBhbG9uZyB3aXRoIHRoZSBwb3NzaWJpbGl0eSB0byBkZXN0cm95IHRoZW0KCSAgcHJvcGVybHkuCgkgIFVwZGF0ZSBkZWZzIHdpdGggbmV3IHN5bWJvbHMuCgoyMDEyLTAxLTMwIDEwOjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgZ2FwIGV2ZW50CgoyMDEyLTAxLTMwIDEwOjA3OjUxICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkgIGNvcmU6IGRvbid0IHNoaXAgZ3N0dHJhY2UuaCBwcml2YXRlIGhlYWRlcgoJICBJbmNsdWRlIGl0IGV4cGxpY2l0ZWx5IGluIGdzdC5jIGFuZCBubyBsb25nZXIgaW5jbHVkZSBpdCBpbiBnc3QuaC4KCSAgVGhhdCBoZWFkZXIgd2FzIG1hZGUgcHJpdmF0ZSBpbiAxOTY5Yjk0MjY3YjRmMzc3ZWEyNjYzODc2YWU4NzIwNzE3ODg5NjkzLgoKMjAxMi0wMS0yOCAxODo1MDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHJlcXVpcmUgYSB2YWxpZCBkdXJhdGlvbiBmb3IgdGhlIEdBUCBldmVudAoKMjAxMi0wMS0yOCAxODo0OTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQoKQoKMjAxMi0wMS0yNyAxODo1NzoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogYWRkIHNvbWUgKG91dCkgYW5ub3RhdGlvbnMgZm9yIHN0cmVhbSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucwoKMjAxMi0wMS0yNyAxODo1NjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgY29uc3RydWN0b3IgYW5kIHBhcnNlIGZ1bmN0aW9uIGZvciBuZXcgR0FQIGV2ZW50CgkgIChXaGF0ZXZlciB5b3UgZG8sIGRvbid0IG1lbnRpb24gdGhlIGZpbGxlciBldmVudC4pCgoyMDEyLTAxLTI3IDE4OjM3OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBHU1RfRVZFTlRfU1RSRUFNX0NPTkZJRyBpcyBpbXBsZW1lbnRlZCBub3cKCjIwMTItMDEtMjcgMTc6NTc6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBjb2RlYyBkYXRhIC8gc3RyZWFtIGhlYWRlciBjaGFuZ2UgaW4gcG9ydGluZyBkb2NzCgoyMDEyLTAxLTI4IDE0OjM1OjUxICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIFVzZSBtYWNyb3MgdG8gcmVnaXN0ZXIgYm94ZWQgdHlwZXMgdGhyZWFkIHNhZmVseQoKMjAxMi0wMS0yOCAwODozODowMyArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBVcGRhdGUgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXIgdG8gMC4xMSBzdHlsZSBjYXBzCgkgIFBhc3MgdGhlIGRlc2lyZWQgY2FwcyBleHBsaWNpdGVseQoKMjAxMi0wMS0yNyAxOTowMDowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IG1lbW9yeSBsZWFrCgoyMDEyLTAxLTI3IDE4OjUzOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBEb24ndCB1bnJlZiBwbHVnaW4gZmVhdHVyZXMgbXVsdGlwbGUgdGltZXMKCSAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSgpIHVucmVmcyB0aGVtIHRvby4KCjIwMTItMDEtMjcgMTc6NTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBzdHJlYW0gY29uZmlnIGZ1bmN0aW9ucyB0byBkb2NzCgoyMDEyLTAxLTI3IDE3OjQ5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggc2ltcGxlLWxhdW5jaC1saW5lcyBjb21waWxhdGlvbgoJICBEb24ndCB1c2UgcmVtb3ZlZCBBUEkuCgoyMDEyLTAxLTI3IDE4OjQ2OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IEFkZCBwYWRkaW5nIHRvIHRoZSBwdWJsaWMgc3RydWN0CgoyMDEyLTAxLTI3IDE3OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBkb24ndCByZWYgR1R5cGUgZm9yIHByaXZhdGUgZW51bSBmb3Igd2hpY2ggdGhlcmUncyBubyBHVHlwZSBhbnkgbW9yZQoKMjAxMi0wMS0yNyAxNzo0NToxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZvciBuZXcgYW5kIHJlbW92ZWQgQVBJCgoyMDEyLTAxLTI3IDE3OjM5OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBjb25zdHJ1Y3QgYW5kIHBhcnNlIEFQSSBmb3IgdGhlIG5ldyBTVFJFQU0gQ09ORklHIGV2ZW50CgkgIGNvZGVjIGRhdGEgYW5kIHN0cmVhbSBoZWFkZXJzIGRvbid0IGJlbG9uZyBpbnRvIGNhcHMsIHNpbmNlIHRoZXkKCSAgYXJlIG5vdCBuZWdvdGlhdGVkLiBXZSBzaWduYWwgdGhlbSB1c2luZyB0aGUgU1RSRUFNIENPTkZJRyBldmVudAoJICBpbnN0ZWFkLgoKMjAxMi0wMS0yNyAxODoyNDo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgdHJhY2U6IHJlbW92ZSBmcm9tIHB1YmxpYyBoZWFkZXJzCgoyMDEyLTAxLTI3IDEyOjE2OjA1ICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggZG9jdW1lbmF0aW9uIHR5cG8KCjIwMTItMDEtMjcgMTc6NTA6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0cmFjZTogcmV3b3JrIGFsbG9jIHRyYWNpbmcKCSAgUmVtb3ZlIHRyYWNlLCB3ZSB1c2UgZGVidWcgbG9nIGZvciB0aGF0CgkgIE1ha2UgYWxsb2MgdHJhY2Ugc2ltcGxlciwgcmVtb3Zpbmcgc29tZSBtZXRob2RzLgoJICBBY3RpdmF0ZSBhbGxvYyB0cmFjZSB3aXRoIGEgR1NUX1RSQUNFPTMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIER1bXAgbGVha2VkIG9iamVjdHMgYXRleGl0LgoJICBQcm92aWRlIGFuIG9mZnNldCBpbiB0aGUgb2JqZWN0IHdoZXJlIHRoZSBHVHlwZSBjYW4gYmUgZm91bmQgc28gdGhhdCBtb3JlCgkgIHZlcmJvc2UgaW5mbyBjYW4gYmUgZ2l2ZW4gZm9yIG9iamVjdHMuCgkgIFJlbW92ZSAtVCBvcHRpb24gZnJvbSBnc3QtbGF1bmNoIGJlY2F1c2UgdHJhY2luZyBpcyBub3cgdHJpZ2dlcmVkIHdpdGggdGhlCgkgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAxMi0wMS0yNSAxMjozNTo0MyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogYW5zd2VyIGNhcHMgcXVlcmllcyB3aXRoIG91ciB0eXBlZm91bmQgY2FwcwoJICBUaGlzIGF2b2lkcyBtZXJlbHkgZm9yd2FyZGluZyB0aGUgZXZlbnQgdG8gdGhlIHNpbmssIGFuZCBnZXR0aW5nCgkgIHNvbWV0aGluZyB1c2VsZXNzIHN1Y2ggYXMgQU5ZLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NTcxCgoyMDEyLTAxLTI3IDE2OjE4OjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBEbyB0eXBlZmluZGluZyBmcm9tIGEgc2VwYXJhdGUgdGhyZWFkIGFuZCBub3QgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uCgoyMDEyLTAxLTI3IDE1OjMyOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWVtb3J5IGxlYWsKCSAgdW5tYXAgdGhlIGJ1ZmZlciBtZW1vcnkgb24gZXJyb3JzLgoKMjAxMi0wMS0yNyAxNTozMjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHRyYWNlOiBtYWtlIGFsbG9jIHRyYWNlIHdvcmsgZm9yIG1pbmlvYmplY3QgYWdhaW4KCjIwMTItMDEtMjcgMTU6MDk6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaAoKMjAxMi0wMS0yNyAxNTowMjo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IE1vdmUgcHJpdmF0ZSBmaWVsZHMgZnJvbSB0aGUgcHVibGljIHN0cnVjdHMgdG8gcHJpdmF0ZSBzdHJ1Y3RzCgkgIEZpeGVzIGJ1ZyAjNjY4NzY0LgoKMjAxMi0wMS0yNyAxMzowNTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBubyBmYW5jeSB1dGY4IGNoYXJzIGluIHRoZSBnaSBhbm5vdGF0aW9ucwoKMjAxMi0wMS0yNyAxMjo1MDoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGZpeCBzb21lIG1vcmUgbGVha3MKCjIwMTItMDEtMjcgMTI6MzM6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBGaXggaGFuZGxpbmcgb2YgdGhlIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnQKCjIwMTItMDEtMjcgMTE6MzI6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3RwbHVnaW46IGFkZCBhIGZldyBjb25zdHMgdG8gcmVhZCBvbmx5IGRhdGEKCjIwMTItMDEtMjcgMTI6MjI6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogYWRkIGdpIGFubm90YXRpb25zCgoyMDEyLTAxLTI3IDEyOjE0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHVuaXQgdGVzdAoKMjAxMi0wMS0yNyAxMjoxMDowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogZml4IGxlYWtzCgoyMDEyLTAxLTI3IDExOjQwOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGF2b2lkIG1lbW9yeSBsZWFrCgkgIFVucmVmIHRoZSBvbGQgbWVtb3J5IGluIG1ha2VfbWFwcGVkLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvCgoyMDEyLTAxLTI3IDExOjQwOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGF2b2lkIGNhcHMgbGVhawoKMjAxMi0wMS0yNyAxMTowMToyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5L2Zha2V7c3JjLHNpbmt9OiBJbmNsdWRlIGV2ZW50IHR5cGUgbmFtZSBpbiB0aGUgZGVidWcgb3V0cHV0CgoyMDEyLTAxLTI3IDEwOjU0OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IE1hcmsgdGhlIG5ldyBHQVAgZXZlbnQgYXMgbm9uLXN0aWNreQoKMjAxMi0wMS0yNyAxMDo0NjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IERyb3AgdGhlIHN0cmVhbS1zdGFydCBhbmQgc3RyZWFtLWNvbmZpZyBldmVudHMgYnkgZGVmYXVsdAoKMjAxMi0wMS0yNyAxMDo0MjowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQgcmViYXNlCgoyMDEyLTAxLTI3IDEwOjQxOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZW5kIHRoZSBzdHJlYW0tc3RhcnQgZXZlbnQgYXMgZmlyc3QgZXZlbnQgZXZlcgoKMjAxMi0wMS0yNyAxMDozMDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkIGNvbnN0cnVjdG9yIGFuZCBkb2NzIGZvciB0aGUgbmV3IFNUUkVBTV9TVEFSVCBldmVudAoKMjAxMi0wMS0yNiAxOToyODowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCB1c2VyIGRhdGEgdG8gY2hhaW4gZnVuY3Rpb25zCgoyMDEyLTAxLTI2IDE4OjU2OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCB0eXBvCgoyMDEyLTAxLTI2IDE4OjIyOjI5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlc3RvcmUgZGF0ZS90aW1lIHR5cGUgdG8gR3N0RGF0ZVRpbWUKCSAgVGhlIGNoYW5nZSB0byBHRGF0ZVRpbWUgd2FzIGFwcGFyZW50bHkgYWNjaWRlbnRhbCwgYW5kCgkgIGJyZWFrcyBwbHVnaW5zIHRyeWluZyB0byBmZWVkIGEgR3N0RGF0ZVRpbWUgdG8gdGhlIHRhZ2xpc3QgQVBpLgoKMjAxMi0wMS0yNiAxOToxMjoxNiArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgZ3N0OiBnc3RfcGFyc2VfbGF1bmNoIG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlCgoyMDEyLTAxLTI2IDE4OjUzOjUxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBTZXQgInRyYW5zZmVyIG5vbmUiIHRvIHJldHVybiB2YWx1ZXMgdGhhdCBzaG91bGRuJ3QgYmUgZnJlZWQKCjIwMTAtMTItMDQgMTg6NTM6NTUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogY2FsbCAtPnJlbGVhc2VfcGFkKCkgdG8gY2xlYW4gdXAgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYwMTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjU2MgoKMjAxMi0wMS0yNiAxNjozMTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGFkZCBzb21lIG1vcmUgZXZlbnRzCgkgIEFkZCBzb21lIG1vcmUgbmV3IGV2ZW50cyB0aGF0IHdlIHdhbnQgdG8gaW1wbGVtZW50IGxhdGVyLgoKMjAxMi0wMS0yNiAxNToxNToyMSArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBnc3RtZW1vcnk6IGFkZCBtaXNzaW5nIHBhcmFtZXRlcgoKMjAxMi0wMS0yNiAxNDo1NzoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMS0yNiAxNDo1NTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBVc2UgY29ycmVjdCBzaXplIGZvciBjYXBzIGFsbG9jYXRpb24KCjIwMTItMDEtMjYgMTQ6NDU6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogTWFrZSBHc3RDYXBzIHB1YmxpYyBzdHJ1Y3QgbW9yZSBvcGFxdWUgYnkgbW92aW5nIHRoZSBwcml2YXRlIHBvaW50ZXIgaW50byB0aGUgaW1wbGVtZW50YXRpb24KCjIwMTItMDEtMjYgMTQ6MzM6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBjYXBzOiBTdG9yZSBhIHBvaW50ZXIgdG8gR3N0Q2FwcyBpbiBHc3RTdGF0aWNDYXBzCgkgIC4uLmluc3RlYWQgb2YgdXNpbmcgaGFja2lzaCBzdWJjbGFzcyBvZiBHc3RDYXBzLCB3aGljaCBhbHNvCgkgIGhhZCBzb21lIHRocmVhZC1zYWZldHkgcHJvYmxlbXMuCgoyMDEyLTAxLTI2IDEzOjI0OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGV2ZW50OiByZW1vdmUgdGhlIHN0aWNreSBldmVudCBpbmRleAoJICBXZSBkb24ndCB1c2UgdGhlIHN0aWNreSBldmVudCBpbmRleCBhbnltb3JlLCBvcmRlcmluZyBvZiB0aGUgZXZlbnRzIGFyZSBob3cgdGhleQoJICB3ZXJlIHNlbnQgaW5pdGlhbGx5LgoJICBBZGQgc29tZSBtb3JlIHBhZGRpbmcgYmV0d2VlbiB0aGUgZXZlbnQgbnVtYmVycyBzbyB0aGF0IHdlIGNhbiBpbnNlcnQgbmV3IGV2ZW50cwoJICBsYXRlci4KCjIwMTItMDEtMjYgMTA6NDg6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGRvY3M6IHJlbW92ZSBjb2xsZWN0cGFkcyBmcm9tIGRvY3MsIGZpeCBidWlsZAoKMjAxMi0wMS0yNiAxMDoyMjoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiB1c2UgR3N0VmFsdWVBcnJheSBpbnN0ZWFkIG9mIEdWYWx1ZUFycmF5IGZvciBzdG9yaW5nIG9wdGlvbnMgaW4gdGhlIGNvbmZpZwoJICBTaW5jZSBHVmFsdWVBcnJheSBpcyBkZXByZWNhdGVkLiBJdCdzIGFsbCBvbmx5IGludGVybmFsIGFueXdoZXJlIGhlcmUsCgkgIGJ1dCBpZiB3ZSB1c2UgR3N0VmFsdWVBcnJheSB0aGUgb3B0aW9uIHN0cmluZ3MgZ2V0IHNlcmlhbGl6ZWQgbmljZWx5CgkgIGluIHRoZSBkZWJ1ZyBsb2dzIGF0IGxlYXN0LgoKMjAxMi0wMS0yNiAwOToyNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IHN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGZvciBHX1RZUEVfVkFMVUVfQVJSQVkKCSAgRm9yIG5vdyBhbnl3YXkuCgoyMDEyLTAxLTI2IDExOjQyOjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjb2xsZWN0cGFkczI6IFVuaXQgdGVzdCBpcyB2YWxncmluZCBjbGVhbiBub3cKCjIwMTItMDEtMjYgMTE6NDA6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBGaXggdW5pdCB0ZXN0IHRvIGFjdHVhbGx5IHdvcmsgYWdhaW4KCjIwMTItMDEtMjYgMTE6Mzg6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIGNvbGxlY3RwYWRzMjogUG9ydCBjb2xsZWN0cGFkcyB1bml0IHRlc3QgdG8gY29sbGVjdHBhZHMyCgkgIEN1cnJlbnRseSBmYWlscyBidXQgcmVhbGx5IHNob3VsZG4ndC4KCjIwMTItMDEtMjYgMTE6MDE6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcHJvYmUgaWQgdG8gdGhlIGluZm8KCjIwMTItMDEtMjYgMTA6NDg6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IFJlbW92ZSBvbGQgY29sbGVjdHBhZHMKCSAgU3RpbGwgaGF2ZSB0byByZW5hbWUgY29sbGVjdHBhZHMyIHRvIGNvbGxlY3RwYWRzIGJlZm9yZSB0aGUgMS4wIHJlbGVhc2UuCgoyMDEyLTAxLTI2IDEwOjMwOjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRG9uJ3QgZm9yd2FyZCBDQVBTIGV2ZW50IGF1dG9tYXRpY2FsbHkKCjIwMTItMDEtMjUgMTg6NDk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBGaXggaGFuZGxpbmcgb2YgdGhlIGV2ZW50IGZ1bmN0aW9uIGFuZCBkb2N1bWVudCBpdAoJICBUaGUgZXZlbnQgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gZm9yd2FyZC9kcm9wIHRoZSBldmVudCBpbiBhbnkgY2FzZQoJICBub3cgYW5kIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQuCgoyMDEyLTAxLTI1IDE4OjM2OjQyICswMTAwICBKYXNvbiBEZVJvc2UgPGpkZXJvc2VAbm92YWN1dC5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZQoKMjAxMi0wMS0yNSAxOTo0MTowMyArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0X3BpcGVsaW5lX25ldyBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZS4KCjIwMTItMDEtMjUgMTc6Mjc6NDAgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uIHJldHVybnMgYSBuZXcgcmVmZXJlbmNlCgoyMDEyLTAxLTI1IDE1OjE0OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogdXNlIEdBcnJheSBmb3IgaW50ZXJuYWwgYXJyYXlzIGluc3RlYWQgb2YgdGhlIG5vdy1kZXByZWNhdGVkIEdWYWx1ZUFycmF5CgoyMDEyLTAxLTI1IDE2OjAxOjAyICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBDaGFuZ2VkIGludHJvc3BlY3Rpb24gdHJhbnNmZXIgZmxhZyB0byAodHJhbnNmZXIgZmxvYXRpbmcpCgkgIGZvciBnc3RfcGFkX25ldywgZ3N0X2dob3N0X3BhZF9uZXcgYW5kIGdzdF9iaW5fbmV3IGNvbnN0dWN0b3JzLiBGaXhlcwoJICBzZWdmYXVsdHMgZHVlIG9mIHRyYW5zZmVyIGZ1bGwgYW5kIGZsb2F0aW5nIHJlZiBwcm9ibGVtLgoKMjAxMi0wMS0yNSAxMzo0NjoxMyArMDEwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzQ2M2JjMCB0byA3ZmRhNTI0CgoyMDEyLTAxLTI0IDE0OjM3OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGZsYWdzIHRvIHRoZSBtYXBpbmZvCgoyMDEyLTAxLTIwIDE2OjEwOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG1ha2UgZ3VpbnQ4ICogZm9yIGVhc3kgdXNhZ2UKCjIwMTItMDEtMjAgMTQ6NTY6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBhZGQgbWV0aG9kIHRvIGNyZWF0ZSBtYXBwZWQgbWVtb3J5CgkgIEFkZCBhIG1ldGhvZCB0byBjcmVhdGUgYSBHc3RNZW1vcnkgd2l0aCB0aGUgZGVzaXJlZCBtYXBwaW5nLiBNYWtlcyBhIGNvcHkgb2YgdGhlCgkgIG1lbW9yeSBpZiBpdCBpcyBjdXJyZW50bHkgaW4gdXNlLgoKMjAxMi0wMS0yMCAxNDoyMzo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkgIEFkZCBuZXcgR3N0TWFwSW5mbwoJICBVc2UgYSBzdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvIGFib3V0IHRoZSBtYXBwaW5nLiBUaGUgYXBwbGljYXRpb24gdGhlbiBrZWVwcyB0cmFjawoJICBvZiB0aGlzIHN0YXRlIGFuZCB3ZSBjYW4gdXNlIGl0IHRvIHVubWFwIHRoZSBtZW1vcnkgYWdhaW4gbGF0ZXIuCgoyMDEyLTAxLTI1IDExOjQ5OjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJICBjb250cm9sYmluZGluZ3M6IG5hbWUgaXMgbm90IGEgY29uc3QKCSAgSXQgZ2V0cyBtb2RpZmllZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIG9iamVjdC4gRml4ZXMgYnVpbGQuCgoyMDEyLTAxLTI1IDExOjQzOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDEtMjUgMTE6Mzc6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyYTU5MDE2IHRvIGM0NjNiYzAKCjIwMTItMDEtMjQgMjE6NTM6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgdGhlIGNvbnRyb2wtYmluZGluZyBjb25zdHJ1Y3Rpb24KCSAgVGhpcyBpcyBub3cgYmluZGluZ3MgZmlyZW5kbHkgYXMgX25ldyBpcyBqdXN0IGEgY2xhc3NpYyBjIGNvbnZlbmllbmNlIGFuZCBhbGwKCSAgdGhlIHdvcmsgaXMgZG9uZSBpbiBhIGNvbnN0cnVjdG9yLiBBcyBhIHNpZGUgZWZmZWN0IF9uZXcgbmV2ZXIgZmFpbHMuCgkgIEZpeCB0aGUgdGVzdHMuCgoyMDEyLTAxLTI0IDE0OjQwOjMzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogaGFuZGxlIE5VTEwgZGVzdCBpbiBiaXRtYXNrL2JpdG1hc2sgaW50ZXJzZWN0aW9uCgoyMDExLTEyLTAxIDEyOjQzOjAzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogYWRkIGJhc2ljIHRlc3RzIGZvciBuZXcgc3RlcHBlZCByYW5nZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTI5NAoKMjAxMS0xMS0zMCAxNDo0NToxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBhZGQgc3RlcHBlZCByYW5nZXMKCSAgaW50IGFuZCBpbnQ2NCByYW5nZXMgY2FuIG5vdyBoYXZlIGFuIG9wdGlvbmFsIHN0ZXAgKGRlZmF1bHRpbmcgdG8gMSkuCgkgIE1lbWJlcnMgb2YgdGhlIHJhbmdlIGFyZSB0aG9zZSB2YWx1ZXMgd2l0aGluIHRoZSBtaW4gYW5kIG1heCBib3VuZHMKCSAgd2hpY2ggYXJlIGEgbXVsdGlwbGUgb2YgdGhpcyBzdGVwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTMwIDE3OjU4OjA3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IGFkZCBhIDY0IGJpdCB2ZXJzaW9uIG9mIEdDRCBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTA0IDE4OjI2OjE1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogZW5mb3JjZSBpZGVudGljYWwgYmFzaWMgdHlwZXMgaW4gbGlzdHMsIGFycmF5cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIyNTg3CgoyMDEyLTAxLTIzIDEwOjMyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBiZW5jaG1hcmtzOiBhZGQgbWlzc2luZyBpbmNsdWRlCgoyMDEyLTAxLTIzIDExOjAzOjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IHJlZ2lzdGVyIGFsbCBwcm9wZXJ0aWVzIGluIG9uZSBnbwoKMjAxMi0wMS0yMyAxMTowMjo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBjb250cm9sbGVyIGFwaSBkZXNpZ24KCjIwMTItMDEtMjEgMjA6MDM6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGFsbG93IGRpZmZlcmVudCBjb250cm9sYmluZGluZ3MKCSAgTWFrZSBjb250cm9sYmluZGluZyBhbiBhYnN0cmFjdCBiYXNlY2xhc3MuIE1vdmUgaW1wbGVtZW50YXRpb24gdG8gY29udHJvbC0KCSAgYmluZGluZy1kaXJlY3QgYW5kIGFkZCBhIGNvbnRyb2wtYmluZGluZy1hcmdiLiBBZGQgYW4gZXhhbXBsZS4KCjIwMTItMDEtMjIgMjI6NDQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgUmVwbGFjZSBkZXByZWNhdGVkIEdTdGF0aWNNdXRleCB3aXRoIEdNdXRleAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMjA3CgoyMDEyLTAxLTIyIDE1OjIzOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBmaXggdHlwbyBpbiBnc3QtaW5zcGVjdCBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTAxLTIyIDAxOjM5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVc2UgR0xpYidzIHR5cGUgZm9yIEdFcnJvciBpbnN0ZWFkIG9mIG91ciBvd24KCSAgV2UgaW50cm9kdWNlZCBvdXIgb3duIHdoZW4gR0xpYiBkaWRuJ3Qgd2FudCB0byBhZGQgYSBHVHlwZQoJICBmb3IgR0Vycm9yLiBCdXQgbm93IHRoYXQgdGhlcmUgaXMgb25lLCB3ZSBjYW4gdXNlIEdMaWIncwoJICB1bmNvbmRpdGlvbmFsbHkgYW5kIHJlbW92ZSBvdXIgdmVyc2lvbi4KCjIwMTItMDEtMjIgMDE6Mjc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGZpeCBzaXplIG9mIGF0b21pYyBjb3VudGVyCgoyMDEyLTAxLTIyIDAxOjI1OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgVXNlIHJlY2VudCBHTGliIEFQSSB1bmNvbmRpdGlvbmFsbHkgbm93IHRoYXQgd2UgZGVwZW5kIG9uIHRoZSBsYXRlc3QgR0xpYgoKMjAxMi0wMS0yMiAwMDo0MjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IGRvbid0IHVzZSBkZXByZWNhdGVkIEdTdGF0aWNNdXRleCBBUEkgaW4gKHN0aWxsKSBwdWJsaWMgaGVhZGVyCgoyMDEyLTAxLTIxIDEyOjU2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBzZXQgR0lfVFlQRUxJQl9QQVRIIGluIGdzdC11bmluc3RhbGxlZAoJICBTbyBweWdpIGZpbmRzL3VzZXMgdGhlIGxvY2FsIGctaSBmaWxlcy4KCjIwMTItMDEtMjAgMTg6MDY6MDQgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgbGliY2hlY2s6IG1ha2UgdGhlIGRlZmluaXRpb24gb2YgZmFpbCBub3QgZmFpbCB3aXRoIG5vbiBHQ0MgY29tcGlsZXJzCgoyMDEyLTAxLTIwIDE0OjQyOjMxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiBpbXByb3ZlIGNvbnRyb2wgYmluZGluZyBoYW5kbGluZwoJICBDaGFuZ2UgX3NldF9jb250cm9sX2JpbmRpbmcgdG8gX2FkZF9jb250cm9sX2JpbmRpbmcgYW5kIHRha2Ugb3duZXJzaGlwLiBBZGQgYQoJICBfcmVtb3ZlX2NvbnRyb2xfYmluZGluZyBmdW5jdGlvbi4KCjIwMTItMDEtMjAgMDg6Mjc6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGNvbnZlbmllbmNlIGFwaSBmb3IgY29udHJvbCBzb3VyY2VzCgkgIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQgbXVsdGlwbGUga2luZHMgb2YgY29udHJvbC1iaW5kaW5ncy4KCjIwMTItMDEtMTkgMTU6MTc6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIE5VTEwgZnJvbSBnZXRjYXBzCgkgIElmIHRoZSBnZXRjYXBzIGZ1bmN0aW9ucyByZXR1cm5zIE5VTEwsIHJldHVybiBGQUxTRSBmcm9tIHRoZSBDQVBTIHF1ZXJ5LgoKMjAxMi0wMS0xOSAxNToxNzozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBsaXN0cyBjb3JyZWN0bHkKCjIwMTItMDEtMTcgMTY6MjM6MzMgLTA1MDAgIENvbGluIFdhbHRlcnMgPHdhbHRlcnNAdmVyYnVtLm9yZz4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYWRkIC0tZGlzYWJsZS1mYXRhbC13YXJuaW5ncyBjb25maWd1cmUgb3B0aW9uCgkgIEl0J3MgcmVhc29uYWJsZSB0byBidWlsZCBmcm9tIGdpdCwgYnV0IG5vdCB3YW50IHRvIHR1cm4gYWxsIGNvbXBpbGVyCgkgIHdhcm5pbmdzIGludG8gZmF0YWwgZXJyb3JzLiAgRm9yIGV4YW1wbGUsIEdOT01FJ3MgamhidWlsZCBoZWxwcyBwZW9wbGUKCSAgZ2V0IG5ld2VyIHZlcnNpb25zIG9mIHNvZnR3YXJlIHRoYW4gY2FtZSBmcm9tIHRoZWlyIGRpc3RyaWJ1dGlvbiwgYnV0CgkgIHRoZXkgbWF5IG5vdCBuZWNlc3NhcmlseSB3YW50IHRvIGhhY2sgb24gaXQuCgoyMDEyLTAxLTE5IDEyOjU3OjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSAgdGVzdHM6IGNsb2Nrc3RyZXNzOiBwZXJmb3JtIHNhbml0eSBjaGVjayBvbiB0aHJlYWQgbnVtYmVyIGFyZ3VtZW50CgoyMDEyLTAxLTE5IDA5OjEyOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnkgaW1wcm92ZW1lbnRzCgkgIE1ha2UgdGhlIG1lbW9yeSBvYmplY3Qgc2ltcGx5IG1hbmFnZSB0aGUgZGF0YSBwb2ludGVyIGFuZCB0aGUgbWF4c2l6ZSBhbmQgbW92ZQoJICB0aGUgb2Zmc2V0IGFuZCBzaXplIGhhbmRsaW5nIHRvIGNvbW1vbiBmdW5jdGlvbmFsaXR5LgoJICBVc2UgdGhlIFJFQURPTkxZIGZsYWcgdG8gc2V0IGEgcmVhZG9ubHkgbG9jay4KCSAgUmVtb3ZlIHRoZSBkYXRhIGFuZCBzaXplIGZpZWxkcyBmcm9tIHRoZSB1bm1hcCBtZXRob2QuIFdlIG5lZWQgYW4gZXhwbGljaXQKCSAgcmVzaXplIG9wZXJhdGlvbiBpbnN0ZWFkIG9mIHVzaW5nIHRoZSB1bm1hcCBmdW5jdGlvbi4KCSAgTWFrZSBpbnRlcm5hbCBoZWxwZXIgbG9jayBhbmQgdW5sb2NrIGZ1bmN0aW9ucy4KCSAgVXBkYXRlIHVuaXQgdGVzdCBhbmQgdXNlcnMgb2YgdGhlIG9sZCBBUEkuCgoyMDEyLTAxLTE5IDExOjQzOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogZml4IHR5cG8gaW4gYnVzIGRvY3MKCjIwMTItMDEtMTMgMTc6NDU6MTcgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBhZGQgdmlzdWFsIHN0dWRpbyBJREUgZmlsZXMgYW5kIE9TIFggLkRTX1N0b3JlIGZpbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4OTkKCjIwMTItMDEtMTkgMDk6Mjc6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIFVwZGF0ZSBmb3IgbmV3IGd0aHJlYWQgQVBJCgoyMDEyLTAxLTE4IDE2OjUyOjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBHSU8gY2hlY2sgaXMgbm93IGluIGdzdC1nbGliMi5tNAoKMjAxMi0wMS0xOCAxNjo0NTo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA4MDcxODcgdG8gMmE1OTAxNgoKMjAxMi0wMS0xOCAxNjoxNDo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBHTGliIDIuMzEuMTAgYW5kIGltcHJvdmUgR0lPIGNoZWNrCgoyMDEyLTAxLTE4IDEyOjA3OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogQWx3YXlzIGNhbGwgOjpwcm9wb3NlX2FsbG9jYXRpb24gdmZ1bmMKCSAgQW5kIG9ubHkgZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeSBpZiB3ZSdyZSB3b3JraW5nIGluCgkgIHBhc3N0aHJvdWdoIG1vZGUgaWYgbm8gOjpwcm9wb3NlX2FsbG9jYXRpb24gaXMgaW1wbGVtZW50ZWQuCgkgIEluIHBsYWNlIGJ1ZmZlciB0cmFuc2Zvcm1hdGlvbnMgd2lsbCBjaGFuZ2UgdGhlIGJ1ZmZlcgoJICBjb250ZW50IGFuZCByZXF1aXJlIGV4cGxpY2l0IGhhbmRsaW5nIG9mIGFsbCBtZXRhcy4KCjIwMTItMDEtMTggMTE6Mzc6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkgYnkgZGVmYXVsdAoJICBUaGlzIGhhcyB0byBiZSBoYW5kbGVkIGV4cGxpY2l0ZWx5IGJ5IGVsZW1lbnRzIHRvCgkgIG1ha2Ugc3VyZSB0aGF0IHRoZXkgc3VwcG9ydCBhbGwgdGhlIG1ldGFzIHBhc3NlZAoJICBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCSAgTWV0YXMgaGF2ZSB0byBzdXBwb3J0ZWQgZXhwbGljaXRlbHksIG90aGVyd2lzZSB0aGUKCSAgcXVlcnkgd2lsbCBmYWlsLiBBbGwgZWxlbWVudHMgaW4gYSBjaGFpbiBuZWVkIHRvCgkgIHN1cHBvcnQgYSBzcGVjaWZpYyBtZXRhIHRvIGFsbG93IGl0cyB1c2FnZS4KCjIwMTItMDEtMTggMDE6MzE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBnc3Q6IHN1cHByZXNzIHNvbWUgbW9yZSBkZXByZWNhdGVkIHRocmVhZCBhcGkgdW50aWwgd2UgZml4IGl0IHVwCgkgIFdoaWNoIHNob3VsZCBiZSBzb29uLCBzaW5jZSB3ZSBhbHJlYWR5IGRlcGVuZCBvbiBhbiB1bnN0YWJsZSBnbGliIGZvciAtYmFzZS4KCjIwMTItMDEtMTggMDE6MTg6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGFwaSBjaGFuZ2VzCgoyMDEyLTAxLTE3IDIzOjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogcmVtb3ZlICAtLWRpc2FibGUtbmV0IG9wdGlvbiBhbmQgYWx3YXlzIGJ1aWxkIGxpYmdzdG5ldAoJICBJdCBzaG91bGQgd29yayBldmVyeXdoZXJlIG5vdywgYW5kIC1iYXNlIGFuZCAtZ29vZCBkZXBlbmQgb24KCSAgdGhlIEdzdE5ldE1ldGEgQVBJLgoKMjAxMi0wMS0xNyAyMzo1MjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiByZW1vdmUgc29tZSBzb2NrZXQgY3J1ZnQKCjIwMTAtMDUtMDUgMTY6MzM6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IHBvcnQgdG8gdXNlIGdpbydzIG5ldHdvcmtpbmcgQVBJCgkgIFNvbWUgd2FydHMgc3RpbGwsIGJ1dCBpdCdzIGEgc3RhcnQuCgoyMDEyLTAxLTE3IDE2OjUwOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbmV0OiBBZGQgR0lPIHRvIHRoZSBnaS1zY2FubmVyIHBhY2thZ2VzCgoyMDEyLTAxLTE2IDEzOjM0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSAgbmV0YWRkcmVzc21ldGE6IFVzZSBHU29ja2V0QWRkcmVzcyBpbnN0ZWFkIG9mIG91ciBvd24gd3JhcHBlciB0eXBlCgoyMDEyLTAxLTE2IDE1OjU3OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG1ha2Ugd3JpdGFiaWxpdHkgY2hlY2sgaW50byBhIG1ldGhvZAoJICBVc2UgYSBtZXRob2QgdG8gY2hlY2sgZm9yIHdyaXRhYmlsaXR5IGluc3RlYWQgb2YgYSBtYWNybyBzbyB0aGF0IHdlIGNhbiBjaGFuZ2UKCSAgdGhlIGltcGxlbWVudGF0aW9uIG1vcmUgZWFzaWx5LgoKMjAxMi0wMS0xNiAxMjoyNDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGltcHJvdmUgbWVtb3J5IHRlc3QKCjIwMTItMDEtMTYgMTI6MjQ6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDEyLTAxLTExIDEwOjU5OjUzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBlbnN1cmUgYXV0b21hZ2ljIF91bm1hcCBpbiBzb21lIG1vcmUgY2FzZXMKCjIwMTEtMTEtMTUgMTc6NDI6NTYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF1dG9tYXRpY2FsbHkgdW5tYXAgb24gY2xlYXJpbmcKCSAgV2hlbiBfY2xlYXIgZ2V0cyBjYWxsZWQgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAsIGJ1ZmZlcnMKCSAgd2lsbCBiZSB1bnJlZmZlZC4gSWYgdGhlIGFkYXB0ZXIgd2FzIG1hcHBlZCwgbWVtb3J5IGxlYWtzCgkgIG1heSBvY2N1ci4KCSAgV2hpbGUgY2FsbGluZyBfY2xlYXIgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAgZG9lcyBub3Qgc2VlbQoJICBsaWtlIHN1Y2ggYSBncmVhdCBpZGVhLCB0aGlzIGlzIHBvc3NpYmxlIGluIHRoZSBhdWRpbwoJICBlbmNvZGVyIGJhc2UgY2xhc3MsIGFzIF9jbGVhciBtYXkgYmUgY2FsbGVkIGluIF9maW5pc2hfZnJhbWUuCgkgIFNpbmNlIHRoZSBhdWRpbyBlbmNvZGVyIHJlbGllcyBvbiBmbHVzaGluZyB0byBrZWVwIHRyYWNrIG9mCgkgIHRpbWVzdGFtcHMsIGRlbGF5aW5nIGZsdXNoaW5nIHRpbGwgYWZ0ZXIgaGFuZGxlX2ZyYW1lIHNlZW1zCgkgIGRhbmdlcm91cy4KCSAgU28sIHdlIHVubWFwIG9uIGNsZWFyLCBhcyB0aGUgbmV4dCB1bm1hcCB3aWxsIGRvIG5vdGhpbmcuCgkgIFRoaXMgbWFrZXMgX2NsZWFyIHNhZmUgdG8gY2FsbCBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCwKCSAgd2hpbGUgYXZvaWRpbmcgbGVha2luZyB0aGUgbWFwcGVkIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDEzMwoKMjAxMi0wMS0xMyAxNDoyMDozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJldmVudCB1bmxpa2VseSBjYXBzIGxlYWsKCjIwMTItMDEtMTMgMTA6NDM6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHBsdWcgZmFjdG9yeSBsZWFrIG9uIGVycm9yCgoyMDEyLTAxLTEzIDAwOjIyOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMKCjIwMTItMDEtMTIgMjA6NDY6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIEdTVF9UWVBFX0RBVEUsIG91ciBvd24gR0RhdGUgdHlwZQoJICBXaGljaCB3ZSBoYWQgdG8gYWRkIGJlY2F1c2UgR0xpYiBkaWRuJ3QgaGF2ZSBpdAoJICBiYWNrIGluIHRoZSBkYXkuIFBvcnQgZXZlcnl0aGluZyB0byBwbGFpbiBvbGQKCSAgR19UWVBFX0RBVEUsIHdoaWNoIGlzIGFsc28gYSBib3hlZCB0eXBlLiBJZGVhbGx5CgkgIHdlJ2QganVzdCB1c2UgR0RhdGVUaW1lIGZvciBldmVyeXRoaW5nLCBidXQgaXQKCSAgZG9lc24ndCBzdXBwb3J0IG5vdCBzZXR0aW5nIHNvbWUgb2YgdGhlIGZpZWxkcwoJICB1bmZvcnR1bnRlbHkgKHdoaWNoIHdvdWxkIGJlIHZlcnkgdXNlZnVsIGZvcgoJICB0YWcgaGFuZGxpbmcgaW4gZ2VuZXJhbCwgaWYgd2UgY291bGQgZXhwcmVzcwoJICAyMDEyLTAxIGZvciBleGFtcGxlKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjM1MQoKMjAxMi0wMS0xMiAxOTo1MzoxMSArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYXIgYWRhcHRlciBpbiByZXNldCBzbyBiYXNlcGFyc2UgaXMgcmV1c2FibGUKCSAgR3N0QmFzZVBhcnNlIHdhcyBub3QgY2xlYXJpbmcgaXRzIGFkYXB0ZXIgb24gcmVzZXQgY2F1c2luZwoJICBwcm9ibGVtcyB3aGVuIGEgcGlwZWxpbmUgd2VudCBmb3IgZXhhbXBsZSBmcm9tIFBMQVlJTkcgdG8gTlVMTAoJICBzdGF0ZSBhbmQgdGhlbiBiYWNrIHRvIFBMQVlJTkcgYWdhaW4uIFRoZSBkYXRhIGZyb20gdGhlIGxhc3QKCSAgc3RyZWFtIHdvdWxkIGJlIHVzZWQgaW4gdGhlIHBhcnNlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzQ0NAoKMjAxMi0wMS0xMiAxNTo1MDo1MyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3RpbnNwZWN0OiBmaXggZmVhdHVyZXMgYW5kIGxpc3QgbGVha3MKCjIwMTItMDEtMTIgMTE6MDM6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDEtMTEgMTI6MTk6MjAgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IGNsYXJpZnkgX2dldCBkb2NzIGFib3V0IHRoZSByZXR1cm5lZCByZWZlcmVuY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzY4OQoKMjAxMi0wMS0xMCAxMzowMDowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAxLTA2IDE2OjM5OjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTZW5kIGNhcHMgYWdhaW4gYWZ0ZXIgYWN0aXZhdGlvbgoJICBBdm9pZHMgZW5kaW5nIHVwIGluIGNhc2VzIHdoZXJlIHR5cGVmaW5kIGdldHMgYWN0aXZhdGVkIGluIHB1bGwtbW9kZQoJICBhbmQgY2FwcyBuZXZlciBnZXQgc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzMzNwoKMjAxMi0wMS0wOSAxNTo1OTowOSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBBZGQgbGF0ZXN0IHNwZWNmaWxlIGNoYW5nZXMKCjIwMTItMDEtMDkgMTU6NTg6NDUgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBBbHNvIGFkZCBoZWFkZXJmaWxlCgoyMDEyLTAxLTA5IDE1OjU3OjUxICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IGRvdGZpbGUgQVBJIHRvIGJlIGV4cG9ydGVkIHNpbmNlIG1hY3JvcyBjYW4ndCBiZSBHSSBib3VuZAoKMjAxMi0wMS0wOSAxMzoxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBuZXcgbWVtb3J5IHRlc3QgYmluYXJ5CgoyMDEyLTAxLTA5IDAzOjE0OjQxIC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIEZpeCBwcmludGYgZm9ybWF0IGJ1aWxkIHdhcm5pbmdzCgoyMDEyLTAxLTA5IDEzOjEwOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ldyBzdHJpbmdzCgoyMDEyLTAxLTA2IDE1OjAxOjI0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWxsb3cgTlVMTCBkZXN0IHdoZW4gc3VidHJhY3RpbmcgYml0bWFzawoJICBIYXBwZW5zIHdoZW4gY2hlY2tpbmcgZm9yIHN1YnNldHMgb2YgY2FwcwoKMjAxMi0wMS0wNiAxMzozMjo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBlbnN1cmUgd3JpdGFibGUgbWVtb3J5IGluIG1lbXNldAoKMjAxMi0wMS0wNiAxMzoxMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjaGVjayBzZW1hbnRpY3Mgb2YgbmVzdGVkIG1hcHBpbmdzCgkgIENvdW50IGhvdyBtYW55IG1hcHBpbmdzIGFyZSBjdXJyZW50bHkgYWN0aXZlIGFuZCBhbHNvIHdpdGggd2hhdCBhY2Nlc3MgcGF0dGVybi4KCSAgVXBkYXRlIHRoZSBkZXNpZ24gZG9jIHdpdGggcmVzdHJpY3Rpb25zIG9uIHRoZSBhY2Nlc3MgcGF0dGVybnMgZm9yIG5lc3RlZAoJICBtYXBwaW5ncy4KCSAgQ2hlY2sgaWYgbmVzdGVkIG1hcHBpbmdzIG9iZXkgdGhlIGFjY2VzcyBtb2RlIHJlc3RyaWN0aW9ucyBvZiB0aGUgZGVzaWduIGRvYy4KCSAgQWRkIHZhcmlvdXMgdW5pdCB0ZXN0cyB0byBjaGVjayB0aGUgZGVzaXJlZCBiZWhhdmlvdXIuCgoyMDEyLTAxLTA2IDEzOjA2OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1bm1hcCB3aXRoIHRoZSByaWdodCBkYXRhIHBvaW50ZXIKCSAgVXNlIHRoZSBvcmlnaW5hbCBkYXRhIHBvaW50ZXIgdG8gdW5tYXAgdGhlIGJ1ZmZlciBtZW1vcnkuCgoyMDEyLTAxLTA2IDEwOjM5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBkb2NzOiBpbXByb3ZlIG1lbW9yeSBkb2NzCgoyMDEyLTAxLTA2IDA3OjAyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaGFuZGxlIC0xIHNpemUgaW4gdW5tYXAKCSAgaGFuZGxlIC0xIGluIHVubWFwIGNvcnJlY3RseSB3aGVuIHRoZSBvZmZzZXQgaXMgbW9kaWZpZWQuCgoyMDEyLTAxLTA2IDA2OjQzOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaW1wcm92ZSBzZW1hbnRpY3Mgb2YgdW5tYXAKCSAgTWFrZSBhbiB1bm1hcCBjYWxsIHdpdGggYSBkaWZmZXJlbnQgZGF0YSBwb2ludGVyIHRoYW4gdGhlIG1hcCBjYWxsIHVwZGF0ZSB0aGUKCSAgb2Zmc2V0IGZpZWxkLiBUaGlzIGFsbG93cyBmb3IgYm90aCBvZmZzZXQgYW5kIHNpemUgYWRqdXN0ZW1lbnRzIGluIHRoZSB1bm1hcAoJICBjYWxsLgoKMjAxMS0xMS0yOSAxNDoyMjo0NCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgY29tcGVuc2F0ZSBmb3IgcmVuZGVyLWRlbGF5IHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTgKCjIwMTItMDEtMDUgMTg6MTU6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgbW9yZSBjaGVja3MKCSAgQWRkIGNoZWNrIGZvciBtYXBwaW5nIGFuZCByZXNpemluZwoKMjAxMi0wMS0wNSAxNzoyODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogdGFrZSBvZmZzZXQgaW50byBhY2NvdW50CgkgIFRha2UgdGhlIG9mZnNldCBpbnRvIGFjY291bnQgd2hlbSBtYXBwaW5nIGFuZCB1bm1hcHBpbmcgdGhlIGJ1ZmZlci4KCjIwMTItMDEtMDUgMTc6MDI6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGRvY3M6IGNsYXJpZnkgcmVzaXplIGFuZCBjdXJyZW50IG1hcHBpbmdzCgoyMDEyLTAxLTA1IDE2OjQxOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogY2xhcmlmeSBuZXN0ZWQgbWFwcGluZ3MsIGFkZCB1bml0IHRlc3QKCjIwMTItMDEtMDUgMTI6MzA6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDEtMDUgMTM6MjI6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBhZGQgbW9yZSBtZW1vcnkgdW5pdCB0ZXN0cwoJICBDaGVjayBmb3IgdW5tYXAgd2l0aCBpbnZhbGlkIHNpemUKCjIwMTItMDEtMDUgMTM6MTE6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBHc3RNZW1vcnkKCSAgQWRkIGEgR3N0TWVtb3J5IHVuaXQgdGVzdAoJICBBZGQgc29tZSBtb3JlIGFzc2VydHMgaW4gR3N0TWVtb3J5IHRvIGNhdGNoIGludmFsaWQgY2FzZXMuCgoyMDEyLTAxLTA1IDEzOjA5OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCBtYWNybyB0byBjaGVjayBmb3IgbWVtb3J5IHJlZmNvdW50CgoyMDEyLTAxLTA1IDEyOjM5OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCjIwMTEtMTItMTYgMTM6MTE6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgdGVzdHMgZm9yIHRoZSBiaXRtYXNrIHR5cGUKCjIwMTEtMTItMTYgMTI6Mzk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEFkZCAiYml0bWFzayIgYXMgYWxpYXMgZm9yIChHc3RCaXRtYXNrKSB3aGVuIChkZS0pc2VyaWFsaXppbmcgdmFsdWVzCgoyMDExLTEyLTE2IDEyOjMyOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IEFkZCA2NC1iaXQgYml0bWFzayB0eXBlCgoyMDEyLTAxLTAxIDE2OjMyOjI3ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYnVpbGQ6IGRvbid0IG91dHB1dCBjb25maWd1cmUgb3B0aW9ucyB2aWEgYXV0b2dlbiBpZiAkTk9DT05GSUdVUkUgaXMgc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTYKCjIwMTItMDEtMDUgMDA6MzA6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGdzdDogaW5jbHVkZSBsb2NhbGUuaCBiZWZvcmUgYW55IG90aGVyIGkxOG4gaGVhZGVycwoJICBUaGlzIGlzIGFsc28gaG93IHdlIGRvIGl0IGluIC1iYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjkwCgoyMDEyLTAxLTAxIDE2OjQ2OjA0ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IGFkZHMgYW5kIHVzZXMgU3VuUHJvIHZpc2liaWxpdHkgYXR0cmlidXRlIGZvciBwcm9wZXIgZnVuY3Rpb24gZXhwb3J0cwoJICBEZWZpbmUgR1NUX0VYUE9SVCBmb3IgU3VuUHJvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg5CgoyMDEyLTAxLTAxIDE2OjQ3OjE0ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgcGx1Z2luczogZXhwbGljaXRseSBjYXN0IGluaXRpYWxpemF0aW9uIHZhbHVlcyB0byB0aGUgY29ycmVjdCB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODgKCjIwMTItMDEtMDEgMjA6MTc6NDEgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbmNsdWRlIGNvcnJlY3QgcG9sbC5oIGJhc2VkIG9uIGF1dG9jb25mIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NgoKMjAxMi0wMS0wNCAyMzo0NjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogY2hlY2sgZm9yIHN5cy9wb2xsLmgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NgoKMjAxMi0wMS0wNCAxOTo1MDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE2MmYzZDQgdG8gMDgwNzE4NwoKMjAxMi0wMS0wNCAxMDowNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBvbmx5IHJlc2VydmUgNiBleHRyYSBmbGFncwoJICBPbmx5IHJlc2VydmUgNiBleHRyYSBmbGFncyBpbnN0ZWFkIG9mIDEwIHNvIHRoYXQgbW9yZSBtZWRpYSBzcGVjaWZpYyBmbGFncwoJICBhcmUgYXZhaWxhYmxlLgoKMjAxMi0wMS0wMyAxNToyNTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTItMDEtMDMgMTU6MDU6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGNvbXBhdDogcmVzdG9yZSBVTkVYUEVDVEVECgoyMDEyLTAxLTAzIDE1OjAzOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIGRvY3M6IGZpeCBzb21lIGRvY3MKCjIwMTItMDEtMDMgMTQ6NDU6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAxLTAzIDE0OjQzOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYXZvaWQgZXhwb3NpbmcgdGhlIGxpc3RzIGluIHRhZ3MKCjIwMTItMDEtMDMgMTM6NDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgbWlzc2luZyBmdW5jdGlvbnMKCSAgQWRkIG1pc3NpbmcgYW5kIGVzc2VudGlhbCBmdW5jdGlvbnMgbm93IHRoYXQgd2UgY2FuJ3QgZGlyZWN0bHkgdXNlIEdzdFN0cnVjdHVyZQoJICBtZXRob2RzIG9uIHRoZSB0YWdsaXN0IGFueW1vcmUuCgoyMDEyLTAxLTAzIDEwOjQyOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBhZGQgbWFjcm8gdG8gY2hlY2sgaWYgYSBndmFsdWUgaG9sZHMgYSBzYW1wbGUKCjIwMTItMDEtMDIgMTU6NDc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBkb2NzOiBmaXggYnVpbGQgb2YgZG9jcyBleGFtcGxlcwoJICBVcGRhdGUgZm9yIHJlZ2lzdHJ5IG1ldGhvZCByZW5hbWUKCjIwMTItMDEtMDIgMTU6Mzk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHR1cm4gYXNzZXJ0IGludG8gYSByZWFsIGVycm9yCgkgIFBvc3QgYSByZWFsIGVycm9yIGluc3RlYWQgb2YganVzdCBhc3NlcnRpbmcuCgoyMDEyLTAxLTAyIDE1OjM4OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBsYXRlbmN5IGV2ZW50CgoyMDEyLTAxLTAyIDAyOjMyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGdldCByaWQgb2YgZ3N0X2RlZmF1bHRfcmVnaXN0cnlfKigpIGNvbnZlbmllbmNlIG1hY3JvcwoJICBUaGV5J3JlIG5vdCByZWFsbHkgd29ydGggaXQ6IGhhcmRseSBzYXZlIGFueSB0eXBpbmcsIGFuZCBhcmVuJ3QKCSAgZ3JlYXQgZm9yIGJpbmRpbmdzIG9yIGdvYmplY3QtaW50cm9zcGVjdGlvbi4KCjIwMTItMDEtMDIgMDI6MjI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQoKSB0byBnc3RfcmVnaXN0cnlfZ2V0KCkKCSAgSXQncyBub3QgcmVhbGx5IGEgZGVmYXVsdCBpZiB0aGVyZSBpcyBvbmx5IG9uZSB0aGF0IGNhbid0IGJlIGNoYW5nZWQuCgkgIFNob3VsZCB3ZSByZXR1cm4gYSByZWYgbGlrZSBlLmcuIGdfdm9sdW1lX21vbml0b3JfZ2V0KCkgZG9lcz8KCjIwMTItMDEtMDIgMDI6MjE6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHRhZ2xpc3QuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCjIwMTItMDEtMDIgMDA6MTc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIEdTVF9UQUdfTEFOR1VBR0VfTkFNRQoJICBBUEk6IEdTVF9UQUdfTEFOR1VBR0VfTkFNRQoKMjAxMi0wMS0wMSAyMDo1OToyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBjb250cm9sbGVyIGRlc2lnbiBkb2MKCjIwMTItMDEtMDEgMjA6NTc6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVuYW1lIHNvbWUgdGVzdHMKCjIwMTItMDEtMDEgMjA6NTU6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHN1cHBvcnQgY29udHJvbCBtYXBwaW5nIGZvciBlbnVtcwoJICBBZGQgYSBtYXBwaW5nIGZvciBlbnVtIHR5cGVzIChzdXBwb3J0aW5nIHNwYXJzZSBlbnVtcykuIEFkZCBhIHRlc3QuCgoyMDEyLTAxLTAxIDIwOjQzOjUxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBub25zZW5zZSBwYXJ0cyBmcm9tIHRlc3Qgb2JqZWN0IHByb3BlcnR5IGRlc2NyaXB0aW9ucwoKMjAxMi0wMS0wMSAxODo1NDoyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IGZpeCBjdWJpYyBpbnRlcnBvbGF0aW9uIGZvciBhcnJheXMKCjIwMTItMDEtMDEgMTg6NTA6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBhdWRpby1leGFtcGxlOiBhbHNvIHBsb3QgcmV2ZXJzZS1zYXcKCjIwMTItMDEtMDEgMTg6NDM6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogY2xlYW51cHMgYW5kIGZpeCB0cmlhbmdsZSBjYWxjdWxhdGlvbnMKCjIwMTItMDEtMDEgMTg6MzQ6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgYXVkaW8tZXhhbXBsZTogZml4IHRoZSBleGFtcGxlCgkgIFdlIG5lZWQgdG8gc2NhbGUgdGhlIGZyZXF1ZW5jeSB2YWx1ZXMuCgoyMDEyLTAxLTAxIDE1OjE2OjA2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IG1ha2UgY2hhaW5hYmxlCgkgIE5vdyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGNvbnRyb2xzb3VyY2UgYXJlIGluIHR1cm4gY29udHJvbGFibGUuIEFkZCBhbiBleGFtcGxlCgkgIHRvIHNob3cgdGhlIHVzYWdlLgoKMjAxMi0wMS0wMSAxNTowMToyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogYWRkIGxvZ2dpbmcgYW5kIGZpeCBhcnJheSBmdW5jdGlvbnMKCjIwMTItMDEtMDEgMTQ6NTU6MzUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogY2xlYW51cCB0aGUgdGVzdHMKCjIwMTItMDEtMDEgMTQ6Mjg6NTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgZGVidWcgbG9nZ2luZwoKMjAxMS0xMi0zMSAxNzozNzoyMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY29udmVydCBNYWtlZmlsZSBzcGFjZXMgdG8gdGFicwoKMjAxMS0xMi0zMSAxNTo1MjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IGFsc28gdGVzdCBhcnJheSBmdW5jdGlvbnMKCSAgSW1wcm92ZSB0aGUgZXhhbXBsZSB0byBhbHNvIGNvbGxlY3QgdmFsdWUgYXJyYXlzIGFuZCBwbG90IHRoZW0uCgoyMDExLTEyLTMxIDE1OjI2OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgb2Jzb2xldGUgRklYTUUgY29tbWVudAoKMjAxMS0xMi0zMSAwOTo1Njo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggdGVzdHMKCSAgU2V0IGEgZGVmaW5lZCB2YWx1ZSB0byBjaGVjayBmb3Igbm8tY2hhbmdlLgoKMjAxMS0xMi0zMCAxODozNTo0MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2wtc291cmNlczogdHVybiBpbnRvIEdzdE9iamVjdHMKCSAgVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBjaGFpbmluZyB0aGVtLgoKMjAxMS0xMi0zMCAxOTozNzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWFyc2hhbC5saXN0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgcGFkZGluZyBhbmQgc2lnbmFsIHZmdW5jcwoJICBBbmQgZml4IHNpZ25hbCBHVHlwZXMgYW5kIG1hcnNoYWxsZXIuIE5vIG9uZSB3aWxsIGV2ZXIKCSAgbmVlZCB0byBzdWJjbGFzcyBvdXIgcmVnaXN0cnksIHNvIGp1c3QgcmVtb3ZlIHRoZSBwYWRkaW5nCgkgIGFuZCB0aGUgc2lnbmFsIHZmdW5jcy4KCjIwMTEtMTItMzAgMTU6Mzk6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkaXNhYmxlIEdzdEluZGV4IHVuaXQgdGVzdAoKMjAxMS0xMi0zMCAxNTozMToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJICBpbmRleDogcmVuYW1lIEdzdEFzc29jRmxhZ3MgdG8gR3N0SW5kZXhBc3NvY2lhdGlvbkZsYWdzCgkgIEp1c3QgaW4gY2FzZSB3ZSByZXN1cnJlY3QgdGhpcyBsYXRlci4KCjIwMTEtMTItMzAgMTU6MjQ6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSAgYmFzZTogZGlzYWJsZSB1bnVzZWQgaW5kZXggQVBJIGFuZCBtYWtlIGZ1bmN0aW9ucyBzdGF0aWMKCSAgSXQncyBzaW1wbHkgcHJpdmF0ZSBoZWxwZXIgQVBJIGZvciBub3csIHVudGlsIHNvbWVvbmUKCSAgZml4ZXMgdXAgR3N0QmFzZVBhcnNlIG5vdCB0byBuZWVkIGl0IGFueSBtb3JlLgoKMjAxMS0xMi0zMCAxNToyNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHJlbW92ZSBpbmRleCBBUEkgZnJvbSAuZGVmIGZpbGUKCjIwMTEtMTItMzAgMTU6MDY6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIExBUkdFIHBhZGRpbmcgdG8gY2xhc3Mgc3RydWN0dXJlCgkgIEZvdXIgc2xvdHMgZm9yIGV4cGFuc2lvbiBpcyBub3QgYSBsb3QuCgoyMDExLTEyLTMwIDE1OjAzOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgaW5kZXg6IHJlbW92ZSBHc3RJbmRleCBhbmQgR3N0SW5kZXhGYWN0b3J5IGZvciBub3cKCSAgVGhlcmUgYXJlIG1hbnkgZ29vZCB1c2UgY2FzZXMgZm9yIEdzdEluZGV4IGFuZCB3ZSB3YW50CgkgIHRvIGFkZCBpdCBiYWNrIGFnYWluIGluIHNvbWUgZm9ybSwgYnV0IHBvc3NpYmx5IG5vdCB3aXRoCgkgIHRoZSBjdXJyZW50IEFQSSwgd2hpY2ggaXMgdmVyeSBwb3dlcmZ1bCAobWF5YmUgdG9vIHBvd2VyZnVsKSwKCSAgYnV0IGFsc28gYSBiaXQgY29uZnVzaW5nLiBBdCB0aGUgdmVyeSBsZWFzdCB3ZSdkIG5lZWQgdG8KCSAgbWFrZSB0aGUgQVBJIGJpbmRpbmdzLWZyaWVuZGx5LgoKMjAxMS0xMi0zMCAxNzo1Nzo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiB1bnJlZiB0aGUgdHdvIGNvdG5yb2xsZXIgdHlwZXMgaW4gX2RlaW5pdCgpCgoyMDExLTEyLTMwIDE3OjUxOjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgdGVzdHMgdG8gY29yZSBjb250cm9sbGVyIHN1aXRlCgkgIEV4dGVuZCB0aGUgZHVtbXkgY29udHJvbC1zb3VyY2UgdG8gYWxsb3cgdGVzdGluZyB0aGUgc3luYyBjb2RlIHBhdGguIEFkZCB0ZXN0CgkgIGZvciAxOjEgYW5kIDI6MSB2YWx1ZSA8LT4gY29udHJvbC1zb3VyY2Ugc3luYy4KCjIwMTEtMTItMzAgMTM6NTI6MDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSB0ZXN0IGZvciBiaW5kaW5ncyBjb250cm9sIHNvdXJjZXMgbXVsdGlwbGUgdGltZXMKCjIwMTEtMTItMzAgMTI6NTk6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIG1hdGgtY29tcGF0OiBtb3ZlIHN0YXRpYyB2YXJpYWJsZSBmb3IgTkFOIGludG8gI2lmbmRlZiBOQU4gYmxvY2sKCSAgQW5kIHVzZSBHX0dOVUNfVU5VU0VEIGluc3RlYWQgb2YgX19hdHRyaWJ1dGVfdXNlZF9fCgoyMDExLTEyLTMwIDEzOjMyOjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiB1c2UgTkFOIGluc3RlYWQgb2YgRlBfTkFOICh3aGljaCBpcyB0aGUgY2xhc3MpCgkgIEFsc28gYWRkIGEgZmFsbGJhY2sgZGVmaW5lIHRvIG1hdGgtY29tcGF0LmguCgkgIEZpeGVzICM2NjY4ODcKCjIwMTEtMTItMjkgMTY6NTY6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBEbyBub3QgZmFsc2Ugd2FybiBhYm91dCB1bmxpbmtlZCBwYWQKCSAgV2hlbiBvdXRwdXQtc2VsZWN0b3IgZGlkbid0IHJlY2VpdmUgYSBuZXdzZWdtZW50IGV2ZW50IGl0IHdvdWxkCgkgIHdhcm4gYWJvdXQgcGFkIGJlaW5nIHVubGlua2VkIHdoZW4gc3dpdGNoaW5nIHBhZHMuIE1ha2luZyB0aGUgbG9ncwoJICB3cm9uZyBhbmQgbWlzbGVhZGluZy4KCjIwMTEtMTItMjkgMTY6NDk6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEyLTI4IDE1OjEzOjA5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IEZpeCBsZWFrIGluIHBhZCBjaGVjawoKMjAxMS0xMi0yOCAxNDo1MTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBkZWluaXQgbWV0YSBmbGFncyB0b28KCjIwMTEtMTItMjggMTI6MjU6NTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEluaXRpYWxpemUgbmV3IEdzdE1ldGFGbGFncyBpbiBpbml0X3Bvc3QoKQoKMjAxMS0xMi0wMSAxOTowNTo1OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IFNtYWxsIGRvYyBmaXh1cHMKCjIwMTEtMTItMTYgMDI6MjA6MjcgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgd2luMzI6IGZpeCBleHBvcnRlZCB2YXJpYWJsZXMgZm9yIFZTIDIwMTAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjIxOQoKMjAxMS0xMi0yNyAxMzo0ODozNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgdHJpZ2dlcmNvbnRyb2xzb3VyY2U6IGZpeCBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCgkgIFJldHVybiBOQU4gYW5kIGNoZWNrIHRoZSB2YWx1ZSBmdXJ0aGVyIHVwLgoJICBGaXhlcyAjNjY2ODkwCgoyMDExLTEyLTI3IDExOjQwOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogcXVpY2stZml4IGNvbXBpbGVyIHdhcm5pbmcgYnJlYWtpbmcgdGhlIGJ1aWxkCgkgIFRoaXMgaXMgbGlrZWx5IG5vdCB0aGUgcHJvcGVyIGZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Njg5MAoKMjAxMS0xMi0yNyAxMTozNToyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHRlc3RzOiBjYW4ndCBhY2Nlc3MgcHJpdmF0ZSByZWdpc3RyeSBzdHJ1Y3R1cmUgbWVtYmVycyBkaXJlY3RseSBhbnkgbG9uZ2VyCgoyMDExLTEyLTI3IDExOjI0OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcgaW4gaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZQoJICBnc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOjU0OiB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZAoJICBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2ODkwCgoyMDExLTEyLTI2IDE4OjQ0OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZW1vdmUgImZkIiBwcm9wZXJ0eQoJICBJdCdzIG5vIGxvbmdlciB1c2VmdWwsIHNpbmNlIHdlIGRvbid0IHVzZSBtbWFwIGFueSBtb3JlIGFueXdheSwKCSAgYW5kIHdlIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBBUEkgZm9yIEkvTyBpbiBmdXR1cmUgKHN1Y2ggYXMgR0lPKS4KCjIwMTEtMTItMjYgMTg6NDE6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IG1vdmUgcHJpdmF0ZSBiaXRzIGludG8gcHJpdmF0ZSBzdHJ1Y3QKCjIwMTEtMTItMjYgMTE6MjY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBtaWNyby1vcHRpbWlzYXRpb246IGF2b2lkIHNvbWUgdW5uZWNlc3NhcnkgZ192YWx1ZV91bnNldCgpCgkgIFdlIGtub3cgdGhlcmUncyBub3RoaW5nIHRvIGRvIGhlcmUgYW5kIGNhbiBzYXZlIHVzIHRoZSBmdW5jdGlvbgoJICBjYWxscyBhbmQgR1ZhbHVlVGFibGUgbG9va3Vwcy4KCjIwMTEtMTItMjUgMjM6NDE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSAgbGliczogcmVtb3ZlIGdkcCBkYXRhcHJvdG9jb2wgbGlicmFyeQoJICBNYWRlIHByaXZhdGUgYW5kIG1vdmVkIHRvIGdkcCBwbHVnaW4gaW4gLWJhc2UgZm9yCgkgIHRoZSB0aW1lIGJlaW5nLCB1bnRpbCB3ZSBmaWd1cmUgb3V0IHdoYXQgd2UgZG8gd2l0aAoJICBnZHAgYW5kIDAuMTEuCgoyMDExLTEyLTI1IDIxOjAyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICB0ZXN0czogZml4IHVudXNlZC12YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDExLTEyLTI1IDIxOjAxOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgbmV3IEFQSQoKMjAxMS0xMi0yNSAyMDo0OTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IGFkZCB0aGUgc3RhcnQgb2YgYSBkZXNpZ24gZG9jdW1lbnQgZm9yIGNvbnRyb2xsZXIKCjIwMTEtMTItMjUgMTg6NDk6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHNwbGl0IGFuZCBjbGVhbnVwIHRoZSB0ZXN0cwoJICBUaGUgY29udHJvbGxlciBvYmplY3Qgd2FzIG9uY2UgY29waWVkIGZyb20gYnV6enRhcmRzIHVuaXQgdGVzdHMuIENoYW5nZQoJICBUZXN0TW9ub1NvdXJjZSB0byBUZXN0T2JqIGFzIGl0IGlzIG5vdCBhIGZ1bGwgZmxlZGdlZCBlbGVtZW50LiBTcGxpdCB0aGUgdGVzdHMKCSAgaW50byBhIGNvcmUgYW5kIGxpYnJhcnkgdGVzdCBzdWl0ZS4KCjIwMTEtMTItMjIgMjM6NDg6MzAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogbW92ZSBHVmFsdWUgaGFuZGxpbmcgZnJvbSBjb250cm9sLXNvdXJjZXMgdG8gLWJpbmRpbmcKCSAgQ29udHJvbFNvdXJjZXMgYXJlIG5vdyBnZG91YmxlIGJhc2VkLiBBIGNvbnRyb2wgc291cmNlIGlzIG1hcHBlZCB0byBhCgkgIHBhcnRpY3VsbGFyIEdPYmplY3QgcHJvcGVydHkgdXNpbmcgYSBDb250cm9sQmluZGluZy4KCjIwMTEtMTItMjAgMjI6MzY6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBtb3ZlIEdzdENvbnRyb2xsZWRQcm9wZXJ0eSBpbnRvIGEgc2VwYXJhdGUgY2xhc3MKCSAgQWRkIGEgR3N0Q29udHJvbEJpbmRpbmcgY2xhc3MuIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBmb3IgbWFraW5nIHRoZQoJICBjb250cm9sc291cmNlcyBnZW5lcmF0ZSBkb3VibGUgdmFsdWVkIGNvbnRyb2wgY3VydmVzIGFuZCBkbyB0aGUgZ3BhcmFtc3BlYwoJICBtYXBwaW5nIGluIHRoZSBjb250cm9sIGJpbmRpbmcuIE5vdyB0aGUgQVBJIGluIEdzdE9iamVjdCBpcyBhZ2FpbiBtb3N0bHkKCSAgZm9yIGNvbnZlbmllbmNlLgoKMjAxMS0xMi0yNSAxMjo0Nzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYwoKMjAxMS0xMi0yNSAxMjozOTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmV0dXJuIGFueSByZW1haW5pbmcgZGF0YSBvbiBFT1MgYmVmb3JlIHJldHVybmluZyBGTE9XX1VORVhQRUNURUQKCjIwMTEtMTItMjUgMTI6Mjk6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IG1pbm9yIGNvc21ldGljIGNoYW5nZXMKCSAgUmVuYW1lIHdvZmZzZXQgdmFyaWFibGUsIG1haW50YWluIHNlcGFyYXRlIGJ5dGVzX3JlYWQgaW4gYWRkaXRpb24KCSAgdG8gbGVuZ3RoIHZhcmlhYmxlLgoKMjAxMS0xMi0yNSAxMjoxMzo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGZpeCB1cCBjb21waWxhdGlvbiBhZnRlciBtZXJnZQoKMjAxMS0xMi0yNSAxMTo1ODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmMKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmMKCSAgRGl0IG5vdCBtZXJnZSBjb250cm9sbGVyIG9yIGJhc2V0cmFuc2Zvcm0gY2hhbmdlcy4KCjIwMTEtMTItMjQgMTQ6NTk6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nLXRvLTAuMTEKCSAgVXBkYXRlIGdzdF9wYWRfZ2V0X2NhcHMgLT4gZ3N0X3BhZF9xdWVyeV9jYXBzIGNoYW5nZQoKMjAxMS0xMi0yMyAxNTozNzo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGNsZWFudXAgbWV0YWRhdGEgaW4gcmVzZXRfYnVmZmVyCgkgIFVzZSB0aGUgcmVzZXRfYnVmZmVyIHZtZXRob2QgdG8gcmVtb3ZlIHRoZSB1bnBvb2xlZCBtZXRhZGF0YSBmcm9tIHRoZSBidWZmZXIuCgoyMDExLTEyLTIyIDE2OjAwOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlIGZvciBuZXcgc3ltYm9scwoKMjAxMS0xMi0yMiAxNTo1NToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGhhbmRsZSBtZXRhZGF0YSBpbiB0aGUgcG9vbAoJICBNYXJrIGFsbCBtZXRhZGF0YSBvbiB0aGUgYWxsb2NhdGVkIGJ1ZmZlcnMgd2l0aCBhIFBPT0xFRCBmbGFnLiBXaGVuIGEgYnVmZmVyCgkgIHJldHVybnMgdG8gdGhlIHBvb2wsIHJlbW92ZSBhbGwgbWV0YWRhdGEgdGhhdCBkaWQgbm90IGhhdmUgdGhlIFBPT0xFRCBmbGFnLiBUaGlzCgkgIG1ha2VzIHN1cmUgdGhhdCB3ZSBuZXZlciBsZWF2ZSB1bmtub3duIG1ldGFkYXRhIHRvIHRoZSBidWZmZXJzIGluIHRoZSBwb29sLgoKMjAxMS0xMi0yMiAxNTo1NDowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBmb3JlYWNoIGZ1bmN0aW9uIGZvciB0aGUgbWV0YWRhdGEKCjIwMTEtMTItMjIgMTU6NTM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBzbWFsbCBkb2MgZml4CgoyMDExLTEyLTIyIDE1OjUyOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgbWV0YWRhdGEgZmxhZ3MKCSAgQWRkIG1ldGFkYXRhIGZsYWdzIHNvIHRoYXQgd2UgY2FuIHNldCBleHRyYSBwcm9wZXJ0aWVzIG9mIHRoZSBtZXRhZGF0YQoKMjAxMS0xMi0wMiAxNDoxMDozMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IG9ubHkgaGF2ZSBhIHRvcC1sZXZlbCBwaXBlbGluZSBkbyBwaXBlbGluZSBtYW5hZ2VtZW50CgkgIEZpeGVzICM2NjUzOTAuCgoyMDExLTEyLTIyIDExOjA4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogZml4IEdUeXBlIG5hbWUgb2YgaW50ZXJwb2xhdGlvbiBtb2RlIGVudW0KCjIwMTEtMTItMjEgMTE6MTM6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUKCjIwMTEtMTItMjEgMTE6MDg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiByZW5hbWUgdmFyaWFibGUgZm9yIGNvbnNpc3RlbmN5CgkgIFJlbmFtZSB0aGUgdmFyaWFibGUgZm9yIEdTVF9DQVBTX05PTkUgdG8gX2dzdF9jYXBzX25vbmUgZm9yIGNvbnNpc3RlbmN5IGFuZCB0bwoJICBoaWUgdGhlIGZhY3QgdGhhdCBOT05FIGNhcHMgYXJlIGFsc28gYWNjaWRlbnRhbGx5IGVtcHR5IGNhcHMuCgoyMDExLTEyLTE5IDE0OjI3OjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJZiB0aGUgZmlsdGVyZWQgcGVlciBjYXBzIGFyZSBhbHJlYWR5IGVtcHR5IGVycm9yIG91dCBlYXJseQoKMjAxMS0xMi0yMCAxMzoyMTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZSBkZWZzCgoyMDExLTEyLTIwIDEzOjE0OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogYWRkIEFOWSBhbmQgRU1QVFkgc2luZ2xldG9ucwoJICBBZGQgYSBzaW5nbGV0b24gZm9yIEFOWSBhbmQgRU1QVFkgY2FwcyBhbmQgbWFrZSB0aGUgR1NUX0NBUFNfQU5ZIGFuZAoJICBHU1RfQ0FQU19OT05FIHBvaW50IHRvIHRoZW0uIFRoaXMgbWFrZXMgdGhlIEFQSSBtb3JlIGNvbnNpc3RlbnQgbm93CgkgIHRoYXQgdGhlIG1hY3JvIGRvZXMgbm90IG1hZ2ljYWxseSBjcmVhdGUgYSByZWYuIEl0IGFsc28gc29sdmVzIHNvbWUgbGVha3MgaW4KCSAgcGxhY2VzIHdoZXJlIHRoZSBtYWNybyB3YXMgdXNlZCB0byByZWdpc3RlciBhIHBhZHRlbXBsYXRlLgoKMjAxMS0xMi0yMCAxMzoxMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgcmVtb3ZlIGNvbnN0IGluIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIoKQoJICBSZW1vdmUgdGhlIGNvbnN0IGZyb20gdGhlIEdzdENhcHMgaW4gZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpIGJlY2F1c2UgdGhlCgkgIGZ1bmN0aW9uIHRha2VzIGEgcmVmIHRvIHRoZSBjYXBzLgoKMjAxMS0xMi0yMCAxMjo1OTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTEyLTIwIDExOjM4OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIHVudXNlZCBwYXJlbnRfY2xhc3MgdmFycmlhYmxlIGZyb20gY29udHJvbHNvdXJjZQoKMjAxMS0xMi0xOSAyMzozMjo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBjbGVhbnVwIGludGVycG9sYXRpb24gbW9kZXMKCSAgUmVtb3ZlIGRlcHJlY2F0ZWQvdW5pbXBsZW1lbnRlZCBtb2Rlcy4gVHVybiBpbnRlcnBvbGF0aW9uIG1vZGUgaW50byBhIGdvYmplY3QKCSAgcHJvcGVydHkuIFVwZGF0ZSBkb2NzIGFuZCBleGFtcGxlcy4KCjIwMTEtMTItMTkgMTE6MTM6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xzb3VyY2VzOiByZWZhY3RvciBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlCgkgIE1vdmUgbW9zdCBvZiB0aGUgY29kZSB0byBhIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlLiBTcGxpdCBvdXQgdGhlIHRyaWdnZXIKCSAgJ2ludGVycG9sYXRpb24gbW9kZScgdG8gYSBuZXcgY29udHJvbCBzb3VyY2UgY2xhc3MuIE1vdmUgdGVzdHMgYW5kIGV4YW1wbGVzIHRvCgkgIG5ldyBhcGkuIFVwZGF0ZSBkb2NzLgoJICBGaXhlcyAjNjEwMzM4CgoyMDExLTEyLTE5IDIyOjAxOjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IGNsZWFuIHVwIGxmbyBjb250cm9sIHNvdXJjZQoJICBSZW1vdmUgcGFyZW50X2NsYXNzIGFuZCB1c2UgdmFyIGZyb20gR19ERUZJTkVfVFlQRSBtYWNyby4gUmVtb3ZlIHVudXNlZCBkaXNwb3NlCgkgIGltcGxlbWVudGF0aW9uLgoKMjAxMS0xMi0xOSAyMDo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGNvbGxlY3RwYWRzMiBmdW5jdGlvbiB0byAuZGVmIGZpbGUKCjIwMTEtMTItMTYgMTc6NTk6MjIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBhZGQgY29udmVuaWVuY2UgY2xpcHBpbmcgZnVuY3Rpb24KCSAgLi4uIHdoaWNoIGFsc28gY29udmVydHMgdG8gcnVubmluZyB0aW1lOyB1c2VmdWwgZm9yIHR5cGljYWwgbXV4ZXIuCgoyMDExLTEyLTE5IDE3OjM4OjE4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkbyBub3QgZGVsYXkgc3BhcnNlIHN0cmVhbSBuZXdzZWdtZW50IHVwZGF0ZXMKCjIwMTEtMTItMTkgMTc6MDA6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogbWFrZSBzdWJjbGFzc2VzIGFkZCBvdGhlciBmbGFncwoJICBBZGQgR1NUX01BUF9GTEFHX0xBU1Qgc28gdGhhdCBpbXBsZW1lbnRhdGlvbnMgY2FuIGFkZCBhZGRpdGlvbmFsIGZsYWdzIHdoZW4KCSAgbWFwcGluZyBtZW1vcnkuCgoyMDExLTEyLTE5IDEyOjMzOjE4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzdWdnZXN0aW9uIGNvbXBhdGlibGUgd2l0aCB1cHN0cmVhbSBpcyBub3QgbXVjaCBvZiBhIHN1Z2dlc3Rpb24KCSAgLi4uIGluIHRoYXQgdXBzdHJlYW0gaXMgYWxyZWFkeSBjb21wbHlpbmcgd2l0aCB0aGF0IHN1Z2dlc3Rpb24uCgkgIEZpeGVzICM2NjYxNzQuCgoyMDExLTEyLTE1IDE0OjMxOjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogZGVsYXkgY29sbGVjdGluZyBidWZmZXIgaWYgYSBwYWQgbmV3bHkgc2V0IHdhaXRpbmcKCSAgLi4uIGFzIGNvbW1lbnRlZDsgbWFrZSBjb2RlIGNvcnJlc3BvbmQgdG8gaXQgKGFnYWluKS4KCjIwMTEtMTItMTUgMTY6MDY6MzAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiB1c2VyIHRoZSBwYXJlbnRfY2xhc3MgdmFycyBmcm9tIEdfREVGSU5FX1RZUEUKCjIwMTEtMTItMTQgMTI6MTM6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogYWxsb3cgTlVMTCBhcyBmaWx0ZXIgY2FwcyBhcmd1bWVudCB3aXRoIHF1ZXJ5X2NhcHMoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MTU0CgoyMDExLTEyLTEyIDEzOjA1OjM2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBkbyBub3QgbWlzdGFrZSBzaG9ydCByZWFkcyBmb3IgRU9TCgkgIFdoaWxlIGxvY2FsIGZpbGVzeXN0ZW1zIHdpbGwgdXN1YWxseSBub3QgY2F1c2Ugc2hvcnQgcmVhZHMsCgkgIHRoaXMgbWF5IGhhcHBlbiBvbiBzZWVrYWJsZSBmaWxlcyBvbiBzb21lIHJlbW90ZSBmaWxlc3lzdGVtcy4KCSAgSW5zdGVhZCwgbG9vcCB0aWxsIHdlIGdldCB0aGUgcmVxdWVzdGVkIGFtb3VudCBvZiBkYXRhLCBvcgoJICBhbiBhY3R1YWwgRU9TIChpZSwgMCBieXRlcykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU5MjEKCjIwMTEtMTEtMTQgMDI6MjY6MzEgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IENsZWFyIHF1ZXVlZCBmcmFtZXMgd2l0aCBvdGhlciBxdWV1ZXMKCjIwMTEtMTItMTIgMTI6MTE6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IHVzZSBuZXcgJ3RyYW5zZmVyIGZsb2F0aW5nJyBhbm5vdGF0aW9uIGZvciBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoKQoJICBSZXF1aXJlcyBnb2JqZWN0LWludHJvc3BlY3Rpb24gMS4zMS4xIChvbGRlciB2ZXJzaW9ucyB3aWxsCgkgIGVycm9yIG91dCB3aXRoIHRoYXQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MDk5CgoyMDExLTEyLTEyIDEyOjA5OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2NzLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL3NyLnBvOgoJICBwbzogdXBkYXRlIGxhbmd1YWdlcwoKMjAxMS0xMi0xMiAxMjowMDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTItMTIgMTE6NTQ6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkgIGdsaWItY29tcGF0OiBBZGQgbGljZW5zZSBib2lsZXJwbGF0ZSBmb3IgTEdQTAoKMjAxMS0xMi0xMCAwMToxNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9jcy5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NyLnBvOgoJKiBwby91ay5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMTItMTAgMTE6MDg6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc2F5IHdlIGhhbmRsZSBSRUNPTkZJR1VSRSBldmVudAoJICBXZSBoYW5kbGUgdGhlIFJFQ09ORklHVVJFIGV2ZW50IHNvIHJldHVybiBUUlVFIGZyb20gdGhlIGV2ZW50IGhhbmRsZXIuCgoyMDExLTEyLTEwIDExOjA3OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGZvcndhcmQgb24gTlVMTCBwYWRzCgkgIFRoZSBpdGVyYXRvciBjYW4gcmV0dXJuIE5VTEwgaW4gc29tZSBjYXNlcywgYXZvaWQgcHVzaGluZyBvbiB0aG9zZQoJICBOVUxMIHBhZHMuCgoyMDExLTEyLTA3IDE2OjAxOjA3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwcmVzZXQ6IGFsbG93IGFwcGxpY2F0aW9ucyB0byBzcGVjaWZ5IGFuIGV4dHJhIHByZXNldCBkaXIKCSAgQW4gZXh0cmEgYXBwbGljYXRpb24gcHJlc2V0IGRpciBoZWxwIHRvIG9yZ2FuaXplIHByZXNldHMgY3JlYXRlZCBmb3Igc3BlY2lhbAoJICBwdXJwb3Nlcy4gRml4ZXMgIzY2MDc2MAoJICBBUEk6IGdzdF9wcmVzZXRfc2V0X2FwcF9kaXIoKSwgZ3N0X3ByZXNldF9nZXRfYXBwX2RpcigpCgoyMDExLTEyLTA5IDEwOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHN0b3Agd2hlbiBuZWdvdGlhdGlvbiBmYWlscwoKMjAxMS0xMi0wOCAxNzozMjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTItMDggMTg6MDA6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBjb2RlIHBhdGggdG8gY29tZSB1cCB3aXRoIHBvc3NpYmxlIGNhcHMgaWYgaW5jb21wYXRpYmxlIGNhcHMgYXJlIHByb3ZpZGVkIHRvIGJ1ZmZlcl9hbGxvYygpCgkgIFByZXZpb3VzIGNvZGUgY291bGQgYWxtb3N0IG5ldmVyIHdvcmsgYW5kIHRoaXMgc2hvdWxkIGJlIHNsaWdodGx5CgkgIGJldHRlci4KCjIwMTEtMTItMDggMTc6MjE6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZhbGwgYmFjayB0byB1cHN0cmVhbSBwcm92aWRlZCBjYXBzIGlmIHN1Z2dlc3RlZCBjYXBzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzaW5rcGFkCgoyMDExLTEyLTA4IDE3OjA3OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGYWxsIGJhY2sgdG8gdXBzdHJlYW0gcHJvdmlkZWQgY2FwcyBpZiBmaXhhdGlvbiBvZiBzdWdnZXN0ZWQgY2FwcyBmYWlsZWQKCjIwMTEtMTItMDggMTc6MDI6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlZmFjdG9yIGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MoKSBjb2RlCgkgIERvbid0IGNoZWNrIGlmIHVwc3RyZWFtIHByb3ZpZGVkIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB1cHN0cmVhbQoJICBhbmQgZG9uJ3QgdHJ5IHRvIGZpeGF0ZSB0aGVzZSBjYXBzLiBUaGV5IG11c3QgYmUgZml4YXRlZCBpbiBhbnkgY2FzZS4KCjIwMTEtMTItMDggMDA6NDk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGVzIGZvciBsYXRlc3QgQVBJIGFkZGl0aW9ucwoKMjAxMS0xMi0wOCAwMDo0Nzo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogZml4IHVwIHNlbGVjdG9yIHRlc3QgYWZ0ZXIgbWVyZ2UKCjIwMTEtMTItMDggMDA6Mzk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGluZGV4ZmFjdG9yeS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jCgkgIE5vdGU6IGRpZCBub3QgbWVyZ2UgYW55IG9mIHRoZSBiYXNldHJhbnNmb3JtIGNoYW5nZXMgZnJvbSAwLjEwLgoKMjAxMS0xMi0wNyAxNzo1Nzo0OSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCB1c2UgYSBieXRlIHZhbHVlIGluc3RlYWQgb2YgYSB0aW1lIHZhbHVlIHdoZW4gYmlzZWN0aW5nCgkgIFRoaXMgZml4ZXMgRkxBQyBzZWVraW5nIG9uIHNvbWUgRkxBQyBmaWxlcy4KCjIwMTEtMTItMDcgMTE6MDQ6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IFB1c2ggbmV3c2VnbWVudCBldmVudHMgYmVmb3JlIGFueSBidWZmZXJzIGFyZSBwdXNoZWQgaW4gdGhlIHVuaXQgdGVzdAoKMjAxMS0xMi0wNyAxMTowMTo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3Qgc2VuZCBhIE5FV1NFR01FTlQgZXZlbnQgaWYgYSBidWZmZXIgYXJyaXZlZCBiZWZvcmUgdGhlIHNlZ21lbnQgd2FzIGNvbmZpZ3VyZWQKCjIwMTEtMTItMDcgMTE6MDE6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogRG9uJ3Qgc2VuZCBsYXN0IHNlZ21lbnQvYnVmZmVyIHdoZW4gbm8gc2VnbWVudCB3YXMgY29uZmlndXJlZCB5ZXQKCjIwMTEtMTItMDcgMDk6NTA6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHN1Z2dlc3RlZCBjYXBzIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtIHRyeSB0byBjb21lIHVwIHdpdGggY29tcGF0aWJsZSBjYXBzCgkgIEZpeGVzIGJ1ZyAjNjYyMTk5LgoKMjAxMS0xMi0wNiAyMzo1Mjo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkgIGluZGV4ZmFjdG9yeTogZml4IG1lbW9yeSBsZWFrCgkgIEludHJvZHVjZWQgYnkgY29tbWl0IGJkMzAyYmI2IHBsdWdpbmZlYXR1cmU6IGF2b2lkIGR1cGxpY2F0aW5nIGZlYXR1cmUtPm5hbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTQ2NgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1NzAzCgoyMDExLTEyLTA2IDE4OjA5OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcHV0IG5ldyBldmVudCBwcm9iZSB0eXBlIG5leHQgdG8gb3RoZXIgZXZlbnQgdHlwZXMKCjIwMTEtMTItMDUgMjE6MjA6NTIgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIEdTVF9QQURfUFJPQkVfVFlQRV9IQU5ETEVfRkxVU0gKCjIwMTEtMTItMDYgMTQ6NTU6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogTWFrZSBldmVudC9idWZmZXIgdmVyYm9zZSBvdXRwdXQgY29uc2lzdGVudCB3aXRoIGlkZW50aXR5CgoyMDExLTEyLTA2IDE0OjU1OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IFByaW50IGJ1ZmZlciBmbGFncyBpbiB0aGUgdmVyYm9zZSBvdXRwdXQKCjIwMTEtMTItMDYgMTQ6NTM6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IE1ha2UgZXZlbnQvYnVmZmVyIHZlcmJvc2Ugb3V0cHV0IGNvbnNpc3RlbnQgd2l0aCBpZGVudGl0eSBhbmQgcHJpbnQgYnVmZmVyIGZsYWdzCgoyMDExLTEyLTA2IDE0OjQ2OjQ2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZG9uJ3QgaW5jbHVkZSBnbGliL2d0aHJlYWQuaCBkaXJlY3RseQoJICBUaGUgZ190aHJlYWQgZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUgYWZ0ZXIgaW5jbHVkaW5nIGdsaWIuaCBhcyBwZXIgZG9jcy4KCjIwMTEtMTItMDYgMTQ6MjM6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcG9ydCB0aGUgdGVzdCB0byBuZXcgYXBpIGFzIHdlbGwKCjIwMTEtMTItMDYgMTQ6MjM6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogZml4IGdwb2ludGVyIHZzLiBncG9pbnRlciogbWVzcyB1cAoKMjAxMS0xMi0wNiAxNDoyNDoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIEdTVF9GTE9XX1JFU0VORAoJICBJdCBpcyB1bnVzZWQgYW5kIHVuZGVmaW5lZC4KCjIwMTEtMTItMDYgMTQ6MDE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgYXN5bmMgc3RhcnQgb3B0aW9uCgkgIEFkZCBhIG1ldGhvZCB0byBlbmFibGUgYXN5bmMgc3RhcnQgYmVoYXZpb3VyLiBUaGUgc3ViY2xhc3MgY2FuIHRoZW4gY29tcGxldGUgdGhlCgkgIHN0YXJ0IG9wZXJhdGlvbiBmcm9tIGFueSBvdGhlciB0aHJlYWQgYnkgY2FsaW5nIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpLgoJICBUaGUgYmFzZSBjbGFzcyBjYW4gd2FpdCBmb3IgdGhlIHN0YXJ0IHRvIGNvbXBsZXRlIHdpdGgKCSAgZ3N0X2Jhc2Vfc3JjX3N0YXJ0X3dhaXQoKS4KCjIwMTEtMTItMDYgMTM6NTg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgZml4IGNvbXBpbGF0aW9uCgoyMDExLTEyLTA2IDEzOjQ3OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGNsZWFudXAgZXJyb3IgcGF0aAoKMjAxMS0xMi0wNiAxMzozOTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMTEtMTItMDYgMDg6NDg6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBfT0JKRUNUIGxvZ2dpbmcgdmFyaWFudHMgbW9yZQoKMjAxMS0xMi0wNiAwODozNTo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgR3N0VmFsdWVBcnJheQoJICBJbnN0ZWFkIHBhc3MgdGhlIHZhbHVlcyBhcyBhcmd1bWVudHMuIFRoaXMgc2ltcGxpZmllcyB0aGF0IGNvZGUgYW5kIGhlbHBzCgkgIGJpbmRpbmdzLgoKMjAxMS0xMi0wNiAwODozNToxMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiByZW1vdmUgZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXlzCgkgIE9uZSBjYW4gZWFzaWxseSBsb29wIG92ZXIgdGhlIGNvbnRyb2xsZWQgcHJvcGVydGllcyBtYW51YWxseS4gVGhpcyBpcyBzdGVwIDEgaW4KCSAgcmVtb3ZpbmcgR3N0VmFsdWVBcnJheS4KCjIwMTEtMTItMDQgMDc6MzM6MzIgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGNvcnJlY3QgcmV0dXJuIHZhbHVlIGluIGdzdF9wdXNoX3N0aWNreQoKMjAxMS0xMi0wNSAxMTowNzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBtYWtlIHNvbWUgbWFjcm9zIGludG8gaW5saW5lIGZ1bmN0aW9ucwoKMjAxMS0xMi0wNSAxMDoyNDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIG1ha2Ugc29tZSBtb3JlIG1hY3JvcyBhcyBpbmxpbmUgZnVuY3Rpb25zCgkgIE1ha2Ugc29tZSBtYWNyb3MgYXMgaW5saW5lIGZ1bmN0aW9ucyBmb3IgYWRkZWQgdHlwZSBjaGVja2luZy4KCSAgVVNlIG5ldyBnc3RfY2Fwc190YWtlKCkgaW4gdHlwZWZpbmQKCjIwMTEtMTItMDUgMTA6MjM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgc29tZSBvbGQgbWV0aG9kcwoKMjAxMS0xMi0wNCAyMToxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWxsb3cgbm9uLWpvaW5hYmxlIHRocmVhZHMgaW4gcHJpdmF0ZSBnX3RocmVhZF9jcmVhdGUoKSBjb3B5CgkgIExvb2tzIGxpa2Ugc29tZSB0ZXN0cyB1c2Ugbm9uLWpvaW5hYmxlIHRocmVhZHMgYWZ0ZXIgYWxsLgoKMjAxMS0xMi0wNCAxNTo0MjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgcmVtb3ZlZCB0YWcgbGlzdCBmdW5jdGlvbnMgZnJvbSBkb2NzIGFzIHdlbGwKCjIwMTEtMTItMDQgMTU6Mzg6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdG9iamVjdC5oCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmgKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jCgkgIHRvb2xzL2dzdC14bWxpbnNwZWN0LmMKCjIwMTEtMTItMDQgMTQ6Mzg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIFN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGluIHNlbGVjdGVkIGZpbGVzLCBmb3IgZ19zdGF0aWNfcmVjX211dGV4XyogbW9zdGx5CgkgIEdTdGF0aWNSZWNNdXRleCBpcyBwYXJ0IG9mIG91ciBBUEkvQUJJLCBub3QgbXVjaCB3ZSBjYW4gZG8gaGVyZSBpbiAwLjEwLgoKMjAxMS0xMi0wNCAxMzozNTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgV29yayBhcm91bmQgZGVwcmVjYXRlZCB0aHJlYWQgQVBJIGluIGdsaWIgbWFzdGVyCgkgIEFkZCBwcml2YXRlIHJlcGxhY2VtZW50cyBmb3IgZGVwcmVjYXRlZCBmdW5jdGlvbnMgc3VjaCBhcwoJICBnX211dGV4X25ldygpLCBnX211dGV4X2ZyZWUoKSwgZ19jb25kX25ldygpIGV0Yy4sIG1vc3RseQoJICB0byBhdm9pZCB0aGUgZGVwcmVjYXRpb24gd2FybmluZ3MuIFdlIGNhbid0IGNoYW5nZSBtb3N0IG9mCgkgIHRoZXNlIGluIDAuMTAgYmVjYXVzZSB0aGV5J3JlIHBhcnQgb2Ygb3VyIEFQSSBhbmQgQUJJLgoKMjAxMS0xMi0wNCAxMzowOTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBnX3RocmVhZF9jcmVhdGUoKSBpcyBkZXByZWNhdGVkIGluIEdMaWIgbWFzdGVyLCB1c2UgZ190aHJlYWRfdHJ5X25ldygpIGluc3RlYWQKCjIwMTEtMTItMDQgMTM6MDQ6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBpbml0aWFsaXNlIEdFcnJvciB2YXJpYWJsZXMgdG8gTlVMTAoKMjAxMS0xMi0wNCAxMTo0MzoxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZXMKCjIwMTEtMTItMDQgMTE6NDI6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZQoKMjAxMS0xMi0wNCAxMTozMjo1NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEluaXRpYWxpemUgd2l0aCBwcm9wZXIgdHlwZQoKMjAxMS0xMi0wMyAxNzo0MDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGdfdGhyZWFkX2luaXQoKSBpcyBkZXByZWNhdGVkIGluIGdsaWIgbWFzdGVyCgkgIEl0J3Mgbm90IG5lZWRlZCBhbnkgbG9uZ2VyLgoKMjAxMS0xMi0wMyAxNjowMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogdXBkYXRlIGZvciB0aHJlYWQgQVBJIGRlcHJlY2F0aW9ucyBpbiBnbGliIG1hc3RlcgoKMjAxMS0xMi0wMyAxNTozNjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiB1cGRhdGUgZm9yIHRocmVhZCBBUEkgZGVwcmVjYXRpb25zIGluIGdsaWIgbWFzdGVyCgoyMDExLTEyLTAzIDE1OjE4OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBnc3RfdGFnX2xpc3RfZ2V0X3tjaGFyLHVjaGFyfQoJICBUaG9zZSBhcmUgdW51c2VkIGFuZCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBhbnl3aGVyZSBhbnl3YXkKCSAgcmVhbGx5LgoKMjAxMS0xMi0wMyAxNDowNjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgc29tZSBtYWNyb3MgdGhhdCBubyBsb25nZXIgZXhpc3QKCjIwMTEtMTItMDMgMTM6NTg6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIGdfdGhyZWFkX2NyZWF0ZSgpIGlzIGRlcHJlY2F0ZWQgaW4gR0xpYiBtYXN0ZXIsIHVzZSBnX3RocmVhZF90cnlfbmV3KCkgaW5zdGVhZAoKMjAxMS0xMi0wMyAwNzowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBkdHMgYW5kIHB0cyBmb3Igc3luYwoJICBGaXJzdCB1c2UgRFRTLCB0aGVuIGZhbGwgYmFjayB0byBQVFMgZm9yIHN5bmNocm9uaXphdGlvbi4KCjIwMTEtMTItMDMgMDc6MDE6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwcwoKMjAxMS0xMi0wMyAwNjo0NToyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1lcmdlIHByZXJvbGwgZnVuY3Rpb25zCgkgIElubGluZSBhIGZ1bmN0aW9uIHRoYXQgaXMgb25seSBjYWxsZWQgZnJvbSBvbmUgcGxhY2UgdG8gbWFrZSB0aGluZ3MgYSBsaXR0bGUKCSAgZWFzaWVyIHRvIGZvbGxvdy4KCjIwMTEtMTItMDMgMDY6Mjk6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIGNsZWFudXBzCgkgIERvbid0IHBhc3MgYXJvdW5kIHRoZSBvYmplY3QgdHlwZSwgd2UgY2FuIGZpbmQgdGhhdCB2ZXJ5IGVmZmljaWVudGx5IGZyb20gdGhlCgkgIG9iamVjdCBpdHNlbGYgbm93LgoKMjAxMS0xMi0wMiAyMzoxMzoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFuIHVwIG1ldGhvZCBuYW1lcwoKMjAxMS0xMi0wMiAyMjo1MDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1lcmdlIHJlbmRlcl9vYmplY3QgaW50byBjaGFpbgoJICBNZXJnZSB0aGUgcmVuZGVyX29iamVjdCBjb2RlIHdpdGggdGhlIGNoYWluIG1ldGhvZC4gSXQgaXMgb25seSBjYWxsZWQgZnJvbSB0aGVyZQoJICBhbmQgdGhlcmUgYXJlIHF1aXRlIGEgZmV3IHZhcmlhYmxlcyB0aGF0IGNhbiBiZSByZXVzZWQgdG8gbWFrZXMgdGhpbmdzIGxlc3MKCSAgY29uZnVzaW5nLgoKMjAxMS0xMi0wMiAyMjozNjozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbW92ZSBvYnNvbGV0ZSBjb2RlCgkgIFJlbW92ZSBzb21lIG1vcmUgY29kZSBub3cgdGhhdCB0aGUgcmVuZGVyX29iamVjdCBldGhvZCBpcyBvbmx5CgkgIGNhbGxlZCB3aXRoIGJ1ZmZlcnMgb3IgYnVmZmVybHN0cy4KCjIwMTEtMTItMDIgMjI6MjA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbiB1cCBldmVudCBoYW5kbGluZwoJICBBZGQgbmV3IHdhaXRfZW9zIHZtZXRob2QgdG8gd2FpdCBmb3IgdGhlIGVvcyB0aW1lb3V0IGJlZm9yZSBwb3N0aW5nIHRoZSBFT1MKCSAgbWVzc2FnZSBvbiB0aGUgYnVzLgoJICBBZGQgZGVmYXVsdCBldmVudCBoYW5kbGVyLiBNb3ZlIHRoZSBkZWZhdWx0IGV2ZW50IGFjdGlvbnMgaW4gdGhlcmUuIENhbGwgdGhlCgkgIGV2ZW50IHZtZXRob2QgZnJvbSB0aGUgcGFkIGV2ZW50IGhhbmRsZXIuIFN1YmNsYXNzZXMgYXJlIG5vdyBzdXBwb3NlZCB0byBjaGFpbgoJICB1cCB0byB0aGUgcGFyZW50IGV2ZW50IGhhbmRsZXIgb3IgdW5yZWYgdGhlIGV2ZW50IGFuZCBkbyB0aGVpciBvd24gdGhpbmcuCgkgIEF2b2lkIHBhc3NpbmcgdW51c2VkIHBhcmFtZXRlcnMgdG8gZnVuY3Rpb25zLgoKMjAxMS0xMi0wMiAxMzoxOTozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiB1bmxvY2sgY2xvY2sgd2FpdCB3aGVuIGFwcHJvcHJpYXRlCgkgIC4uLiBub3RhYmx5IEZMVVNIIGFuZCBzdGF0ZSBjaGFuZ2UgdG8gUkVBRFkuCgoyMDExLTEyLTAyIDEzOjM1OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogc21hbGwgY2xlYW51cAoJICBBdm9pZCBwYXNzaW5nIGFyb3VuZCB0aGUgc2VnbWVudC4KCjIwMTEtMTItMDIgMTM6Mjg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHJlbW92ZSBjbGlwX3NlZ21lbnQKCSAgV2Ugb25seSBuZWVkIG9uZSBzZWdtZW50IG5vdyB0aGF0IHRoZSBwcmVyb2xsIHF1ZXVlIGlzIGdvbmUuCgoyMDExLTEyLTAyIDEyOjQyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW9yZSBjbGVhbnVwcwoJICBSZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMsIGlubGluZSB0aGUgY29kZS4KCSAgUmVtb3ZlIHRoZSBxdWV1ZV9vYmplY3QgZnVuY3Rpb25zLCB3ZSBjYW4gcHJvY2VlZCB3aXRoIHRoZSByZW5kZXJpbmcKCSAgaW1tZWRpYXRlbHkuCgoyMDExLTEyLTAyIDEyOjIwOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiByZW1vdmUgb2Jzb2xldGUgY29kZQoJICBSZW1vdmUgdGhlIHByZXJvbGwgcXVldWUgYW5kIHByb2NlZWQgZGlyZWN0bHkgdG8gdGhlIHJlbmRlcmluZyBvZiBvYmplY3RzLgoKMjAxMS0xMi0wMSAyMzozNToyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YnVzLmMKCSAgZ3N0L2dzdGV2ZW50LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMTItMDEgMTg6NTA6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIHNvbWUgdGFncyBvZiB0eXBlIEdzdFNhbXBsZQoJICBNYWtlIHRoZSBpbWFnZSBhbmQgYXR0YWNobWVudCB0YWdzIG9mIHR5cGUgR3N0U2FtcGxlIHNvIHRoYXQgd2UgY2FuIGluY2x1ZGUKCSAgZXh0cmEgY2FwcyBhbmQgaW5mbyBhbG9uZyB3aXRoIHRoZSBidWZmZXIgZGF0YS4KCjIwMTEtMTItMDEgMTg6NDk6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgc2FtcGxlOiByZW1vdmUgY29uc3QKCSAgVGhlIHdyaXRhYmlsaXR5IG9mIHRoZSBzdHJ1Y3R1cmUgaXMgZW5zdXJlZCBieSB0aGUgcmVmY291bnQgb2YgdGhlIHBhcmVudAoJICBtaW5pb2JqZWN0IGFuZCB3ZSdyZSBmaW5lIGlmIHRoZSBwYXJlbnQgaXMgd3JpdGFibGUuCgoyMDExLTEyLTAxIDE2OjQ2OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogbGFzdC1idWZmZXIgLT4gbGFzdC1zYW1wbGUKCSAgUmVuYW1lIHRoZSBsYXN0LWJ1ZmZlciBwcm9wZXJ0eSB0byBsYXN0LXNhbXBsZSBhbmQgbWFrZSBpdCByZXR1cm4gdGhlIG5ldwoJICBHc3RTYW1wbGUgdHlwZSBzbyB0aGF0IHdlIGNhbiBpbmNsdWRlIGNhcHMgYW5kIHRpbWluZyBpbmZvIGluIG9uZSBuaWNlIGJ1bmRsZS4KCjIwMTEtMTItMDEgMTY6Mzc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzYW1wbGU6IGFkZCBuZXcgc2FtcGxlIG1pbmlvYmplY3QKCSAgQWRkIGEgbmV3IHNpbXBsZSBtaW5pb2JqZWN0IHRoYXQgaXMgYSBjb21iaW5hdGlvbiBvZiBhIEdzdEJ1ZmZlciwgR3N0Q2FwcywKCSAgR3N0U2VnbWVudCBhbmQgb3RoZXIgYXJiaXRyYXJ5IGluZm8gb3JnYW5pemVkIGluIGEgR3N0U3RydWN0dXJlLiBUaGlzIG9iamVjdCBjYW4KCSAgYmUgdXNlZCB0byBleGNoYW5nZSBzYW1wbGVzIGJldHdlZW4gYW4gZWxlbWVudCBhbmQgdGhlIGFwcGxpY2F0aW9uIG9yIGZvcgoJICBzdG9yaW5nIGFsYnVtIGFydCBpbiB0YWdzIGV0Yy4KCjIwMTEtMTItMDEgMTY6MjU6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogdXNlIEdTVF9NRVNTQUdFX1NPVVJDRV9OQU1FKCkgd2hpY2ggYWxzbyB0YWtlcyBjYXJlIG9mIHNyYz1OVUxMLgoKMjAxMS0xMi0wMSAxNTozNToyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTEtMTItMDEgMTU6MzU6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMS0xMi0wMSAxNTozNDowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBjb3B5IGZsYWcgZm9yIG1ldGEKCSAgQWRkIGEgZmxhZyB0byBjb250cm9sIGlmIHRoZSBtZXRhIHNob3VsZCBiZSBjb3BpZWQgb3Igbm90IGluc3RlYWQgb2YgYWx3YXlzCgkgIGNvcHlpbmcuCgoyMDExLTExLTI5IDE5OjA4OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVtb3ZlIG9sZCBwcm9wZXJ0eQoKMjAxMS0xMS0zMCAxMzo1OTo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWx3YXlzIGludGVyc2VjdCB0aGUgc3VnZ2VzdGVkIHNpbmsgY2FwcyB3aXRoIHRoZSBwZWVyIGNhcHMKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZ2V0IGNvcnJlY3QgYW5kIGNvbXBsZXRlIGNhcHMuIFRoZSBzdWdnZXN0ZWQgY2FwcwoJICBjb3VsZCBiZSBpbmNvbXBsZXRlLCBlLmcuIHZpZGVvL3gtcmF3LXJnYiB3aXRob3V0IGFueSBmaWVsZHMsIGFuZCBieQoJICBpbnRlcnNlY3Rpbmcgd2l0aCB0aGUgcGVlciBjYXBzIHdlIGdldCBzb21ldGhpbmcgdXNhYmxlLgoJICBGaXhlcyBidWcgIzY2MjE5OS4KCjIwMTEtMTEtMzAgMTI6Mzk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbW92ZSBGSVhNRSBsb2cgbGV2ZWwgYWZ0ZXIgV0FSTklORwoJICBTbyBpdCdzIG5vdyBFUlJPUiA8IFdBUk5JTkcgPCBGSVhNRSA8IElORk8gYW5kICo6NSBiZWNvbWVzICo6Ni4KCjIwMTEtMTEtMzAgMDA6MjQ6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiB3YXJuIGFuZCBmYWlsIGluc3RlYWQgb2YgY3JlYXRpbmcgbmV3c2VnbWVudCBldmVudHMgaW4gR1NUX0ZPUk1BVF9VTkRFRklORUQKCjIwMTEtMTEtMjkgMTU6NTM6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjoga2VlcCB0aGUgZWxlbWVudCBmbGFncyB1cC10by1kYXRlCgkgIEtlZXAgdGhlIHJlcXVpcmUvcHJvdmlkZV9jbG9jayBmbGFncyB1cCB0byBkYXRlLgoKMjAxMS0xMS0yOSAxMTo0NzozNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBzb3VyY2UgYW5kIHNpbmsgcGFkcyBwcm94eSBjYXBzCgoyMDExLTExLTI4IDIxOjE1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yOCAxODoyMzo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIHVwZGF0ZSBmb3IgaW5kZXhhYmxlIGNoYW5nZQoKMjAxMS0xMS0yOCAxODoxMjozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgaW5kZXhhYmxlIGZsYWcKCSAgUmVtb3ZlIHRoZSBpc19pbmRleGFibGUgbWV0aG9kIGNoZWNrIGFuZCB1c2UgYW4gZWxlbWVudCBmbGFnIHRvIGNoZWNrIGlmIHRoZQoJICBlbGVtZW50IGNhbiB1c2UgYW4gaW5kZXguCgoyMDExLTExLTI4IDE3OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMS0xMS0yOCAxNzoyMjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZWxlbWVudDogdXNlIGZsYWdzIGZvciByZXF1aXJlL3Byb3ZpZGUgY2xvY2sKCSAgUmVtb3ZlIHRoZSBfcmVxdWlyZS9fcHJvdmlkZV9jbG9jaygpIG1ldGhvZHMgYW5kIHVzZSBlbGVtZW50IGZsYWdzIHRvIG1hcmsKCSAgZWxlbWVudHMgaW5zdGVhZCBvZiBsb29raW5nIGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdm1ldGhvZC4KCjIwMTEtMTEtMjggMTY6NTQ6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZWxlbWVudDogY2xlYW4gdXAgZWxlbWVudCBmbGFncwoJICBDbGVhbiB1cCB0aGUgZWxlbWVudCBmbGFncwoKMjAxMS0xMS0yOCAxNTozNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIHN0aWNreSBjdXN0b20gcXVhcmsKCjIwMTEtMTEtMjggMTQ6MjQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBfQ0FQU19GTEFHU18gLT4gQ0FQU19GTEFHXwoKMjAxMS0xMS0yOCAxMjozMDoxNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0ZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGVfZnJvbV9zdGF0aWMKCSAgVGhpcyBmdW5jdGlvbiBoZWxwcyBlbnN1cmUgdGhlIHBhZCB0ZW1wbGF0ZSBpcyB1bnJlZmZlZAoJICB3aXRob3V0IGhhdmluZyB0byBjb21wbGljYXRlIHRoZSBjYWxsaW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI2NjQKCjIwMTEtMTEtMjggMTM6NTQ6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSGFuZGxlIHN0aWNreSBldmVudCBlcnJvcnMKCSAgVXNlIEdzdEZsb3dSZXR1cm4gdG8gaW50ZXJuYWxseSBwYXNzIGV2ZW50cyBiZXR3ZWVuIHBhZHMuCgkgIFdoZW4gd2Ugc3RpY2t5IGV2ZW50cyBjYXVzZSBhbiBlcnJvciwgdHJhbnNsYXRlIHRoaXMgZXJyb3IgaW50byBhIEdzdEZsb3dSZXR1cm4uCgkgIENhcHMgZXZlbnRzIHdpbGwsIGZvciBleGFtcGxlLCBnZW5lcmF0ZSBhIE5PVF9ORUdPVElBVEVEIHJldHVybiB3aGVuIHRoZSBldmVudAoJICBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yLgoJICBUaGlzIGFsbG93cyB1cyB0aGVuIHRvIHJlZnVzZSBzZW5kaW5nIGJ1ZmZlcnMgaWYgb25lIG9mIHRoZSBzdGlja3kgZXZlbnRzIGlzCgkgIHJlZnVzZWQgYW5kIGdlbmVyYXRlIGEgY29ycmVjdCBlcnJvciByZXR1cm4gdmFsdWUuCgoyMDExLTExLTI4IDEzOjUyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICB0ZXN0czogZG9uJ3QgcmV0dXJuIEZBTFNFIGZyb20gZXZlbnRzCgkgIFJldHVybmluZyBGQUxTRSBmcm9tIHRoZSBldmVudCBoYW5kbGVyIHNodXRzIGRvd24gdGhlIHNlbmRlci4KCjIwMTEtMTEtMjggMTM6NTE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3Q6IGZpeCByZWZjb3VudCBlcnJvcgoKMjAxMS0xMS0yOCAxMToxNToyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBnc3RtZXRhOiBTb21lIG1vcmUgZG9jcwoKMjAxMS0xMS0yOCAxMDo1NToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogYWRkIGN1c3RvbSBkb3duc3RyZWFtIHN0aWNreSBldmVudAoKMjAxMS0xMS0yOCAwMToxMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCB1cCBjb21tZW50IGFmdGVyIG1lcmdlIGZyb20gMC4xMAoKMjAxMS0xMS0yOCAwMToxMTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjggMDE6MTA6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcmVmYWN0b3Jpbmcgb2YgZHJhaW5pbmctb24tZW9zLCBtdW5nZSBmbG93IHJldHVybiB0byBGTE9XX09LCgoyMDExLTExLTI4IDAxOjAwOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHVwIG5ldyBidWZmZXJsaXN0IGNvZGUgZm9yIDAuMTEKCjIwMTEtMTEtMjggMDA6NDA6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMS0xMS0wMyAxMDozNDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBidWZmZXJsaXN0IHN1cHBvcnQKCSAgV2Ugd2FudCB0byBtYWludGFpbiBidWZmZXIgbGlzdHMgaWYgcG9zc2libGUuCgoyMDExLTExLTAzIDEzOjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc3BsaXQgb3V0IGRyYWluaW5nIG9mIHF1ZXVlIG9uIEZMT1dfVU5FWFBFQ1RFRCBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9uCgoyMDExLTExLTAzIDA4OjU1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcGFzcyBpdGVtIHR5cGUgZW51bSB0byBfZW5xdWV1ZSBpbnN0ZWFkIG9mIHNpbXBsZSBpc2J1ZmZlciBib29sZWFuCgkgIEF2b2lkcyBzb21lIHVubmVjZXNzYXJ5IEdTVF9JU19FVkVOVCgpCgoyMDExLTExLTI3IDIwOjMyOjE0ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogZml4IGNvbXBpbGF0aW9uIHdhcm5pbmcKCSAgR1NUX1NUQVRJQ19DQVBTIGlzIG1pc3NpbmcgaW5pdGlhbGl6ZXIgZm9yIEdzdE1pbmlPYmplY3QncyBuX3dlYWtfcmVmcyBhbmQKCSAgd2Vha19yZWZzIHJlc3VsdGluZyBpbiBjb21waWxhdGlvbiB3YXJuaW5nIChsbHZtLWdjYyAgLVdhbGwpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ5MjcKCjIwMTEtMTEtMjcgMjI6MjY6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI3IDIwOjM2OjMxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB3YXJuaW5nczogYXZvaWQgc2V0LWJ1dC11bnVzZWQgd2FybmluZ3Mgd2l0aCBsb2FkLXNhdmUgZGlzYWJsZWQKCjIwMTEtMTEtMjYgMTc6MzQ6MTIgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBicm9rZW4gZGVmYXVsdCBjYXBzIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ4ODAKCjIwMTEtMTEtMjYgMTk6NTE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI2IDE5OjQ1OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBmaXggd3JvbmcgR19HTlVDX01BTExPQwoJICBfZ2V0X3Byb3RvY29scygpIHBvaW50cyB0byBjb25zdCBtZW1vcnkgaW4gMC4xMAoJICBkZXNwaXRlIHRoZSBub24tY29uc3QgcmV0dXJuIHZhbHVlLgoKMjAxMS0xMS0yNiAxOTo0NDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YnVmZmVyLmgKCSAgZ3N0L2dzdGJ1ZmZlcmxpc3QuaAoJICBnc3QvZ3N0Y2Fwcy5oCgkgIGdzdC9nc3RkYXRldGltZS5oCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5oCgkgIGdzdC9nc3RpbmRleGZhY3RvcnkuaAoJICBnc3QvZ3N0aXRlcmF0b3IuaAoJICBnc3QvZ3N0bWVzc2FnZS5oCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmgKCSAgZ3N0L2dzdHBpcGVsaW5lLmgKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgZ3N0L2dzdHNlZ21lbnQuaAoJICBnc3QvZ3N0c3RydWN0dXJlLmgKCSAgZ3N0L2dzdHRhZ2xpc3QuaAoJICBnc3QvZ3N0dXJpLmgKCSAgZ3N0L2dzdHZhbHVlLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaAoJICBOb3RlOiBjYW4ndCB1c2UgR19HTlVDX01BTExPQyB3aXRoIEdzdENhcHMgcmV0dXJuCgkgIHZhbHVlcyBpbiAwLjExIGJlY2F1c2Ugb2YgdGhlIEVNUFRZK0FOWSBzaW5nbGV0b25zLgoKMjAxMS0xMS0yNiAxODo1ODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBsaWJzOiBzcHJpbmtsZSBzb21lIEdfR05VQ19NQUxMT0MKCSAgTWF5YmUgZ2NjIGNhbiBkbyBzb21ldGhpbmcgY2xldmVyIHdpdGggdGhhdCwgb3IgYXQgbGVhc3QKCSAgd2FybiB1cyBpZiB3ZSBkb24ndCBzYXZlIHRoZSByZXR1cm4gdmFsdWUgc29tZXdoZXJlLgoKMjAxMS0xMS0yNiAxODo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBnc3Q6IHNwcmlua2xlIHNvbWUgR19HTlVDX01BTExPQwoJICBNYXliZSBnY2MgY2FuIGRvIHNvbWV0aGluZyBjbGV2ZXIgd2l0aCB0aGF0LCBvciBhdCBsZWFzdAoJICB3YXJuIHVzIGlmIHdlIGRvbid0IHNhdmUgdGhlIHJldHVybiB2YWx1ZSBzb21ld2hlcmUuCgoyMDExLTExLTI1IDIzOjU0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yNSAyMzoxNToyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvY3MuCgoyMDExLTExLTE2IDAxOjA0OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBnc3RfYnVmZmVyX3tzZXQsZ2V0fV9xZGF0YSgpCgkgIEFsbG93cyBwZW9wbGUvdXMgdG8gYXR0YWNoIGFyYml0cmFyeSBtZXRhZGF0YSB0byBidWZmZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NzIwCgkgIEFQSTogZ3N0X2J1ZmZlcl9zZXRfcWRhdGEoKQoJICBBUEk6IGdldF9idWZmZXJfZ2V0X3FkYXRhKCkKCjIwMTEtMTEtMjUgMDc6MTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggYmxvY2tpbmcgcHJvYmUgZW1pc3Npb24KCSAgSWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGJsb2NraW5nIHByb2JlLCBvbmx5IHRoZW4gY2hlY2sgaWYgb25lIHRoZQoJICBibG9ja2luZyBmbGFncyBvZiB0aGUgaG9vayBtYXRjaGVzLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBNYWtlIHRoZSBwYWQgdW5pdCB0ZXN0IGxlc3MgcmFjeS4KCjIwMTEtMTEtMjQgMTc6NDc6MDkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIEFkZCB0ZXN0IGZvciBQQURfUFJPQkVfVFlQRV9CTE9DSyBhbmQgUEFEX1BST0JFX1RZUEVfQkxPQ0tJTkcKCjIwMTEtMTEtMjUgMDU6NTQ6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBkZWJ1ZyBvZiBxdWVyeSByZXN1bHQKCjIwMTEtMTEtMjQgMjI6NTI6MTkgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCB0eXBvIGluIGRvYwoJICBDYXVzZXMgYSB3YXJuaW5nIGZyb20gdGhlIGludHJvc3BlY3Rpb24gc2Nhbm5lci4KCjIwMTEtMTEtMjQgMjE6MzY6MTIgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBjaGVjazogZHJvcCBjYXBzIGFyZ3VtZW50IGZyb20gZ3N0X2NoZWNrX3NldHVwX3tzcmMsc2lua31fcGFkCgkgIENhbGxpbmcgc2V0X2NhcHMgYXQgdGhhdCBwb2ludCBpcyBub3QgdXNlZnVsIGluIDAuMTAgKEZJWE1FIGNvbW1lbnQhKSwgYW5kIGluCgkgIDAuMTEgaXQgaXMgdG90YWxseSBwb2ludGxlc3M6IHRoZSBjYXBzIGV2ZW50IGRvZXNuJ3Qgc3RpY2sgdG8gYSBmbHVzaGluZyBwYWQuCgoyMDExLTExLTI0IDE0OjA3OjE0ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIGJ5dGVfd3JpdGVyX3B1dF9idWZmZXIKCjIwMTEtMTEtMjQgMTE6MjM6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDExLTExLTI0IDExOjE1OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgZ193YXJuaW5nKCkgaWYgcGFkIGFjY2VwdGVkIGNhcHMgdGhhdCBhcmUgbm90IGEgc3Vic2V0IG9mIHRoZSBwYWQgY2FwcwoJICBUaGlzIGNoZWNrIGlzIGNvcnJlY3QgYnV0IHVuZm9ydHVuYXRlbHkgaXQncyBpbXBvc3NpYmxlIHRvIGltcGxlbWVudAoJICBpbiBhIHRocmVhZHNhZmUgd2F5IGJlY2F1c2UgdGhlIGNhcHMgY291bGQgaGF2ZSBjaGFuZ2VkIGluIHRoZSBtZWFudGltZS4KCSAgRml4ZXMgYnVnICM2NTk2MDYuCgoyMDExLTEwLTAzIDEyOjM0OjIwICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjaGVjayBmaWxsZWQgc3RhdGUgb2YgcXVldWVzIGV2ZW4gaWYgYW5vdGhlciBvbmUgaXMgZW1wdHkKCSAgVGhpcyB3aWxsIGF2b2lkIGEgY2FzZSB3aGVyZSBvdmVycnVuIGlzIG5ldmVyIHNpZ25hbGxlZCBpZiBzb21lCgkgIHN0cmVhbSBuZXZlciBwcm9kdWNlcyBhbnkgZGF0YSwgY2F1c2luZyBwbGF5YmluMiB0byBub3QgZW5kIHByZXJvbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA3NzgKCjIwMTEtMTEtMjQgMDk6MzE6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogQ2hlY2sgZm9yIGRhdGFmbG93IHdpdGggaW5jb21wYXRpYmxlIGNhcHMKCSAgVGhpcyB0ZXN0IGN1cnJlbnRseSBmYWlscywgYnV0IGlzIHRoZXJlIHRvIGVuc3VyZSB3ZSBmaXggdGhpcyBpc3N1ZQoJICBhbmQga2VlcCBpdCBmaXhlZCwgc2luY2UgaXQgY29tcGxldGVseSBicmVha3MgZGVsYXllZCBuZWdvdGlhdGlvbgoJICB1c2UtY2FzZXMuCgkgIFRoaXMgYmVoYXZpb3VyIHN0YXJ0ZWQgYnJlYWtpbmcgc2luY2UKCSAgZGQ2NWFhZTlhMTc3ZjdiMTFkY2VmMGY2OTBhNzhkNjk4ZjY2N2NkNAoKMjAxMS0xMS0yNCAwOTozMTowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBBZGQgY29tbWVudHMgdG8gZ3N0cGFkIHRlc3RzCgoyMDExLTExLTI0IDA5OjMwOjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFJlbW92ZSAiI2lmIDAiIGJsb2NrIGZvciBiZWhhdmlvdXIgdGhhdCBub3cgd29ya3MKCjIwMTEtMTEtMjQgMDk6Mjg6MzIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlIGNvbW1lbnRlZCBibG9jawoJICBUaGlzIGJlaGF2aW91ciBpcyBhY3R1YWxseSB0ZXN0ZWQgaW4gdGVzdF9wdXNoX3VubGlua2VkCgoyMDExLTExLTI0IDAxOjA2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBtYWtlIGdzdC1pbnNwZWN0IHByaW50IGEgbmFzdHkgZGVidWcgbWVzc2FnZSBmb3Igbm9uLWdyYXRhIHByb3BlcnR5IHR5cGUKCSAgVHJ5IHRvIGVyYWRpY2F0ZSBwcm9wZXJ0aWVzIG9mIGxvbmcvdWxvbmcvY2hhci91Y2hhciB0eXBlLgoKMjAxMS0xMS0yMyAxNzo1MDoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBldmVudDogYWRkIFNUSUNLWV9NVUxUWSBldmVudHMKCSAgQWRkIGEgbmV3IGV2ZW50IGZsYWcgZm9yIHN0aWNreSBldmVudHMgc28gdGhhdCBtdWx0aXBsZSBldmVudHMgb2YgdGhhdCB0eXBlIGNhbgoJICBiZSBzdG9yZWQgb24gYSBwYWQgYXQgdGhlIHNhbWUgdGltZS4gQ2hhbmdlIHRoZSBfZ2V0X3N0aWNreV9ldmVudCgpIGZ1bmN0aW9uIHRvCgkgIGxvb3Agb3ZlciB0aGUgbXVsdGlwbGUgZXZlbnRzIG9mIGEgdHlwZS4KCSAgQ2hhbmdlIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gcmVtb3ZlZCBhbmQgbW9kaWZ5IHRoZSBzdGlja3kKCSAgZXZlbnRzIG9uIGEgcGFkLgoJICBVc2UgYW4gdmFyaWFibGUgc2l6ZSBhcnJheSBub3cgdG8gc3RvcmUgdGhlIGV2ZW50cy4gVGhpcyBjb3VsZCBsYXRlciBiZQoJICBvcHRpbWl6ZWQgc29tZSBtb3JlLgoKMjAxMS0xMS0yMyAxNzozOTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBoYW5kbGUgTlVMTCBtZXNzYWdlIHNyYyBpbiBkZWJ1ZwoKMjAxMS0xMS0yMyAxNzozODoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGF2b2lkIHJlYWRpbmcgcGFzdCB0aGUgYXJyYXkKCSAgV2hlbiB0aGUgZm9yZWFjaCBmdW5jdGlvbiB0b2xkIHVzIHRvIHJlbW92ZSB0aGUgYnVmZmVyIGZyb20gdGhlIGxpc3QsIGRlY3JlYXNlCgkgIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IG9yIGVsc2Ugd2UgbWlnaHQgcmVhZCBwYXN0IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgoKMjAxMS0xMS0yMyAxMzo0Mjo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldHVybiB0ZW1wbGF0ZSBjYXBzIGluc3RlYWQgb2Ygb3RoZXIgc2lkZSdzIHBlZXIgY2FwcyBpZiBnZXRfc2lua19jYXBzIHZmdW5jIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBVc2luZyBnc3RfcGFkX3Byb3h5X2dldF9jYXBzKCkgYnJlYWtzIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkCgkgIHBhcnNlcnMgYmVjYXVzZSBpdCB3aWxsIHByb3BhZ2F0ZSB0aGUgb3RoZXIgc2lkZSdzIGZpZWxkcyBsaWtlICJwYXJzZWQiCgkgIGFuZCAiZnJhbWVkIiBhbmQgYWxzbyBicmVha3MgcGFyc2VyL2NvbnZlcnRlcnMuCgkgIEZpeGVzIGJ1ZyAjNjY0MjIxLgoKMjAxMS0xMS0yMyAxMTowMzoxOSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogYWRkIG1ldGhvZCB0byB3cml0ZSBvdXQgYSBidWZmZXIKCSAgSW4gMC4xMCwgdGhpcyBjYW4gYmUgZG9uZSB3aXRoIGEgb25lLWxpbmVyIGJ5IHVzaW5nIEdTVF9CVUZGRVJfREFUQS9TSVpFIHdpdGgKCSAgcHV0X2RhdGEuIEEgMC4xMSB1c2VyIGhhcyB0byByZXNvcnQgdG8gZ3N0X2J1ZmZlcl9tYXAsIHdoaWNoIGlzIGxlc3MgY29udmVuaWVudAoJICBhbmQgbWlnaHQgcmVxdWlyZSBhIG1lbWNweSBpbnRlcm5hbGx5LgoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfYnVmZmVyKCkKCjIwMTEtMTEtMjMgMDg6MTc6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGFrZSBwZWVycGFkIGNvcnJlY3RseQoJICBEb24ndCB0YWtlIHRoZSBwZWVycGFkIHRvbyBlYXJseSwgaXQgbWlnaHQgY2hhbmdlIGJlY2F1c2Ugb2YgdGhlCgkgIHByb2Jlcy4KCjIwMTEtMTEtMjIgMTg6MzI6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZXdvcmsgc3RpY2t5IGV2ZW50cwoJICBSZXdyaXRlIHN0aWNreSBldmVudHMsIHRyeWluZyB0byBtYWtlIGl0IGEgYml0IG1vcmUgc2ltcGxlLgoJICBXaGVuIHN0aWNreSBldmVudHMgYXJlIHB1c2hlZCBvbiBhIHNyY3BhZCwgc3RvcmUgdGhlbSBpbiB0aGUgc3RpY2t5IGV2ZW50CgkgIGFycmF5IGFuZCBtYXJrIHRoZSBldmVudCB3aXRoIHJlY2VpdmVkID0gRkFMU0UuCgkgIFdoZW4gdGhlIHN0aWNreSBldmVudCBpcyBzdWNjZXNzZnVsbHkgc2VudCB0byB0aGUgcGVlciBwYWQsIG1ha2UKCSAgcmVjZWl2ZWQgPSBUUlVFLgoJICBLZWVwIGEgUEVORElOR19FVkVOVFMgcGFkIGZsYWcgdGhhdCBpcyBzZXQgd2hlbiBvbmUgb2YgdGhlIGV2ZW50cyBpcyBpbgoJICB0aGUgcmVjZWl2ZWQgPSBGQUxTRSBzdGF0ZSBmb3Igc29tZSByZWFzb24uCgkgIHdoZW4gYWN0aXZhdGluZyBhIHNpbmtwYWQsIG1hcmsgYWxsIGV2ZW50cyByZWNlaXZlZCA9IEZBTFNFIG9uIHRoZSBwZWVyCgkgIHNyY3BhZC4KCSAgV2hlbiBwdXNoaW5nIGEgYnVmZmVyLCBjaGVjayB0aGUgUEVORElOR19FVkVOVFMgZmxhZyBhbmQgaWYgaXQgaXMgc2V0LCBwdXNoIGFsbAoJICBldmVudHMgdG8gdGhlIHBlZXIgcGFkIGZpcnN0LgoKMjAxMS0xMS0yMiAxODozMjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxzbyBsZXQgY2FwcyBldmVudHMgZ28gdGhyb3VnaAoKMjAxMS0xMS0yMiAxNjo0MzozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgbmV3IGZsYWdzCgoyMDExLTExLTIxIDE4OjU2OjE5ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBmaXggcmV0dXJuIHR5cGUgb2YgX21hcCgpIHRvIGdjb25zdHBvaW50ZXIKCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZ3Mgb24gT1NYOgoJICBnc3RhZGFwdGVyLmg6ODI6IHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgkgIGdzdGFkYXB0ZXIuYzo0MTI6IHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgkgIGNvbnN0IGdwb2ludGVyIGlzIG5vdCB0aGUgc2FtZSBhcyBnY29uc3Rwb2ludGVyIG9yIGNvbnN0IHZvaWQgKi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQ5MQoKMjAxMS0xMS0yMiAxMjo0NjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzIGZpbGVzCgoyMDExLTExLTIyIDEyOjQ1OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgcGFkZCByZXR1cm4gdmFsdWUgZnJvbSBfbWluaV9vYmplY3RfcmVwbGFjZSgpCgoyMDExLTExLTIxIDE4OjU2OjE5ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBGaXggcHJpbnRmIGZvcm1hdCBjb21waWxlciB3YXJuaW5ncyBvbiBPU1gvNjRiaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQ5MQoKMjAxMS0xMS0yMSAxNzo0Njo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGltcHJvdmUgcGFkIHRlc3RzCgoyMDExLTExLTIxIDE3OjQzOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBsb2NraW5nIG9yZGVyIGVycm9yCgoyMDExLTExLTIxIDE3OjQzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBmaXggcHJpbnQgZm9ybWF0CgoyMDExLTExLTIxIDE1OjQ3OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQWRkIGRlc3Ryb3kgbm90aWZ5IHRvIHBhZCBmdW5jdGlvbnMKCSAgQWRkIF9mdWxsIHZhcmlhbnRzIG9mIHRoZSBwYWQgZnVuY3Rpb24gc2V0dGVycyB0aGF0IHRha2UgYSBkZXN0cm95IG5vdGlmeS4KCSAgTWFrZSBzb21lIG1hY3JvcyB0aGF0IG1ha2UgdGhlIG9sZCBtZXRob2QgbmFtZSBwYXNzIE5VTEwgdG8gdGhpcyBuZXcKCSAgZnVuY3Rpb24uCgoyMDExLTExLTIxIDEzOjI5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgcGFkOiBNZXJnZSBwYWQgbW9kZSBhY3RpdmF0aW9uIGZ1bmN0aW9ucwoJICBBZGQgdGhlIHBhZCBtb2RlIHRvIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiByZXVzZSB0aGUgc2FtZSBmdW5jdGlvbgoJICBmb3IgYWxsIGFjdGl2YXRpb24gbW9kZXMuIFRoaXMgbWFrZXMgdGhlIGNvcmUgbG9naWMgc21hbGxlciBhbmQgYWxsb3dzIGZvciBzb21lCgkgIGVsZW1lbnRzIHRvIG1ha2UgdGhlaXIgYWN0aXZhdGlvbiBjb2RlIGVhc2llci4gSXQgd291bGQgYWxsb3cgdXMgdG8gYWRkIG1vcmUKCSAgc2NoZWR1bGluZyBtb2RlcyBsYXRlciB3aXRob3V0IGhhdmluZyB0byBhZGQgbW9yZSBhY3RpdmF0ZSBmdW5jdGlvbnMuCgoyMDExLTExLTE4IDE4OjA4OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jCgkgIGFsc28gZml4IGRlZmF1bHQgYWxpZ25tZW50IHZhbHVlICgwID09IG5vLWFsaWdubWVudCkKCjIwMTEtMTEtMTggMTc6Mjc6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcXVlcnk6IGltcHJvdmUgc2NoZWR1bGluZyBxdWVyeQoJICBUdXJucyBzb21lIGJvb2xlYW4gYXJndW1lbnRzIGluIHRoZSBzY2hlZHVsaW5nIHF1ZXJ5IHRvIGZsYWdzLCB3aGljaCBhcmUgZWFzaWVyCgkgIHRvIGV4dGVuZCBhbmQgbWFrZXMgdGhlIGNvZGUgZWFzaWVyIHRvIHJlYWQuCgkgIE1ha2UgZXh0cmEgbWV0aG9kcyBmb3IgY29uZmlndXJpbmcgYW5kIHF1ZXJ5aW5nIHRoZSBzdXBwb3J0ZWQgc2NoZWR1bGluZyBtb2Rlcy4KCSAgVGhpcyBzaG91bGQgbWFrZSBpdCBlYXNpZXIgdG8gYWRkIG5ldyBtb2RlcyBsYXRlci4KCjIwMTEtMTEtMTggMTQ6MDg6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IG1vdmUgZmxhZ3MgY2xvc2VyIHRvIGJ1ZmZlcmluZyBxdWVyeQoKMjAxMS0xMS0xOCAxMzo0Njo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBwYWQ6IGFkZCBwYXJlbnQgdG8gYWN0aXZhdGUgZnVuY3Rpb25zCgoyMDExLTExLTE4IDEyOjM1OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgcGFkOiBmaXggc2NoZWR1bGluZyBtb2RlIGVudW1zCgkgIEdzdFBhZEFjdGl2YXRlTW9kZSAtPiBHc3RQYWRNb2RlCgkgIEdTVF9QQURfQUNUSVZBVEVfKiAtPiBHU1RfUEFEX01PREVfKgoKMjAxMS0xMS0xNyAxNjoxNDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IGZvciBuZXcgZ2V0cmFuZ2UgbWV0aG9kIHNpZ25hdHVyZQoJICBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2VfZXh0IC0+IGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZQoKMjAxMS0xMS0xNyAxMjo0MDo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byBvdGhlciBmdW5jdGlvbnMKCSAgQWRkIHBhcmVudCB0byBjaGFpbiwgY2hhaW5fbGlzdCwgZ2V0cmFuZ2UgYW5kIGV2ZW50IGZ1bmN0aW9ucy4KCjIwMTEtMTEtMTcgMDg6MjE6MDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogbW92ZSBmaWVsZHMgb3V0IG9mIHJlc2VydmVkIGFuZCByZXN0b3JlIHBhZGRpbmcKCSAgRG8gdGhlIDAuMTEgQUJJIGNoYW5nZXMuIEFkZCBleHRyYSBmaWVsZHMgZm9yIGRlc3Ryb3lfbm90aWZ5IGFuZCBkcm9wIHRoZSBxZGF0YQoJICBoYWNrLiBSZW5hbWUgX2FkZF9wYWRfZnVsbCB0byBfYWRkX3BhZCBhbmQgcmVtb3ZlIHRoZSBvbGQgX2FkZF9wYWQuCgoyMDExLTExLTE2IDE3OjQ5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBhZGQgcGFyZW50IHRvIGludGVybmFsIGxpbmtzCgoyMDExLTExLTE2IDE3OjIyOjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBwYWQ6IGFkZCBwYXJlbnQgdG8gdGhlIHF1ZXJ5IGZ1bmN0aW9uCgoyMDExLTExLTE2IDEyOjM2OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBHc3RQYWRGbGFnczogcmVuYW1lIGZsYWdzIEdTVF9QQURfKiAtPiBHU1RfUEFEX0ZMQUdfKgoKMjAxMS0xMS0xNiAxMjoxMDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgcGx1Z2luczogcmVtb3ZlIG9ic29sZXRlIHBhcmVudCBjaGVja3MKCjIwMTEtMTEtMTYgMTI6MDg6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBrZWVwIHRoZSBwYXJlbnQgYWxpdmUgd2hlbiByZXF1ZXN0ZWQKCSAgQWRkIGEgbmV3IHBhZCBmbGFnIE5FRURfUEFSRU5UIHRoYXQgZW5zdXJlcyB0aGF0IHRoZSBwYXJlbnQgb2YgYSBwYWQgaXMKCSAgcmVmZmVkIGFuZCBub3QgTlVMTCB3aGVuIHRoZSBldmVudCwgcXVlcnkgYW5kIGludGVybmFsIGxpbmtzIGZ1bmN0aW9ucwoJICBhcmUgY2FsbGVkLgoJICBXaGVuIGEgcGFkIGlzIGFkZGVkIHRvIGFuIGVsZW1lbnQgYXV0b21hdGljYWxseSBtYWtlIHN1cmUgdGhlIE5FRURfUEFSRU5UIGZsYWcKCSAgaXMgZW5hYmxlZC4KCjIwMTEtMTEtMTYgMTA6Mjk6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9uJ3QgcmVxdWlyZSBwYXJlbnQgZWxlbWVudCB0byBwcm94eQoKMjAxMS0xMS0xNiAxMDoxNjo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0xMS0xNSAxODoxNjoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHBhZDogbW92ZSBxdWVyeSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG9nZXRoZXIKCSAgTW92ZSB0aGUgY2FwcyBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gdGhlIG90aGVyIHF1ZXJ5IGZ1bmN0aW9ucy4KCjIwMTEtMTEtMTUgMTc6NTA6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgX3F1ZXJ5X3BlZXJfKigpIC0+IF9wZWVyX3F1ZXJ5XyooKQoKMjAxMS0xMS0xNSAxNzo0MDoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIF9hY2NlcHRfY2FwcygpIC0+IF9xdWVyeV9hY2NlcHRfY2FwcygpCgoyMDExLTExLTE1IDE3OjExOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgX3BlZXJfZ2V0X2NhcHMoKSAtPiBwZWVyX3F1ZXJ5X2NhcHMoKQoKMjAxMS0xMS0xNSAxNjo0NjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogX2dldF9jYXBzKCkgLT4gX3F1ZXJ5X2NhcHMoKQoKMjAxMS0xMS0xNSAxNjoxNjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGRvY3MKCjIwMTEtMTEtMTUgMTY6MTM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCB0aGUgcHJveHkgZnVuY3Rpb25zCgkgIGZpeCB0aGUgcHJveHkgZnVuY3Rpb25zIGZvciBxdWVyeV9hY2NlcHRfY2FwcyBhbmQgcXVlcnlfY2FwcyB0byB1c2UgdGhlIHBhZAoJICBmb3J3YXJkIGhlbHBlciBmdW5jdGlvbnMgd2hpY2ggY29ycmVjdGx5IGZvcndhcmRzIG9uIHRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzLgoKMjAxMS0xMS0xNSAxNjoxMzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbXByb3ZlIHNvbWUgZmxhZyBtYWNyb3MKCjIwMTEtMTEtMTUgMTY6MTM6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGRlYnVnIGxpbmUKCjIwMTEtMTEtMTUgMTE6MjA6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBhZDogcmVtb3ZlIGdldGNhcHMgYW5kIHVzZSBjYXBzIHF1ZXJ5CgkgIFJlbW92ZSB0aGUgZ2V0Y2FwcyBmdW5jdGlvbiBvbiB0aGUgcGFkIGFuZCB1c2UgdGhlIENBUFMgcXVlcnkgZm9yCgkgIHRoZSBzYW1lIGVmZmVjdC4KCSAgQWRkIFBST1hZX0NBUFMgdG8gdGhlIHBhZCBmbGFncy4gVGhpcyBpbnN0cnVjdHMgdGhlIGRlZmF1bHQgY2FwcyBldmVudCBhbmQgcXVlcnkKCSAgaGFuZGxlcnMgdG8gcGFzcyBvbiB0aGUgQ0FQUyByZWxhdGVkIHF1ZXJpZXMgYW5kIGV2ZW50cy4gVGhpcyBzaW1wbGlmaWVzIGEgbG90CgkgIG9mIGVsZW1lbnRzIHRoYXQgcGFzc3Ryb3VnaCBjYXBzIG5lZ290aWF0aW9uLgoJICBNYWtlIHR3byB1dGlsaXR5IGZ1bmN0aW9ucyB0byBwcm94eSBjYXBzIHF1ZXJpZXMgYW5kIGFnZ3JlZ2F0ZSB0aGUgcmVzdWx0LiBOZWVkcwoJICB0byB1c2UgdGhlIHBhZCBmb3J3YXJkIGZ1bmN0aW9uIGluc3RlYWQgbGF0ZXIuCgkgIE1ha2UgdGhlIF9xdWVyeV9wZWVyXyB1dGlsaXR5IGZ1bmN0aW9ucyB1c2UgdGhlIGdzdF9wYWRfcGVlcl9xdWVyeSgpIGZ1bmN0aW9uIHRvCgkgIG1ha2Ugc3VyZSB0aGUgcHJvYmVzIGFyZSBlbWl0ZWQgcHJvcGVybHkuCgoyMDExLTExLTE0IDExOjI2OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgY2FwcyBxdWVyeQoKMjAxMS0xMS0xNCAwOTo1NzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHJlbW92ZSBHU1RfUVVFUllfTEFTVAoKMjAxMS0xMS0xNCAxMDoyNzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZml4IGRvY3MKCjIwMTEtMTEtMTIgMTA6Mjk6MzAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGZ1bmN0aW9ucyB0byBhZGQvcmVtb3ZlIGNvbnRyb2xsZWQgcHJvcGVydGllcwoJICBNYWtlIHRoYXQgaW1wbGl6aXQgd2l0aCBhdHRhY2hpbmcvZGV0YWNoaW5nIGNvbnRyb2xzb3VyY2VzLiBUaGlzIGlzIGEgbG90IGVhc2llcgoJICBhbmQgaGFzIGxlc3MgaW52YWxpZCBzdGF0ZSAoY29udHJvbGxlZCBwcm9wZXJ0eSB3aXRob3V0IGNvbnRyb2wgc291cmNlKS4KCjIwMTEtMTEtMTMgMjM6MjU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwbHVnaW5zLCB0b29sczogdXBkYXRlIGZvciBnZXRfcHJvdG9jb2xzKCkgcmV0dXJuIHZhbHVlIGNoYW5nZQoKMjAxMS0xMS0xMyAyMzoxNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaTogY2xlYW4gdXAgaGVhZGVyIGZpbGVzCgkgIFRhYnMgdG8gc3BhY2VzLgoKMjAxMS0xMS0xMyAyMzowNzo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmloYW5kbGVyOiBmaXggcmV0dXJuIHR5cGUgb2YgZ2V0X3Byb3RvY29scygpCgoyMDExLTExLTEzIDIwOjU2OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmloYW5kbGVyOiBmaXggcmV0dXJuIHR5cGUgb2YgX2dldF91cmlfdHlwZSgpCgkgIFJldHVybiBhIEdzdFVSSVR5cGUgYW5kIG5vdCBhIHBsYWluIGd1aW50LgoKMjAxMS0xMS0xMyAxNzo0NToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiB1cGRhdGUgdW5pdCB0ZXN0cyBmb3IgVVJJIGhhbmRsZXIgQVBJIGNoYW5nZXMKCjIwMTEtMTEtMTMgMTc6NDQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBlbGVtZW50czogdXBkYXRlIGZkICsgZmlsZSBzb3VyY2VzIGFuZCBzaW5rcyBmb3IgR3N0VXJpSGFuZGxlciBjaGFuZ2VzCgoyMDExLTExLTEzIDE3OjQ0OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cmloYW5kbGVyOiBwYXNzIEdFcnJvciBhcmd1bWVudCB0byBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSgpCgkgIEFsc28gbGV0IGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpIGNoZWNrIGFscmVhZHkgaWYgdGhlIHByb3RvY29sCgkgIGlzIHN1cHBvcnRlZCwgc28gdGhhdCBub3QgZXZlcnkgdXJpIGhhbmRsZXIgaGFzIHRvIGRvIHRoYXQKCSAgaXRzZWxmLgoKMjAxMS0xMS0xMyAxNTo1MTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpaGFuZGxlcjogbWFrZSBfZ2V0X3VyaSgpIHJldHVybiBhIGNvcHkKCSAgRm9yIHRocmVhZC1zYWZldHkuCgoyMDExLTExLTEzIDE1OjM3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgdXJpaGFuZGxlcjogcmVtb3ZlICJuZXctdXJpIiBzaWduYWwKCSAgTm8gb25lIGJ1dCBmaWxlc3JjIHVzZWQgdGhhdCBBUEkuIFNob3VsZCBwcm9iYWJseSBiZSByZXBsYWNlZCBieQoJICByZXF1aXJpbmcgYW4gInVyaSIgcHJvcGVydHkgaW5zdGVhZCwgYW5kIHRoZW4gb2JqZWN0cyBjYW4gZG8gYQoJICBub3RpZnkgb24gdGhhdC4gQWxzbyByZW1vdmVkIGludGVyZmFjZSBzdHJ1Y3R1cmUgcGFkZGluZywgaXQncwoJICBub3QgbmVlZGVkLgoKMjAxMS0xMS0xMyAxMzoyMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB0b29scy9nc3QtaW5zcGVjdC5jCgoyMDExLTExLTEyIDE2OjQyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCBjdXJyZW50IHZhbHVlIGFzIGRlZmF1bHQgdmFsdWUKCSAgSW5zdGVhZCBvZiBwcmludGluZyBzZXBhcmF0ZSAnQ3VycmVudCcgYW5kICdEZWZhdWx0JyB2YWx1ZXMKCSAgKHRoZSBmb3JtZXIgb2J0YWluZWQgdmlhIGdfb2JqZWN0X2dldCgpIGFuZCB0aGUgbGF0dGVyIGZyb20KCSAgdGhlIHByb3BlcnR5IEdQYXJhbVNwZWMpLCBzaW1wbHkgcHJpbnQgdGhlIEN1cnJlbnQgdmFsdWUgYXMKCSAgdGhlIERlZmF1bHQgdmFsdWUuIFRoaXMgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGZvciBhbG1vc3QKCSAgYWxsIGVsZW1lbnRzIGFuZCBhdm9pZHMgY29uZnVzaW9uIGlmIGEgc3ViY2xhc3Mgb2YgYSBiYXNlCgkgIGNsYXNzIGNob29zZXMgYSBkaWZmZXJlbnQgZGVmYXVsdCB0aGFuIHRoZSBiYXNlIGNsYXNzLgoKMjAxMS0xMS0xMiAxNDo1NTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBnc3QsIGNvbnRyb2xsZXI6IHJlcGxhY2UgZ19saXN0X3ByZXBlbmQgKyByZXZlcnNlIHdpdGggR1F1ZXVlCgoyMDExLTExLTEyIDE0OjA0OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZG9jczogZml4IHR5cG8gaW4gYnVmZmVyIGRvY3MKCjIwMTEtMTEtMTIgMDE6NTQ6NDQgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGNhcHMgdW5yZWYgaW4gdHJhbnNmb3JtX2NhcHMgZmlsdGVyIHN1YnNldCBjaGVjawoJICBJIGRpZCBub3QgdGVzdCB0aGlzLCBidXQgdGhlIGNvZGUgbG9va2VkIHZlcnkgd3JvbmcuCgoyMDExLTExLTEyIDAxOjUxOjExICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBkbyBub3QgcmV0dXJuIGEgcmVmIGZyb20gcGFyc2VfYWNjZXB0X2NhcHMKCSAgTWFrZXMgdGhpcyBleGFjdGx5IGxpa2UgZ3N0X2V2ZW50X3BhcnNlX2NhcHMuIFRoaXMgaXMgd2hhdCBjdXJyZW50IGNvZGUKCSAgZXhwZWN0cywgc28gaXQgZml4ZXMgc29tZSBsZWFrcy4KCjIwMTEtMTEtMTEgMTc6MTc6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIC5oOiBmaXggaGVhZGVyIGZpbGVzCgkgIEVuc3VyZSBjb3JyZWN0IGluZGVudGF0aW9uIGFuZCByZXRhYgoJICBNYWtlIHN1cmUgYWxsIHN0cnVjdHVyZSBoYXZlIHBhZGRpbmcKCjIwMTEtMTEtMTEgMTY6NTI6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIC5oOiBmaXggaGVhZGVyIGZpbGVzCgkgIEVuc3VyZSBjb3JyZWN0IGluZGVudGF0aW9uIGFuZCA6cmV0YWIuCgkgIE1ha2Ugc3VyZSBhbGwgc3RydWN0dXJlcyBoYXZlIHBhZGRpbmcKCSAgRml4IHVwIHNvbWUgb2xkIEFCSSBhZGRpdGlvbnMuCgoyMDExLTExLTExIDE3OjA0OjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBmaXggaW52YWxpZCB4bWwKCjIwMTEtMTEtMTEgMTA6MDA6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYXZvaWQgPCAtMSBzaXplcwoKMjAxMS0xMS0xMSAwMTo0NzozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGJ1ZmZlciwgbWVtb3J5OiBtYWtlIHNpemUgYXJndW1lbnRzIHdoZXJlIC0xIGlzIGFsbG93ZWQgc2lnbmVkCgoyMDExLTExLTExIDAxOjQ0OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbGF0ZXN0IEFQSSBjaGFuZ2VzCgoyMDExLTExLTEwIDE5OjM3OjI4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IG1lcmdlIGNvbnRyb2xsZXIgaW50byBnc3RvYmplY3QKCSAgVGhpcyBtYWtlIHRoZSBjb250cm9sbGVyIGV2ZW4gbW9yZSBsaWdodHdlaWdodCAobm8gZXh0cmEgb2JqZWN0LCBubyBleHRyYSBsb2NrLAoJICBsZXNzIGluZGlyZWN0aW9ucykuIEZvciBvYmplY3QgdGhhdCBkb24ndCB1c2UgdGhlIGNvbnRyb2xsZXIgdGhlIG9ubHkgJ292ZXJoZWFkJwoJICBpcyBhIDMgdW51c2VkIGZpZWxkcyBpbiB0aGUgZ3N0X29iamVjdCBzdHJ1Y3R1cmUuCgoyMDExLTExLTEwIDE4OjU4OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJICBuZXRtZXRhOiBhdm9pZCB1c2luZyBnW3VdbG9uZyBpbiBoZWFkZXJzCgoyMDExLTExLTEwIDE4OjE4OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVtb3ZlIGZsdXNoIGZyb20gX3VubWFwCgoyMDExLTExLTEwIDE2OjAyOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcGxlbWVudCBhIGRlZmF1bHQgZ2V0X2NhcHMgZnVuY3Rpb24KCSAgRG9uJ3QgcmVseSBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIGEgdm1ldGhvZCB0byB0cmlnZ2VyIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIGJ1dCBtYWtlIGEgcmVhbCBkZWZhdWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1ldGhvZCB0aGF0IHRoZQoJICBzdWJjbGFzcyBjYW4gY2hhaW4gdXAgdG8uCgoyMDExLTExLTEwIDE0OjEzOjU0ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiByZW1vdmUgaW5jb3JyZWN0IGFzc2VydGlvbgoJICBPZmZzZXQgYW5kIHNpemVzIGhhdmUgbm8gYmVhcmluZyBvbiBlYWNoIG90aGVyIGhlcmUuCgoyMDExLTExLTEwIDEzOjU5OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmIGZpbGVzCgoyMDExLTExLTEwIDEzOjUzOjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBnc3Q6IE1vcmUgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoKMjAxMS0xMS0xMCAxMzo1MToyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgZ3N0bWVtb3J5OiBSZWdpc3RlciBhIEdCb3hlZCBHVHlwZQoJICBBbGxvd3MgdXNpbmcgaXQgZnJvbSBnLWkKCjIwMTEtMTEtMTAgMTM6NTA6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgLS13YXJuLWFsbCB0byBpbnRyb3NwZWN0aW9uIHNjYW5uZXIKCSAgLi4uIGFuZCBsZXQncyBnZXQgZml4aW5nIGFsbCB0aG9zZSBkb2NzICEKCjIwMTEtMTEtMTAgMTM6Mzg6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHZtZXRob2RzCgkgIE1ha2UgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSB0cmFuc2Zvcm1fY2FwcyB2bWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcwoJICBjYW4gY2FsbCBpbnRvIGl0LgoJICBNYWtlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0cmFuc2Zvcm1fc2l6ZS4KCSAgQXZvaWQgZG9pbmcgc29tZXRoaW5nIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUuCgoyMDExLTExLTEwIDEzOjM3OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJICB0ZXN0czogb25seSBvdmVycmlkZSB3aGVuICE9IE5VTEwKCSAgT25seSBvdmVycmlkZSB0aGUgbWV0aG9kcyBpbiB0aGUgdW5pdCB0ZXN0cyB3aGVuICE9IE5VTEwgb3RoZXJ3aXNlIHdlIG1pZ2h0CgkgIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAxMS0xMS0xMCAxMzozNjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgcHVzaHNyYzogbWFrZSBhbGxvYyBtZXRob2QgYSB2bWV0aG9kCgoyMDExLTExLTEwIDEyOjMzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVvcmRlciB2bWV0aG9kIGFjY29yZGluZyB0byAuaCBmaWxlCgoyMDExLTExLTEwIDEyOjMzOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogaW1wcm92ZSBjb21tZW50cwoKMjAxMS0xMS0xMCAxMjozMzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBkbyB0aGluZ3MgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZQoKMjAxMS0xMS0xMCAxMjowOTo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogYWRkIGEgZGVmYXVsdCBzZXRfY2xvY2sgaW1wbGVtZW50YXRpb24KCSAgQWRkIGEgZGVmYXVsdCBzZXRfY2xvY2sgaW1wbGVtZW50YXRpb24gYW5kIGF2b2lkIGRvaW5nIHdvcmsgaW4gdGhlIHZtZXRob2QKCSAgdHJhbXBvbGluZS4gVGhpcyByZXF1aXJlcyBzdWJjbGFzc2VzIHRvIGNoYWluIHVwLgoKMjAxMS0xMS0xMCAxMjowODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IGRvIGFueXRoaW5nIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUKCSAgQXZvaWQgZG9pbmcgc3R1ZmYgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZSwganVzdCBsZXQgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1ldGhvZCB0YWtlIGNhcmUgb2YgdGhpbmdzLgoKMjAxMS0xMS0xMCAxMjowODoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBzb21lIGRvY3MKCjIwMTEtMTEtMTAgMTE6NDI6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IHVzZSBncG9pbnRlciBmb3IgcmV0dXJuIHR5cGVzCgoyMDExLTExLTEwIDExOjEyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGRvYwoKMjAxMS0xMS0xMCAxMDo1ODo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBhZDogcmVtb3ZlIEdzdFBhZEZpeGF0ZUNhcHNGdW5jdGlvbgoJICBUaGUgZml4YXRlIGNhcHMgZnVuY3Rpb24gd2FzIG5vdCB1c2VkIGV4dGVybmFsbHkgYW5kIHdlIGhhdmUgdm1ldGhvZHMgaW4gdGhlCgkgIGJhc2UgY2xhc3NlcyB3aGVyZSBpdCBpcyBuZWVkZWQuCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgIHNpbXBsaWZ5IHNvbWUgZml4YXRlIGZ1bmN0aW9ucyBpbiB0aGUgYmFzZSBjbGFzc2VzLiBBbHNvIHBhc3MgdGhlIHVudHJ1bmNhdGVkCgkgIGNhcHMgdG8gdGhlIHZtZXRob2QuCgoyMDExLTExLTA5IDE3OjQzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHN0b3JlIGV2ZW50cyBvbiBmbHVzaGluZyBwYWRzCgkgIGNoZWNrIHRoZSBmbHVzaGluZyBzdGF0ZSBvZiB0aGUgcGFkIGJlZm9yZSBzdG9yaW5nIHRoZSBldmVudC4KCjIwMTEtMTEtMDkgMTc6MzY6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBhZDogbWFrZSBhbiBBQ0NFUFRfQ0FQUyBxdWVyeQoJICBSZXBsYWNlIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIHdpdGggYSBxdWVyeS4KCjIwMTEtMTEtMDkgMTc6MjU6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBhZDogcmVmdXNlIGV2ZW50cyBpbiBmbHVzaGluZwoJICB3aGVuIHdlIGFyZSBmbHVzaGluZywgZG9uJ3Qgc3RvcmUgdGhlIGV2ZW50IG9uIHRoZSBwYWQgYnV0IHNpbXBseSByZXR1cm4gRkFMU0UuCgkgIERvbid0IGRlYWN0aXZhdGUgdGhlIHNyY3BhZCwgd2UgbmVlZCBpdCB0byBiZSBhY3RpdmUgaW4gb3JkZXIgdG8gcHVzaCB0aGUKCSAgY2Fwcy4gRG93bnN0cmVhbSBjYW4gY2hhbmdlIHRoZSBzY2hlZHVsaW5nIG1vZGUgb2YgYW4gYWN0aXZlIHBhZC4KCjIwMTEtMTEtMDkgMTc6MTk6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBlbGVtZW50OiByZW1vdmUgbW9yZSBxdWVyeV90eXBlcwoKMjAxMS0xMS0wOSAxMTowNTo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIEFuZHJvaWQubWs6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIEFuZHJvaWQ6IGJ1aWxkIGF1ZGlvIGNvbnRyb2xsZXIgZXhhbXBsZQoJICBBZGQgYnVpbGRzeXN0ZW0gaG9va3MgZm9yIGJ1aWxkaW5nIHRoZSBhdWRpb2NvbnRyb2xsZXIgZXhhbXBsZQoJICB3aXRoIHRoZSBOREsuCgkgIFNpZ25lZC1vZmYtYnk6IFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoyMDExLTExLTA5IDEyOjIxOjE3ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBhZGQgdGVzdHMgZm9yIHN0aWNreSBjYXBzIGhhbmRsaW5nCgkgIHRlc3Rfc3RpY2t5X2NhcHNfZmx1c2hpbmcgaXMgY3VycmVudGx5IGZhaWxpbmcuCgoyMDExLTExLTA5IDEyOjEyOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICB1cGRhdGUgY29tbW9uCgoyMDExLTExLTA5IDEyOjAzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0wOSAxMjowMjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0xMS0wOSAxMTo0NzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICByZW1vdmUgcXVlcnkgdHlwZXMKCSAgSXQgd2FzIG5vdCByZWFsbHkgdXNlZnVsCgoyMDExLTExLTA4IDE4OjA5OjI4ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogY29uc2lkZXIgbGlzdHMgYW5kIHJhbmdlcyBlcXVhbCBpZiB0aGV5IGhvbGQgdGhlIHNhbWUgc2V0CgkgIFRoaXMgZml4ZXMgY2FwcyBvcGVyYXRpb25zIHdoZW4gZGlmZmVyZW50IGVsZW1lbnRzIGFkdmVydGlzZSBzb21lCgkgIG9mIHRoZWlyIGNhcHMnIHByb3BlcnRpZXMgZGlmZmVyZW50bHkgKGVnLCBmb3IgYXVkaW8gY2hhbm5lbHMsIGVpdGhlcgoJICBhIHJhbmdlIGZyb20gMSB0byAyLCBvciBhIGxpc3Qgb2YgMSBhbmQgMikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjM2NDMKCjIwMTEtMTEtMDkgMTE6MjQ6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBhZGQgYSBzdWJzZXQgdGVzdCBmb3Igc3RydWN0dXJlCgoyMDExLTExLTA5IDExOjIyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGFkOiBhZGQgbW9yZSBxdWVyaWVzCgkgIEFkZCBtb3JlIHF1ZXJ5IGZ1bmN0aW9ucyB0byBwcmVwYXJlIGZvciBkb2luZyBtb3JlIHdpdGggcXVlcmllcwoKMjAxMS0xMC0yOCAxMzozOTo1OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBkb2NzOiBhbHNvIGZpeCB3cm9uZyBjYWxsIG9yZGVyIGZvciBjb250cm9sbGVyIGluIG1hbnVhbAoKMjAxMS0xMS0wOCAxNzozMjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW5zdGFsbCBxdWVyeSBwcm9iZXMKCSAgRmlyZSBxdWVyeSBwcm9iZXMgYWNjb3JkaW5nIHRvIHVwZGF0ZWQgZGVzaWduIGRvYy4KCjIwMTEtMTEtMDggMTU6NTE6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIGxvY2svdW5sb2NrX2Z1bGwgdmVyc2lvbnMgb2Ygc3RyZWFtLWxvY2sKCjIwMTEtMTEtMDggMTU6NDg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGRlZmluZXMgZm9yIHF1ZXJ5IHByb2JlcwoKMjAxMS0xMS0wOCAxMzozMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdW5pdCB0ZXN0CgoyMDExLTExLTA4IDEzOjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHVwZGF0ZSBkb2NzCgoyMDExLTExLTA4IDEzOjAyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0OiBwb3J0IHRvIDAuMTEKCjIwMTEtMTEtMDggMTI6NTQ6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGVsZW1lbnQuaAoJICBnc3QvZ3N0Z2hvc3RwYWQuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgoyMDExLTExLTA4IDEyOjQ3OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcHVsbCBtb2RlIHByb2JlcwoJICBBbGxvdyBwcm9iZXMgdG8gaW5zcGVjdCB0aGUgb2Zmc2V0IGFuZCBzaXplIGZyb20gYSBwcm9iZSBpbiBwdWxsIG1vZGUgYW5kIGFsbG93CgkgIHRoZSBwcm9iZSB0byBtb2RpZnkgdGhlIGJ1ZmZlci4KCSAgVXBkYXRlIGRlc2lnbiBkb2MgYSBsaXR0bGUuCgoyMDExLTExLTA4IDEyOjIyOjIxICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBhZGQgdGVzdCB0byB2ZXJpZnkgZmx1c2hpbmcgYmVoYXZpb3VyCgkgIFNlZW1zIGxpa2UgYSB0cml2aWFsIGNhc2UsIGJ1dCB0aGlzIHdhcyBhY3R1YWxseSBicm9rZW4gaW4gMC4xMSByZWNlbnRseS4KCjIwMTEtMTEtMDggMTE6MDQ6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHBhZDogQWRkIEdzdFBhZFByb2JlSW5mbwoJICBNYWtlIGEgbmV3IEdzdFBhZFByb2JlSW5mbyBzdHJ1Y3R1cmUgYW5kIHBhc3MgdGhpcyBpbiB0aGUgcHJvYmUgY2FsbGJhY2suIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGFkZCBtb3JlIHRoaW5ncyBsYXRlciBhbmQgYWxzbyBhbGxvdyB0aGUgY2FsbGJhY2sgdG8gcmVwbGFjZSBvcgoJICBtb2RpZnkgdGhlIHBhc3NlZCBvYmplY3QuCgoyMDExLTExLTA4IDA4OjI2OjI5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBsb2cgY3JlYXRpb24gb2YgcW9zIGV2ZW50cyBhdCBMT0cgbGV2ZWwgaW5zdGVhZCBhdCBJTkZPCgoyMDExLTExLTA3IDE2OjU3OjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgcGFyYW1ldGVyIGRvY3MKCjIwMTEtMTEtMDggMDA6MzI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgZG9jczogZml4IFNpbmNlOiBtYXJrZXJzIGZvciBBUEkgYWRkZWQgYWZ0ZXIgMC4xMC4zNQoKMjAxMS0xMS0wOCAwMDoxNTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCSAgQVBJOiBnc3RfY2Fwc19pc19zdHJpY3RseV9lcXVhbCgpCgoyMDExLTExLTA3IDE3OjE3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R2YWx1ZS5jCgoyMDExLTExLTA3IDE3OjA0OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHBhZDogcmV3b3JrIHBhZCBwcm9iZXMKCSAgTWFrZSBhIHNlcGFyYXRlIGNvb2tpZSB0byBkZXRlY3QgY2hhbmNnZXMgaW4gdGhlIGxpc3Qgb2YgcHJvYmVzIGFuZCBrZWVwaW5nCgkgIHRyYWNrIG9mIHdoYXQgaG9va3MgaGF2ZSBiZWVuIGludm9rZWQgeWV0LgoJICBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IHRvIGhhdmUgcHJvYmVzIG9uIHNyY3BhZHMgaW4gcHVzaCBtb2RlIGFuZCBzaW5rcGFkcyBpbgoJICBwdWxsIG1vZGUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIEtlZXAgdHJhY2sgb2Ygd2hhdCBjYWxsYmFja3MgZ290IGV4ZWN1dGVkLiBJZiBubyBjYWxsYmFjayBpcyBjYWxsZWQgYW5kIHdlIGFyZSBhCgkgIGJsb2NraW5nIHBhZCwgbGV0IHRoZSBpdGVtIHBhc3MuIFRoaXMgYWxsb3dzIHlvdSB0byBibG9jayBwYWRzIG9uIHNlbGVjdGVkCgkgIGl0ZW1zIG9ubHkuCgkgIEV4cGxpY2l0bHkgaGF2ZSBhbiBVUFNUUkVBTSBhbmQgRE9XTlNUUkVBTSBQYWRQcm9iZVR5cGUuIFRoaXMgYWxsb3dzIHlvdSB0byBvbmx5CgkgIGJsb2NrIHRoZSBwYWQgb24gdXBzdHJlYW0gb3IgZG93bnN0cmVhbSBpdGVtcy4KCSAgQWRkIGNvbnZlbmllbmNlIG1hY3JvcyB0byBvbmx5IGJsb2NrIG9uIGRvd25zdHJlYW0vdXBzdHJlYW0gaXRlbXMuCgoyMDExLTEwLTI3IDEyOjU5OjU3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IHJlbW92ZSB1bm5lZWRlZCB1c2Ugb2YgZ2ludDY0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTI6MjQ6MTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHF1aWNrZXIgdmVyc2lvbiBvZiBpbnRlcnNlY3Rpb24gd2hlbiB3ZSBkbyBub3QgbmVlZCB0aGUgcmVzdWx0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTI6MDI6NDMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IHNpbXBsaWZ5IHJldHVybiBzdGF0ZW1lbnQgaW4gZ3N0X3N0cnVjdHVyZV9jYW5faW50ZXJzZWN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTE6NDE6MzAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IGVhcmx5IG91dCB3aGVuIHdlIGtub3cgYSB2YWx1ZSBjYW5ub3QgYmUgYSBzdWJzZXQKCSAgSWYgdHdvIHZhbHVlcyBjYW4gYmUgb3JkZXJlZCwgYnV0IGFyZSB1bmVxdWFsLCB0aGV5IGFyZQoJICBuZWNlc3NhcmlseSBkaXN0aW5jdCwgdGh1cyBvbmUgY2Fubm90IGJlIGEgc3Vic2V0IG9mIHRoZSBvdGhlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMDozNTo1MyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcXVpY2tlciB0ZXN0IGZvciBzdWJzdHJhY3Rpb24gZW1wdGluZXNzCgkgIFdoZW4gd2UgZG8gbm90IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCByZXN1bHRpbmcgc2V0LAoJICBidXQgb25seSB3aGV0aGVyIGl0IGlzIGVtcHR5IG9mIG5vdCwgd2UgY2FuIHNraXAgYSBmYWlyIGJpdAoJICBvZiBHVmFsdWUganVnZ2xpbmcuCgkgIEFkZCBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBzbywgc2luY2Ugd2UgY2Fubm90IGp1c3QgcGFzcyBOVUxMCgkgIHRvIHRoZSBleGlzdGluZyBBUEkgYXMgaXQgbWF5IGJlIHBhcnQgb2YgdGhlIEFQSSBjb250cmFjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAwOTo0NTo0MSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogcmVqaWcgdGVzdCBvcmRlcmluZyBmb3Igc3BlZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMS0wNyAxMjoyODoyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gbW9yZSBhcGkgY2hhbmdlcyBpbiB0aGUgcG9ydGluZyBndWlkZQoKMjAxMS0xMS0wNyAxMDo0MDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMS0wNyAxMDowMToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMS0wNiAwMDowNzoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJICBSZXZlcnQgImNvbnRyb2xsZXI6IGZpeCBnX3JldHVybiBzdGF0ZW1lbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTkzZDJiMjk3YmQ3YjVjZTlkYmNkZjJmMWFlMmI3NjI0ZDk0ZDZhZS4KCSAgZ3N0X2NvbnRyb2xsZXJfc2V0X2Rpc2FibGVkICgpIHJldHVybnMgYSB2b2lkLgoKMjAxMS0xMS0wNSAxMjoxMDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgcmVmcyB0byByZW1vdmVkIEFQSQoKMjAxMS0xMS0wNCAyMTozNzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29udHJvbGxlcjogdGhlIG9iamVjdCBuZWVkcyBhIHJlZiB0byB0aGUgY29udHJvbGxlciBmb3IgdGhlIGNvbnZlbmllbmNlIGFwaQoJICBBZGQgYSBoYWNrIHRvIGVuc3VyZSB0aGUgb2JqZWN0IHdpbGwgaGF2ZSBhIHJlZiB0byB0aGUgY29udHJvbGxlciBvbmNlIHdlCgkgIGNyZWF0ZSBpdC4gRml4ZXMgdGhlIGF1ZGlvIGV4YW1wbGUgKHRoYXQgdXNlcyB0aGUgY29udHJvbGxlciBhcGkgZGlyZWN0bHkpLgoKMjAxMS0xMS0wNCAyMTozNzoyMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBnX3JldHVybiBzdGF0ZW1lbnQKCjIwMTEtMTEtMDQgMjE6MzU6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBsb2dnaW5nIHR3ZWFrcwoJICBEb24ndCBsb2cgaW4gX25ldyBiZWZvcmUgd2UgaGF2ZSB0aGUgbG9nIGNhdGVnb3J5LiBVc2UgX09CSkVDVCB2YXJpYW50cy4KCjIwMTEtMTEtMDUgMDE6Mjc6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3Q6IGZpeCBzb21lIGNvbXBpbGVyIHdhcm5pbmdzCgkgIGdzdG9iamVjdC5jOiBJbiBmdW5jdGlvbiAnZ3N0X29iamVjdF9oYXNfYWN0aXZlX2F1dG9tYXRpb24nOgoJICBnc3RvYmplY3QuYzoxMDc2OjM6IGVycm9yOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCSAgZ3N0Y29udHJvbGxlci5jOiBJbiBmdW5jdGlvbiAnZ3N0X2NvbnRyb2xsZXJfaXNfYWN0aXZlJzoKCSAgZ3N0Y29udHJvbGxlci5jOjUwOTozOiBlcnJvcjogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgoyMDExLTExLTA0IDIwOjUwOjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IGFkZCBhcGkgdG8gY2hlY2sgZm9yIGFjdGl2ZSBjb250cm9sbGVycyAobmVlZGVkIGZvciBlLmcuIHZvbHVtZSkKCjIwMTEtMTEtMDQgMjA6MzI6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBvYnNvbGV0ZSBjb21tZW50cyBmcm9tIGFwaSB0cmFuc2l0aW9uCgoyMDExLTExLTA0IDE0OjAwOjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSAgY29udHJvbGxlcjogZml4IHRlc3RzIGFmdGVyIG1vdmUgYW5kIEFQSSBjaGFuZ2VzCgoyMDExLTExLTA0IDExOjQyOjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBjb250cm9sbGVyOiBwb3J0IHRvIG5ldyBjb250cm9sbGVyIGFwaQoKMjAxMS0xMS0wNCAxMTozOToyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIGNvbnRyb2xsZXI6IHVwZGF0ZSBkb2NzIGZvciBjb250cm9sbGVyIG1vdmUKCjIwMTEtMTEtMDQgMTE6MzQ6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgdG8gY29yZS9nc3RvYmplY3QKCSAgTW92ZSB0aGUgY29udHJvbGxlciB0byBnc3RvYmplY3QgYXMgYSBzaW1wbGUgZGVsZWdhdGUuIFRoZSBjb250cm9sbGVyIGFuZAoJICBjb250cm9sc291cmNlIGFyZSBub3QgY2xhc3NlcyBpbiBjb3JlLiBUaGUgY29udHJvbHNvdXJjZXMgc3RheSBzZXBhcmF0ZSBhcyBhIGxpYgoJICBmb3Igbm93LiBUaGlzIHdheSB3ZSBjYW4gYXZvaWQgdGhlIHFkYXRhIGxvb2t1cHMuCgkgIEFsc28gcmVtb3ZlIGNvbnRyb2xsZXJfaW5pdCgpLiBUaGVyZSBpcyBubyBtb3JlIG5lZWQgdG8gbGluayB0byBjb250cm9sbGVyIGZvcgoJICBlbGVtZW50cy4KCSAgQWxzbyBzYW5pdGl6ZSB0aGUgQVBJLiBXZSBub3cgaGF2ZSBmdW5jdGlvbnMgdG8gYWRkIHByb3BlcnRpZXMgbGlrZSB3ZSBoYWQKCSAgbWV0aG9kcyB0byByZW1vdmUgdGhhdC4gVGhhdCBhdm9pZHMgdGhlbiByZWYgY291bnQgaGFja3Mgd2UgaGFkIGluIF9uZXcuCgoyMDExLTExLTAzIDE4OjIzOjEzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogc21hbGwgY2xhcmlmaWNhdGlvbgoKMjAxMS0xMS0wMyAxODoyMjoxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IG1pc3NpbmcgcmVuYW1lIGlmYWNlLT5pbnRlcmZhY2UgaW4gdGhlIGRvY3MKCjIwMTEtMTEtMDQgMTk6MTc6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IHRoZSBpdGVyYXRvciBjb3B5CgoyMDExLTExLTA0IDE5OjExOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RiaW4uYwoKMjAxMS0xMS0wMyAxNTozNjo1OSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogT25seSB1c2UgdGhlIGNhY2hlZCB0cmFuc2Zvcm0gb24gc3RyaWN0bHkgZXF1YWwgY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzMzMzCgoyMDExLTExLTAzIDE1OjM1OjMyICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IEFkZCBnc3RfY2Fwc19pc19zdHJpY3RseV9lcXVhbAoKMjAxMS0xMS0wNCAxODo0NzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIHRlc3RzOiBmaXggdGVzdHMKCSAgU2luY2UgYmxvY2tzIGFyZSBub3Qgb24gYm90aCBkaXJlY3Rpb25zLCB3ZSBuZWVkIHRvIGNoZWNrIGluIHRoZSBibG9jayBjYWxsYmFjawoJICBpZiB3ZSBhcmUgbm90IGJsb2NraW5nIG9uIGFuIHVwc3RyZWFtIGV2ZW50IGFuZCBsZXQgaXQgcGFzcy4KCjIwMTEtMTEtMDQgMTg6MTk6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHByb2JlcyB3b3JrIG9uIGFsbCBwYWRzCgkgIGZpeGVzICM2NDQ5MDcKCjIwMTEtMTAtMTUgMjI6NTI6MjUgKzAzMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGludHJvc3BlY3Rpb246IGFkZCBWYWx1ZSBhbm5vdGF0aW9ucyBmb3IgR1NUX1NFQ09ORCwgR1NUX01TRUNPTkQsIEdTVF9VU0VDT05ELCBHU1RfTlNFQ09ORCBjb25zdGFudHMKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdvbid0IHBhcnNlIHRoZW0gcHJvcGVybHkgb3RoZXJ3aXNlLgoJICBTdGlsbCBuZWVkIHRvIGZvcmNlIHRoZSByaWdodCB0eXBlIHRob3VnaCAoZWl0aGVyIEdzdENsb2NrVGltZSBvcgoJICBndWludDY0KSwgYnV0IFR5cGU6IHh5eiBoYXMgbm8gZWZmZWN0IGZvciBtZSBoZXJlLCBzbyBzb21lb25lIHdpdGgKCSAgYSBuZXdlciBnLWkgbmVlZHMgdG8gdGVzdCB0aGlzLgoJICBTb21lIG90aGVyIGRlZmluZXMgYXJlIGFsc28gbWlzc2luZywgZS5nLiBHU1RfQ0xPQ0tfVElNRV9OT05FLgoKMjAxMS0xMS0wNCAwMDowMzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogc3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzIGlmIGdzdCBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjk1MgoKMjAxMS0xMS0wNCAwMDowMjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZml4IHR5cG8gYXJvdW5kIEdMSUJfRVhUUkFfQ0ZMQUdTIGluIEdTVF9BTExfQ1hYRkxBR1MKCjIwMTEtMTEtMDMgMjM6MDg6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgoyMDExLTExLTAzIDIyOjU4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgkgIEJlY2F1c2Ugd2UgY2FuLgoKMjAxMS0xMS0wMyAyMjo1MTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IHVzZSBmbGFncyBlbnVtIGluc3RlYWQgb2YgZ3VpbnQgaW4gc3RydWN0dXJlCgoyMDExLTExLTAzIDA4OjQ3OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogdXNlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIEdRdWV1ZQoKMjAxMS0xMS0wMyAxNzo0OTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgZml4IHJlcXVlc3QgcGFkCgkgIE1ha2UgYWxsIHJlcXVlc3QgcGFkcyB0YWtlIF8ldSBpbiB0aGUgdGVtcGxhdGUuCgkgIEZpeCB1cCB1bml0IHRlc3RzLgoKMjAxMS0xMS0wMyAxNjo0OTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBkZWY6IHVwZGF0ZSBkZWZzCgoyMDExLTExLTAzIDE2OjQ2OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSAgbmV0OiBhZGQgbmV0IGFkZHJlc3MgbWV0YWRhdGEKCjIwMTEtMTEtMDMgMTQ6MjY6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgbmV0dGltZTogY2xlYW4gdXAgaGVhZGVyCgoyMDExLTExLTAzIDE0OjE0OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZG9uJ3QgdXNlIGxvY2svdW5sb2NrX2Z1bGwKCjIwMTEtMTEtMDMgMTE6MzA6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCjIwMTEtMTEtMDIgMTI6Mzc6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMS0xMC0yNSAxNzoyNjo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRG9uJ3QgY2FjaGUgaW50ZXJuYWwgcHJveHkgcGFkIHRhcmdldAoJICBUaGUgaW50ZXJuYWwgcHJveHkgcGFkIHRhcmdldCBpcyBzaW1wbHkgYSBjYWNoZSBvZiB0aGUgaW50ZXJuYWwgcHJveHkgcGFkCgkgIHBlZXIuIFRoaXMgcGF0Y2ggdXNlcyB0aGUgd2VsbCBpbXBsZW1lbnQgR3N0UGFkIHBlZXIgaGFuZGxpbmcgdG8gb2J0YWluIHRoZQoJICB0YXJnZXQuIFRoaXMgZml4ZXMgaXNzdWVzIHdpdGggdGFyZ2V0IG5vdCBiZWluZyBzZXQgaW4gYm90aCBkaXJlY3Rpb24gd2hlbgoJICB0d28gZ2hvc3RwYWRzIGFyZSBsaW5rZWQgdG9nZXRoZXIgKGVtcHR5IGJpbikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg1MTcKCjIwMTEtMTEtMDIgMTI6MDY6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBfZm91bmRfdGFnc18gQVBJCgkgIHJlbW92ZSBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkgYW5kIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCgpLCB0aGV5IGFyZQoJICBub3RoaW5nIG1vcmUgdGhhbiBhIHdyYXBwZXIgYXJvdW5kIGdzdF9wYWRfcHVzaF9ldmVudCgpCgoyMDExLTExLTAyIDEwOjI5OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbW1vbgoJICBjb25maWd1cmUuYWMKCjIwMTEtMTAtMzAgMjE6MzM6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDExLTEwLTI5IDA5OjQzOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBHc3RTZWdtZW50IGFyZ3VtZW50IGNvbnN0CgoyMDExLTEwLTI5IDA5OjQxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIG1ldGF0aW1pbmcgZnJvbSBkb2NzCgoyMDExLTEwLTI5IDA5OjI2OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFzazogYXBpIGNsZWFudXAKCSAgZ3N0X3Rhc2tfY3JlYXRlKCkgLT4gZ3N0X3Rhc2tfbmV3KCkKCjIwMTEtMTAtMjkgMDk6MDI6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogY2xlYW51cCBBUEkKCSAgZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcoKSAtPiBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3KCkgLT4gZ3N0X3N0cnVjdHVyZV9uZXdfaWRfZW1wdHkoKQoJICBnc3Rfc3RydWN0dXJlX2lkX25ldygpIC0+IGdzdF9zdHJ1Y3R1cmVfbmV3X2lkKCkKCjIwMTEtMTAtMjkgMDg6Mzg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiByZW1vdmUgdGltaW5nIG1ldGFkYXRhCgkgIFRoaXMgaXMgbm93IG9uIGJ1ZmZlcnMgYnkgZGVmYXVsdAoKMjAxMS0xMC0yOSAwODoyNDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGNsZWFuIHVwIEFQSQoJICBnc3RfYnVmZmVyX2xpc3RfbGVuKCkgLT4gZ3N0X2J1ZmZlcl9saXN0X2xlbmd0aCgpCgkgIGdzdF9idWZmZXJfbGlzdF9zaXplZF9uZXcoKSAtPiBnc3RfYnVmZmVyX2xpc3RfbmV3X3NpemVkKCkKCjIwMTEtMTEtMDEgMTQ6MTc6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHNpbXBsaWZ5IGdzdF9hZGFwdGVyX3Rha2VfbGlzdCgpCgkgIFVzZSBhIHN0YWNrLWFsbG9jYXRlZCBHUXVldWUgdG8gYXNzZW1ibGUgb3VyIEdMaXN0LgoKMjAxMS0xMS0wMSAxMDo1NjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIEdzdEFjdGl2YXRlTW9kZSByZW5hbWUgaW4gcG9ydGluZyBkb2MKCjIwMTEtMTEtMDEgMDA6MjU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgR3N0QWN0aXZhdGVNb2RlIHRvIEdzdFBhZEFjdGl2YXRlTW9kZQoJICBUaGVzZSBtaWdodCBiZSB1c2VmdWw6CgkgIHNlZCAtaSAtZSAncy9Hc3RBY3RpdmF0ZU1vZGUvR3N0UGFkQWN0aXZhdGVNb2RlL2cnIGBnaXQgZ3JlcCBHc3RBY3RpdmF0ZU1vZGUgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCSAgc2VkIC1pIC1lICdzL0dTVF9BQ1RJVkFURV8vR1NUX1BBRF9BQ1RJVkFURV8vZycgICAgYGdpdCBncmVwIEdTVF9BQ1RJVkFURV8gICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoKMjAxMS0xMS0wMSAwMDoxMzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgR3N0UHJvYmVUeXBlIGFuZCBHc3RQcm9iZVJldHVybiB0byBHc3RQYWRQcm9iZXtUeXBlLFJldHVybn0KCSAgQmV0dGVyIG5vdyB0aGFuIGxhdGVyIGluIHRoZSBjeWNsZS4gVGhlc2UgbWlnaHQgY29tZSBpbiBoYW5keToKCSAgc2VkIC1pIC1lICdzL0dzdFByb2JlUmV0dXJuL0dzdFBhZFByb2JlUmV0dXJuL2cnICAgYGdpdCBncmVwIEdzdFByb2JlUmV0dXJuICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoJICBzZWQgLWkgLWUgJ3MvR1NUX1BST0JFXy9HU1RfUEFEX1BST0JFXy9nJyAgICAgICAgICBgZ2l0IGdyZXAgR1NUX1BST0JFXyAgICAgIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgkgIHNlZCAtaSAtZSAncy9Hc3RQcm9iZVR5cGUvR3N0UGFkUHJvYmVUeXBlL2cnICAgICAgIGBnaXQgZ3JlcCBHc3RQcm9iZVR5cGUgICAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCjIwMTEtMTAtMzEgMjM6MzI6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBnc3RfdGFnX2xpc3RfZ2V0Xypsb25nKigpCgkgIE5vIG9uZSB1c2VzIHRoaXMgb3Igc2hvdWxkIGV2ZXIgbmVlZCB0byB1c2UgaXQsIHNpbmNlCgkgIHRoZSBzaXplIGlzIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBhbnl3YXkuIElmIG5vcm1hbAoJICBpbnRlZ2VycyBkb24ndCBkbywgb25lIHNob3VsZCB1c2UgNjQtYml0IGludGVnZXJzLgoKMjAxMS0xMC0zMSAxOTowNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlIC5kZWYgZmlsZSBmb3IgcmVtb3ZlZC9jaGFuZ2VkIEFQSQoKMjAxMS0xMC0zMSAxOToyMzo0MSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggY3Jhc2gvd2FybmluZyBpbiBmaW5kX3RyYW5zZm9ybSB3aGVuIHBhZCBpcyB1bmxpbmtlZAoJICBMb29rcyBsaWtlIHRoZSByZXZlcnQgY29uZmxpY3QgaW4gY29tbWl0IGE0NDI3MSB3YXMgcmVzb2x2ZWQgaW5jb3JyZWN0bHkuCgoyMDExLTEwLTMxIDE3OjQ1OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IG1ha2UgR0xJQl9FWFRSQV9DRkxBR1Mgb3ZlcndyaXRhYmxlCgkgIE1ha2UgJ21ha2UgR0xJQl9FWFRSQV9DRkxBR1M9Li4uJyB3b3JrLgoKMjAxMS0xMC0zMSAxNDoxNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZpbHRlci5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZmlsdGVyOiByZW1vdmUgZ3N0X2ZpbHRlcl9ydW4oKSBhbmQgZGVwcmVjYXRlZCBmaWx0ZXIgZnVuYwoJICBJZiBzb21lb25lIHdhbnRzIHRvIHJlc3VycmVjdCB0aGlzLCBwbGVhc2UgdXNlIGEgbGVzcwoJICBnZW5lcmljIG5hbWUgc3BhY2UgZm9yIGl0LgoKMjAxMS0xMC0zMSAxNDowMzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jCgoyMDExLTEwLTMwIDEwOjI2OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGFnbGlzdDogcmVuYW1lIF9uZXcoKSB0byBfbmV3X2VtcHR5KCkgYW5kIG5ld19mdWxsKigpIHRvIG5ldyooKQoKMjAxMS0xMC0zMCAyMTo1NDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSAgZmlsdGVyOiBkZXByZWNhdGUgZ3N0X2ZpbHRlcl9ydW4oKQoJICBJdCdzIG5vdCByZWFsbHkgdXNlZCBvdXRzaWRlIG9mIGNvcmUgYXQgYWxsLCBhbmQgaGFzCgkgIHNlcmlvdXMgbmFtZXNwYWNlIGlzc3Vlcy4gSWYgYW55b25lIGZlZWxzIHRoZSBuZWVkIHRvCgkgIHJldml2ZSB0aGlzIG9uZSwgcGxlYXNlIHVzZSBhIGxlc3MgZ2VuZXJpYyBuYW1lIHNwYWNlLgoJICBBUEk6IGRlcHJlY2F0ZSBnc3RfZmlsdGVyX3J1bigpCgkgIEFQSTogZGVwcmVjYXRlIEdzdEZpbHRlckZ1bmMKCjIwMTEtMTAtMzAgMjE6Mzk6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCB1c2Ugc29vbi10by1iZS1kZXByZWNhdGVkIGdzdF9maWx0ZXJfcnVuKCkKCSAgTGluZXMtb2YtY29kZSBzYXZpbmdzIGFyZSBuZWdsaWdpYmxlIGFueXdheS4KCjIwMTEtMTAtMzAgMjE6MjE6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHBsdWdpbmZlYXR1cmU6IGRlcHJlY2F0ZSBnc3RfcGx1Z2luX2ZlYXR1cmVfdHlwZV9uYW1lX2ZpbHRlcigpCgkgIEl0J3Mgb25seSB1c2VkIGludGVybmFsbHkgYW55d2F5IGFuZCB0aGUgaGVscGVyIHN0cnVjdAoJICBoYXMgbmFtZXNwYWNlIGlzc3Vlcy4KCSAgQVBJOiBkZXByZWNhdGVkIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyKCkKCSAgQVBJOiBkZXByZWNhdGVkIEdzdFR5cGVOYW1lRGF0YQoKMjAxMS0xMC0zMCAxMDowNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIG9wYXF1ZQoJICBIaWRlIHRoZSBmYWN0IHRoYXQgaXQncyBqdXN0IGEgR3N0U3RydWN0dXJlIGZyb20gdGhlIEFQSS4gV2UKCSAgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgaW4gZnV0dXJlIChlLmcuIHRvIGFkZCByZWZjb3VudGluZykuCgkgIEFsc28sIGl0IGNhdXNlZCBwcm9ibGVtcyBmb3IgYmluZGluZ3MgKHRob3VnaCB0aGF0J3MgbW9zdGx5CgkgIHRoZSB3YXkgd2UgdHlwZWRlZmVkIGl0IHRvIEdzdFN0cnVjdHVyZSkuCgoyMDExLTEwLTMwIDEwOjAwOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0zMCAwOTo1ODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgdG9fc3RyaW5nIGFuZCBuZXdfZnJvbV9zdHJpbmcgZnVuY3Rpb25zCgkgIFdlIHdhbnQgdG8gbWFrZSBHc3RUYWdMaXN0IG9wYXF1ZSBhbmQgbm90IGhhdmUgcGVvcGxlIHVzZQoJICBHc3RTdHJ1Y3R1cmUgQVBJIG9uIGl0LgoJICBBUEk6IGdzdF90YWdfbGlzdF90b19zdHJpbmcoKQoJICBBUEk6IGdzdF90YWdfbGlzdF9uZXdfZnJvbV9zdHJpbmcoKQoKMjAxMS0xMC0zMCAwOTozMTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMzAgMDE6NDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgcG9pbnRsZXNzIHRhZyBuYW1lIC0+IHF1YXJrIGxvb2t1cHMKCSAgV2UgbmV2ZXIgZ2V0IGEgdGFnIG5hbWUgcXVhcmsgZnJvbSBhIGNhbGxlciwgaXQncyBhbHdheXMgYQoJICBzdHJpbmcsIGZyb20gd2hpY2ggd2UnbGwgdHJ5IHRvIGxvb2sgdXAgb3VyIHRhZyBpbmZvIGluIHRoZQoJICBoYXNoIHRhYmxlLCBzbyBjaGFuZ2UgdGhlIGhhc2ggdGFibGUga2V5IGZyb20gcXVhcmsgdG8gc3RyaW5nLgoJICBBdm9pZHMgYSBidW5jaCBvZiBwb2ludGxlc3Mgc3RyaW5nID0+IHF1YXJrIGxvb2t1cCBpbiB0aGUKCSAgZ2xvYmFsIHF1YXJrIHRhYmxlLiBXZSBuZWVkIHRvIGRvIGFuIGV4dHJhIHN0cmluZyA9PiBxdWFyawoJICBjb252ZXJzaW9uIG5vdyB3aGVuIHdlIGNvcHkgYSB0YWdsaXN0LCBidXQgaW4gdGhhdCBjYXNlIHdlJ3JlCgkgIGluIGEgc2xvdyBwYXRoIGFueXdheS4KCjIwMTEtMTAtMzAgMDA6NDQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGdzdF90YWdfbGlzdF9pc19lcXVhbCgpCgkgIEFQSTogZ3N0X3RhZ19saXN0X2lzX2VxdWFsKCkKCjIwMTEtMTAtMjkgMjM6NTI6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGlkZW50aWNhbCBzdHJ1Y3R1cmVzIGFyZSBkZWZpbml0ZWx5IGVxdWFsCgoyMDExLTEwLTI5IDIwOjA2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGZpeCBzdHJpbmcgZm9yIEdTVF9UQUdfQVJUSVNUX1NPUlROQU1FCgkgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMgaXQgd2FzIG1hcHBlZCB0byBhIG11c2ljYnJhaW56IHByZWZpeCwKCSAgYnV0IGl0J3Mgbm90IHJlYWxseSBtdXNpY2JyYWluei1zcGVjaWZpYyBhdCBhbGwuCgoyMDExLTEwLTI5IDE5OjU5OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IG1vdmUgcHJpdmF0ZSBmdW5jdGlvbnMgZm9yIHJlZ2lzdHJ5IHRvIHByaXZhdGUgaGVhZGVyCgoyMDExLTEwLTI4IDIxOjQwOjQ3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBpbnZhbGlkIGFjY2VzcyB0byB1bnJlZmZlZCBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDExLTEwLTI4IDE2OjQ1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGZpeCBkb2NzIHNvbWUgbW9yZQoKMjAxMS0xMC0yOCAxNjoyNzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMC0yOCAxNjowODozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggc2VnbWVudCBjaGVjawoKMjAxMS0xMC0yOCAxNTo1Mjo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IHJlbW92ZSBHU1RfU0VFS19UWVBFX0NVUgoKMjAxMS0xMC0yOCAxNTo1Mjo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMjggMTM6MDI6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBwYWRkaW5nCgoyMDExLTEwLTI4IDEzOjAyOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkgIGJpdHJlYWRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTM6MDI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IEFkZCBwYWRkaW5nCgoyMDExLTEwLTI4IDEyOjMxOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTI4IDEyOjI4OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdXBkYXRlCgoyMDExLTEwLTI4IDEyOjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIG5ldyBhcGkKCjIwMTEtMTAtMjggMTI6MTc6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY2hlY2s6IGFsc28gZGVidWcgdGhlIERUUwoKMjAxMS0xMC0yOCAxMjoxNjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogdXNlIHB0cy9kdHMgb24gYnVmZmVycwoKMjAxMS0xMC0yOCAxMjoyNDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgY29tcGF0OiBhZGQgdGltZXN0YW1wIGNvbXBhdCBkZWZpbmVzCgoyMDExLTEwLTI4IDEyOjE1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGJ1ZmZlcjogYWRkIHB0cy9kdHMgdG8gYnVmZmVycwoKMjAxMS0xMC0yOCAxMTo1MzozMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxzbyBmdXNoIHRoZSBjYWNoZSB3aGVuIGNoYW5naW5nIHRoZSB1cHN0cmVhbSBjYXBzIHN1Z2dlc3Rpb24KCjIwMTEtMTAtMjggMTE6NTA6MjMgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBkZWJ1ZyBvdXRwdXQgd2hlbiByZXR1cm5pbmcgYSBjYWNoZWQgdHJhbnNmb3JtCgoyMDExLTEwLTI4IDExOjMzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0yOCAxMTozMDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvb2xlY3RwYWRzMjogcG9ydCB0byAwLjExCgoyMDExLTEwLTI4IDExOjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0yOCAxMDo1NDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IEZpeCByZWZjb3VudCBoYW5kbGluZyBpZiBhIGJ1ZmZlciB3YXMgZHJvcHBlZCBkdWUgdG8gY2xpcHBpbmcKCjIwMTEtMTAtMjggMTA6Mzc6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczI6IE1lcmdlIHRoZSBjbGlwIGFuZCBwcmVwYXJlX2J1ZmZlciBmdW5jdGlvbiBpbnRvIG9uZQoKMjAxMS0xMC0yOCAxMDoxNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IE1lcmdlIGNsaXBwaW5nIEFQSSBmcm9tIG9sZCBjb2xsZWN0cGFkcwoKMjAxMS0xMC0yOCAwOToxOToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtYWtlIGRlZmF1bHQgcXVlcnkgZnVuY3Rpb24gbmFtZSBzaG93IHVwIGluIGdzdC1pbnNwZWN0CgoyMDExLTA5LTI3IDE1OjQ4OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYXZvaWQgaGFuZ2luZyBpbiBjYXNlIG9mIHNwYXJzZSBuZXdzZWdtZW50IGV2ZW50cwoJICAuLi4gaW4gdGhlIGV4dGVudCB0aGF0IGEgbm9uLXdhaXRpbmcgcGFkIChzbyBpbmRpY2F0ZWQgYnkgbmV3c2VnbWVudCkKCSAgdHVybnMgb3V0IHRvIHByb3ZpZGUgdGhlIGJlc3QgYnVmZmVyLCB3aGljaCBpcyB0aGVuIGZvcmNlZCB0byB3YWl0aW5nCgkgIGZvciBib29rLWtlZXBpbmcgcHVycG9zZXMsIGJ1dCB0aGF0IHNob3VsZCBvbmx5IGJlIHRlbXBvcmFyeS4KCSAgU2VlIGJ1ZyAjNDE1NzU0LgoKMjAxMS0xMC0yOCAwOTozODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTEwLTI4IDA5OjM1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGNvbGxlY3RwYWRzMjogQWRkIHRvIHRoZSBkb2N1bWVudGF0aW9uCgoyMDExLTEwLTI4IDA5OjI2OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgY29sbGVjdHBhZHMyIEFQSQoKMjAxMS0xMC0yOCAwOToxODo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBiYXNlOiBBZGQgY29sbGVjdHBhZHMyCgkgIFRoaXMgaGFuZGxlcyBtdXhpbmcgb2Ygc3BhcnNlL3N1YnRpdGxlIHN0cmVhbXMgYW5kIGhhcwoJICBsb3RzIG9mIGNsZWFudXAuIFN0aWxsIG1pc3NpbmcgaXMgc3BlY2lhbCBzdXBwb3J0IGZvcgoJICBsaXZlIHN0cmVhbXMgYnV0IHRoaXMgY2FuIGJlIGFkZGVkIGxhdGVyIHdpdGhvdXQgYnJlYWtpbmcKCSAgQVBJL0FCSS4KCSAgQmFzZWQgb24gdGhlIHZlcnNpb24gZnJvbSB0aGUgdmlkZW9taXhlciBwbHVnaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MTU3NTQKCjIwMTEtMTAtMjcgMTc6MDk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTAtMjcgMTc6MDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTEwLTI3IDE3OjA5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogYWRkIGVtcHR5X3NpbXBsZSB2YXJpYW50cwoKMjAxMS0xMC0yNyAxNjo1MToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTAtMjcgMTQ6NTY6MjQgKzAxMDAgIEpvaGFuIEJvdWzDqSA8Ym9oYW4uZ25vbWVAcmV0cm9wYWdhbmRhLmluZm8+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRCBmb3IgZ3N0X2NhcHNfbmV3X3NpbXBsZSgpIGFuZCBnc3RfY2Fwc19uZXdfZnVsbCgpCgkgIElmIHlvdSBnZXQgd2FybmluZ3MsIHVzZSBnc3RfY2Fwc19uZXdfZW1wdHkoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTM0MzM0NgoKMjAxMS0xMC0yNyAxNToyNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMC0yNyAxMzoyNTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogdXNlIEdfR05VQ19OVUxMX1RFUk1JTkFURUQgZm9yIGdzdF9zdHJ1Y3R1cmVfbmV3KCkKCSAgSWYgeW91IGdldCBhIHdhcm5pbmcsIHVzZSBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMzQ2CgoyMDExLTEwLTI3IDIzOjA4OjE0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IHJlZmNvdW50IGxlYWsKCSAgRG9uJ3QgbGVhayBwZWVyY2FwcyBhbmQgYSByZWYgdG8gdGhlIGJhc2V0cmFuc2Zvcm0gd2hlbiByZXR1cm5pbmcKCSAgdGhlIGNhY2hlZCBjYXBzLgoKMjAxMS0xMC0yNyAxMDozODoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggd3Jvbmcgb3JkZXIgb2YgY2FsbHMgaW4gdGhlIGRvY3MuCgoyMDExLTEwLTI2IDEyOjIzOjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBjbGFyaWZ5IGRvY3MgZm9yIHN0ZXAgZXZlbnQKCjIwMTEtMTAtMTggMjM6MTk6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhZGQgc3VwcG9ydCBmb3IgR1NUX1JFR0lTVFJZX1JFVVNFX1BMVUdJTl9TQ0FOTkVSPW5vCgkgIFRoaXMgd2lsbCBtYWtlIHN1cmUgd2Ugc3Bhd24gYSBuZXcgcGx1Z2luIHNjYW5uZXIgaGVscGVyIGZvciBlYWNoIHBsdWdpbgoJICB0byBiZSBpbnRyb3NwZWN0ZWQsIHdoaWNoIGhlbHBzIHdpdGggbWFraW5nIHN1cmUgd2UgZG9uJ3QgbG9hZCB0b28gbWFueQoJICBzaGFyZWQgb2JqZWN0cyAobGlicywgcGx1Z2lucykgYXQgdGhlIHNhbWUgdGltZSBvbiBzeXN0ZW1zIHdoZXJlIHRoZXJlCgkgIGlzIGEgaGFyZCBsaW1pdCBsaWtlIG9uIEFuZHJvaWQuCgkgIEEgYmV0dGVyIHZlcnNpb24gbWlnaHQgcmUtdXNlIHRoZSBzY2FubmVyIGZvciB1cCB0byBOIHRpbWVzLCB0aG91Z2gKCSAgaXQncyBub3QgY2xlYXIgd2hldGhlciB0aGF0IHdvdWxkIGFjdHVhbGx5IGltcHJvdmUgdGhpbmdzIGRyYW1hdGljYWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjA5MQoKMjAxMS0xMC0yMSAxMDoyMzowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTm8gbmVlZCB0byByZXF1aXJlIHdyaXRhYmxlIGNhcHMgZm9yIF9hcHBlbmQvX21lcmdlIHNlY29uZCBjYXBzCgkgIFRoZSBzZWNvbmQgY2FwcyBvd25lcnNoaXAgaXMgdHJhbnNmZXJlZCwgbm8gbmVlZCB0byByZXF1aXJlIGl0IHRvCgkgIGJlIHdyaXRhYmxlIGZyb20gdGhlIGNhbGxlciBmdW5jdGlvbi4gSW5zdGVhZCwgX2FwcGVuZCBhbmQgX21lcmdlCgkgIG1ha2UgaXQgd3JpdGFibGUgb24gdGhlaXIgb3duLgoJICBEaXNjb3ZlcmVkIGJlY2F1c2Ugb2YgYW4gYXNzZXJ0aW9uIG9uIGVuY29kaW5nLXByb2ZpbGUuYyBpbgoJICBfZ2V0X2lucHV0X2NhcHMgdXNpbmcgX21lcmdlIGJ1dCBub3QgcGFzc2luZyB3cml0YWJsZSBjYXBzLgoKMjAxMS0xMC0yMSAxNDoyMDo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGludGVyZmFjZXM6IGNsZWFuIHVwIHRoZSB1c2Ugb2YgaWZhY2UgYW5kIGNsYXNzL2tsYXNzCgoyMDExLTEwLTIxIDExOjE1OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZG9jcy9yYW5kb20vc3RhdHVzLTAuMTEtMTQtanVuLTIwMTEudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogc3BlbGxpbmcgYW5kIGZvcm1hdHRpbmcgZml4ZXMKCjIwMTEtMTAtMjEgMTA6NTI6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2luZyBvcmlnaW4vbWFzdGVyCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJpbi5jCgkgIGdzdC9nc3RidXMuYwoJICBnc3QvZ3N0ZGVidWd1dGlscy5jCgkgIGdzdC9nc3RwYWQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTEwLTIwIDE2OjU5OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogRml4IGRvY3VtZW50YXRpb24sIGl0J3MgcHJlX3B1c2hfZnJhbWUgYW5kIG5vdCBwcmVfcHVzaF9idWZmZXIKCjIwMTEtMTAtMjAgMTQ6MDI6NDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNhY2hlIHRyYW5zZm9ybWVkIGNhcHMgd2hlcmUgYXBwcm9wcmlhdGUKCSAgU3BlZWRzIHVwIG5lZ290aWF0aW9uIGEgZmFpciBiaXQgb24gYSBjb250cml2ZWQgcGlwZWxpbmUKCSAgd2l0aCBhIGRvemVuIGNvbG9yc3BhY2UgY29udmVyc2lvbnMuCgkgIEhvcGVmdWxseSBjbGVhcnMgb3V0IHRoZSBjYWNoZSBldmVyeSB0aW1lIGl0IG91Z2h0IHRvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMjkxCgoyMDExLTEwLTIwIDEwOjQ1OjMwIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bjb2xsYWJvcmEuY29tPgoKCSogQW5kcm9pZC5tazoKCSAgRml4IGJyb2tlbiBhbmRyb2lkIGJ1aWxkaW5nIGR1ZSB0byBuYW1lIGNoYW5nZSBpbiAwMWQ4NzI1MGE4NDVlNTVkNgoKMjAxMS0xMC0yMCAwODozMToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlYmFyc2U6IEFkZCBkZXRlY3QgdmZ1bmMgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBkbyBmb3JtYXQgZGV0ZWN0aW9uIGJlZm9yZSBhbnl0aGluZyBlbHNlCgkgIEFQSTogR3N0QmFzZVBhcnNlQ2xhc3M6OmRldGVjdCgpCgkgIFRoaXMgaXMgY2FsbGVkIHdpdGggdGhlIGZpcnN0IGJ1ZmZlcnMgdW50aWwgdGhlIHN1YmNsYXNzIGhhcyBmaW5pc2hlZCBkZXRlY3Rpb24KCSAgYW5kIG9ubHkgYWZ0ZXJ3YXJkcyB0aGUgb3JpZ2luYWwgYnVmZmVycyBhcmUgaGFuZGxlZCBhcyBiZWZvcmUuIFRoZSB2ZnVuYyBhbGxvd3MKCSAgZGV0ZWN0aW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0IHdpdGhvdXQgYnJlYWtpbmcgdGhlIHVwc3RyZWFtIGZyYW1pbmcuCgoyMDExLTEwLTIwIDA4OjU3OjU3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdCBvbmx5IGRlc2NyaWJlIGNvbmRpdGlvbnMgaW4gdGhlIGRvY3MsIGFsc28gY2hlY2sgdGhlbSBpbiB0aGUgY29kZQoJICBXaGVuIGJsb2NraW5nIHBhZHMsIGNoZWNrIGlmIHRoZSBwYWQgaXMgaW4gdGhlIHJpZ3QgZGlyZWN0aW9uLiBMb2cgc29tZSBpbmZvCgkgIGZvciB0aGUgZGV2ZWxvcGVyIGFuZCByZXR1cm4gRkFMU0UsIGluc3RlYWQgb2YganVzdCBsb2NraW5nIHVwLgoKMjAxMS0xMC0xOSAyMzowNzo0NiArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmV2ZXJ0IGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfbmFtZSB0byBjb25zdCBzdHJpbmcgcmV0dXJuCgkgIFJldHVybmluZyBhIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgbWFrZXMgbm8gc2Vuc2UuIEl0J3MgdW5leHBlY3RlZCBmb3IgYQoJICBnZXR0ZXIsIGFuZCBhbHNvIHRoaXMgYmVoYXZlcyBkaWZmZXJlbnRseSBpbiAwLjEwLCBzbyBpdCB3b3VsZCBtYWtlIGZ1dHVyZQoJICBtZXJnZXMgaGFyZGVyLgoJICBFeGNlcHQgZm9yIHRoZXNlIHR3byBwbGFjZXMgaGVyZSBpbiBjb3JlIHdoaWNoIHdlcmUgdXBkYXRlZCBmb3IgdGhlIG5ldwoJICBzZW1hbnRpYywgdGhlIHJldHVybiB2YWx1ZSBpcyBnZXR0aW5nIGxlYWtlZCBhbGwgb3ZlciB0aGUgcGxhY2UuCgoyMDExLTEwLTE5IDEyOjEyOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBBZGQgKHNraXApIGFubm90YXRpb24gdG8gZ3N0X29iamVjdF9yZWZfc2luawoKMjAxMS0xMC0xOSAxMTo1OToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgZ3N0aXRlcmF0b3I6IEFkZCBza2lwIGFubm90YXRpb24gZm9yIGNyZWF0aW5nIEdzdEl0ZXJhdG9yCgkgIE5vdCByZWFsbHkgdXNlZnVsIGZvciBiaW5kaW5ncwoKMjAxMS0wOC0yOSAxMzo1NjoxOSAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIGdzdF9wb2xsIGFwaXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1NToxMyAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogU2tpcCBHVHlwZSBhbmQgR1ZhbHVlIHRyYW5zZm9ybSBhcGlzCgkgIFRoZXNlIGRvIG5vdCBtYWtlIHNlbnNlIHRvIGV4cG9zZSB0byBsYW5ndWFnZSBiaW5kaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjU0OjIxIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgaW50cm9zcGVjdGlvbjogU2tpcCBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwCgkgIEl0IHVzZXMgR09wdGlvbkdyb3VwIHdoaWNoIGlzIG5vdCB3cmFwcGFibGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MzozOSAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgbWlzc2luZyBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUyOjI2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgaW50cm9zcGVjdGlvbjogUmVuYW1lIGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwgdG8gZ3N0X2J1c19hZGRfd2F0Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MDo0MCAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aW5kZXguaDoKCSAgU3luYyBkb2N1bWVudGF0aW9uIGFyZ3VtZW50cwoJICBUaGUgaW50cm9zcGVjdGlvbiBzY2FubmVyIHdhcm5zIGlmIHRoZSBoZWFkZXIgYW5kIHRoZSBzb3VyY2UKCSAgdXNlcyBtaXNtYXRjaGluZyBwYXJhbWV0ZXIgbmFtZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTA6MDIgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3N0cnVjdHVyZV9nZXRfdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTEwLTE4IDE5OjIxOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBwcm90ZWN0IGFnYWluc3QgbnVsbCBtZXNzYWdlIHNvdXJjZXMKCSAgTWVzc2FnZSBzb3VyY2VzIGNhbiBiZSBudWxsLCBjaGVjayBpZiBpdCBpcyBiZWZvcmUgdHJ5aW5nIHRvCgkgIGFjY2VzcyBpdHMgbmFtZS4KCjIwMTEtMTAtMTggMDg6NDg6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHNpbmNlIGRvYyB0byBuZXcgZ2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0xMC0xOCAxNDowODoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZ2dpbmc6IG1vcmUgbG9nZ2luZyBhbmQgcHJlZmVyIGh1bWFuIHJlYWRhYmxlIGRldGFpbHMgb3ZlciBtZW1vcnkgbG9jYXRpb25zCgoyMDExLTEwLTE4IDE0OjA1OjM3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogaW1wcm92ZSBkaXNwbGF5IG9mIGdob3N0LSBhbmQgcHJveHlwYWRzCgkgIEhhbmRsZSB2aXJ0dWFsIGxpbmtzIGJldHdlZW4gZ2hvc3QgYW5kIHByb3h5cGFkcyB3aGVuIGl0ZXJhdGluZyBwYWRzIGluc3RlYWQgb2YKCSAgd2hlbiBsaW5raW5nLiBCZXNpZGVzIHVzaW5nIGxlc3MgY29kZSB0aGlzIHByb3ZpZGVzIGEgbW9yZSBhY2N1cmF0ZSBwaWN0dXJlLgoKMjAxMS0xMC0xOCAxMzo1NDo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBBZGQgZy1pIGFubm90YXRpb25zIGFuZCByZW1vdmUgIlNpbmNlOiIgbWFya2VycwoKMjAxMS0xMC0xNyAxNDo0MjowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgZ2V0Y2FwcyBmdW5jdGlvbgoJICBBZGRzIGEgZ2V0Y2FwcyBmdW5jdGlvbiB0byB0aGUgc2luayBwYWQgdG8gbWFrZSBwYXJzZXJzIHByb3BhZ2F0ZQoJICBkb3duc3RyZWFtIGNhcHMgcmVzdHJpY3Rpb25zIHRvIHVwc3RyZWFtLgoJICBUaGUgcGlwZWxpbmUgImF1ZGlvdGVzdHNyYyBudW0tYnVmZmVycz0xMDAgISBmYWFjICEgYWFjcGFyc2UgIQoJICAiYXVkaW8vbXBlZywgdmVyc2lvbj0oaW50KTQsIHN0cmVhbS1mb3JtYXQ9KHN0cmluZylhZHRzIiAhIGZpbGVzaW5rIgoJICB3b3VsZG4ndCB3b3JrIGJlY2F1c2UgYWFjcGFyc2Ugd291bGRuJ3QgcHJvcGFnYXRlIHRoZSBhZHRzIHJlc3RyaWN0aW9uCgkgIHVwc3RyZWFtIHRvIGZhYWMuCgkgIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmF1bHQgZ2V0Y2FwcyB0byB0aGUgc2luayBwYWQgdG8gc2ltcGx5IHByb3h5CgkgIGRvd25zdHJlYW0gY2FwcyBhbmQgYWxzbyBhZGRzIGEgJ2dldF9zaW5rX2NhcHMnIGZ1bmN0aW9uIHBvaW50ZXIKCSAgdG8gR3N0QmFzZVBhcnNlQ2xhc3MgZm9yIHN1YmNsYXNzZXMgdGhhdCBuZWVkIG1vcmUgcmVmaW5lZCBnZXRjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYxODc0CgoyMDExLTEwLTE4IDEyOjM5OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFsc28gdXBkYXRlIHRoZSBzdHJlYW0gdGltZQoKMjAxMS0xMC0xOCAxMDo1ODoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBoYW5kbGluZyBvZiBxdWV1ZWQgZnJhbWVzCgkgIGdzdF9iYXNlX3BhcnNlX3B1c2hfZnJhbWUoKSBhbHJlYWR5IGZyZWVzIHRoZSBmcmFtZSwgbm8gbmVlZCB0bwoJICBkbyBpdCBhbm90aGVyIHRpbWUgYWdhaW4uCgoyMDExLTEwLTE3IDIxOjM4OjU2ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IGZpeCBwYWR0ZW1wbGF0ZSBsZWFrIGluIHNlbGVjdG9yIHRlc3QKCSAgSW4gMC4xMSwgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlIHJldHVybnMgYSByZWZlcmVuY2UuCgoyMDExLTEwLTE3IDIxOjM3OjE3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBidWZmZXIvZXZlbnQgbGVhayB3aGVuIHBhZCBpcyBmbHVzaGluZwoJICBBcHBhcmVudGx5IHRoaXMgZ290IGxvc3Qgd2hpbGUgcmVmYWN0b3JpbmcgcHJvYmVzLgoKMjAxMS0xMC0xNyAxNzowMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIHRoZSBtZW1vcnkgZnJvbSB0aGUgdG1wYnVmCgkgIFdlIHVzZSBhIHRtcGJ1ZiB0byBob2xkIGEgdGVtcG9yYXJ5IHBvaW50ZXIgdG8gdGhlIGFkYXB0ZXIgbWVtb3J5LiBXZSBuZWVkIHRvCgkgIHJlbW92ZSB0aGF0IG1lbW9yeSB3aGVuIHdlIG5vIGxvbmdlciBuZWVkIGl0LgoKMjAxMS0xMC0xNyAxMzo1NTozNSArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCByYWNlIGNvbmRpdGlvbiBhbmQgbWVtb3J5IGxlYWsgaW4gZ3N0X3N0YXRpY19jYXBzX2dldAoJICBUaGlzIHdhcyBsZWFraW5nIHRoZSBQdHJBcnJheSBmcm9tIGNhcHMtPnByaXYsIGFzIHNldCB1cCBieSB0aGUgb3RoZXIgY2FsbCB0bwoJICBnc3RfY2Fwc19pbml0LiBBbHNvLCB0aGUgdGhyZWFkIHNhZmV0eSBpc3N1ZSBwcmVzZW50ZWQgaW4gdGhlIGNvbW1lbnQgYWJvdmUgd2FzCgkgIG5vdCB0YWtlbiBjYXJlIG9mIGFueW1vcmUuIFdlIG5vdyB6ZXJvIHRoZSByZWZjb3VudCBhZ2FpbiB3aGVuIHB1Ymxpc2hpbmcgdGhlCgkgIHN0cnVjdHVyZS4KCSAgRml4ZXMgIzY2MTYyOS4KCjIwMTEtMTAtMTcgMDk6Mjg6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IE1ha2UgQVNTRVJUX01JTklfT0JKRUNUX1JFRkNPVU5UIG1vcmUgdXNlZnVsCgkgIGtub3dpbmcgd2hpY2ggbWluaW9iamVjdCBmYWlsZWQgaGVscHMgdXMgbG9jYXRlIGl0IGluIGRlYnVnIGxvZ3MKCjIwMTEtMTAtMTcgMDk6Mjg6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IE1ha2UgX2NoZWNrX2J1ZmZlcl9kYXRhIGEgYml0IG1vcmUgdmVyYm9zZQoKMjAxMS0xMC0xNyAwOToyNzo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgY2hlY2s6IERvbid0IGxlYWsgdGhlIGZlYXR1cmUgbmFtZQoKMjAxMS0xMC0xNyAwOToyNzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZ3N0cmVnaXN0cnk6IERvbid0IGxlYWsgZmVhdHVyZSBuYW1lCgoyMDExLTEwLTE2IDIxOjEyOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBnaXZlIHdhdGNoIHNvdXJjZSBhIG5hbWUKCSAgR2l2ZSBvdXIgR1NvdXJjZSBhIG1lYW5pbmdmdWwgbmFtZS4gU291cmNlIG5hbWVzIGNhbiBiZQoJICB1c2VkIGZvciBkZWJ1Z2dpbmcgYW5kIHByb2ZpbGluZywgZm9yIGV4YW1wbGUgd2l0aAoJICBzeXN0ZW10YXAgb3IgZ2RiLgoKMjAxMS0xMC0xNCAwOTozNTowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIGdzdF9idWZmZXJfam9pbigpCgoyMDExLTEwLTE2IDE3OjQyOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xNiAxNzowMzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTYgMTc6MDA6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0xNiAxNDo0NTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBmaXggbW9yZSBwYXJlbnRfY2xhc3MKCjIwMTEtMTAtMTYgMTQ6MjA6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGV2ZW50LmgKCjIwMTEtMTAtMTYgMTQ6MTc6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGNsZWFuIHVwIHBhcmVudF9jbGFzcwoKMjAxMS0xMC0xNCAxMjo1NzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGVhbiB1cCBwYXJlbnRfY2xhc3MgaGFuZGxpbmcKCjIwMTEtMTAtMTQgMDk6MzU6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdGJ1ZmZlcjogQWRkIHRyYW5zZmVyIGFubm90YXRpb25zIGZvciBnc3RfYnVmZmVyX2pvaW4oKQoKMjAxMS0xMC0xNCAwOToyNzozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRG9uJ3QgbGVhayBwbHVnaW4gZmVhdHVyZSBsaXN0CgoyMDExLTEwLTEzIDE3OjMzOjA2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0eXBvIGluIHRoZSBkb2NzCgoyMDExLTEwLTEzIDE2OjQ4OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogc2hvdyBpZiBhbiBlbGVtZW50IGlzIHN0YXRlLWxvY2tlZAoKMjAxMS0xMC0xMyAxNjo0MjoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgbG9nZ2luZzogdXNlIF9PQkpFQ1QgdmFyaWFudHMgbW9yZQoKMjAxMS0xMC0xMyAxMjoyMzo1OSArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggY2FwcyBsZWFrCgoyMDExLTEwLTEzIDEwOjE5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBVc2UgYW4gaW5saW5lIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBtYWNybyBmb3IgZ3N0X2J1ZmZlcl9yZXBsYWNlKCkKCSAgVGhpcyBnaXZlcyB1cyB0eXBlIGNoZWNrcyBieSB0aGUgY29tcGlsZXIgYW5kIG1vcmUgdXNlZnVsIGNvbXBpbGVyIGVycm9ycy4KCjIwMTEtMTAtMTMgMTA6MTg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBVc2UgYW4gaW5saW5lIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBtYWNybyBmb3IgZ3N0X2V2ZW50X3JlcGxhY2UoKQoJICBUaGlzIGdpdmVzIHVzIHR5cGUgY2hlY2tzIGJ5IHRoZSBjb21waWxlciBhbmQgbW9yZSB1c2VmdWwgY29tcGlsZXIgZXJyb3JzLgoKMjAxMS0xMC0xMyAwODo1MTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dXRpbHMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0xMC0xMiAxODoxNDowMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBEbyBub3QgdW5yZWYgdGhlIGludGVybmFsIHBhZCB0d2ljZQoJICBnX3ZhbHVlX3Vuc2V0IHNob3VsZCBhbHJlYWR5IHVucmVmIHRoZSBpbnRlcm5hbCBwcm94eXBhZCwgbm8KCSAgbmVlZCB0byBkbyBpdCBhZ2FpbgoKMjAxMS0xMC0xMiAxNzoxNzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcm9wZXJseSBhZGp1c3Qgc3RhcnQgdGltZQoJICBXaGVuIHdlIGRvIGEgbm9uLWZsdXNoaW5nIHNlZWsgYW5kIGNsb3NlZCB0aGUgY3VycmVudCBzZWdtZW50LAoJICBtYWtlIHN1cmUgdGhhdCB3ZSBvcGVuIHRoZSBuZXh0IHNlZ21lbnQgZnJvbSB3aGVyZSB3ZSBjbG9zZWQuCgoyMDExLTEwLTEyIDE0OjM3OjMxICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgdHJhbnNmZXIgdHlwZSBmb3IgZ3N0X2V2ZW50X25ld19jYXBzIGFyZ3VtZW50CgkgIFRoZXNlIGFubm90YXRpb25zIGFyZSB1c2VmdWwgdG8gaHVtYW5zIGFzIHdlbGwuLi4KCjIwMTEtMTAtMTIgMTQ6MzQ6MjQgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IGNhcHMgbGVhawoJICBnc3RfZXZlbnRfbmV3X2NhcHMgZG9lcyBub3Qgc3RlYWwgYSByZWZlcmVuY2UgdG8gdGhlIGNhcHMuCgoyMDExLTEwLTEyIDEzOjMxOjQ4ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggZ3N0X2V2ZW50X25ld19zZWdtZW50IHRyYW5zZmVyIHR5cGUKCjIwMTEtMTAtMTEgMTM6NTQ6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IEZpeCBtb3JlIGxlYWtzCgoyMDExLTEwLTExIDEzOjUzOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBEb24ndCBsZWFrIGNhcHMKCjIwMTEtMTAtMTEgMTM6NTE6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBhIGNhcHMgbGVhayBhbmQgbW92ZSBhIGNvZGVibG9jawoJICBUaGUgcmVzdWx0IGZyb20gdGhlIGJsb2NrIG9mIGNvZGUgdGhhdCB3YXMgbW92ZWQgd291bGQgb25seSBoYXZlCgkgIGJlZW4gdXNlZCBpZiAncGVlcmNhcHMnIHdhcyBwcmVzZW50LgoKMjAxMS0xMC0xMSAxMzo1MTozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogTW9yZSAndHJhbnNmZXInIGFubm90YXRpb25zCgoyMDExLTEwLTEwIDE5OjQxOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogY2F0Y2ggaW52YWxpZCBpbnN0YW5jZSBzaXplcyBpbiBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIEFkZCBndWFyZHMgdG8gY2F0Y2ggb3Zlcmx5IGxhcmdlIGluc3RhbmNlIHNpemVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwOTU1CgoyMDExLTEwLTEwIDE5OjMwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwoKQoJICBJdCB3YXMgb25seSByZWFsbHkgdXNlZCBieSBHU1RfQk9JTEVSUExBVEUsIGFuZCB0aGF0IGlzIG5vIG1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA5NTUKCjIwMTEtMTAtMTAgMTE6NDc6NDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCB0cnlpbmcgdG8gYWxsb2MgZW5vcm1vdXMgYnVmZmVyCgkgIElmIGEgY2xhc3MgZXh0ZW5kaW5nIGJhc2VzcmMgZG9lc24ndCBzZXQgYmxvY2tzaXplLCBiYXNlc3JjCgkgIHdvdWxkIHRyeSB0byBhbGxvY2F0ZSBhIChndWludCktMSBzaXplZCBidWZmZXIsIHdoaWNoIGlzIGVub3Jtb3VzCgkgIGFuZCBsaWtlbHkgd291bGQgZmFpbC4KCSAgQXZvaWQgaXQgYW5kIGVycm9yIG91dC4KCjIwMTEtMTAtMTAgMTc6MTc6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxNzowNDozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IElmIHdlIGRvbid0IGNvbnRyb2wgYSBwYWQvdGVtcGxhdGUsIHJldHVybiBwcm9wZXIgY2FwcwoJICBJZiB0aGVyZSdzIGEgZmlsdGVyLCB3ZSBjYW4gcmV0dXJuIHRoYXQgaW4gX2dldF9jYXBzKCkKCjIwMTEtMTAtMTAgMTY6NTI6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFNwZWNpZnkgdHJhbnNmZXIgZnVsbCBmb3IgZ3N0X3BhZF9nZXRfY2FwcygpCgkgIEl0IGluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgcmV0dXJuZWQgY2Fwcy4KCjIwMTEtMTAtMTAgMTE6MDI6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEFkZCBkZWJ1ZyB0byBrbm93IHdoYXQgZXZlbnRzIGFyZSB0cmFuc2ZlcnJlZCBiZXR3ZWVuIHBhZHMKCjIwMTEtMTAtMTAgMTA6Mzg6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFVuc2V0IEVPUyBldmVudCBvbiBGTFVTSF9TVE9QCgoyMDExLTEwLTA3IDExOjQ5OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBEb24ndCBpZ25vcmUgZG93bnN0cmVhbSBGbG93UmV0dXJuIHdpdGggSURMRSBwcm9iZXMKCSAgSWYgcHVzaGdpbiBkb3duc3RyZWFtIHJldHVybmVkIGEgbm9uLW9rIHZhbHVlIChsaWtlIEdTVF9GTE9XX1dST05HX1NUQVRFKSwKCSAgd2UgZG9uJ3Qgd2FudCB0byBlbmQgdXAgcmV0dXJuaW5nIGEgZGlmZmVyZW50IHZhbHVlIChHU1RfRkxPV19PSyBpbiB0aGlzCgkgIGNhc2UpIGlmIElETEUgcHJvYmVzIGFyZSBwcmVzZW50LgoKMjAxMS0xMC0xMCAxMzoyMzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTI6NTQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDEyOjM4OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMjoyNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTE6NDk6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDExOjM2OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IGFkZCBjb21wYXQgZGVmaW5lIGZvciBVTkVYUEVDVEVECgoyMDExLTEwLTEwIDExOjMzOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEdTVF9GTE9XX1VORVhQRUNURUQgLT4gR1NUX0ZMT1dfRU9TCgoyMDExLTEwLTEwIDExOjMwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0wOSAxMTo0OTo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlc3RzOiB0ZWU6IFJlbWVtYmVyIHRvIGluaXRpYWxpemUgdmFyaWFibGVzIHRvIE5VTEwKCSAgYXBwX3RocmVhZCBuZWVkcyB0byBiZSBpbml0aWFsaXplZCB0byBOVUxMLCBvdGhlcndpc2UgdGVzdHMKCSAgd2lsbCB0cnkgdG8gdXNlIGl0IGFuZCBjcmFzaAoKMjAxMS0xMC0wOCAyMDo1Njo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gZm9yIGNoZWNrLWV4cG9ydHMgc2NyaXB0IGNoYW5nZXMKCjIwMTEtMTAtMDggMjA6NDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50ZmFjdG9yeTogZG9uJ3QgZXhwb3J0IHByaXZhdGUgX2dzdF9lbGVtZW50Y2xhc3NfZmFjdG9yeSBxdWFyawoKMjAxMS0xMC0wOCAyMDoxNTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtYWtlIF9nc3RfZGVidWdfaW5pdCgpIHByaXZhdGUgZm9yIG5vdwoJICBUaGlzIHdhcyBhIEZJWE1FIGZvciAwLjExLiBJIGd1ZXNzIGEgY2FzZSBjb3VsZCBiZSBtYWRlIHRvIGtlZXAgaXQgYXJvdW5kCgkgIHNlcGFyYXRlbHkgZm9yIGFwcHMgb3IgbGlicmFyaWVzIHRoYXQgb25seSB3YW50IHRvIHVzZSBHU3RyZWFtZXIncyBkZWJ1Z2dpbmcKCSAgc3lzdGVtLCBidXQgaXQgc2VlbXMgbW9yZSBsaWtlbHkgdGhleSdkIGp1c3QgY29weSB0aGUgdHdvIHNvdXJjZSBmaWxlcyBpbnRvCgkgIHRoZWlyIG93biB0cmVlIGlmIHRoZSBjYXNlLiBBbHNvLCB0aGluZ3MgbGlrZSB0eXBlcyB3b3VsZG4ndCBiZSBpbml0aWFsaXNlZAoJICB3aXRob3V0IGdzdF9pbml0KCkuIFdlIGNhbiBzdGlsbCBtYWtlIGl0IHB1YmxpYyBhZ2FpbiBpZiBhbnlvbmUgbmVlZHMgaXQsCgkgIGJ1dCB0aGVuIHdlIHNob3VsZCBtYWtlIGl0IGEgcHJvcGVyIGZ1bmN0aW9uIGFuZCBub3QgaGlkZSBpdCBiZWhpbmQKCSAgdW5kZXJzY29yZXMuCgoyMDExLTEwLTA4IDE5OjU0OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gc3ltYm9sLWV4cG9ydHMKCjIwMTEtMTAtMDggMTQ6MTc6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBnc3RwYXJzZTogcHJlZml4IGdlbmVyYXRlZCBwYXJzZXIgZnVuY3Rpb25zIHNvIHRoZXkgZG9uJ3QgZ2V0IGV4cG9ydGVkCgkgIERvbid0IGV4cG9ydCB0aG9zZSAzNS1zb21ldGhpbmcgcmFuZG9tIF9nc3RfcGFyc2VfeXkqIHN5bWJvbHMuIFRoZXNlIHdlcmUKCSAgbmV2ZXIgaW4gYW55IGhlYWRlciBmaWxlcyBhbmQgYWxzbyBibGFja2xpc3RlZCBmcm9tIG91ciAuZGVmIGZpbGVzLCBpbgoJICBjYXNlIGFueW9uZSB3b25kZXJzLgoKMjAxMS0xMC0wOCAxMzozNzowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IHJlbmFtZSBfX2dzdF9kZWJ1Z18qIHRvIF9nc3RfZGVidWdfKiBhbmQgZml4IHN5bWJvbCBleHBvcnQgcmVnZXhwCgkgIE9ubHkgZXhwb3J0IEdTdHJlYW1lciBzeW1ib2xzIHdpdGggb25lIGxlYWRpbmcgdW5kZXJzY29yZSwgbm90IHR3bwoJICBvciBtb3JlIGxlYWRpbmcgdW5kZXJzY29yZXMuCgkgIFJlcXVpcmVzIGEgcmVidWlsZCBvZiB0aGUgZW50aXJlIHN0YWNrLCBzb3JyeS4KCjIwMTEtMTAtMDggMTU6MTY6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGRvYwoKMjAxMS0xMC0wOCAxNDoyNTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDggMTQ6MjM6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTA4IDEyOjA4OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wOCAwOTo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHBvcnQgdG8gMC4xMQoKMjAxMS0xMC0wOCAwOToyODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTEtMTAtMDcgMDk6NDU6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVXNlIHBpcGVsaW5lIGNhdGVnb3J5IGZvciBvbmUgbW9yZSBsb2cgbWVzc2FnZQoJICBNYWtlcyBkZWJ1Z2dpbmcgZWFzaWVyLgoKMjAxMS0xMC0wNyAxNjozNjoxMCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBHU1RfUFRSX0ZPUk1BVDogQWRkIEdzdEJ1ZmZlciBwdHIgZm9ybWF0IGFuZCB1c2UgaW4gR1NUX1NDSEVEVUxJTkcKCSAgR3N0QnVmZmVyIHBvaW50ZXJzIGNhbiBub3cgYmUgcHJpbnRlZCB1c2luZyBHU1RfUFRSX0ZPUk1BVC4gVGhpcyBpcyB1c2VkCgkgIGluIHRoZSB2ZXJ5IHVzZWZ1bCBHU1RfU0NIRURVTElORyBkZWJ1ZyBsb2dzIGluIGdzdHBhZC5jIGFuZCBhbGxvd3MgZm9yCgkgIGVhc2llciBhbmQgbW9yZSBpbmZvcm1hdGlvbiB0cmFja2luZyBvZiBidWZmZXIgcHJvZ3Jlc3MgdGhyb3VnaCBhCgkgIHBpcGVsaW5lIHdpdGgganVzdCBkZWJ1ZyBsb2dnaW5nLgoKMjAxMS0xMC0wNyAxMzo1NToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsZXIgd2FybmluZ3MgaW4gc2lua3MgdGVzdAoKMjAxMS0xMC0wNyAxMzo1NDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlOiBtYWtlIEdzdERhdGFRdWV1ZSBwcml2YXRlIEFQSSBmb3IgbXVsdGlxdWV1ZQoJICBUaGVyZSdzIG5vIGNvZGUgdGhhdCB1c2VzIGl0IG90aGVyIHRoYW4gbXVsdGlxdWV1ZSwgc28gbWFrZSBpdCBwcml2YXRlCgkgIHRvIG11bHRpcXVldWUgZm9yIG5vdy4gVGhhdCB3YXkgd2UgY2FuIGFsc28gZG8gb3B0aW1pc2F0aW9ucyB0aGF0CgkgIHJlcXVpcmUgQVBJL0FCSSBicmVha3MuIElmIGFueW9uZSBldmVyIHdhbnRzIHRvIHVzZSBpdCwgd2UgY2FuIHN0aWxsCgkgIG1ha2UgaXQgcHVibGljIGFnYWluLgoKMjAxMS0xMC0wNiAxNzoyNzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDYgMTc6MjY6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDYgMTQ6MzQ6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZW5kIGR1cmF0aW9uIG1lc3NhZ2Ugd2hlbiB1cGRhdGluZyBpbnRlcm5hbCBkdXJhdGlvbgoKMjAxMS0xMC0wNiAxNDowNDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNiAxMDo1OTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA1IDIwOjA2OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA1IDEzOjQzOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIHN0YXR1cwoKMjAxMS0xMC0wNSAxMToyMDozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBnc3RidWZmZXJwb29sOiBVc2UgZ2xpYiBjb21wYXQgbWFjcm9zIGZvciBhdG9taWMgcG9pbnRlcnMKCjIwMTEtMTAtMDQgMTg6NTU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNCAxODo1NTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMDQgMTc6Mzk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+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+CgoyMDEwLTEyLTMxIDAxOjA5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgb3V0cHV0LXNlbGVjdG9yIHRlc3Qgd2hpY2ggbmVlZHMgZWxlbWVudHMgZnJvbSAtYmFzZQoJICBNb3ZlIGl0IHRvIC1iYXNlIGluc3RlYWQuCgoyMDEwLTEyLTMxIDAwOjU5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBjaGVja3M6IGVuYWJsZSBpbnB1dC1zZWxlY3RvciBhbmQgb3V0cHV0LXNlbGVjdG9yIHVuaXQgdGVzdHMgYWZ0ZXIgbW92ZQoKMjAxMC0xMi0zMSAwMDo0ODo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IGFkZCBpbnB1dC1zZWxlY3RvciBhbmQgb3V0cHV0LXNlbGVjdG9yIHRvIGRvY3MKCjIwMTAtMTItMzEgMDA6NDU6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgY29yZWVsZW1lbnRzOiBHU1RfQk9JTEVSUExBVEUgYWxyZWFkeSBzZXRzIHBhcmVudF9jbGFzcwoKMjAxMC0xMi0zMSAwMDo0MzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3Rvciwgb3V0cHV0LXNlbGVjdG9yOiBtaW5vciBjbGVhbi11cHMKCjIwMTAtMTItMzAgMTg6NTc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgY29yZWVsZW1lbnRzOiBtb3ZlIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdG8gY29yZQoJICBNb3ZlZCB0byBjb3JlIGZyb20gZ3N0LXBsdWdpbnMtYmFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0MzA2CgoyMDEwLTExLTI0IDEyOjIyOjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBvdXRwdXQtc2VsZWN0b3ItdGVzdDogZG9uJ3QgaGFyZGNvZGUgdmlkZW9zaW5rcyBhbmQgdXNlIG1vcmUgY29sb3JzcGFjZSBjb252LgoJICBVc2UgYXV0b3ZpZGVvc2luayBpbnN0ZWFkIG9mIGhhcmRjb2RlZCBzaW5rcy4gVXNlIGFuIGFkZGl0aW9uYWwgY29sb3JzcGFjZQoJICBjb252ZXJ0ZXIgYmV0d2VlbiB2aWRlb3Rlc3RzcmMgYW5kIHRpbWVvdmVybGF5LgoKMjAxMC0wOS0xNyAwOTo1MjoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBBdm9pZCBsb3NpbmcgdGhlIGxhc3RfYnVmZmVyIHdoZW4gc3dpdGNoaW5nCgkgIFRoaXMgcGF0Y2ggbWFrZXMgb3V0cHV0c2VsZWN0b3IgdGFrZSBhbiBleHRyYSByZWYgd2hlbiBwdXNoaW5nCgkgIHRoZSBsYXN0X2J1ZmZlciB0byBhdm9pZCBpdCBsb3NpbmcgaXQgZHVyaW5nIHRoZSBzd2l0Y2ggZnVuY3Rpb24uCgkgIFRoaXMgbWFrZXMgcmVzZW5kLWxhdGVzdCBwcm9wZXJseSB3b3JrIGlmIHRoZSBhY3RpdmUtcGFkIGlzIGNoYW5nZWQKCSAgZHVyaW5nIHRoZSBzd2l0Y2ggZnVuY3Rpb24gYnVmZmVyIHB1c2hpbmcgKG9uIGEgcGFkIHByb2JlLCBmb3IgZXhhbXBsZSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5MTcKCjIwMTAtMDktMTcgMDk6NDQ6MDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogUmVjaGVjayBwZW5kaW5nIHN3aXRjaCBhZnRlciBwdXNoaW5nIGJ1ZmZlcgoJICBUaGlzIHBhdGNoIG1ha2VzIG91dHB1dC1zZWxlY3RvciBhbHdheXMgcmVjaGVjayBpZiB0aGVyZSdzIGEKCSAgcGVuZGluZyBwYWQgc3dpdGNoIGFmdGVyIHB1c2hpbmcgYSBidWZmZXIsIHByZXZlbnRpbmcgdGhhdAoJICBpdCBwdXNoZXMgYSBidWZmZXIgb24gdGhlICd3cm9uZycgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5OTE3CgoyMDEwLTExLTAxIDIzOjA0OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogbG9nIHRpbWVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm0KCjIwMTAtMTEtMDEgMjI6NDA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBtb3ZlIHJlb2NjdXJpbmcgbG9ncyB0byBMT0cgYW5kIHJlbW92ZSBhIGRvdWJsZSBpbmZvCgkgIExlc3MgZGVidWcgc3BldyBpbiBERUJVRyBjYXRlZ29yeS4gTm8gbmVlZCB0byBsb2cgcGFkIGFnYWluIGlmIHdlIHVzZQoJICBHU1RfTE9HX09CSkVDVChwYWQsLi4uKS4KCjIwMTAtMTAtMTkgMTM6NDM6MTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIHZhcmlvdXMgKGdzdCk6IGFkZCBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZmxhZ3MKCSAgQ2Fub25pY2FsaXplIHByb3BlcnR5IG5hbWVzIGFzIG5lZWRlZC4KCjIwMTAtMDktMDYgMTE6MDM6MDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBzeW5jIHdpdGggY29weSBpbiAtYmFzZQoJICBVc2UgX2dldF9jYXBzX3JlZmZlZCB0byBhdm9pZCBjb3BpZXMuCgoyMDEwLTA4LTI0IDExOjUwOjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBtb3ZlIHRoZSBkZWJ1ZyBpbml0IHRvIHRoZSBib2lsZXJwbGF0ZSBtYWNybwoKMjAxMC0wOC0yNCAxMTo1MDowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHVzZSBHU1RfQk9JTEVSUExBVEUgbWFjcm8KCjIwMTAtMDMtMjIgMTM6MTY6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIEFkZCAtV3dyaXRlLXN0cmluZ3MKCSAgYW5kIGZpeCBpdHMgd2FybmluZ3MKCjIwMTAtMDMtMjEgMjE6Mzk6MTggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIEFkZCAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1wcm90b3R5cGVzIHRvIGNvbmZpZ3VyZSBmbGFncwoJICBBbmQgZml4IGFsbCB3YXJuaW5ncwoKMjAxMC0wMy0xOCAxNzozMDoyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgPT4gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlCgoyMDEwLTAxLTI1IDEyOjIxOjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBSZXZlcnQgImlucHV0c2VsZWN0b3I6IFByb3RlY3QgZ19vYmplY3Rfbm90aWZ5KCkgd2l0aCB0aGUgb2JqZWN0J3MgbXV0ZXgiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2UwNjc2MTVmZmI1NjE0ZjA2OGY3NzUzYzEwZGRlOTlhZmU0OWMzYywgaXQncyBjYXVzaW5nCgkgIGRlYWRsb2NrcyB3aXRoIHBsYXliaW4yLgoKMjAxMC0wMS0yNCAyMDo1MzowMCArMDEwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBQcm90ZWN0IGdfb2JqZWN0X25vdGlmeSgpIHdpdGggdGhlIG9iamVjdCdzIG11dGV4CgkgIFRoaXMgd29ya3MgYXJvdW5kIHRoZSB0aHJlYWQgdW5zYWZldHkgb2YgZ19vYmplY3Rfbm90aWZ5KCkKCSAgRml4ZXMgYnVnICM2MDc1MTMuCgoyMDA5LTExLTA5IDExOjQ5OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBSZW1vdmUgdXNlbGVzcyB2YXJpYWJsZXMgYW5kIGZpeCBhIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgZGZkNTFhYTgyYTllMWM5OTI0Mzc1MTgzNzk2ZWFiNzBlNTc0YTIzMS4KCjIwMDktMTEtMDkgMTE6NDg6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1ha2Ugc3VyZSB0aGF0IHJ1bm5pbmdfdGltZS0+dGltZXN0YW1wIGNhbGN1bGF0aW9uIG5ldmVyIGJlY29tZXMgbmVnYXRpdmUKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgZjM2NTM4NTQ1ODU4NjRhMDlkMzVlMDM3ODUzNDA3MzMyZWE2OTAxZi4KCjIwMDktMTEtMDkgMTE6NDg6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgc3RhcnQgdGltZSAoaS5lLiB0aW1lc3RhbXApIGFzIHRoZSBsYXN0IHN0b3AKCSAgVXNpbmcgdGhlIGVuZCB0aW1lIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcmVwbGFjZSBidWZmZXJzLCB3aGljaCBpcwoJICBhIGJpZyBwcm9ibGVtIGZvciBzdWJ0aXRsZXMgdGhhdCBjb3VsZCBoYXZlIHZlcnkgbG9uZyBkdXJhdGlvbnMuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDI3MDM0YmU0NjExMjMxY2M1NWZhM2QzZTI1M2JhYTQwYzZiZmY0MWQuCgoyMDA5LTExLTA5IDExOjQ3OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBJbXByb3ZlIGRlYnVnZ2luZwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLgoKMjAwOS0xMS0wNSAxMzo1Mzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBSZXZlcnQgImlucHV0c2VsZWN0b3I6IHVzZSBnZXRfY2Fwc19yZWZmZWQoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0OWVjNGY3OTZhMGUzZjg4YTg1MTcwODc4MmM4NTNiYWY0YjA1NzI0LgoJICBXZSBjYW4ndCB1c2UgdGhpcyBuZXcgZnVuY3Rpb24geWV0LgoKMjAwOS0xMS0wNSAxMzoyOTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiB1c2UgZ2V0X2NhcHNfcmVmZmVkKCkKCjIwMDktMTEtMDQgMDA6MjE6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhbHNvIGFkZCBpbmxpbmUgdG8gdGhlIHByb3RvIHRvIGZpeCB0aGUgYnVpbGQKCjIwMDktMTEtMDMgMTg6MTQ6MTIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZ3N0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cyBhbmQgcmVzdWx0aW5nIHVudXNlZCB2YXJpYWJsZXMKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgOGNkMWI1MjA5YjY4OTQ0ZTFiZTU2Y2E4YmI2OWU0NmQ0YWJiN2EzNC4KCjIwMDktMTEtMDMgMTg6MTI6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgc2FtZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGFzIGluIGdzdC1wbHVnaW5zLWJhc2UKCjIwMDktMTEtMDMgMTg6MTE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgR1NUX0RFQlVHX0ZVTkNQVFIgd2hlcmUgdGhleSdyZSBwb2ludGxlc3MKCSAgVGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiB1c2luZyBHU1RfREVCVUdfRlVOQ1BUUiB3aXRoIEdPYmplY3QKCSAgdmlydHVhbCBmdW5jdGlvbnMgc3VjaCBhcyBnZXRfcHJvcGVydHksIHNldF9wcm9wZXJ5LCBmaW5hbGl6ZSBhbmQKCSAgZGlzcG9zZSwgc2luY2UgdGhleSdsbCBuZXZlciBiZSB1c2VkIGJ5IGFueW9uZSBhbnl3YXkuIFNhdmVzIGEKCSAgZmV3IGJ5dGVzIGFuZCBwb3NzaWJseSBhIHNpeHRlZW50aCBvZiBhIHBvbGFyIGJlYXIuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDZmNGMxYWM1ODM0MWVlMTg5MjI1ZDMxM2RkZmU5YWUyNGE2NWM4OGMuCgoyMDA5LTExLTAzIDE4OjA5OjU1ICswMTAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIFJvbmFsZCBCdWx0amUgZnJvbSBBdXRob3JzIGZpZWxkCgkgIFJlcGxhY2VkIHdpdGggIkdTdHJlYW1lciBtYWludGFpbmVycwoJICA8Z3N0cmVhbWVyLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4iIG9yIGp1c3QgcmVtb3ZlZCwKCSAgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2Ygb3RoZXIgYXV0aG9ycy4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgMGU5YmM1MTI1YWNhNTQ2ZDc3M2VkMTAwMmRmNTczZGQ4ZTJkYzEzNi4KCjIwMDktMTEtMDMgMTg6MDg6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3Rvcjogc2V0IG91dHB1dCBjYXBzIGJlZm9yZSBwdXNoaW5nCgkgIFNldCB0aGUgb3V0cHV0IGNhcHMgb24gdGhlIHNyY3BhZCBiZWZvcmUgcHVzaGluZyB0aGUgYnVmZmVyIGJlY2F1c2UgZWxzZSBjb3JlCgkgIHdpbGwgZG8gYSByYXRoZXIgZXhwZW5zaXZlIGNoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gYWN0dWFsbHkgYWNjZXB0IHRob3NlIGNhcHMgb24KCSAgdGhlIHNyY3BhZC4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgYmRmYjRiNDZkNzQ2ZWYyOThmY2Y0NDI2MDg3OWMzNDJhZjRjYWZhMy4KCjIwMDktMTEtMDMgMTg6MDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogaW5zdGFsbCBhbiBhY2NlcHRjYXBzIGZ1bmN0aW9uCgkgIEluc3RhbGwgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBkZWZhdWx0IGV4cGVuc2l2ZQoJICBjaGVjay4gV2UgYWNjZXB0IHdoYXRldmVyIGRvd25zdHJlYW0gYWNjZXB0cyBzbyB3ZSBwYXNzIGFsb25nIHRoZSBhY2NlcHRjYXBzCgkgIGNhbGwgdG8gdGhlIGRvd25zdHJlYW0gcGVlci4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgNWI3MmYyYWRmOTk2NzM5MDM2ZThkOWI1ZjkxMDA1NDU1ZDFmZmFjZS4KCjIwMDktMTAtMjcgMTE6NTE6MDUgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgUmVtb3ZlIGV4ZWN1dGFibGUgYml0cyBmcm9tIG5vbi1leGVjdXRhYmxlIGZpbGVzLgoKMjAwOS0wOS0yNSAxMTowNzowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIG5ldyBzaW5nbGUgaXRlcmF0b3IgZm9yIHRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzCgkgIFRoaXMgZml4ZXMgYSBkZWFkbG9jayBhbmQgcmVtb3ZlcyBzb21lIHVzZWxlc3MgY29kZS4KCjIwMDktMDgtMzEgMTk6MzE6NTcgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IG1ha2UgR1NUX0ZPUk1BVF9USU1FIHRoZSBkZWZhdWx0IHNlZ21lbnQgZm9ybWF0CgoyMDA5LTA4LTE5IDE3OjA1OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0IGludGVybmFsIGxpbmtzCgoyMDA5LTA3LTMxIDExOjI3OjAzICswMzAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkuMS5teW9oYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBjaGVjayBmb3IgcGVuZGluZyBzcmNwYWQgaW4gX2dldF9wcm9wZXJ0eSgpCgkgIElmIHRoZXJlIGlzIGEgcGVuZGluZyBzcmNwYWQsIHJldHVybiBpdCBpbnN0ZWFkIG9mIGFjdGl2ZSBzcmNwYWQKCSAgaW4gZ3N0X291dHB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkoKSBmdW5jdGlvbi4KCjIwMDktMDYtMTIgMTA6MTQ6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGRvIHRoZSBwYWRfYWxsb2MgZm9yIHRoZSBwYWQgdGhhdCBpcyBwZW5kaW5nIGFuZCBoYXZlIGEgZmFsbGJhY2sKCSAgV2Ugc2hvdWxkIGRvIHRoZSBwYWRfYWxsb2MgZm9yIHRoZSBwZW5kaW5nIHBhZCBpZiBhbnksIGFzIHdlIHdpbGwgc3dpdGNoIHRvIHRoYXQKCSAgcGFkIG9uIG5leHQgX2NoYWluKCkgY2FsbC4gQWxzbyBkbyBhIGZhbGxiYWNrIGFsbG9jLCBpZiB0aGVyZSBpcyBubyBvdXRwdXQgeWV0IHRvCgkgIG5vdCBmYWlsIHN0YXRlIHRyYW5zaXRpb25zIGluIGR5bmFtaWMgcGlwZWxpbmVzLgoKMjAwOS0wNi0wMSAxNjozMTo0MiArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IHNlcmlhbGl6ZSBzZXR0aW5nIGFuZCBhY3R1YWwgY2hhbmdpbmcgb2YgbmV3IGFjdGl2ZSBwYWQKCjIwMDktMDUtMDQgMTI6Mjk6NTQgKzAzMDAgIExhc3NlIExhdWtrYW5lbiA8ZXh0LWxhc3NlLjIubGF1a2thbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiB1bnJlZiBsYXRlc3QgYnVmZmVyIGFsc28gd2hlbiByZXNlbmRpbmcgaGFzIGJlZW4gZGlzYWJsZWQKCjIwMDktMDQtMTYgMTc6MzI6MDMgKzAzMDAgIExhc3NlIExhdWtrYW5lbiA8ZXh0LWxhc3NlLjIubGF1a2thbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBrZWVwIHJlZiB0byBidWZmZXIgZm9yIHJlc2VuZGluZyBvbmx5IGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkCgoyMDA5LTA2LTA0IDE5OjA4OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGRvbid0IGxlYWsgcGFkcyBpbiBpdGVyYXRvcgoKMjAwOS0wNi0wNCAwODo1NjoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTm90aWZ5IHdoZW4gdGhlIHRhZ3MgcHJvcGVydHkgb2YgdGhlIHNlbGVjdG9yIHNpbmtwYWRzIGNoYW5nZXMKCSAgRmlyc3QgcGFydCBvZiBidWcgIzU4NDY4Ni4KCjIwMDktMDUtMjggMTA6Mzg6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgc2VsZWN0b3I6IHJlbW92ZSBub3QgbmVlZGVkIGluc3RhbmNlIHZhciAocHJldmlvdXMgY29tbWl0KS4KCjIwMDktMDUtMjggMTA6MTI6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICBvdXRwdXRzZWxlY3RvcjogaW1wbGVtZW50IHBhZF9hbGxvYyBvbiBhY3RpdmUgcGFkLgoKMjAwOS0wNC0yMyAxMTowNDo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBGb3J3YXJkIHNlZ21lbnQgZXZlbnRzIGZvciB0aGUgYWN0aXZlIHBhZCBpbW1lZGlhdGVseS4KCSAgV2hlbiBhIHNlZ21lbnQgZXZlbnQgaXMgcmVjZWl2ZWQgb24gdGhlIGFjdGl2ZSBwYWQsIGZvcndhcmQgaXQgZG93bnN0cmVhbQoJICBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIGRlZmVycmluZyBpdCB1bnRpbCB0aGUgbmV4dCBkYXRhIGJ1ZmZlciBhcnJpdmVzLiBUaGlzCgkgIGZpeGVzIHByb2JsZW1zIHdpdGggc2VnbWVudCB1cGRhdGVzIG5ldmVyIGJlaW5nIHNlbnQgZG93bnN0cmVhbSwgbGlrZSB0aG9zZQoJICBuZWVkZWQgZm9yIHNwYXJzZSBzdHJlYW1zLCBvciBmb3IgY2xvc2luZyBwcmV2aW91c2x5IG9wZW5lZCBzZWdtZW50cy4KCSAgVGhpcyBmaXhlcyBwbGF5YmFjayBvZiBEVkQgbWVudXMgd2l0aCBhIHN0aWxsIHZpZGVvIGZyYW1lIGFuZCBhbiBhdWRpbyB0cmFjaywKCSAgZm9yIGV4YW1wbGUuCgkgIEZpeGVzOiAjNTc3ODQzCgoyMDA5LTAzLTI3IDExOjIwOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogcmVzZXQgc3RhdGUgd2hlbiBnb2luZyB0byBSRUFEWQoJICBSZXNldCB0aGUgbGFzdC1idWZmZXIsIHRoZSBwZW5kaW5nIHBhZCBhbmQgdGhlIHNlZ21lbnQgd2hlbiBnb2luZyB0byB0aGUgUkVBRFkKCSAgc3RhdGUuCgkgIEZpeGVzICM1NzY3MTIuCgoyMDA5LTAzLTI0IDE1OjIzOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBtZXJnZSB0aGUgdGFncwoJICBNZXJnZSB0aGUgdGFncyByZWNlaXZlZCBvbiB0aGUgaW5wdXQtc2VsZWN0b3Igc2lua3BhZHMgaW5zdGVhZCBvZiBvbmx5IGtlZXBpbmcKCSAgdGhlIGxhc3Qgb25lIHdlIHNhdy4KCjIwMDktMDItMjUgMTE6NDU6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBkb2NzOiB2YXJpb3VzIGRvYyBmaXhlcwoJICBObyBzaG9ydC1kZXNjIGFzIHdlIGhhdmUgdGhlbSBpbiB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICBBbHNvIGtlZXAgdGhpbmdzIChNYWtlZmlsZS5hbSBhbmQgc2VjdGlvbnMudHh0KSBzb3J0ZWQuCgkgIFJld29yZCBhbWJpZ291cyByZXR1cm5zLiBObyB0ZXh0IGFmdGVyIHNpbmNlIHBsZWFzZS4KCjIwMDktMDItMTEgMTc6MjE6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBjb21waWxhdGlvbiwgYWN0aXZhdGVfc2lua3BhZCgpIGhhcyBubyBub3RpZnkgcGFyYW1ldGVyCgoyMDA5LTAyLTEwIDE2OjIyOjU0IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogQWN0aXZhdGUgYW5kIG5vdGlmeSBwYWQgYmVmb3JlIHByb2Nlc3NpbmcgZXZlbnRzLgoJICBFdmVudHMgc2hvdWxkIHRyaWdnZXIgcGFkIHNlbGVjdGlvbiBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgYW4KCSAgZXhwbGljaXRseSBzZWxlY3RlZCBwYWQsIHNvIHRoYXQgZXZlbnRzIHByaW9yIHRvIGZpcnN0IGJ1ZmZlciBkb24ndCBnZXQKCSAgbG9zdC4KCjIwMDktMDEtMzAgMTg6Mjc6MDMgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFVucmVmIGV2ZW50IGlmIHdlIGRvbid0IGZvcndhcmQgaXQsIHVucmVmIHBhZHMgd2hlbiBkb25lIHdpdGggdGhlbS4KCjIwMDgtMTItMDQgMTc6NTE6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBFbnN1cmUgd2UgZW1pdCBub3RpZnk6OmFjdGl2ZS1wYWQgd2hlbiBhdXRvLXNlbGVjdGluZyBhIHBhZCBkdWUgdG8gaXQgaGF2aW5nIGFjdGl2aXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIEVuc3VyZSB3ZSBlbWl0IG5vdGlmeTo6YWN0aXZlLXBhZCB3aGVuIGF1dG8tc2VsZWN0aW5nIGEgcGFkCgkgIGR1ZSB0byBpdCBoYXZpbmcgYWN0aXZpdHkgYW5kIHVzIG5vdCBoYXZpbmcgYW4gZXhpc3RpbmcgYWN0aXZlCgkgIHBhZC4gRml4ZXMgIzU2MzE0NwoKMjAwOC0xMC0xNSAxNzo0NTozNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBHcmFjZWZ1bGx5IGhhbmRsZSB0aGUgY2FzZXMgd2hlbiB3ZSBkb250JyBoYXZlIG90aGVycGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9pbnB1dF9zZWxlY3Rvcl9ldmVudCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcXVlcnkpOgoJICBHcmFjZWZ1bGx5IGhhbmRsZSB0aGUgY2FzZXMgd2hlbiB3ZSBkb250JyBoYXZlIG90aGVycGFkLgoJICBGaXhlcyAjNTU2NDMwCgoyMDA4LTEwLTA3IDEzOjE0OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6IENob29zZSByaWdodCBwYWQgZm9yIHNlbmRpbmcgZXZlbnRzLiBGaXhlcyAjNTU1MjQ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgQ2hvb3NlIHJpZ2h0IHBhZCBmb3Igc2VuZGluZyBldmVudHMuIEZpeGVzICM1NTUyNDQKCjIwMDgtMDktMDggMjA6Mjc6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogUmVzZXQgdGhlIHNlbGVjdG9yIHN0YXRlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9yZXNldCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVzZXQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2NoYW5nZV9zdGF0ZSk6CgkgIFJlc2V0IHRoZSBzZWxlY3RvciBzdGF0ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoKMjAwOC0wOS0wMSAxMzoyMzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBSZXVzZSB0aGUgZ2V0X2xpbmtlZF9wYWRzIGZvciBib3RoIHNvdXJjZSBhbmQgc2lua3BhZHMgYmVjYXVzZSB0aGV5IGFyZSB0aGUgc2FtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZXZlbnQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3F1ZXJ5KToKCSAgUmV1c2UgdGhlIGdldF9saW5rZWRfcGFkcyBmb3IgYm90aCBzb3VyY2UgYW5kIHNpbmtwYWRzIGJlY2F1c2UgdGhleSBhcmUKCSAgdGhlIHNhbWUuCgkgIEltcGxlbWVudCBhIGN1c3R1bSBldmVudCBoYW5kbGVyIGFuZCBnZXQgdGhlIGludGVybmFsbHkgbGlua2VkIHBhZAoJICBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQgKHNsb3dlcikgaW1wbGVtZW50YXRpb24uCgoyMDA4LTA4LTI3IDE1OjQ1OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEltcGxlbWVudCB0aGUgTEFURU5DWSBxdWVyeSBpbiBhIGJldHRlciB3YXkgYnkgdGFraW5nIHRoZSBsYXRlbmN5IG9mIGFsbCBzaW5rcGFkcyBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9xdWVyeSk6CgkgIEltcGxlbWVudCB0aGUgTEFURU5DWSBxdWVyeSBpbiBhIGJldHRlciB3YXkgYnkgdGFraW5nIHRoZSBsYXRlbmN5IG9mIGFsbAoJICBzaW5rcGFkcyBhbmQgdGFraW5nIHRoZSBtaW4vbWF4IGluc3RlYWQgb2YganVzdCB0YWtpbmcgYSByYW5kb20gcGFkLgoKMjAwOC0wOC0wNSAwOTowNTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBNb3ZlIHRoZSBzZWxlY3QtYWxsIGxvZ2ljIGludG8gdGhlIGFjdGl2YXRpb24gb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwYWQuIFdlIHdhbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldGNhcHMpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2FjdGl2YXRlX3NpbmtwYWQpOgoJICBNb3ZlIHRoZSBzZWxlY3QtYWxsIGxvZ2ljIGludG8gdGhlIGFjdGl2YXRpb24gb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZAoJICBwYWQuIFdlIHdhbnQgdG8gcmVtZW1iZXIgdGhlIGxhc3QgcGFkIHdpdGggYWN0aXZpdHkgaW4gc2VsZWN0LWFsbCBtb2RlLgoJICBGaXggdGhlIGdldGNhcHMgZnVuY3Rpb24sIHdlIGNhbiBwcm9kdWNlIHRoZSB1bmlvbiBvZiB0aGUgdXBzdHJlYW0gY2FwcwoJICBpbiBzZWxlY3QtYWxsIG1vZGUsIG5vdCB0aGUgaW50ZXJzZWN0aW9uIGxpa2UgcHJveHlfZ2V0Y2FwcygpIGRvZXMuCgoyMDA4LTA2LTE5IDEzOjE4OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBvdXRwdXQtc2VsZWN0b3I6IFVzZSBCT0lMRVJQTEFURSBtYWNybyBhbmQgdXBkYXRlIHRlc3QgdG8gdGhlIGxhdGVzdCBhcGkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIFVzZSBCT0lMRVJQTEFURSBtYWNybyBhbmQgdXBkYXRlIHRlc3QgdG8gdGhlIGxhdGVzdCBhcGkgY2hhbmdlcy4KCjIwMDgtMDYtMTIgMTQ6NDk6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERvIG5vdCB1c2Ugc2hvcnRfZGVzY3JpcHRpb24gaW4gc2VjdGlvbiBkb2NzIGZvciBlbGVtZW50cy4gV2UgZXh0cmFjdCB0aGVtIGZyb20gZWxlbWVudCBkZXRhaWxzIGFuZCB0aGVyZSB3aWxsIGJlIHdhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZGMxMzk0L2dzdGRjMTM5NC5jOgoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSAgKiBleHQvbWV0YWRhdGEvZ3N0bWV0YWRhdGFkZW11eC5jOgoJICAqIGV4dC9teXRodHYvZ3N0bXl0aHR2c3JjLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzoKCSAgKiBnc3QtbGlicy9nc3QvYXBwL2dzdGFwcHNpbmsuYzoKCSAgKiBnc3QvYmF5ZXIvZ3N0YmF5ZXIycmdiLmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgICogZ3N0L3Jhd3BhcnNlL2dzdGF1ZGlvcGFyc2UuYzoKCSAgKiBnc3QvcmF3cGFyc2UvZ3N0dmlkZW9wYXJzZS5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2FuYWx5c2UuYzoKCSAgKiBnc3QvdmlkZW9zaWduYWwvZ3N0dmlkZW9kZXRlY3QuYzoKCSAgKiBnc3QvdmlkZW9zaWduYWwvZ3N0dmlkZW9tYXJrLmM6CgkgICogc3lzL29zczQvb3NzNC1taXhlci5jOgoJICAqIHN5cy9vc3M0L29zczQtc2luay5jOgoJICAqIHN5cy9vc3M0L29zczQtc291cmNlLmM6CgkgIERvIG5vdCB1c2Ugc2hvcnRfZGVzY3JpcHRpb24gaW4gc2VjdGlvbiBkb2NzIGZvciBlbGVtZW50cy4gV2UgZXh0cmFjdAoJICB0aGVtIGZyb20gZWxlbWVudCBkZXRhaWxzIGFuZCB0aGVyZSB3aWxsIGJlIHdhcm5pbmdzIGlmIHRoZXkgZGlmZmVyLgoJICBBbHNvIGZpeGluZyB1cCB0aGUgQ2hhbmdlTG9nIG9yZGVyLgoKMjAwOC0wMy0yMCAxODoxMDoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBEbyBnX29iamVjdF9ub3RpZnkoKSBvbmx5IHdoZW4gbm90IGhvbGRpbmcgdGhlIGxvY2sgdG8gZ2V0IHRoZSBwcm9wZXJ0eSBiZWNhdXNlIG90aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3N3aXRjaCk6CgkgIERvIGdfb2JqZWN0X25vdGlmeSgpIG9ubHkgd2hlbiBub3QgaG9sZGluZyB0aGUgbG9jayB0byBnZXQgdGhlIHByb3BlcnR5CgkgIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHJ1biBpbnRvIGEgZGVhZGxvY2sgd2l0aCB0aGUgZGVlcC1ub3RpZnkgaGFuZGxlcnMKCSAgdGhhdCBhcmUgcG9zc2libHkgaW5zdGFsbGVkLgoKMjAwOC0wMy0yMCAxNzo0ODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBSZWxlYXNlIHRoZSBzZWxlY3RvciBsb2NrIHdoZW4gcGFkIGFsbG9jIGhhcHBlbnMgb24gYSBub24gc2VsZWN0ZWQgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpOgoJICBSZWxlYXNlIHRoZSBzZWxlY3RvciBsb2NrIHdoZW4gcGFkIGFsbG9jIGhhcHBlbnMgb24gYSBub24gc2VsZWN0ZWQgcGFkLgoKMjAwOC0wMy0yMCAxNzowNzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBBZGQgcGFkIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBiZWhhdmlvdXIgb2YgdGhlIHVuc2VsZWN0ZWQgcGFkLCBpdCBjYW4gcmV0dXJuIE9LIG9yIE4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9pbml0KSwgKGdzdF9zZWxlY3Rvcl9wYWRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCk6CgkgIEFkZCBwYWQgcHJvcGVydHkgdG8gY29uZmlndXJlIGJlaGF2aW91ciBvZiB0aGUgdW5zZWxlY3RlZCBwYWQsIGl0IGNhbgoJICByZXR1cm4gT0sgb3IgTk9UX0xJTktFRCwgYmFzZWQgb24gdGhlIHVzZSBjYXNlLgoKMjAwOC0wMy0yMCAxNjo0ODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBGaWd1cmUgb3V0IHRoZSBsb2NraW5nIGEgYml0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAoZ3N0X3NlbGVjdG9yX3BhZF9nZXRfcnVubmluZ190aW1lKSwgKGdzdF9zZWxlY3Rvcl9wYWRfcmVzZXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0KSwgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2Rpc3Bvc2UpLCAoZ3N0X3NlZ21lbnRfc2V0X3N0YXJ0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9saW5rZWRfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9pc19hY3RpdmVfc2lua3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfYWN0aXZhdGVfc2lua3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZWxlYXNlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfY2hhbmdlX3N0YXRlKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9ibG9jayksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc3dpdGNoKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgRmlndXJlIG91dCB0aGUgbG9ja2luZyBhIGJpdCBtb3JlLgoJICBNYXJrIGJ1ZmZlcnMgd2l0aCBkaXNjb250IGFmdGVyIHN3aXRjaGluZy4KCSAgRml4IGluaXRpYWwgc2VnbWVudCBmb3J3YXJkaW5nLCBtYWtlIHN1cmUgdG8gb25seSBmb3J3YXJkIG9uZSBzZWdtZW50CgkgIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgc2VxdWVuY2Ugb2YgYnVmZmVycy9zZWdtZW50cyBpcy4gU2VlICM1MjIyMDMuCgkgIEltcHJvdmUgZmx1c2hpbmcgd2hlbiBibG9ja2VkLgoJICBSZXR1cm4gTk9UX0xJTktFRCB3aGVuIGEgc3RyZWFtIGlzIG5vdCBzZWxlY3RlZC4KCSAgTm90IEFQSSBjaGFuZ2UgZm9yIHRoZSBzd2l0Y2ggc2lnbmFsIGluIHRoZSBkb2NzLgoJICBGaXggc3RhcnQvdGltZS9hY2N1bSB2YWx1ZXMgb2YgdGhlIG5ldyBzZWdtZW50LgoJICBDb3JyZWN0bHkgdW5sb2NrIGFuZCBmbHVzaCBhIGJsb2NraW5nIHNlbGVjdG9yIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA4LTAzLTE0IDE3OjIyOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEFkZCBsb3RzIG9mIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLCAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcHVzaF9wZW5kaW5nX3N0b3ApOgoJICBBZGQgbG90cyBvZiBkZWJ1Z2dpbmcuCgkgIEZpeCB0aW1lIG1lbWJlciBpbiB0aGUgbmV3c2VnbWVudCBldmVudC4KCjIwMDgtMDMtMTMgMTY6NDY6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuKjogVmFyaW91cyBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9maW5hbGl6ZSksIChnc3Rfc2VsZWN0b3JfcGFkX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlcXVlc3RfbmV3X3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3B1c2hfcGVuZGluZ19zdG9wKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zd2l0Y2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBBZGRlZCB0YWdzIHRvIHRoZSBwYWRzLgoJICBTZWxlY3QgYWN0aXZlIHBhZCBiYXNlZCBvbiB0aGUgcGFkIG9iamVjdCBpbnN0ZWFkIG9mIGl0cyBuYW1lLgoJICBGaXggcmVmY291bnQgaW4gc2V0X2FjdGl2ZV9wYWQuCgkgIEFkZCBwcm9wZXJ0eSB0byBnZXQgdGhlIG51bWJlciBvZiBwYWRzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksCgkgIChnc3Rfb3V0cHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfb3V0cHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSk6CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIFNlbGVjdCB0aGUgYWN0aXZlIHBhZCBiYXNlZCBvbiB0aGUgcGFkIG9iamVjdCBpbnN0ZWFkIG9mIGl0cyBuYW1lLgoJICBGaXggbG9ja2luZyB3aGVuIHNldHRpbmcgdGhlIGFjdGl2ZSBwYWQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci1tYXJzaGFsLmxpc3Q6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzogKGNsZWFudXBfcGFkKSwKCSAgKHNlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwgKHJ1bl9pbnB1dF9zZWxlY3Rvcl9idWZmZXJfY291bnQpOgoJICBGaXhlcyBmb3IgcGFkIGluc3RlYWQgb2YgcGFkbmFtZSBmb3IgcGFkIHNlbGVjdGlvbi4KCjIwMDgtMDItMjYgMTI6MDE6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzogRml4IGNoYW5naW5nIHRvIHNhbWUgcGFkIHR3aWNlIGJlZm9yZSBhIGNoYWluIGNhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgRml4IGNoYW5naW5nIHRvIHNhbWUgcGFkIHR3aWNlIGJlZm9yZSBhIGNoYWluIGNhbGwuCgoyMDA4LTAyLTI1IDA4OjUzOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuKjogQWRkZWQgInNlbGVjdC1hbGwiIHByb3BlcnR5IHRvIG1ha2UgaXQgd29yayBsaWtlIGFnZ3JlZ2F0b3IgaW4gMC44LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgQWRkZWQgInNlbGVjdC1hbGwiIHByb3BlcnR5IHRvIG1ha2UgaXQgd29yayBsaWtlIGFnZ3JlZ2F0b3IgaW4gMC44LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgRml4IHJlc2VuZC1sYXRlc3QgYmVoYXZvaXVyLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIHVuaXQgdGVzdHMgZm9yIHNlbGVjdG9yLgoKMjAwOC0wMi0wNyAxMzo0ODoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6IEFkZCBhIGZpeG1lIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICBBZGQgYSBmaXhtZSBjb21tZW50LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgRml4IHNhbWUgbGVhayBhcyBpbiBpbnB1dC1zZWxlY3Rvci4KCSAgKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBJbXByb3ZlIHRoZSB0ZXN0LgoKMjAwOC0wMi0wMSAxNzowODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBEb24ndCBsZWFrIGV2ZW50IG9uIHBhZHMgdGhhdCBhcmUgbm90IGxpbmtlZC4gRml4ZXMgIzUxMjgyNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KToKCSAgRG9uJ3QgbGVhayBldmVudCBvbiBwYWRzIHRoYXQgYXJlIG5vdCBsaW5rZWQuIEZpeGVzICM1MTI4MjYuCgoyMDA4LTAxLTI5IDA3OjM4OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXBsYWNlIHRoZSBzd2l0Y2ggcGx1Z2luIHdpdGggdGhlIHNlbGVjdG9yIHBsdWdpbi4gQWRkIG91dHB1dC0gc2VsZWN0b3IgYXMgdGhlIG9wcG9zaXRlIG9mIGlucHV0LXNlbGVjdG9vICh3YXMgc3dpdGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWV0YWRhdGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zZWxlY3Rvci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdW5kdG91Y2gueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zd2l0Y2gueG1sOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci1tYXJzaGFsLmxpc3Q6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvc2VsZWN0b3IudmNwcm9qOgoJICAqIGdzdC9zd2l0Y2gvLmN2c2lnbm9yZToKCSAgKiBnc3Qvc3dpdGNoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLW1hcnNoYWwubGlzdDoKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC5jOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmg6CgkgICogZ3N0L3N3aXRjaC9zd2l0Y2gudmNwcm9qOgoJICAqIHRlc3RzL2ljbGVzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgUmVwbGFjZSB0aGUgc3dpdGNoIHBsdWdpbiB3aXRoIHRoZSBzZWxlY3RvciBwbHVnaW4uIEFkZCBvdXRwdXQtCgkgIHNlbGVjdG9yIGFzIHRoZSBvcHBvc2l0ZSBvZiBpbnB1dC1zZWxlY3RvbyAod2FzIHN3aXRjaCkuIEFkZCBhIHRlc3QKCSAgZm9yIG91dHB1dC1zZWxlY3Rvci4gQWRkIGRvY3MgZm9yIHRoZSBlbGVtZW50cy4gVGhlIHZjcHJvaiBuZWVkcwoJICB1cGRhdGUuIEZpeGVzICM1MDAxNDIuCgoyMDEwLTEyLTMwIDAwOjQ2OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiBhZGQgdmFsdmUgZWxlbWVudCB0byBkb2N1bWVudGF0aW9uCgoyMDEwLTEyLTMwIDAwOjQxOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICB2YWx2ZTogc29tZSBtaW5vciBjbGVhbi11cHMKCjIwMTAtMTItMzAgMDA6MzA6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZml4IHR5cG8gaW4gcHJvcGVydHkgZGVzY3JpcHRpb24KCSAgQW5kIHJlcGhyYXNlIHdoaWxlIGF0IGl0LCB0byBtYWtlIGl0IG1vcmUgY29uY2lzZS4KCjIwMTAtMTItMzAgMDA6MjY6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHRlc3RzOiBlbmFibGUgdmFsdmUgdW5pdCB0ZXN0CgoyMDEwLTEyLTMwIDAwOjIyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogYWRkIG5ldyB2YWx2ZSBlbGVtZW50IHRvIGJ1aWxkCgkgIE1vdmVkIGZyb20gZ3N0LXBsdWdpbnMtYmFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA4MDgKCjIwMTAtMTAtMTkgMjM6NDA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdGVzdHM6IGZpeCB2YWx2ZSB1bml0IHRlc3QKCSAgZ3N0X2J1ZmZlcl9wYWRfYWxsb2MoKSBuZWVkcyBzaW1wbGUgY2FwcyBvciBOVUxMIGNhcHMsCgkgIEFOWSBjYXBzIGFyZSBub3QgYWxsb3dlZC4KCjIwMTAtMDktMjggMTM6NTI6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IG5vIG5lZWQgdG8gcmVmIHRoZSBvYmplY3QgaW4gX2NoYWluCgkgIERvbid0IHJlZiB0aGUgcGFkIGluIGNoYWluLCBsaWtlIGVsc2V3aGVyZQoKMjAxMC0wOS0zMCAxNzo0ODozNSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdGVzdHM6IEZpeCBjYXBzIGxlYWsgaW4gdGhlIHZhbHZlIHRlc3QKCjIwMTAtMDktMzAgMTc6MjQ6MjkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHZhbHZlOiBBZGQgdW5pdCB0ZXN0cwoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoZSB2YWx2ZSBlbGVtZW50LgoKMjAxMC0wOS0zMCAxNjoyNjoxOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHZhbHZlOiBNYWtlIHRoZSBkcm9wIHZhcmlhYmxlIGludG8gYW4gYXRvbWljLgoJICBVc2luZyBhbiBhdG9taWMgYWxsb3dzIHVzIHRvIGF2b2lkIGxvY2tpbmcgdGhlIHdob2xlIG9iamVjdCBhbGwgdGltZSB0aW1lLgoJICBBcyBzdWdnZXN0ZWQgYnkgU3RlZmFuIEtvc3QuCgoyMDEwLTA5LTMwIDE2OjIyOjA0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBDb3JyZWN0bHkgc2V0IHRoZSBESVNDT05UIGZsYWcgYWZ0ZXIgZHJvcHBpbmcgYnVmZmVycwoKMjAxMC0wOS0zMCAxNjoxNjo0NyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogUmVtb3ZlIHN1cGVyZmxvdXMgY2hlY2tpbmcgY2FzdHMKCjIwMTAtMDktMzAgMTY6MTM6MjMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IEZpeCBzdHlsZSwgaW1wcm92ZSBjb21tZW50cwoJICBNaW5vciBpbXByb3ZlbWVudHMgdG8gdGhlIGNvbW1lbnRzIGFuZCBicmVhayBhIGZldyBvdmVybHkgbG9uZyBsaW5lcwoKMjAxMC0wOS0yOCAxNDoyNjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogbW92ZSBkZWZhdWx0OiBwYXJzdCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudCB0byB0aGUgZW5kCgkgIE5vdyBzdXJlIGlmIGl0IG1hdHRlcnMsIGJ1dCB0aGUgcHJldmlvdXMgZm9ybSBsb29rcyB3ZWlyZWQuCgoyMDEwLTA5LTI4IDE0OjIzOjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBtb3ZlIGRlYnVnLWNhdGVnb3J5IHJlZ2lzdHJhdGlvbiB0byB0eXBlIGluaXQKCjIwMTAtMDktMjggMTQ6MTU6MTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IHVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIG9uIHByb3BlcnRpZXMKCjIwMTAtMDktMjggMTQ6MDc6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IEdTVF9CT0lMRVJQTEFURSBhbHJlYWR5IHNldHMgcGFyZW50X2NsYXNzCgoyMDEwLTAzLTE4IDE3OjMwOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyA9PiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUKCjIwMDktMDItMTAgMTg6NTI6NTQgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBkb2NzOiBkb2N1bWVudCB2YWx2ZSBlbGVtZW50CgoyMDA5LTAyLTEwIDE3OjU3OjE2ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IHJlbmFtZSB0byB2YWx2ZQoKMjAwOS0wMi0xMCAxNzo1NTo0NyArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IHJlLWluZGVudCBnc3Qgc3R5bGUKCjIwMDgtMTItMTMgMDA6MzE6NDUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogSWdub3JlIGVycm9ycyBpZiBkcm9wcGluZyBpcyBzZXQgdG8gdHJ1ZQoKMjAwOC0xMi0xMCAxNzowMDozMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBBZGQgZ2V0Y2FwcyBwcm94eWluZyB0byB0aGUgdmFsdmUKCjIwMDgtMDgtMjAgMTQ6MTE6MDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBSZWJhc2UgdmFsdmUgb250byBnc3RlbGVtZW50IGluc3RlYWQgb2YgYmFzZXRyYW5zZm9ybQoKMjAwOC0wOC0xOSAxODo0OTo1MSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBSZXZlcnQgIkZpeCByZWZjb3VudGluZyBpc3N1ZXMgaW4gcHJlcGFyZV9vdXRwdXRfYnVmZmVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDY1ZGQ0NjBmMGEzYTljNDg4MmU2MzhjODYyMDhmNzRlZjYyYzM0NjAuCgoyMDA4LTA4LTA1IDExOjMwOjU3ICswMDAwICBzam9lcmRAbHVvbi5uZXQgPHNqb2VyZEBsdW9uLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogRml4IHJlZmNvdW50aW5nIGlzc3VlcyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgMjAwODA4MDUxMTMwNTctYmUwZjItOWRjMjcwNzgxZjBhMGYyMWM2MTZlZDExZGJkMWYxOThmZDFiMzI2ZS5negoKMjAwOC0wNC0wOSAxNjozMjoyMSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJlbW92ZSB1bnVzZWQgZGlzcG9zZSBtZXRob2QgaW4gdmFsdmUKCSAgMjAwODA0MDkxNjMyMjEtM2UyZGMtOTJjY2IyZGI4NzRlNDZlMGQ5MmMxNTUyMDU3N2MxYmUwZTJiYzYxNy5negoKMjAwNy0xMi0xOSAyMDozMjozMCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IERvbnQgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hpbGUgY2FsbGluZyBiYXNlIGFsbG9jIGZ1bmN0aW9uCgkgIDIwMDcxMjE5MjAzMjMwLTNlMmRjLTY1MTkxNzVkOGQ4MTQ5NjUxNWIyZDkwNjBhYzMxNjY1MDU2MGY2OTEuZ3oKCjIwMDctMTItMTkgMjA6MzI6MTggKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IFNldCB0aGUgRElTQ09OVCBmbGFnIGFmdGVyIGRyb3BwaW5nIGJ1ZmZlcnMKCSAgMjAwNzEyMTkyMDMyMTgtM2UyZGMtYmM1ZjAzZDg4ZmY1ODM3MDQwYjkyMTRkZTAxNmNjMTQyNzc2ZGZjMi5negoKMjAwNy0xMi0xOSAwMDo1NzozOSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogVXNlIGRvIHRoZSBhbGxvY19idWZmZXIgZnVuY3Rpb24gaW4gdGhlIHZhbHZlCgkgIDIwMDcxMjE5MDA1NzM5LTNlMmRjLTJhMGZkZmEyZjM4ZjAzYWI0NzkxZmU1YzRhYjg1ZTg3OTAxMTM2ODMuZ3oKCjIwMDctMTEtMjEgMjA6MDg6NTggKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBPbmx5IHNldCBwYXNzdGhyb3VnaCB0byBUUlVFIG9uIG5ld2VyIHZlcnNpb25zIG9mIGdzdAoJICAyMDA3MTEyMTIwMDg1OC0zZTJkYy1iMTZjZGVhYmJjM2MwNTYyYzZmYzdiMTFiOWI5NzkyYzkxMGY1NjllLmd6CgoyMDA3LTExLTIxIDE4OjE3OjI5ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogQ29tcGFyZSBtaW5vciwgbm90IG1ham9yCgkgIDIwMDcxMTIxMTgxNzI5LTNlMmRjLWE1OTk3YzNiN2Y1Yzg2OTY2MzcwOTY5NzE0ZmFjZjhlZTI0MjY1OWQuZ3oKCjIwMDctMTAtMjYgMjI6Mzc6NDkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBNYWtlIHRoZSB2YWx2ZSBlbGVtZW50IHdvcmsgd2l0aCBnc3QgPCAwLjEwLjEzCgkgIDIwMDcxMDI2MjIzNzQ5LTNlMmRjLTE4ZjY4NWE0ZTQ1ZmJkY2U2NzdhYzc3NzU4Njg3NmZjNzE5ZDcyMjIuZ3oKCjIwMDctMTAtMjQgMjI6NDI6NDYgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBSZW5hbWUgdmFsdmUgdG8gZnN2YWx2ZQoJICAyMDA3MTAyNDIyNDI0Ni0zZTJkYy1jNTQyMTZhZjJlZjBlZjNmMWEyMjA2ZDcyM2U4N2JlMmEyM2FiOGVkLmd6CgoyMDA3LTEwLTI0IDIyOjQxOjQ3ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBBZGQgdmFsdmUgZWxlbWVudAoJICAyMDA3MTAyNDIyNDE0Ny0zZTJkYy1mMjhhYjBjMDczZTI4Mzg5NGI2NWMyMmM0ZjQ0Mzk3Yzg5N2RlYzAxLmd6CgoyMDEwLTEyLTMwIDE4OjMxOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IG1ha2UgdmFyaWFibGUgc3RhdGljCgoyMDEwLTEyLTI5IDExOjQ4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBkZWFkbG9jawoJICBPbmx5IGdvIGludG8gTElWRV9XQUlUIHdoZW4gdGhlIGFyZSBub3QgbGl2ZV9ydW5uaW5nIGFuZCBvbmx5IHN0b3Agd2FpdGluZyB3aGVuCgkgIGxpdmVfcnVubmluZyBpcyBUUlVFLiBJZiB3ZSBkb24ndCBsb29wLCB3ZSBjb3VsZCBkZWFkbG9jayB3aGVuIGNhbGxlZCBmcm9tCgkgIG91dHNpZGUgb2YgYmFzZXNyYywgc3VjaCBhcyBiYXNlYXVkaW9zcmMuCgkgIEZpeGVzICM2MzU3ODUKCjIwMTAtMTItMjggMTY6NDA6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGNoZWNrOiBhZGQgbW9yZSBzaW5rIHVuaXQgdGVzdHMKCjIwMTAtMTItMjggMTY6MjM6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhbHNvIHByZXJvbGwgYXN5bmM9ZmFsc2Ugc2lua3MKCSAgQWxzbyBwcmVyb2xsIGFzeW5jPWZhbHNlIHNpbmtzIGFmdGVyIGEgZmx1c2guCgoyMDEwLTEyLTIyIDE2OjU1OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBmaXggdHlwbwoKMjAxMC0xMi0yNiAyMToyMDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgUmV2ZXJ0ICJtaWNyby1vcHRpbTogaWYgKHgpIGlzIGNoZWFwZXIgdGhhbiBpZiAoeCA+IDApIGZvciB1bnNpZ25lZCBpbnRlZ2VycyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2YWE4Y2EzN2VlYjlkZWJmYTY5MTk3NDFhMDIzMjUwYmYyNzgyNDhmLgoJICBTZWUgaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAudmlkZW8uZ3N0cmVhbWVyLmRldmVsLzMyMjgyCgoyMDEwLTEyLTI0IDE0OjAyOjA4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgIGVsZW1lbnRzOiByZWVuYWJsZSBmZHNyYy9mZHNpbmsgb24gTVNWQwoKMjAxMC0xMi0yMiAxNjozNjowOSAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICBGaXggR1N0YXRCdWYgZGVmaW5pdGlvbiBmb3Igd2luMzIgd2hlbiBidWlsZGluZyBhZ2FpbnN0IG9sZGVyIGdsaWIuIE5vdyBtYXRjaGVzIHVwc3RyZWFtIGdsaWIgZGVmaW5pdGlvbi4KCjIwMTAtMTItMjIgMjI6MzY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogYWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9uCgoyMDEwLTEyLTIyIDE2OjQyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBhZGQgZHJhZnQgaWRlYSBmb3IgcHJvZ3Jlc3MgcmVwb3J0aW5nCgoyMDEwLTEyLTIxIDEwOjMzOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHR5cG8KCjIwMTAtMTItMjAgMTc6NDY6MzYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNjk0NjJhIHRvIDQ2NDQ1YWQKCjIwMTAtMTItMTkgMTI6NDk6NTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBEb24ndCBsZWFrIGNvcGllcyBvZiBlbXB0eSBzdHJpbmdzCgoyMDEwLTEyLTE3IDE5OjE5OjQwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBiYXNlOiBkb2N1bWVudGF0aW9uIGZpeHVwcyBhbmQgYW5ub3RhdGlvbgoKMjAxMC0xMi0xNyAxOToxNDo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogZG9jdW1lbnRhdGlvbiBmaXh1cHMgYW5kIGFubm90YXRpb24KCSAgUmVwb3J0ZWQgYnkgZW5hYmxpbmcgdGhlIC0td2Fybi1hbGwgb3B0aW9uIG9mIGctaXItc2Nhbm5lcgoKMjAxMC0xMi0xNyAxNTo0ODozNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBkb2N1bWVudGF0aW9uCgkgIHNlY29uZCA9PiBzZWNvbmRzCgkgIG1pY3Jvc2Vjb25kIGFyZ3VtZW50IHdhcyBkcm9wcGVkCgoyMDEwLTEyLTA0IDE1OjMyOjA2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFVzZSBhbiBhdG9taWMgaW50ZWdlciBpbnN0ZWFkIG9mIGEgbG9jayBmb3IgY2hlY2tpbmcgdGFncyBwcmVzZW5jZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2NDU1CgoyMDEwLTEyLTE2IDEwOjU1OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgZG93bnN0cmVhbSBnaXZpbmcgYSBidWZmZXIgd2l0aCBuZXcgY2FwcyBidXQgaW52YWxpZCBzaXplCgkgIFRoaXMgY2FuIGhhcHBlbiBmb3IgZXhhbXBsZSB3aGVuIGRvd25zdHJlYW0gcHJvcG9zZWQgbmV3IGNhcHMsIGxhdGVyIHByb3Bvc2VkCgkgIHRoZSBwcmV2aW91cyBjYXBzIGFnYWluIHdoaWNoIGluIHR1cm4gZW5hYmxlcyBwYXNzdGhyb3VnaCBtb2RlIGluIHVwc3RyZWFtCgkgIGVsZW1lbnRzIGFuZCB0aGUgd3Jvbmctc2l6ZWQgYnVmZmVyIGFwcGVhcnMgaW4gYW4gZWxlbWVudCB3aGVyZSB0aGUgY2FwcwoJICBjaGFuZ2UgbmV2ZXIgaGFwcGVuZWQuIFNpbXBseSBhbGxvY2F0ZSBhIG5ldyBidWZmZXIgaW4gdGhpcyBjYXNlLgoJICBTZWUgYnVnICM2MzU0NjEuCgoyMDEwLTEyLTE1IDIzOjE5OjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgdGhlIHB1YmxpY2x5IHZpc2libGUgYWRkcmVzcyB0byBmaXggdGhlIHRlc3RzCgkgIFRoZSAtQnN5bWJvbGljIGNoYW5nZSBjYXVzZXMgdXMgdG8gZ2V0IGEgZGlmZmVyZW50IGFkZHJlc3Mgd2hlbiBpbnRlcm5hbHkKCSAgbG9va2luZyB1cCB0aGUgZnVuY3Rpb24gdGhhbiB3aGF0IGFwcGxpY2F0aW9uIHdvdWxkIGdldCB3aGVuIHRoZSB1c2UgdGhlIHN5bWJvbAoJICB0aGF0IHRoZXkgc2VlLiBUaGlzIG1hZGUgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9naGFuZGxlciB0byBmYWlsLCBhcyBpdCBpcyBzZXQKCSAgaW50ZXJuYWxseSBhbmQgcmVtb3ZlZCBleHRlcm5hbHkuCgoyMDEwLTEyLTE1IDE0OjU1OjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIwNzQyYWUgdG8gMTY5NDYyYQoKMjAxMC0xMi0xNSAxMjoxMDowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVzZSB0aGUgLUJzeW1ib2xpYy1mdW5jdGlvbnMgbGlua2VyIGZsYWcgaWYgc3VwcG9ydGVkCgkgIFRoaXMgZmVhdHVyZSB0dXJucyBpbnRyYSBsaWJyYXJ5IGNhbGxzIGludG8gZGlyZWN0IGZ1bmN0aW9uIGNhbGxzIGFuZCB0aHVzIG1ha2VzCgkgIHRoZW0gYSBsaXR0bGUgZmFzdGVyLiBUaGUgZG93bnNpZGUgaXMgdGhhdCB0aGlzIGNhdXNlcyBwcm9ibGVtcyBmb3IgZS5nLgoJICBMRF9QUkVMT0FEIGJhc2VkIHRvb2xzLiBUaHVzIGFkZCBhIGNvbmZpZ3VyZSBvcHRpb24gdG8gdHVybiBpdCBvZmYuCgoyMDEwLTEyLTE0IDE5OjAwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBsYXN0X3N0b3AgY2FsY3VsYXRpb24KCSAgT25seSB1cGRhdGUgdGhlIGxhc3Rfc3RvcCB2YWx1ZSB3aGVuIHdlIGhhZCBhIHZhbGlkIHN0b3AgcG9zaXRpb24gZm9yIHRoZQoJICBjbGlwcGluZyBvciBlbHNlIHRoZSBjbGlwcGluZyBjb2RlIGFzc3VtZXMgdGhlIHN0b3AgcG9zaXRpb24gZXh0ZW5kcyB0byB0aGUgZW5kCgkgIG9mIHRoZSBzZWdtZW50LCB3aGljaCBtYWtlcyB0aGUgcG9zaXRpb24gcmVwb3J0aW5nIHJldHVybiB3ZWlyZCB2YWx1ZXMuCgoyMDEwLTEyLTE0IDE1OjUyOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IG9iamVjdCB0eXBlIGhhbmRsaW5nIGluIHF1ZXVlZCBwcmVyb2xsCgkgIEZhY3RvciBvdXQgdGhlIG1ldGhvZCB0byBnZXQgdGhlIG9iamVjdCB0eXBlLgoJICBXaGVuIHByZXJvbGwtcXVldWUtbGVuID4gMCwgdXNlIHRoZSByaWdodCBvYmplY3QgdHlwZSBpbnN0ZWFkIG9mIGlnbm9yaW5nCgkgIGJ1ZmZlci1saXN0cy4KCjIwMTAtMTItMTMgMTY6MjI6NDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDExYmNjOCB0byAyMDc0MmFlCgoyMDEwLTEyLTExIDEwOjEwOjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBGaXggR0lSIGJ1aWxkIGZvciBzcmNkaXIgIT0gYnVpbGRkaXIKCjIwMTAtMTItMDggMTc6NTE6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgY29tbWl0ICcwZWFhMjVjYmY1YzBlNGJmODY1NDVmYjY3YzE4MWEwZWNkMmYxOWM3JyBpbnRvIDAuMTEKCjIwMTAtMTItMDggMTI6MTc6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZG9jczogZml4IHdyb25nIHVzZSBvZiBTaW5jZToga2V5d29yZAoKMjAxMC0xMi0wOCAxMTo1MjozMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBtYWludGFpbiB0aGUgdHlwZWZpbmQgZXh0ZW5zaW9uIGxpc3Qgb3JkZXIKCjIwMTAtMTItMDggMTE6NTE6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgZG9jczogYWRkICgpIHRvIHhyZWYgdGhlIGZ1bmN0aW9uLgoKMjAxMC0xMi0wNyAxOTozNTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJlbW92ZSBzb21lIGRlYWQgY29kZSwgR1NUX0RFQlVHX0NPTE9SIGlzIG5ldmVyIGRlZmluZWQKCjIwMTAtMTItMDcgMTk6MzU6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogY29uc3QtaWZ5IGFyZ3VtZW50cyB0byBnc3Rfb2JqZWN0X2RlZmF1bHRfZXJyb3IoKQoKMjAxMC0xMi0wNyAxODo0NjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZG9jczogZ3N0X2Vycm9yX2dldF9tZXNzYWdlKCkgcmV0dXJucyBzdHJpbmcgaW4gVVRGLTgsIG5vdCBjdXJyZW50IGxvY2FsZQoJICBXZSB0ZWxsIGdldHRleHQgdG8gcmV0dXJuIGV2ZXJ5dGhpbmcgaW4gVVRGLTggZW5jb2RpbmcuCgoyMDEwLTEyLTA1IDIwOjE3OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWdpc3RlciBnc3RfcGFkX2dldF9maXhlZF9jYXBzX2Z1bmMoKSB3aXRoIHRoZSBkZWJ1ZyBsb2cgc3lzdGVtCgoyMDEwLTEyLTA3IDE4OjM1OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGRvY3M6IGxpYmdzdGJhc2U6IG1vcmUgZ29iamVjdCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIE1hbnkgb2YgdGhlc2UgYXJlIHN1cGVyZmx1b3VzIGFuZCB3ZXJlIGFkZGVkIGZvciBjbGFyaXR5LgoKMjAxMC0xMi0wNyAxODozNTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZ3N0OiBtb3JlIGdvYmplY3QgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoJICBNYW55IG9mIHRoZXNlIGFyZSBzdXBlcmZsdW91cywgYWRkZWQgZm9yIGNsYXJpdHkuCgoyMDEwLTEyLTA3IDE4OjQwOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTAtMTItMDcgMTg6MzM6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTAtMTItMDcgMTg6MzI6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGRpc2FibGUgQUJJIGNoZWNrcwoKMjAxMC0xMi0wNyAxODozMjozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvY3VtZW50CgoyMDEwLTEyLTA3IDE4OjE0OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgZ2V0X2NhcHNfcmVmZmVkIHZhcmlhbnRzCgkgIE1ha2UgdGhlIF9nZXRfY2FwcyBmdW5jdGlvbnMgYmVoYXZlIGxpa2UgdGhlIF9nZXRfY2Fwc19yZWZmZWQgdmFyaWFudHMgYW5kCgkgIHJlbW92ZSB0aGUgX3JlZmZlZCB2YXJpYW50cy4gVGhpcyBtZWFucyB0aGF0IF9nZXRfY2FwcyBkb2Vzbid0IHJldHVybiBhIHdyaXRhYmxlCgkgIGNhcHMgYW55bW9yZSBhbmQgYW4gZXhwbGljaXQgX21ha2Vfd3JpdGFibGUoKSBpcyBuZWVkZWQgYmVmb3JlIG1vZGlmeWluZyB0aGUKCSAgY2Fwcy4KCjIwMTAtMTItMDcgMTg6MTI6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTAtMTItMDcgMTY6NTI6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBDbGVhbiB1cCAuaCBmaWxlCgoyMDEwLTEyLTA3IDE1OjUzOjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMC0xMi0wNyAxNTozMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnRtZXRhZGF0YS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGVsZW1lbnQ6IHJld29yayBHc3RFbGVtZW50RGV0YWlscwoJICBDbGVhbiB1cCB0aGUgR3N0RWxlbWVudCBzdHJ1Y3R1cmUKCSAgUmVwbGFjZSBHc3RFbGVtZW50RGV0YWlscyB3aXRoIG1ldGFkYXRhCgoyMDEwLTEyLTA3IDE1OjMxOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogcmVtb3ZlIGRlcHJlY2F0ZWQgbWV0aG9kcwoJICBSZW1vdmUgbW9yZSBkZXByZWNhdGVkIG1ldGhvZHMgYW5kIGZpeCB1bml0IHRlc3QuCgoyMDEwLTEyLTA3IDE1OjIxOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgY2hlY2s6IHJlbW92ZSBkZXByZWNhdGVkIHRlc3RzCgoyMDEwLTEyLTA3IDE1OjIwOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVjazogZml4IG9iamVjdCB1bml0IHRlc3QKCjIwMTAtMTItMDcgMTU6MTk6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgb2JqZWN0OiBmaXggZG9jcwoKMjAxMC0xMi0wNyAxMzoxOToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBBZGQgLUkkKHRvcF9zcmNkaXIpL2xpYnMgdG8gZy1pci1zY2FubmVyIGNvbW1hbmRzCgkgIFdpdGhvdXQgdGhpcywgaXQgd2lsbCBmYWlsIGZpbmRpbmcgYWxsIGhlYWRlcnMuCgoyMDEwLTEyLTA3IDEyOjU3OjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogcmVjb21tZW5kICItLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5LWZvcmsiIGFzIHdlbGwKCSAgRGlzYWJsaW5nIGZvcmtpbmcgaGVscHMgd2l0aCBkZWJ1Z2dpbmcgdGhlIGNhdXNlIG9mIHRoZSBjcmFzaCBpbiBnZGIuCgoyMDEwLTEyLTA3IDEyOjU2OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3BsdWdpbmRvY3MudHh0OgoJICBkb2NzOiBzb21lIG5vdGVzIGFib3V0IG91ciBwbHVnaW4gZG9jcyB3b3JrZmxvdwoKMjAxMC0xMi0wNyAxMTo1ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgb2JqZWN0OiBSZW1vdmVkIGRlcHJlY2F0ZWQgZmllbGRzIGFuZCBtZXRob2RzCgkgIE1ha2UgR3N0T2JqZWN0IGV4dGVuZCBmcm9tIEdJbml0aWFsbHlVbm93bmVkLCByZW1vdmUgdGhlIEZMT0FUSU5HIGZsYWcgYW5kIHVzZQoJICBHT2JqZWN0IG1ldGhvZHMgZm9yIG1hbmFnaW5nIHRoZSBmbG9hdGluZyByZWYuCgkgIFJlbW92ZSBjbGFzcyBsb2NrLCBpdCB3YXMgYSB3b3JrYXJvdW5kIGZvciBhIGdsaWIgPCAyLjggYnVnLgoJICBSZW1vdmUgdGhlIHBhcmVudC1zZXQgYW5kIHBhcmVudC11bnNldCBzaWduYWxzLCBhdHRlbXB0IHRvIGltcGxlbWVudCB3aXRoIG5vdGlmeQoJICBidXQgZGlzYWJsZWQgYmVjYXVzZSBkZWFkbG9ja3MgaW4gZGVlcC1ub3RpZnkuCgoyMDEwLTEyLTA2IDIwOjAzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogbWVudGlvbiByZW1vdmFsIG9mIHByb3RvY29sIHByb3BlcnR5CgoyMDEwLTEyLTA2IDE5OjQwOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgbGliczogcmVtb3ZlIGRlcHJlY2F0ZWQgY29kZQoKMjAxMC0xMi0wNiAxOToyNDozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNiAxOToxODozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L2dzdHhtbC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHJlbW92ZSBkZXByZWNhdGVkIHN5bWJvbHMgYW5kIG1ldGhvZHMKCjIwMTAtMTItMDYgMTM6NTE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiBBZGQgcG9ydGluZyBkb2MKCjIwMTAtMTItMDYgMTM6NDg6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBwbGFuOiBmaXggdHlwbwoKMjAxMC0xMS0xMSAxMDozODo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIHBsYW46IGFkZCBzb21ldGhpbmcgYWJvdXQgR1ZhcmlhbnQgcmVnaXN0cnkKCjIwMTAtMTEtMDggMTg6Mzk6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS91c2UtY2FzZXMtMC4xMS50eHQ6CgkgIGFkZCBzb21lIHVzZS1jYXNlcwoKMjAxMC0xMS0wOCAxNDowODozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIG1vcmUgdXBkYXRlcwoKMjAxMC0xMS0wOCAxMjoxNDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIG1vcmUgdXBkYXRlcwoKMjAxMC0xMS0wOCAxMToxODowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIG1vcmUgdXBkYXRlcwoKMjAxMC0xMS0wNCAxOTozMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIHdvcmsgb24gdG9kbyBsaXN0IGZvciAwLjExIHdvcmsKCjIwMTAtMTItMDYgMTM6MjE6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBhbmRyb2lkL2Jhc2UubWs6CgkqIGFuZHJvaWQvY29udHJvbGxlci5tazoKCSogYW5kcm9pZC9kYXRhcHJvdG9jb2wubWs6CgkqIGFuZHJvaWQvZWxlbWVudHMubWs6CgkqIGFuZHJvaWQvZ3N0LWluc3BlY3QubWs6CgkqIGFuZHJvaWQvZ3N0LWxhdW5jaC5tazoKCSogYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWs6CgkqIGFuZHJvaWQvZ3N0Lm1rOgoJKiBhbmRyb2lkL2luZGV4ZXJzLm1rOgoJKiBhbmRyb2lkL25ldC5tazoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIG1vcmUgMC4xMCAtPiAwLjExCgoyMDEwLTEyLTA2IDEyOjAzOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IG9wZW4gMC4xMSBicmFuY2gKCjIwMTAtMTItMDYgMTE6MTg6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiByZXR1cm4gd2FrZXVwIGV2ZW50IGluIEdQb2xsRkQKCjIwMTAtMTItMDYgMTE6MDc6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBzb21lIGRlYnVnIHRvIGZhc3QgcHVzaCBwYXRoCgkgIC4uLiBzbyB3ZSBkb24ndCBsb29zZSB0cmFjayBhdCB0aW1lcyBpdCBpcyBuZWVkZWQgdGhlIG1vc3QuCgoyMDEwLTEyLTA1IDE1OjU4OjQ4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBjYWNoZWQgQ2xvY2tJZAoKMjAxMC0xMi0wNSAxNDo0NjoyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBEb24ndCBjaGVjayBwYWQgcmVmY291bnQgdG9vIGVhcmx5CgkgIEJlY2F1c2Ugb2YgdGhlIG5ldyBwYWQgY2FjaGluZyBzeXN0ZW0sIHRoZSBwZWVyIHBhZCBtaWdodCBzdGlsbAoJICBoYXZlIGEgcmVmZXJlbmNlIG9uIGEgcGFkLiBXZSB0aGVyZWZvcmUgZGVsYXkgdGhlIHJlZmNvdW50IGNoZWNraW5nCgkgIHRpbCAnYWZ0ZXInIHdlIHVubGluayB0aGUgcGFkIGZyb20gYW55IHBvdGVudGlhbCBwZWVyLgoKMjAxMC0xMi0wNSAxNDoxMTo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBNYWtlIGVsZW1lbnQgbmFtZXMgY2xlYXJlciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzCgkgIFJlcGxhY2VzIGNvbmZ1c2luZyBtZXNzYWdlcyBsaWtlOgoJICAiTmFtZSBuYW1lIGlzIG5vdCB1bmlxdWUgaW4gYmluIGJpbiwgbm90IGFkZGluZyIKCSAgYnkKCSAgIk5hbWUgJ25hbWUnIGlzIG5vdCB1bmlxdWUgaW4gYmluICdiaW4nLCBub3QgYWRkaW5nIgoKMjAxMC0xMi0wNCAyMTowNjozNCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IEZpeCBwZXJtaXNzaW9ucyBpZiB1bWFzayBpcyBicm9rZW4KCSAgRml4ZXM6ICM1NjQwNTYuCgoyMDEwLTEyLTA0IDE0OjIzOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBidWlsZDogcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2VzIGFmdGVyIGJhY2tzbGFzaCBpbiBNYWtlZmlsZS5hbQoKMjAxMC0xMi0wNCAxMzoxNDozOSArMDAwMCAgS29vcCBNYXN0IDxrd21ARnJlZUJTRC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZml4IHRlc3Qgc28gaXQgd29ya3Mgd2l0aCBGcmVlQlNEJ3MgL2Jpbi9zaAoJICBVc2UgJz0nIGluc3RlYWQgb2YgJz09Jy4gRml4ZXM6CgkgIGNvbmZpZ3VyZTogd29ya2luZyBjKysgY29tcGlsZXIgZm91bmQ6IHllcwoJICB0ZXN0OiB4eWVzOiB1bmV4cGVjdGVkIG9wZXJhdG9yCgkgIGh0dHA6Ly9idWd6aWxsYS1hdHRhY2htZW50cy5nbm9tZS5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MTc1NjkyCgoyMDEwLTEyLTAzIDExOjI5OjMwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgVXNlIGdfc25wcmludGYoKSBpbnN0ZWFkIG9mIHNucHJpbnRmKCkKCjIwMTAtMTItMDMgMTY6NDQ6MjMgKzAxMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBzdGVyaWNzc29uLmNvbT4KCgkqIEFuZHJvaWQubWs6CgkqIGFuZHJvaWQvTk9USUNFOgoJKiBhbmRyb2lkL2Jhc2UubWs6CgkqIGFuZHJvaWQvY29udHJvbGxlci5tazoKCSogYW5kcm9pZC9kYXRhcHJvdG9jb2wubWs6CgkqIGFuZHJvaWQvZWxlbWVudHMubWs6CgkqIGFuZHJvaWQvZ3N0LWluc3BlY3QubWs6CgkqIGFuZHJvaWQvZ3N0LWxhdW5jaC5tazoKCSogYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWs6CgkqIGFuZHJvaWQvZ3N0Lm1rOgoJKiBhbmRyb2lkL2dzdC9nc3Rjb25maWcuaDoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuaDoKCSogYW5kcm9pZC9nc3QvZ3N0dmVyc2lvbi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLm91dHB1dDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuYzoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkuYzoKCSogYW5kcm9pZC9pbmRleGVycy5tazoKCSogYW5kcm9pZC9uZXQubWs6CgkqIGFuZHJvaWQvdG9vbHMubWs6CgkgIEFkZCBidWlsZCBzeXN0ZW0gZm9yIEFuZHJvaWQKCjIwMTAtMTItMDMgMTY6MDI6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGluaXQgdmFyaWFibGVzIGluIF9yZWluaXQoKQoJICBQcm9wZXJseSBpbml0aWFsaXplIHZhcmlhYmxlcyBpbiBfcmVpbml0KCkgdG9vCgoyMDEwLTEwLTIxIDE4OjA4OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IG1ha2Ugc3luYyBjbG9jayB3YWl0IGxvY2tmcmVlCgkgIE1ha2UgdGhlIGNvbW1vbiBjYXNlIGxvY2tmcmVlLgoKMjAxMC0xMi0wMyAxMjowNDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IHVzZSBmdW5jdGlvbiBpbnRyb2R1Y2VkIGluIEdMaWIgMi4yMiB1bmNvbmRpdGlvbmFsbHkKCjIwMTAtMTItMDMgMTI6NDI6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBzbWFsbCBjbGVhbnVwcwoKMjAxMC0xMS0wMyAxODozODoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IG1ha2Ugc3VyZSB3ZSByZW1vdmUgdGhlIHJlYWRmZCBtZXNzYWdlcwoKMjAxMC0xMS0wMyAxODoxNjowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwb2xsOiBhZGQgbWV0aG9kIHRvIGdldCBhIEdQb2xsRkQKCjIwMTAtMTEtMDMgMTc6NTY6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBSZWZhY3RvciBhbmQgbWFrZSBtb3JlIGxvY2tmcmVlCgkgIFJlZmFjdG9yIHRoZSB3YWtldXAgb2YgdGhlIHBvbGwgdGhyZWFkLgoJICBBbHdheXMgbWFrZSBhIGNvbnRyb2wgc29ja2V0IHRvIG1ha2UgdGhpbmdzIGVhc2llci4KCSAgTWFrZSBtb3JlIG1ldGhvZHMgbG9ja2ZyZWUuCgoyMDEwLTEwLTIxIDAyOjAyOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogbW92ZSBsb2NrIHRvIHdoZXJlIGl0IG1ha2VzIG1vcmUgc2Vuc2UKCjIwMTAtMTAtMjEgMDE6MTU6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBtYWtlIHRpbWVyIHBvbGxzIGxvY2tmcmVlCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCB0YWtlIGEgbXV0ZXggaW4gdGhlIG5vcm1hbCBjb2RlIHBhdGggb2YgdGhlIHRpbWVyCgkgIHBvbGwuCgoyMDEwLTEyLTAyIDE3OjUxOjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiByZXR1cm4gdXBvbiBpbnB1dCB3aGVuIGFscmVhZHkgZW9zCgkgIC4uLiByYXRoZXIgdGhhbiBoYW5naW5nIGluY29taW5nIHRocmVhZCAoYXMgY29uc2lkZXJlZCBmdWxsIGluIGVvcykuCgoyMDEwLTEyLTAyIDE3OjQ5OjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBkb2MgdHlwbwoKMjAxMC0xMC0xNiAxNjoxNjoxNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcmVtb3ZlIHNvbWUgY29tbWVudGVkIGNvZGUKCjIwMTAtMTItMDMgMTM6NTI6MDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhZGQgc3RkaW8uaCBmb3Igc25wcmludAoKMjAxMC0xMi0wMyAxMToyNzoxNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVXNlIGFuIG9iamVjdCBhcyBmaXJzdCBhcmd1bWVudCB0byBHU1RfV0FSTklOR19PQkpFQ1QKCjIwMDktMDQtMTEgMTU6MDQ6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgbWljcm8tb3B0aW06IGlmICh4KSBpcyBjaGVhcGVyIHRoYW4gaWYgKHggPiAwKSBmb3IgdW5zaWduZWQgaW50ZWdlcnMKCjIwMDktMDQtMTAgMDk6MDE6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IFVzZSBzdHJ1Y3R1cmUgcHJvcGVydHkgZGlyZWN0bHksIGF2b2lkIGZ1bmN0aW9uIHZhcmlhYmxlLgoJICBBbGwgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBjYW4gYWNjZXNzIHRoZSBzdHJ1Y3R1cmUgZmllbGQgb2YgYSBxdWVyeSBkaXJlY3RseS4KCSAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGNhbGwgZ3N0X3F1ZXJ5X2dldF9zdHJ1Y3R1cmUoKSB0byBnZXQgaXQsIGFsb25nIHdpdGggYmVpbmcKCSAgYWJsZSB0byByZW1vdmUgc29tZSBmdW5jdGlvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGF0CgkgIGZ1bmN0aW9uLgoKMjAwOS0wNC0xMCAwODo1MTowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IHJlbW92ZSB1c2VsZXNzIHRlcm5hcnkgb3BlcmF0b3IgdXNhZ2UuCgoyMDEwLTA5LTE0IDEzOjA4OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGdzdGV2ZW50OiBVc2Ugc3RydWN0dXJlIHByb3BlcnR5IGRpcmVjdGx5LCBhdm9pZCBmdW5jdGlvbiB2YXJpYWJsZS4KCSAgQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgY2FuIGFjY2VzcyB0aGUgc3RydWN0dXJlIGZpZWxkIG9mIGFuIGV2ZW50IGRpcmVjdGx5LgoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gY2FsbCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSgpIHRvIGdldCBpdCwgYWxvbmcgd2l0aCBiZWluZwoJICBhYmxlIHRvIHJlbW92ZSBzb21lIGZ1bmN0aW9uIHZhcmlhYmxlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoYXQKCSAgZnVuY3Rpb24uCgoyMDEwLTEyLTAzIDExOjE5OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBwdXNoIGNhY2hlIHRvIGJ1ZmZlcmxpc3RzCgkgIEFkZCB0aGUgcHVzaCBjYWhjZSBmb3IgdGhlIGJ1ZmZlcmxpc3QgcHVzaCBjb2RlIHBhdGggYXMgd2VsbC4KCjIwMTAtMTItMDMgMTE6MTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgY2FjaGUgdGhlIHBlZXIgY2hhaW5mdW5jCgkgIFRoZXJlIGlzIG5vIG5lZWQgdG8gY2FjaGUgdGhlIHBlZXIgY2hhaW5mdW5jdGlvbiBhcyB3ZSBjYW4ganVzdCBhcyBlZmZpY2llbnRseQoJICBnZXQgdG8gaXQgZnJvbSB0aGUgcGVlciBvYmplY3QuIEFsc28gbm90IGNhY2hpbmcgdGhlIGNoYWluIGZ1bmN0aW9uIHdvcmtzIGJldHRlcgoJICBiZWNhdXNlIHRoZW4gd2UgYXV0b21hdGljYWxseSBnZXQgdGhlIG5ldyBjaGFpbmZ1bmN0aW9ucyB3aGVuIHRoZXkgY2hhbmdlLgoKMjAxMC0xMi0wMyAxMDo1MjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGNsZWFyIHBhZCBjYWNoZSB3aGVuIGluc3RhbGxpbmcgcHJvYmVzCgkgIE1vdmUgdGhlIG1ldGhvZCB0byBjbGVhciB0aGUgcGFkIGNhY2hlIGludG8gX3ByaXZhdGUuaAoJICBDbGVhciB0aGUgcGFkIGNhY2hlIHdoZW4gaW5zdGFsbGluZyBwYWQgcHJvYmVzLgoKMjAxMC0xMC0yMCAxNzoxMToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBleHBsaWNpdGx5IGlubGluZSBzb21lIGZ1bmN0aW9ucwoKMjAxMC0xMC0xMyAwMjo0ODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTEwLTEzIDAyOjQyOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGludmFsaWRhdGUgY2FjaGVzIG9uIGZsdXNoIGFuZCBwYWQgYmxvY2sKCjIwMTAtMTAtMTMgMDI6MjA6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgdW5yZWYgTlVMTCBjYXBzCgoyMDEwLTEwLTEzIDAyOjE3OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBpbnZhbGlkYXRlIGZ1bmN0aW9uCgkgIE1vcmUgc21hbGwgb3B0aW1pc2F0aW9ucywgcmVtb3ZlIHRoZSB1bm5lZWRlZCB2YWxpZCBib29sZWFuLgoJICBBZGQgZnVuY3Rpb24gdG8gaW52YWxpZGUgdGhlIGNhY2hlLgoJICBJbnZhbGlkYXRlIHRoZSBjYWNoZSBvbiB1bmxpbmsuCgoyMDEwLTEwLTEzIDAxOjM3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNtYWxsIGNsZWFudXAKCjIwMTAtMTAtMTMgMDE6MjU6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBwYWQgcHVzaCBjYWNoaW5nCgkgIEJ1aWxkIHRoZSBjYWNoZSB3aGlsZSB3ZSBwdXNoIGRhdGEuIFdoZW4gd2UgZG9uJ3QgaGF2ZSBhIGNhY2hlLCB3ZSBydW4gdGhlCgkgIHNsb3dwYXRoIGFuZCBjb2xsZWN0IGNhY2hlYWJsZSBwcm9wZXJ0aWVzLiBXaGVuIGFsbCBjb25kaXRpb25zIGFyZSBtZXQsIGtlZXAgdGhlCgkgIGNhY2hlZCBkYXRhIGFyb3VuZCBzbyB0aGF0IHdlIGNhbiBtb3JlIGVmZmljaWVudGx5IHB1c2ggZGF0YSBhcm91bmQuCgoyMDEwLTEwLTEyIDEyOjI5OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHByb3RvdHlwZSBvZiBwYWQgcHVzaCBjYWNoZQoJICBQcm90b3R5cGUgb2YgaG93IHdlIGNhbiBjYWNoZSB0aGUgcGVlciBhbmQgY2FwcyBmb3IgYSBwYWQgbGluay4KCjIwMTAtMTItMDMgMTI6MjM6MjcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBkb2NzOiBmaXggcHJldmlvdXMgZXh0cmFjdC5wbCBjb21taXQKCSAgTWFrZSBpdCBhbHNvIHdvcmsgaW4gdGhlIHNyY2Rpcj1idWlsZGRpciBjYXNlIGFnYWluLgoKMjAxMC0xMC0yMCAxMTo1ODowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGF2b2lkIHRhc2sgbG9jayBmb3IgZWFjaCBpdGVyYXRpb24KCSAgTWFrZSB0aGUgdGFzayBzdGF0ZSBhbiBhdG9taWMgdmFyaWFibGUgc28gdGhhdCB3ZSBjYW4gYXZvaWQgdGFraW5nIGFuZCByZWxlYXNpbmcKCSAgdGhlIHRhc2sgbG9jayBmb3IgZWFjaCBpdGVyYXRpb24uCgoyMDEwLTEyLTAzIDEwOjE4OjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSAgZG9jczogZml4IGV4YW1wbGUgbWF0Y2hpbmcgaW4gZXh0cmFjdC5wbAoJICBXaGVuIGJ1aWxkaW5nIHdpdGggJHNyY2RpciAhPSAkYnVpbGRkaXIgb3V0cHV0IHdvdWxkIGNvbnRhaW4gdGhlIGJ1aWxkZGlyIHBhdGguCgkgIFN0cmlwIHRoZSBwYXRoIHdoZW4gc2Nhbm5pbmcgdGhlIHhtbCBmb3IgdGhlIGV4YW1wbGUgbWFya2Vycy4KCjIwMTAtMTEtMTkgMTU6MDY6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHF1ZXJ5IGRvYyBpbXByb3ZlbWVudHMKCSAgTW9yZSB4cmVmcy4gTWVudGlvbmVkIHRoYXQgc29tZSBxdWVyaWVzIG5lZWQgYSBydW5uaW5nIHBpcGVsaW5lLgoKMjAxMC0xMS0xOSAxMTo0Mzo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBjbGFyaWZ5IGxpc3QgaXRlbSB0eXBlcyBpbiBjb21tZW50cwoKMjAxMC0xMS0xOSAxMDoyOTozNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBwYWR0ZW1wbGF0ZTogYWRkIHR3byBGSVhNRTAuMTE6IGNvbW1lbnRzCgoyMDEwLTExLTE5IDEwOjIzOjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGFsbG93IGRpc2FibGluYmcgdGhlIHRlbXBsYXRlIG5hbWUgY29uZm9ybWFuY2UgY2hlY2tzCgoyMDEwLTExLTE4IDE2OjMxOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IHRoZSBzdXBwbGllZCBjYXBzIG1heSBub3QgYmUgTlVMTAoJICBUaGVyZSBpcyBhIGVhcmxpZXIgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgY2hlY2suIEFsc28KCSAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0IGRvZXMgbm90IGhhdmUgc3VjaCBhIGNoZWNrLgoKMjAxMC0xMS0wMyAxNjozNzoxMCArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogUHJpbnQgc2luay1tZXNzYWdlIGV2ZW50cyBsaWtlIGEgbWVzc2FnZSBhbmQgdGhlIEdzdE1lc3NhZ2Ugc3RydWN0dXJlCgoyMDEwLTExLTAxIDE1OjMyOjQzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWV0YWRhdGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRlc2lnbi1kb2NzOiBhZGQgaHRtbCBvdXRwdXQgdXNpbmcgYXNjaWlkb2MKCSAgVW5pZnkgdGhlIGFkLWhvYyBtYXJrdXAgdG8gYmUgYXNjaWlkb2Mgc3R5bGUgaW4gbWFueSBwbGFjZXMuIEFkZCBhICJodG1sIiB0YXJnZXQKCSAgdG8gTWFrZWZpbGUgdG8gZ2VuZXJhdGUgdGhlIG91dHB1dC4KCjIwMTAtMTAtMTkgMTQ6Mjc6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBtb3JlIGRlZmF1bHQgbmFtZSBnZW5lcmF0aW9uIG1vcmUgZWZmaWNpZW50CgkgIFNhdmUgfjIwMDAgbWFsbG9jL21lbWNweS9mcmVlIHBhaXJzIGF0IHN0YXJ0dXAgYnkgcnVubmluZyB0b19sb3dlciBpbi1wbGFjZS4KCSAgQWxzbyBza2lwIHRoZSBudW1iZXJzIGFzIHdlIGNhbi4KCjIwMTAtMTAtMTggMTQ6NDU6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IHVzZSB0aGUgcGFyZW50X2NsYXNzIGZyb20gR19ERUZJTkVfVFlQRSBtYWNybyBhbmQgZHJvcCBleHRyYSBjb3B5CgoyMDEwLTEwLTIwIDE0OjI3OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IHVzZSBnX2ludGVybl9zdHJpbmcgZm9yIGludGVyZmFjZSBuYW1lcwoKMjAxMC0xMC0xOCAxMzoyOTo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYWxzbyBpbnRlcm4gdGhlIHN0YXRpYyBjYXBzCgoyMDEwLTEyLTAzIDAwOjAwOjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IG1ldGEtZGF0YSBjYW4gYmUgTlVMTAoKMjAxMC0xMi0wMiAxNjoyODo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggaGFuZGxpbmcgb2YgdGltZXpvbmVzCgkgIEZpeCByZXR1cm5pbmcgb2YgdGltZXpvbmVzIG9uIHN5c3RlbXMgd2l0aCBnZGF0ZXRpbWUKCSAgdG8gdXNlIGZsb2F0cyBvbiB0aGUgbWF0aCBleHByZXNzaW9uIHRvIGF2b2lkCgkgIHRydW5jYXRpbmcgdGhlIGZyYWN0aW9uYWwgcGFydC4KCSAgQWxzbyBhZGRzIGEgdGVzdCBmb3IgY292ZXJpbmcgdGhpcyBjYXNlLgoKMjAxMC0xMi0wMiAxOTo0NDo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogRG9uJ3QgYnJlYWsgQUJJCgkgIFRoZSBvcmRlciBvZiB0aGUgZmllbGQgd2FzIHdyb25nLCBhbmQgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBkaWRuJ3QKCSAgZW5kIHVwIGJlaW5nIHRoZSBzYW1lLgoKMjAxMC0xMS0yNSAxODo0ODowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBiYXNlc2luazogcmV3b3JrIHBvc2l0aW9uIHJlcG9ydGluZyBjb2RlCgkgIFVuaWZ5IHRoZSBkaWZmZXJlbnQgcG9zaXRpb24gcmVwb3J0aW5nIGNvZGUgcGF0aHMgdG8gbWFrZSBpdCBtb3JlCgkgIHVuZGVyc3RhbmRhYmxlLgoJICBVc2Ugc3RhcnRfdGltZSB0byBnZXQgbW9yZSBhY2N1cmF0ZSBwb3NpdGlvbiByZXBvcnRpbmcgaW4gcGF1c2VkLgoJICBGaXggdW5pdCB0ZXN0cyBmb3IgbW9yZSBhY2N1cmF0ZSByZXBvcnRpbmcuCgoyMDEwLTExLTI1IDE2OjA2OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcGVyZm9ybSB3YWl0X3ByZXJvbGwgaW4gYSB3aGlsZSBsb29wCgkgIFdlIG5lZWQgdG8gY29udGludWUgY2FsbGluZyB3YWl0X3ByZXJvbGwoKSBhcyBsb25nIGFzIHRoZSBuZWVkX3ByZXJvbGwgdmFyaWFibGUKCSAgaXMgdHJ1ZS4KCjIwMTAtMTEtMTcgMTY6NDY6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJldHVybiBpbW1lZGlhdGVseSBmb3IgLTEgY29udmVyc2lvbgoJICBXaGVuIHdlIGFyZSBhc2tlZCB0byBjb252ZXJ0IC0xLCB3ZSBjYW4gcmV0dXJuIGltbWVkaWF0ZWx5IHdpdGggYSAtMSByZXR1cm4KCSAgdmFsdWUuCgoyMDEwLTExLTE3IDE2OjQyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhIGNvbnZlcnQgcXVlcnkgY2FuIGhhdmUgYSAtMSBpbnB1dCB2YWx1ZQoJICBJdCBpcyBhbGxvd2VkIHRvIHBhc3MgLTEgdG8gdGhlIHNyY192YWwgZm9yIGEgY29udmVydC4KCjIwMTAtMTEtMTYgMTI6MjA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgYmFzZXNpbms6IGFsc28gcHJlcm9sbCBhZnRlciBhIGZsdXNoIHdpdGggYXN5bmM9ZmFsc2UKCSAgTWFrZSBzdXJlIHRvIHByZXJvbGwgYWZ0ZXIgYSBmbHVzaCBldmVuIHdoZW4gd2UgYXJlIGFzeW5jPWZhbHNlLgoJICBBZGQgdW5pdCB0ZXN0LgoJICBGaXhlcyAjNjM0OTY1CgoyMDEwLTExLTE1IDE4OjIwOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGltcHJvdmUgZG9jcyBhIGxpdHRsZS4KCjIwMTAtMTEtMTUgMTg6MTc6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGNoZWNrOiBsb2NrIHNyYyBzdGF0ZSB0byBhdm9pZCBlcnJvciBjYXNlcwoJICBMb2NrIHRoZSBzdGF0ZSBvZiB0aGUgc3JjIGVsZW1lbnQgb3IgZWxzZSB0aGUgcGlwZWxpbmUgbWlnaHQgZ28gaW50byB0aGUgZXJyb3IKCSAgc3RhdGUgd2hlbiB3ZSBzZXQgaXQgdG8gUEFVU0VEIGxhdGVyLgoKMjAxMC0xMS0xNSAxMjo0OTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogYXZvaWQgdXNpbmcgaW52YWxpZCBjbG9jayB0aW1lcwoJICBCZSBleHRyYSBjYXJlZnVsIHRvIG5vdCB1c2UgaW52YWxpZCBjbG9jayB0aW1lcyBidXQgZ2l2ZSBhIHdhcm5pbmcgaW5zdGVhZC4gVGhpcwoJICBzaG91bGQgbWFrZSB0aGluZ3Mgd29yayBiZXR0ZXIgd2l0aCBmYXVsdHkgY2xvY2sgaW1wbGVtZW50YXRpb25zLgoKMjAxMC0xMS0xMSAxMDo0MToxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGltcHJvdmUgc29tZSBjb21tZW50cyBhYm91dCB0aGUgemlnemFnIGludGVyc2VjdGlvbgoKMjAxMC0xMi0wMiAxMzowNDozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCB1bnVzZWQgc3ltYm9scyB0byBwcm9wZXIgc2VjdGlvbnMKCjIwMTAtMTItMDIgMTM6MDM6NTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgR3N0RGF0ZVRpbWUgc2VjdGlvbiBhbmQgdXBkYXRlIGl0IGZvciBsYXRlc3Qgc3ltYm9scwoKMjAxMC0xMC0xOSAxODowOTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogT25seSBjYWxsIHVwZGF0ZV9idWZmZXJpbmcgaWYgbmVlZGVkLgoJICB1cGRhdGVfYnVmZmVyaW5nIGlzIHNvIGJpZyBpdCB3aWxsIG5ldmVyIGJlIGlubGluZWQgKGFuZCBzaG91bGRuJ3QpLAoJICB3ZSB0aGVyZWZvcmUgbW92ZSB0aGUgY2hlY2sgb3V0c2lkZSBvZiBpdC4KCjIwMTAtMTAtMTkgMTc6NDU6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEF2b2lkIHJlLWNoZWNraW5nIG1hbnkgdGltZXMgd2hldGhlciBhbiBpdGVtIGlzIGEgYnVmZmVyCgkgIEF2b2lkcyBjYWxsaW5nIDYgdGltZXMgZ3N0X2J1ZmZlcl9nZXRfdHlwZSgpIGZvciBldmVyeSBpdGVtIGNvbWluZwoJICB0aHJvdWdoIHF1ZXVlMgoKMjAxMC0xMC0xOSAxNzo0Mzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVkdWNlIGFtb3VudCBvZiB0aW1lIGxvY2tzIGFyZSB0YWtlbgoKMjAxMC0xMC0xOSAxNzo0MjozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4dXAgZG9jdW1lbnRhdGlvbiBvZiBzb21lIHByb3BlcnRpZXMKCjIwMTAtMTAtMTkgMTc6NDA6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEF2b2lkIHVzZWxlc3Mgc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSBjYWxjdWxhdGlvbnMuCgkgICogQ2FjaGUgc3JjIGFuZCBzaW5rIHRpbWUKCSAgKiBVc2UgYSBib29sZWFuIHRvIGtub3duIHdoZXRoZXIgc3JjL3NpbmsgdGltZSBuZWVkcyB0byBiZSByZWNhbGN1bGF0ZWQKCSAgQXZvaWRzIDUwJSBvZiBjYWxscyB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKQoKMjAxMC0xMC0yMCAxNzo0MToyOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFJlLXVzaW5nIEdzdENsb2NrSUQgaW5zdGVhZCBvZiBjb25zdGFudGx5IHJlY3JlYXRpbmcgb25lCgkgIE1ha2VzIF9zaW5rX3dhaXRfY2xvY2sgYXQgbGVhc3QgMiB0aW1lcyBmYXN0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTc6NDA6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RjbG9jazogTmV3IEFQSSB0byByZS11c2UgYSBzaW5nbGUgc2hvdCBHc3RDbG9ja0lECgkgIEFQSTogZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTIwIDEzOjUyOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUGFzcyBhbG9uZyBtaW5pb2JqZWN0IHR5cGUgdGhyb3VnaCB2YXJpb3VzIGZ1bmN0aW9ucwoJICBBdm9pZHMgZG9pbmcgdXNlbGVzcyBHU1RfSVNfKgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTIwIDEzOjA4OjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogU3dpdGNoIGVuYWJsZV9sYXN0X2J1ZmZlciB0byBhbiBhdG9taWMgaW50CgkgIEF2b2lkcyBoYXZpbmcgdG8gdGFrZSBhIGxvY2sgdG8gcmVhZC93cml0ZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0xOSAxNTo1MzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFJlbW92ZSB1c2VsZXNzIGNoZWNrcyBmcm9tIGU0MDZmNwoJICBzcmNyZXN1bHQgd2FzIGJlaW5nIHJlY2hlY2tlZCBpbiBwbGFjZXMgaXQgY291bGRuJ3QgaGF2ZSBjaGFuZ2VkLgoJICBxdWV1ZSBsZXZlbCB3YXMgYmVpbmcgcmVjaGVja2VkIGluIHBsYWNlcyBpdCBjb3VsZG4ndCBoYXZlIGNoYW5nZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3ODAKCjIwMTAtMTAtMTMgMTM6NTA6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBnc3RkYXRhcXVldWU6IE9ubHkgZW1pdCBnX2NvbmRfc2lnbmFsIHdoZW4gbmVlZGVkCgkgIEtlZXAgdHJhY2sgb2Ygd2hpY2ggY29uZCB3ZSdyZSB3YWl0aW5nIGZvciBhbmQgb25seSBlbWl0IHdoZW4gbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc5CgoyMDEwLTEwLTIwIDE3OjEyOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogbW92ZSBnX3JldHVybl9pZl9mYWlsIHRvIHdoZXJlIGl0IGlzIG5lZWRlZAoKMjAxMC0xMS0wMyAxMToxNDowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICB2ZXJzaW9uOiBUYWtlIG5hbm8gdmVyc2lvbiBpbnRvIGFjY291bnQgaW4gR1NUX0NIRUNLX1ZFUlNJT04oKQoJICBJZiB0aGUgbmFubyBpcyA+IDAgdGhlIGN1cnJlbnQgdmVyc2lvbiBzaG91bGQgYmUgaGFuZGxlZCB0aGUgc2FtZSBhcwoJICBtaWNybyArIDEuCgoyMDEwLTExLTAxIDE2OjM0OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTZXQgdGhlIGV2ZW50IHNvdXJjZSBvYmplY3QgaWYgbm9uZSBpcyBzZXQgeWV0IGluIGdzdF9wYWRfcHVzaF9ldmVudCgpCgkgIE90aGVyd2lzZSB0aGUgc291cmNlIHdpbGwgc3RheSBhdCBOVUxMLCB0aGUgZXZlbnQgaXMgcGFzc2VkIHRvIHRoZQoJICBwZWVycGFkIHZpYSBnc3RfcGFkX3NlbmRfZXZlbnQoKSBhbmQgdGhlbiB0aGUgcGVlcnBhZCBpcyBzZXQgYXMKCSAgc291cmNlIG9mIHRoZSBldmVudCBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hdGluZyBwYWQuCgoyMDEwLTEwLTMxIDE4OjQ4OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVtb3ZlIGRlYWQgYXNzaWdubWVudCBhbmQgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTEwLTMxIDE4OjQ2OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVtb3ZlIGRlYWQgYXNzaWdubWVudCBhbmQgbW92ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbnRvIGlubmVyIGJsb2NrCgoyMDEwLTEwLTMxIDE4OjIzOjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogUmVtb3ZlIHJlZHVuZGFudCB2YXJpYWJsZQoJICBPdGhlciB0aGFuIHNhdmluZyBhbiBpbW1lbnNlIGFtb3VudCBvZiA0IGJ5dGVzIG9mIG1lbW9yeSB0aGlzCgkgIHByZXZlbnRzIGNsYW5nIGZyb20gY29tcGxhaW5pbmcgYW5kIGtlZXBzIHRoZSByaW5nIGJ1ZmZlciBzdGF0ZQoJICBpbiBhIHNpbmdsZSB2YXJpYWJsZSBpbnN0ZWFkIG9mIHR3by4KCjIwMTAtMTAtMjAgMTA6MTg6MTggKzAyMDAgIERhdmlkIEhveXQgPGRob3l0QGxsbmwuZ292PgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZ3N0dGFzazogU2V0IHRocmVhZCBuYW1lcyBvbiBXaW5kb3dzIHdpdGggTVNWQyBpZiBhIGRlYnVnZ2VyIGlzIGF0dGFjaGVkCgkgIEZpeGVzIGJ1ZyAjNjMyMTY4LgoKMjAxMC0xMC0xOSAxNTo1MjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIG1hY3JvczogRGVmaW5lIHJlc3RyaWN0IGtleXdvcmQgaWYgbm90IGF2YWlsYWJsZQoJICBUaGlzIGNoYW5nZSBhbHdheXMgZGVmaW5lcyB0aGUgcmVzdHJpY3Qga2V5d29yZCBpZiBhCgkgIG5vbi1DOTkgQyBjb21waWxlciBpcyB1c2VkLiBJbiB0aGUgY2FzZSBvZiBHQ0MgPj0gNAoJICBpdCB3aWxsIGJlIGRlZmluZWQgdG8gX19yZXN0cmljdF9fLCBpbiBhbGwgb3RoZXIKCSAgY2FzZXMgdG8gbm90aGluZy4gVGhpcyBhbGxvd3MgdG8gdXNlIHRoZSByZXN0cmljdAoJICBrZXl3b3JkIHVuY29uZGl0aW9uYWxseS4KCjIwMTAtMTItMDEgMjM6NTc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gPj0gMi4yMgoJICBTZWUgaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9SZWxlYXNlUGxhbm5pbmcvR0xpYlJlcXVpcmVtZW50CgoyMDEwLTEyLTAxIDIzOjU2OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMzEgPT09CgoyMDEwLTExLTMwIDE3OjQwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMQoKMjAxMC0xMS0yNyAxOToxMzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IGF2b2lkICd1bnVzZWQgYXJndW1lbnQnIHdhcm5pbmdzIGNhdXNlZCBieSBHU1RfQk9JTEVSUExBVEVfRlVMTAoJICBUaGUgdW51c2VkIGRhdGEgcGFyYW1ldGVyIGluIHRoZSBjbGFzc19pbml0IHRyYW1wb2xpbmUgZnVuY3Rpb24KCSAgc2VlbXMgdG8gY2F1c2Ugd2FybmluZ3Mgd2l0aCBzb21lIGMrKyBjb21waWxlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU4NjkKCjIwMTAtMTEtMDkgMjM6Mjc6MTcgLTAzMDAgIHJleW5hbGRvIDxyZXluYWxkb0BvcGVuZG90LmNsPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogc29tZSBzbWFsbCBmaXhlcyB0byB0aGUgcGx1Z2luIHdyaXRlcidzIGd1aWRlCgkgIEZpeCB3cm9uZ2x5IHBsYWNlZCBleGFtcGxlIGFuZCB3ZWlyZGx5IHBocmFzZWQgJ25vdGUnIGxhY2tpbmcgcHJvcGVyCgkgIGZvcm1hdHRpbmcuIEZpeCBtaXNzaW5nIGhpbnQgZm9yIGF1dG9nZW4uc2ggbG9jYXRpb24gYW5kIHJlcGhyYXNlCgkgICdidWlsdCBhbmQgaW5zdGFsbGVkJyBzZW50ZW5jZS4gRml4IHdyb25nbHkgcGhyYXNlZCBhbmQgcmVkdW5kYW50CgkgIHBhcmFncmFwaCBpbiBQV0cKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDkyMQoKMjAxMC0xMS0yNyAxMTowMjo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBtYW51YWw6IEltcHJvdmUgc3RhdGVzIGRvY3VtZW50YXRpb24KCSAgQmUgbW9yZSBleHBsaWNpdCBhYm91dCBiZWluZyBvbiBOVUxMIGJlZm9yZSB1bnJlZnMKCjIwMTAtMTEtMjAgMTQ6NTQ6MjMgLTA4MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEluY2x1ZGUgZXhwb3J0ZWQgcGFja2FnZXMgaW5mb3JtYXRpb24gaW4gR0lScwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1Mzg5CgoyMDEwLTExLTE4IDAwOjI5OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjUgcHJlLXJlbGVhc2UKCjIwMTAtMTEtMTggMDA6Mjk6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBmaXggY2FwcyBsZWFrIGluIGVsZW1lbnQgZmFjdG9yeSBsaXN0IHV0aWxpdHkgZnVuY3Rpb25zCgoyMDEwLTExLTE3IDIzOjU1OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vZGEucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vaHUucG86CgkqIHBvL3NrLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMS0xNyAwOTozOTozNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkYXRldGltZTogQWRkIF9mcm9tX3VuaXhfZXBvY2ggdmFyaWFudHMKCSAgQWRkcyAyIHZhcmlhbnRzIGZvciB0aGUgZ3N0X2RhdGVfdGltZV9mcm9tX3VuaXhfZXBvY2ggZnVuY3Rpb24sCgkgIG9uZSBmb3IgVVRDIGFuZCBhbm90aGVyIGZvciBsb2NhbCB0aW1lLgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaF91dGMKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX3VuaXhfZXBvY2hfbG9jYWxfdGltZQoJICBGaXhlcyAjNjUzMDMxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUwMzEKCjIwMTAtMTEtMDMgMTQ6MjE6MDIgKzAwMDAgIFZsYWRpbWlyIEVyZW1lZXYgPHdsMjc3NkBnbWFpbC5jb20+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgbWF0aC1jb21wYXQ6IGRvbid0IHJlLWRlZmluZSBfVVNFX01BVEhfREVGSU5FUyBpZiBhbHJlYWR5IGRlZmluZWQKCSAgVGhpcyBhdm9pZHMgY29tcGlsZXIgd2FybmluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzM4ODYKCjIwMTAtMTEtMDEgMTY6MDY6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuNCBwcmUtcmVsZWFzZQoKMjAxMC0xMS0wMSAxNTozNjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTEwLTMxIDIwOjE3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgbGVhayBwYWQgcmVmIGluIHB1bGwgbW9kZSB3aGVuIGZsdXNoaW5nCgkgIEZpeCBwYWQgbGVhayB3aGVuIHF1ZXVlMiBpcyBmbHVzaGluZyBvciBiZWluZyBzaHV0IGRvd24uCgoyMDEwLTEwLTMxIDE5OjQ3OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZG9uJ3Qgc2VuZCBzZWVrcyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZmlsZSB1cHN0cmVhbSBpbiBwdWxsIG1vZGUKCSAgSWYgZG93bnN0cmVhbSBpcyBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLCBzaG9ydC1jaXJjdWl0IGFueSBwdWxscyBiZXlvbmQKCSAgdGhlIGVuZCBvZiB0aGUgZmlsZSBhbmQgcmV0dXJuIEZMT1dfVU5FWFBFQ1RFRCBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mCgkgIHNlbmRpbmcgYSBzZWVrIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlIHVwc3RyZWFtLCBzaW5jZSB0aGlzIG1pZ2h0CgkgIGNvbmZ1c2UgdXBzdHJlYW0gZWxlbWVudHMgKGFuZC9vciBodHRwIHNlcnZlcnMsIGZvciBleGFtcGxlKS4gRml4ZXMKCSAgcGxheWJhY2sgb2YgYXBwbGUgdHJhaWxlcnMgaW4gdG90ZW0gYW5kIHlvdXR1YmUvaHRtbDUgY2xpcHMgaW4KCSAgV2Via2l0R1RLKy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjk3NwoKMjAxMC0xMC0yOCAyMzoyODoxNSArMTAwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5AZDE0bi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogdXNlIGlucHV0IHBvc2l0aW9uIGZvciBxdWVyaWVzIGlmIHdlIGhhdmUgbm8gb3V0cHV0IHBvc2l0aW9uCgoyMDEwLTEwLTI4IDEzOjI5OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZXZlcnNlIG5lZ290aWF0aW9uCgkgIFdoZW4gdGhlIGRvd25zdHJlYW0gZWxlbWVudCBzdWdnZXN0cyBhIG5ldyBmb3JtYXQsIHBhc3MgdGhlIHN1Z2dlc3Rpb24KCSAgdXBzdHJlYW0gaWYgd2UgY2FuJ3QgY29udmVydCB0byBpdC4KCSAgRml4ZXMgIzYzMzE0NwoKMjAxMC0xMC0yNyAxODoxMjozNiArMDIwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCB0cmFja2luZyBvZiB1bmxpbmtlZCBzdHJlYW1zLgoJICAzMzA4MmViOWU0MmM1MmU0ZGY4NDgxOTU5NDZmMWI3YmJjZTc2OGM1IGludHJvZHVjZWQgYSBidWcKCSAgcHJldmVudGluZyBzcGFyc2UgdW5saW5rZWQgc3RyZWFtcyBmcm9tIGFkdmFuY2luZyBwcm9wZXJseSwKCSAgbGVhZGluZyB0byB0aGUgcXVldWUgYmxvY2tpbmcuCgkgIEZpeGVzOiAjNjMzMTc2CgoyMDEwLTEwLTI3IDE4OjExOjM1ICswMjAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBBZGQgYSBtdWx0aXF1ZXVlIHNwYXJzZSBzdHJlYW1zIHRlc3QKCjIwMTAtMTAtMjcgMTM6MTY6MTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2JiZDcwOCB0byAwMTFiY2M4CgoyMDEwLTEwLTIyIDE3OjM1OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjMgcHJlLXJlbGVhc2UKCjIwMTAtMTAtMTggMTc6NDI6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBjb25zdC1pZnkgYnl0ZSByZWFkZXIgYXJndW1lbnQgaW4gcGVlay9zY2FuIEFQSQoJICBCZWNhdXNlIHdlIGNhbi4KCjIwMTAtMTAtMjIgMTE6NTI6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IEZpeCA2NGJpdCBjb25zdGFudAoJICBCYXNpY2FsbHkgd2UncmUgbm90IG1lYW50IHRvIHB1dCBhbnl0aGluZyBtb3JlIGNvbXBsZXggdGhhbiBzaW1wbGUgbnVtYmVycywKCSAgZHVlIHRvIHRoZSBkZWZpbml0aW9uIG9mIEdfR1VJTlQ2NF9DT05TVEFOVDoKCSAgR19HVUlOVDY0X0NPTlNUQU5UKHZhbCkJKHZhbCMjVUwpCgkgIFdoaWNoIHByZXZpb3VzbHkgcmVzdWx0ZWQgaW4gLi4uLiAxIDw8IDQ5VUwKCjIwMTAtMTAtMTggMTA6NDY6NTkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVjb21wdXRlIGNvcnJlY3QgcnVubmluZyB0aW1lIGZvciBidWZmZXIgZW5kaW5nIGZsdXNoaW5nIHN0ZXAKCSAgUHJldmVudHMgZGVsYXlpbmcvaGFuZ2luZyB3aGVuIHJlc3VtaW5nIFBMQVlJTkcuCgkgIEZpeGVzICM2MzI0MzMuCgoyMDEwLTEwLTE2IDE5OjE5OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgZG9jczogZml4IG1pc2MuIGd0ay1kb2Mgd2FybmluZ3MgaW4gbGlicwoJICAoZm9yIGd0ay1kb2MgMS4xNSkKCjIwMTAtMTAtMTYgMTg6MjY6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgUmV2ZXJ0ICJsaWJzL2dzdC9kYXRhcXVldWU6IERvY3VtZW50IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgwNzI3YzExNzcwMzUwN2Y3OTBhODZiMDk2MmFiM2Q5MTVlNWE0OTEuCgkgIFRoaXMgZG9lc24ndCBtYWtlIHNlbnNlLiBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpIGlzIGFscmVhZHkKCSAgZG9jdW1lbnRlZCBhYm92ZS4gQW5kIHdlIG5lZWQgdGhlIGRvYyBibHVyYiBmb3IgX25ldygpIGhlcmUuCgoyMDEwLTEwLTE2IDE3OjAwOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IGZsZXNoIG91dCByZWxlYXNlIGluc3RydWN0aW9ucyBhIGJpdCBtb3JlCgoyMDEwLTEwLTE2IDE2OjUzOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2NzOiBhZGQgc29tZSBndGstZG9jIFNpbmNlOiBtYXJrZXJzCgkgIEFkZCBzb21lIGd0ay1kb2MgU2luY2U6IG1hcmtlcnMsIGZpeCBvbmUgU2luY2U6IG1hcmtlciwKCSAgZml4IHR5cG8uCgoyMDEwLTEwLTE2IDAwOjI1OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuMiBwcmUtcmVsZWFzZQoKMjAxMC0xMC0xNiAwMDoxNDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lcy5wbzoKCSogcG8vZnIucG86CgkqIHBvL2x0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMTAtMTUgMTk6NDU6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHVzZWZ1bCBmYWN0b3J5IG5hbWVzIGZvciB1cmktaGFuZGxlcnMgb3V0cHV0CgkgIEZpeGVzICM2MzIyMzYuCgoyMDEwLTEwLTE0IDEyOjMxOjMyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWE2NjhiZiB0byA3YmJkNzA4CgoyMDEwLTEwLTEyIDE1OjEzOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZGF0ZXRpbWU6IFVzZSBzZWNvbmRzIGFzIGRvdWJsZQoJICBVc2Ugc2Vjb25kcyBhcyBkb3VibGUgdG8gbWFrZSBBUEkgc2ltaWxhciB0byBnbGliJ3MKCSAgZ2RhdGV0aW1lLiBBbHNvIG1vdmUgdGltZXpvbmUgcGFyYW1ldGVyIHRvIHRoZQoJICBmaXJzdCBwb3NpdGlvbiwganVzdCBsaWtlIGdsaWIncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODQwOAoKMjAxMC0xMC0xMSAxNjoxNToyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IE1vdmUgZG9jIG91dHNpZGUgdGhlIGlmZGVmcwoJICBNb3ZlIHRoZSBkYXRldGltZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBmdW5jdGlvbnMgb3V0c2lkZSB0aGUKCSAgaWZkZWZzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0MDgKCjIwMTAtMDktMjcgMTk6MzU6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogVXNlIEdEYXRlVGltZSBpZiBhdmFpbGFibGUKCSAgVXNlIEdEYXRlVGltZSBpbnRlcm5hbGx5IG9uIEdzdERhdGVUaW1lIGlmIGdsaWIgYWxyZWFkeQoJICBwcm92aWRlcyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODQwOAoKMjAxMC0wOS0yOCAxNzo0NjoyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICBnbGliLXByaXZhdGU6IEFkZCBpbmNsdWRlIHByb3RlY3Rpb24gbWFjcm8KCjIwMTAtMTAtMTMgMTI6NTE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBndWFyZCB0byBidWZmZXJfc2V0X2NhcHMoKSB0aGF0IGNoZWNrcyBpZiBjYXBzIGFyZSBzaW1wbGUKCjIwMTAtMTAtMTMgMTU6NTY6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogYWRkIGEgbWlzc2luZyBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTCgoyMDA5LTEwLTAxIDExOjE0OjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgbGlicy9nc3QvZGF0YXF1ZXVlOiBEb2N1bWVudCBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbAoKMjAwOS0wOS0yOCAxMzozNTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGJhc2UvZ3N0ZGF0YXF1ZXVlOiBpbmxpbmUgc29tZSBmdW5jdGlvbnMsIGdldCBsZXZlbHMgd2l0aCBtZW1jcHkuCgoyMDEwLTEwLTEzIDExOjU0OjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgdW51c2VkIGFyZ3VtZW50IGZyb20gZmluZF9yYW5nZSgpCgoyMDEwLTEwLTEzIDExOjUyOjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBjbGVhbnVwIGdldF9wcm9wZXJ0eS9zZXRfcHJvcGVydHkKCjIwMTAtMTAtMTIgMTg6NDg6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGF2b2lkIGdfY29uZF9zaWduYWwgd2hlbiB3ZSBjYW4KCSAgS2VlcCB0cmFjayBvZiB3aGF0IGNvbmQgd2UgYXJlIHdhaXRpbmcgb24gYW5kIG9ubHkgc2lnbmFsIHdoZW4gc29tZSBvdGhlciB0aHJlYWQKCSAgaXMgd2FpdGluZy4KCjIwMTAtMTAtMTEgMTk6Mjc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogYXZvaWQgZHVwbGljYXRlIHR5cGUgY2hlY2sgd2hlbiBmcmVlaW5nIG1pbmlvYmplY3QKCSAgZ3N0X21pbmlfb2JqZWN0X3VucmVmKCkgaGFzIGd1YXJkcyB0aGF0IGNoZWNrIHRoZSB0eXBlIGFscmVhZHksIHNvCgkgIHdlIGRvbid0IHJlYWxseSBuZWVkIHRvIHJlLWNoZWNrIGl0IGhlcmUgYWdhaW4gd2hpbGUgZ2V0dGluZyB0aGUKCSAgY2xhc3MgKHRoZXJlJ3Mgbm90IHJlYWxseSBtdWNoIHBvaW50IHRvIHRoYXQgYW55d2F5LCBzaW5jZSB3ZSBkb24ndAoJICBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBnZXRfY2xhc3MsIHNvIHdlJ2QgY3Jhc2ggYW55d2F5IGlmCgkgIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggYSBtaW5pIG9iamVjdCwgdGhlIG9ubHkgcXVlc3Rpb24gd291bGQKCSAgYmUgaWYgdGhlcmUnZCBiZSBhIHdhcm5pbmcgYmVmb3JlIHRoZSBjcmFzaCBvciBub3QpLgoKMjAxMC0xMC0xMSAxODo1NToxNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IERpcmVjdGx5IGluY3JlYXRlIG1pbmlfb2JqZWN0IGluIG1pbmlfb2JqZWN0X2ZyZWUoKQoJICBTcGVlZHMgdXAgbWluaV9vYmplY3RfdW5yZWYgYnkgMjUlIGJ5IGF2b2lkaW5nIHRoZSB0eXBlY2hlY2sgd2hpY2gKCSAgaXMgYXZvaWRhYmxlIGhlcmUgc2luY2UgaXQgaXMgb25seSBjYWxsZWQgb24gZXhpc3RpbmcgbWluaW9iamVjdHMuCgoyMDEwLTEwLTExIDE4OjMwOjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogUmVtb3ZlIGNvbmZ1c2luZyBERUJVR19SRUZDT1VOVCBkZWZpbmUKCSAgdGhlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIHdpbGwgYmUgc2lsZW5jZWQgYXV0b21hdGljYWxseSBpZiBkZWJ1Z2dpbmcKCSAgaXMgZGlzYWJsZWQsIGFuZCB0aGUgdHlwZSBjaGVjayBpcyBhY3R1YWxseSByZXF1aXJlZC4KCjIwMTAtMTAtMTEgMTg6MTA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbGVhc2UgcXVldWUyIGxvY2sgYmVmb3JlIG5vdGlmeQoJICBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBob2xkIHRoZSBsb2NrIHdoZW4gd2Ugbm90aWZ5IHRoZSB0ZW1wLWxvY2F0aW9uCgkgIHByb3BlcnR5LAoJICBGaXhlcyAjNjMxODUzCgoyMDEwLTEwLTExIDE2OjQ1OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogYWRkIGRlYnVnIHN0YXRlbWVudAoKMjAxMC0xMC0xMSAxMDoyNzo1MiArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogYXBwbHkgc2luayBzZWdtZW50IG9uIHRoZSBzb3VyY2UgaWYgcXVldWUgaXMgZW1wdHkKCSAgQXBwbHkgdGhlIHNpbmsgc2VnbWVudCBvbiB0aGUgc291cmNlIGltbWVkaWF0bHkgd2hlbiBpdCBpcyByZWNlaXZlZAoJICBhbmQgdGhlcmUgaXMgbm90aGluZyBpbiB0aGUgcXVldWUuCgkgIFNvbHZlcyAjNDgyMTQ3CgoyMDEwLTEwLTExIDE1OjUxOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkb2N1bWVudGF0aW9uIGZvciBpdGVyYXRlX3NvdXJjZXMKCjIwMTAtMTAtMTEgMTY6NDE6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2NzOiB1c2UgdGhlIGd0ay1kb2Mgc2hvcnRjdXRzIHRvIGdldCBjb2xvdXJlZCBhbmQgeHJlZmVkIGV4YW1wbGUKCjIwMTAtMTAtMTEgMTQ6MjA6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEluaXRpYWxpemUgdmFyaWFibGUKCjIwMTAtMTAtMTEgMTA6NTY6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSW1wcm92ZSB0cmFja2luZyBvZiBzb3VyY2UgZWxlbWVudHMKCSAgVHJhY2sgZWxlbWVudHMgdGFnZ2VkIHdpdGggdGhlIElTX1NPVVJDRSBmbGFnIGluIGEgc2ltaWxhciB3YXkgd2UgdHJhY2sgdGhlIHNpbmsKCSAgZWxlbWVudHMuIFRoaXMgYWxsb3dzIHVzIHRvIGVmZmljaWVudGx5IGRpc3BhdGNoIGRvd25zdHJlYW0gZXZlbnRzIHRvIHRoZSByaWdodAoJICBlbGVtZW50cy4KCjIwMTAtMTAtMTEgMTA6NTU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdGFnIGFzIGEgU09VUkNFIGVsZW1lbnQKCSAgVGFnIGFsbCBlbGVtZW50cyBkZXJpdmluZyBmcm9tIHRoZSBiYXNlc3JjIHdpdGggdGhlIElTX1NPVVJDRSBmbGFnLgoKMjAxMC0xMC0xMSAxMDo1Mzo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGFkZCBJU19TT1VSQ0UgZmxhZwoJICBBZGQgdGhlIEdTVF9FTEVNRU5UX0lTX1NPVVJDRSBmbGFnIHNvIHRoYXQgd2UgY2FuIHRhZyBzb3VyY2UgZWxlbWVudHMgbGlrZSB3ZQoJICBjYW4gd2l0aCBzaW5rIGVsZW1lbnRzLgoKMjAxMC0xMC0wOSAxNDoxODo0NCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDxvZ2cuay5vZ2cua0Bnb29nbGVtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZ19tYXBwZWRfZmlsZV91bnJlZiBleGlzdHMgYWxyZWFkeSBzaW5jZSBHTGliIDIuMjEuMwoKMjAxMC0xMC0xMCAxODoxNDo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVwb3J0IHRoZSBvdXRwdXQgcG9zaXRpb24gb24gUE9TSVRJT04gcXVlcmllcyBvbiB0aGUgc3JjcGFkCgkgIFRoZXJlIGNhbiBiZSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBpbnB1dCBhbmQgb3V0cHV0IGxhc3Rfc3RvcC4KCSAgRml4ZXMgYnVnICM2Mjk0MTAuCgoyMDEwLTEwLTA4IDEyOjQzOjIwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzRhOGFkYyB0byA1YTY2OGJmCgoyMDEwLTEwLTA4IDEyOjU0OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgYW5kIHNpbXBsaWZ5IGNvZGUKCSAgb2xkaWQgd2FzIG9ubHkgdXNlZCB3aGVuIHdlIHdlcmUgZG9pbmcgbXVsdGlwbGUgcG9wcyBwZXIgbG9vcC4KCjIwMTAtMTAtMDggMTI6NTA6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ZTNjOWJmIHRvIGM0YThhZGMKCjIwMTAtMTAtMDggMTI6NDg6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIG1pc3NpbmcgZmlsZQoKMjAxMC0xMC0wOCAxMjoxODoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIHVuY2hlY2tlZCB2YXJpYW50cyBvZiB0aGUgd3JpdGluZyBmdW5jdGlvbnMKCSAgVGhlc2UgZG9uJ3QgY2hlY2sgaWYgdGhlcmUncyBlbm91Z2ggZnJlZSBzcGFjZSBhdmFpbGFibGUgYW5kIGFyZQoJICBhdmFpbGFibGUgYXMgaW5saW5lIGZ1bmN0aW9ucyBvbmx5LgoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50OF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDE2X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MTZfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQyNF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDI0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MzJfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQzMl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50NjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50OF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQxNl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQxNl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQyNF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQyNF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQ2NF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0MzJfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0NjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9kYXRhX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9maWxsX3VuY2hlY2tlZAoKMjAxMC0xMC0wOCAwOTozNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBjb250cm9sbGVyLCBkYXRhcHJvdG9jb2w6IG1ha2UgcHVibGljIGVudW0gX2dldF90eXBlKCkgZnVuY3Rpb25zIHRocmVhZC1zYWZlCgkgIE5vdCB0aGF0IGl0IGlzIGxpa2VseSB0byBtYXR0ZXIgaW4gcHJhY3RpY2UsIGJ1dCBzaW5jZSB0aGVzZSBhcmUgcHVibGljCgkgIEFQSSB0aGV5IHNob3VsZCBwcm9iYWJseSBiZSB0aHJlYWQtc2FmZS4KCjIwMTAtMTAtMDggMDA6Mzg6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgZGF0YXByb3RvY29sLCBsZm9jb250cm9sc291cmNlOiBmaXggZW51bSB2YWx1ZSBuYW1lIGluIGVudW1zIHRoYXQgYXJlIHB1YmxpYyBBUEkKCSAgU28gcnVuLXRpbWUgYmluZGluZ3MgY2FuIGludHJvc3BlY3QgdGhlIG5hbWVzIGNvcnJlY3RseSAod2UgYWJ1c2UgdGhpcwoJICBmaWVsZCBhcyBkZXNjcmlwdGlvbiBmaWVsZCBvbmx5IGluIGVsZW1lbnRzLCBub3QgZm9yIHB1YmxpYyBBUEkKCSAgKHdoZXJlIHRoZSBkZXNjcmlwdGlvbiBiZWxvbmdzIGludG8gdGhlIGd0ay1kb2MgY2h1bmspLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5OTQ2CgoyMDEwLTEwLTA4IDA5OjQ3OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBGaXggcG9zc2libGUgaW5maW5pdGUgbG9vcCBjYXVzZWQgYnkgYW4gb3ZlcmZsb3cKCjIwMTAtMTAtMDcgMTg6NDY6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50czogbWlub3IgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgd2hlbiBkb2luZyBnX29iamVjdF9ub3RpZnkoKSBmb3IgdGhlICJsYXN0LW1lc3NhZ2UiIHByb3BlcnR5CgkgIE1ha2Ugc3VyZSBwcm9wZXJ0eSBuYW1lcyBwYXNzZWQgdG8gZ19vYmplY3Rfbm90aWZ5KCkgYXJlIGluIHRoZSBjYW5vbmljYWwgZm9ybQoJICAoaWUuICJsYXN0LW1lc3NhZ2UiIG5vdCAibGFzdF9tZXNzYWdlIiksIHNvIHRoYXQgZ19wYXJhbV9zcGVjX3Bvb2xfbG9va3VwKCkKCSAgZG9lc24ndCBoYXZlIHRvIGRvIHN0cmR1cC9jYW5vbmljYWxpemUvZnJlZSBmb3IgZXZlcnkgc2luZ2xlIG5vdGlmeSBjYWxsLgoJICBUaGlzIG9ubHkgYXBwbGllcyB3aGVuIGJ1aWxkaW5nIGFnYWluc3Qgb2xkZXIgR0xpYiB2ZXJzaW9ucyAoPCAyLjI2KS4KCjIwMTAtMTAtMDcgMTg6Mjc6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIGZha2VzaW5rOiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgYW5kIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3Igb2xkIEdMaWIgdmVyc2lvbnMgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNiwgYW5kIGFsc28gcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBnX29iamVjdF9ub3RpZnkoKSB0aHJlYWQtCgkgIHNhZmV0eSBpc3N1ZXMgd2l0aCBvbGRlciBHTGliIHZlcnNpb25zIGlmIGl0J3Mgbm90IG5lZWRlZCBhbnkgbW9yZS4KCjIwMTAtMTAtMDcgMTg6MjE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNi4KCjIwMTAtMTAtMDcgMTg6MTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LgoKMjAxMC0xMC0wNyAxNzo1MzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBhbmQgcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBvbGQgR0xpYiB2ZXJzaW9ucyBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LCBhbmQgYWxzbyByZW1vdmUgd29yay1hcm91bmQgZm9yIGdfb2JqZWN0X25vdGlmeSgpIHRocmVhZC0KCSAgc2FmZXR5IGlzc3VlcyB3aXRoIG9sZGVyIEdMaWIgdmVyc2lvbnMgaWYgaXQncyBub3QgbmVlZGVkIGFueSBtb3JlLgoKMjAxMC0xMC0wNyAxNzoyMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiB1c2UgbmV3IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGZvciBjYXBzIG5vdGlmaWVzIGlmIGF2YWlsYWJsZQoJICBJZiB3ZSdyZSBidWlsZGluZyBhZ2FpbnN0IEdMaWIgPj0gMi4yNi4wLCB3ZSBjYW4gdXNlIHRoZSBtb3JlIGVmZmljaWVudAoJICBnX29iamVjdF9ub3RpZnlfYnlfY2FwcygpLCB3aGljaCBhdm9pZHMgdGhlIHBhcmFtIHNwZWMgbG9va3VwLgoKMjAxMC0xMC0wNyAxNjoyNzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSB1bm5lY2Vzc2FyeSBnX29iamVjdF9ub3RpZnkoKSBjYWxsCgkgIEdPYmplY3Qgd2lsbCBkbyB0aGF0IGZvciB1cyB3aGVuIGdfb2JqZWN0X3NldCooKSBpcyBjYWxsZWQuCgoyMDEwLTEwLTA3IDE5OjE4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiB1cGRhdGUgcW9zIGRlc2lnbiBkb2MKCSAgRml4IHNvbWUgdHlwb3MuCgkgIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgcXVhbGl0eSBmaWVsZCBmb3IgdmlkZW8gZGVjb2RlcnMgdG8gc29tZXRoaW5nIHRoYXQKCSAgbWFrZXMgbW9yZSBzZW5zZS4KCjIwMTAtMTAtMDUgMTc6MDI6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gdGVtcCBkaXJlY3RvcmllcyB0byBDUlVGVF9ESVJTCgoyMDEwLTEwLTA1IDE1OjA1OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiB1c2UgbWF0aC1jb21wYXQuaCBmb3IgTV9QSQoKMjAxMC0xMC0wNSAxNDo0NTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiByZW1vdmUgcmFuZG9tIE1TVkMgY29tcGF0aWJpbGl0eSBkZWZpbmUgZm9yIE1fUEkgdGhhdCBkb2Vzbid0IGJlbG9uZyBoZXJlCgkgIENvZGUgdGhhdCBuZWVkcyB0aGlzIHNob3VsZCBpbmNsdWRlIGdzdC9tYXRoLWNvbXBhdC5oIG9yIHVzZSBHX1BJLgoKMjAxMC0xMC0wNSAxNDoxNjoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgZ3N0OiBhZGQgbWF0aC1jb21wYXQuaCBoZWFkZXIKCSAgQWRkIG1pbmltYWwgbWF0aC1jb21wYXRoLmggaGVhZGVyIHdoZXJlIHdlIGNhbiBkZWZpbmUgZmFsbGJhY2sKCSAgdmVyc2lvbnMgZm9yIG1pc2NlbGxhbmVvdXMgbWF0aCBmdW5jdGlvbnMgdGhhdCBhcmVuJ3QgYWx3YXlzCgkgIGF2YWlsYWJsZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byBkdXBsaWNhdGUgdGhpcyBpbiBwbHVnaW5zLgoJICBUaGUgaGVhZGVyIGlzIG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LCBzbyBuZWVkcyB0byBiZQoJICBpbmNsdWRlZCBleHBsaWNpdGx5IGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA4MDIKCjIwMTAtMTAtMDUgMTE6NDc6NTkgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgdG9vbHM6IGZpeCBwYXJzaW5nIG9mIHRpbWVzdGFtcCBpbiBnc3QtcGxvdC10aW1lbGluZQoKMjAxMC0wOS0yNSAxNDoyNDo0NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgdGFrZSBwcmVyb2xsLWxvY2sgaW4gZ2V0X3Byb3BlcnR5CgkgIFVzZSBhdG9taWMgb3BzIHRvIHJlYWQgYW5kIHdyaXRlIG1vcmUgcHJvcGVydGllcy4gVGFraW5nIHRoZSBwcmVyb2xsIGxvY2sgaW4gZ2V0X3Byb3BlcnR5CgkgIGNhbiBsb2NrIHVwIGFwcGxpY2F0aW9ucyByZWFkaW5nIHRoZSBwcm9wZXJ0eSBkdXJpbmcgcHJlcm9sbC4KCjIwMTAtMTAtMDIgMTg6MTE6MzIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBhIGZpeG1lIGZvciAwLjExCgoyMDEwLTEwLTA0IDE1OjQ5OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZm9ybWF0IG5lZ2F0aXZlIHZhbHVlcyBiZXR0ZXIKCSAgRm9ybWF0IG5lZ2F0aXZlIHZhbHVlcyBwcm9wZXJseSBpbiB0aGUgZGVidWcgbG9nLgoKMjAxMC0xMC0wMyAyMzo0MToyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJICBiaXRyZWFkZXI6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgkgIGdjYyBkb2Vzbid0IG5vdGljZSB0aGF0IHRoZSBjaGVjayBhc3NlcnRpb24gbWFjcm9zIHdpbGwgYWJvcnQKCSAgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIHRlc3RzLgoKMjAxMC0xMC0wMyAyMzozMjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBpbmxpbmUgdmFyaWFudHMgb2YgYWxsIGltcG9ydGFudCBmdW5jdGlvbnMKCjIwMTAtMTAtMDMgMTU6Mjc6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJICBiaXRyZWFkZXI6IEFkZCBpbmxpbmVkIGFuZCB1bmNoZWNrZWQgdmVyc2lvbnMgb2YgdGhlIGltcG9ydGFudCBmdW5jdGlvbnMKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9za2lwX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3NraXBfdG9fYnl0ZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50MTZfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDMyX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQ2NF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50OF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDE2X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50MzJfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQ2NF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDhfdW5jaGVja2VkCgkgIFRoaXMgYWxvbmUgbWFrZXMgZmxhY3BhcnNlIGFib3V0IDMgdGltZXMgZmFzdGVyLgoKMjAxMC0xMC0wMyAxNDo1OTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBndWFyZHMgdG8gdGhlIGlubGluZWQgZ2V0X3Bvcy9nZXRfcmVtYWluaW5nL2dldF9zaXplL2V0YyBmdW5jdGlvbnMKCjIwMTAtMTAtMDMgMTQ6MjQ6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSAgYml0cmVhZGVyOiBPcHRpbWl6ZSBwZWVrX2JpdHMvZ2V0X2JpdHMgYSBiaXQKCSAgVXNlIGxvY2FsIHZhcmlhYmxlcyBpbnN0ZWFkIG9mIGRlcmVmZXJlbmNpbmcgdGhlIGJpdHJlYWRlcgoJICBwb2ludGVyIGFsbCB0aGUgdGltZSBhbmQgZG9uJ3QgY29weSB0aGUgcmVhZGVyIGZvciBwZWVrX2JpdHMuCgoyMDEwLTA5LTI3IDE5OjI5OjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBzdHJpbmcgc2VyaWFsaXphdGlvbgoJICBDb3JyZWN0bHkgc2VyaWFsaXplIHR6b2Zmc2V0IGFzIGEgZ3N0dmFsdWUKCjIwMTAtMDktMjQgMTI6MjI6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGFkanVzdF90aW1lKCkKCSAgQWRkIHNvbWUgbW9yZSBjb21tZW50cy4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGVuZCB1cCB3aXRoIG5lZ2F0aXZlIHRpbWVzdGFtcHMuCgoyMDEwLTA1LTI2IDIwOjI5OjIyICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW5kZXJkZWxheSBuZWVkcyB0byBiZSBzdWJ0cmFjdGVkIGluIGFkanVzdF90aW1lKCkKCSAgbGF0ZW5jeSBpcyBhbHJlYWR5IHNpbmstbGF0ZW5jeSArIHJlbmRlci1kZWxheSwgYW5kIGhlcmUgd2Ugb25seQoJICB3YW50IHRvIGRlYWwgd2l0aCB0aGUgc2luay1sYXRlbmN5LgoJICBGaXhlcyAjNjMwNDM2CgoyMDEwLTA5LTI0IDAwOjEzOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSAgd2luMzI6IGRlZmluZSBHU1RfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FIGluIHdpbjMyIGNvbmZpZy5oIGFzIHdlbGwKCjIwMTAtMDktMjMgMjA6NTc6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDktMjMgMjA6NDg6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IEdTVF9QQVJBTV9NVVRBQkxFXyogcHJvcGVydHkgZmxhZ3MKCjIwMTAtMDUtMDQgMDk6MzY6NDMgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBNYWtlIGEgV0FSTklORyBpbnRvIGEgREVCVUcgc3RhdGVtZW50CgkgIEZpeGVzIGJ1ZyAjNjMwNDM3LgoKMjAxMC0wMS0xMiAxNzoxMDo1OSArMDEwMCAgVHJvbmQgQW5kZXJzZW4gPHRyb25kLmFuZGVyc2VuQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZml4IHJhY3kgc2h1dGRvd24gY2xvY2sgaWQgbGVhawoJICBDbG9jayBJRHMgd2VyZSBsZWFrZWQgaWYgdGhlIGNsb2NrIGdvdCBkaXNwb3NlZCBiZWZvcmUgdGhlIHdvcmtlciB0aHJlYWQKCSAgZ290IGEgY2hhbmNlIHRvIHJlYXAgdW5zY2hlZHVsZWQgZW50cmllcy4KCSAgRml4ZXMgYnVnICM2MzA0MzkuCgoyMDEwLTA5LTIzIDE4OjE4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGF2b2lkIHVzZWxlc3MgbWVtY3B5CgkgIEJlY2F1c2Ugb2YgdGhlIGF3a3dhcmQgcmVmY291bnRpbmcgaW4gcHJlcGFyZV9vdXRwdXRfYnVmZmVyLCB3ZSBtaWdodCBlbmQgdXAKCSAgd2l0aCB3cml0YWJsZSBidWZmZXJzIHRoYXQgcG9pbnQgdG8gdGhlIHNhbWUgZGF0YS4gQ2hlY2sgZm9yIHRob3NlIGNhc2VzIHNvIHRoYXQKCSAgd2UgYXZvaWQgYSB1c2VsZXNzIG1lbWNweSBhbmQga2VlcCB2YWxncmluZCBxdWlldC4KCSAgRml4ZXMgIzYyODE3NgoKMjAxMC0wOS0yMyAxNDozNzo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZml4ICdtYWtlIGNoZWNrJyBidWlsZCBmb3Igc2V0dXBzIHdoZXJlIG5vIGMrKyBjb21waWxlciBpcyBhdmFpbGFibGUKCSAgT25seSB0cnkgdG8gYnVpbGQgKHBzZXVkby0pQysrIHVuaXQgdGVzdCBpZiBhIHdvcmtpbmcgQysrIGNvbXBpbGVyIGhhcyBiZWVuCgkgIGZvdW5kLCBvdGhlcndpc2UgdGhlIGJ1aWxkIHdpbGwgZmFpbC4gKFdlIGRvIHRoaXMgdG8gbWFrZSBzdXJlIG91ciBoZWFkZXJzCgkgIGFyZSAnQysrIGNsZWFuJykuCgoyMDEwLTA5LTIzIDEwOjA4OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0dFT19MT0NBVElPTl9IT1JJWk9OVEFMX0VSUk9SCgkgIEFkZHMgYSBuZXcgdGFnIHRvIGluZGljYXRlIHRoZSBlcnJvciBpbiBob3Jpem9udGFsIHBvc2l0aW9uaW5nCgkgIGluIG1ldGVycy4gVGhpcyBpcyBvbmUgb2YgdGhlIGF2YWlsYWJsZSAnZ3BzIGVycm9yJyBmaWVsZHMgaW4KCSAgZXhpZiwgZm9yIGV4YW1wbGUuCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fSE9SSVpPTlRBTF9FUlJPUgoKMjAxMC0wOS0yMyAxNTozNDo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogdXNlIGEgbmVzdGVkIGxvY2sgdG8gYXZvaWQgcmVmZmluZyB0aGUgcGVlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5YjQyNGIxNTcwMzY2YjEwNzQ2YTc2MmU4YzljNGMxYjM1YjIxZTkxLgoKMjAxMC0wOS0yMyAxNToxMjozMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgdmFyIG9ubHkgdXNlZCBmb3IgZGVidWcgc3RhdGVtZW50CgoyMDEwLTA5LTA3IDE2OjU2OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIGEgbmVzdGVkIGxvY2sgdG8gYXZvaWQgcmVmZmluZyB0aGUgcGVlcgoJICBGaXhlcyAjNTAzNTkyCgoyMDEwLTA3LTE1IDE1OjQ3OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNwcC5jYzoKCSAgdGVzdHM6IHJlYnVpbGQgb25lIHRlc3QgdXNpbmcgY3BwCgkgIFRoaXMgYWltcyB0byBjYXRjaCBjcHAgaXNzdWVzIGluIGNvcmUuIEFkZCBjKysgYm9pbGVycGxhdGUgdG8gY29uZmlndXJlLgoKMjAxMC0wOS0yMSAxODozMzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYWEwZDFkMCB0byA1ZTNjOWJmCgoyMDEwLTA5LTE5IDE2OjEwOjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBIYW5kbGUgbmV3IGFzc2VydGlvbiBpbiBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIKCjIwMTAtMDktMTggMTk6Mjk6MDkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IEFkZCBjaGVjayBmb3IgcGF0dGVybiBiaXRzIG5vdCBpbiBtYXNrCgoyMDEwLTA5LTE3IDE5OjUzOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogVXNlIGdfZmlsZV90ZXN0KCkgaW5zdGVhZCBvZiBhY2Nlc3MoKSB3aGljaCBkb2VzIG5vdCBleGlzdCBvbiBNU1ZDNgoJICBGaXhlcyBidWcgIzYyOTQ5NC4KCjIwMTAtMDktMTcgMTc6MzQ6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIGZ1bmN0aW9uIHRvIGFkZCBhIGxpc3Qgb2YgYnVmZmVycwoJICBBZGQgYSBmdW5jdGlvbiB0byBhZGQgYSBsaXN0IG9mIGJ1ZmZlcnMgdG8gdGhlIGJ1ZmZlcmxpc3QuCgoyMDEwLTA5LTE3IDE1OjUxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBhZGQgZnVuY3Rpb24gdG8gZ2V0IGEgbGlzdCBvZiBidWZmZXJzCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIHJldHJpZXZlIGEgbGlzdCBvZiBidWZmZXJzIGNvbnRhaW5pbmcgdGhlIGZpcnN0IE4gYnl0ZXMgZnJvbQoJICB0aGUgYWRhcHRlci4gVGhpcyBjYW4gYmUgZG9uZSB3aXRob3V0IGEgbWVtY3B5IGFuZCBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSB0bwoJICB0cmFuc2ZlciB0aGUgbGlzdCB0byBhIEdzdEJ1ZmZlckxpc3QgbGF0ZXIuCgoyMDEwLTA5LTE3IDE1OjA3OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJldXNlIG1vcmUgZGF0YSBpbiBfcGVlaygpCgkgIE9wdGltaXplIF9wZWVrKCkgc29tZSBtb3JlIGJ5IHJldXNpbmcgYWxyZWFkeSBhc3NlbWJsZWQgZGF0YSB3aGVuIHdlIGNhbi4KCjIwMTAtMDktMTcgMTM6NTc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogb3B0aW1pemUgX3Rha2UoKSBhIGxpdHRsZSBtb3JlCgkgIFdoZW4gd2UgaGF2ZSBhbHJlYWR5IGFzc2VtYmxlZCBzb21lIGRhdGEgYmVmb3JlLCByZXVzZSB0aGlzIGRhdGEgYW5kIG9ubHkgY29weQoJICB0aGUgcGFydCB0aGF0IGlzIG5ldy4KCjIwMTAtMDktMTcgMTI6NDg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVmYWN0b3IgYWRhcHRlciB0YWtlCgkgIE1vdmUgc29tZSBjb21tb24gY29kZSBpbnRvIG9uZSBwbGFjZQoKMjAxMC0wOS0xNyAxMjo0MDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIHN1cHBvcnQgZm9yIDAgc2l6ZWQgYnVmZmVycwoJICBBZGQgc3VwcG9ydCBmb3IgMCBzaXplZCBidWZmZXJzLiBUaGlzIGlzIGludGVyZXN0aW5nIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlCgkgIHRpbWVzdGFtcCBmdW5jdGlvbnMuCgkgIEZpeGVzICM2Mjk1NTMKCjIwMTAtMDktMTcgMTA6MDE6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgcHdnOiBNYWtlIGEgc2VudGVuY2UgY2xlYXJlci4KCjIwMTAtMDktMTYgMTk6Mjc6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBtYWtlIHN1cmUgZ3N0cmVhbWVyIGhhcyBiZWVuIGluaXRpYWxpemVkIHdoZW4gY3JlYXRpbmcgZWxlbWVudHMKCSAgQWRkIGdzdF9pc19pbml0aWFsaXplZCgpIGd1YXJkIHRvIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpLCBzbwoJICBwZW9wbGUgd2hvIGZvcmdvdCB0byBjYWxsIGdzdF9pbml0KCkgZ2V0IGEgdXNlZnVsIHdhcm5pbmcgZm9yIHdoYXQKCSAgc2VlbXMgdG8gYmUgYSBjb21tb24gZW5vdWdoIG1pc3Rha2UuCgoyMDEwLTA5LTE2IDAwOjM3OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbWlub3IgZ3N0X3F1ZXJ5X2FkZF9idWZmZXJpbmdfcmFuZ2UoKSBjb2RlIHJlZmxvdwoJICBTcHJpbmtsZSBzb21lIEdfVU5MSUtFTFkoKSwgcmV0dXJuIFRSVUUvRkFMU0UgY29uc3RhbnRzLCBhdm9pZCBhbgoJICB1bm5lY2Vzc2FyeSBnX3ZhbHVlX3Vuc2V0KCksIG1vdmUgZ192YWx1ZV9pbml0KCkrc2V0X2ludDY0X3JhbmdlKCkKCSAgY2xvc2VyIHRvIHdoZXJlIHRoZXkncmUgbmVlZGVkLgoKMjAxMC0wOS0xNiAwMDozMDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGdzdF9xdWVyeV9hZGRfYnVmZmVyaW5nX3JhbmdlKCkgb3B0aW1pc2F0aW9ucwoJICBEb24ndCBjcmVhdGUgYSBuZXcgR1ZhbHVlQXJyYXkgY29weSBmb3IgZXZlcnkgc2luZ2xlIF9hZGRfYnVmZmVyaW5nX3JhbmdlKCkKCSAgY2FsbCwgYnV0IGFwcGVuZCB0byB0aGUgZXhpc3RpbmcgdmFsdWUgYXJyYXkgb3duZWQgYnkgdGhlIHN0cnVjdHVyZSBpbnN0ZWFkLgoKMjAxMC0wOS0xNiAwMDowMzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbWljcm8tb3B0aW1pc2F0aW9uIGZvciBzb21lIHNldHRlciBmdW5jdGlvbnMKCSAgU3BsaXQgb3V0IGZ1bmN0aW9ucyB0aGF0IGRvIHRoZSBhY3R1YWwgd29yaywgc28gd2UgYXZvaWQgZG9pbmcKCSAgdGhlIHNhbWUgZ19yZXR1cm5faWZfZmFpbCgpIGNoZWNrcyBtdWx0aXBsZSB0aW1lcyBmb3IgZWFjaCBjYWxsLgoKMjAxMC0wOS0xNSAyMzo0Mjo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogYWRkIGdzdF9zdHJ1Y3R1cmVfe2lkX310YWtlX3ZhbHVlKCkKCSAgQWRkIF9zZXRfdmFsdWUoKSB2YXJpYW50cyB0aGF0IHRha2Ugb3duZXJzaGlwIG9mIHRoZSB2YWx1ZSBwYXNzZWQKCSAgaW5zdGVhZCBvZiBtYWtpbmcgYSBjb3B5IG9mIHRoZSB2YWx1ZS4gVGhpcyBpcyB1c2VmdWwgZm9yIHNldHRpbmcKCSAgdmFsdWVzIHRvIHRoaW5ncyB0aGF0IGFyZW4ndCByZWZjb3VudGVkIChlLmcuIEdWYWx1ZUFycmF5cyBvcgoJICBzdHJpbmdzIG9yIHN0cmluZyBhcnJheXMsIGV0Yy4pLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfdGFrZV92YWx1ZSgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF90YWtlX3ZhbHVlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTgzMQoKMjAxMC0wOS0xNiAxOToxOToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggZG9jIHN0cmluZywgd2UgcG9zdCBlbGVtZW50IG1lc3NhZ2VzCgoyMDEwLTA5LTE2IDE5OjA2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFkZCBtZXNzYWdlLWZvcndhcmQgb3B0aW9uCgkgIEFkZCBhbiBvcHRpb24gdG8gZm9yd2FyZCBhbGwgdGhlIGludGVybmFsIG1lc3NhZ2VzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlCgkgIGZpbHRlcmVkIHN1Y2ggYXMgRU9TLCBTRUdNRU5UIGFuZCBBU1lOQyBtZXNzYWdlcy4KCSAgVGhpcyBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvLCBmb3IgZXhhbXBsZSwgZGV0ZWN0IHRoYXQgYSBwYXJ0aWFsIHBpcGVsaW5lIGlzCgkgIHByZXJvbGxlZCBvciByZWFjaGVkIGVvcy4KCSAgVGhlIG9yaWdpbmFsIG1lc3NhZ2VzIGFyZSB3cmFwcGVkIGluc2lkZSBhbiBlbGVtZW50IG1lc3NhZ2UgYmVjYXVzZSB0aGUgcGFyZW50CgkgIGJpbnMgYXJlIG5vdCBzdXBwb3NlZCB0byBzZWUgdGhvc2UgaW50ZXJuYWwgbWVzc2FnZXMgZXNjYXBlLgoKMjAxMC0wOS0xMiAxNjo1MDoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogdXNlIHN0cnN0cigpIGluc3RlYWQgb2YgZ19zdHJzdHJfbGVuKCkKCSAgU2F2ZXMgdXMgYSBzdHJsZW4oKSBjYWxsLgoKMjAxMC0wOS0xNSAxMzoyOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogb25seSBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHdoZW4gcGVyY2VudCBjaGFuZ2VkCgoyMDEwLTA5LTE1IDEzOjE1OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhbHdheXMgdXBkYXRlIGJ1ZmZlcmluZyBzdGF0dXMKCSAgVXBkYXRlIHRoZSBidWZmZXJpbmcgc3RhdHVzIGV2ZW4gd2hlbiB3ZSBhcmUgbm90IHVzaW5nIGEgcXVldWUgc28gdGhhdCBFT1MgY2FuCgkgIHByb3Blcmx5IGZpbmlzaCB0aGUgYnVmZmVyaW5nLgoKMjAxMC0wOS0xMyAyMDozOTo1MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IGZsdXNoLXN0b3AgZXZlbnQgaGFuZGxpbmcKCSAgQSBmbHVzaC1zdG9wIGV2ZW50IHdvdWxkIG1ha2UgYSBwYWQgdW5mbHVzaGluZywgY2F1c2luZyBpdAoJICB0byBzdGFydCBhY3RpbmcgYXMgYW4gYWN0aXZhdGVkIHBhZC4gVGhpcywgZm9yIGV4YW1wbGUsCgkgIGNvdWxkIGxlYWQgdG8gdGhlIGNoYWluIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCB3aGVuIHN0dWZmCgkgIGlzbid0IGluaXRpYWxpemVkLgoJICBUaGlzIGNvdWxkIGhhcHBlbmQgd2hlbiBzZXR0aW5nIHF0ZGVtdXggdG8gTlVMTCB3aGlsZSBhIHNlZWsKCSAgd2FzIGJlaW5nIGhhbmRsZWQgaW4gdGhlIHVwc3RyZWFtIGZpbGVzcmMgKGluIHB1c2ggbW9kZSkuCgkgIFRoaXMgcGF0Y2ggbWFrZXMgaXQgY2hlY2sgaWYgaXQgaXMgYWN0aXZhdGVkIGJlZm9yZSBzZXR0aW5nCgkgIGl0IHRvIHVuZmx1c2hpbmcuCgoyMDEwLTA5LTEzIDExOjE3OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZG9jczogZml4IHdhcm5pbmdzIHBvaW50ZWQgb3V0IGJ5IGd0ay1kb2MKCjIwMTAtMDktMTMgMDk6NTA6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICB0YXNrcG9vbDogbWFrZSBkZWJ1ZyBvbmx5IGNvZGUgY29uZGl0aW9uYWwKCjIwMTAtMDktMTAgMTU6MDc6MDMgLTA0MDAgIENvbGluIFdhbHRlcnMgPHdhbHRlcnNAdmVyYnVtLm9yZz4KCgkqIGdzdC9nc3RlcnJvci5oOgoJICBpbnRyb3NwZWN0aW9uOiBCdWlsZCB3aXRoIGxhdGVzdCBnLWkKCSAgSGlkZSBhIGNvbXBhdGliaWxpdHkgdHlwZWRlZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTI0MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUwNjE2CgoyMDEwLTA5LTA5IDIyOjI0OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZG9uJ3QgbGVhayBlbnRyaWVzIGZvciBibGFja2xpc3RlZCBmaWxlcwoKMjAxMC0wOS0wOSAyMTo1OToyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgY2hlY2tzOiBhbmQgY2hlY2sgdGhlIHJpZ2h0IGVudi12YXIgKGZpeHVwIGxhc3QgY29tbWl0KQoKMjAxMC0wOS0wOSAyMTo1NjoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIHRlc3RzOiBhbGxvdyBydW5uaW5nIHN0YXRlIHRlc3RzIGZvciBhbGwgZWxlbWVudHMKCSAgTm93IG9uZSBjYW4gdXNlIEdTVF9OT19TVEFURV9JR05PUkVfRUxFTUVOVFM9MSBtYWtlIGdlbmVyaWMvc3RhdGVzLmNoZWNrCgkgIHRvIHRyeSBlbGVtZW50cyB0aGF0IHdvdWxkIG5vcm1hbHkgYmUgc2tpcHBlZC4KCjIwMTAtMDktMDYgMTU6MTY6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYXZvaWQgc3RyaW5nIGNyZWF0aW9uIHdoZW4gbm90IG5lZWRlZAoKMjAxMC0wOS0wOSAxNjoxMTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBpZGVudGl0eSBpcyBHQVAgZmxhZyBhd2FyZSwgbm8gbmVlZCB0byBsZXQgaXQgYmUgdW5zZXQgYnkgYmFzZXRyYW5zZm9ybQoKMjAxMC0wOS0wOSAxNTo1NzoxNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgYSBzeW5jIGJ1cyBoYW5kbGVyIGFuZCBtb3ZlIHN0YXRlLWNoYW5nZSBsb2dnaW5nIHRoZXJlCgkgIFRoZSBzeW5jIGhhbmRsZXIgaXMgY2FsbGVkIGZvciBhbGwgbWVzYWdlcywgdGhlIGV2ZW50IGxvb3Agd2UgcHJldmlvdXNseSB1c2VkCgkgIHdhcyBub3QuIEluIHRoZSBzeW5jIGhhbmRsZXIgdHJpZ2dlciBwaXBlbGluZSBkb3QgZHVtcHMgYW5kIGNhbGwgYWNjZXNzIGZvciBhCgkgIGZpbGUgaW4gdG1wLWRpciB0byBhZGQgbWFya2VycyBpbnRlcmNlcHRhYmxlIGJ5IHN0cmFjZSBhbmQgY28uCgoyMDEwLTA5LTA4IDE4OjQxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNpbXBsaWZ5IGNvZGUgYSBiaXQKCSAgTm8gbmVlZCB0byBjYWxsIGdfc2xpc3RfbGVuZ3RoKCkgaGVyZS4KCjIwMTAtMDktMDggMDk6Mzc6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgYSB1bmNoZWNrZWQgdmFyaWFudCBmb3IgcHVsbAoJICBBZGQgaW50ZXJuYWwgX2dldF9yYW5nZV91bmNoZWNrZWQgdGhhdHMgaXMgY2FsbGVkIGZyb20gX2dldF9yYW5nZSBhbmQKCSAgX3B1bGxfcmFuZ2UuCgoyMDEwLTA5LTA3IDIzOjQ4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB1Z2x5L2JhZC9mZm1wZWcgcGtnLWNvbmZpZyBkaXJzIHRvIFBLR19DT05GSUdfUEFUSAoJICBTbyB3ZSBjYW4gZmlndXJlIG91dCBwbHVnaW4gZGlyZWN0b3JpZXMgb2Ygb3RoZXIgbW9kdWxlcyBwcm9wZXJseSBpbgoJICB0aGUgdW5pbnN0YWxsZWQgc2V0dXAgY2FzZSwgZm9yIHVuaXQgdGVzdHMgdGhhdCBuZWVkIGVsZW1lbnRzIGZyb20KCSAgb3RoZXIgbW9kdWxlcy4KCjIwMTAtMDktMDcgMTI6MDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gZG9jcyBmb3IgcmVjZW50IGNoYW5nZXMKCSAgQW5kIHNvcnRlZCBoaWVyYXJjaHkKCjIwMTAtMDktMDcgMTE6NDE6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjMmUxMGJmIHRvIGFhMGQxZDAKCjIwMTAtMDktMDcgMTE6MDk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGRvbid0IHVzZSBnc3Rfc3RydWN0dXJlX2ZvcmVhY2goKSBvbiBOVUxMIHBvaW50ZXJzCgoyMDEwLTA5LTA2IDIwOjE5OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wOS0wNiAyMDoxNjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0ZXJyb3I6IGFkZCBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgZm9yIEdTVF9MSUJSQVJZX0VSUk9SX0VOQ09ERQoJICBObyBpZGVhIHRob3VnaCB3aHkgd2UgZXZlbiBoYXZlIEdTVF9MSUJSQVJZX0VSUk9SX0VOQ09ERSBvciB3aGVuIG9uZQoJICB3b3VsZCB3YW50IHRvIHVzZSB0aGF0IGluc3RlYWQgb2YgR1NUX1NUUkVBTV9FUlJPUl9FTkNPREUuCgoyMDEwLTA5LTA2IDIwOjA2OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3RlcnJvcjogYXZvaWQgcG9pbnRsZXNzIHN0cmluZyBjb3B5aW5nCgkgIFRoZXJlJ3Mgbm8gbmVlZCB0byBjcmVhdGUgdGhlc2UgdGFibGVzIHdpdGggZHVwbGljYXRlcyBvZiB0aGUKCSAgdW50cmFuc2xhdGVkIGVycm9yIG1lc3NhZ2Ugc3RyaW5nIGNvbnN0YW50cywgd2UgY2FuIGp1c3QgdXNlCgkgIG9sZC1mYXNoaW9uZWQgc3dpdGNoL2Nhc2UgYW5kIGNhbGwgZ2V0dGV4dCBkaXJlY3RseS4gVGhpcyBhbHNvCgkgIG1ha2VzIHRoaW5ncyBzbGlnaHRseSBtb3JlIHRocmVhZCBzYWZlIGFuZCBtb3JlIHJvYnVzdCB0byBiYWQKCSAgaW5wdXQgKGludmFsaWQgZXJyb3IgY29kZXMpLgoKMjAxMC0wOS0wNiAxODozMzo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBjaGVjazogQXZvaWQgZXJyb3I6IGFycmF5IHN1YnNjcmlwdCBpcyBhYm92ZSBhcnJheSBib3VuZHMKCSAgQ291bGQgaGF2ZSBjb21lIHVwIHdpdGggc29tZXRoaW5nIGJldHRlciBmb3IgbXkgMjAwMHRoIGNvbW1pdAoJICB0byBHU3RyZWFtZXIuLi4KCjIwMTAtMDktMDYgMTc6MDE6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZ2l2ZSBhIHByYWN0aWNhbCBleGFtcGxlIGZvciB0aGUgZ3N0X29iamVjdF9oYXNfYW5jaGVzdG9yCgoyMDEwLTA5LTA2IDE0OjMzOjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IHVzZSB0aGUgcGFyZW50X2NsYXNzIGRlZmluZWQgYnkgR19ERUZJTkVfVFlQRQoKMjAxMC0wOS0wNiAxNDozMjowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogdHVuZSBza2lwcGluZyBjaGVja3MgaWYgd2UgaGF2ZSBkaXNhYmxlZCBzdWJzeXN0ZW1zCgkgIFNraXAgQUJJIHRlc3RzIGlmIHNvbWUgc3Vic3lzdGVtcyBhcmUgb2ZmLiBSZW1vdmUgRElTQUJMRV9HU1RfREVCVUcgZnJvbQoJICBza2lwcGluZyBleHBvcnQgY2hlY2tzIGFzIHRoaXMgaXMgc2FmZSBub3cuCgoyMDEwLTA5LTA2IDE0OjA5OjUyICswMzAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IFVzZSB0aGUgY29ycmVjdCB2YXJpYWJsZSBmb3IgZGVidWcgbWVzc2FnZQoJICBEZWJ1ZyBwcmludCB3YXMgdXNpbmcgYSB2YXJpYWJsZSB0aGF0IHdhcyBub3QgaW5pdGlhbGl6ZWQuCgoyMDEwLTA4LTEwIDE0OjA1OjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudC1kZXRhaWxzOiBhbGxvdyBmb3IgYXJiaXRyYXJ5IGVsZW1lbnQgZGV0YWlscwoJICBBZGQgYSBHc3RTdHJ1Y3R1cmUgdG8gR3N0RWxlbWVudENsYXNzIGFuZCBHc3RFbGVtZW50RmFjdG9yeS4gQWRkIHNldHRlcnMvZ2V0dGVyLgoJICBIYW5kbGUgaXQgaW4gdGhlIHJlZ2lzdHJ5IGNvZGUuIFByaW50IGl0ZW1zIGluIGdzdC1pbnNwZWN0LgoJICBGaXhlcyAjMzk2Nzc0LgoJICBBUEk6IGdzdF9lbGVtZW50X2NsYXNzX3NldF9tZXRhX2RhdGEoKSwgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YV9kYXRhX2RldGFpbCgpCgoyMDEwLTA5LTA1IDE4OjU3OjU2IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDNkOWFjZiB0byBjMmUxMGJmCgoyMDEwLTA5LTA1IDEyOjEzOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gY2ExYzg2NyB0byBkM2Q5YWNmCgoyMDEwLTA5LTA1IDEwOjIyOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IHN5bWJvbHMgZnJvbSBHc3RFbGVtZW50RmFjdG9yeUxpc3QKCSAgQW5kIGhlcmUncyBhIHJlbWluZGVyIHNpbmNlIEkgZm9yZ290IHRvIHB1dCB0aGVtIGluIG15IHByZXZpb3VzCgkgIGNvbW1pdC4KCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZmlsdGVyCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2dldF9lbGVtZW50cwoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9pc190eXBlCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZGVidWcKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfcmFua19jb21wYXJlX2Z1bmMKCSAgQVBJOiBHc3RFbGVtZW50RmFjdG9yeUxpc3RUeXBlCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0FOWQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9BVURJT1ZJREVPX1NJTktTCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0FVRElPX0VOQ09ERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RBQkxFCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09ERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVNVVhFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERVBBWUxPQURFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9FTkNPREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0ZPUk1BVFRFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NQVhfRUxFTUVOVFMKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQVVESU8KCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfSU1BR0UKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfTUVUQURBVEEKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfU1VCVElUTEUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfVklERU8KCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQU5ZCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01VWEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1BBUlNFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9QQVlMT0FERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfU0lOSwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9TUkMKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfVklERU9fRU5DT0RFUgoKMjAxMC0wOC0zMSAxMTozNzo0MiArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYnVmZmVyaW5nX3JhbmdlcyBxdWVyeSBzdXBwb3J0CgkgIEZpeGVzIGJ1ZyA2MjMxMjEKCjIwMTAtMDktMDMgMTk6NTg6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBPbmx5IGZpbGwgdGhlIHN0YXJ0L3N0b3AgdmFsdWVzIG9mIHRoZSBidWZmZXJpbmcgcmFuZ2VzIGlmIGEgbm9uLU5VTEwgcG9pbnRlciB3YXMgcHJvdmlkZWQKCjIwMTAtMDgtMzEgMTE6MzU6MTIgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RxdWVyeTogbmV3IGJ1ZmZlcmluZ19yYW5nZXMgQVBJCgkgIEFkZGVkIGEgbmV3IHF1ZXJ5IHR5cGUgdG8gcmV0cmlldmUgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBhcmVhcyBvZiB0aGUKCSAgbWVkaWEgY3VycmVudGx5IGJ1ZmZlcmVkLiBTZWUgYnVnIDYyMzEyMS4KCSAgQVBJOiBnc3RfcXVlcnlfYWRkX2J1ZmZlcmluZ19yYW5nZQoJICBBUEk6IGdzdF9xdWVyeV9nZXRfbl9idWZmZXJpbmdfcmFuZ2VzCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX250aF9idWZmZXJpbmdfcmFuZ2UKCjIwMTAtMDgtMTYgMTk6MDE6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBHc3RFbGVtZW50RmFjdG9yeTogQWRkIGxpc3RpbmcgZmVhdHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjE4MQoKMjAxMC0wOS0wMiAxMjo0NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogbWVudGlvbiBHU1RfREVCVUdfT1BUSU9OUywgT1JDX0NPREUsIEdfREVCVUcgYW5kIEdfU0xJQ0UgZW52aXJvbm1lbnQgdmFyaWFibGVzCgkgIE1lbnRpb24gYSBmZXcgbW9yZSB1c2VmdWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSAnUnVubmluZyBHU3RyZWFtZXIKCSAgYXBwbGljYXRpb25zJyBzZWN0aW9uIG9mIHRoZSBBUEkgcmVmZXJlbmNlLgoKMjAxMC0wOS0wMiAxNDoxNToyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGZpeCB1c2Ugb2YgZW1wdHkgc3ViYnVmZmVycwoJICBSZW1vdmUgYSBzaG9ydCBjdXQgdGhhdCB3YXMgaWdub3Jpbmcgc3JjLT5kYXRhIGFsbG9jYXRpb24gbW9kZS4gQWxsCgkgIHRoZSBjYWxsZWQgY29kZS1wYXRoIGJlbG93IGhhbmRsZSBzaXplPT0wLgoKMjAxMC0wOS0wMiAwMDowMToyNSArMDEwMCAgSmVmZnJleSBTLiBTbWl0aCA8d2h5ZG91YnRAeWFob28uY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgRml4IGNhc3RzIGluIGEgYnVuY2ggb2YgaW5saW5lIGZ1bmN0aW9ucyB0byBtYWludGFpbiBjb3JyZWN0IGNvbnN0LW5lc3MKCSAgTWFrZSBjb2RlIGluY2x1ZGluZyBHU3RyZWFtZXIgaGVhZGVycyBjb21waWxlIHdpdGggLVdjYXN0LXF1YWwgYnkKCSAgbWFpbnRhaW5pbmcgY29uc3QtbmVzcyB3aGVuIGNhc3RpbmcuIEFsc28gZml4IGZ1bmN0aW9uIHNpZ25hdHVyZSBvZgoJICBnc3RfYnl0ZV93cml0ZXJfc2V0X3BvcygpOiB0aGUgYnl0ZSB3cml0ZXIgc2hvdWxkIG5vdCBiZSBtYXJrZWQgYXMKCSAgY29uc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc5MTAKCjIwMTAtMDgtMzEgMTg6NDA6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IHVzZSBuZXcgQUdfR1NUX1BLR19DT05GSUdfUEFUSCBtNCBtYWNybyBmcm9tIGNvbW1vbgoJICBTZXRzIHVwIGEgR1NUX1BLR19DT05GSUdfUEFUSCB2YXJpYWJsZSBmb3IgdXNlIGluIE1ha2VmaWxlLmFtCgkgIChhdm9pZHMgdHJhaWxpbmcgJzonIGluIFBLR19DT05GSUdfUEFUSCB1c2VkKS4gQSB1c2VmdWwgc2lkZQoJICBlZmZlY3Qgb2YgdGhpcyBpcyBhbHNvIHRoYXQgdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudAoJICBpcyBub3cgbG9nZ2VkIGluIHRoZSBjb25maWd1cmUgb3V0cHV0LgoKMjAxMC0wOS0wMSAxMTozNDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIG1hbnVhbDogaW1wcm92ZSBjbG9jayBkb2NzIGEgbGl0dGxlCgoyMDEwLTA5LTAxIDExOjA2OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRml4IG1lbW9yeSBsZWFrcyBpbiB0aGUgaW50NjRyYW5nZSB0ZXN0cwoKMjAxMC0wOC0yNCAxMjoyNzozMCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGQgbmV3IEdzdEludDY0UmFuZ2UgdHlwZQoJICBuZXcgR3N0SW50NjRSYW5nZSB0byBzdG9yZSBnaW50NjQgcmFuZ2VzLgoJICBBUEk6IEdTVF9UWVBFX0lOVDY0X1JBTkdFCgkgIEFQSTogZ3N0X3ZhbHVlX3NldF9pbnQ2NF9yYW5nZQoJICBBUEk6IGdzdF92YWx1ZV9nZXRfaW50NjRfcmFuZ2VfbWluCgkgIEFQSTogZ3N0X3ZhbHVlX2dldF9pbnQ2NF9yYW5nZV9tYXgKCSAgRml4ZXMgYnVnICM2Mjc4MjYuCgoyMDEwLTA4LTMwIDIxOjI2OjE4IC0wMzAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IFRyaXZpYWwgY2xlYW51cCBmb3IgR1NUX0RFQlVHX0NBVEVHT1JZX0dFVAoKMjAxMC0wOC0zMCAxNjowMjo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFJlLWluc3RhdGUgdGhlIGRlZmF1bHQgZm9yIGNvbG9yIHVzYWdlCgkgIFRoaXMgd2FzIGFjY2lkZW50bHkgcmVtb3ZlZCBpbiA3YTcyMjA5MWI2ZDFiNWQ3Zjk0MDRmZGVmNGM2OTVhMjlhNjVhOTg5CgoyMDEwLTA4LTMwIDEyOjQ3OjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IFVzZSBnX3N0cmNtcDAgaW5zdGVhZCBvZiBzdHJjbXAKCSAgQXZvaWRzIHNlZ2ZhdWx0cyB3aGVuIHVzaW5nIE5VTEwgYXJndW1lbnRzLgoKMjAxMC0wOC0yNyAxNTozNTo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhZGQgc2lsZW50IHByb3BlcnR5IHRvIHN1cHByZXNzIHNpZ25hbCBlbWlzc2lvbgoJICBBbGxvdyB0byB0dXJuIG9mZiBzaWduYWwgZW1pc3Npb24gYW5kIHRoZXJlZm9yZSBleHRyYSBsb2NraW5nIGlmIHRoaXMgaXMgbm90IG5lZWRlZC4KCSAgRml4ZXMgIzYyMTI5OQoKMjAxMC0wOC0yOCAxMDoxNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFkZCBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkgdG8gdGhlIGRvY3MgYW5kIGV4cG9ydGVkIHN5bWJvbHMKCjIwMTAtMDgtMjggMTc6NTE6MTQgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFJlbW92ZSBjaGVja3MgZm9yIGRlcHJlY2F0ZWQgZmxvdyBjaGVjayBtYWNyb3MKCSAgR1NUX0ZMT1dfSVNfRkFUQUwoKSBhbmQgR1NUX0ZMT1dfSVNfU1VDQ0VTUygpIGFyZSBkZXByZWNhdGVkLAoJICBzbyBhcmVuJ3QgYXZhaWxhYmxlIGZvciB0aGUgdGVzdHN1aXRlIGFueSBtb3JlLgoKMjAxMC0wOC0yOCAwOTozNTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBpbnZlcnRlZCBhc3NlcnRpb24gbG9naWMgaW4gZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpCgoyMDEwLTA4LTI4IDA5OjMwOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHV0aWxzOiBBZGQgZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpIHRvIGNvbXBhcmUgZnJhY3Rpb25zCgkgIEFuZCB1c2UgaXQgZm9yIHRoZSBmcmFjdGlvbiBjb21wYXJpc29ucyBpbiBnc3R2YWx1ZS5jIGluc3RlYWQKCSAgb2YgdXNpbmcgY29tcGFyaXNvbnMgYnkgZmlyc3QgY29udmVydGluZyB0aGUgZnJhY3Rpb25zIHRvIGRvdWJsZS4KCSAgU2hvdWxkIGZpeCBidWcgIzYyODE3NC4KCSAgQVBJOiBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkKCjIwMTAtMDgtMjggMTc6MDQ6NDMgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICB0ZXN0czogQWRkIGEgY291cGxlIG9mIGV4dHJhIGNhcHMgc3RyaW5ncyB0byB0ZXN0CgoyMDEwLTA4LTI3IDE2OjUyOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBkbyBhbiBpbmZpbml0ZSBsb29wIGluIHRoZSBsb29wIGZ1bmN0aW9uCgkgIEluc3RlYWQgcmV0dXJuIGFmdGVyIGV2ZXJ5IGl0ZXJhdGlvbiwgd2hpY2ggbWFrZXMgc3VyZSB0aGF0IHRoZQoJICBzdHJlYW0gbG9jayBpcyByZWxlYXNlZCBmb3IgYSBzaG9ydCB0aW1lIGFmdGVyIGV2ZXJ5IGl0ZXJhdGlvbiwKCSAgdGFzayBzdGF0ZSBjaGFuZ2VzIGFyZSBjaGVja2VkLCBldGMgYW5kIHRoaXMgYWxsb3dzIHRoZSB0YXNrCgkgIHRvIGJlIHN0b3BwZWQgcHJvcGVybHkuCgoyMDEwLTA4LTI3IDE2OjQ5OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGbHVzaCB0aGUgZGF0YSBxdWV1ZSBpZiBkb3duc3RyZWFtIHJldHVybiBXUk9OR19TVEFURSB0b28KCjIwMTAtMDgtMjYgMjM6Mzk6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZWxlbWVudHM6IFN0b3AgdXNpbmcgR1NUX0ZMT1dfSVNfRkFUQUwoKQoKMjAxMC0wOC0yNiAyMzozNzowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBTdG9wIHVzaW5nIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCSAgQW5kIGRvY3VtZW50IHRoZSBzcGVjaWFsIGhhbmRsaW5nIG9mIFdST05HX1NUQVRFLgoKMjAxMC0wOC0yNiAyMzowNzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogRGVwcmVjYXRlIEdTVF9GTE9XX0lTX0ZBVEFMKCkgYW5kIEdTVF9GTE9XX0lTX1NVQ0NFU1MoKQoJICBUaGUgcHJvYmxlbSB3aXRoIGJvdGggbWFjcm9zIGlzLCB0aGF0IHRoZXkgc3VnZ2VzdCBzb21ldGhpbmcgdGhhdCBpc24ndCB0cnVlLgoJICBJZiBHU1RfRkxPV19JU19GQVRBTCBpcyB0cnVlLCB0aGVyZSBjb3VsZCBzdGlsbCBiZSBhIHByb2JsZW0gZm9yIG1hbnkgZWxlbWVudHMKCSAgYW5kIHRoZXkgc2hvdWxkIHN0b3Agd2hhdCB0aGV5J3JlIGN1cnJlbnRseSBkb2luZyBhbmQgcmV0dXJuIHRoYXQgdmFsdWUKCSAgdXBzdHJlYW0gKGUuZy4gbm90LWxpbmtlZCBpbiBhIHBhcnNlcikuIElmIEdTVF9GTE9XX0lTX1NVQ0NFU1MgaXMgZmFsc2UsIGl0CgkgIGNvdWxkIHN0aWxsIGJlIHRoYXQgdGhpcyBpcyAib2siIGZvciB0aGUgZWxlbWVudCAoZS5nLiBub3QtbGlua2VkIGZvciBhIGRlbXV4ZXIKCSAgb24gYSBmZXcgb2YgaXRzIHBhZHMgYnV0IG5vdCBhbGwpLgoJICBJdCdzIGJldHRlciB0byBub3QgaGF2ZSB0aGVzZSAiY29udmVuaWVuY2UiIG1hY3JvcyBidXQgaW5zdGVhZCBsZXQgcGVvcGxlCgkgICp0aGluayogYWJvdXQgdGhlIGhhbmRsaW5nIG9mIGRpZmZlcmVudCBmbG93IHJldHVybnMsIHRoYXQgbWFrZXMgc2Vuc2UgZm9yCgkgIHRoZWlyIGVsZW1lbnQuIEFuZCB3ZSBzaG91bGQgZG9jdW1lbnQgdGhlIGV4cGVjdGVkIGhhbmRsaW5nIG9mIGZsb3cgcmV0dXJucyBmb3IKCSAgZGlmZmVyZW50IGNsYXNzZXMgb2YgZWxlbWVudHMgaW4gdGhlIHBsdWdpbiB3cml0ZXIncyBndWlkZS4KCSAgRml4ZXMgYnVnICM2MjgwMTQuCgoyMDEwLTA4LTI3IDExOjExOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBrZWVwIHByb3BlcnRpZXMgaW4gb3JkZXIKCjIwMTAtMDgtMjcgMTA6MjI6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEFSR18gLT4gUFJPUF8gZm9yIHByb3BlcnR5IGNvbnN0YW50cwoKMjAxMC0wOC0yNiAxNzowNDoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG9uLWRpc2sgYnVmZmVyaW5nIGFnYWluCgoyMDEwLTA4LTI2IDE1OjEyOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlY292ZXIgZnJvbSBpbnZhbGlkIGRvd25zdHJlYW0gc3VnZ2VzdGlvbnMKCSAgV2hlbiB3ZSBhcmUgaGFuZGxpbmcgYSBidWZmZXIgYW5kIG5lZWQgdG8gYWxsb2NhdGUgYW4gb3V0cHV0IGJ1ZmZlciwgaGFuZGxlIHRoZQoJICBjYXNlIHdoZW4gZG93bnN0cmVhbSBzdWdnZXN0cyB1cyBhIGZvcm1hdCB0aGF0IHdlIGNhbid0IGNvbnZlcnQgdGhlIGlucHV0IGJ1ZmZlcgoJICB0by4gSW4gdGhhdCBjYXNlLCBjaGVjayBpZiB0aGVyZSBpcyBhbm90aGVyIGZvcm1hdCBhdmFpbGFibGUgZG93bnN0cmVhbSBpbnN0ZWFkCgkgIG9mIGZhaWxpbmcuCgkgIEZpeGVzICM2MjEzMzIgYW5kIHNlZSBhbHNvICM2MTQyOTYKCjIwMTAtMDgtMjYgMTM6NDY6MzQgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdHBsdWdpbjogbG9hZCB0aGUgZ3N0LXB5dGhvbiBwbHVnaW4gbG9hZGVyIHdpdGggR19NT0RVTEVfQklORF9MQVpZLgoKMjAxMC0wOC0xNiAxNDoxMjozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBCgkgIEFkZHMgR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBIGZvciByZXByZXNlbnRpbmcgYXJiaXRyYXJ5IHByaXZhdGUKCSAgZGF0YSB0aGF0IGFwcGxpY2F0aW9ucyBtaWdodCB3YW50IHRvIHN0b3JlIGludG8gdGFncy4gRXhpZi9pZDMsCgkgIGZvciBleGFtcGxlLCBoYXZlIHRhZ3MgZm9yIHRoaXMuCgkgIEFQSTogR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBCgkgIEZpeGVzICM2MjY2NTEKCjIwMTAtMDgtMjQgMTI6NDY6MzggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBnc3QtbGF1bmNoOiBGaXggT0lMX0NQVV9GTEFHUyBkb2NzIGZvciBPcmMKCjIwMTAtMDgtMjQgMTY6MjQ6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgbWFuOiByZW1vdmUgT0lMX0NQVV9GTEFHUyBmcm9tIG1hbiBwYWdlCgkgIFdlJ3JlIHVzaW5nIE9SQyBpbnN0ZWFkIG9mIGxpYk9pbCBub3cuCgoyMDEwLTA4LTIzIDE4OjIwOjIzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIFZhbGdyaW5kIGRlZmluZSBpcyBIQVZFX1ZBTEdSSU5EX1ZBTEdSSU5EX0gKCjIwMTAtMDctMjcgMTg6MjQ6NDQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgQWxsb3cgZ3N0X2RlYnVnX3NldF9kZWZhdWx0X3RocmVzaG9sZCgpIGJlZm9yZSBnc3RfaW5pdCgpCgkgIENhbGxpbmcgZ3N0X2RlYnVnX3NldF9kZWZhdWx0X3RocmVzaG9sZCgpIGJlZm9yZSBpbml0aWFsaXphdGlvbgoJICBzZWVtcyBsaWtlIHRoZSAib2J2aW91cyIgb3JkZXIuCgoyMDEwLTA4LTIzIDEzOjA2OjE5ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZml4IHNlZ2ZhdWx0IGluIHRlc3QKCjIwMTAtMDgtMjMgMTA6NTg6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBpbnRlcm4gYWxsIEdzdFBsdWdpbkRlc2MgbWVtYmVycyB3aGVuIHVucGFja2luZwoKMjAxMC0wOC0yMyAxMDo1NjozMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZml4IGxlYWsgd2hlbiBuYW1pbmcgcGFyZW50ZWQgb2JqZWN0CgoyMDEwLTA4LTIwIDAzOjA3OjU4ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBBZGQgYSBnc3RfaXNfaW5pdGlhbGl6ZWQoKSBBUEkKCSAgRm9yIG9uZSwgdGhpcyB3aWxsIGFsbG93IGxpYnJhcmllcyB0aGF0IGV4cGVjdCBhcHBsaWNhdGlvbnMgdG8KCSAgaW5pdGlhbGl6ZSBHU3RyZWFtZXIgYmVmb3JlIHVzaW5nIHRoZWlyIEFQSSB0byBoYXZlIGEgY2hlY2sgZm9yIHRoaXMKCSAgY29uZGl0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NDM4CgoyMDEwLTA4LTIwIDE4OjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbGF4IHRoZSBzb3VyY2UgZWxlbWVudCBjaGVjawoJICBXaGVuIHRoZXJlIGlzIGEgc2luayBpbnNpZGUgYSBiaW4sIHRoZSBTSU5LIGZsYWcgaXMgc2V0IG9uIHRoZSBiaW4uIFdoZW4gd2UgYXJlCgkgIHRyeWluZyB0byBpdGVyYXRlIHRoZSBzb3VyY2UgZWxlbWVudHMsIGFsc28gaW5jbHVkZSB0aGUgYmlucyB3aXRoIHRoZSBTSU5LIGZsYWcKCSAgYmVjYXVzZSB0aGV5IGNvdWxkIGFsc28gY29udGFpbiBzb3VyY2UgZWxlbWVudHMsIGluIHdoaWNoIGNhc2UgdGhleSBhcmUgYWxzbyBhCgkgIHNvdXJjZS4KCSAgVGhpcyBzb2x2ZXMgdGhlIGNhc2Ugd2hlcmUgc2VuZGluZyBhbiBFT1MgdG8gYSBwaXBlbGluZSBkaWRuJ3QgZ2V0IGRpc3BhdGNoZWQgdG8KCSAgYWxsIHNvdXJjZSBlbGVtZW50cy4KCSAgU2VlICM2MjU1OTcKCjIwMTAtMDgtMTkgMTc6MDc6MDAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBhZGRlZCB1bml0IHRlc3QgZm9yIG5ld3NlZ21lbnQgZXZlbnRzCgoyMDEwLTAzLTA1IDE3OjE4OjIzICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IFB1c2ggbmV3c2VnbWVudCB3aGVuIGxpbmtpbmcgaW4gUExBWUlORwoJICBGaXhlcyAjNjExOTE4CgoyMDEwLTA4LTEyIDIwOjIzOjQ1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBlbGVtZW50OiBsaW5rX21hbnkgc2hvdWxkIGFjdGl2YXRlIHBhZHMgaWYgbmVlZGVkCgkgIGdzdF9lbGVtZW50X2xpbmtfbWFueSBkb2VzIHNvbWUgbWFnaWMgYW5kIGNyZWF0ZXMgZ2hvc3RwYWRzCgkgIGlmIG5lZWRlZCwgYnV0IGl0IGRpZG4ndCBzZXQgdGhlIG5ld2x5IGNyZWF0ZWQgZ2hvc3RwYWQgdG8KCSAgYWN0aXZlIGlmIG5lZWRlZC4gVGhpcyBwYXRjaCBmaXhlcyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjc4NAoKMjAxMC0wOC0xOSAxMToxMToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IEZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdW5pdCB0ZXN0IGJ5IHVucmVmZmluZyBHc3REYXRlVGltZSBpbnN0YW5jZSBhZnRlciB1c2FnZQoKMjAxMC0wOC0xOSAxMDowMzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBmaXggY29tbWVudHMgaW4gdGVzdAoKMjAxMC0wOC0xOSAwOTo1ODo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIEdfR1VJTlQ2NF9GT1JNQVQgd2hlcmUgbmVlZGVkCgkgIEZpeGVzIGJ1aWxkIG9uIG1hY29zeAoKMjAxMC0wOC0xOCAxNTozMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZW5hYmxlIHF1ZXVlIHRlc3QgYWdhaW4KCjIwMTAtMDgtMTggMTU6MTI6NDUgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBmaXhlZCByYWN5IHVuaXQgdGVzdHMKCSAgRml4ZXMgIzYwMDAwNAoKMjAxMC0wOC0xNiAxODowMToyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgcGx1Z2luczogYWRkIGV4YW1wbGUgbGF1bmNoIGxpbmVzIGFuZCBtb3JlIGV4cGxhbmF0aW9uIHRvIHRoZSBkb2NzLgoJICBUaGUgcGx1Z2lucyB3aGVyZSBhbG1vc3QgdW5kb2N1bWVudGVkIDovIC4uLgoKMjAxMC0wOC0xMyAxNjoxOTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGNvbXBpbGF0aW9uCgoyMDEwLTA3LTA3IDA4OjIwOjIxICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBhIHNwZWNpYWwgY2FzZSBkdXJpbmcgcmFuZ2UgbWFuYWdlbWVudAoJICBXaGVuIGEgcmFuZ2UgY29udGFpbmVkIG5vIGRhdGEsIGlmIGl0IHdhcyBuZXcgb3IgbmV3bHkgZW1wdHksIGl0IHdvdWxkCgkgIGJlIG1pc2hhbmRsZWQgaWYgaXQgd2VyZSB0aGUgY3VycmVudCByYW5nZS4KCjIwMTAtMDctMDUgMTM6NDM6MDUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGxvY2tpbmcgYXJvdW5kIGluaXRfcmFuZ2VzCgkgIFRoaXMgZml4ZXMgYSBzZWdmYXVsdCB3aGVyZSB0aGUgcmVhZHkgdG8gcGF1c2VkIHN0YXRlIGNoYW5nZSBjYXVzZXMKCSAgZnJlZWluZyBhbmQgYWxsb2NhdGlvbiBvZiBuZXcgcmFuZ2VzIHdoaWxlIGFub3RoZXIgdGhyZWFkIGlzIHRyeWluZyB0bwoJICB1c2UgdGhlbS4KCjIwMTAtMDctMDIgMTc6NDA6MDggKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogTW9yZSByaW5nIGJ1ZmZlciBmaXhlcwoJICAtIFNldCByZWFkaW5nX3BvcyBjb3JyZWN0bHkgaW4gX2NyZWF0ZV9yZWFkICgpCgkgIC0gU2VlayB0byBkYXRhIGlmIGl0IGlzIGZ1cnRoZXIgdGhhbiBRVUVVRV9NQVhfQllURVMgKHF1ZXVlKSAtCgkgIGN1cl9sZXZlbC5ieXRlcyBhd2F5LiBUaGlzIHNob3VsZCBhdm9pZCBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgcmluZwoJICBidWZmZXIgaXMgZnVsbCBidXQgdGhlIGRhdGEgb2Zmc2V0IGZyb20gd2hpY2ggd2Ugc2hhbGwgcmVhZCBpcyBub3QgaW4KCSAgdGhlIHJpbmcgYnVmZmVyLgoJICAtIE9ubHkgdXBkYXRlIHRoZSBtYXhfcmVhZGluZ19wb3MgdG8gYSBsb3dlciB2YWx1ZSB0byBwcm90ZWN0IGRhdGEgd2hlbgoJICBuZWNlc3NhcnkKCSAgLSBBbHdheXMgc2lnbmFsIGFuIEFERCBpbiBfbG9ja2VkX2VucXVldWUgKCkgc28gdGhhdCBhbiBFT1MgdW5sb2NrcyB0aGUKCSAgcmVhZGVyCgkgIC0gTW9yZSB1c2VmdWwgZGVidWcgb3V0cHV0CgoyMDEwLTA2LTI4IDE3OjUwOjA2ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJpbmcgYnVmZmVyIGZpeGVzCgkgIE9uZSBtdXN0IG5vdCBhZmZlY3QgdGhlIHZhbHVlcyBvZiB0aGUgY3VycmVudCByYW5nZSBiYXNlZCBvbiBhIHJlYWQKCSAgcmVxdWVzdCBiZWZvcmUgdGhlIGNvcnJlY3QgcmFuZ2UgaXMgYWN0aXZhdGVkLgoKMjAxMC0wNi0yNSAxMjo1ODoyNyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYnVncwoJICB1cGRhdGVfYnVmZmVyaW5nICgpIG5lZWRzIHRvIGJlIGNhbGxlZCBldmVyeSB0aW1lIHdlIHdyaXRlIHRvIHRoZSByaW5nCgkgIGJ1ZmZlciBzbyB0aGF0IGFwcGxpY2F0aW9ucyBkb24ndCBnZXQgc3R1Y2sgd2FpdGluZyBmb3IgYSAxMDAlIGJ1ZmZlcmVkCgkgIG1lc3NhZ2Ugd2hpbGUgcXVldWUyIGlzIHdhaXRpbmcgZm9yIHNwYWNlCgkgIF9jcmVhdGVfd3JpdGUgKCkgbXVzdCBvbmx5IGJlIGNhbGxlZCBmb3IgdGVtcCBmaWxlL3JpbmcgYnVmZmVyIGNhc2VzCgoyMDEwLTA2LTE4IDE3OjQzOjQwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGV4dGVuZCByaW5nIGJ1ZmZlciB0byBzdXBwb3J0IHJhbSBtb2RlCgoyMDEwLTA2LTE4IDE0OjM2OjMzICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG1lcmdlIHdyaXRlIGJ1ZmZlciBmdW5jdGlvbnMgYW5kIGZpeCBidWdzCgkgIENhY2hlZCBkYXRhIGNvdWxkIGhhdmUgYmVlbiBvdmVyd3JpdHRlbiBzbyBpdCBpcyBub3cgcHJvdGVjdGVkIHVudGlsCgkgIGl0IGlzIHJlYWQuIFNpbWlsYXJseSBkYXRhIHdhcyBvdmVycmVhZCBhcyBfaGF2ZV9kYXRhICgpIHdhcyBhbHdheXMKCSAgbG9va2luZyBmb3IgdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkIGRhdGEgZXZlbiBpZiBwYXJ0IG9mIGl0IGhhZCBiZWVuCgkgIHJlYWQgYWxyZWFkeS4KCjIwMTAtMDYtMTcgMTA6MTg6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNtYWxsIGNsZWFudXAKCjIwMTAtMDYtMTYgMTg6MjU6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFudXAgd3JpdGVfdG9fcmluZ19idWZmZXIKCSAgVXNlIGN1cl9sZXZlbC5ieXRlcyB0byBzZWUgaG93IG11Y2ggc3BhY2UgaXMgZnJlZSBpbiB0aGUgcmluZ2J1ZmZlci4KCSAgU2ltcGx5ZnkgdGhlIHdyaXRlIGZ1bmN0aW9uLCBhdm9pZCB0YWtpbmcgc3ViYnVmZmVycywgbW92ZSB3YWl0aW5nIGZvciBmcmVlCgkgIHNwYWNlIGluIG9uZSBzcG90LCB1c2Ugc2ltcGx5IGNvdW50ZXIgdG8gd3JpdGUgZGF0YSBvZiBhIGJ1ZmZlci4KCjIwMTAtMDYtMTYgMTc6MDM6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFudXBzCgkgIEFkZCBhIG1hY3JvIHRvIGdldCB0aGUgbWF4IHNpemUgb2YgdGhlIHF1ZXVlIGluIGJ5dGVzLCB3aGljaCBkZXBlbmRzIG9uIHRoZQoJICBtYXhfbGV2ZWwuYnl0ZXMgYW5kIHRoZSByaW5nX2J1ZmZlcl9tYXhfc2l6ZS4KCSAgU29tZSBjbGVhbnVwcy4KCjIwMTAtMDYtMTYgMTY6MjM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMDYtMTYgMTY6MTM6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFudXBzCgkgIE1ha2Ugc3VyZSB0aGUgY3VyX2xldmVsLmJ5dGVzIGlzIHVwZGF0ZWQgYWZ0ZXIgd2UgY2hhbmdlIHRoZSB3cml0aW5nX3BvcyBvciB0aGUKCSAgbWF4X3JlYWRpbmdfcG9zLgoJICBSZWZhY3RvciBnZXRfZnJlZV9zcGFjZSgpCgkgIEFkZCBzb21lIGNvbW1lbnRzCgoyMDEwLTA2LTE2IDEyOjAwOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgdW5uZWVkZWQgc2lnbmFsCgoyMDEwLTA2LTE2IDEyOjAwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgYnVmZmVyaW5nIG1vZGUgY29ycmVjdGx5CgoyMDEwLTA2LTE2IDExOjIwOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggY2FsY3VsYXRpb24gb2YgYXZhaWxhYmxlIHJpbmdidWZmZXIgZGF0YQoKMjAxMC0wNi0xNiAxMToxMTozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVhZGluZ19wb3MgaXMgdXBkYXRlZCBpbiBjcmVhdGVfcmVhZCBvbmx5CgoyMDEwLTA2LTE2IDExOjExOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWZhY3RvciBhbmQgYWRkIGRlYnVnCgoyMDEwLTA2LTE2IDExOjEwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZmx1c2hpbmcKCjIwMTAtMDYtMTYgMTE6MDk6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBkZWJ1ZwoKMjAxMC0wNi0xNSAxNzoyNjoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgdHJ5IHRvIHdyaXRlIDAgYnl0ZXMKCjIwMTAtMDYtMTUgMTY6MTI6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI7IGNsZWFudXBzIGFuZCBmaXhlcwoJICBNYWtlIGEgbWFjcm8gZm9yIHNvbWUgZnJlcXVlbnQgY2hlY2tzCgkgIEVtaXQgdGhlIHJlbW92ZWQgc2lnbmFsIGluIGFsbCBjYXNlcyB3aGVuIHdlIHJlbW92ZSBzb21ldGhpbmcKCjIwMTAtMDYtMTUgMTI6Mzc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlZmFjdG9yaW5ncwoJICBDaGVjayBhbmQgaGFuZGxlIHNlZWsgZXJyb3JzCgkgIFJlZmFjdG9yIHRoZSB3YWl0X2ZyZWVfc3BhY2UgZnVuY3Rpb24uCgoyMDEwLTA2LTE2IDEyOjI0OjI1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSByaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wIHRvIGNvbnRyb2wgcmluZyBidWZmZXIKCjIwMTAtMDYtMDYgMDk6MzA6NDggKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQ2xlYW4gdXAgYW5kIGltcHJvdmUgY29kZQoKMjAxMC0wNS0yNiAwNDoxMTo0OCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggY29uZGl0aW9ucyB3aGVyZSBiZWhhdmlvdXIgc2hvdWxkIGRpZmZlciBiZXR3ZWVuIHJpbmcgYnVmZmVyIGFuZCB0ZW1wIGZpbGUKCjIwMTAtMDUtMTkgMTY6MDQ6MTUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHVzZWZ1bCBkZWJ1ZyBtZXNzYWdlcyBhbmQgZml4IGFuIGFzc3VtcHRpb24gaW4gX2hhdmVfZGF0YSAoKQoKMjAxMC0wNS0xOCAxNzo0MjowNyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggYnVmZmVyaW5nIHBlcmNlbnRhZ2UgaW4gcmluZyBidWZmZXIgbW9kZQoKMjAxMC0wNS0xOCAxNzoyMTo0MCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB2YXJpb3VzIHJpbmcgYnVmZmVyIGZpeGVzCgkgIC0gbWFrZSBfZ2V0X3JhbmdlICgpIGVtaXQgdGhlIGRlbCBzaWduYWwgb25jZSBhIGJ1ZmZlciBoYXMgYmVlbiByZWFkCgkgIC0gdXNlIGRvIHt9IHdoaWxlICgpOyBmb3Igd2FpdCBjb2RlIGFzIHF1ZXVlIGlzIGxvY2tlZCBhbmQgbm8gZGF0YSBjb3VsZAoJICBoYXZlIGJlZW4gcmVhZCBpbiB0aGUgbWVhbiB0aW1lIHNvIGl0IG1ha2VzIG5vIHNlbnNlIHRvIGNoZWNrIGJlZm9yZQoJICB3YWl0aW5nCgkgIC0gbWFrZSBfaXNfZmlsbGVkICgpIG1vcmUgcm9idXN0CgoyMDEwLTA1LTA3IDA5OjMwOjQ0ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHJpbmcgYnVmZmVyIHdvcmsgaW4gcHJvZ3Jlc3MKCjIwMTAtMDUtMDUgMTA6MjE6NTUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHVzZS1yaW5nLWJ1ZmZlciBhbmQgcmluZy1idWZmZXItbWF4LXNpemUgcHJvcGVydGllcwoKMjAxMC0wNi0xNSAwODo1OToxMSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgU1QtRXJpY3Nzb24gY29weXJpZ2h0CgoyMDEwLTA4LTEzIDE3OjIzOjMxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNlOGRiMWQgdG8gZWM2MDIxNwoKMjAxMC0wOC0xMiAyMjowODo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogeHJlZnMgZ2xpYiBzeW1ib2wgaW4gZG9jcwoKMjAxMC0wOC0xMiAxNjowNTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGdzdGNvbGxlY3RwYWRzOiBGaXggZG9jcyBhYm91dCBHc3RDb2xsZWN0RGF0YSBsaXN0CgkgIEFkZCB0byB0aGUgZG9jcyB0aGUgZmFjdCB0aGF0IGlzIG9ubHkgc2FmZSB0byBpdGVyYXRlCgkgIEdzdENvbGxlY3RQYWQncyBkYXRhIGxpc3QgaW5zaWRlIHRoZSBjb2xsZWN0ZWQgY2FsbGJhY2suCgkgIEZpeGVzICM2MTAzNjYKCjIwMTAtMDgtMTAgMTA6NTY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiZDIwNTRiIHRvIDNlOGRiMWQKCjIwMTAtMDgtMDQgMTE6MjQ6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfQVBQTElDQVRJT05fTkFNRSB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgZm9yIHJlcHJlc2VudGluZyBhcHBsaWNhdGlvbiB1c2VkIHRvIGNyZWF0ZQoJICBhIG1lZGlhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjYwMjcKCjIwMTAtMDgtMDggMTc6NTc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogSW5pdGlhbGl6ZSB0aGUgR1R5cGUgY2FjaGUgZm9yIHRoZSBidWZmZXJsaXN0IGFnYWluCgkgIFRoaXMgd2FzIGFjY2lkZW50aWFsbHkgcmVtb3ZlZCB3aXRoIGxhc3QgY29tbWl0LgoKMjAxMC0wOC0wNiAxOTozODoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBEb24ndCBjaGFpbiB1cCBmaW5hbGl6ZSB0byB0aGUgcGFyZW50IGNsYXNzCgkgIEdzdE1pbmlPYmplY3Q6OmZpbmFsaXplIGRvZXMgbm90aGluZyBhbmQgdGhpcyBwcmV2ZW50cyBhCgkgIHJ1bnRpbWUtdHlwZS1jaGVjayBjYXN0IGFuZCBmdW5jdGlvbiBjYWxsIHBlciBidWZmZXIgbGlzdC4KCjIwMTAtMDctMjAgMDk6MjM6MTEgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBtYWtlIF9nZXRfdHlwZSgpIGluIGdzdC8qIHRocmVhZCBzYWZlCgkgIFRoaXMgaXMgbm90IHJlYWxseSBuZWNlc3NhcnkgaGVyZSBiZWNhdXNlIGV2ZXJ5dGhpbmcgaXMKCSAgaW5pdGlhbGl6ZWQgZnJvbSBnc3RfaW5pdCgpIGFscmVhZHkgYnV0IHVzaW5nIEdfREVGSU5FX1RZUEUoKQoJICByZW1vdmVzIHNvbWUgY29weSZwYXN0ZSBib2lsZXJwbGF0ZSBjb2RlLgoKMjAxMC0wOC0wNiAxOTozNDo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBwbHVnaW5zOiBBZGQgZGVjbGFyYXRpb25zIGZvciBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA3LTIwIDA5OjIzOjU0IC0wNTAwICBTaGl4aW4gWmVuZyA8emVuZy5zaGl4aW5AZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgcGx1Z2luczogTWFrZSAqX2dldF90eXBlKCkgaW4gcGx1Z2lucy8qIHRocmVhZCBzYWZlCgkgIEl0J3Mgbm90IHJlYWxseSBuZWVkZWQgaGVyZSBidXQgdXNpbmcgR19ERUZJTkVfVFlQRSgpIHJlZHVjZXMKCSAgc29tZSBjb3B5JnBhc3RlIGJvaWxlcnBsYXRlIGNvZGUuCgoyMDEwLTA4LTA2IDE4OjQzOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNYWtlIHN1cmUgdGhlIGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgY2hhbmdpbmcgaXQKCjIwMTAtMDgtMDUgMTM6NTY6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjAwNGQwMyB0byBiZDIwNTRiCgoyMDEwLTA4LTA1IDEwOjA0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogc3BlZWQgdXAgcGFkIGxpbmtpbmcgdXRpbGl0eSBmdW5jdGlvbnMgYnkgbm90IHRyeWluZyBwYWRzIHRoYXQgd2lsbCBuZXZlciB3b3JrCgkgIEluIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCgpLCB3aGVuIHRyeWluZyB0byBmaW5kIGEgY29tcGF0aWJsZSBwYWQgb24gYW4KCSAgZWxlbWVudCBmb3IgYSBnaXZlbiBwYWQsIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY2hlY2tpbmcgdGhlIGVsZW1lbnQncyBzaW5rIHBhZHMKCSAgaWYgdGhlIHBhZCB0byBsaW5rIGlzIGEgc2luayBwYWQgYXMgd2VsbCwgb3IgdGhlIGVsZW1lbnQncyBzb3VyY2UgcGFkcyBpZiB0aGUKCSAgZ2l2ZW4gcGFkIGlzIGEgc291cmNlIHBhZCBhbHJlYWR5LCBzaW5jZSB0aG9zZSB3b3VsZCBuZXZlciBiZSBhYmxlIHRvIGxpbmsKCSAgYW55d2F5LiBTaG91bGQgc3BlZWQgdXAgbGlua2luZyB1c2luZyB0aGUgY29udmVuaWVuY2UgZnVuY3Rpb25zIGEgbGl0dGxlIGJpdCwKCSAgb3IgYXQgbGVhc3QgcmVkdWNlIGRlYnVnIGxvZyBvdXRwdXQuCgoyMDEwLTA4LTA1IDEwOjMyOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB0YWtlIHRoZSB0aW1lc3RhbXAgYSB0aWNrIGxhdGVyCgkgIFRoZSBsb2dnaW5nIGlzIG5vdCBhbiBhdG9taWMgb3BlcmF0aW9uIGFuZCBiZWNhdXNlIG9mIHRoZSBtdWx0aS10aHJlYWRpbmcgd2UgZW5kCgkgIHVwIHdpdGggb3V0LW9mLW9yZGVyIGxvZyBsaW5lcy4gVG9vbHMgdGhhdCBwcmVzZW50IHRoZSBsb2ctZmlsZSBzaG91bGQgcHJvYmFibHkKCSAgcmVzb3J0IHRoZSBsaW5lcy4gVGhpcyBjaGFuZ2UganVzdCB0YWtlcyB0aGUgdGltZXN0YW1wIGEgYml0IGNsb3NlciB0byB0aGUKCSAgYWN0dWFsIGxvZ2dpbmcuCgoyMDEwLTA4LTA1IDA5OjM2OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgZGVidWc6IGxvZ2dpbmcgaW1wcm92ZW1lbnRzCgkgIFVzZSB0aGUgZXZlbnQgc2VyaWFsaXNhdGlvbi4gTG9nIGZvcm1hdHMgbmFtZSBpbnN0ZWFkIG9mIG51bWJlci4KCjIwMTAtMDctMTUgMTU6NDY6MjQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBkb24ndCB1c2UgYysrIGtleXdvcmRzIGFzIHZhcmlhYmxlIG5hbWVzCgoyMDEwLTA3LTE1IDExOjM3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbG9nIHNlZWsgZXZlbnQgZGV0YWlscwoKMjAxMC0wNy0xMiAxMDo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGdzdC1jb250cm9sbGVyIGNoYXB0ZXIKCSAgVGhlIGRvY3Mgd2VyZSBzdGlsbCBkZXNjcmliaW5nIGRlcHJlY2F0ZWQgYXBpLiBVcGRhdGUgaXQgdG8gdGVsbCBhYm91dAoJICBjb250cm9sLWNvdXJjZXMuCgoyMDEwLTA3LTA5IDE1OjU4OjUwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICB0ZXN0czogY2xlYW4gdXAgZXZlbnRsb29wIGluIGV4YW1wbGVzCgkgIERvbid0IGxlYWsgdGhlIGJ1cy4gRG9uJ3QgcGFyc2UgbWVzc2FnZXMgd2l0aCB0aGUgbWV0aG9kIGZvciBlcnJvcnMgKHRyaWdnZXJzCgkgIGdvYmplY3Qgd2FybmluZykuCgoyMDEwLTA3LTA4IDE0OjA4OjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogaGFuZGxlIGVycm9ycyBmcm9tIHRoZSBwaXBlbGluZQoJICBDYXRjaCBlcnJvcnMgYW5kIHdhcm5pbmdzIG9uIHRoZSBidXMuIFRoaXMgZml4ZXMgaGFuZ2luZyBwaXBlbGluZXMgaW4gdGhlIGNhc2UKCSAgb2YgYnVncyBlbHNld2hlcmUuIEFsc28gcHJpbnQgc3RhdGUtY2hhbmdlIG1lc3NhZ2VzIHRvIGdpdmUgbW9yZSBkZXRhaWwgb24gdGhlIHByb2dyZXNzLgoKMjAxMC0wNy0wNiAxODoyMDo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGNsZWFudXAgbGFzdCBjaGFuZ2UgaW4gY2Fwc25lZ28gYmVuY2htYXJrCgkgIEEgcGFkIG5hbWUgaXMgbm90IGEgZmFjdG9yeSBuYW1lLgoKMjAxMC0wNy0wNiAxNDoyOTozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIGRvY3M6IG1vcmUgZG9jcyBmb3IgZ3N0X3BhcnNlX2xhdW5jaCBhbmQgY28KCSAgVGVsbCBhYm91dCBsaW1pdGVkIHJldXNhYmlsaXR5IG9mIHNvbWUgcGFyc2VkIHBpcGVsaW5lcy4KCjIwMTAtMDctMDUgMTY6MzI6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHBhZCBpbmZvIG91dHB1dCBpbXByb3ZlbWVudHMKCSAgRG9uJ3QgcHJpbnQgZW1wdHkgcXVlcnkgdHlwZXMuIEFsc28gcHJpbnQgY2Fwcy12bWV0aG9kcy4KCjIwMTAtMDctMDYgMTY6NDc6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBsb2cgZWxlbWVudDpwYWQgbmFtZXMgd2l0aCBjYXBzCgoyMDEwLTA2LTMwIDExOjQ2OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGJldHRlciBlcnJvciBsb2dnaW5nIGluIGxpbmtfcGFkc19maWx0ZXJlZAoKMjAxMC0wNi0yNCAxMDowMDowNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIHRlc3RzOiBhZGQgY29tbWVudHMgdGVsbGluZyB0aGUgbWVhbmluZyBvZiB0aGUgYWJicmV2aWF0aW9ucwoKMjAxMC0wNy0wNSAxMjoxOToyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIHNvbWUgY2FwcyBtYW5pcHVsYXRpb24KCSAgQWZ0ZXIgdGhlIGludGVyc2VjdCB3ZSBoYXZlIHdyaXRhYmxlIGNhcHMuIENvcHkgdGhlIHRlbXBsYXRlIGNhcHMgc28gdGhhdCBhbHNvCgkgIHRoZXJlIHdlIGhhdmUgd3JpdGFibGUgY2Fwcy4KCjIwMTAtMDgtMDUgMDE6MDk6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBhZGQgYmFzaWMgdW5pdCB0ZXN0IGZvciBnc3RfcGFkX3Byb3h5X2dldGNhcHMoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI0MjAzCgoyMDEwLTA4LTA1IDAxOjA2OjU3ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IE1ha2UgZ3N0X3BhZF9wcm94eV9nZXRjYXBzKCkgcmV0dXJuIGVtcHR5IGNhcHMgaWYgaXQncyB3aGF0IHRoZSBvdGhlciBzaWRlIGhhcwoJICBnc3RfcGFkX3Byb3h5X2dldGNhcHMoKSB3b3VsZCByZXR1cm4gdGhlIHBhZCB0ZW1wbGF0ZSBjYXBzIGlmIHRoZSBvdGhlciBzaWRlCgkgIHJldHVybmVkIGVtcHR5IGNhcHMgb3IgaWYgdGhlIGludGVyc2VjdGlvbiBvZiBhbGwgdGhlIGNhcHMgb24gdGhlIG90aGVyIHNpZGUKCSAgd2FzIGVtcHR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI0MjAzCgoyMDEwLTA4LTA0IDE5OjE5OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBDaGVjayBpZiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgSVNPIEM4OSBvciBDOTkgYW5kIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHJlcXVpcmVkCgkgIFRoaXMgZmlyc3QgY2hlY2tzIHdoYXQgaXMgcmVxdWlyZWQgZm9yIElTTyBDOTkgc3VwcG9ydCBhbmQgc2V0cyB0aGUgcmVsZXZhbnQKCSAgY29tcGlsZXIgcGFyYW1ldGVycyBhbmQgaWYgbm8gQzk5IGNvbXBpbGVyIGlzIGZvdW5kLCBpdCBjaGVja3MgZm9yIGEKCSAgQzg5IGNvbXBpbGVyLiBUaGlzIGVuYWJsZXMgdXMgdG8gY2hlY2sgZm9yIGFuZCB1c2UgQzg5L0M5OSBmdW5jdGlvbnMKCSAgdGhhdCBnY2MgaGlkZXMgZnJvbSB1cyB3aXRob3V0IHRoZSBjb3JyZWN0IGNvbXBpbGVyIHBhcmFtZXRlcnMuCgoyMDEwLTA4LTA0IDEzOjQ3OjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBGaXggZG9jcwoJICBGaXggdHlwbyBpbiBkb2NzIGZvciB0aGUgdW5zaWduZWQgcGVlayBmdW5jdGlvbnMKCjIwMTAtMDctMDUgMTA6MDA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVtb3ZlIFxuIGZyb20gZGVidWcgc3RhdGVtZW50cwoKMjAxMC0wOC0wMyAxMTozNzoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBmaXggYnVpbGQgd2l0aCBndGstZG9jIGZyb20gZ2l0CgkgIEZvciBzb21lIHJlYXNvbiB0aGUgc3RhdGljIGlubGluZSBmdW5jdGlvbiBHU1RfQ0FUX0xFVkVMX0xPR192YWxpc3QgaXMKCSAgbm93IHBpY2tlZCB1cCwgd2hpY2ggdGhlbiBicmVha3MgdGhlIGJ1aWxkIGJlY2F1c2UgaXQncyBub3QgZG9jdW1lbnRlZCwKCSAgc28gYWRkIGl0IHRvIHRoZSBzZWN0aW9ucyBmaWxlLgoJICBCYXNlZCBvbiBwYXRjaCBieSBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4uCgkgIEZpeGVzICM2MjU4NjIuCgoyMDEwLTA3LTE1IDIzOjA1OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogYWRkIGNvbW1lbnQgYW5kIG1vcmUgbG9nZ2luZwoKMjAxMC0wNy0yOSAxNzoyNzowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvd25sb2FkIG1vZGU7IHByZXZlbnQgcmFuZ2UgY29ycnVwdGlvbiBkdWUgdG8gcmFjZQoJICBDdXJyZW50IHJhbmdlIHdhcyBiZWluZyB1cGRhdGVkIGluIHRoZSB0aHJlYWQgcGVyZm9ybWluZyBzZWVrLCBidXQgYXMKCSAgbm8gbG9ja3Mgd2VyZSBrZXB0IGZvciBhIHNob3J0IHNlY3Rpb24sIGRhdGEgZmxvdyBjb3VsZCByZXN1bWUgYmVmb3JlCgkgIGN1cnJlbnQgcmFuZ2UgdXBkYXRlZCwgc28gZGF0YSBmb3IgdGhlIG5ldyByYW5nZSB3b3VsZCBiZSBhY2NlcHRlZCBhcwoJICBmcm9tIHRoZSBwcmV2aW91cyByYW5nZS4KCSAgUmF0aGVyLCByYW5nZSBzaG91bGQgYmUgdXBkYXRlZCBpbiBzZXJpYWxpemVkIG1hbm5lciBiYXNlZCBvbgoJICBuZXdzZWdtZW50IGV2ZW50LgoKMjAxMC0wNS0yMiAxNjozMzoxMSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm0gZml4IGZvciB1cHN0cmVhbSBjYXBzLXJlbmVnb3RpYXRpb24KCSAgSWYgaW5pdGlhbGx5IHBhc3MtdGhyb3VnaCBjYXBzIGFyZSBuZWdvdGlhdGVkIGJldHdlZW4gYSB0cmFuc2Zvcm0gZWxlbWVudCdzCgkgIHNpbmsgYW5kIHNyYyBwYWRzLCBidXQgdGhlbiB0aGUgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybnMgZGlmZmVyZW50IGNhcHMKCSAgb24gYSBidWZmZXIgZnJvbSBwYWRfYWxsb2MoKSwgYmFzZXRyYW5zZm9ybSBnZXRzIHN0dWNrIHdpdGggcHJveHlfYWxsb2M9VFJVRQoJICBldmVuIHRob3VnaCB0aGUgdXBzdHJlYW0gcGVlciBkb2Vzbid0IGFjY2VwdCB0aGUgY2FwcywgY2F1c2luZwoJICBnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMoKSB0byBiZSBjYWxsZWQgb24gZWFjaCBidWZmZXIgaW4gX2J1ZmZlcl9hbGxvYygpOgoJICBpZiAoIWdzdF9jYXBzX2lzX2VxdWFsIChuZXdjYXBzLCBjYXBzKSkgewoJICBHU1RfREVCVUdfT0JKRUNUICh0cmFucywgImNhcHMgYXJlIG5ldyIpOwoJICAvKiB3ZSBoYXZlIG5ldyBjYXBzLCBzZWUgaWYgd2UgY2FuIHByb3h5IGRvd25zdHJlYW0gKi8KCSAgPj4gICAgaWYgKGdzdF9wYWRfcGVlcl9hY2NlcHRfY2FwcyAocGFkLCBuZXdjYXBzKSkgewoJICAvKiBwZWVyIGFjY2VwdHMgdGhlIGNhcHMsIHJldHVybiBhIGJ1ZmZlciBpbiB0aGlzIGZvcm1hdCAqLwoJICBHU1RfREVCVUdfT0JKRUNUICh0cmFucywgInBlZXIgYWNjZXB0ZWQgbmV3IGNhcHMiKTsKCSAgd2hpY2ggaXMgdGFraW5nIH40MG1zL2ZyYW1lLgoJICBUaGlzIHBhdGNoIGRvZXMgdHdvIHRoaW5ncy4gICgxKSBpZiB0aGUgYnVmZmVyIHJldHVybmVkIGZyb20gcGFkX2FsbG9jKCkgaGFzCgkgIG5ldyBjYXBzLCB0cmlnZ2VyIHRoZSBkZWNpc2lvbiB3aGV0aGVyIHRvIHByb3h5IHRoZSBidWZmZXItYWxsb2MgdG8gYmUKCSAgcmV2aXNpdGVkLCBhbmQgKDIpIGRpc2FibGUgcHJveHkgaWYgcGVlciBkb2VzIG5vdCBhY2NlcHQgbmV3IGNhcHMuICAoVGhlIGZpcnN0CgkgIHBhcnQgbWF5IG5vdCBiZSBzdHJpY3RseSBuZWVkZWQsIGJ1dCBzZWVtZWQgbGlrZSBhIGdvb2QgaWRlYS4pCgkgIE5vdGUgdGhhdCB0aGlzIGlzc3VlIHdvdWxkIG5vdCBhcmlzZSBleGNlcHQgaW4gY2FzZSBvZiBkb3duc3RyZWFtIGVsZW1lbnRzCgkgIHdobyBoYXZlIG9uIHRoZWlyIHRlbXBsYXRlLWNhcHMsIHNvbWUgdGhhdCB3b3VsZCBiZSBzdWl0YWJsZSBmb3IgcGFzcy10aHJvdWdoLAoJICBidXQgYXQgcnVudGltZSBwaWNrIG1vcmUgcmVzdHJpY3RpdmUgY2FwcyAoZm9yIGV4LCBhZnRlciBxdWVyeWluZyBhIGRyaXZlciBmb3IKCSAgd2hhdCBmb3JtYXRzIGl0IGFjdHVhbGx5IHN1cHBvcnRzKS4KCjIwMTAtMDctMjcgMTQ6MzA6NTEgKzAyMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGNvbXBpbGF0aW9uIG9uIHdpbmRvd3MKCSAgRml4IG1pc21hdGNoZWQgYnJhY2tldHMgKCM2MjUyOTUpLgoKMjAxMC0wNy0yNyAwNzoyMToxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBsb2NhbHRpbWUgdXNhZ2UKCSAgbG9jYWx0aW1lIG9ubHkgdGFrZXMgb25lIHBhcmFtZXRlciBhbmQgcmV0dXJucyBhIHN0YXRpY2FsbHkKCSAgYWxsb2NhdGVkIHRtIHN0cnVjdC4gVXNlIGl0IGNvcnJlY3RseS4KCSAgRml4ZXMgIzYyNTM2OAoKMjAxMC0wMy0yOSAxODowNTo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFRyeSBzdWdnZXN0aW5nIGNhcHMgb24gYmFkIGNhcHMgcGFkX2FsbG9jCgkgIFdoZW4gYmFzZXRyYW5zZm9ybSByZWNlaXZlZCBhbiB1bnN1cHBvcnRlZCBjYXBzIG9uIHBhZF9hbGxvYwoJICBpdCBqdXN0IHJldHVybmVkIG5vdC1uZWdvdGlhdGVkLiBUaGlzIHBhdGNoIG1ha2VzIGl0IHF1ZXJ5CgkgIHRoZSBhbGxvd2VkIGNhcHMgYmV0d2VlbiBoaXMgc2lua3BhZCBhbmQgdXBzdHJlYW0ncyBzcmNwYWQKCSAgdG8gZmluZCBhIGNhcHMgdG8gc3VnZ2VzdC4KCSAgVGhpcyBoYXBwZW5zIHdoZW4gZGluYW1pY2FsbHkgc3dpdGNoaW5nIHBpcGVsaW5lIGVsZW1lbnRzCgkgIGFuZCB1cHN0cmVhbSBwYWRfYWxsb2NzIHdpdGggdGhlIHByZXZpb3VzIGNhcHMgdGhhdCB3YXMKCSAgYmVpbmcgdXNlZC4KCSAgRml4ZXMgIzYxNDI5NgoKMjAxMC0wNy0yNiAxODo1Mzo1NyArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmbHVzaCBhZ2FpbiBhZnRlciBldmVyeSBsaW5lIG9mIGRlYnVnIG91dHB1dAoJICBnX3ByaW50ZXJyKCkgdXNlZCB0byBkbyB0aGlzIGZvciB1cy4gQWxzbyB1c2UgbGliYydzIGZwcmludGYoKSBmdW5jdGlvbnMsCgkgIHRvIG1ha2Ugc3VyZSB0aGUgc3RkZXJyIHBvaW50ZXIgd2UgdXNlIGlzIGFjdHVhbGx5IGNvbXBhdGlibGUgd2l0aCB0aGUKCSAgbGliYyBsaW5rZWQgYWdhaW5zdCBieSBHU3RyZWFtZXIgKHdoaWNoIGFwcGFyZW50bHkgbWF5IG5vdCBhbHdheXMgYmUgdGhlCgkgIHNhbWUgYXMgd2hhdCBHTGliIGlzIGxpbmtlZCBhZ2FpbnN0IG9uIHdpbmRvd3MpLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGUKCSAgZnVuY3Rpb25hbGl0eSBlbnN1cmVkIGJ5IGdfZnByaW50ZigpLgoJICBGaXhlcyAjNjI1Mjk1LgoKMjAxMC0wNy0yNiAxODo1MzozNSArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wNi0yMyAxMTozMTozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZHMgdGVzdHMgZm9yIGRhdGV0aW1lCgkgIEFkZHMgdGVzdHMgZm9yIGRhdGV0aW1lIGZpZWxkcyBpbiBnc3R2YWx1ZSB0ZXN0cwoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA2LTIzIDExOjMwOjAyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0c3RydWN0dXJlOiBBZGRzIGRhdGV0aW1lIGdldHRlciBmdW5jdGlvbgoJICBBZGRzIGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGVfdGltZSBmdW5jdGlvbgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGVfdGltZQoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA2LTIxIDIzOjQyOjQ0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0RBVEVfVElNRSB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgdGhhdCByZXByZXNlbnRzIGEgZGF0ZSBhbmQgdGltZSBhIG1lZGlhIHdhcwoJICBjcmVhdGVkCgkgIEFQSTogR1NUX1RBR19EQVRFX1RJTUUKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0yMSAyMjowODoyMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogQWRkIGRhdGV0aW1lIGdldCBmdW5jdGlvbnMKCSAgQWRkcyBfZGF0ZV90aW1lX2dldCBhbmQgX2RhdGVfdGltZV9nZXRfaW5kZXggZnVuY3Rpb25zIHRvCgkgIHRhZ2xpc3QuCgkgIEFQSTogZ3N0X3RhZ19saXN0X2dldF9kYXRlX3RpbWUKCSAgQVBJOiBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfdGltZV9pbmRleAoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTIxIDIyOjA0OjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkcyBkYXRldGltZSBmdW5jdGlvbnMKCSAgQWRkcyBhIGRhdGV0aW1lIGZ1bmN0aW9ucyB0byBnc3R2YWx1ZQoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTE2IDE0OjA5OjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGRhdGV0aW1lOiBBZGRzIEdzdERhdGVUaW1lCgkgIEFkZHMgR3N0RGF0ZVRpbWUgdG8gcmVwcmVzZW50IGRhdGVzICsgdGltZSArIHRpbWV6b25lCgkgIGluZm9ybWF0aW9uLgoJICBUZXN0cyBpbmNsdWRlZC4KCSAgQVBJOiBHc3REYXRlVGltZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X2RheQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X21vbnRoCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfeWVhcgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X2hvdXIKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9taWNyb3NlY29uZAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X21pbnV0ZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X3NlY29uZAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X3RpbWVfem9uZV9vZmZzZXQKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ldwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2xvY2FsX3RpbWUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX3VuaXhfZXBvY2gKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19ub3dfbG9jYWxfdGltZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X25vd191dGMKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3JlZgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfdW5yZWYKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0yNiAxNDo1OTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4IHVzYWdlIG9mIGdsaWJfY2hlY2tfdmVyc2lvbigpCgkgIEl0IHJldHVybnMgTlVMTCBpZiB0aGUgaW5zdGFsbGVkIEdMaWIgdmVyc2lvbiBpcyBhcyBsZWFzdCBhcwoJICBuZXcgYXMgdGhlIHJlcXVpcmVkIHZlcnNpb24gYW5kIHNvbWUgZXhwbGFuYXRvcnkgc3RyaW5nIG90aGVyd2lzZS4KCjIwMTAtMDctMjMgMjA6NDY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IG1ha2UgZ3N0LWluc3BlY3QgcHJpbnQgdGhlIHJlbGVhc2UgZGF0ZSB0aW1lIHN0YW1wCgoyMDEwLTA2LTIxIDE3OjM0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVzZSBuZXcgQUdfR1NUX1NFVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUVfV0lUSF9OQU5PIG1hY3JvCgoyMDEwLTA2LTIwIDAxOjU1OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IHNhdmUgYW5kIGxvYWQgcmVsZWFzZSBkYXRlIHRpbWUgaW4gR3N0UGx1Z2luRGVzYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzMDQwCgoyMDEwLTA2LTIwIDAwOjMzOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYWRkIHJlbGVhc2UgZGF0ZXRpbWUgZmllbGQgdG8gR3N0UGx1Z2luRGVzYyBhbmQgc2V0IGl0IGlmIEdTVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUUgaXMgZGVmaW5lZAoJICBUaGlzIGlzIGEgc3RyaW5nIGRlc2NyaWJpbmcgYSBkYXRlIGFuZC9vciBkYXRlL3RpbWUgaW4gYSBzaW1wbGUgc3Vic2V0IG9mCgkgIHRoZSBJU08tODYwMSBmb3JtYXQsIG5hbWVseSBlaXRoZXIgIllZWVktTU0tREQiIG9yICJZWVlZLU1NLUREVEhIOk1NWiIgKHdpdGgKCSAgJ1QnIHRoZSBkYXRlL3RpbWUgc2VwYXJhdG9yIGFuZCB0aGUgJ1onIGluZGljYXRpbmcgVVRDKS4KCSAgVGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIGZpZWxkIGlzIHRvIGtlZXAgdHJhY2sgb2YgcGx1Z2luIGFuZCBlbGVtZW50IHZlcnNpb25zCgkgIG9uIGFuIGFic29sdXRlIHRpbWVsaW5lLCBzbyBpdCdzIHBvc3NpYmxlIHRvIGRldGVybWluZSB3aGljaCBvbmUgaXMgbmV3ZXIgd2hlbgoJICBjb21wYXJpbmcgdHdvIGRhdGUgdGltZSBudW1iZXJzLiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gZXhwcmVzcyAncmVwbGFjZXMnLXR5cGUKCSAgcmVsYXRpb25zaGlwcyBiZXR3ZWVlbiBwbHVnaW5zIGFuZCBlbGVtZW50IGZhY3RvcmllcyBpbiBmdXR1cmUsIGV2ZW4gYWNyb3NzCgkgIGRpZmZlcmVudCBtb2R1bGVzIGFuZCBwbHVnaW4gbWVyZ2VzIG9yIHNwbGl0cyAoc291cmNlIG1vZHVsZSB2ZXJzaW9uIG51bWJlcnMKCSAgYXJlbid0IHBhcnRpY3VsYXJseSB1c2VmdWwgaGVyZSwgc2luY2UgdGhleSBjYW4gb25seSBtZWFuaW5nZnVsbHkgYmUgY29tcGFyZWQKCSAgd2l0aGluIHRoZSBzYW1lIG1vZHVsZSkuIEl0IGFsc28gYWxsb3dzIGFwcGxpY2F0aW9ucyBhbmQgbGlicmFyaWVzIHRvIHJlbGlhYmx5CgkgIGNoZWNrIHRoYXQgYSBwbHVnaW4gaXMgcmVjZW50IGVub3VnaCB3aXRob3V0IG1ha2luZyBhc3N1bXB0aW9ucyBhYm91dCBtb2R1bGVzCgkgIG9yIG1vZHVsZSB2ZXJzaW9ucy4KCSAgV2UgdXNlIGEgc3RyaW5nIGhlcmUgdG8ga2VlcCB0aGluZ3Mgc2ltcGxlIGFuZCBjbGVhciwgZXNwLiBvbiB0aGUgYnVpbGQgc3lzdGVtCgkgIHNpZGUgb2YgdGhpbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzMDQwCgoyMDEwLTA3LTIwIDA5OjI1OjIwIC0wNTAwICBTaGl4aW4gWmVuZyA8emVuZy5zaGl4aW5AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICB0ZXN0czogbWFrZSAqX2dldF90eXBlKCkgaW4gdGVzdHMgdGhyZWFkIHNhZmUKCSAgRXZlbiBpZiBpdCBzaG91bGRuJ3QgYmUgbmVlZGVkIGhlcmUuIFNlZSAjNjIzNDkxLgoKMjAxMC0wNi0wNCAxMToyNDo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB3cml0ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGZpbGUgaWYgR1NUX0RFQlVHX0ZJTEUgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0CgkgIFRoaXMgY2hhbmdlcyBiZWhhdmlvdXIgc2xpZ2h0bHkgaW4gdGhhdCB3ZSBubyBsb25nZXIgb3V0cHV0IHRoaW5ncwoJICB2aWEgZ19wcmludGVycigpLCBzbyBhbnkgbm9uLXN0YW5kYXJkIGdsaWIgcHJpbnRlcnIgaGFuZGxlcnMgYXJlIG5vCgkgIGxvbmdlciBjYWxsZWQgd2hlbiBHU1RfREVCVUcgaXMgZW5hYmxlZC4gSG93ZXZlciwgdGhpcyBzZWVtcyBub3QKCSAgcmVhbGx5IGRlc2lyYWJsZSBpbiBtb3N0IGNhc2VzIGFueXdheSwgYW5kIHRoZSBHTGliIGRvY3MgYWxzbyBzYXkKCSAgdGhhdCBsaWJyYXJpZXMgc2hvdWxkIG5vdCB1c2UgZ19wcmludGVycigpIGZvciBsb2dnaW5nLgoJICBPdGhlciBzdGRlcnIgb3V0cHV0IChlLmcuIHdhcm5pbmdzLCBvciBhcHBsaWNhdGlvbiBtZXNzYWdlcykgd2lsbAoJICBvZiBjb3Vyc2Ugbm90IGJlIGNhcHR1cmVkIGluIHRoZSBsb2cgZmlsZSB0aGlzIHdheS4KCSAgR1NUX0RFQlVHX0ZJTEU9LSB3aWxsIHJlZGlyZWN0IGRlYnVnIG91dHB1dCB0byBzdGRvdXQuCgoyMDEwLTA3LTIwIDIwOjQ5OjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEFzc3VtZSBwYWRzIGFyZSBjb21wYXRpYmxlIGlmIHdlIGRvbid0IGhhdmUgdGVtcGxhdGVzCgkgIFRoaXMgaXMgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGlmIHdlIGhhZCBhIHBhZCB0ZW1wbGF0ZSBjYXBzIG9mCgkgIEdTVF9DQVBTX0FOWSBvbiBhbnkgb2YgdGhlIHBhZHMgKGkuZS4gdGhlIGFjdHVhbCBjaGVjayB3aWxsIGJlIGRvbmUKCSAgZHVyaW5nIGNhcHMgbmVnb3RpYXRpb24pLgoKMjAxMC0wNy0xNyAyMToyODo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxsb3cgdGhlIHN1YmNsYXNzIHRvIGFkZCBuZXcgZmllbGRzIHRvIGNhcHMgd2hlbiBnZXR0aW5nIG5ldyBjYXBzIGZyb20gZG93bnN0cmVhbQoJICBUaGlzIHdhcyBhbHJlYWR5IGRvbmUgaW4gYWxsIG90aGVyIGNhc2VzIHdoZXJlIG5ldyBjYXBzIGFyZSBoYW5kbGVkCgkgIGV4Y2VwdCB1cHN0cmVhbSBuZWdvdGlhdGlvbi4KCjIwMTAtMDctMTIgMTQ6Mzk6MDAgKzAyMDAgIE1pY2hhZWwgQnVuayA8YnVua0BpYXQudW5pLWxlaXB6aWcuZGU+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zIGFuZCBhZGQgc29tZSBtaXNzaW5nIGxpbmtzIGluIHRoZSBhcHAgZGV2IG1hbnVhbAoJICBGaXhlcyAjNjI0MTY0LgoKMjAxMC0wNy0xMiAxNDoyMjo1MCArMDIwMCAgTWljaGFlbCBCdW5rIDxidW5rQGlhdC51bmktbGVpcHppZy5kZT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkgIGRvY3M6IGZpeCB0eXBvIG9uIGdzdC1pbnNwZWN0IG1hbiBwYWdlCgkgIFNlZSAjNjI0MTY0LgoKMjAxMC0wNy0wMyAxNTowODoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogZml4IHNvbWUgc2lsbHkgbGlzdCBpdGVyYXRpb24gY29kZQoJICBnX2xpc3RfbGVuZ3RoKCkgaXMgbm90IHRoZSBiZXN0IHdheSB0byBjaGVjayBpZiBhIGxpc3QgaXMgZW1wdHkgb3Igbm90LgoKMjAxMC0wNy0xNiAxNzo1MzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IHVzZSBHU3RhdEJ1ZiB1bmNvbmRpdGlvbmFsbHkgYW5kIGFkZCB0eXBlZGVmIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQoJICBObyBuZWVkIHRvIGNsdXR0ZXIgdGhlIGNvZGUgd2l0aCAjaWYgI2Vsc2UgI2VuZGlmLgoJICBTZWUgIzYyMzg3NS4KCjIwMTAtMDctMTYgMTc6MzM6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogVXNlIGEgY29uc3QgR3N0U3RydWN0dXJlICogYXMgcGFyYW1ldGVyIGZvciBzb21lIG1vcmUgZ3N0X3N0cnVjdHVyZV9nZXQgdmFyaWFudHMKCjIwMTAtMDctMTQgMTk6NDc6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgIi1sYXVuY2g6IGRpc2FibGUgQ0xPQ0tfTE9TVCBtZXNzYWdlIGhhbmRsaW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDFmOGViYTYxMWE2M2Y0NTc2NmMzOGM2NDAyODhlNDJiMjdiMTBiZDQuCgkgIFRoaXMgc2hvdWxkIGJlIGZpeGVkIG5vdyAoYW5kIGlmIG5vdCBzaG91bGQgYmUgZml4ZWQpIGFuZCB0aGUKCSAgY2xvY2stbG9zdCBoYW5kbGluZyBpcyBub3cgbmVlZGVkIGZvciBwbGF5YmluMiBnYXBsZXNzIHBsYXliYWNrLgoJICBTZWUgYnVnICM1NzkxMjcuCgoyMDEwLTA3LTA4IDIxOjA0OjU0ICswMjAwICBEYXZpZCBIb3l0IDxkaG95dEBsbG5sLmdvdj4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeWJpbmFyeTogRml4IGNvbXBhdGliaWxpdHkgd2l0aCBHTGliIDIuMjUgd2hlbiB1c2luZyBNU1ZDCgkgIE5ld2VyIEdMaWIgdXNlcyBhIG5ldyB0eXBlIGZvciBnX3N0YXQoKSBhbmQgZnJpZW5kcyB0byBpbXByb3ZlCgkgIFdpbmRvd3MgY29tcGF0aWJpbGl0eS4gT24gUE9TSVggdGhpcyBpcyBhIHR5cGVkZWYgdG8gc3RydWN0IHN0YXQuCgkgIEZpeGVzIGJ1ZyAjNjIzODc1LgoKMjAxMC0wNy0wOCAwNzo0ODowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IElmIHRoZSBjdXJyZW50bHkgdXNlZCBjbG9jayBnZXRzIGxvc3QgdXBkYXRlIGl0IHRoZSBuZXh0IHRpbWUgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0byBwbGF5aW5nCgkgIEZpeGVzIGJ1ZyAjNjIzODA2LgoKMjAxMC0wNy0wNSAxOTozMzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmV0dXJuIHZhbHVlcyBpbiBzdHJlYW0gdGltZSBmb3IgdGhlIFBPU0lUSU9OIHF1ZXJ5CgkgIEZpeGVzIGJ1ZyAjNjIzNjIyLgoKMjAxMC0wNy0wNSAxODo1NDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbXBsZW1lbnQgR3N0RWxlbWVudDo6Z2V0X3F1ZXJ5X3R5cGVzKCkKCjIwMTAtMDctMDYgMTA6MTM6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogT25seSBhbnN3ZXIgdGhlIFNFR01FTlQgcXVlcnkgaW4gcHVsbCBtb2RlCgkgIE90aGVyd2lzZSB0aGUgZWxlbWVudCBoYW5kbGluZyB0aGUgc2Vla3Mgc2hvdWxkIGFuc3dlciB0aGlzIHF1ZXJ5LgoJICBGaXhlcyBidWcgIzYyMzYyMi4KCjIwMTAtMDctMDUgMTA6MzY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcGxlbWVudCBQT1NJVElPTiBxdWVyeQoJICBGaXhlcyBidWcgIzYyMzU0MS4KCjIwMTAtMDYtMjUgMTY6MzE6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogRG8gbm90IGNhbGwgZ3N0X3BhZF9hY2NlcHRfY2FwcygpIHdoZW4gY2FwcyBjaGFuZ2UKCSAgSW5zdGVhZCBqdXN0IGNoZWNrIHRoYXQgdGhlIGNhcHMgaW50ZXJzZWN0IHdpdGggdGhlIHBhZCB0ZW1wbGF0ZS4KCSAgVGhlIGVsZW1lbnRzIHNob3VsZCBwcm9wZXJseSBhY2NlcHQvcmVmdXNlIHRoZSBjYXBzIGluIHNldGNhcHMoKS4KCSAgU2hhdmVzIG9mZiBjYWxsaW5nIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGFjY2VwdGNhcHMgd2hpY2ggZG9lcwoJICBhbiBleHBlbnNpdmUgZ3N0X3BhZF9nZXRfY2FwcygpIChzbyBpZiB5b3UgaGF2ZSA1MCBvZiB0aG9zZSBlbGVtZW50cyBpbgoJICBhIHJvdywgeW91J2QgYmUgZG9pbmcgZmFjdG9yaWFsKDUwKSBnc3RfcGFkX2dldF9jYXBzLi4uKS4KCSAgRG9lcyBub3QgYnJlYWsgYW55IG1vZHVsZSB1bml0IHRlc3QgYW5kIG1vc3QgYXBwcyB3b3JrIGZpbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI3NDAKCjIwMTAtMDctMDggMTY6MjQ6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEFkZCBtb3JlIGRldGFpbHMgYWJvdXQgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkCgoyMDEwLTA3LTE2IDExOjE2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQuCgo9PT0gcmVsZWFzZSAwLjEwLjMwID09PQoKMjAxMC0wNy0xNCAyMzo1OTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzAKCjIwMTAtMDctMTQgMTc6NTg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vZGUucG86CgkqIHBvL2lkLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDctMTUgMTI6MDE6MjQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgY29tbWEgYXQgdGhlIGVuZCBvZiB0aGUgbGFzdCBlbnVtIHZhbHVlCgkgIEZpeGVzIHRoZSBidWlsZCBmb3IgYysrLgoKMjAxMC0wNy0xMSAxOTowMDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIGNoZWNrczogYWRkIHVuaXQgdGVzdCBmb3IgcmVjZW50IHRhZ2xpc3QgbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hIGZpeAoJICBTZWUgIzYyNDExMy4KCjIwMTAtMDctMTEgMTg6NTk6NTMgKzAxMDAgIEVkdWFyZG8gRG9iYXkgPGVkdWRvYmF5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCBtZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSBmb3IgbW9yZSB0aGFuIHR3byBzdHJpbmdzCgkgIEZpeGVzICM2MjQxMTMuCgoyMDEwLTA3LTA4IDEzOjQ2OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogaWdub3JlIG5ldyBiYXNlc2luayB1bml0IHRlc3QgYmluYXJ5CgoyMDEwLTA3LTA4IDEzOjQzOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcmVtb3ZlIC1wIHNob3J0aGFuZCBmb3IgLS1uby1zaWd1c3ItaGFuZGxlcgoJICBJdCdzIG5vdCByZWFsbHkgbmVlZGVkLCBhbmQgZG9lc24ndCBtYXAgYW55IGxvbmdlciBhZnRlciB0aGUgbG9uZyBvcHRpb24KCSAgaGFzIGJlZW4gcmVuYW1lZC4KCjIwMTAtMDctMDYgMTU6NDc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjkuNCBwcmUtcmVsZWFzZQoJICBBbHNvIGJ1bXAgbGlidG9vbCB2ZXJzaW9ucyBub3cgKHdoaWNoIEkgbWVhbnQgdG8gZG8gZm9yIHRoZSBmaXJzdAoJICBwcmUtcmVsZWFzZSBidXQgZm9yZ290KS4KCjIwMTAtMDctMDYgMjM6NDQ6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNy0wNiAxNjoyMTowNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBhZGQgYWNjZXNzb3JzIGZvciB0aGUgZW5hYmxlLWxhc3QtYnVmZmVyIHByb3BlcnR5LgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X2xhc3RfYnVmZmVyX2VuYWJsZWQKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2lzX2xhc3RfYnVmZmVyX2VuYWJsZWQKCjIwMTAtMDctMDYgMTI6MTg6NDUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIG5ldyBlbmFibGUtbGFzdC1idWZmZXIgcHJvcGVydHkuCgkgIEFkZCBhIG5ldyBlbmFibGUtbGFzdC1idWZmZXIgcHJvcGVydHkuIFdoZW4gZmFsc2UsIGl0IGRpc2FibGVzIHN0b3JpbmcgdGhlIGxhc3QKCSAgcmVjZWl2ZWQgYnVmZmVyIGluIGJhc2VzaW5rOjpsYXN0LWJ1ZmZlci4gVGhpcyBjYW4gYmUgdXNlZnVsIGluIGNhc2VzIHdoZXJlCgkgIGJ1ZmZlcnMgbmVlZCB0byBiZSByZWxlYXNlZCBhc2FwLgoJICBBUEk6IEdzdEJhc2VTaW5rOjplbmFibGUtbGFzdC1idWZmZXIKCjIwMTAtMDctMDYgMTA6NDg6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBjaGVja3M6IHJld3JpdGUgZ3N0dGFnc2V0dGVyIHRlc3QgdG8gdXNlIGZld2VyIGdfdXNsZWVwKCkKCSAgU29tZXRoaW5nIGFib3V0IHRoYXQgc2VlbXMgdG8gaW50ZXJhY3QgYmFkbHkgd2l0aCBzb21lIHNjaGVkdWxlcnMsCgkgIHNvIGRvIHRoaW5ncyBkaWZmZXJlbnRseS4KCSAgRml4ZXMgIzYyMzQ2OS4KCjIwMTAtMDctMDYgMTA6MTk6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBhZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCgpIHRvIGRvY3MKCSAgQVBJOiBhZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbAoJICBTZWUgIzYyMzU4OS4KCjIwMTAtMDctMDYgMTA6Mjg6MTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEltcHJvdmUgZ3N0X3ZhbHVlX3tzZXR8Z2V0fV9jYXBzIGRvY3MKCjIwMTAtMDctMDYgMTA6MzU6MDkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGV4cG9ydCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsCgoyMDEwLTA3LTA2IDEwOjMxOjI1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogcmVtb3ZlIEFCSSBjaGVja3MgZm9yIEdzdENsb2NrRW50cnkuCgoyMDEwLTA3LTA1IDE4OjQ1OjU1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBkb2N1bWVudCB0aGF0IEdzdENsb2NrRW50cnkgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW5hIG9wYXF1ZSBzdHJ1Y3R1cmUuCgoyMDEwLTA3LTA1IDEzOjEwOjA5ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiB1c2UgdGhlIG5ldyBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsLgoJICBVc2UgdGhlIG5ldyBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsIGluIGdzdF9jbG9ja19zZXRfbWFzdGVyLgoJICBBbHNvIGFkZCBzb21lIHRlc3RzLgoKMjAxMC0wNy0wNSAxMzowMTo1MyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogZml4IHJlZmNvdW50aW5nIGJ1ZyBpbiBnc3RfY2xvY2tfc2V0X21hc3Rlci4KCSAgTWFrZSBzdXJlIGNsb2NrLT5jbG9ja2lkIGlzIHVucmVmZmVkIGJlZm9yZSBjbG9jay0+bWFzdGVyLgoJICBnc3RfY2xvY2tfaWRfdW5zY2hlZHVsZSAoY2xvY2stPmNsb2NraWQpIHRyaWVzIHRvIGFjY2VzcyBjbG9jay0+bWFzdGVyLiBJZgoJICBjbG9jay0+bWFzdGVyIGlzIHVucmVmZmVkIGJlZm9yZSBhbmQgaXQncyBkZWFsbG9jYXRlZCwgX3Vuc2NoZWR1bGUgY291bGQgYWNjZXNzCgkgIGZyZWUnZCBtZW1vcnkuCgoyMDEwLTA3LTA1IDEyOjU2OjQwICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogYWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuCgkgIEFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsLiBJdCdzIHRoZSBzYW1lIGFzIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jIGJ1dAoJICBhbGxvd3MgcGFzc2luZyBhIEdEZXN0cm95Tm90aWZ5IHRvIGRlc3Ryb3kgdXNlcl9kYXRhLgoKMjAxMC0wNy0wNSAxNzo1MDozMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogaW1wcm92ZSB0aGUgYXBpIGRvY3MgZm9yIG5ldyBHc3RQYWRMaW5rQ2hlY2tzIGFuZCBpdHMgdXNlCgoyMDEwLTA3LTA1IDEyOjIxOjUxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9SRUFETUU6CgkgIFJFQURNRTogdXBkYXRlIGFmdGVyIHJlbW92YWwgb2YgIm9sZCIgZGlyLgoJICBSZW1vdmUgIm9sZCIgYW5kIGFkZCBhIGxpbmUgYWJvdXQgImV4YW1wbGVzIi4KCjIwMTAtMDctMDQgMTc6MzQ6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvVE9ETzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9ldmVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9ldmVudHMvc2Vlay5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZDIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZDIvaGVsbG93b3JsZDIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3Bpbmdwb25nLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9waW5ncG9uZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3Bpbmdwb25nL3Bpbmdwb25nLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnL2V4dHJhY3QucGw6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUzL3F1ZXVlMy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWU0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTQvcXVldWU0LmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL1J1bGVzOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvYXBwX2ZpeGF0ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvYXVkaW9zY2FsZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY2Fwcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY2Fwcy5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY2Fwc19zdHJpbmdzOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY29tcGF0aWJpbGl0eS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2VudW1jYXBzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9lcmF0b3N0aGVuZXMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZpeGVkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1jb252ZXJ0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1tdWx0aXBseS1hbmQtemVyby5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0Mi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3JlbmVnb3RpYXRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zaW1wbGlmeS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc3RyaW5nLWNvbnZlcnNpb25zLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zdHJ1Y3R1cmUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3N1YnRyYWN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvY2F0ZWdvcnkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9jb21tYW5kbGluZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2dsb2JhbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL291dHB1dC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuL2Rsb3Blbl9nc3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vbG9hZGdzdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWluc3BlY3QtY2hlY2suaW46CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3Rfc2l6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9wYXJzZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9wYXJzZTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL1JFQURNRToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vZHluYW1pYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9saW5rZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vbG9hZGluZy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9yZWdpc3RyeS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vc3RhdGljMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yX3MuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbl9zLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9iaW4uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudF9wYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9tYWlubG9vcC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL29iamVjdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3BhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvdGhyZWFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzLzE1OTU2Ni5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvMTU5ODUyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3F1ZXVlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zdGF0aWNyZWMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaS5jOgoJICBSZW1vdmUgb2xkIDAuOCB0ZXN0cyBhbmQgZXhhbXBsZXMgZnJvbSBnaXQgdHJlZQoJICBEb2Vzbid0IHJlYWxseSBsb29rIGxpa2UgYW55dGhpbmcncyB3b3J0aCBrZWVwaW5nLgoKMjAxMC0wNy0wMyAxNjozOTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBza2lwIHNpbGx5IHRlc3QgdGhhdCBzZWdmYXVsdHMgd2hlbiBpbiBhIENLX0ZPUks9bm8gZW52aXJvbm1lbnQKCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAzIDE1OjEzOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSAgY2hlY2tzOiBtYWtlIGZha2VzcmMgY2hlY2sgd29yayBpbiBhIENLX0ZPUks9bm8gZW52aXJvbm1lbnQKCSAgUmVzZXQgaGF2ZV9lb3MgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHRlc3QuCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMyAxNDowOTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgIGNoZWNrczogcnVuIHRlc3RzIGNhbGxpbmcgZ3N0X2RlaW5pdCgpIGxhc3Qgc28gdGhpbmdzIHdvcmsgd2l0aCBDS19GT1JLPW5vCgkgIEJlY2F1c2UgZ3N0X2luaXQoKSB3aWxsIGZhaWwgb25jZSBnc3RfZGVpbml0KCkgaGFzIGJlZW4gY2FsbGVkLgoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDMgMTQ6MDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgY2hlY2tzOiBkb24ndCBhc3N1bWUgZWxlbWVudCBmYWN0b3J5IGlzIG5vdCBsb2FkZWQgeWV0CgkgIEl0IG1heSBhbHJlYWR5IGJlIGxvYWRlZCBpZiBjaGVjayBpcyBiZWluZyBydW4gd2l0aCBDS19GT1JLPW5vLgoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDEgMTk6NTg6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgZG9jczogZml4IGEgY291cGxlIG9mIHR5cG9zIGluIHRoZSBtYW51YWwKCSAgU3BvdHRlZCBieSBBbGV4YW5kZXIgU2FwcnlraW4uCgkgIEZpeGVzICM2MjIzNzkuCgoyMDEwLTA3LTAxIDE3OjU2OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogTWFrZSBzdXJlIF9ub3JtYWxpemUoKSBpcyBhcHBsaWVkIG9uIGFsbCBzdHJ1Y3R1cmVzLgoJICBXZSBuZWVkIHRvIHVzZSBnc3RfY2Fwc19nZXRfc2l6ZSgpIGluIHRoZSBsb29wIGNvdW50ZXIgc2luY2Ugc29tZQoJICBzdHJ1Y3R1cmVzIGNvdWxkIGJlIGFkZGVkIHdoaWxlIGl0ZXJhdGluZy4KCSAgRml4ZXMgIzYyMzMwMQoKMjAxMC0wNi0zMCAxMzoxNjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgZG9jczogdXBkYXRlICdYTUwgaW4gR1N0cmVhbWVyJyBzZWN0aW9uIGluIGFwcGxpY2F0aW9uIGRldmVsb3BlcidzIG1hbnVhbAoKMjAxMC0wNi0yOSAxODo0ODowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI5LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDYtMjUgMTk6MDM6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaW1wbGVtZW50IGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgT3VyIGFjY2VwdGNhcHMgZnVuY3Rpb24gY2FuIHNpbXBseSBmb3J3YXJkIHRoZSBxdWVyeS4KCjIwMTAtMDYtMjggMTU6Mjg6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIGF1dG9tYWtlIHJlcXVpcmVtZW50IHRvIDEuMTAKCSAgRm9yIG1haW50YWluYWJpbGl0eSByZWFzb25zIGFuZCAkKGJ1aWxkZGlyKS4KCSAgRml4ZXMgIzYyMjk0NC4KCjIwMTAtMDYtMjggMTM6NTY6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogbWVudGlvbiAtLWVvcy1vbi1zaHV0ZG93biBvbiBnc3QtbGF1bmNoIG1hbiBwYWdlCgoyMDEwLTA2LTI4IDEwOjIwOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogRG9uJ3QgdXNlIEdfR05VQ19DT05TVCBmb3IgdGhlIHVpbnQ2NCBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGV5IGFyZSBhY3R1YWxseSAqbm90KiBjb25zdCBmdW5jdGlvbnMgYmVjYXVzZSBvbiBhcmNoaXRlY3R1cmVzCgkgIHdpdGhvdXQgaW50MTI4IGluc3RydWN0aW9ucyB0aGUgcGFyYW1ldGVycyB3ZXJlIGNoYW5nZWQuCgkgIGdjYyByZS11c2VkIHRoZSBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjayBmb3IgbXVsdGlwbGUgY2FsbHMgdGhvdWdoCgkgIGFuZCB0aGUgY2hhbmdlZCBwYXJhbWV0ZXJzIHdlcmUgdXNlZCBmb3IgdGhlIHNlY29uZCBjYWxsIHRoZW4uCgkgIEZpeGVzIGJ1ZyAjNjIzMDAzLgoKMjAxMC0wNi0yNiAxNzo0ODozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjkuMiBwcmUtcmVsZWFzZQoKMjAxMC0wNi0yNiAxNzo0Nzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA2LTI2IDEwOjE2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICBleGFtcGxlczogcmVtb3ZlIHhtbCBleGFtcGxlIGJ1aWxkIHN5c3RlbSBiaXRzIGFuZCBwdXJnZSBmcm9tIHRyZWUKCSAgRml4ZXMgbWFrZSBkaXN0Y2hlY2suCgoyMDEwLTA2LTI2IDA5OjU5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgeG1sOiBrZWVwIGR1bW15IGdzdF94bWxfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgZy1pIGV2ZW4gaWYgcmVzdCBvZiBHc3RYTUwgaXMgcmVtb3ZlZAoJICBBZGQgYSBtaW5pbWFsIGdzdF94bWxfZ2V0X3R5cGUoKSBmdW5jdGlvbiwgc28gdGhhdCBnb2JqZWN0LWludHJvc3BlY3Rpb24gZG9lc24ndAoJICBicmVhayB0aGUgY29tcGlsYXRpb24gaWYgd2UncmUgY29tcGlsaW5nIHdpdGggR1NUX1JFTU9WRV9ERVBSRUNBVEVEIGRlZmluZWQgb3IKCSAgLS1kaXNhYmxlLWxvYWRzYXZlIGhhdmluZyBiZWVuIHBhc3NlZCB0byBjb25maWd1cmUuIFVudGlsIHNvbWVvbmUgZmlndXJlcyBvdXQKCSAgYSBiZXR0ZXIgd2F5IGF0IGxlYXN0LgoKMjAxMC0wNi0yNiAwMTowMTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkgIERvbid0IGluY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4gZnJvbSBwdWJsaWMgaGVhZGVycyBpZiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzIGRlZmluZWQKCSAgU2luY2UgZXZlcnl0aGluZyBHc3RYTUwgcmVsYXRlZCBoYXMgYmVlbiBkZXByZWNhdGVkLCB3ZSBjYW4gbm93IHNraXAgdGhlCgkgIGxpYnhtbCBpbmNsdWRlcyBmcm9tIHRoZSBwdWJsaWMgaGVhZGVycyB3aGVuIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMKCSAgZGVmaW5lZC4KCSAgU2VlICM0NjM0MzUuCgoyMDEwLTA2LTI2IDAwOjE4OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgIGV4YW1wbGVzOiBhZGQgbWlzc2luZyBzdGRsaWIuaCBpbmNsdWRlIGluIHR5cGVmaW5kIGV4YW1wbGUKCjIwMTAtMDYtMjUgMjE6MjM6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRvdC1kdW1wOiB0ZXJtaW5hdGUgdHJ1bmNhdGVkIHN0cmluZ3MgYW5kIGVzY2FwZSBzcGVjaWFsIGNoYXJzCgkgIEZpeGVzIHN5bnRheCBlcnJvcnMgaW4gZ2VuZXJhdGVkIGRvdCBmaWxlcyBmb3IgY2FwcyB3aXRoIHN0cmluZ3MuCgoyMDEwLTA2LTI1IDE4OjUyOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW9yZSBkb2N1bWVudGF0aW9uIHJlZ2FyZGluZyB0aGUgbmV3IGZsYWdzCgoyMDEwLTA2LTI1IDE4OjE4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1ha2UgdGhlIE5PVEhJTkcgbGluayBjaGVjayBmbGFnIGJlIDAKCSAgTWFrZSB0aGUgcGFkIGxpbmsgY2hlY2sgb2YgTk9USElORyBiZSAwLiBUaGlzIHdheSB3ZSBoYXZlIGEgZmxhZyBmb3IgZWFjaAoJICBmZWF0dXJlIGFuZCAwIHdoZW4gbm8gZmxhZ3MgYXJlIHNldC4KCjIwMTAtMDYtMjUgMTg6MjQ6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IFJlbW92ZSBHc3RYTUwgdGVzdHMKCjIwMTAtMDYtMjUgMTg6MTM6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9nc3R4bWwuaDoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0eG1sOiBEZXByZWNhdGUgR3N0WG1sIGFuZCByZWxhdGVkIGZ1bmN0aW9ucwoJICBQaXBlbGluZSBzZXJpYWxpc2F0aW9uIHRvIGFuZCBmcm9tIFhNTCBpcyBob3JyaWJseSBicm9rZW4gZm9yIGFsbAoJICBidXQgdGhlIG1vc3Qgc2ltcGxlIHVzZSBjYXNlcywgYW5kIHdpbGwgbGlrZWx5IG5ldmVyIGJlIGZpeGVkLgoJICBNYWtlIHN1cmUgZXZlcnlvbmUgcGxheWluZyBhcm91bmQgd2l0aCB0aGVzZSB0b29scyBpcyBhd2FyZSBvZgoJICB0aGlzLCB0byBhdm9pZCBmcnVzdHJhdGlvbi4gU2VlIGNvdW50bGVzcyBidWcgcmVwb3J0cyBpbiBidWd6aWxsYS4KCSAgRml4ZXMgYnVnICM2MjI2ODUuCgoyMDEwLTA2LTI1IDE4OjExOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBGaXggYnVpbGQgd2l0aCBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQKCjIwMTAtMDYtMjQgMTI6MTk6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IFVzZSBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbAoJICBXZSdyZSB0ZXN0aW5nIGNhcHMgbmVnb3RpYXRpb24sIG5vdCBwYWQgbGlua2luZy4gQnJpbmdzIHRoZSBzdGFydHVwCgkgIHRpbWUgZG93biAxMDAgZm9sZC4KCjIwMTAtMDYtMjQgMTc6NTM6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QteG1sbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBkZXByZWNhdGUgZ3N0LXhtbGxhdW5jaCBhbmQgcHJpbnQgZmF0IHdhcm5pbmcgaWYgc29tZW9uZSB0cmllcyB0byB1c2UgaXQKCSAgUGlwZWxpbmUgc2VyaWFsaXNhdGlvbiB0byBhbmQgZnJvbSBYTUwgaXMgaG9ycmlibHkgYnJva2VuIGZvciBhbGwKCSAgYnV0IHRoZSBtb3N0IHNpbXBsZSB1c2UgY2FzZXMsIGFuZCB3aWxsIGxpa2VseSBuZXZlciBiZSBmaXhlZC4KCSAgTWFrZSBzdXJlIGV2ZXJ5b25lIHBsYXlpbmcgYXJvdW5kIHdpdGggdGhlc2UgdG9vbHMgaXMgYXdhcmUgb2YKCSAgdGhpcywgdG8gYXZvaWQgZnJ1c3RyYXRpb24uIFNlZSBjb3VudGxlc3MgYnVnIHJlcG9ydHMgaW4gYnVnemlsbGEuCgoyMDEwLTA2LTI0IDE3OjIyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZW5hbWUgbmV3IC0tbm8tcGxheSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIC0tbm8tc2lndXNyLWhhbmRsZXIKCSAgLS1uby1wbGF5IHNlZW1zIGEgYml0IGNvbmZ1c2luZy4KCSAgRml4ZXMgIzYyMTg2Ny4KCjIwMTAtMDYtMjQgMTU6MDc6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzNmZjkzYSB0byBhNTE5NTcxCgoyMDEwLTA2LTIzIDExOjAyOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJICBiaW5hcnlyZWdpc3RyeTogaWdub3JlIHRoZSBwbHVnaW4gY2FjaGUgaWYgdGhlIGZpbHRlciBlbnZpcm9ubWVudCBoYXMgY2hhbmdlZAoJICBNYWtlIHN1cmUgdGhhdCB3ZSBwcm9wZXJseSB1cGRhdGUgdGhlIHJlZ2lzdHJ5IGFuZCB0aGUgY2FjaGUgZmlsZSB3aGVuZXZlcgoJICB0aGUgZmlsdGVyIGVudmlyb25tZW50IGNoYW5nZXMgb3IgdGhlcmUncyBubyBtb3JlIGZpbHRlciBzZXQuCgoyMDEwLTA1LTI3IDEyOjM2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbmxvYWRpbmc6IGFkZCBzdXBwb3J0IGZvciB3aGl0ZWxpc3RpbmcgYmFzZWQgb24gcGx1Z2luIG9yIHNvdXJjZSBtb2R1bGUgbmFtZSBhbmQgcGF0aAoJICBUaGlzIGZlYXR1cmUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciB1c2UgaW4gcGx1Z2luIG1vZHVsZXMnIHVuaXQgdGVzdHMuCgkgIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOiBnc3QtcGx1Z2lucy1nb29kIGlzIGJ1aWx0IGFnYWluc3QgYW4KCSAgaW5zdGFsbGVkIEdTdHJlYW1lciBjb3JlLiBBbiBvbGRlciB2ZXJzaW9uIG9mIGdzdC1wbHVnaW5zLWdvb2QgaXMgYWxzbwoJICBpbnN0YWxsZWQgaW4gdGhhdCBwcmVmaXgsIGFsb25nIHdpdGggcmFuZG9tIG90aGVyIHBsdWdpbiBtb2R1bGVzLiBOb3csCgkgIHdoZW4gZG9pbmcgJ21ha2UgY2hlY2snIGluIHRoZSBqdXN0LWJ1aWx0IGdzdC1wbHVnaW5zLWdvb2QgdHJlZSwgd2UKCSAgd2FudCB0byBvbmx5IGxvYWQgcGx1Z2lucyBmcm9tIEdTdHJlYW1lciBjb3JlLCBnc3QtcGx1Z2lucy1iYXNlLCBhbmQKCSAgZ3N0LXBsdWdpbnMtZ29vZCwgYnV0IG5vdCByYW5kb20gb3RoZXIgbW9kdWxlcyAod2UgZG9uJ3Qgd2FudCBhbnkgdW5pdAoJICB0ZXN0cyB0byBmYWlsIGp1c3QgYmVjYXVzZSBzb21lIG1vZHVsZSBpbiBnc3QtcGx1Z2lucy1iYWQgaGFzIGEgYnJva2VuCgkgIHBsdWdpbl9pbml0LCBmb3IgZXhhbXBsZSkuIEFsc28sIHdlIHdhbnQgdG8gb25seSBsb2FkIGdzdC1wbHVnaW5zLWdvb2QKCSAgbW9kdWxlcyBmcm9tIHRoZSBsb2NhbGx5LWJ1aWx0IHNvdXJjZSB0cmVlLCBidXQgbm90IGFueSBvZiB0aGUgb2xkZXIKCSAgZ3N0LXBsdWdpbnMtZ29vZCBtb2R1bGVzIGluc3RhbGxlZC4gVGhpcyBpcyB1c3VhbGx5IGFzc3VyZWQgYnkgbG9hZGluZwoJICB0aGUgb25lcyBpbiB0aGUgc291cmNlIHRyZWUgZmlyc3QgKGJ5IGFkZGluZyB0aGF0IHBhdGggZmlyc3QgdG8gdGhlCgkgIHJpZ2h0IGVudmlyb25tZW50IHZhcmlhYmxlcyksIGJ1dCBpdCBnZXRzIHRyaWNreSB3aGVuIHBsdWdpbnMgYXJlCgkgIG1vdmVkLCByZW1vdmVkLCBtZXJnZWQsIG9yIHJlbmFtZWQsIG9yIHRoZSBwbHVnaW4gZmlsZW5hbWUgY2hhbmdlcy4KCSAgTm90ZSB0aGF0ICdtYWtlIGNoZWNrJyBzaG91bGQgcmVhbGx5IHdvcmsgcmlnaHQgd2l0aG91dCBkb2luZwoJICAnbWFrZSBpbnN0YWxsJyBvciB1bmluc3RhbGxpbmcgdGhlIG9sZCBnc3QtcGx1Z2lucy1nb29kIHBhY2thZ2UgKG9yCgkgIGFueSBvdGhlciBnc3QtcGx1Z2lucy1mb28gcGFja2FnZSkgZmlyc3QuCgkgIEVudGVyIEdTVF9QTFVHSU5fTE9BRElOR19XSElURUxJU1QuIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbWF5CgkgIGNvbnRhaW4gc291cmNlLXBhY2thZ2VAcGF0aC1wcmVmaXggcGFpcnMgc2VwYXJhdGVkIGJ5IHRoZSBwbGF0Zm9ybQoJICBzZWFyY2ggcGF0aCBzZXBhcmF0b3IgKEdfU0VBUkNIUEFUSF9TRVBBUkFUT1JfUykuIFRoZSBzb3VyY2UgcGFja2FnZQoJICBhbmQgcGF0aCBwcmVmaXggYXJlIHNlcGFyYXRlZCBieSB0aGUgJ0AnIGNoYXJhY3Rlci4gVGhlIHBhdGggcHJlZml4IGlzCgkgIGVudGlyZWx5IG9wdGlvbmFsLCBhcyBpcyB0aGUgJ0AnIHNlcGFyYXRvciBpZiBubyBwYXRoIGlzIGdpdmVuLgoJICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGZpbHRlciBiYXNlZCBvbiBwbHVnaW4gbmFtZXMgaW5zdGVhZCBvZiB0aGUgbmFtZQoJICBvZiB0aGUgc291cmNlLXBhY2thZ2UgYnkgc3BlY2lmeWluZyBvbmUgb3IgbW9yZSBwbHVnaW4gbmFtZXMgc2VwYXJhdGVkCgkgIGJ5IGNvbW1hcyBiZWZvcmUgdGhlIG9wdGlvbmFsIHBhdGggcHJlZml4LgoJICBJbiBzaG9ydCwgdGhlIGZvbGxvd2luZyBtYXRjaCBwYXR0ZXJucyBhcmUgcG9zc2libGU6CgkgIHBsdWdpbjEscGx1Z2luMkBwYXRocHJlZml4IG9yCgkgIHBsdWdpbjEscGx1Z2luMkAqIG9yIGp1c3QKCSAgcGx1Z2luMSxwbHVnaW4yIG9yCgkgIHNvdXJjZS1wYWNrYWdlQHBhdGhwcmVmaXggb3IKCSAgc291cmNlLXBhY2thZ2VAKiBvciBqdXN0CgkgIHNvdXJjZS1wYWNrYWdlCgkgIFNvIGZvciBvdXIgZ3N0LXBsdWdpbnMtZ29vZCB1bml0IHRlc3QgZXhhbXBsZSBhYm92ZSwgd2UgIHdvdWxkIHNldCB0aGUKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgb24gKm5peCB0byBzb21ldGhpbmcgbGlrZSB0aGlzICh3aWxsIGxpa2VseSBiZSBhCgkgIHJlbGF0aXZlIHBhdGggaW4gcHJhY3RpY2UpOgoJICBnc3RyZWFtZXI6Z3N0LXBsdWdpbnMtYmFzZTpnc3QtcGx1Z2lucy1nb29kQC9wYXRoL3RvL3NyYy9nc3QtcGx1Z2lucy1nb29kCgkgIEZpeGVzICM2MTk4MTUgYW5kICM2MTk3MTcuCgoyMDEwLTA2LTIzIDE3OjI0OjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdGdob3N0cGFkOiBXZSBkb24ndCBuZWVkIGFueSBjaGVja3Mgd2hlbiBsaW5raW5nIHRhcmdldCBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjUwNAoKMjAxMC0wNi0yMyAxNzowMDoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBOZXcgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwgbWV0aG9kCgkgIExpbmtzIHRoZSBlbGVtZW50cyB3aXRoIHRoZSBzcGVjaWZpZWQgcGFkIGxpbmtpbmcgY2hlY2tzLgoJICBBUEk6Z3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjUwNAoKMjAxMC0wNi0yMyAxNjo0NToxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RQYWQ6IEFkZCBuZXcgcGFkIGxpbmtpbmcgbWV0aG9kIHdpdGggY29uZmlndXJhYmxlIGNoZWNrcy4KCSAgVG8gYmUgdXNlZCBmb3IgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgbmVlZCBhbGwgY2hlY2tzIHRvIGJlIHZhbGlkYXRlZC4KCSAgQVBJOiBnc3RfcGFkX2xpbmtfZnVsbAoJICBBUEk6IEdzdFBhZExpbmtDaGVjawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTE1IDE4OjI2OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0lNQUdFX09SSUVOVEFUSU9OIHRhZwoJICBBZGRzIGEgbmV3IHRhZyB0byBpbmZvcm0gYWJvdXQgdGhlIGltYWdlIG9yaWVudGF0aW9uIGFuZCBob3cKCSAgdG8gcm90YXRlIGFuZCBmbGlwIGl0IGJlZm9yZSBkaXNwbGF5LgoJICBOb3RlIHRoYXQgdGhpcyB0YWcgaXMgYSBzdHJpbmcgd2l0aCBhIHByZWRlZmluZWQgc2V0IG9mCgkgIHBvc3NpYmxlIHZhbHVlcy4KCSAgQVBJOiBHU1RfVEFHX0lNQUdFX09SSUVOVEFUSU9OCgkgIEZpeGVzICM2MTk1MDgKCjIwMTAtMDYtMjIgMTg6NTM6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdG9iamVjdDogZGVwcmVjYXRlIGdzdF9vYmplY3Rfe3NldHxnZXR9X25hbWVfcHJlZml4KCkKCSAgVGhlIG5hbWUgcHJlZml4IHN0dWZmIGhhcyBuZXZlciBiZWVuIHVzZWQgZm9yIGFueXRoaW5nIGFuZCBpdCBkb2Vzbid0CgkgIGxvb2sgbGlrZSB3ZSdsbCBldmVyIHdhbnQgdG8gdXNlIGl0IGZvciBhbnl0aGluZy4KCSAgRml4ZXMgIzYyMTAwNi4KCjIwMTAtMDYtMjIgMTA6MjA6NTMgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFubm90YXRpb25zIGZvciBHc3RQYWRJbnRMaW5rRnVuY3Rpb24KCSAgRml4ZXMgYnVpbGQgd2l0aCBsYXRlc3QgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGZyb20gZ2l0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMDI1CgoyMDEwLTA2LTIxIDExOjQxOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWVyZ2luZyBvZiByYW5nZXMKCSAgV2hlbiB3ZSBtZXJnZSB0d28gcmFuZ2VzLCBkb24ndCB1cGRhdGEgdGhlIGN1cnJlbnQgcmFuZ2Ugd3JpdGluZ19wb3Mgd2l0aAoJICB3aGVyZWV2ZXIgd2Ugd2VyZSB3cml0aW5nIGVhcmxpZXIgaW4gdGhlIG1lcmdlZCByYW5nZS4gIFNwb3R0ZWQgYnkgYmlsYm9lZC4KCjIwMTAtMDYtMTkgMTE6MTk6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhbHNvIHNraXAgLmRlcHMgZGlycyB3aGVuIHNjYW5uaW5nIGZvciBwbHVnaW5zCgkgIE5vIG5lZWQgdG8gZGVzY2VuZCBpbnRvIC5kZXBzIGRpcnMgaW4gdW5pbnN0YWxsZWQgc2V0dXBzLCB3ZSBrbm93CgkgIHRoZXNlIGRvbid0IGNvbnRhaW4gYW55IHBsdWdpbnMuCgoyMDEwLTA2LTE3IDExOjM5OjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgZ3N0X3RhZ19saXN0X3BlZWtfc3RyaW5nX2luZGV4IHRvIGF2b2lkIGEgY29weQoJICBBZGRzIGEgdmFyaWF0aW9uIG9mIHRoZSBfZ2V0X3N0cmluZ19pbmRleCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgY29weQoJICB0aGUgc3RyaW5nLgoJICBBUEk6IGdzdF90YWdfbGlzdF9wZWVrX3N0cmluZ19pbmRleAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxODk2CgoyMDEwLTA2LTE4IDEyOjAwOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBtYWtlIHN1cmUgYnVmZmVycycgbWV0YWRhdGEgaXMgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgY2FwcyBvbiB0aGVtCgkgIEZpeGVzIHdhcm5pbmdzIHdoZW4gdXNpbmcgcGxheWJpbjIgd2l0aCBkdmI6Ly8gc3RyZWFtcywgd2hlcmUgdHlwZWZpbmQKCSAgY29tZXMgYWZ0ZXIgbXBlZ3RzcGFyc2UuCgoyMDEwLTA2LTE3IDE1OjUyOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBkb2NzOiB1cGRhdGUgaW50cm9zcGVjdGVkIHBsdWdpbiBkb2NzIGZvciBnc3Rkb2Mtc2Nhbm9iaiBjaGFuZ2VzCgkgIFVwZGF0ZSBjb21tb24gZm9yIGxhdGVzdCBnc3Rkb2Mtc2Nhbm9iaiBhbmQgaW5zcGVjdCB4bWwgZmlsZXMgZm9yCgkgIGVzY2FwaW5nIGFuZCBwYWQgdGVtcGxhdGUgb3JkZXIgY2hhbmdlcy4KCjIwMTAtMDYtMTcgMTM6MTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW5pdGlhbGl6ZSBqaXR0ZXIgdG8gcHJldmVudCBwcmludGluZyBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGlmIHdhaXRpbmcgZm9yIHRoZSBjbG9jayBmYWlsZWQKCjIwMTAtMDYtMTcgMTA6MzQ6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wNi0xNyAwOTozMzo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IGZpeCBhbm90aGVyIHR5cG8gYW5kIHNvbWUgaW5hY2N1cmFjaWVzCgkgIEZpeCBhIHdyb25nIHN0YXRlbWVudCBhbmQgZmxlc2ggb3V0IHNlY3Rpb24gb24gbWVzc2FnZXMgYW5kIHF1ZXJpZXMKCSAgYSBiaXQuCgoyMDEwLTA2LTE3IDA5OjA1OjU4ICswMjAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgbWFudWFsOiBGaXggYW5vdGhlciB0eXBvCgoyMDEwLTA2LTE3IDA5OjA1OjI4ICswMjAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgbWFudWFsOiBGaXggdHlwbwoKMjAxMC0wNi0xNiAxMzoxMTowNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBhbiBhbGxvdy1ub25lIGFubm90YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDoyNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBBZGQgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoJICBUaGVzZSBhcmUgcmVxdWlyZWQgdG8ga25vdyBob3cgdG8gdW5yZWYvcmVmIGFuZAoJICBjb252ZXJ0IHRvL2Zyb20gYSBHVmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MTA6MTMgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBZGQgb3V0IGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MTA6MDYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBBZGQgb3V0IGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MDk6NTcgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogQWRkIG91dCBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjAwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBtYWtlIHN5bmMgcHJvcGVydHkgd29yayBjb3JyZWN0bHkKCSAgRG9uJ3Qgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZ2V0X3RpbWVzIHZtZXRob2Qgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBzeW5jCgkgIHByb3BlcnR5LgoJICBTZXQgdGhlIGRlZmF1bHQgc3luYyBwcm9wZXJ0eSB0byBGQUxTRS4gSXQgdXNlZCB0byBiZSBzZXQgdG8gVFJVRSBidXQgYmVjYXVzZQoJICB0aGUgZ2V0X3RpbWVzIHdhcyBOVUxMLCBpdCBhbHdheXMgYmVoYXZlZCBsaWtlIEZBTFNFLgoJICBGaXhlcyAjNjIxNTMwCgoyMDEwLTA2LTE1IDE4OjQ4OjUzICswMjAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogSW1wcm92ZSBnc3RfZWxlbWVudF9nZXRfbmFtZSgpIGRvY3MKCSAgRml4ZXMgYnVnICM2MjE2NjAuCgoyMDEwLTA2LTE1IDE2OjQ5OjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5MzM5Y2NjIHRvIDM1NjE3YzIKCjIwMTAtMDYtMTUgMTY6NTM6MzUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWFkYjFjYSB0byA5MzM5Y2NjCgoyMDEwLTA2LTE1IDE2OjM0OjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU3Yzg5YjcgdG8gNWFkYjFjYQoKMjAxMC0wNi0xNSAxNTozMToxMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjODA0OTg4IHRvIDU3Yzg5YjcKCjIwMTAtMDYtMTUgMTE6NDg6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJldmVydCAiR3N0UGFkOiBBZGQgR1NUX1BBRF9ORUdPVElBQkxFIEdzdFBhZEZsYWciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGMzOGU3NWQ4OGJkODkyMTg5NTgyMWY3YWZlZDAxY2FiMzBlNDZjOS4KCSAgYm9vbQoKMjAxMC0wNi0xNSAxMTo0ODoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFJldmVydCAiZ3N0cGFkOiBSZXR1cm4gcGFkIHRlbXBsYXRlIGluIGdldF9jYXBzIGlmIHBhZCBpcyBub3QgbmVnb3RpYWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3NDYwMzIxYTYwMDQzODk2NmQ3MTUyYWIyYjQzMThiZTQ4ZWFkY2UwLgoJICBjcmFjawoKMjAxMC0wNi0xNSAxMTo0ODowNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IGZpeCBjb21tZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhlOTJjYjRhN2Q1NmNkZmE0Njc0MzE1YzY0YjU4YzFiMWI5ZDgyMDguCgkgIHdoYXRldmVyLi4uCgoyMDEwLTA2LTE1IDExOjQ3OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBvbmx5IGNsZWFyIG5lZ290aWFibGUgd2hlbiBnb2luZyB0byBOVUxMIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhmNWVjMWY3MzdjM2IzNzUzOGIyMzA3YWVmMTYwZDlkMjFmMWM0MjIuCgkgIGJsZWVlZWgKCjIwMTAtMDYtMTUgMTA6NDY6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogYWRkIGR1bW15IFRSQUNFIGxvZyBsZXZlbCBtYWNyb3MgZm9yIHdoZW4gZGVidWdnaW5nIGlzIGRpc2FibGVkCgkgIEZvcmdvdCB0aG9zZSB3aGVuIGFkZGluZyB0aGUgb3JpZ2luYWwgQVBJLCBqdXN0IGxpa2UgdGhlIEFQSSBtYXJrZXJzCgkgIGluIHRoZSBjb21taXQgbWVzc2FnZToKCSAgQVBJOiBHU1RfVFJBQ0UKCSAgQVBJOiBHU1RfVFJBQ0VfT0JKRUNUCgkgIEFQSTogR1NUX0NBVF9UUkFDRQoJICBBUEk6IEdTVF9DQVRfVFJBQ0VfT0JKRUNUCgkgIEFQSTogR1NUX0xFVkVMX1RSQUNFCgkgIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1ZwoKMjAxMC0wNi0xNSAwMToxNTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByaW50IG1vcmUgZXJyb3JzIHRvIHN0ZGVyciBhbmQgc3VwcHJlc3MgbW9yZSBvdXRwdXQgaW4gcXVpZXQgbW9kZQoJICBJZiAtLXF1aWV0IGlzIGdpdmVuLCBkb24ndCBwcmludCBhbnl0aGluZyBidXQgZXJyb3JzLiBBbHNvLCBtYWtlCgkgIHN1cmUgZXJyb3JzIGFyZSBhbHdheXMgcHJpbnRlZCB0byBzdGRlcnIgYW5kIG5vdCB0byBzdGRvdXQuCgkgIEZpeGVzICM2MjE1OTUuCgoyMDEwLTA2LTE0IDE4OjA3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogb25seSBjbGVhciBuZWdvdGlhYmxlIHdoZW4gZ29pbmcgdG8gTlVMTAoJICBEb24ndCBjbGVhciB0aGUgbmVnb3RpYWJsZSBmbGFnIHdoZW4gZ29pbmcgdG8gUkVBRFkgYmVjYXVzZSB0aGVuIGl0IHdpbGwgbmV2ZXIKCSAgYmUgc2V0IHRvIFRSVUUgYWdhaW4uCgoyMDEwLTA2LTE0IDE3OjMzOjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBjb21tZW50CgoyMDEwLTA1LTE3IDE1OjA2OjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0cGFkOiBSZXR1cm4gcGFkIHRlbXBsYXRlIGluIGdldF9jYXBzIGlmIHBhZCBpcyBub3QgbmVnb3RpYWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NjQ0CgoyMDEwLTA1LTE3IDE1OjA0OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RQYWQ6IEFkZCBHU1RfUEFEX05FR09USUFCTEUgR3N0UGFkRmxhZwoJICBBIHBhZCBpcyAnbmVnb3RpYWJsZScgd2hlbiBpdHMgY29udGFpbmVyIGVsZW1lbnQgaXMgaW4gYSBzdGF0ZSBncmVhdGVyCgkgIHRoYW4gR1NUX1NUQVRFX1JFQURZCgkgIEFQSTpnc3RfcGFkX2lzX25lZ290aWFibGUKCSAgQVBJOmdzdF9wYWRfc2V0X25lZ290aWFibGUKCSAgQVBJOkdTVF9QQURfTkVHT1RJQUJMRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NjQ0CgoyMDEwLTA2LTE0IDE2OjUxOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogdXNlIG1ldGhvZCB0byBzZXQgc3luYyBwcm9wZXJ0eQoJICBVc2UgdGhlIGJhc2VzaW5rIG1ldGhvZCB0byBjb25maWd1cmUgdGhlIHN5bmMgcHJvcGVydHkgaW5zdGVhZCBvZiBwb2tpbmcgdGhlCgkgIHBhcmVudCBzdHJ1Y3R1cmUuCgoyMDEwLTA2LTE0IDE2OjUwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogdXNlIHRoZSBkZWZhdWx0IGdldF90aW1lcyBmdW5jdGlvbgoJICBVc2UgdGhlIGRlZmF1bHQgZ2V0X3RpbWVzIGZ1bmN0aW9uIG9mIGJhc2VzaW5rIHNvIHRoYXQgd2UgaG9ub3VyIHRoZSBzeW5jCgkgIHByb3BlcnR5IGluc3RlYWQgb2YgbmV2ZXIgc3luY2hyb25pemluZyB0byB0aGUgY2xvY2suCgkgIEZpeGVzICM2MjE1MzAKCjIwMTAtMDYtMTQgMTY6MjA6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVldmFsdWF0ZSBwcm94eV9hbGxvYyB3aGVuIHJlY29uZmlndXJlZAoJICBXaGVuIHdlIHJlY29uZmlndXJlIHRoZSB0cmFuc2Zvcm0gZWxlbWVudCwgbWFrZSBzdXJlIHdlIHJlZXZhbHVhdGUgdGhlIHByb3h5aW5nCgkgIG9mIGJ1ZmZlcl9hbGxvYyB0aGUgbmV4dCB0aW1lIGFyb3VuZC4KCSAgRml4ZXMgIzYyMTMzMgoKMjAxMC0wNi0xNCAxNTozOTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgY2FwczogRG9uJ3QgdXNlIGludmFsaWQgZnJhY3Rpb24gcmFuZ2UgaW4gdGhlIHVuaXQgdGVzdAoKMjAxMC0wNi0xNCAxNTozMDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBzb21lIG1vcmUgYXNzZXJ0aW9ucyBhbmQgY2hlY2tzIGZvciB2YWxpZCBpbnB1dCBwYXJhbWV0ZXJzCgoyMDEwLTA1LTI3IDE1OjEzOjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBvcHRpbWl6ZSBwcm9ncmVzc2l2ZSBtYXNrZWRfc2NhbgoJICBSZXRhaW4gdGhlIGxhc3Qgc2Nhbm5lZCBidWZmZXIgZW50cnkgYW5kIG9mZnNldCwgc28gd2UgY2FuIHJlc3VtZSBidWZmZXIKCSAgc2Nhbm5pbmcgdGhlcmUgaW4gY2FzZSBvZiBhIHR5cGljYWwgcHJvZ3Jlc3NpdmUgc2Nhbi4KCSAgQWxzbyBwb3RlbnRpYWxseSBvcHRpbWl6ZSBfY29weSBzdWJzZXF1ZW50bHkgb2NjdXJyaW5nIGluIHRoYXQgYXJlYS4KCjIwMTAtMDUtMjcgMTI6MTU6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IGFkZCBleHRlbmRlZCBtYXNrZWRfc2Nhbl91aW50MzJfcGVlayB0aGF0IGFsc28gcHJvdmlkZXMgbWF0Y2hpbmcgdmFsdWUKCSAgQWxzbyBhZGQgdG8gLmRlZiBhbmQgZG9jcy4KCSAgRml4ZXMgIzYxOTgyOC4KCSAgQVBJOiBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlawoKMjAxMC0wNi0xNCAxMzozODo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZml4IC5kZWYgZmlsZQoKMjAxMC0wNi0xNCAxMjoyNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBhZGQgU2luY2U6IHRhZyBmb3IgbmV3IGdzdF9jYXBzX3N0ZWFsX3N0cnVjdHVyZQoKMjAxMC0wNi0xMSAxNTozNjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBmaXggZXhhbXBsZSB0byB1c2UgYSBjYXRlZ29yeSBuYW1lIHRoYXQgYWN0dWFsbHkgZXhpc3RzCgoyMDEwLTA2LTE0IDExOjM5OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNhcHM6IE5ldyBnc3RfY2Fwc19zdGVhbF9zdHJ1Y3R1cmUoKSBtZXRob2QKCSAgVGhpcyBhbGxvd3MgcmVtb3Zpbmcgc3RydWN0dXJlcyBmcm9tIGNhcHMgd2l0aG91dCB0aGVtIGJlaW5nIGZyZWVkLiBIZWxwZnVsIHdoZW4KCSAgcGx1Z2lucyBuZWVkIHRvIG1vdmUgYXJvdW5kIHN0cnVjdHVyZXMgd2l0aG91dCBoYXZpbmcgdG8gZG8gYW4gZXhwZW5zaXZlIHN0cnVjdHVyZQoJICBjb3B5LgoJICBBUEk6Z3N0X2NhcHNfc3RlYWxfc3RydWN0dXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE1MjcKCjIwMTAtMDYtMTQgMTM6MTA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IERvbid0IGFkZCBHX1RIUkVBRFNfTUFOREFUT1JZIHRvIEdTVF9BTExfQ0ZMQUdTCgkgIEl0J3MgYWxyZWFkeSBpbmNsdWRlZCBpbiBHTElCX0VYVFJBX0NGTEFHUwoKMjAxMC0wNi0xNCAxMzowNzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIEdMSUJfRVhUUkFfQ0ZMQUdTCgoyMDEwLTA2LTE0IDEzOjAyOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2EwZmRmNSB0byBjODA0OTg4CgoyMDEwLTA2LTE0IDEzOjAxOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGZpeCBwcmludGYgZm9ybWF0CgoyMDEwLTA2LTE0IDEyOjM5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGltcGxlbWVudCBjdXN0b20gYWNjZXB0X2NhcHMgbWV0aG9kCgkgIEltcGxlbWVudCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uLiBXZSBjYW4gc2ltcGx5IGNoZWNrIGlmIHRoZXJlIGlzIGFuCgkgIGludGVyc2VjdGlvbiB3aXRoIHRoZSBuZXcgY2Fwcy4gVGhpcyBtYWtlcyB0aGUgYWNjZXB0IGNhcHMgZnVuY3Rpb24gbXVjaCBmYXN0ZXIuCgkgIFNlZSAjNjIxMTkwCgoyMDEwLTA2LTE0IDEyOjM2OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBhZGQgYWNjZXB0X2NhcHMgdm1ldGhvZAoJICBBbGxvdyBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGJlY2F1c2UgaW4gc29tZSBjYXNlcyBhCgkgIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgbXVjaCBtdWNoIGZhc3RlciB0aGFuIHRoZSBkZWZhdWx0IG9uZS4KCSAgU2VlICM2MjExOTAKCjIwMTAtMDYtMTQgMTE6MzA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZGEzYmFiIHRvIDdhMGZkZjUKCjIwMTAtMDYtMTEgMTg6NDk6MDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBSZW1vdmUgdHJhbnNmb3JtX3NpemUKCSAgR3N0QmFzZVRyYW5zZm9ybSBub3cgYXNzdW1lcyB0aGF0IHRoZSBzaXplIGlzIHRoZSBzYW1lIGlmIHRoZXJlIGlzIG5vdAoJICB0cmFuc2Zvcm1fc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTMzNAoKMjAxMC0wNi0xMSAxODo0NjozMCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFzc3VtZSBzaXplIGlzIHRoZSBzYW1lIGlmIG5vIHRyYW5zZm9ybV9zaXplL2dldF91bml0X3NpemUKCSAgU3ViY2xhc3NlcyB0aGF0IGRvbid0IGltcGxlbWVuIHRyYW5zZm9ybV9zaXplIHNob3VsZCBiZSBhc3N1bWVkIHRvIHByb2R1Y2Ugb3V0cHV0CgkgIGJ1ZmZlcnMgb2YgdGhlIHNhbWUgc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTMzNAoKMjAxMC0wNi0xNCAwODoxODowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IERvbid0IGluaXRpYWxpemUgYXJyYXlzIGZyb20gdmFyaWFibGVzCgoyMDEwLTA2LTE0IDA4OjExOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFN0b3JlIHJlc3VsdCBvZiBzdHJ0b2wgaW4gYW4gdW51c2VkIHZhcmlhYmxlIHRvIHJlYWxseSBmaXggYSBjb21waWxlciB3YXJuaW5nLi4uCgoyMDEwLTA2LTEzIDIwOjUyOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENhc3QgcmV0dXJuIHZhbHVlIHRvIHZvaWQgdG8gcHJldmVudCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA2LTEzIDE4OjEyOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSAgcnRwb29sLXRlc3Q6IFByZXZlbnQgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTEzIDE4OjA1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE1ha2Ugc3VyZSB3ZSBoYXZlIGEgdmFsaWQgb2JqZWN0IHRvIHJlbmRlciBpbiBfcmVuZGVyX29iamVjdCgpCgoyMDEwLTA2LTEzIDE4OjAwOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIHNvbWUgYXNzZXJ0aW9uIGd1YXJkcyBhZ2FpbnN0IGludmFsaWQgcGFyYW1ldGVycyB0byBwdWJsaWMgQVBJCgoyMDEwLTA2LTEzIDE3OjA4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZW1vdmUgc29tZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDEwLTA2LTEzIDE3OjA2OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkgIGJ1ZmZlcnN0cmVzczogQ2hlY2sgaWYgdGhlIG51bWJlciBvZiB0aHJlYWRzIGFuZCBidWZmZXJzIG1ha2VzIHNlbnNlCgoyMDEwLTA2LTEzIDE3OjAzOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgcmVhZC1tZXRhZGF0YTogU3RvcCBpZiBzZXR0aW5nIHRoZSBwaXBlbGluZSBzdGF0ZSBiYWNrIHRvIE5VTEwgZmFpbHMKCjIwMTAtMDYtMTMgMTY6NTk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkgIGNvbXBsZXhpdHk6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzIGFuZCB1bnVzZWQgdmFyaWFibGVzCgoyMDEwLTA2LTEzIDE2OjMxOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRG9uJ3QgaWdub3JlIGZhaWx1cmUgdG8gb3BlbiB0aGUgdGVtcG9yYXJ5IGZpbGUgbG9jYXRpb24KCSAgQW5kIGltbWVkaWF0ZWx5IGxlYXZlIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gb24gZmFpbHVyZXMuCgoyMDEwLTA2LTEzIDE2OjI3OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggaXRlcmF0b3IgYWdncmVnYXRpb24gb2YgYWxsIHBhZHMgaW4gdGhlIGludGVybmFsIGxpbmtzIGZhbGxiYWNrCgkgIGdfbGlzdF9wcmVwZW5kKCkgcmV0dXJucyB0aGUgbmV3IGhlYWQgb2YgdGhlIGxpc3QgYW5kIG5vdAoJICB1c2luZyB0aGlzIHdpbGwgY3JlYXRlIGEgbWVtb3J5IGxlYWsgYW5kIGEgc2luZ2xlLWVsZW1lbnQgbGlzdC4KCjIwMTAtMDYtMTMgMTU6MjU6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgbmV3IEZJWE1FIGZvciAwLjExIGFuZCB1cGRhdGUgZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tIGRvY3MKCSAgVGhlIGNvbXBhcmUgZnVuY3Rpb24gc2hvdWxkIG9ubHkgdW5yZWYgdGhlIGVsZW1lbnQgaWYgaXQncwoJICBub3QgdGhlIG1hdGNoaW5nIGVsZW1lbnQuCgkgIEFsc28gdGhlIEZJWE1FIGluIF9mb2xkKCkgaXMgbm90IHJlbGV2YW50IGJlY2F1c2UgdGhlIHJlZi91bnJlZgoJICBoYXBwZW5zIGluIHRoZSBmb2xkIGZ1bmN0aW9uLgoKMjAxMC0wNi0xMyAxMToyNDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IElmIHRoZSBpdGVyYXRvciByZXN5bmMgaW4gZmluZF9jdXN0b20oKSBqdXN0IHJldHJ5CgoyMDEwLTA2LTEyIDA4OjI1OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzMzZmNhOSB0byA2ZGEzYmFiCgoyMDEwLTA2LTEyIDA4OjA0OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHRlc3QgZm9yIGRlc2VyaWFsaXppbmcgZm91cmNjcwoKMjAxMC0wNi0xMSAyMjo1NjoxMyArMDAwMCAgTWFydGluIEJpc3NvbiA8bWFydGluLmJpc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBGaXhlZCBzZXJpYWxpemF0aW9uIGZvciBzaG9ydCBmb3VyY2NzLgoJICAiWTE2ICIgYW5kICJZOCAgIiB3ZXJlIG5vdCBkaXNwbGF5ZWQgcHJvcGVybHkgYmVjYXVzZSB0aGUgc3BhY2UKCSAgY2hhcmFjdGVyIGlzIG5vdCBhbG51bS4gIEEgdW5pdCB0ZXN0IGlzIGFsc28gaW5jbHVkZWQuCgkgIEZpeGVzIGJ1ZyAjNjIxMjgyLgoKMjAxMC0wNi0xMSAxNjoxMjozMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgcmFua3Mgd2l0aCBvZmZzZXRzIGZyb20gbmFtZXMKCjIwMTAtMDYtMDkgMTI6Mzk6NTQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmYWQxNDViIHRvIDczM2ZjYTkKCjIwMTAtMDYtMDkgMTI6MzA6NDkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NzY4M2MxIHRvIGZhZDE0NWIKCjIwMTAtMDYtMDkgMTI6MTc6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBjb21tZW50IHR5cG8gZXZlbiBtb3JlCgoyMDEwLTA2LTA5IDEyOjA2OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MgKGZvcm1hdCBhbmQgc2VhcmNoIHBhdGgpLgoJICBSZW1vdmUgb2Jzb2xldGUgeG1sIHJlZ2lzdHJ5IGNhY2hlIGV4dGVuc2lvbi4gVGVsbCB0aGF0IGNvbnRlbnQgYW5kIGxvY2F0aW9uIGlzCgkgIGludGVybmFsIGRldGFpbC4gRG9jdWVtbnQgdGhlIHBsdWdpbiBzZWFyY2ggb3JkZXIuCgoyMDEwLTA2LTA5IDEyOjA2OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGNvbW1lbnRzOiBhZGQgYSBmZXcgY29tbWVudHMgdG8gdGhlIHNwYXJzZWx5IGRvY3VtZW50ZWQgcGx1Z2luIGxvYWRlcgoKMjAxMC0wNi0wOCAxMTo0MToxMSArMDIwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBjb21tZW50IHR5cG8KCjIwMTAtMDYtMDggMTI6MTI6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBnc3RfY2Fwc19hcHBlbmRfc3RydWN0dXJlX3VuY2hlY2tlZCgpIG1hY3JvIG9uY2UgbW9yZQoKMjAxMC0wNi0wOCAxMjoxMDozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIGEgc2FmZXIgbmFtZSBmb3IgdGVtcG9yYXJ5IHZhci4gdG8gbm90IHNoYWRvdyBvbmUgZnJvbSBvdXRlciBzY29wZQoKMjAxMC0wNi0wNyAxMjoyMDo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiB1c2UgZ2xpYiB0eXBlcyBpbiBtb3JlIHBsYWNlcwoJICBEbyBhIGJ1bmNoIG9mIGNoYXIgLT4gZ2NoYXIsIGludCAtPiBnaW50LCBkb3VibGUgLT4gZ2RvdWJsZSBjaGFuZ2VzLgoKMjAxMC0wNi0wNyAxMjowNzozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBqdXN0IGNvbXB1dGUgc3RybGVuKCkgb25jZQoKMjAxMC0wNi0wNyAxMDoxNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3Qgd2FpdCBmb3IgZGF0YSB3aGVuIEVPUwoJICBXaGVuIGluIGRvd25sb2FkIG1vZGUgYW5kIHdlIG5lZWQgdG8gcHJvdmlkZSBkYXRhIGZvciBhbiBvZmZzZXQgdGhhdCB3ZSBkb24ndAoJICBoYXZlLCBhbHNvIHBlcmZvcm0gYSBzZWVrIHRvIHRoZSByZXF1ZXN0ZWQgbG9jYXRpb24gd2hlbiB3ZSBhcmUgRU9TLiBUaGUgcmVhc29uCgkgIHdoeSB3ZSBzaG91bGRuJ3Qgd2FpdCBmb3IgbW9yZSBkYXRhIGlzIGJlY2F1c2UgYWZ0ZXIgRU9TLCB0aGVyZSBzaW1wbHkgd2lsbCBiZQoJICBubyBtb3JlIGRhdGEgYW5kIHdlIGVuZCB1cCB3YWl0aW5nIGZvcmV2ZXIuCgkgIEZpeGVzICM2MjA1MDAKCjIwMTAtMDYtMDcgMDg6MTg6NDAgKzAyMDAgIE1hcnRpbiBCaXNzb24gPG1hcnRpbi5iaXNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBzaG9ydCBmb3VyY2NzIGZyb20gc3RyaW5ncwoJICBGb3IgZXhhbXBsZSAiWTE2ICIgYW5kICJZOCAgIi4KCjIwMTAtMDYtMDYgMjM6MTk6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiB1c2UgZ2xvYmJpbmcgZm9yIHNlbGVjdGl2ZSB0ZXN0IGludm9jYXRpb24gdmlhIEdTVF9DSEVDS1MKCSAgVXNlIGdsaWIgZ2xvYmJpbmcgaW5zdGVhZCBvZiBzaW1wbGUgc3RyaW5nIG1hdGNoaW5nIHRvIGFsbG93IGUuZy4KCSAgR1NUX0NIRUNLUz0idGVzdF9pbnRlcioiIG1ha2UgZ3N0L2dzdGNhcHMuY2hlY2sKCjIwMTAtMDYtMDYgMjE6MjA6MjEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgY2Fwc25lZ286IGFsc28gbWVhc3N1cmUgcGlwZWxpbmUgYnVpbGRpbmcgdGltZQoKMjAxMC0wNi0wNSAyMzoxODowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGF2b2lkIGEgY2Fwcy1jb3B5CgkgIFdlIGNhbiBzaW1wbHkgdHJ1bmNhdGUgdGhlIGNhcHMsIGFzICdvdGhlcmNhcHMnIGlzIHRoZSByZXN1bHQgb2YgaW50ZXJzZWN0CgkgIG9wZXJhdGlvbnMgYW5kIHRodXMgb3VycyBhbmQgd3JpdGFibGUuCgoyMDEwLTA2LTAzIDAxOjQ5OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgaW5mbzogYWRkIG5ldyBUUkFDRSBsb2cgbGV2ZWwgYW5kIG1vdmUgcmVmY291bnRpbmcgdGhlcmUgZnJvbSBMT0cgbGV2ZWwKCSAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBlYXNpbHkgZ2V0IGEgKjo1IGRlYnVnIGxvZyB3aXRob3V0IGFsbAoJICB0aGUgcmVmY291bnRpbmcgbm9pc2UsIGFuZCBkcmFzdGljYWxseSByZWR1Y2VzIHRoZSBudW1iZXIgb2YgbGluZXMKCSAgb3V0cHV0IGZvciBhIG5vcm1hbCBsb2cgKDQ2bSB0byAyOG0gZm9yIGEgMjBtaW4gdmlkZW8pLiBUaGUgZnVsbCBsb2cKCSAgaW5jbHVkaW5nIHJlZmNvdW50aW5nIGluZm9ybWF0aW9uIGNhbiBzdGlsbCBiZSBnb3R0ZW4gdXNpbmcgKjo3LgoJICBGaXhlcyAjNjIwNDYwLgoKMjAxMC0wNi0wNCAxNzoxMDowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGZvciBzdGFuZGFyZCBwcm9wZXJ0aWVzCgoyMDEwLTA2LTAzIDE3OjIxOjAwICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsQGJhc2UtYXJ0Lm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE1ha2UgZ3N0X2Jhc2Vfc2lua19xdWVyeSByZXR1cm4gVFJVRSBpZiB0aGUgc2VnbWVudCBxdWVyeSBzdWNjZWVkZWQuCgkgIEZpeGVzIGJ1ZyAjNjIwNDkwLgoKMjAxMC0wNi0wMSAyMzo0ODo1OSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE3Zjg5ZTUgdG8gNDc2ODNjMQoKMjAxMC0wNi0wMSAyMjo1NDoyMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZkN2NhMDQgdG8gMTdmODllNQoKMjAxMC0wNS0yNCAxNzoyNTo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiBJbXByb3ZlIHJlYWRhYmlsaXR5IGZvciBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkKCSAgSnVzdCB0cnVuY2F0ZSBhbmQgdGhlbiBmaXhhdGUuIFdlIGNoZWNrIGZvciBlbXB0eSBjYXBzIGluIHRoZSBiZWdpbiBhbmQgYQoJICBmaXhhdGUtZnVuYyB0aGF0IGVtcHRpZXMgYSBjYXBzIHdvdWxkIGJlIGJyb2tlbi4gSXQgYWxzbyBoZWxwcyBsYXp5IGNhcHMgaW1wbC4KCSAgaW4gYnVnIDYxODg1MyBieSBhdm9pZGluZyB0aGUgZ3N0X2NhcHNfZ2V0X3NpemUoKS4KCjIwMTAtMDYtMDEgMTE6NDY6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGxvZyBwbHVnaW5zIGF2YWlsYWJsZSB0byB1bml0IHRlc3RzIGFuZCB0aGVpciBwYXRocwoKMjAxMC0wNi0wMSAxMTo0NToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgd2luMzI6IGNvbW1pdCBNYWtlZmlsZSBjaGFuZ2VzIGZvciB3aW4zMi11cGRhdGUgYXMgd2VsbAoKMjAxMC0wNS0zMSAxNToxNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICB3aW4zMjogYWRkIHByZS1nZW5lcmF0ZWQgdmVyc2lvbnMgb2YgZ3N0bWFyc2hhbC5bY2hdIGFzIHdlbGwKCSAgYW5kIHB1dCB0aGVtIG5leHQgdG8gdGhlIHByZS1nZW5lcmF0ZWQgZW51bXR5cGVzIGZpbGVzIGZvciB0aG9zZQoJICBub3QgdXNpbmcgYXV0b3Rvb2xzIGZvciBidWlsZGxpbmcgR1N0cmVhbWVyLgoKMjAxMC0wNS0yNyAxNToxMDozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFsc28gY2hlY2sgZm9yIGFkYXB0ZXIgYnVmZmVyIG1lcmdpbmcgaW4gdW5pdCB0ZXN0CgoyMDEwLTA1LTI3IDEyOjUwOjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggX3RyeV90b19tZXJnZV91cAoJICBUaGF0IGlzLCBwcm92aWRlIGNvcnJlY3QgcmV0dXJuIHZhbHVlIChhcyBkb2N1bWVudGVkKSwgYW5kIGFjdHVhbGx5CgkgIGxvb3AgdG8gY29uc2lkZXIgbW9yZSB0aGFuIHRoZSBmaXJzdCAyIGJ1ZmZlcnMuCgoyMDEwLTA1LTI3IDEyOjQ4OjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGZpeCBkb2N1bWVudGF0aW9uIGdsaXRjaAoKMjAxMC0wNS0yNiAxMTo1NDozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDM1N2IwZGIgdG8gZmQ3Y2EwNAoKMjAxMC0wNS0yNSAxOToxNzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHVubG9jayBfZ2V0X3N0YXRlKCkgb24gZXJyb3IKCSAgV2hlbiBhbiBlcnJvciBtZXNzYWdlIGlzIHJlY2VpdmVkIG9uIHRoZSBidXMsIG1hcmsgdGhlIGJpbiBhcyBiZWluZyBpbiB0aGUgZXJyb3IKCSAgc3RhdGUgYW5kIHVubG9jayBhbGwgY3VycmVudCBfZ2V0X3N0YXRlKCkgY2FsbHMgd2l0aCBhbiBlcnJvci4KCSAgRml4ZXMgIzUwNTc3MAoKMjAxMC0wNS0yNCAxOTowNzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIGNoZWNrczogYWRkIG11bHRpLXRocmVhZCB0ZXN0IGZvciB0YWdzZXR0ZXIKCSAgU2VlICM2MTk1MzMuCgoyMDEwLTA1LTI0IDE5OjA2OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiBtYWtlIHN1cmUgb25seSBvbmUgdGhyZWFkIGNyZWF0ZXMgdGhlIFRhZ0RhdGEKCjIwMTAtMDUtMjQgMTg6MTY6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHByb3RlY3QgdGFnc2V0dGVyIG9wZXJhdGlvbnMgd2l0aCBhIGxvY2sKCSAgU28gd2UgZG9uJ3QgY3Jhc2ggd2hlbiBhIG11eGVyIHRyaWVzIHRvIGFkZCB0YWdzIGZyb20gdHdvCgkgIHRocmVhZHMgYXQgdGhlIHNhbWUgdGltZSwgZWcuIGJlY2F1c2UgaXQgcmVjZWl2ZWQgdGFnIGV2ZW50cwoJICBvbiB0d28gaW5wdXQgcGFkcyBzaW11bHRhbmVvdXNseS4KCSAgU2VlICM2MTk1MzMuCgoyMDEwLTA1LTIyIDIzOjI2OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2Ugb3VyIG1hY3JvcyBtb3JlIG9mdGVuIGluIHRoZSBjb2RlCgoyMDEwLTA1LTIyIDIzOjA3OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgYXBwZW5kX3N0cnVjdHVyZV91bmNoZWNrZWQKCSAgVGhpcyBpcyB1c2VmdWwgd2hlbiB3ZSBrbm93IHRoYXQgY2FwcyBpcyAhTlVMTCwgd3JpdGFibGUgYW5kIHN0cnVjdHVyZSBpcwoJICAhTlVMTCB0b28uCgoyMDEwLTA1LTIyIDIyOjQ2OjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogcmVuYW1lIHRlc3RzdWl0ZQoJICBQcmV2aW91cyBuYW1lIHdhcyBvbmx5IGFwcGxpY2FibGUgdG8gYSBmZXcgb2YgdGhlIHRlc3RzLgoKMjAxMC0wNS0yMiAyMjo0NTozMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2NzOiB4cmVmIGZ1bmN0aW9uIG5hbWUKCjIwMTAtMDUtMjIgMjI6NDQ6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBvdXIgbWFjb3MgbW9yZQoKMjAxMC0wNS0yMiAyMjozMzowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9sYXp5Y2Fwcy50eHQ6CgkgIGRlc2lnbjogbW9yZSBwbGFubmluZyBvbiBsYXp5IGNhcHMuCgoyMDEwLTA1LTIyIDEwOjAxOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBUEk6IEFkZCBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9zdHJpbmcoKQoKMjAxMC0wNS0xOSAxNjoyMTo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9sYXp5Y2Fwcy50eHQ6CgkgIGRlc2lnbjogY29sbGVjdCBpZGVhcyBmb3IgaGF2aW5nIGxhenkgY2FwcwoJICBEZXNpZ24gZG9jIGZvciBoYXZpbmcgb24gdGhlIGZseSBldmFsdWF0ZWQgY2FwcyAoc2VlIGJ1ZyAjNjE4ODUzKS4KCjIwMTAtMDUtMTkgMTU6NTc6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogYWRkIGxpbmtzIGZvciBHU291cmNlIHByaW9yaXRpZXMKCSAgTm93IGl0IGlzIHhyZWZmZWQgd2l0aCB0aGUgZ2xpYiBkb2NzLCB3aGVyZSB0aGUgcHJpb3JpdHkgc2NhbGUgaXMgZXhwbGFpbmVkLgoKMjAxMC0wNS0xOSAxNDowODoyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGFkZCBjb21tYW5kbGluZSBwYXJhbWV0ZXJzIGZvciBjYXBzbmVnbwoJICBBbGxvdyB0byBzcGVjaWZ5IHRoZSBncmFwaCBzaXplIGFuZCBvZmZlciB0d28gZmxhdm91cnMgKGF1ZGlvL3ZpZGVvKS4KCjIwMTAtMDUtMTkgMDk6NTY6NTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcmtzOiBhZGQgYSBiZW5jaG1hcmsgZm9yIGNhcHNuZWdvdGlhdGlvbgoJICBUaGUgdGVzdCBidWlsZHMgYSB0cmVlIGxpa2UgZ3JhcGggaGF2aW5nIGNvbnZlcnNpb24gYW5kIGJhc2V0cmFuc2Zvcm0gZWxlbWVudHMuCgoyMDEwLTA1LTE4IDE3OjUxOjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBiZW5jaG1hcmtzOiB1c2UgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpIGluc3RlYWQgb2Ygb3duIGltcGxlbWVudGF0aW9uCgoyMDEwLTA1LTE4IDE4OjM4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIGppdHRlciB0byBkZWJ1ZyBvdXRwdXQKCjIwMTAtMDUtMTggMTg6MzU6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwIHR5cGUgcmVnaXN0cmF0aW9uIGEgbGl0dGxlCgkgIFdlIGNhbiBtYWtlIHNvbWUgc3RydWN0cyBjb25zdCBzdGF0aWMgd2l0aCBsaXR0bGUgZWZmb3J0LgoKMjAxMC0wNS0xNyAxMzowOToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcHJpbnQgV0FSTklORyBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBub3JtYWwgdGhpbmdzIGxpa2UgRU9TLCBwYXJ0IElJCgoyMDEwLTA1LTE0IDE4OjIyOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNGQ2N2JkNiB0byAzNTdiMGRiCgoyMDEwLTA1LTE0IDExOjUyOjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBjb21tZW50IGFuZCB3aGl0ZXNwYWNlIGNsZWFudXAKCSAgTWFrZSBjb21tZW50IG1vcmUgc3BlY2lmaWMsIHJlcG9zaXRpb24gaXQgYW5kIGFkZCBtb3JlIG9mIHRoZSBraW5kLgoJICBNb3ZlIG9uZSBpZmRlZidlZCBmdW5jdGlvbiBhcm91bmQuCgoyMDEwLTA1LTEzIDA4OjIxOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogU2ltcGxpZnkgZnJhY3Rpb25zIGJlZm9yZSBkb2luZyBjYWxjdWxhdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBvdmVyZmxvd3MKCSAgLi4uIHRvIHByZXZlbnQgc29tZSB1bm5lY2Vzc2FyeSBvdmVyZmxvd3MgZnJvbSBoYXBwZW5lbmluZy4KCjIwMTAtMDUtMTMgMDg6MDA6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBHQ0QgaXMgMCBpZiBib3RoIHBhcmFtZXRlcnMgYXJlIDAsIGRvbid0IGRpdmlkZSBieSB6ZXJvCgkgIEFuZCB0dXJuIG92ZXJmbG93IGNoZWNrcyBmcm9tIGFzc2VydGlvbnMgaW50byBzaW1wbGUgY2hlY2tzIHRvCgkgIHJldHVybiBGQUxTRS4KCjIwMTAtMDUtMTMgMDc6NTE6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBTaW1wbGlmeSByZXN1bHQgb2YgZ3N0X2ZyYWN0aW9uX211bHRpcGx5KCkKCjIwMTAtMDUtMTAgMTM6MjU6MDQgLTA0MDAgIFRyaXN0YW4gTWF0dGhld3MgPHRyaXN0YW5Ac2F0LnFjLmNhPgoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBmYXE6IHVwZGF0ZWQgbGluZSBhYm91dCBqYWNrIG91dHB1dAoKMjAxMC0wNS0wMyAxMTozMjoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogUmVhZCByZXR1cm4gdmFsdWUgdG8gbWFrZSBjbGFuZy9pY2MgaGFwcHkKCjIwMTAtMDUtMDYgMTY6NDE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBkb24ndCBjaGVjayB0d2ljZSBmb3IgY2hhbmdlZCBjYXBzIHBlciBwdXNoIgoJICBXZSBuZWVkIHRvIGNoZWNrIHRoZSBwYWQgY2FwcyBvbiB0aGUgc3JjcGFkIGFzIHdlbGwgYXMgb24gdGhlIHNpbmtwYWQuIFJldmVydAoJICB0aGlzIGNvbW1pdCBhcyBpdCByZW1vdmVzIHRoZSBjaGVjayBvbiB0aGUgc3JjcGFkIGFuZCBjYW4gbGVhdmUgdGhlIHNyY3BhZAoJICB1bm5lZ290aWF0ZWQgKG9yIG5lZ290aWF0ZWQgd2l0aCB3cm9uZyBjYXBzKQoJICBUaGlzIHJldmVydHMgY29tbWl0IDA3ZGMxZTViNDk1ODBhODliZmVmMjdmZjI3NDc2ZDUxZmIzY2UyYzIuCgoyMDEwLTA1LTA2IDE3OjAyOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgY2hlY2sgdHdpY2UgZm9yIGNoYW5nZWQgY2FwcyBwZXIgcHVzaAoJICBnc3RfcGFkX2NoYWluX2RhdGFfdW5jaGVja2VkKCkgZG9lcyB0aGUgc2FtZSBjaGVjayBhbHJlYWR5LgoKMjAxMC0wNS0wNiAxNjo1MToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlZmxvdyB0byB0cnVuY2F0ZSBjYXBzIGp1c3Qgb25jZQoJICBXZSBnZXQgd3JpdGFibGUgY2FwcyBmcm9tIHRoZSBpbnRlcnNlY3Rpb24gKHVubGVzcyBpdCBmYWlsZWQpLiBBcyB3ZSB0cnVuY2F0ZQoJICB0aG9zZSBhbnl3YXksIHdlIGRvbid0IG5lZWQgdG8gbWFudWFseSBjb3B5IHRoZSBmaXJzdCBzdHJ1Y3R1cmUuCgoyMDEwLTA1LTA0IDEzOjI5OjAyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1ydW4uYzoKCSAgdG9vbHM6IGZpeCBnc3QtcnVuIHdyYXBwZXIgdG8gd29yayBvbiBXaW5kb3dzCgkgIEZpeGVzICM2MTc2MjUKCjIwMTAtMDUtMDMgMDA6MjY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBkb2NzOiBkb2N1bWVudCB0aGF0IGdzdF9ieXRlX3dyaXRlcl9wdXRfc3RyaW5nKigpIHdyaXRlcyB0aGUgdGVybWluYXRvciB0b28KCjIwMTAtMDUtMDUgMTI6MDE6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRvY3M6IGNsYXJpZnkgdGhlIHB1bGxfcmFuZ2UgZnVuY3Rpb25zCgkgIENsYXJpZnkgdGhlIGdzdF9wYWRfcHVsbF9yYW5nZSgpLCBHc3RCYXNlU3JjOjpjcmVhdGUoKSwgZ3N0X3BhZF9nZXRfcmFuZ2UoKQoJICBhbmQgR3N0UGFkR2V0UmFuZ2UgZnVuY3Rpb25zIGEgbGl0dGxlLgoJICBGaXhlcyAjNjE3NzMzCgoyMDEwLTA1LTA0IDExOjQ1OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZGVidWdnaW5nCgoyMDEwLTA0LTMwIDExOjI3OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgcmVmZmVkIF9nZXRfY2FwcygpIHZlcnNpb24KCSAgV2UgZG9uJ3QgbmVlZCB0byBoYXZlIGEgd3JpdGFibGUgY29weSBzbyB3ZSBjYW4gdXNlIHRoZSBfcmVmZmVkCgkgIHZlcnNpb24gaW5zdGVhZC4KCjIwMTAtMDQtMjkgMjE6NTc6MTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkcyBnZW8gbG9jYXRpb24gZGlyZWN0aW9uIHRhZ3MKCSAgQWRkcyAzIG5ldyBnZW8gbG9jYXRpb24gdGFncyBpbnZvbHZpbmcgZGlyZWN0aW9uIGFuZAoJICBtb3ZlbWVudCBvZiBjYXB0dXJlLiBUaG9zZSBhcmU6CgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fQ0FQVFVSRV9ESVJFQ1RJT04KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9NT1ZFTUVOVF9ESVJFQ1RJT04KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9NT1ZFTUVOVF9TUEVFRAoJICBGaXhlcyAjNjE3MjIzCgoyMDEwLTA0LTE2IDA2OjU3OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZHMgR1NUX1RBR19ERVZJQ0VfTUFOVUZBQ1RVUkVSIGFuZCBHU1RfVEFHX0RFVklDRV9NT0RFTAoJICBBZGRzIHRob3NlIG5ldyB0YWdzIHRvIGRlc2NyaWJlIHRoZSBkZXZpY2UgbWFudWZhY3R1cmVyIGFuZAoJICBtb2RlbCB1c2VkIHRvIGNyZWF0ZSBtZWRpYXMuCgkgIEFQSTogR1NUX1RBR19ERVZJQ0VfTUFOVUZBQ1RVUkVSCgkgIEFQSTogR1NUX1RBR19ERVZJQ0VfTU9ERUwKCSAgRml4ZXMgIzYxNTk0MQoKMjAxMC0wNS0wMiAxOTo0Mzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgcHdnOiByZW1vdmUgY29uZnVzaW5nIG1ldGFkYXRhIGV4YW1wbGUgd2l0aCAwLjggY29kZQoJICBGaXhlcyAjNTM0MzE0LgoKMjAxMC0wNS0wMiAxOTozMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIG1hbnVhbDogYWRkIG1pbmltYWwgdGFnIHJlYWRpbmcgZXhhbXBsZQoJICBTaG91bGQgcHJvYmFibHkgcHV0IHRoYXQgaW50byB0ZXN0cy9leGFtcGxlcyBhbmQgZmlndXJlIG91dCBob3cgdG8KCSAgZ2V0IGl0IGluY2x1ZGVkIGF1dG9tYXRpY2FsbHksIGJ1dCBjYW4ndCBiZSBib3RoZXJlZCByaWdodCBub3cuCgoyMDEwLTA0LTMwIDEzOjEwOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gMi4yMAoJICBTZWUgaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9SZWxlYXNlUGxhbm5pbmcvR0xpYlJlcXVpcmVtZW50CgoyMDEwLTA0LTI5IDIzOjI5OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBvbmx5IHdhcm4gaWYgbWV0YWRhdGEgaXMgbm90IHdyaXRhYmxlIHdoZW4gaXQgc2hvdWxkIGJlLCBkb24ndCByZXR1cm4gYXMgd2VsbAoJICBNYWtlIHN1cmUgd2UgZXhlY3V0ZSB0aGUgc2FtZSBjb2RlIHBhdGggaW4gZ2l0IHZlcnNpb25zIGFuZCBpbiByZWxlYXNlcywKCSAgc28ganVzdCB3YXJuIHdoZW4gbWV0YWRhdGEgaXNuJ3Qgd3JpdGFibGUgd2hlbiB3ZSB3YW50IGl0IHRvIGJlIGluc3RlYWQKCSAgb2YgYmFpbGluZyBvdXQuCgoyMDEwLTA0LTI5IDIzOjI2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG1ha2UgJ2FkZGluZyBmbHVzaGluZyBwYWQnIHdhcm5pbmcgbW9yZSB1c2VmdWwKCSAgVGhpcyBpcyBhIHByZXR0eSBjb21tb24gaXNzdWUgd2l0aCBnaG9zdCBwYWRzLCBsZXQncyBtYWtlCgkgIHRoZSB3YXJuaW5nIG1vcmUgaGVscGZ1bCBhbmQgdGVsbCBwZW9wbGUgd2hhdCB0aGV5IG5lZWQKCSAgdG8gZG8gdG8gZml4IGl0LgoKMjAxMC0wNC0yOCAxNzoxNTo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtcCBvcHRpb24gdG8gZGlzYWJsZSBwbGF5IGhhbmRsZXIuCgkgIFNhbWUgbG9naWMgYXMgZm9yIHRoZSBmYXVsdCBoYW5kbGVyLiBUaGlzIGlzIHVzZWZ1bCBmb3Igc29tZSBkZWJ1Zy90cmFjaW5nIHRvb2xzCgkgIHRoYXQgbmVlZCB0byBncmFiIFNJR1VTUjEgYW5kIFNJR1VTUjIgdGhlbSBzZWxmLgoKMjAxMC0wNC0xNSAxMDozNjo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wbGVtZW50IHBlcmNlbnRhZ2UgcG9zaXRpb24gYW5kIGR1cmF0aW9uIHF1ZXJpZXMKCSAgSWYgdXBzdHJlYW0gZG9lcyBub3QgaGFuZGxlIHRoZW0sIHRoZW4gaW1wbGVtZW50IHRob3NlIG91cnNlbGYuCgoyMDEwLTA0LTE0IDE3OjQ3OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgZ3N0X3BhZF9wZWVyX3F1ZXJ5IGluc3RlYWQgb2YgcmVpbnZlbnRpbmcuCgoyMDEwLTA0LTE0IDE3OjQ2OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBxdWVyaWVzOiBhZGQgbW9yZSBsb2dnaW5nCgkgIExvZyBodW1hbiByZWFkYWJsZSBmb3JtYXRzIGFuZCBsb2cgcXVlcnkgcmVzdWx0LgoKMjAxMC0wNC0xOSAyMDozNTozNiArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBjYXBzOiBEbyBub3QgYWxsb3cgZml4YXRpbmcgZW1wdHkgY2FwcwoJICBQYXNzaW5nIGVtcHR5IGNhcHMgdG8gZ3N0X3BhZF9maXhhdGVfY2FwcygpIGlzIGludmFsaWQsIGFzIGVtcHR5IGNhcHMKCSAgY2Fubm90IGJlIGZpeGF0ZWQuCgoyMDEwLTA0LTI2IDIxOjUyOjA3ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBVc2UgR19HTlVDX1dBUk5fVU5VU0VEX1JFU1VMVCBmb3IgbWFrZV93cml0YWJsZSgpCgkgIFBlb3BsZSBvZnRlbiBjYWxsCgkgIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUgKGNhcHMpOwoJICBpbnN0ZWFkIG9mCgkgIGNhcHMgPSBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlIChjYXBzKTsKCSAgYW5kIGNhdXNlIGEgYnVnLiBXYXJuaW5nIGFib3V0IGFuIHVudXNlZCByZXR1cm4gdmFsdWUgaGVscHMgaGVyZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTY1NDEjYzIgZm9yIGFuIGV4YW1wbGUuCgoyMDEwLTA0LTIzIDA2OjI0OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3Q6IFVzZSBHRXJyb3IgYm94ZWQgdHlwZSBmcm9tIEdPYmplY3QgMi4yNS4yIGluc3RlYWQgb2Ygb3VyIG93biBpZiBwb3NzaWJsZQoKMjAxMC0wNC0yOSAxNDo1MDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50LgoKMjAxMC0wNC0xNSAxNzoxMTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIGRvY3MgZm9yIHRoZSBldmVudHMKCj09PSByZWxlYXNlIDAuMTAuMjkgPT09CgoyMDEwLTA0LTI3IDIzOjQyOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yOQoKMjAxMC0wNC0yNyAyMzo0MDo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDQtMjcgMDk6NDI6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICB0ZXN0czogYWRkIG1vcmUgdGVzdHMgZm9yIGNvbnRyb2xsZXIKCSAgVGhlIHRlc3RzIHZlcmlmeSB0aGF0IGJ1ZyAjNjE2ODQ2IGlzIGluZGVlZCBmaXhlZC4KCjIwMTAtMDQtMjYgMTU6NDM6MTcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBjb250cm9sbGVyOiBGaXggZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZmluZF9jb250cm9sX3BvaW50X2l0ZXIKCSAgVGhlIGxvZ2ljIGluIHRoYXQgZnVuY3Rpb24gaXMgYnJva2VuLiBWYXJpb3VzIE5VTEwtY2hlY2tpbmcgYmFuZGFpZHMgZm9yCgkgIGd1YXJhbnRlZWQgbm9uLU5VTEwgdmFyaWFibGVzIGRpZG4ndCBldmVuIGhlbHAgdGhlcmUuCgkgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYSBwcmV2aW91cyBpdGVtIGV4aXN0cwoJICBiZWZvcmUgZmV0Y2hpbmcgaXQgaW5zdGVhZCBvZiBhZnRlci4gVGhpcyBtYWtlcyBhbGwgb3RoZXIgdGVzdHMKCSAgdW5uZWNlc3NhcnkuCgkgIEluIHBhcnRpY3VsYXIsIGl0IG1ha2VzIHRoZSBjaGVjayBmb3IgYW4gZW1wdHkgbGlzdCB1bm5lY2Vzc2FyeSwgYmVjYXVzZQoJICBmb3IgZW1wdHkgbGlzdHMgdGhlIG9ubHkgaXRlciBpcyB0aGUgYmVnaW4gaXRlciAoYW5kIHRoZSBlbmQgaXRlcikgYW5kCgkgIHNvIHRoZSBuZXcgY2hlY2sgY2F0Y2hlcyB0aGF0IGNhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTY4NDYKCjIwMTAtMDQtMjUgMjE6MTU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOC4zIHByZS1yZWxlYXNlCgoyMDEwLTA0LTIwIDE3OjE3OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5kb2FwOgoJICBkb2FwOiB1cGRhdGUgcmVwb3NpdG9yeSBpbmZvIGZyb20gY3ZzLT5naXQgYW5kIG1haW50YWluZXJzCgoyMDEwLTA0LTIzIDE0OjM5OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmM4NTg2NyB0byA0ZDY3YmQ2CgoyMDEwLTA0LTE2IDIwOjA5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IENvbnNpc3RlbnRseSB1c2UgTXlGaWx0ZXIgaW5zdGVhZCBvZiBzb21ldGltZXMgRXhhbXBsZUZpbHRlciBpbiB0aGUgZXhhbXBsZQoJICBGaXhlcyBidWcgIzYxNTU3OS4KCjIwMTAtMDQtMTYgMTQ6MjI6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBlbnVtcyBmb3IgY3VzdG9tIGZsb3cgcmV0dXJuIHN1Y2Nlc3MgYW5kIGVycm9yIGNvZGVzCgkgIFRoaXMgd2F5IHBlb3BsZSBjYW4ganVzdCAjZGVmaW5lIHRoZWlyIG93biBjdXN0b20gZmxvdyByZXR1cm5zIHRvCgkgIG9uZSBvZiB0aGVzZSB3aXRob3V0IGhhdmluZyB0aGUgY29tcGlsZXIgKGVzcC4gZ2NjLTQuNSkgY29tcGxhaW4KCSAgYWJvdXQgY29tcGFyaW5nIGludGVnZXJzIHRvIGFuIGVudW0gb3IgdGhlIGVudW0gbm90IGJlaW5nIGxpc3RlZAoJICBGaXhlcyAjNjE1ODgwLgoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTXzEKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fU1VDQ0VTU18yCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX0VSUk9SXzEKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fRVJST1JfMgoKMjAxMC0wNC0xNSAyMjowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogVXNlIGNvcnJlY3Qgc2V0dGVyIGZvciBkb3VibGUgR1ZhbHVlcwoKMjAxMC0wNC0xNSAxMTowODowMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBkb2MgZml4ZXMKCSAgQWRkcyBtaXNzaW5nICc6JyB0byB0YWdzIGRvY3MKCjIwMTAtMDQtMTUgMTE6Mzg6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBib2d1cyB2YXJpYWJsZSB0eXBlCgkgIFRoZSByZXN1bHQgb2YgZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKCkgaXMgbm90IGEgR3N0SXRlcmF0b3IgKi4KCjIwMTAtMDQtMTQgMTI6MjA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOC4yIHByZS1yZWxlYXNlCgoyMDEwLTA0LTE0IDEyOjEyOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDQtMTQgMTI6NDM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGxvZyB3aGF0IHN0cnVjdHVyZSBzdHJpbmcgd2UgZmFpbGVkIHRvIHBhcnNlCgoyMDEwLTA0LTE0IDE3OjU2OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IHJlZmNvdW50IHdoZW4gcmVtb3ZpbmcgZWxlbWVudHMgZHVyaW5nIHN0YXRlIGNoYW5nZQoJICBXaGVuIGFuIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIGEgYmluIGJlY2F1c2UgaXQgY2F1c2VkIGEgc3RhdGUgY2hhbmdlIGVycm9yLAoJICBkb24ndCB1bnJlZiB0aGUgY2hpbGQgdHdpY2UuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzIGVycm9yLgoJICBGaXhlcyAjNjE1NzU2CgoyMDEwLTA0LTE0IDExOjUwOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBtb3JlIExERkxBR1MgLT4gTERBREQgZml4ZXMKCjIwMTAtMDQtMTQgMTE6NDA6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBidWlsZDogJChMSUJNKSBiZWxvbmdzIGludG8gTElCQUREIG5vdCBMREZMQUdTCgoyMDEwLTA0LTA4IDA5OjE0OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBidWlsZDogd2hlbiBidWlsZGluZyBleGVjdXRhYmxlcywgcHV0IGxpYnMgdG8gbGluayB0byBpbnRvIExEQUREIGluc3RlYWQgb2YgTERGTEFHUwoJICBVc2UgZm9vX0xEQUREIGluc3RlYWQgb2YgZm9vX0xERkxBR1MgdG8gc3BlY2lmeSB0aGUgbGlicmFyaWVzIHRvIGxpbmsgdG8uCgkgIFRoaXMgc2hvdWxkIG1ha2Ugc3VyZSBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgbGlua2VyIGluIHRoZSByaWdodAoJICBvcmRlci4gU2VlICM2MTU2OTcuCgoyMDEwLTA0LTE0IDExOjE5OjE0ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIC1XY2FzdC1hbGlnbgoJICBBcHBhcmVudGx5IGdjYyB3YXJucyB0aGF0IEdzdE1pbmlPYmplY3QgaXMgbm90IGNhc3RhYmxlIHRvCgkgIEdzdEV2ZW50L01lc3NhZ2UvQnVmZmVyIGR1ZSB0byB0aGVtIGNvbnRhaW5pbmcgNjRiaXQgdmFyaWFibGVzLCBldmVuCgkgIHRob3VnaCBBUk0gaGFja2VycyBjbGFpbSB0aGF0IHRob3NlIG9ubHkgbmVlZCA0Ynl0ZSBhbGlnbm1lbnQuIEFuZCBhcwoJICBsb25nIGFzIGdjYyBiZWhhdmVzIHRoYXQgd2F5LCB0aGlzIHdhcm5pbmcgaXMgbm90IHZlcnkgdXNlZnVsLgoJICBTbyB3ZSdsbCByZW1vdmUgdGhlIHdhcm5pbmcgdW50aWwgdGhpcyBwcm9ibGVtIGlzIGZpeGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1Njk4CgoyMDEwLTA0LTEzIDEwOjQ4OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZW1vdmUgc3VwZXJmbHVvdXMgcmV0dXJuIHN0YXRlbWVudHMgYXQgZW5kIG9mIEFDX1RSWV97TElOSyxDT01QSUxFfSBibG9ja3MKCSAgU3BvdHRlZCBieSBKRiBNZXJ0ZW5zLiBTZWUgIzYxNDc2Ny4KCjIwMTAtMDQtMDUgMTM6NDY6MjMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IENoYW5nZSBjaGVjayBmb3IgdWludDEyOF90CgkgIENoZWNrIGZvciBhYmlsaXR5IHRvIGRpdmlkZSB1aW50MTI4X3QgdmFsdWVzLCBzaW5jZSB0aGF0IHdoYXQKCSAgd2UgYWN0dWFsbHkgdXNlIGl0IGZvciAoaW4gZ3N0dXRpbHMuYykuICBUaGUgZXhpc3RlbmNlIG9mIGEKCSAgdWludDEyOF90IHR5cGUgZG9lc24ndCBtZWFuIHRoZSBjb21waWxlciBjYW4gYWN0dWFsbHkgZ2VuZXJhdGUKCSAgY29kZSBmb3IgaXQuICBBbHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBhY3R1YWxseSBsaW5rIHRoZQoJICByZXN1bHQgc3VjY2Vzc2Z1bGx5LgoJICBGaXhlcyBidWcgIzYxNDc2Ny4KCjIwMTAtMDQtMTIgMTU6MTM6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IG1pbm9yIG1vdmluZy1wbHVnaW5zIGFkZGl0aW9uCgoyMDEwLTA0LTA5IDE1OjQ4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IG1ha2UgLXEgYmUgbW9yZSBxdWlldAoJICBDb252ZXJ0IHNvbWUgZ19wcmludCBpbnRvIFBSSU5UIHNvIHRoYXQgdGhleSBhcmUgbm90IHByaW50ZWQgd2hlbiB0aGUgLXEgb3B0aW9uCgkgIGlzIHNlbGVjdGVkLgoKMjAxMC0wNC0wOSAxNToxOToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvCgoyMDEwLTA0LTA5IDEzOjEyOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIGZkc3JjOiBhbGxvdyBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGVzIG9uIHRoZSB1cmkKCSAgUGFyc2UgYSBzaXplPXZhbHVlIGZyb20gdGhlIHF1ZXJ5IHN0cmluZyB0byBzcGVjaWZ5IGEgc2l6ZS4gVGhpcyBpcyBpbnRlcmVzdGluZwoJICB3aGVuIHJlYWRpbmcgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciB0aGF0IGFjdHVhbGx5IGhhcyBhIHNpemUgKGFuZCBpcyBub3QKCSAgc3RhdC1hYmxlLCBzdWNoIGFzIHRoZSBzb2NrZXQgb2YgYW4gaHR0cCBjb25uZWN0aW9uKQoKMjAxMC0wNC0wOSAxMjozNTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogd2hlbiBFT1Mgd2Uga25vdyB0aGUgZHVyYXRpb24KCSAgV2hlbiB3ZSBhcmUgRU9TLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFuIHVwc3RyZWFtIHF1ZXJ5IGZvciB0aGUgZHVyYXRpb24gaW4gYnl0ZXMKCSAgYmVjYXVzZSB3ZSBhbHJlYWR5IGtub3cgaXQgaXMgdGhlIG9mZnNldCBvZiB0aGUgbGFzdCB3cml0dGVuIGJ5dGUuCgoyMDEwLTA0LTA5IDEzOjA4OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogSW5pdGlhbGl6ZSB0eXBlZmluZC9lbGVtZW50IGZhY3RvcnkgcmVnaXN0cnkgY2h1bmtzIHdpdGggemVyb2VzCgkgIFRoaXMgbWFrZXMgdmFsZ3JpbmQgc3RvcCBjb21wbGFpbmluZyBhYm91dCByZWFkaW5nIHVuaXRpYWxpemF0ZWQgbWVtb3J5LAoJICB3aGljaCBpcyBub3QgaW5pdGlhbGl6ZWQgYmVjYXVzZSBpdCdzIGp1c3QgY29tcGlsZXItYWRkZWQgc3RydWN0IHBhZGRpbmcuLi4KCjIwMTAtMDQtMDkgMTE6MTk6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkNjZhOGMzIHRvIGZjODU4NjcKCjIwMTAtMDQtMDggMTA6MTA6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogYWRkIG5ldyAuc3ZnIGZpbGUgaW4gZG9jcwoKMjAxMC0wNC0wOCAxMDo0NzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgZG9jczogdXNlIGluZm9ybWFsZmlndXJlIHRhZyB0byBub3Qgc3ludGF4IGhpZ2hsaWdodCB0aGUgY29udGVudAoKMjAxMC0wMy0yNSAxMDozNToxMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdC11bml2ZXJzZS5kb3Q6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBjb25jZXB0IG1hcAoJICBBZGQgYSBncmFwaHZpeiBkb3QgZmlsZS4gQWRkIHJ1bGVzIHRvIHJlbmRlciBpdCB0byBzdmcgYW5kIGluY2x1ZGUgaW4gZG9jcy4KCSAgTm9kZXMgYXJlIGNsaWNrYWJsZS4gSXQgaXMgYW4gYXR0ZW1wdCB0byBzaG93IGhvdyB0aGluZ3MgZml0IHRvZ2V0aGVyLgoKMjAxMC0wNC0wNyAxOTozMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkb2NzOiBhZGQgYSBmZXcgY29kZSBzbmlwcGV0cyB0aGF0IHNob3cgaG93IHRvIHVzZSBnc3RfbWVzc2FnZV9wYXJzZV8qKCkuCgoyMDEwLTA0LTA3IDE5OjA1OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IGJ1bXAgYXV0b2NvbmYgcmVxdWlyZW1lbnQgdG8gMi42MCBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uLm00CgkgIFJlcXVpcmUgYXV0b2NvbmYgMi42MCAod2hpY2ggd2FzIHJlbGVhc2VkIGluIEp1bmUgMjAwNikuCgkgIEZpeGVzICM2MDA3MTguCgoyMDEwLTA0LTA3IDEyOjI5OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggbW9yZSBjb21waWxlciB3YXJuaW5ncwoJICBGaXggJ2dyYW1tYXIudGFiLmM6ODE1OjY6IHdhcm5pbmc6ICJZWUVOQUJMRV9OTFMiIGlzIG5vdCBkZWZpbmVkJwoJICBjb21waWxlciB3YXJuaW5nIGFuZCB0aGUgc2FtZSBmb3IgWVlMVFlQRV9JU19UUklWSUFMLiBUaGUgdHdvCgkgIHRyYW5zbGF0ZWQgc3RyaW5ncyBhcmVuJ3QgcGFydGljdWxhcmx5IGhlbHBmdWwsIHNvIGp1c3QgZGVmaW5lCgkgIFlZRU5BQkxFX05MUyB0byAwLgoKMjAxMC0wNC0wNyAxMjoyNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgRml4ICdncmFtbWFyLnk6NjY4OiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg4oCYZ19mcmVl4oCZIGRpc2NhcmRzIHF1YWxpZmllcnMKCSAgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlJyBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNC0wNyAxNjowNTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IGFkZCBTaW5jZTogbWFya2VycwoKMjAxMC0wNC0wNyAwOTozMTozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICB0ZXN0czogZ3N0c3lzdGVtY2xvY2s6IGRvbid0IGxlYWsgdGhlIHN5c3RlbSBjbG9jawoKMjAxMC0wNC0wNSAwMDowMTo1NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBmaXggb3V0IG9mIHNvdXJjZWRpciBidWlsZCBmb3IgY2hlY2sKCSAgTW92ZSB0aGUgaW50ZXJuYWwgaGVhZGVyIHRvIG5vZGlzdCAoYXMgd2UgY29weSBpdCBhcm91bmQgYW55d2F5KS4KCSAgVXNlIGJ1aWxkZGlyIGluIHBhdHRlcm4gc3Vic3RpdHV0aW9uIGZvciBpdC4KCSAgRml4ZXMgIzYxNDgzLgoKMjAxMC0wNC0wNiAxNzo0NjozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBmaXggc29tZSB0eXBvcwoKMjAxMC0wMi0yMyAwOToxNjo1NSArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoJICBLZWVwIHRyYWNrIG9mIHBlbmRpbmcgbmV3c2VnbWVudCBpbiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoJICB0byBhdm9pZCBwdXNoaW5nIG5ld3NlZ21lbnQgdXBkYXRlIGJlZm9yZSBuZXdzZWdtZW50LgoKMjAxMC0wNC0wNCAxNToyMToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAZW5zb25pYy1kZXNrdG9wLmxvY2FsZG9tYWluPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGltcHJvdmUgZXZlbnQgZG9jcwoJICBSZXBocmFzZSBmaXJzdCBwYXJhZ3JhcGggb2Ygc2VjdGlvbiBkb2NzLiBBZGQgZGV0YWlsIHRvIGVvcyBldmVudCBkb2NzLgoKMjAxMC0wMy0yOSAwODo0MzowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IEFkZCAtLWxlYXZlLXByZXByb2Nlc3Nvci1zcGFjZSBmb3IgaW5kZW50IDIuMi4xMQoJICBJdCB3YXMgcHJldmlvdXNseSBicm9rZW4sIHdoaWNoIGlzIHdoeSB3ZSBuZXZlciBuZWVkZWQgaXQuIFRoaXMga2VlcHMgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eSB3aXRoIGluZGVudCA8PSAyLjIuMTEKCjIwMTAtMDMtMzEgMTA6NDM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IHBvaW50IGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIHRvIC5sYSBmaWxlcwoJICBQb2ludCBnLWlyLXNjYW5uZXIgdG8gdGhlIC5sYSBmaWxlIG9mIG91ciBsaWJyYXJ5LCB3aGljaCBob3BlZnVsbHkKCSAgbWFrZXMgaXQgZmluZCB0aGUgcmlnaHQgZGVwZW5kZW5jaWVzIGluIGFsbCBjYXNlcyAoaWUuIG91ciBsb2NhbGx5CgkgIGJ1aWx0IGxpYmdzdHJlYW1lciBhbmQgbm90IHRoZSBzeXN0ZW0taW5zdGFsbGVkIG9uZSkuIFRoaXMgaXMgYWxzbwoJICBob3cgaXQncyBkb25lIGluIEd0aysgYW5kIGhvdyBpdCdzIGRvY3VtZW50ZWQgaW4gdGhlIHdpa2ksIHNlZQoJICBodHRwOi8vbGl2ZS5nbm9tZS5vcmcvR09iamVjdEludHJvc3BlY3Rpb24vQXV0b3Rvb2xzSW50ZWdyYXRpb24KCSAgQmFzZWQgb24gcGF0Y2hlcyBieSBWaW5jZW50IFVudHogYW5kIEFsYW4gS25vd2xlcy4KCSAgRml4ZXMgIzYwMzcxMC4KCjIwMTAtMDQtMDIgMDE6MTY6MTYgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwQHRlY25vY29kZS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogVXNlIEdfR05VQ19DT05TVCBpbnN0ZWFkIG9mIEdfR05VQ19QVVJFIGZvciBjb252ZXJzaW9uIGZ1bmN0aW9ucwoJICBGaXhlcyBidWcgIzYxNDYyOS4KCjIwMTAtMDQtMDEgMTM6MTk6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgdGVzdHM6IERvbid0IGZvcmdldCB0byB1bnJlZiB0aGUgbmV3c2VnbWVudCBldmVudAoKMjAxMC0wNC0wMSAxMjozNDo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiBVcGRhdGUgdG8gbGF0ZXN0IHJldmlzaW9uIGZvciBuZXcgc3VwcHJlc3Npb25zCgoyMDEwLTAzLTMxIDIyOjA3OjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IGZvciB1cGRhdGluZyBwbGF5YmFjayByYXRlCgkgIFRlc3RzIGlmIGEgc2VlayB3aXRoIGJvdGggcG9zaXRpb25zIGJlaW5nIEdTVF9TRUVLX1RZUEVfTk9ORSBpcyBoYW5kbGVkLgoKMjAxMC0wMy0zMSAxNjo1NTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBhZGQgY29weSBhbmQgY29udiBmdW5jdGlvbiB0byBidWZmZXIyIGRyYWZ0CgoyMDEwLTAzLTMxIDEwOjU0OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXIyIGRyYWZ0CgoyMDEwLTAzLTMxIDExOjI2OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGltcHJvdmUgY29tbXVuaWNhdGlvbiBwaWN0dXJlIGFuZCBzZWN0aW9uCgkgIEluZGljYXRlIHRoYXQgb25seSBtZXNzYWdlcyBnbyB2aWEgYnVzLiBBbHNvIGFkZCBxdWVyaWVzIGJldHdlZW4gZWxlbWVudHMuCgoyMDEwLTAzLTMxIDEwOjI0OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBldmVudDogVXNlIGNvcnJlY3QgdHlwZSBmb3IgdGhlIG1lc3NhZ2UgcGFyYW1ldGVyIGluIGdzdF9ldmVudF97bmV3LHBhcnNlfV9zaW5rX21lc3NhZ2UKCSAgVGhlIHN0cnVjdCB3b3JrYXJvdW5kIHdhcyBvbmx5IG5lY2Vzc2FyeSBpbiBnc3RldmVudC5oLCBnc3R1dGlscy5oIGtub3dzIGFib3V0IEdzdE1lc3NhZ2UKCjIwMTAtMDMtMzEgMDk6NTY6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogYWRkIGNvbW11bmljYXRpb24gb3ZlcnZpZXcgdG8gZG9jcwoJICBBZGQgYSBzZWN0aW9uIHRvIHRoZSBiYXNpY3MgdGhhdCBzaG93IGJ1ZmZlcnMsIGV2ZW50cywgbWVzc2FnZXMgYW5kIHF1ZXJpZXMKCSAgdG9nZXRoZXIgYW5kIGRlc2NyaWJlIHRoZSBiYXNpY3MuCgoyMDEwLTAzLTMwIDE1OjU2OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHBrZ2NvbmZpZzogYWRkIGdpcmRpciBhbmQgdHlwZWxpYmRpciB2YXJpYWJsZXMgdG8gLnBjIGZpbGVzCgkgIFNvIHRoYXQgdGhlIC1iYXNlIGxpYnMgY2FuIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IGluY2x1ZGUgcGF0aHMgZm9yIHRoZQoJICBnb2JqZWN0LWludHJvc3BlY3Rpb24gdG9vbHMgZXZlbiBpZiBjb3JlIGdvdCBpbnN0YWxsZWQgaW50byBhIHByZWZpeAoJICB0aGF0J3Mgbm90IHRoZSBzYW1lIHByZWZpeCBhcyBnb2JqZWN0LWludHJvc3BlY3Rpb24gaXMgaW5zdGFsbGVkIGluCgkgIG9yIGl0J3MgYmVpbmcgYnVpbGQgaW4gYW4gdW5pbnN0YWxsZWQgZ3N0cmVhbWVyIHNldHVwLgoKMjAxMC0wMy0zMCAxNToyMjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmcKCjIwMTAtMDMtMzAgMTU6MjA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSogbTQvLmdpdGlnbm9yZToKCSogbTQvTWFrZWZpbGUuYW06CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgYnVpbGQ6IG1ha2UgYXV0b3Rvb2xzIHB1dCBpdHMgbTQgZmlsZXMgaW50byBtNC8gaW5zdGVhZCBvZiBjb21tb24vbTQvCgkgIFRoaXMgaXMgaG93IHdlIGRvIGl0IGluIHRoZSBvdGhlciBtb2R1bGVzLCBhbmQgZ2V0cyByaWQgb2YgdGhlIGFubm95aW5nCgkgIGRpcnR5IHN0YXR1cyBmb3IgY29tbW9uIHdoZW4gZG9pbmcgZ2l0IHN0YXR1cyAoYXQgbGVhc3Qgb25jZSB5b3UgY2xlYW4KCSAgb3V0IHRoZSBvbGQgZmlsZXMgZnJvbSB0aGVyZSkuCgoyMDEwLTAzLTMwIDEyOjMzOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBidWlsZCBleGFtcGxlcyBzdWJkaXJlY3RvcmllcyBpbiBwYXJhbGxlbCBpZiByZXF1ZXN0ZWQKCjIwMTAtMDMtMjggMjA6NTU6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlZmFjdG9yIGNhcHMgc3VnZ2VzdGlvbiBvbiBwYWRfYWxsb2MKCSAgUmVmYWN0b3IgdGhlIGhhbmRsaW5nIG9mIHNpbmsgc3VnZ2VzdGlvbiBjYXBzIHZhcmlhYmxlCgkgIHNvIHRoYXQgaXQgYWx3YXlzIGhhcyBhIHJlZiB0byB0aGUgY2FwcyBpdCBwb2ludHMgdG8uCgkgIE1ha2VzIHRoZSBjb2RlIGNsZWFyZXIuCgoyMDEwLTAzLTI5IDE2OjM0OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBhZGQgYSBjb21tZW50IGV4cGxhaW5pbmcgdGhlIHJlYXNvbiBmb3IgdXNpbmcgZnVjbnRpb24gcHJvdG9zIGhlcmUuCgoyMDEwLTAzLTI5IDE2OjEzOjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBhbHdheXMgZGVmaW5lIGR1bW15IGRlYnVnIGNhdGVnb3J5IGFzIGEgZnVuY3Rpb24gcHJvdG90eXBlCgkgIEl0IGRvZXMgbm90IHNlZW0gdG8gbWFrZSBzZW5zZSB0byBkZWZpbmUgdGhpcyBhcyBhIGZ1bmN0aW9uIG9ubHkgaWYgd2UgaGF2ZQoJICB2YXJhcmdzIG1hY3Jvcy4KCjIwMTAtMDMtMjggMTU6MTA6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBmaXggcmVkZWNsYXJhdGlvbiBlcm9ycyB3aGVuIGJ1aWxkaW5nIHdpdGggLS1nc3QtZGlzYWJsZS1nc3QtZGVidWcKCSAgR2l2ZSBkdW1teSBzeW1ib2xzIGEgdW5pcWUgbmFtZS4KCjIwMTAtMDMtMjggMTQ6NDk6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBtb3ZlIHNvbWUgcHJvdG90eXBlcyBvdXQgb2YgI2lmbmRlZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgTW92ZSB0aGUgcHJvdG90eXBlcyB1cCB0b2dldGhlci4gV2Ugb25seSBkZWZpbmUgdGhlIG1hY3JvcyBkaWZmZXJlbnRseS4KCSAgRml4ZXMgYnVnICM2MTQxNjcgbW9zdGx5LgoKMjAxMC0wMy0yOSAxNjowNTo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogcmVhZGQgdGhlIHVzZSBvZiBHc3REZWJ1Z0Z1bmNQdHIgdHlwZWRlZiBhbmQgdGVsbCB3aHkKCSAgVGhpcyByZXZlcnRzIHRoZSByZWxhdGVkIGNoYW5nZXMgZnJvbSAzZjQ5NTRlNDJkMDQ0MGE3YTU5OGE5MDgzMjVjNDVlYTlkYjA3NmU0CgkgIGFuZCBmZmIwYTRlMTkwNWE4NzMxOTFmOGM4MDIzNDYyNjFlOGM0NDM1MDY1LgoKMjAxMC0wMy0yOSAxMDoyMjo0MyArMDEwMCAgQWxhbiBLbm93bGVzIDxhbGFuQGFrYmtob21lLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBuZXQ6IGZpeCB0eXBvIGluIG5ldCBjbGllbnQgY2xvY2sgc3RydWN0dXJlCgkgIEl0J3Mgc29ja2FkZHJfaW4sIG5vdCBzb2NrYWRkcl9pZC4KCjIwMTAtMDMtMjYgMTc6MTI6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBhZGQgY3J1ZnQgYWxlcnQgZm9yIGNvbW1vbi9zaGF2ZSoKCjIwMTAtMDMtMjggMjE6MDI6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRml4IGJ1aWxkIGF0IGxlYXN0IHVudGlsIHRoZSBjb3JyZWN0IGZpeCBpcyBmb3VuZAoJICBTZWUgYnVnICM2MTQxNjcuCgoyMDEwLTAzLTI4IDE5OjEzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBNYWtlIHN0cnVjdHVyZSBhYmJyZXZpYXRpb25zIGFycmF5IG9uZS10aW1lIGluaXRpYWxpemF0aW9uIHRocmVhZHNhZmUKCjIwMTAtMDMtMjggMTg6MDU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgRklYTUUgMC4xMSBmb3IgdXNpbmcgR1NsaWNlIGZvciBhbGxvY2F0aW9uCgoyMDEwLTAzLTI4IDE4OjA1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgZ3N0OiBVc2UgR1NsaWNlIGluc3RlYWQgb2Ygbm9ybWFsIGdfbWFsbG9jIGluIG1vcmUgcGxhY2VzCgoyMDEwLTAzLTI4IDEzOjE0OjA2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBidWlsZDogbW9yZSBzb21lIHByb3RvdHlwZXMgb3V0IGlmICNpZm5kZWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIFRoZSBidWlsZCB3YXMgZmFpbGluZyBiZWNhc3VlIG9mIGEgbmV3IHdhcm5pbmcuIFRoZXJlIGFyZSBzdGlsbCBmYWlsdXJlcwoJICAodHJhY2tlZCB2aWEgYnVnICM2MTQxNjcpLgoKMjAxMC0wMy0yNSAyMDowNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciBuZXdseS1hZGRlZCBzdHJpbmdzCgoyMDEwLTAzLTI1IDE5OjU2OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIGRvY3M6IGZpeCBpbnRlcm1pdHRlbnQgbWFrZSBkaXN0Y2hlY2sgZmFpbHVyZXMKCSAgVXNlIC5OT1RQQVJBTExFTCB3aGVuIGJ1aWxkaW5nIGRvY3MuIFRoaXMgYXZvaWRzIGludGVybWl0dGVudAoJICBtYWtlIGRpc3RjaGVjayBmYWlsdXJlcyBsaWtlICdjcDogY2Fubm90IGNyZWF0ZSByZWd1bGFyIGZpbGUKCSAgYGJ1aWxkL2ltYWdlLmVudGl0aWVzJzogRmlsZSBleGlzdHMnIHdoZW4gdXNpbmcgLWpOLgoJICBGaXhlcyAjNTkwNzE4LgoKMjAxMC0wMy0yNSAxODo1Nzo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBGSVhNRSAwLjExIHRvIHJlbW92ZSBHc3RFbGVtZW50RGV0YWlscyBmcm9tIHRoZSBwdWJsaWMgQVBJCgkgIEl0J3Mgbm90IG5lY2Vzc2FyeSBhbnltb3JlIHRvIGV4cG9zZSB0aGlzIGFzIHB1YmxpYyBBUEkgYW5kIHRoaXMgYWxsb3dzCgkgIGVhc2llciBleHRlbnNpb24gb2YgdGhlIGVsZW1lbnQgZGV0YWlscyBieSBuZXcgZmllbGRzLgoKMjAxMC0wMy0yNSAxODo0MzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaGFuZGxlIHdyaXRlIGVycm9ycwoJICBIYW5kbGUgd3JpdGUgZXJyb3JzIHRvIHRoZSB0ZW1wb3JhcnkgZG93bmxvYWQgZmlsZSBhbmQgcG9zdCBlcnJvcnMgd2hlbgoJICBzb21ldGhpbmcgd2VudCB3cm9uZy4KCjIwMTAtMDMtMjUgMTg6MTM6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBlbGVtZW50IHF1ZXJ5IGZ1bmN0aW9uCgkgIEFkZCBhbiBlbGVtZW50IHF1ZXJ5IGZ1bmN0aW9uIHRoYXQgaXMgYSBsaXR0bGUgbW9yZSBlZmZpY2llbnQgdGhhbiB0aGUgZ2VuZXJpYwoJICBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIuCgoyMDEwLTAzLTI1IDE4OjEyOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoJICBNZW50aW9uIHRoYXQgYSBEVVJBVElPTiBtZXNzYWdlIGRvZXMgbm90IG1lYW4gdGhhdCBvbmUgY2FuIHNhZmVseSBxdWVyeSB0aGUKCSAgZHVyYXRpb24gb24gYSBiaW4sIHRoYXQgb25seSB3b3JrcyB3aGVuIHRoZSBiaW4gaXMgcHJlcm9sbGVkLgoKMjAxMC0wMy0yNSAxODowNToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIGZpeGVkIEZJWE1FCgoyMDEwLTAzLTI1IDE3OjM2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGQgdGhlIGJ1ZmZlcmluZyBwZXJjZW50IGluIEJVRkZFUklORyBxdWVyeQoKMjAxMC0wMy0yNSAxNzoyMTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaW1wcm92ZSBidWZmZXIgbGV2ZWwgbWVhc3VyZW1lbnQgaW4gZG93bmxvYWQgbW9kZQoJICBLZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBsZXZlbCBpbiB0aGUgY3VycmVudCByYW5nZSBpbiBkb3dubG9hZCBtb2RlIHNvCgkgIHRoYXQgd2UgcG9zdCB0aGUgY29ycmVjdCBidWZmZXJpbmcgbWVzc2FnZXMuCgoyMDEwLTAzLTI1IDE1OjU0OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZG9uJ3QgdXNlIGZhbmN5IHNoZWxsIGZlYXR1cmVzIHdoZW4gaW52b2tpbmcgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIKCSAgSXQncyBQT1NJWCwgYnV0IHRjc2ggZG9lc24ndCBzZWVtIHRvIHN1cHBvcnQgaXQuCgoyMDEwLTAzLTI1IDEzOjQ2OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZml4IFBLR19DT05GSUdfUEFUSCB1c2VkIHdoZW4gY2FsbGluZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICBPdXIgb3duIHBrZ2NvbmZpZyBkaXJlY3Rvcnkgc2hvdWxkIGNvbWUgZmlyc3QsIHNvIHRoYXQgcGtnLWNvbmZpZyB1c2VzCgkgIHRoZSBpbi10cmVlIGxpYmdzdHJlYW1lciBhbmQgbm90IHNvbWUgZXh0ZXJuYWwgb25lIHdoZW4gLS1wa2c9Z3N0cmVhbWVyLTAuMTAKCSAgaXMgcGFzc2VkIHRvIGctaXItc2Nhbm5lci4KCSAgU2VlICM2MDM3MTAuCgoyMDEwLTAzLTI1IDEwOjI3OjAwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEdzdEFkYXB0ZXI6IGFkZCBhIHVuY2hlY2tlZCB2YXJpYW50IG9mIGZsdXNoIGZvciBpbnRlcm5hbCB1c2FnZQoJICBUcmltcyBvZmYgMTAtMjAlIGNwdSB0aW1lIHdoZW4gdXNpbmcgZ3N0X2FkYXB0ZXJfdGFrZVtfYnVmZmVyXQoKMjAxMC0wMy0xOSAxNToxMDowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGQgbmV3IF9VU0VSX1JBVElORyB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgZm9yIHVzZXIgZmF2b3JpdGUgbWVkaWEgcmF0aW5nLgoJICBVc2VyIHJhdGluZyBpbmZvcm1zIGhvdyBtdWNoIChmcm9tIDAgdG8gMTAwKSBhIHVzZXIKCSAgJ2xpa2VzJyBhIG1lZGlhLgoJICBIYXZpbmcgYW4gcGVyY2VudCB1aW50IHJhbmdlIGZvciB0aGlzIGlzIGVhc3kgdG8gbWFwIGludG8gb3RoZXIgc2NhbGVzLAoJICBsaWtlIHNvbWUgcGxheWVycyB0aGF0IGFsbG93IHVzZXJzIHRvIGF0dHJpYnV0ZSAnc3RhcnMnIHRvIGl0cwoJICBtZWRpYS4KCSAgQVBJOiBHU1RfVEFHX1VTRVJfUkFUSU5HCgkgIEZpeGVzICM1MjA2OTcKCjIwMTAtMDMtMjQgMTk6MDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBtb3JlIGluZm8gaW4gdGhlIGJ1ZmZlcmluZyBxdWVyeQoJICBBZGQgdGhlIGVzdGltYXRlZCBkb3dubG9hZCB0aW1lIGFuZCBlc3RpbWF0ZWQgdGltZSBsZWZ0IHRvIHRoZSBidWZmZXJpbmcgcXVlcnkKCSAgcmVzdWx0cyBhbG9uZyB3aXRoIHRoZSBlc3RpbWF0ZWQgZG93bmxvYWQgYW5kIHBsYXliYWNrIHNwZWVkLgoKMjAxMC0wMy0yNCAxODoxODoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogaW1wbGVtZW50IGZsdXNoaW5nIGluIGRvd25sb2FkIGJ1ZmZlcmluZwoJICBNYWludGFpbiBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvIGNvbnRyb2wgc3JjIGFuZCBzaW5rIGZsb3dyZXR1cm4gdmFsdWVzIHNvIHRoYXQKCSAgd2UgY2FuIHVubG9jayB0aGUgc3JjIHBhcnQgd2l0aG91dCBzaHV0dGluZyBkb3duIHRoZSBzaW5rIHBhcnQuCgkgIEFkZCBmbHVzaGluZyBmb3IgdXBzdHJlYW0gcHVsbCBiYXNlZCBlbGVtZW50cyB0aGF0IHVuYmxvY2tzIG91ciBnZXRyYW5nZQoJICBmdW5jdGlvbi4gVGhpcyBpbXBsZW1lbnRzIHNlZWtpbmcgd2hlbiBibG9ja2luZyBmb3IgbW9yZSBkYXRhLgoJICBBZGQgc29tZSBhcmJpdHJhcnkgdGhyZXNob2xkIGJlZm9yZSBhdHRlbXB0aW5nIGEgc2Vlay4gQWRkIGEgRklYTUUgZm9yIHRoaXMKCSAgYmVjYXVzZSB3ZSBuZWVkIHRvIGZpbmQgYSBzZW5zaWJsZSB0aHJlc2hvbGQgYmFzZWQgb24gdGhlIGlucHV0IHJhdGUuCgoyMDEwLTAzLTI0IDE4OjUwOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1NWNkNTE0IHRvIGMxZDA3ZGQKCjIwMTAtMDMtMjQgMTc6MzI6NTQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIHVudXNlZCBjb2RlCgkgIE9QVF9DRkxBR1Mgd2FzIG5ldmVyIEFDX1NVQlNUKCknZWQgc28gaXQgd2Fzbid0IHVzZWQuIEFuZCB0aGUgbGFzdCB0aW1lCgkgIGl0IHdhcyB0b3VjaGVkIHdhcyBpbiAyMDA1LgoKMjAxMC0wMy0yNCAxNTo0NzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBmaXggbWFrZSBkaXN0Y2hlY2sKCSAgVGhlIGNoYW5nZSBmcm9tIEdTVF9BTExfQ0ZMQUdTIHRvIEdTVF9PUFRJT05fQ0ZMQUdTIGRyb3BwZWQgdGhlIGluY2x1ZGVzLAoJICBwdXR0aW5nIHRoZW0gYmFjayBmaXhlcyBtYWtlIGRpc3RjaGVjay4KCjIwMTAtMDMtMjQgMTU6MTU6MjMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRml4IHRlc3RzIGFmdGVyIHNldF9lbGVtZW50X2RldGFpbHMoKSBkZXByZWNhdGlvbgoKMjAxMC0wMy0yNCAxMzozMzo1OCArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlOiBGaXggYW5kIHJlc3RydWN0dXJlIGxvZ2ljCgoyMDEwLTAzLTE5IDIyOjM2OjA3ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBEZXByZWNhdGVkIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzKCkKCSAgVXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGluc3RlYWQuIElmIHlvdSB3YW50IHRvCgkgIGNvbnZlcnQgYXV0b21hdGljYWxseSwgaGVyZSdzIGEgc2NyaXB0OgoJICBmb3IgZmlsZSBpbiBgZ2l0IGdyZXAgLWwgR3N0RWxlbWVudERldGFpbHNgOyBkbwoJICBzZWQgLWkgLW4gLXIgJwoJICAxaAoJICAxIUgKCSAgJCB7CgkgIGcKCSAgcy8oKFwvXCpbXlxuXSpcKlwvKT9cbikqW15cbl0qR3N0RWxlbWVudERldGFpbHMgLiogPVxzKkdTVF9FTEVNRU5UX0RFVEFJTFNccypcKChcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccyooXCJbXlwiXSpcIlxzKikqKVwpO1xuKiguKilnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyBcKChbXixdKiksXHMqW14pXSpcKS9cblxuXDVnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgKFw2LCBcMykvCgkgIHMvKChcL1wqW15cbl0qXCpcLyk/XG4pKlteXG5dKkdzdEVsZW1lbnREZXRhaWxzIC4qID1ccypce1xzKihcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccyooXCJbXlwiXSpcIlxzKikqKVx9O1xuKiguKilnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyBcKChbXixdKiksXHMqW14pXSpcKS9cblxuXDVnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgKFw2LCBcMykvCgkgIHAKCSAgfScgJGZpbGUKCSAgfi9nc3QvZ3N0cmVhbWVyL3Rvb2xzL2dzdC1pbmRlbnQgJGZpbGUKCSAgZG9uZQoKMjAxMC0wMy0yNCAxMDo1NzowOCArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxMC0wMy0yMyAxOToyNTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IHJlbW92ZSB1bnVzZWQgQ0hFQ0tfQ0ZMQUdTIGFuZCBDSEVDS19MSUJTIGZyb20gTWFrZWZpbGUuYW0KCjIwMTAtMDMtMjMgMTk6MjM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIG1hcHBpbmcgZm9yICh1aW50KSB0byBhbGxvdyBkZXNlcmlhbGlzYXRpb24gb2YgdW5zaWduZWQgaW50ZWdlcnMKCSAgVW5zaWduZWQgaW50cyBhcmUgdXNlZCBpbiB0YWdsaXN0cywgd291bGQgYmUgbmljZSB0byBiZSBhYmxlIHRvCgkgIGRlc2VyaWFsaXNlIHRoZW0sIGVzcC4gaW4gY29ubmVjdGlvbiB3aXRoIHRoZSB0YWdpbmplY3QgQVBJLgoKMjAxMC0wMy0yMyAxOToyNToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogaW1wbGVtZW50IHNlZWtpbmcgaW4gZG93bmxvYWQgbW9kZQoJICBXaGVuIGluIGRvd25sb2FkIG1vZGUgYW5kIHRoZSByZXF1ZXN0ZWQgb2Zmc2V0IGlzIHRvbyBmYXIgYXdheSwgYXR0ZW1wdCB0byBkbyBhCgkgIHNlZWsgcmVxdWVzdCB0byBmZXRjaCB0aGUgZGF0YS4KCSAgS2VlcCB0cmFjayBvZiBhbGwgZG93bmxvYWRlZCBwYXJ0cyBhbmQgbWVyZ2UgcmFuZ2VzIHdoZW4gbmVlZGVkLgoJICBGaXhlcyAjNjAwODc3CgoyMDEwLTAzLTIyIDExOjA2OjIxIC0wMzAwICBBbmRyw6kgRGllYiBNYXJ0aW5zIDxhbmRyZS5kaWViQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZS5zaDogdXNlIGF1dG9nZW4uc2ggaW5zdGVhZCBvZiBhdXRvcmVnZW4uc2ggb24gZnJlc2ggcmVwb3NpdG9yaWVzLgoJICBGaXhlcyAjNjEzNTkzLgoKMjAxMC0wMy0yMiAxNzoxMDowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dldHRleHQuaDoKCSAgZ2V0dGV4dDogYnVpbGQgZml4ZXM6ICNpZiAtPiAjaWZkZWYKCjIwMTAtMDMtMTggMTA6MjI6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBtYWtlIGRlbGF5ZWQgc2V0IHJlY3Vyc2l2ZQoJICBSaWdodCBub3cgZGVsZXllZCBzZXQgd291bGQgb25seSB0cnkgZm9yIGZpcnN0IHNldCBvZiBjaGlsZHJlbi4gV2UgbmVlZCB0byBrZWVwCgkgIHRyeWluZyB0byBzdXBwb3J0IGFyYml0cmFyeSBkZWVwIGhpZXJhcmNoaWVzIChsaWtlIGluIHBsYXliaW4yIHdpdGggYXV0bypzaW5rcykuCgkgIEFsc28gR3N0QmluIHdvdWxkIG5lZWQgdG8gYWN0dWFseSBlbWl0IHRoZSBjaGlsZC1hZGRlZC9yZW1vdmVkIHNpZ25hbCBhcyBpdAoJICBpbXBsZW1lbnRzIHRoZSBpZmFjZS4gRml4ZXMgIzYxMzIxNS4KCjIwMTAtMDMtMjIgMDg6NDA6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgcGtnY29uZmlnOiBVc2UgQExJQk1AIGluc3RlYWQgb2YgLWxtCgoyMDEwLTAzLTE5IDAxOjAyOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHBrZ2NvbmZpZzogYWRkIGJhY2sgc3VwcG9ydCBmb3IgYnVpbGRkaXIgIT0gc3JjZGlyIGNhc2UgaW4gdW5pbnN0YWxsZWQgc2V0dXAKCSAgQXR0ZW1wdCB0byBhZGQgYmFjayBzdXBwb3J0IGZvciBidWlsZGRpciAhPSBzcmNkaXIuIFVzZSBhYnNvbHV0ZSBwYXRocwoJICBpbnN0ZWFkIG9mIHJlbGF0aXZlIHBhdGhzIGJhc2VkIG9uIHBjZmlsZWRpciB0aGlzIHRpbWUgdG8gbWFrZSB0aGluZ3MKCSAgY2xlYXJlciAtIHRoZXJlJ3Mgbm90IHJlYWxseSBhbnkgbmVlZCBmb3IgdW5pbnN0YWxsZWQgdHJlZXMgdG8gYmUKCSAgcmVsb2NhdGFibGUgd2l0aG91dCByZS1ydW5uaW5nIGNvbmZpZ3VyZS4KCjIwMTAtMDMtMTggMTE6MTg6MzkgKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXBsZW1lbnQgUW9TIG1lc3NhZ2UgcG9zdGluZwoJICBBbmQgc29tZSBtb3JlIGZvciBidWcgIzMyMjk0NwoKMjAxMC0wMy0xOCAxMzo0MTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjYXRjaCwgcGFyc2UgYW5kIHN0b3JlIFFvUyBldmVudCB2YWx1ZXMKCSAgQ2F0Y2gsIHBhcnNlIGFuZCBzdG9yZSB0aGUgUW9TIHZhbHVlcyBmcm9tIFFvUyBldmVudHMgZm9yIGxhdGVyIHVzZS4KCjIwMTAtMDMtMTcgMTU6Mjk6NDggKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEltcGxlbWVudCBRb1MgbWVzc2FnZSBwb3N0aW5nIGluIGJhc2VzaW5rCgkgIFBvc3QgUW9TIG1lc3NhZ2VzIHdoZW4gZnJhbWVzIGFyZSBkcm9wcGVkLgoJICBUaGlzIGdvZXMgYSBsaXR0bGUgZnVydGhlciB0b3dhcmRzIHJlc29sdmluZyBidWcgIzMyMjk0NwoKMjAxMC0wMy0xNyAxOToyNjozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMC0wMy0xNyAxOToxNjo0MiArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIFFvUyBtZXNzYWdlIHRvIGluZm9ybSBhcHBzIG9mIGxvc3QgZGF0YQoJICBUaGlzIGhhcyBiZWVuIGltcGxlbWVudGVkIGFzIHBlciBwYXJ0LXFvcy50eHQgYW5kIHBhcnRpYWxseSBhZGRyZXNzZXMKCSAgYnVnICMzMjI5NDcKCjIwMTAtMDMtMTcgMTY6NDQ6MDUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICB0ZXN0OiBSZW1vdmUgbmVlZGxlc3MgY2FzdAoJICBHc3RWYWx1ZUFycmF5Lm5hbWUgaXMgY29uc3Qgbm93CgoyMDEwLTAzLTE3IDE0OjMzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIFJldmVydCAiQWRkIHNyY2RpciB0byBpbmNsdWRlcyBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMiCgkgIEkgZG9uJ3Qga25vdyBob3cgdGhpcyBldmVyIHdvcmtlZCwgYXMgaXQgc2VlbXMgdG8gcHV0IC1JLi8uLgoJICBhbmQgLUkuLy4uL2xpYnMgdmVyYmF0aW0gaW50byB0aGUgaW5jbHVkZXMsIGF0IGxlYXN0IHdpdGgKCSAgY3VycmVudCBhdXRvdG9vbHMgdmVyc2lvbnMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjc5YTgwZmYyN2JhNGM5MGY1Mjk4MWU4OWU3MTBlYjExODFiYzIwMS4KCjIwMTAtMDMtMTcgMTU6NDY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBwcmVmZXIgc2hvcnQgZGVzYyBmcm9tIEdzdEVsZW1lbnREZXRhaWxzCgoyMDEwLTAyLTE1IDAxOjI0OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIGNodW5rIGZvciBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KCkKCjIwMTAtMDItMTUgMDA6MzE6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHBvIGZpbGVzIGZvciBuZXcgY29tbWVudHMKCjIwMTAtMDItMTUgMDA6Mjk6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogd3JhcCBsb25nIHN0cmluZyBjb25zdGFudHMKCSAgQW5kIGZpeCBpbmRlbnRpbmcgaXNzdWUKCjIwMTAtMDItMTUgMDA6MjE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogYWRkIHNvbWUgY29tbWVudHMgZm9yIHRyYW5zbGF0b3JzIHNvIHRhZyBtbmVtb25pY3MgZ2V0IHRyYW5zbGF0ZWQgY29ycmVjdGx5CgkgIFdlIHdhbnQgJ3ByZXZpZXcgaW1hZ2UnIHRyYW5zbGF0ZWQgYXMgYSBub3VuLCBub3QgYXMgJ3ByZXZpZXcgW3RoZV0gaW1hZ2UnLgoKMjAxMC0wMi0wNCAxNzo0MzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcHJpbnQgV0FSTiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBub3JtYWwgdGhpbmdzIGxpa2UgRU9TCgoyMDEwLTAyLTE0IDIzOjE1OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTZkYzc5MyB0byA0NGVjY2U3CgoyMDEwLTAyLTEzIDE1OjE4OjA1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlc2V0IHRoZSB3b3JraW5nIG1vZGUgd2hlbiBnb2luZyB0byBSRUFEWS9OVUxMCgkgIFRoaXMgYWxsb3dzIHByb3Blcmx5IHJlLXVzaW5nIHR5cGVmaW5kIChlbHNlIGl0IHdvdWxkIHRoaW5rIGl0J3MKCSAgYWxyZWFkeSBkb25lIHRoZSB0eXBlZmluZGluZyB3aGVuIGJlaW5nIHJlLXVzZWQgd2l0aCBhbm90aGVyCgkgIHN0cmVhbSkuCgoyMDEwLTAxLTIyIDExOjM4OjU5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBZGRzIGEgdGVzdCBmb3IgX2ZpbGwKCjIwMTAtMDEtMjIgMDk6MTk6MzEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGV3cml0ZXI6IGFkZCBfZmlsbCBmdW5jdGlvbgoJICBBZGRzIGEgbmV3IGZ1bmN0aW9uIHRvIEdzdEJ5dGVXcml0ZXIgdGhhdCB3cml0ZXMKCSAgYSBjb25zdGFudCB2YWx1ZSB0byBhIG1lbW9yeSBhcmVhIChha2EgbWVtc2V0KS4KCSAgVXNlZnVsIGZvciBhZGRpbmcgcGFkZGluZyB0byBidWZmZXJzLgoJICBBbHNvIHVwZGF0ZXMgLmRlZiBmaWxlIGFuZCBkb2NzLgoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9maWxsKCkKCjIwMTAtMDEtMjggMTE6NTc6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEF2b2lkIG1lc3NpbmcgcGFkcyBhY3RpdmF0aW9uCgkgIFR5cGVmaW5kIG1pZ2h0IG1lc3MgdXAgcGFkcyBtb2RlcyAocHVsbC9wdXNoKSBpZiBhCgkgIGRvd25zdHJlYW0gZWxlbWVudCBpcyBwbHVnZ2VkIGFuZCBpdHMgcGFkcyBhY3RpdmF0ZWQKCSAgaW4gJ3N0ZXAgMicgb2YgdHlwZWZpbmQgcGFkcyBhY3RpdmF0aW9uLgoJICBUaGlzIGhhcHBlbnMgYmVjYXVzZSB0aGUgZm9sbG93aW5nIHN0ZXBzIGRvbid0IGNoZWNrCgkgIGlmIHdlIGFscmVhZHkgZW1pdHRlZCB0eXBlZm91bmQgZHVlIHRvIHVwc3RyZWFtIHNldHRpbmcKCSAgY2FwcyBvbiBidWZmZXJzIGJlaW5nIHB1bGxlZCBpbiB0aGUgdHlwZWZpbmQgaGVscGVycy4KCSAgQXZvaWQgdGhhdCBieSBjaGVja2luZyBpZiB0eXBlZm91bmQgaXMgYWxyZWFkeSBlbW1pdGVkLgoJICBGaXhlcyAjNjA4MDM2CgoyMDEwLTAyLTEyIDE0OjQ5OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogTWFrZSBsb2NraW5nIG9mIHRoZSBzZWdtZW50IGEgYml0IG1vcmUgc3RyaWN0IGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbgoJICBVcGRhdGluZyB0aGUgc2VnbWVudCB2YWx1ZXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hpbGUgaG9sZGluZyB0aGUKCSAgU1RSRUFNX0xPQ0sgYW5kIE9CSkVDVF9MT0NLLiBUaGlzIG1lYW5zLCByZWFkaW5nIGNhbiBiZSBkb25lIGFzCgkgIGxvbmcgYXMgb25lIG9mIHRoZW0gaXMgaGVsZCwgbm90IGJvdGgsIHdoaWNoIHJlbW92ZXMgc29tZSBsb2NrLXVubG9jawoJICBibG9ja3MgZnJvbSBwZXJmb3JtYW5jZSBjcml0aWNhbCBjb2RlIHBhdGhzLgoJICBBbHNvIGRvY3VtZW50LCB0aGF0IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KCkgKm11c3QqIGJlIGNhbGxlZCBpbgoJICBzdGF0ZXMgPD0gUkVBRFkgYW5kIGFkZCBhbiBhc3NlcnRpb24gZm9yIHRoaXMuIENoYW5naW5nIHRoZSBmb3JtYXQKCSAgbGF0ZXIgd2lsbCBjb21wbGV0ZWx5IG1lc3MgdXAgdGhlIHNlZ21lbnQgaW5mb3JtYXRpb24uCgoyMDEwLTAyLTA4IDA5OjEyOjAxICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgcHdnOiBzZXZlcmFsIHR5cG8gZml4ZXMKCSAgRml4ZXMgIzYwOTI4Ni4KCjIwMTAtMDItMDkgMTc6NTI6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFByb3RlY3Qgc2VnbWVudCB2YWx1ZXMgZnJvbSBjb25jdXJyZW50IGFjY2VzcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzCgkgIFRoaXMgY291bGQgaGFwcGVuIGVhc2lseSBpbiB0aGUgcXVlcnkgZnVuY3Rpb25zIG9yIHdoZW4gdGhlIHNpemUgaXMgc2V0CgkgIG9uIGFwcHNyYyBmcm9tIHNvbWUgbm9uLXN0cmVhbWluZyB0aHJlYWQuCgoyMDEwLTAyLTA0IDIxOjExOjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogUHJvdGVjdCBpbnRlcm5hbCBmaWVsZHMgZnJvbSBjb25jdXJyZW50IGNoYW5nZXMgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcwoJICBGaXhlcyBidWcgIzYwODg3Ny4KCjIwMTAtMDItMTEgMjA6MTQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBkb24ndCBsZWFrIHRpbWVvdXQgR1NvdXJjZQoKMjAxMC0wMi0xMSAwMDoxODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBmbGVzaCBvdXQgcmVsZWFzZSBkb2Mgc29tZSBtb3JlCgoyMDEwLTAyLTExIDAxOjEwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1BSU5UQUlORVJTOgoJICBVcGRhdGUgTUFJTlRBSU5FUlMsIGFkZCBteXNlbGYKCjIwMTAtMDItMTEgMTk6NDk6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCSAgU2x1c2h5IGZyZWV6ZSByZW1haW5zIGluIGVmZmVjdC4KCj09PSByZWxlYXNlIDAuMTAuMjYgPT09CgoyMDEwLTAyLTEwIDE5OjE3OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjYKCjIwMTAtMDItMTAgMTU6MzI6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAyLTA5IDE1OjUyOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBkZWZpbmUgR1NUX1BMVUdJTl9TQ0FOTkVSX0lOU1RBTExFRCBpbiB3aW4zMiBjb25maWcuaAoJICBFdmVuIGlmIGl0J3Mgbm90IHVzZWQsIGl0IHN0aWxsIG5lZWRzIHRvIGJlIGRlZmluZWQgZm9yIHRoaW5ncyB0bwoJICBjb21waWxlLgoKMjAxMC0wMi0wOSAxMDoxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0X3ByaXZhdGU6IE1TVkMgZG9lc24ndCBzZWVtIHRvIGxpa2UgI3dhcm5pbmcKCSAgVmlzdWFsIFN0dWRpbyBjb21wbGFpbnMgYWJvdXQgImludmFsaWQgcHJlcHJvY2Vzc29yIGNvbW1hbmQgJ3dhcm5pbmcnIgoJICBldmVuIGlmIHRoZSBpZmRlZiBkb2Vzbid0IHRyaWdnZXIsIHNvIGp1c3QgcmVtb3ZlIHRoaXMgYWdhaW4uCgoyMDEwLTAyLTEwIDE0OjQwOjE3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogRml4IG11bHRpcXVldWUgdGVzdCBmb3IgbGF0ZXN0IGNvbW1pdHMuCgkgIFRoZSBwcm9ibGVtIGxpZXMgaW4gdGhlIGZhY3QgdGhhdCBtdWx0aXF1ZXVlIHdpbGwgbm93IG9wZXJhdGUgc29tZXdoYXQKCSAgc2ltaWxhcmx5IHRvIHRoZSBmbG93IGFnZ3JlZ2F0aW9uIGxvZ2ljIG9mIGRlbXV4ZXJzIGFuZCB0aGVyZWZvcmUKCSAgd2lsbCBzdG9wcCB3aGVuZXZlciBhbGwgZG93bnN0cmVhbSBwYWRzIHJldHVybiBOT1RfTElOS0VEIGFuZC9vcgoJICBVTkVYUEVDVEVEIGFuZCB0aGVyZSdzIG5vIG1vcmUgYnVmZmVycyB0byBwdXNoLgoJICBUaGUgbGF0ZXN0IGNvbW1pdHMgc2hvdWxkIG5vdCBhZmZlY3QgYW55IHJlZ3VsYXIgdXNlLWNhc2UsIGJ1dCB0aGUgYnVnCgkgIHJlcG9ydCB3aWxsIGJlIGtlcHQgb3BlbiBzbyB0aGUgcHJldmlvdXMgYmVoYXZpb3VyIGNhbiBiZSByZS1lc3RhYmxpc2hlZAoJICBpZiBuZWVkZWQuCgkgIEZpeGVzICM2MDk0ODYKCjIwMTAtMDItMDkgMTU6NTE6MTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3Qgc3RvcCB0aHJlYWRzIG9uIFVORVhQRUNURUQgYW5kIGZvcndhcmQgZmxvdyByZXR1cm5zLgoJICBXaGVuIGEgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybnMgR1NUX0ZMT1dfVU5FWFBFQ1RFRCB3ZSB3YW50IHRvOgoJICAqIGxldCB0aGUgZGF0YXF1ZXVlIHRhc2sgcnVubmluZwoJICAqIGZvcndhcmQgdGhlIGZsb3cgcmV0dXJuIHVwc3RyZWFtLgoJICBUaGlzIGFsbG93cyB1cHN0cmVhbSBlbGVtZW50cyB0byBwdXNoIEVPUywgYW5kIGhhdmUgdGhhdCBFT1MgZXZlbnQgY29tZQoJICBkb3duc3RyZWFtLgoJICBGaXhlcyAjNjA5Mjc0CgoyMDEwLTAyLTA5IDEzOjM1OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgUmV2ZXJ0ICJtdWx0aXF1ZXVlOiBoYW5kbGUgVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGJldHRlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmYmRmNGRjZWRhZDg2OTJmMWUzZDg4Mzg1NTExODg5ODdlNDYyZTc0LgoJICBQYXJ0bHkgZml4ZXMgIzYwOTI3NAoKMjAxMC0wMS0yOCAwNzoyNzo0OSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlLnNoOiBGaXggaXNzdWVzCgoyMDEwLTAyLTA3IDA5OjU5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIFJldmVydCAiZG9jczogZml4IEFTQ0lJIGFydCBzbyB0aGF0IGl0ZXJhdG9ycyBhcmUgYWxpZ25lZCBwcm9wZXJ0eSB0byB0aGUgZGlhZ3JhbSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhZTYwZDA2ZTllNDAxZDFlZDRkZTVlZjI1YjVjMjgzZGIwNjk2YTMxIChmaXhlczogIzYwOTE2NikKCjIwMTAtMDItMDQgMTg6MzA6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjUuMyBwcmUtcmVsZWFzZQoKMjAxMC0wMi0wNCAxNzo0NTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9iZy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdHJhbnNsYXRpb24gdXBkYXRlcwoKMjAxMC0wMi0wMSAxMjo1MDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiBmaXggQVNDSUkgYXJ0IHNvIHRoYXQgaXRlcmF0b3JzIGFyZSBhbGlnbmVkIHByb3BlcnR5IHRvIHRoZSBkaWFncmFtCgoyMDEwLTAyLTAxIDE3OjQwOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBnc3RieXRld3JpdGVyOiBGaXggZGlmZmVyZW50IGZ1bmN0aW9uIG5hbWVzIGluIC5oIGFuZCAuYwoJICBnc3RfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9idWZmZXIgd2Fzbid0IGRlY2xhcmVkCgkgIGluIC5oLCBpbnN0ZWFkIHRoZXJlIHdhcyBfcmVzZXRfYW5kX2dldF9kYXRhX2FzX2J1ZmZlci4KCSAgUmVwbGFjZSBpdCB3aXRoIHRoZSByZWFsIGZ1bmN0aW9uIG5hbWUsIHRoYXQgaXMgc21hbGxlcgoJICBhbmQgbWF0Y2hlcyBnc3RfYnl0ZV93cml0ZXJfZnJlZV9hbmRfZ2V0X2J1ZmZlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4NzI2CgoyMDEwLTAxLTMxIDE3OjMwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgU2luY2U6IG1hcmtlcnMgdG8gYnVmZmVyIGxpc3QgZG9jcwoKMjAxMC0wMS0zMCAxODo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZml4IHR5cG8gaW4gd2FybmluZyBtZXNzYWdlCgkgIFNwb3R0ZWQgYnkgYnNyZWVyZW5qQGdtYWlsLmNvbS4KCSAgRml4ZXMgIzYwODQ0Mi4KCjIwMTAtMDEtMzAgMTU6MTc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNWQ0N2E2IHRvIDk2ZGM3OTMKCjIwMTAtMDEtMzAgMTM6NDU6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBpbml0OiBkb24ndCBzcGV3IHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KClzIGlmIEdMaWIgPj0gMi4yMy4yCgkgIExhdGUgZ190aHJlYWRfaW5pdCgpIGlzIGZpbmUgd2l0aCBuZXdlciBHTGliIHZlcnNpb25zIGFuZCBkb25lIGF1dG9tYXRpY2FsbHkKCSAgZnJvbSBnX3R5cGVfaW5pdCgpIHRoZXJlLCBzbyBkb24ndCB3YXJuIGlmIHRoZSBhcHBsaWNhdGlvbiBoYXNuJ3QgY2FsbGVkCgkgIGdfdGhyZWFkX2luaXQoKSB5ZXQgd2hlbiBnc3RfaW5pdCgpIGlzIGNhbGxlZCB3aXRoIG5ldyBHTGliIHZlcnNpb25zLgoJICBGaXhlcyAjNjA4Mzk4LgoKMjAxMC0wMS0yOSAwOTo0MTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBwa2djb25maWc6IGRvbid0IHB1dCAtREdfVEhSRUFEU19NQU5EQVRPUlkgaW50byBvdXIgcGtnLWNvbmZpZyBDRkxBR1MKCSAgSWYgd2UgZm9yY2UgLURHX1RIUkVBRFNfTUFOREFUT1JZIG9udG8gYXBwcywgdGhlbiBnX3RocmVhZF9zdXBwb3J0ZWQoKQoJICB3aWxsIGFsd2F5cyBldmFsdWF0ZSB0byBUUlVFLCBzbyB0aGUgdHlwaWNhbCB0aHJlYWQgaW5pdGlhbGlzYXRpb24KCSAgYm9pbGVycGxhdGUgY29kZSBpZiAoIWdfdGhyZWFkX3N1cHBvcnRlZCgpKSBnX3RocmVhZF9pbml0KE5VTEwpOyB3aWxsCgkgIG5vIGxvbmdlciB3b3JrLCBhbmQgdGhlIHRocmVhZGluZyBzeXN0ZW0gbm90IGJlIGluaXRpYWxpc2VkIGFuZCB1cwoJICBwcmludGluZyBhIHdhcm5pbmcgaW4gZ3N0X2luaXQuIFRoaXMgbWF5IGJlIGZpbmUgaW4gbW9zdCBjYXNlcywgc2luY2UKCSAgbGF0ZSBpbml0aWFsaXNhdGlvbiBpcyBhbGxvd2VkIGFuZCBhdXRvbWF0aWNhbGx5IGRvbmUgaW4gZ190eXBlX2luaXQoKQoJICBzaW5jZSBHTGliIDIuMjMuMiwgYnV0IGxldCdzIGJlIGNhdXRpb3VzIGFuZCBvbmx5IHVzZSB0aGlzIGRlZmluZSB3aGVuCgkgIGNvbXBpbGluZyBHU3RyZWFtZXIgaXRzZWxmLgoJICBTZWUgIzYwODM5OC4KCjIwMTAtMDEtMjggMTU6NTU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFRha2Ugc3RhcnRfdGltZSBhZnRlciBjaGFpbmluZyB1cCB0b28KCSAgUmVmYWN0b3IgdGhlIGNvZGUgdG8gdGFrZSB0aGUgY3VycmVudCBzdGFydF90aW1lIHdoZW4gZ29pbmcgdG8gUEFVU0VELgoJICBNYWtlIHN1cmUgd2UgYWxzbyBjYWxsIHRoZSBzdGFydF90aW1lIHVwZGF0ZSBjb2RlIGFmdGVyIHdlIGNoYWluZWQgdXAgdG8gdGhlCgkgIHBhcmVudCBiaW4uCgkgIEZpeGVzICM2MDc4NDIKCjIwMTAtMDEtMjYgMTg6NTk6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICAwLjEwLjI1LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDEtMjcgMDA6MjM6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrczogZml4IHNwdXJpb3VzIGdob3N0IHBhZCBjaGVjayBmYWlsdXJlCgoyMDEwLTAxLTI2IDE5OjM1OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIHdpbmRvd3MgaGVhZGVycyB0byBsYXRlc3QgdmVyc2lvbgoKMjAxMC0wMS0yNiAxOTozMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBtaW5vciB1cGRhdGUgdG8gcmVsZWFzZSBub3RlcwoKMjAxMC0wMS0yNiAxODo0NTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb24gZmlsZXMKCjIwMTAtMDEtMjYgMTg6Mzk6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICB0ZXN0czogZml4IHdhcm5pbmcgaW4gcnRwb29sLXRlc3QKCSAgVGhlIHN0cmVhbSBzdGF0dXMgbWVzc2FnZSBvYmplY3QgbWF5IGJlIG9mIGEgbm9uLUdPYmplY3QgdHlwZSwgZS5nLgoJICBHX1RZUEVfUE9JTlRFUiAoc2VlIEdzdEF1ZGlvU3JjKSwgc28gcHJpbnQgdGhhdCBwcm9wZXJseSBpbnN0ZWFkCgkgIG9mIGFzc3VtaW5nIHRoZSB2YWx1ZSBob2xkcyBhbiBvYmplY3QuCgoyMDEwLTAxLTI2IDEyOjQzOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaGFuZGxlIFVORVhQRUNURUQgZmxvd3JldHVybiBiZXR0ZXIKCSAgV2hlbiB3ZSByZWNlaXZlIGFuIFVORVhQRUNURUQgZmxvd3JldHVybiBmcm9tIGRvd25zdHJlYW0sIHdlIG11c3Qgbm90IHNodXRkb3duCgkgIHRoZSBwdXNoaW5nIHRocmVhZCBiZWNhdXNlIHVwc3RyZWFtIHdpbGwgYXQgc29tZSBwb2ludCBwdXNoIGFuIEVPUyB0aGF0IHdlIHN0aWxsCgkgIG5lZWQgdG8gcHVzaCBmdXJ0aGVyIGRvd25zdHJlYW0uCgkgIFRvIGFjaGlldmUgdGhpcywgY29udmVydCB0aGUgVU5FWFBFQ1RFRCByZXR1cm4gdmFsdWUgdG8gT0suIEFkZCBhIGZpeG1lIHNvIHRoYXQKCSAgd2UgaW1wbGVtZW50IHRoZSByaWdodCBsb2dpYyB0byBwcm9wYWdhdGUgdGhlIGZsb3dyZXR1cm4gdXBzdHJlYW0gYXQgc29tZSBwb2ludC4KCSAgQWxzbyBjbGVhbiB1cCB0aGUgdW5pdCB0ZXN0IGEgbGl0dGxlLgoJICBGaXhlcyAjNjA4MTM2CgoyMDEwLTAxLTI2IDA4OjUyOjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiBGaXggYmFzaWNzLWJ1cyBkb2NzCgkgIEZpeCB3cm9uZyBpbmZvcm1hdGlvbiBhYm91dCBidXMgd2F0Y2ggZnVuY3Rpb25zIGluIHRoZQoJICBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBtYW51YWwuCgkgIEZpeGVzICM2MDgxMjcKCjIwMTAtMDEtMjQgMjM6MTI6MjIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBiaW46IGFsc28gcmVtb3ZlIHByaXZhdGUgZnVuY3Rpb24gZnJvbSBkZWYgZmlsZQoKMjAxMC0wMS0yNCAyMzowNDoyNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2UgYSBpbnRlcmZhY2Ugdm1ldGhvZCBpbXBsZW1lbnRhdGlvbiBzdGF0aWMKCSAgVGhpcyBzaG91bGQgbm90IGNhdXNlIGFueSB0cm91YmxlcyAtIHRoZSBtZXRob2RzIHdhc24ndCBpbiBhbnkgaGVhZGVyLgoKMjAxMC0wMS0yNCAyMjoyMjowNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogcmVtb3ZlIDsgYWZ0ZXIgfQoKMjAxMC0wMS0yMiAxODowMDo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHNvbWUgZG9jcyB0byBtYXJrIG5ldyBwcm9wZXJ0eQoKMjAxMC0wMS0yMiAxNzo1NTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogYWRkIG9wdGlvbiB0byByZW1vdmUgdGhlIHRlbXAtZmlsZQoJICBBZGQgYW4gb3B0aW9uIHRvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSB0ZW1wIGZpbGUgKFRSVUUgYnkgZGVmYXVsdCkuIFRoaXMKCSAgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBrZWVwIHRoZSB0ZW1wIGZpbGUgYnkgb3RoZXIgbWVhbnMKCSAgdGhhbiBoYXJkbGlua2luZyBvciBob2xkaW5nIGFuIGZkIG9wZW4uCgkgIEZpeGVzICM2MDc3MzkKCjIwMTAtMDEtMjIgMDI6MDI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGxlYWsgdXJpIHN0cmluZwoKMjAxMC0wMS0yMSAxNjoxOTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleC5oOgoJICBnc3RpbmRleDogcmV0YWIgLmggZmlsZQoKMjAxMC0wMS0yMCAxNDoxMzoxMSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IFJ1biBnX3RocmVhZF9pbml0KCkgdW5jb25kaXRpb25hbGx5CgkgIFNpbmNlIHdlIGRlZmluZSBHX1RIUkVBRFNfTUFOREFUT1JZLCBnX3RocmVhZF9zdXBwb3J0ZWQoKSBldmFsdWF0ZXMgdG8KCSAgVFJVRSB1bmNvbmRpdGlvbmFsbHksIHNvIGNhbGxpbmcgZ190aHJlYWRfaW5pdCgpIG5ldmVyIGhhcHBlbmVkLgoKMjAxMC0wMS0yMCAxMDo1ODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcgb24gd2luMzIKCSAgTW92ZSB2YXJpYWJsZSB0aGF0J3Mgb25seSB1c2VkIG9uIHVuaXggaW50byB0aGUgdW5peCBibG9jayBzbyB0aGF0CgkgIHRoZSBjb21waWxlciBkb2Vzbid0IGNvbXBsYWluIGFib3V0IHRoZSB1bnVzZWQgdmFyaWFibGUgb24gd2luMzIKCSAgKHNlZSAjNTk3NjYyKS4KCjIwMTAtMDEtMjAgMDk6NDU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IHRyeSBzY2FubmVyIHNldCB2aWEgZW52IHZhciBiZWZvcmUgdXNpbmcgdGhlIGluc3RhbGxlZCBvbmUKCSAgSWYgdGhlIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQsIHdlIHNob3VsZCB0cnkKCSAgdGhlIHNjYW5uZXIgc3BlY2lmaWVkIHRoZXJlIGZpcnN0LCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IHNjYW5uZXIgYmluYXJ5CgkgIGlzIHVzZWQgZm9yIHVuaW5zdGFsbGVkIHNldHVwcyBhbmQgYnVpbGRzIGZyb20gc291cmNlIHdoZW4gdGhlcmUncwoJICBhbHJlYWR5IGFuIGluc3RhbGxlZCB2ZXJzaW9uLgoKMjAxMC0wMS0yMCAwNjo1ODoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYnVpbGQ6IERlZmluZSBHX1RIUkVBRFNfTUFOREFUT1JZIGV2ZXJ5d2hlcmUKCSAgV2UgcmVxdWlyZSB0aHJlYWRzIHRvIGJlIHN1cHBvcnRlZCBpbiBhbnkgY2FzZSBhbmQgZGVmaW5pbmcgdGhpcwoJICB3aWxsIHNpbXBsaWZ5IHRoZSBtdXRleCwgY29uZGl0aW9uIHZhcmlhYmxlLCBldGMuIG1hY3JvcyBmcm9tIGd0aHJlYWQKCSAgdG8gbm90IGFsd2F5cyBjaGVjayBpZiB0aHJlYWRzIGFyZSByZWFsbHkgc3VwcG9ydGVkLgoJICBGaXhlcyBidWcgIzYwNzQ4MS4KCjIwMTAtMDEtMDggMjA6NTY6MTggKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBwbHVnaW5sb2FkZXI6IGRpc2FibGUgZXh0ZXJuYWwgcGx1Z2luIGxvYWRlciBvbiBXaW5kb3dzIHVudGlsIGl0IGlzIHBvcnRlZCBwcm9wZXJseQoJICBTZWUgIzU5NzY2Mi4KCjIwMTAtMDEtMjAgMDE6MDk6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBnc3RfcHJpdmF0ZS5oOiBtYWtlIHN1cmUgZ3N0X3ByaXZhdGUuaCBpcyBpbmNsdWRlZCBiZWZvcmUgZ2xpYi5oCgkgIEZvciB0aGUgcmVhc29uIG91dGxpbmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZ3N0X3ByaXZhdGUuaCAoaW5saW5lCgkgIGZ1bmN0aW9ucyBpbiBnbGliIG1heSBuZWVkIHRoZSBnX2xvZ19kb21haW4gdmFyaWFibGUpLiBBbHNvIGluY2x1ZGUKCSAgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgdXNpbmcgYW55IEdfT1NfKiBkZWZpbmVzLCBlc3AuIGluIHBsdWdpbiBsb2FkZXIuCgoyMDEwLTAxLTIwIDAxOjMzOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBtaW5vciBndGstZG9jIG1hcmt1cCBmaXhlcwoKMjAxMC0wMS0yMCAwMDo1MzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE0Y2VjODkgdG8gMTVkNDdhNgoKMjAxMC0wMS0xOSAxNjozOTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgZG9jczogc21hbGwgZG9jcyB1cGRhdGVzCgoyMDEwLTAxLTE5IDE0OjA3OjIzICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IGRpcmVjdGx5IHNldCB0aGUgY2FwcyB3aGVuIHB1c2hpbmcgYnVmZmVyIHdpdGggZGlmZmVyZW50IGNhcHMuCgkgIFRoaXMgY2hlY2sgaXMgbm90IG5lY2VzYXJyeSBhcyB3ZSBhcmUgbm90IG5lZ290aWF0aW5nIGFueW1vcmUuIEFuZCBpdCBjYW4KCSAgYmUgd3JvbmcgaWYgdXBzdHJlYW0gY2FuJ3QgcHJvZHVjZSB0aGlzIGNhcHMgYW55bW9yZSwgYnV0IGRvd25zdHJlYW0gY2FuCgkgIHByb2Nlc3MgdGhlbSBmaW5lLgoKMjAxMC0wMS0xOCAxMzo1NzoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBUaGUgR1ZhbHVlIGNvbGxlY3Rpb24gZnVuY3Rpb24gY2FuIG5vdCBhc3N1bWUgdGhhdCB0aGUgZGVzdGluYXRpb24gaXMgaW5pdGlhbGl6ZWQKCSAgLi4uYW5kIGl0IHdpbGwgdXN1YWxseSBiZSBlaXRoZXIgZmlsbGVkIGJ5IHplcm9lcyBvciByYW5kb20gdmFsdWVzLgoJICBGaXhlcyBidWcgIzYwNzI4My4KCjIwMTAtMDEtMTYgMjE6NTI6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE9ubHkgdXNlIHN1Z2dlc3RlZCBjYXBzIGluIGJ1ZmZlciBhbGxvY2F0aW9uIGlmIGEgc2l6ZSB3YXMgc3VnZ2VzdGVkIHRvbwoKMjAxMC0wMS0xNiAxOTo0MToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmVtb3ZlIHN1cGVyZmx1b3VzIGd1YXJkIGFnYWluc3QgTlVMTAoJICBBbGwgY2FsbGVycyBvZiB0aGlzIHN0YXRpYyBmdW5jdGlvbiBhbHJlYWR5IGNoZWNrIGZvciBOVUxMLW5lc3MKCSAgdGhlbXNlbHZlcywgc28gbm8gbmVlZCB0byBkbyBpdCBhZ2FpbiAoYW5kIGlmIHdlIGRvIGl0LCB3ZSBzaG91bGQKCSAgcHJvYmFibHkgZG8gc28gYmVmb3JlIGRlcmVmZXJlbmNpbmcgdGhlIHBvaW50ZXIgZm9yIHRoZSBmaXJzdCB0aW1lKS4KCjIwMDktMTItMTcgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBtaWNyby1vcHRpbWlzZSBzb21lIGdldHRlcnMKCSAgQXZvaWQgY2hlY2tpbmcgdGhlIEdUeXBlIG9mIHRoZSB2YWx1ZSB0d2ljZSAob25jZSBvbiBvdXIgc2lkZSBhbmQKCSAgb25jZSBpbiBnX3ZhbHVlX2dldF8qKCkpIGJ5IGJ5LXBhc3NpbmcgZ192YWx1ZV9nZXQoKSBhbmQgYWNjZXNzaW5nCgkgIHRoZSBHVmFsdWUgc3RydWN0dXJlIGRpcmVjdGx5LgoKMjAxMC0wMS0xNSAxODozNjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IHVwZGF0ZSBkb2NzIGEgbGl0dGxlCgoyMDEwLTAxLTE1IDAwOjQ2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IG1pbm9yIHJlbGVhc2UgZG9jcyB1cGRhdGUKCjIwMTAtMDEtMTQgMjA6MTk6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSBidWZmZXJzIHdpdGggTlVMTCBjYXBzIGNvcnJlY3RseQoJICBUaGlzIG1lYW5zIHRoYXQgdGhlIGNhcHMgZGlkbid0IGNoYW5nZSBzbyBkb24ndCB0cnkgdG8gaGFuZGxlCgkgIHRoZSBOVUxMIGNhcHMgYXMgdGhlIG5ldyBjYXBzLgoKMjAxMC0wMS0xNCAxMDo0NDoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgZG9jczogTW92ZSBmaWVsZCBzcGVjaWZpYyBTaW5jZSBtYXJrZXJzIGF0IHRoZSBzYW1lIGxpbmUKCSAgRml4ZXMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdhcm5pbmdzIGFib3V0IFNpbmNlIGJlaW5nIGRlZmluZWQgbXVsdGlwbGUgdGltZXMuCgoyMDEwLTAxLTEzIDEwOjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkgIGZhcTogcmVtb3ZlIHJldmlzaW9uIGhpc3RvcnkgdGhhdCBubyBvbmUgdXBkYXRlcyBvciBjYXJlcyBhYm91dCBhbnl3YXkKCjIwMTAtMDEtMTMgMDk6MzI6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogZml4IGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIG9uIGNnaXQKCSAgRml4IGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIG5vdyB0aGF0IGl0J3MgYmVlbiBtb3ZlZCwgYW5kIGZpeCBhIHR5cG8KCSAgd2hpbGUgd2UncmUgYXQgaXQuIEFsc28gYWRkIGEgbmV3IHNlY3Rpb24gdG8gJ0J1aWxkaW5nIEdTdHJlYW1lciBmcm9tCgkgIGdpdCcgdGhhdCBwb2ludHMgdG8gdGhlICdIb3cgZG8gSSBkZXZlbG9wIGFnYWluc3QgYW4gdW5pbnN0YWxsZWQgY29weQoJICBvZiBHU3RyZWFtZXInIHNlY3Rpb24uCgoyMDEwLTAxLTEzIDEwOjMyOjQ2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBSRUFETUU6CgkgIGRvY3M6IHdlJ3JlIGluIGdpdCBzaW5jZSBhIHdoaWxlCgoyMDEwLTAxLTEzIDEwOjMxOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSogUkVBRE1FOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBtb3ZlIGdzdC11bmluc3RhbGxlZCBmcm9tIGRvY3MvZmFxIHRvIHNjcmlwdHMKCSAgRG9uJ3QgaW5jbHVkZSB0aGUgbG9uZyBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IGluIHZlcmJhdGltIGluIHRoZSBmYXEgYW55bW9yZQoJICAodGhlcmUgaXMgYSBsaW5rIHRvIGNnaXQpLiBEaXN0IHRoZSBzY3JpcHQgdW5kZXIgaXRzIG5ldyBsb2NhdGlvbi4KCjIwMTAtMDEtMTIgMjE6MzQ6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBzb21lIG1vcmUgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWVzCgoyMDEwLTAxLTEyIDIwOjIxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBzdHJkdXAvZnJlZSB3aGVuIHJlYWRpbmcgdGhlIGJpbmFyeSByZWdpc3RyeQoJICBTdHJpbmdzIGluIHRoZSBiaW5hcnkgcmVnaXN0cnkgYXJlIE5VTC10ZXJtaW5hdGVkLCBzbyB3ZSBjYW4ganVzdCB1c2UgdGhlbQoJICBkaXJlY3RseSBpZiB3ZSBvbmx5IG5lZWQgdGhlbSB0ZW1wb3JhcmlseSwgYW5kIGF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvY3MKCSAgYW5kIGZyZWVzLgoKMjAxMC0wMS0xMiAxNzozODozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogdXNlIG5ldyB0eXBlZmluZCBmdW5jdGlvbgoJICBSZWZhY3RvciBhIGxpdHRsZS4KCSAgVXNlIHRoZSBuZXcgdHlwZWZpbmQgaGVscGVyIGZ1bmN0aW9uIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9uIHRvIHNwZWVkIHVwCgkgIHR5cGVmaW5kaW5nLgoKMjAxMC0wMS0xMiAxNzozNDozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHR5cGVmaW5kOiBhZGQgYSBuZXcgbWV0aG9kIHRoYXQgYWxzbyB1c2VzIHRoZSBmaWxlIGV4dGVuc2lvbgoJICBBZGQgYSBtZXRob2QgdG8gcGVyZm9ybSBnZXRfcmFuZ2UgdHlwZWZpbmRpbmcgdGhhdCBhbHNvIHVzZXMgdGhlCgkgIHVyaS9sb2NhdGlvbiBleHRlbnNpb24gYXMgYW4gZXh0cmEgaGludC4gSXQgd2lsbCBmaXJzdCB0cnkgdG8gY2FsbCB0aGUKCSAgdHlwZWZpbmQgZnVuY3Rpb25zIG9mIHRoZSBmYWN0b3JpZXMgdGhhdCBoYW5kbGUgdGhlIGdpdmVuIGV4dGVuc2lvbi4gVGhlIHJlc3VsdAoJICBpcyB0aGF0IGluIHRoZSBjb21tb24gY2FzZSwgd2Ugb25seSBjYWxsIG9uZSB0eXBlZmluZCBmdW5jdGlvbiwgd2hpY2ggc3BlZWRzIHVwCgkgIHRoZSB0eXBlZmluZGluZyBhIGxvdC4KCjIwMTAtMDEtMTEgMTQ6NTg6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBRb1MgZG9jdW1lZW50CgkgIEFkZCBzb21lIGlkZWFzIGFib3V0IGEgbmV3IFFvUyBtZXNzYWdlLgoJICBTZWUgYWxzbyAjMzIyOTQ3CgoyMDEwLTAxLTExIDExOjM4OjMyICswMTAwICBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBtYWtlIHJlbGVhc2VfcGFkIHRocmVhZHNhZmUKCSAgUHJvdGVjdCB0aGUgLT5yZW1vdmVkIGZpZWxkIHdpdGggdGhlIG9iamVjdCBsb2NrIGFzIHdlbGwuIFRha2UgdGhlIERZTiBsb2NrCgkgIGVhcmxpZXIgc28gdGhhdCB3ZSBjYW4gbWFyayB0aGUgcGFkIHJlbW92ZWQgYW5kIGF2b2lkIGEgcmFjZSBpbiBwYWRfYWxsb2MuCgkgIEZpeGVzICM2MDY0MzUKCjIwMDktMTItMTEgMTc6NDY6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDEwLTAxLTEwIDIxOjQ5OjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGRlZmVyIGdldHRpbmcgdGhlIGNsYXNzZXMgdW50aWwgd2UgYWN0dWFseSBuZWVkIHRoZW0KCSAgVGhpcyBmdW5jdGlvbiBoYXMgYSBsb3Qgb2YgZWFybHkgcmV0dXJucy4gR2l2ZSB0aGVtIHNvZW0gbW9yZSBiZW5lZml0LgoKMjAxMC0wMS0xMCAyMTo0MDoyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhdm9pZCBleHRyYSBob3AgaW4gZ3N0X2VsZW1lbnRfbGluawoJICBObyBuZWVkIHRvIGNhbGwgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkIHdpdGggZmlsdGVyPU5VTEwsIHdoaWNoIHdvdWxkCgkgIGNhbGwgZ3N0X2VsZW1lbnRfbGlua19wYWRzKCkgaW4gdGhhdCB3YXkuIENhbGwgaXQgZGlyZWN0bHkgdG8gc2F2ZSBhIGNhbGwgYW5kCgkgIGV4cGVuc2l2ZSBnb2JqZWN0IHR5cGUgY2hlY2tzLgoKMjAxMC0wMS0xMCAxNzozOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogcmVtb3ZlIHNvbWUgY3J1ZnQgZnJvbSBoZWFkZXIgZmlsZQoJICBSZW1vdmUgc29tZSBjcnVmdCBmcm9tIHRoZSBnc3RjaGVjayBoZWFkZXIgZmlsZSB0aGF0J3Mgbm90IG5lZWRlZAoJICBhbnkgbG9uZ2VyIG5vdyB0aGF0IHdlIHNoaXAgd2l0aCBvdXIgb3duIGNvcHkgb2YgbGliY2hlY2suCgoyMDEwLTAxLTA3IDE3OjQxOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1taWRpLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiByZW1vdmUgZW1wdHkgbWlkaSBzZWN0aW9uCgoyMDEwLTAxLTA3IDEzOjQ4OjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAxMC0wMS0wNyAxMzo0Nzo1MCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUKCjIwMTAtMDEtMDYgMjA6MDg6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRlZCBzdHJpbmdzCgoyMDEwLTAxLTA2IDIwOjA2OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IG1pbm9yIGRvY3VtZW50YXRpb24gZml4ZXMgZm9yIHJlY2VudGx5LWFkZGVkIHRhZ3MKCSAgTWVudGlvbiB0aGUgdHlwZSBvZiB0aGUgdGFnIGluIHRoZSBndGstZG9jIGJsdXJiLCBzbyBwZW9wbGUga25vdwoJICB3aGljaCBhY2Nlc3NvciBBUEkgdG8gdXNlLCBhbmQgZml4IHVwIHRoZSBkb2MgYmx1cmJzIHRvIG1hdGNoIHRoZQoJICBhY3R1YWwgdGFnIGRlZmluZS4KCjIwMTAtMDEtMDYgMjA6MDQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogZml4IHVwIHRyYW5zbGF0ZWQgc3RyaW5ncyBmb3Igc29tZSBuZXcgdGFncwoJICBGaXggdXAgdHJhbnNsYXRlZCBzdHJpbmdzIGZvciBzb21lIHJlY2VudGx5LWFkZGVkIHRhZ3MgdG8gbWF0Y2ggdGhlCgkgIGV4aXN0aW5nIHN0cmluZ3M6IHdlIHdhbnQgc2hvcnQgbW5lbW9uaWMtbGlrZSBzdHJpbmdzIGhlcmUgdGhhdCBzdGFydAoJICB3aXRoIGEgbG93ZXIgY2FzZSBsZXR0ZXIuCgoyMDEwLTAxLTA2IDE5OjE5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRlcHJlY2F0ZSB1c2VsZXNzIGdzdF9yZWdpc3RyeV94bWxfe3JlYWR8d3JpdGV9X2NhY2hlKCkKCSAgVGhlIG9ubHkgcmVhc29uIHRoZXNlIHR3byBmdW5jdGlvbnMgYXJlIHN0aWxsIGFyb3VuZCBpcyB0aGF0IGF0IHNvbWUKCSAgcG9pbnQgaW4gdGhlIHBhc3QgdGhleSB3ZXJlIGluIGEgcHVibGljIGhlYWRlciwgc28gd2UgY2FuJ3QgcmVhbGx5CgkgIHJlbW92ZSB0aGVtIG5vdyBldmVuIHRob3VnaCB0aGV5IHNob3VsZCBoYXZlIGJlZW4gcHJpdmF0ZSBhbGwgYWxvbmcKCSAgKGFuZCBhcmVuJ3QgcmVhbGx5IHBhcnRpY3VsYXJseSB1c2VmdWwpLiBTaW5jZSB0aGVzZSBhcmUganVzdCBlbXB0eQoJICBzdHVicyBub3cgdGhhdCBkbyBub3RoaW5nIGJ1dCByZXR1cm4gRkFMU0UgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbgoJICAwLjExIGFueXdheSwgd2UgbWF5IGp1c3QgYXMgd2VsbCBkZXByZWNhdGUgdGhlbSBmb3JtYWxseS4KCjIwMTAtMDEtMDYgMTk6MTg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICBkb2NzOiBhZGQgU2luY2UgbWFya2VycyB0byB0YXNrIHBvb2wgZG9jcyBhbmQgZG9jdW1lbnQgdGFzayBmdW5jdGlvbgoKMjAxMC0wMS0wNiAxODo1MDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbW92ZSBTSEFWRV9JTklUIGJlaGluZCBhbGwgY2hlY2tzCgkgIE1vdmUgU0hBVkVfSU5JVCBiZWhpbmQgYWxsIG90aGVyIGNoZWNrcywgaW4gcGFydGljdWxhciBBR19HU1RfQ0hFQ0tfQ0hFQ0tTLgoJICBUaGlzIHNob3VsZCBmaXggcHJvYmxlbXMgd2l0aCBoZWFkZXIgY2hlY2tpbmcgYW5kIGNoZWNraW5nIGZvciBsb2NhbHRpbWVfciwKCSAgd2hpY2ggY2F1c2VzIGNvbXBpbGF0aW9uIGVycm9ycyB3aXRoIGNsZWFuIGNoZWNrb3V0cyB3aGVyZSBjb21tb24vc2hhdmUgaGFzCgkgIG5vdCBiZWVuIGNyZWF0ZWQgeWV0IHdoZW4gdGhvc2UgY2hlY2tzIGFyZSBydW4uIEl0IHNlZW1zIGxpa2UgU0hBVkVfSU5JVAoJICBjaGFuZ2VzIHRoZSBlbnZpcm9ubWVudCBzbyB0aGF0IGNoZWNrcyBkZXBlbmRpbmcgb24gYSBjb21waWxlciBuZWVkIHNoYXZlCgkgIHRvIGV4aXN0IGF0IHRoYXQgcG9pbnQsIHdoaWNoIHdpbGwgZmFpbCBpZiBBQ19PVVRQVVQgaGFzbid0IGNyZWF0ZWQgaXQgeWV0LgoJICBGaXhlcyAjNjA1OTMwLgoKMjAxMC0wMS0wNSAwMTozNTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJICBjaGVjazogcGF0Y2ggaW50ZXJuYWwgY2hlY2sgY29weSBzb21lIG1vcmUgc28gdGhhdCBmYWlsdXJlcyBhY3R1YWxseSBmYWlsCgkgIEluY2x1ZGUgdW5pc3RkLmggc28gdGhhdCBfUE9TSVhfVkVSU0lPTiBpcyBhY3R1YWxseSBkZWZpbmVkIHdoZW4KCSAgaXQgc2hvdWxkIGJlIGRlZmluZWQuIFdpdGhvdXQgdGhhdCwgc3R1ZmYgbGlrZSBmYWlsX2lmKDEpIGRvZXNuJ3QKCSAgYWN0dWFsbHkgZmFpbCwgcHJlc3VtYWJseSBiZWNhdXNlIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIGRvIGluY2x1ZGUKCSAgdW5pc3RkLmggYW5kIHRoZW4gaGF2ZSBfUE9TSVhfVkVSU0lPTiBkZWZpbmVkLgoJICBGaXhlcyAjNjA0NTY1IGV2ZW4gbW9yZS4KCjIwMTAtMDEtMDUgMDA6MDk6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyByZXR1cm5zOiB0YWcKCjIwMDktMTItMzAgMjI6NTY6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNldCBpdGVyYXRlX2ludGVyYWxfbGlua3MgZnVuY3Rpb24gb24gc291cmNlIHBhZAoKMjAwOS0xMi0yNyAxOTozMzoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZW1vdmUgdW5uZWVkZWQgY2FzdHMKCjIwMDktMTItMDIgMTk6NDc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgc3ViYnVmZmVyIHN1YmNsYXNzCgkgIE1vdmUgdGhlIHBhcmVudCBidWZmZXIgcG9pbnRlciBpbnRvIHRoZSBHc3RCdWZmZXIgc3RydWN0IHNvIHRoYXQgd2UgY2FuCgkgIHJlbW92ZSB0aGUgc3ViYnVmZmVyIGNsYXNzIGFuZCB0eXBlLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgYWxsb3dzIHVzIHRvCgkgIG1vcmUgbmF0dXJhbGx5IGltcGxlbWVudCBtZXRob2RzIHRvIGdldCB0aGUgcmVhbCB0eXBlIGFuZCBwYXJlbnQKCSAgb2YgYSBzdWJidWZmZXIgKFNlZSAjNTQ1NTAxKS4KCSAgSXQgc2hvdWxkIGFsc28gYmUgc2xpZ2h0bHkgZmFzdGVyIGJlY2F1c2UgdGhlcmUgaXMgbm8gZXh0cmEgb2JqZWN0IGhpZXJhcmNoeSB0bwoJICBpbml0aWFsaXplIGFuZCBmcmVlLgoKMjAwOS0xMi0yNCAxOToyNTo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvbid0IGtlZXAgYnVmZmVycyByZWZmZWQgbG9uZ2VyIHRoYW4gbmVlZGVkCgkgIE1ha2Ugc3VyZSB3ZSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIGVhcmx5IHdpdGhvdXQgaW5jcmVhc2luZyBpdHMgcmVmY291bnQKCSAgd2hlbiB3ZSBnbyBpbiB0aGUgY29sbGVjdCBmdW5jdGlvbi4gVGhpcyByZWR1Y2VzIHRoZSBhbW91bnQgb2YgY29waWVzIG5lZWRlZCBpbgoJICBvcmRlciB0byBtYWtlIHRoZSBidWZmZXIgd3JpdGFibGUgaW4gbW9zdCBjYXNlcy4KCjIwMDktMTItMjQgMTc6MjI6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCB1bm5lZWRlZCBjYXN0cwoKMjAwOS0xMi0yNCAxNjo1MzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGF2b2lkIGRvaW5nIHN1YmJ1ZmZlcnMgd2hlbiB3ZSBjYW4KCSAgSW4gc29tZSBjYXNlcyB3ZSBjYW4gYXZvaWQgYWxsb2NhdGluZyBhIHN1YmJ1ZmZlciBhbmQgaW5zdGVhZCBzaW1wbHkgcmVmCgkgIHRoZSBidWZmZXIuIENhbGxlcnMgc2hvdWxkIHBlcmZvcm0gX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBpbiBhbGwKCSAgY2FzZXMgbm93LgoKMjAwOS0xMi0yNCAxNToyNToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiBhZGQgYWJpbGl0eSB0byBpbnN0YWxsIGNsaXBwaW5nIGZ1bmN0aW9ucwoJICBBZGQgYSBtZXRob2QgdG8gaW5zdGFsbCBhIGNsaXBwaW5nIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gYSBidWZmZXIgaXMKCSAgcmVjZWl2ZWQuIFVzZXJzIG9mIGNvbGxlY3RwYWRzIGNhbiB0aGVuIHBlcmZvcm0gY2xpcHBpbmcgb24gdGhlIGluY29tbWluZwoJICBidWZmZXJzLgoJICBBbHNvIHJldGFiIHRoZSBoZWFkZXIgZmlsZSBhIGxpdHRsZS4KCSAgU2VlICM1OTAyNjUKCjIwMDktMTItMjQgMTU6MTM6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBidWZmZXIyIGlkZWFzCgoyMDA5LTEyLTI0IDE0OjQwOjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgYXZvaWQgc29tZSBtb3JlIHR5cGUgY2hlY2tzCgoyMDA5LTEyLTI0IDE0OjIyOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhdm9pZCBzb21lIHR5cGUgY2hlY2tzCgkgIEF2b2lkIHR5cGUgY2hlY2tzIHdoZW4gd2UgY2FuCgkgIERvbid0IG5lZWQgdG8gcGVlayB0aGUgcGFyZW50X2NsYXNzLCB0aGUgYm9pbGVycGxhdGUgZG9lcyB0aGF0IGZvciB1cy4KCjIwMDktMTItMjMgMjE6Mzk6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogYWxzbyBwcmludCBsZWFrZWQgb2JqZWN0cwoJICBNYWtlIHRoZSAtVCBvcHRpb24gYWxzbyBwcmludCB0aGUgbGVha2VkIG9iamVjdHMKCjIwMDktMTItMjMgMjE6Mzc6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGluY2x1ZGUgdHlwZSBuYW1lIGluIGxlYWtlZCBvYmplY3RzCgkgIFdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBhIEdPYmplY3QsIHByaW50IHRoZSB0eXBlIG5hbWUgYWxvbmcgd2l0aAoJICB0aGUgcG9pbnRlciBmb3IgZWFzaWVyIGRlYnVnZ2luZy4KCjIwMDktMTItMjMgMjE6MjA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcHJvYmxlbSB3aXRoIGRlc3Ryb3kgY2FsbGJhY2sgbm90IGJlaW5nIGNhbGxlZAoJICBXaGVuIHdlIHVuYmxvY2sgYSBwYWQgd2l0aCB0aGUgc2FtZSB1c2VyX2RhdGEsIHRoZSBkZXN0cm95IGNhbGxiYWNrIGlzIG5vdAoJICBjYWxsZWQuIFRoaXMgbGVhZHMgdG8gcmVmY291bnRpbmcgbGVha3MgdGhhdCBjYW5ub3QgYmUgYXZvaWRlZC4gSW5zdGVhZCBhbHdheXMKCSAgY2FsbCB0aGUgZGVzdHJveSBub3RpZnkgd2hlbmV2ZXIgd2UgaW5zdGFsbCBhIG5ldyBwYWQgYmxvY2suCgkgIEluIHBhcnRpY3VsYXIsIHRoaXMgZml4ZXMgYSBuYXN0eSBwYWQgbGVhayBpbiBkZWNvZGViaW4yLgoJICBBbHNvIHVwZGF0ZSB0aGUgdW5pdCB0ZXN0IHRvIGhhdmUgbW9yZSBhY2N1cmF0ZSBjb21tZW50cyBhbmQgdGVzdCB0aGUgcmVxdWlyZWQKCSAgYmVoYXZpb3VyLgoKMjAwOS0xMi0yMiAyMjo1MjowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogc21hbGwgY2xlYW51cHMsIHVzZSBzb21lIEdfTElLRUxZCgoyMDA5LTEyLTIyIDE1OjI5OjI2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IERvbid0IGNyYXNoIGlmIHRoZXJlIGlzIG5vIHNvdXJjZSBwYWQKCjIwMDktMTItMjEgMTk6MTE6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0N2NiMjNhIHRvIDE0Y2VjODkKCjIwMDktMTItMjEgMTE6NTg6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZ3N0dGFnbGlzdDogQWRkcyBuZXcgdGFncwoJICBBZGRzIHRoZSBmb2xsb3dpbmcgbmV3IHRhZ3M6CgkgIEdTVF9UQUdfU0hPV19OQU1FCgkgIEdTVF9UQUdfU0hPV19TT1JUTkFNRQoJICBHU1RfVEFHX1NIT1dfRVBJU09ERV9OVU1CRVIKCSAgR1NUX1RBR19TSE9XX1NFQVNPTl9OVU1CRVIKCSAgR1NUX1RBR19MWVJJQ1MKCSAgR1NUX1RBR19DT01QT1NFUl9TT1JUTkFNRQoJICBHU1RfVEFHX0dST1VQSU5HCgkgIEZpeGVzICM1OTk3NTkKCjIwMDktMTItMTkgMTQ6Mjc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGFsd2F5cyBjYWxsIG91ciBjaGVjayBjaGVja3MgZm9yIHRoZSBTVUJVTklUIGNvbmRpdGlvbmFsCgkgIFRoZSBTVUJVTklUIGNvbmRpdGlvbmFsIG5lZWRzIHRvIGJlIHNldCBldmVuIGlmIGNoZWNrIGlzIGRpc2FibGVkLiBBbHNvCgkgIHJlbW92ZSBhIEZJWE1FIHRoYXQgaXMgbm90IG5lZWRlZCBhbnkgbG9uZ2VyIC8gYWZ0ZXIgYWxsLgoKMjAwOS0xMi0xOCAyMToyODozNSArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkgIGNoZWNrOiBwYXRjaCBpbnRlcm5hbCBjaGVjayBjb3B5IHNvIGl0IHdvcmtzIHdpdGggb3VyIGJ1aWxkIHN5c3RlbQoJICBGaXhlcyAjNjA0NTY1LgoKMjAwOS0xMi0xOCAyMToyNjowMSArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiB1cGRhdGUgYXV0b3Rvb2xzIGFuZCBkb2NzIHN0dWZmIGZvciBuZXcgY2hlY2sgdmVyc2lvbgoKMjAwOS0xMi0xNyAyMDowOTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkgIGNoZWNrOiB1cGRhdGUgaW50ZXJuYWwgbGliY2hlY2sgdG8gMC45LjgKCjIwMDktMTItMTUgMTg6NTU6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHByaW50ZiBmb3JtYXQgZml4ZXMKCjIwMDktMTItMTQgMTY6MjI6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZG9jczogbGluayBidXMgYW5kIHRhc2tzCgkgIEFkZCBhIGxpbmsgZnJvbSBidXMgc2VjdGlvbiBkb2NzIHRvIHRoZSB0YXNrIGRvY3MuIEFkZCBhIHBhcmFncmFwaCB0byB0YXNrIGRvY3MKCSAgdG8gdGVsbCBhYm91dCBtZXNzYWdlcyBhbmQgdGhlIGJ1cy4KCjIwMDktMTItMTQgMTU6MTE6NDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvY3M6IGFkZCBtb3JlIGRvY3MgYXJvdW5kIEdzdFN0YXRlIGFuZCBHc3RTdGF0ZUNoYW5nZQoJICBUYWtlIHJldmlld2VkIGRvY3MgZnJvbSBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlIHRvIGhhdmUgdGhhdCBtb3JlIHByb21pbmVudAoJICBpbnNpZGUgdGhlIGFwaSBkb2NzLiBBZGQgYSBmZXcgc2VudGVuY2VzIHRvIGxpbmsgdGhpbmdzIGJldHRlciB0b2dldGhlci4KCjIwMDktMTItMTQgMTU6MTE6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jczogcmV2aWV3IGFuZCBmaXggc3BlbGxpbmcKCjIwMDktMTItMTQgMTE6MDU6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBnc3RlbGVtZW50ZmFjdG9yeTogc2V0IG9iamVjdCBuYW1lIGVhcmxpZXIgaWYgYXBwbGljYWJsZQoJICBTZXR0aW5nIGFuIG9iamVjdCBuYW1lIGlzIG5pY2UgZm9yIHByb3BlciBkZWJ1ZyBsb2dnaW5nLiBJZGVhbGx5IHRoaXMgd291bGQKCSAgc3RpbGwgaGFwcGVucyBlYXJsaWVyICguZS5nIHdoZW4gcGFkcyBhcmUgYWRkZWQgdG8gYW4gZWxlbWVudCwgaXRzIG5vdCB5ZXQgc2V0KS4KCjIwMDktMTItMTQgMTE6MDc6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhZGQgZml4bWUtMC4xMSBjb21tZW50CgoyMDA5LTEyLTA4IDExOjMwOjM5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbW1lbnQ6IHNtYWxsIGNvbW1lbnQgY29ycmVjdGlvbgoKMjAwOS0xMi0xMSAxNjoyNjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBuZXZlciBza2lwIGEgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcKCSAgTmV2ZXIgc2tpcCB0aGUgc3RhdGUgY2hhbmdlIHRvIHBsYXlpbmcsIGV2ZW4gaWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSBpbiB0aGUKCSAgcmlnaHQgc3RhdGUuIFdlIG5lZWQgdGhpcyBiZWNhdXNlIHdlIGFsc28gZGlzdHJpYnV0ZSB0aGUgYmFzZV90aW1lIHdoaWxlIGRvaW5nCgkgIHRoZSBzdGF0ZSBjaGFuZ2UgYW5kIHNraXBwaW5nIHRoaXMgc3RlcCB3b3VsZCBsZWF2ZSBzb21lIGVsZW1lbnRzIHdpdGhvdXQgYSBuZXcKCSAgYmFzZV90aW1lLgoJICBGaXhlcyAjNjAwMzEzCgoyMDA5LTEyLTExIDE2OjE5OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcKCjIwMDktMTItMDggMTc6MjE6NDcgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogcmVsZWFzZSBwYWRzIGluIGRpc3Bvc2UKCSAgTWFrZSBzdXJlIHRvIHJlbGVhc2UgYWxsIHJlcXVlc3QtcGFkcyBpbiB0aGUgZGlzcG9zZS1tZXRob2QsIGluIGNhc2Ugb2YgYQoJICBzaHV0ZG93bi1yYWNlLCB3aGVyZSBhIHBhZC1hbGxvYyBpcyBhYm91dCB0byBoYXBwZW4uCgkgIEZpeGVzICM2MDQwOTEKCjIwMDktMTItMDkgMTM6Mjc6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiB1c2UgTlVMTCBpbnN0ZWFkIG9mIDAgZm9yIHBvaW50ZXJzCgoyMDA5LTEyLTA5IDA3OjI1OjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbigpIGZvciB0aGUgcmVtYWluaW5nIHRvb2xzCgoyMDA5LTEyLTAzIDEyOjMxOjE5ICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbiBjYWxsIHRvIGF2b2lkIHdhcm5pbmcgZnJvbSBuZXcgR0xpYi4KCSAgZ19zZXRwcmduYW1lIGlzIGltcGxpY2l0bHkgY2FsbGVkIGJ5IGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgd2l0aCBhIGNoZWNrCgkgIHRvIHNlZSBpZiBpdCdzIGJlZW4gc2V0IGFscmVhZHkuCgkgIEZpeGVzIGJ1ZyAjNjA0MDkzLgoKMjAwOS0xMi0wOCAxNjo0MDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBwcm94eV9zZXRjYXBzIHRvIG9ubHkgaXRlcmF0ZSBwYWRzIG9mIG90aGVyIGRpcmVjdGlvbgoKMjAwOS0xMi0wOCAxNjoyMTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHByb3h5X2dldGNhcHMKCSAgTWFrZSBpdCByZXR1cm4gdGhlIHBhZHRlbXBsYXRlIGNhcHMgb24gZXJyb3JzIGFuZCBubyBwYXJlbnQuCgkgIE9ubHkgaW50ZXJzZWN0IHBhZHMgb2YgdGhlIG9wb3NpdGUgZGlyZWN0aW9uIG9mIHRoZSBzb3VyY2UgcGFkLgoKMjAwOS0xMi0wOCAxNjoxNDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFJlbmFtZSBwcm94eSBpdGVyYXRvciBmb2xkIGZ1bmN0aW9ucyB0byBoYXZlIGEgbW9yZSBtZWFuaW5nZnVsIG5hbWUKCjIwMDktMTItMDggMTY6MDk6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBJZiBvbmUgaW50ZXJzZWN0aW9uIGdhdmUgZW1wdHkgY2FwcyBkb24ndCBjb250aW51ZSBpdGVyYXRpbmcgb3ZlciB0aGUgb3RoZXIgcGFkcwoKMjAwOS0xMi0wOCAxNToyNDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBbGxvdyB1cGRhdGUgTkVXU0VHTUVOVCBldmVudHMgYWZ0ZXIgRU9TCgkgIFRoaXMgYWxsb3dzIGRlbXV4ZXJzIHRvIHVwZGF0ZSB0aGUgc2VnbWVudCBzdG9wIG9mIGFuIGFscmVhZHkKCSAgZmluaXNoZWQgc3RyZWFtLiBUaGlzIG1pZ2h0IGJlIG5lZWRlZCBpZiBzb21lIHN0cmVhbSBnb2VzIHRvCgkgIEVPUyBiZWZvcmUgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb25nZXN0IHN0cmVhbSBpcyBrbm93biB0byBwcm9wZXJseQoJICBzZXQgdGhlIHNlZ21lbnQgc3RvcCBvZiBhbGwgc3RyZWFtcyB0byB0aGUgc2FtZSB2YWx1ZSBpbiB0aGUgZW5kLgoKMjAwOS0xMi0wNyAyMDo1MjoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgVXNlIHBsYWluIGNhc3RpbmcgaW5zdGVhZCBvZiB0eXBlY2hlY2tpbmcKCjIwMDktMTItMDcgMDk6NDU6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFVzZSBmYXN0IGdzdF92YWx1ZV9saXN0X3tzaXplfGdldF92YWx1ZX0gbWFjcm8gYWNjZXNzb3JzCgkgIGdzdF92YWx1ZV9saXN0X3NpemUgYW5kIGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSB3aWxsIGRvIGEgc2VyaWVzIG9mCgkgIGV4dHJhIGNoZWNrcyBkdWUgdG8gYmVpbmcgcHVibGljIG1ldGhvZHMuCgkgIFdoZW4gd2UgdXNlIHRoZW0gZnJvbSB3aXRoaW4gZ3N0dmFsdWUuYyB3ZSBjYW4gZGlyZWN0bHkgdXNlIHRoZW0gd2l0aG91dAoJICB0aGUgZXh0cmEgY2hlY2tzLgoKMjAwOS0xMi0wNyAwOTo0NDowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBEb24ndCB1c2UgZ19zaWduYWxfZW1pdF9ieV9uYW1lLCB1c2UgdGhlIHNpZ25hbCBJRCBkaXJlY3RseQoKMjAwOS0xMS0xOCAwOTowMTozNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogYXZvaWQgZXhwZW5zaXZlIHR5cGVjaGVja3MsIGFuZCBhdm9pZCBnZXR0aW5nIHJlZiB0byBwYXJlbnQuCgkgIFNwZWVkcyB1cCB0ZWUgcHJvY2Vzc2luZyAyIHRvIDUgdGltZXMuCgoyMDA5LTExLTEyIDA5OjA3OjAzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEF2b2lkIGRvdWJsZSBzdHJkdXAgd2hlbiBzZXR0aW5nIE5VTEwgbmFtZXMuCgkgIEluc3RlYWQgb2YgY2hhaW5pbmcgdXAgdG8gZ3N0X29iamVjdF9zZXRfbmFtZSAod2hpY2ggZG9lcyB0eXBlY2hlY2tpbmcKCSAgYW5kIHN0cmR1cCdzIHRoZSBuYW1lIGFnYWluKSwganVzdCB1c2UgdGhlIGFscmVhZHkgYWxsb2NhdGVkIG5ldwoJICBuYW1lLgoKMjAwOS0xMi0wNCAxMjoxNjozMiAtMDgwMCAgUGV0ZXIgdmFuIEhhcmRlbmJlcmcgPHB2aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICBwd2c6IG1ha2UgdGhlIGVudW0gZXhhbXBsZSAoYmFzZWQgb24gdmlkZW90ZXN0c3JjKSBhY3R1YWxseSBtYXRjaCB2aWRlb3Rlc3RzcmMKCjIwMDktMTItMDQgMTY6Mjg6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IElnbm9yZSBzdGF0ZSBjaGFuZ2UgZmFpbHVyZXMgZnJvbSBjaGlsZHJlbiB0aGF0IHdlcmUgcmVtb3ZlZCBmcm9tIHRoZSBiaW4gYWxyZWFkeQoJICBGaXhlcyBidWcgIzU4NDQ0MS4KCjIwMDktMTItMDQgMTU6MDA6NDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBVc2UgR01hcHBlZEZpbGUgZm9yIHJlYWRpbmcgdGhlIHJlZ2lzdHJ5CgkgIEZpeGVzIGJ1ZyAjNjAzNzg3LgoKMjAwOS0xMi0wMyAxOTo0ODoxMSArMDEwMCAgSmF2aWVyIEphcmTDs24gPGpqYXJkb25AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBTdWJzdGl0dXRlIGRlcHJlY2F0ZWQgR0xpYiBzeW1ib2w6IGdfbWFwcGVkX2ZpbGVfZnJlZQoJICBVc2UgZ19tYXBwZWRfZmlsZV91bnJlZiBpZiBHbGliID49IDIuMjIgaXMgYXZhaWxhYmxlCgkgIEZpeGVzIGJ1ZyAjNTYwNDQyLgoKMjAwOS0xMS0yNyAyMDoxNjoxNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNodXQgZG93biB0aGUgcGFkIHRhc2sgd2hlbiB0aGUgaW5pdGlhbCBzZWVrIGZhaWxzLgoJICBTZXQgdGhlIHBhZCBmbHVzaGluZyBhbmQgc3RvcCB0aGUgcGFkIHRhc2sgd2hlbiB0aGUgaW5pdGlhbCBzZWVrIGZhaWxzCgkgIGR1cmluZyBhY3RpdmF0aW9uLiBBdm9pZHMgcmFjeSBjYWxscyBpbnRvIHRoZSBfY3JlYXRlKCkgZnVuY3Rpb24gd2hlbgoJICBCYXNlU3JjOjpzdG9wKCkgaGFzIGFscmVhZHkgcnVuLgoJICBGaXhlczogIzYwMzA1OQoJICBBbHNvLCBmaXggc29tZSBtaXNzcGVsbGVkIGNvbW1lbnRzLgoKMjAwOS0xMi0wMyAyMDo1NTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGFmdGVyIHN0cmluZyBjaGFuZ2VzCgkgIChUaGUgcXVldWUyIHN0cmluZ3MgY291bGQgdXNlIHNvbWUgdGlkeWluZyB1cCkKCjIwMDktMTItMDMgMjA6NTM6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNpbmssIGZpbGVzcmM6IHByaW50ZiBmb3JtYXQgZml4ZXMKCSAgZ3N0ZmlsZXNpbmsuYzozOTk6IGVycm9yOiBmb3JtYXQg4oCYJWTigJkgZXhwZWN0cyB0eXBlIOKAmGludOKAmSwgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUg4oCYc2l6ZV904oCZCgkgIGdzdGZpbGVzaW5rLmM6Mzk5OiBlcnJvcjogZm9ybWF0IOKAmCVk4oCZIGV4cGVjdHMgdHlwZSDigJhpbnTigJksIGJ1dCBhcmd1bWVudCA5IGhhcyB0eXBlIOKAmGdzaXpl4oCZCgkgIGdzdGZpbGVzcmMuYzo1ODg6IGVycm9yOiBmb3JtYXQg4oCYJTA4bGx44oCZIGV4cGVjdHMgdHlwZSDigJhsb25nIGxvbmcgdW5zaWduZWQgaW504oCZLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSDigJhvZmZfdOKAmQoKMjAwOS0xMi0wMyAxNjo0NDoyOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgc3BlY2lhbCBjYXNlIGZvciBvbmx5IG9uZSBwYWQgY29uZWN0ZWQKCSAgSXQgaXMgbm90IGVhc3kgdG8gc2V0dXAgYSB0ZWUgb24gdGhlIGZseSwgdGh1cyBhcHBzIG5lZWQgdG8gYWRkIHRoZW0gYWx3YXlzIGlmCgkgIHRoZXkgbWlnaHQgbmVlZCB0aGVtLiBUaGlzIGNoYW5nZXMgdGhlIGNvZGUgc28sIHRoYXQgaWYgb25seSBvbmUgc3JjLXBhZCBpcwoJICBhY3RpdmUsIHdlIHB1c2ggYnVmZmVycyBkaXJlY3RseS4gSW4gdGhlIG5vcm1hbCBjb2RlIHBhdGggYWxsIGJ1ZmZlcnMgYXJlIHB1c2hlZAoJICB3aXRoIGFuIGV4dHJhIHJlZiwgdGhhdCBmb3JjZXMgZm9sbG93dXAgaW5wbGFjZSBlbGVtZW50cyB0byBjb3B5IHRoZSBkYXRhLgoKMjAwOS0xMi0wMyAxNjoxMTo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBvbmx5IG1lc3NhZ2Ugb25jZSBwZXIgcmVjZWl2ZWQgYnVmZmVyCgkgIEF2b2lkcyBjaGVja2luZyBmb3IgZWFjaCBzb3VyY2UgcGFkLiBUaGUgbWVzc2FnZXMgd291bGQgYmUgYWxtb3N0IGlkZW50aWNhbAoJICBhbnl3YXkuCgoyMDA5LTEyLTAzIDE1OjI3OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LXJlZ2lzdHJ5LWNoYW5nZS1ob29rcy50eHQ6CgkgIGRyYWZ0czogcGxhbm5pbmcKCjIwMDktMTItMDMgMTY6MDU6MDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogcmVtb3ZlIHVudXNlZCBvZmZzZXQgbWVtYmVyCgoyMDA5LTEyLTAzIDE2OjAyOjM1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG9ubHkgbm90aWZ5IGFsbG9jLXBhZCBwcm9wZXJ0eSBpZiBjaGFuZ2VkLgoKMjAwOS0xMi0wMiAxMzoyOToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogZml4IGRvY3MgZm9yIF9jb3B5KCkKCjIwMDktMTItMDEgMjI6Mzc6NTEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogRml4IGNoZWNrIGZvciBXaW5kb3dzCgoyMDA5LTEyLTAxIDE4OjA5OjA0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICBNYWtlIGdjYyBpbmxpbmUgYXNzZW1ibHkgY29uZGl0aW9uYWwgb24gZ2NjCgoyMDA5LTEyLTAxIDE5OjI5OjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmx5IG9uY2UuCgkgIE1ha2VzIGNyZWF0aW5nIHF1ZXVlIGVsZW1lbnRzIDMtNCB0aW1lcyBmYXN0ZXIgYW5kIGF2b2lkcyBjb250ZW50aW9uIG9uIHRoZQoJICBnbG9iYWwgZnVuY3B0ciBsb2NrLgoKMjAwOS0xMi0wMSAxOToyNzo0NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmMvYmFzZXNpbms6IFJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25seSBvbmNlLgoJICBNYWtlcyBiYXNlc3JjL2Jhc2VzaW5rIGluaXRpYWxpemF0aW9uIDMtNCB0aW1lcyBmYXN0ZXIgYW5kIGF2b2lkcwoJICBjb250ZW50aW9uIG9uIHRoZSBnbG9iYWwgZnVuY3B0ciBsb2NrCgoyMDA5LTEyLTAxIDE3OjU0OjU2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdGdob3N0cGFkOiBSZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9ubHkgb25jZS4KCSAgVGhpcyBtYWtlcyBnaG9zdHBhZC9wcm94eXBhZCBjcmVhdGlvbiA1IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzIGNvbnRlbnRpb24KCSAgb3ZlciB0aGUgZ2xvYmFsIGZ1bmNwdHIgbG9jay4KCSAgSSBhbHNvIG1vdmVkIHRoZSB0d28gY2xhc3MgaW5pdCBkb3duIGluIHRoZSBjb2RlIHRvIGF2b2lkIGhhdmluZyB0byBmb3J3YXJkCgkgIGRlY2xhcmUgYWxsIHRoZSB2YXJpb3VzIGZ1bmN0aW9ucy4KCjIwMDktMTItMDEgMTc6NTQ6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogT25seSByZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9uY2UuCgkgIFRoaXMgbWFrZXMgcGFkIGluaXRpYWxpemF0aW9uIDIgdGltZXMgZmFzdGVyIGFuZCB3aXRob3V0IGFueSBjb250ZW50aW9uCgkgIG92ZXIgdGhlIGRlYnVnIGZ1bmNwdHIgZ2xvYmFsIGxvY2suCgoyMDA5LTEyLTAxIDE3OjUzOjAzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogQVBJOiBBZGQgR1NUX0RFQlVHX1JFR0lTVEVSX0ZVTkNQVFIgbWV0aG9kLgoJICBUaGlzIGlzIGEgdmFyaWFudCBvZiBHU1RfREVCVUdfRlVOQ1BUUiB3aGljaCBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcuCgoyMDA5LTEyLTAxIDE1OjA1OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODdiZjQyOCB0byA0N2NiMjNhCgoyMDA5LTEyLTAxIDE0OjA4OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBVc2UgbmV3IEFHX0dTVF9QTEFURk9STSBtYWNybwoKMjAwOS0xMi0wMSAxNDoxMDo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRhNGM3NWMgdG8gODdiZjQyOAoKMjAwOS0xMS0yOCAyMjoyOToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsaXAgc3RlcHBpbmcgYm91bmRhcmllcwoJICBSb3VuZGluZyBlcnJvcnMgd2l0aCB0aGUgZmxvYXRpbmcgcG9pbnQgcmF0ZSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgd2UKCSAgZG9uJ3QgZW5kIHVwIGV4YWN0bHkgYXQgdGhlIHJlcXVpcmVkIHN0ZXBwaW5nIGR1cmF0aW9uLgoJICBVc2UgdGhlIHNlZ21lbnQgY2xpcHBpbmcgYm91bmRhcmllcywgd2hpY2ggYXJlIG5vdCBzdWJqZWN0IHRvIHJhdGUKCSAgYWRqdXN0ZW1lbnRzLCBpbnN0ZWFkIHRvIGRldGVjdCB3aGVuIHdlIHJlYWNoZWQgdGhlIHN0ZXBwaW5nIGR1cmF0aW9uLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvIHJlbGF0ZWQgdG8gZ29pbmcgdG8gdGhlIFBBVVNFRCBzdGF0ZS4KCjIwMDktMTEtMjggMTc6MDI6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgZG9jczogZml4IGFub3RoZXIgdHlwbwoKMjAwOS0xMS0yOCAxNTo0MDozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDA5LTExLTI3IDE4OjU0OjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1M2EyNDg1IHRvIGRhNGM3NWMKCjIwMDktMTEtMjcgMTM6NDI6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGdzdGV2ZW50OiBmaXggZG9jcwoJICBGaXggZmx1c2ggc3RvcHMgZG9jcywgdGhvc2UgYXJlIHNlcmlhbGl6ZWQsIG5vdCBvdXQgb2YgYm91bmRzLgoJICBQcm9iYWJseSBhIGNvcHkgYW5kIHBhc3RlIG1pc3Rha2UuCgoyMDA5LTExLTI3IDE2OjM5OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggYnJva2VuIHhyZWZzCgoyMDA5LTExLTI3IDE2OjM5OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgZG9jczogZml4IGJyb2tlbiB4cmVmcwoKMjAwOS0xMS0yNyAxNjozOTowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIG1pc3Npbmcgc2VjdGlvbiB0byBsaWJzLWRvY3MKCjIwMDktMTEtMjcgMTQ6MTg6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgZG9jczogbWFrZSBsaW5rcyB3b3JrIChuZWVkcyByZWNlbnQgZ3RrLWRvYykKCjIwMDktMTEtMjcgMTQ6MTc6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvY3MKCjIwMDktMTEtMjcgMTQ6MTY6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZG9jczogZW5hYmxlIGRvY3MgZm9yIEdzdE9iamVjdENsYXNzIHRvIGZpeCBsaW5rcwoKMjAwOS0xMS0yNyAxNDoxNTowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3RvYmplY3Q6IGFkZCBGSVhNRS0wLjExIGNvbW1lbnRzCgoyMDA5LTExLTI1IDE4OjI1OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0eG1sLmM6CgkgIGRvY3M6IGJldHRlciB3YXkgdG8gbGluayBjbGFzcyBtZXRob2RzCgoyMDA5LTExLTI1IDE4OjI0OjE2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXNlICcqJyBpbnN0ZWFkIG9mIHh4eCB0byBhdm9pZCBjcmVhdGluZyBhIGJyb2VrbiB4cmVmCgoyMDA5LTExLTI1IDE3OjM3OjMzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBmaXggbW9yZSBib2d1cyB4cmVmcwoKMjAwOS0xMS0yNSAxNzoyNzozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgR3N0UGx1Z2luRmxhZ3MKCSAgVGhpcyBhbHNvIG1ha2VzIGxpbmtzIHRvIHRoZW0gd29yay4KCjIwMDktMTEtMjUgMTU6Mzk6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIGRvY3M6IGltcHJvdmUgR3N0TWl4ZXIgYW5kIEdzdFR1bmVyIGRvY3MKCSAgTWVudGlvbiB0aGF0IGVsZW1lbnRzIGltcGxlbWVudGluZyBHc3RNaXhlciBhbmQgR3N0VHVuZXIgbmVlZCB0byBiZQoJICBpbiB0aGUgcmlnaHQgc3RhdGUgYmVmb3JlIHRoZXkgY2FuIGJlIHVzZWQuIEFsc28gbWVudGlvbiBHTGliCgkgIGZ1bmN0aW9ucyBmb3IgY29udmVydGluZyBmaWxlbmFtZXMgdG8gYW5kIGZyb20gVVJJcy4KCSAgRml4ZXMgIzYwMjg3Ny4KCjIwMDktMTEtMjUgMTY6NDQ6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IGZpeCB4cmVmcyBpbiBkb2NzCgkgIEZpeCB0eXBvcyBpbiB4cmVmcywgbGlua3MgdG8gbm9uIGV4aXN0aW5nIGZ1bmN0aW9ucyBhbmQgcmV3b3JrIHBsdXJhbCBmb3Jtcy4KCjIwMDktMTEtMjUgMTQ6NDE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtYWNyb3MuaDoKCSAgZG9jczogcmVtb3ZlIGd0a2RvYyBoZWFkZXIgYXMgdGhlc2UgdGhpbmdzIGRvbid0IGNvbWUgdXAgb24gb3VyIGRvY3MgZXZlbgoKMjAwOS0xMS0yNSAxNDoyMzo1MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciBkb2Mgc3RyaW5nCgoyMDA5LTExLTI1IDE0OjIxOjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogZG9jdW1lbnQgbmV3IGV2ZW50IGluIGVudW0KCjIwMDktMTEtMjUgMTQ6MTg6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyBzeW50YXggZm9yIGRvYy1ibG9iIHN0YXJ0CgoyMDA5LTExLTIzIDExOjM0OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTExLTIzIDExOjMzOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGZpeCBncmFtbWFyCgoyMDA5LTExLTIxIDE2OjM3OjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNyYzogQWRkIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgkgIE1lcmdlIG5ldyBmdW5jdGlvbiBmcm9tIHJlc2luZHZkIGludG8gdGhlIHByaW1hcnkgR3N0QmFzZVNyYyBmb3IKCSAgc3RhcnRpbmcgYSBuZXcgc2VhbWxlc3Mgc2VnbWVudC4KCSAgQVBJOiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoKMjAwOS0xMS0yMCAxNjowMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgU29tZSBnY2MgdmVyc2lvbnMgd2FybiBhYm91dCBieXRld3JpdGVyIHdyaXRpbmcgdG8gbWVtb3J5IGFjY2Vzc2VkCgkgIHZpYSBhIGNvbnN0IGd1aW50OCBwb2ludGVyLCBkZXNwaXRlIG91ciBleHBsaWNpdCBjYXN0IHRvIGd1aW50OCAqLgoJICBXb3JrIGFyb3VuZCB0aGF0IGJ5IHVzaW5nIGFuIGludGVybWVkaWFyeSB2YXJpYWJsZS4KCSAgRml4ZXMgIzU5ODUyNi4KCjIwMDktMTEtMjAgMDk6MzM6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjaGVjazogT25seSBjaGVjayBmb3IgZ21wL2dzbCBpZiBidWlsZGluZyBvZiB0ZXN0cyBpcyBub3QgZGlzYWJsZWQKCjIwMDktMTEtMTkgMTk6MDA6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENsYW1wIHRoZSBiYXNlIHRpbWUgY29ycmVjdGx5IGluIHBvc2l0aW9uIHJlcG9ydGluZwoJICBXaGVuIGNsYW1waW5nIHRoZSBiYXNlIHRpbWUsIGNvcnJlY3RseSB1c2UgJ25vdycsIGluc3RlYWQgb2YKCSAgJy1ub3cnIC0gdGhlIGludGVudCBpcyB0byBwcmV2ZW50ICdub3ctYmFzZScgZXZlciBiZWluZwoJICBuZWdhdGl2ZSwgd2hpY2ggd291bGQgY2F1c2UgYSBwb3NpdGlvbiByZXBvcnQgb3V0c2lkZSB0aGUgc2VnbWVudC4KCSAgRml4ZXM6ICM2MDI0MTkKCjIwMDktMTEtMDkgMTA6NTI6NDIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBnc3RwbHVnaW46IEFkZCBDKysgZXNjYXBlIGZvciBnc3RfcGx1Z2luX2Rlc2MgZGVmaW5lCgkgIEluIG9yZGVyIHRvIHByb3Blcmx5IGV4cG9ydCB0aGUgZ3N0X3BsdWdpbl9kZXNjIHN5bWJvbAoJICBmcm9tIERMTHMgaW4gTVNWQywgaXQgbmVlZHMgdG8gYmUgZXh0ZXJuICJDIi4KCjIwMDktMTEtMTkgMTI6NTk6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UvZ3JhbW1hci55OiByZW1vdmUgdW51c2VkIEVSUk9SIGRlZmluZQoKMjAwOS0xMS0xOSAxMDoyOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE4NjEyNTIgdG8gNTNhMjQ4NQoKMjAwOS0xMS0xNiAxNTo0Nzo1NyArMDIwMCAgUHJpaXQgTGFlcyA8cGxhZXNAcGxhZXMub3JnPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBmaXggc3ltYm9sIGV4cG9ydGluZyB3aGVuIGJ1aWxkaW5nIHVuZGVyIGV0X0VFIGxvY2FsZQoJICBbQS1aXSByZWdleHAgZmFpbHMgdW5kZXIgZXRfRUUgbG9jYWxlIGJlY2F1c2UgWiBpbiBFc3RvbmlhbiBhbHBoYWJldCBpcwoJICBsb2NhdGVkIGFmdGVyIFMgYW5kIHRoZXJlZm9yZSBjaGFyYWN0ZXJzIHN0YXJ0aW5nIHdpdGggJ1RVVi4uLicgYXJlIG5vdAoJICBpbiB0aGUgcmFuZ2UgYW55bW9yZS4KCSAgRml4ZXMgYnVnICM2MDIwOTMuCgoyMDA5LTExLTE4IDA3OjU5OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEhhbmRsZSB0aGUgbmV3IHNpbmstbWVzc2FnZSBldmVudAoKMjAwOS0xMS0xOCAwNzo1MjoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQVBJOiBBZGQgc2luay1tZXNzYWdlIGV2ZW50CgkgIGdzdF9ldmVudF9uZXdfc2lua19tZXNzYWdlKCkKCSAgZ3N0X2V2ZW50X3BhcnNlX3NpbmtfbWVzc2FnZSgpCgkgIFRoaXMgZXZlbnQgaXMgdXNlZCBmb3Igc2VuZGluZyBhIEdzdE1lc3NhZ2UgZG93bnN0cmVhbSBhbmQgc3luY2hyb25pemVkCgkgIHdpdGggdGhlIHN0cmVhbSwgdG8gYmUgcG9zdGVkIGJ5IHRoZSBzaW5rIG9uY2UgaXQgcmVhY2hlcyB0aGUgc2luay4KCSAgRml4ZXMgYnVnICM2MDIyNzUuCgoyMDA5LTExLTE2IDAwOjEyOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBwbHVnaW4tc2Nhbm5lcjogcmVuYW1lIHBsdWdpbi1zY2FubmVyIGhlbHBlciBiaW5hcnkgdG8gZ3N0LXBsdWdpbi1zY2FubmVyCgkgIGFuZCBpbnN0YWxsIGludG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5ICQobGliZXhlY2Rpci9nc3RyZWFtZXItMC4xMCkgc28gdGhhdAoJICBldmVyeXRoaW5nIGlzIHZlcnNpb25lZCBwcm9wZXJseS4KCSAgTk9URTogcnVuICdtYWtlIGNsZWFuJyBhZnRlciB1cGRhdGluZzsgaWYgeW91IGFyZSBydW5uaW5nIGFuIHVuaW5zdGFsbGVkIHNldHVwLAoJICB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB5b3VyIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgKHVubGVzcyBpdCdzIHN5bWxpbmtlZAoJICB0byBnc3RyZWFtZXIgY29yZSBtYXN0ZXIpIGFuZCBleGl0L2VudGVyIHlvdXIgdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQgdG8gZ2V0CgkgIHRoZSB1cGRhdGVkIGVudmlyb25tZW50LiBJZiB5b3UgYXJlIHJ1bm5pbmcgYW4gaW5zdGFsbGVkIHNldHVwLCB5b3Ugc2hvdWxkCgkgIHJ1biAnbWFrZSB1bmluc3RhbGwnIGJlZm9yZSBtZXJnaW5nIHRoaXMgY2hhbmdlIG9yIHJlbW92ZSB0aGUgb2xkCgkgIHBsdWdpbi1zY2FubmVyIGJpbmFyeSBtYW51YWxseS4KCSAgRml4ZXMgIzYwMTY5OC4KCjIwMDktMTEtMTggMDk6MTA6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBSZXZlcnQgInN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgdHlwZSB0d2ljZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmODY0MTg3YmY1ZmRmYWY3MWYyZTAzODk0OWU0MDNhNDJlNmRhZjBlLgoJICBSZXZlcnRpbmcgdGhpcyBhcyBpdCBjaGFuZ2VzIGJlaGF2aW91ciBhbmQgdGhlIGRvY3VtZW50YXRpb24gaXMKCSAgYW1iaWd1b3VzIGFib3V0IHdoZXRoZXIgdGhlIGNhbGxlciBtdXN0IGNoZWNrIHRoZSB0eXBlIGZpcnN0IG9yCgkgIG5vdCAoY2FsbCBtdXN0IGNoZWNrIHR5cGUgdnMuIHJldHVybnMgTlVMTCBpZiBub3QgYSBzdHJpbmcpLiBJZgoJICBHTGliIGhhcyBiZWVuIGNvbXBpbGVkIHdpdGggR19ESVNBQkxFX0NIRUNLUyB0aGVuIGdfdmFsdWVfZ2V0X3N0cmluZygpCgkgIG1heSByZXR1cm4gY29tcGxldGUgZ2FyYmFnZSBldmVuIGlmIHRoZSB2YWx1ZSBkb2VzIG5vdCBjb250YWluCgkgIGEgc3RyaW5nLiBCZXR0ZXIgcGxheSBpdCBzYWZlLCBlc3AuIHNpbmNlIHRoZSBleHRyYSBjaGVjayBpcyBqdXN0CgkgIGFuIGludGVnZXIgY29tcGFyaXNvbi4gRm9yIGZ1bmRhbWVudGFsIHR5cGVzIHdlIGNvdWxkIHJldHVybiB2YWx1ZXMKCSAgZnJvbSB0aGUgR1ZhbHVlIHN0cnVjdHVyZSBkaXJlY3RseSBpZiB3ZSByZWFsbHkgd2FudGVkIHRvIGJ5cGFzcwoJICB0aGUgZXh0cmEgY2hlY2suCgoyMDA5LTExLTE3IDE3OjA2OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgdHlwZSB0d2ljZQoKMjAwOS0xMS0xNyAxODozNTo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBzdGVwIGV2ZW50IHF1YXJrCgoyMDA5LTExLTE3IDEwOjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgcGF0aHMgZm9yIGdzdC1xYS1zeXN0ZW0KCjIwMDktMTEtMTcgMDk6MDY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBzZXQgR1NUX1BMVUdJTl9TQ0FOTkVSIHdoZW4gY2FsbGluZyBndGtkb2Mtc2NhbmdvYmoKCSAgT3RoZXJ3aXNlIHRoZSBkb2NzIGJ1aWxkIHdvbid0IHdvcmsgcHJvcGVybHkKCjIwMDktMTEtMTYgMTM6NTg6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgc29tZSBibGFuayBsaW5lcyAocHJldmlvdXMgZ3N0LWluZGVudCBmYWlsdXJlKQoKMjAwOS0xMS0xNiAxMzo1Mzo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHVzZSBsb2NhbCB2YXJpYWJsZSBlYXJsaWVyCgoyMDA5LTExLTE2IDEzOjQ5OjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgZW51bSB0eXBlcyB0d2ljZS4KCSAgR19WQUxVRV9IT0xEU19FTlVNKHZhbHVlKSBpcyBkZWZpbmVkIGFzIEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICh2YWx1ZSwKCSAgR19UWVBFX0VOVU0pLiBKdXN0IGNoZWNrIGZvciB0aGUgcmlnaHQgZW51bS10eXBlIHJpZ2h0IGF3YXkuCgoyMDA5LTExLTE0IDIyOjM1OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2hlY2s6IEFkZCBhIGRlYnVnIHN0YXR1cyB0byB0aGUgc3lzdGVtY2xvY2sgdGVzdAoJICBOZXh0IHRpbWUgaXQgZmFpbHMgb24gYSBidWlsZGJvdCB3ZSBjYW4gc2VlIHdoaWNoIGNsb2NrIGlkCgkgIHJldHVybiBpdCBpcyBnZXR0aW5nLgoKMjAwOS0xMS0xNiAxODoyNTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFRPRE86IHJlbW92ZSBzdGVwcGluZyBmcm9tIFRPRE8KCSAgUmVtb3ZlIHRoZSBmcmFtZSBzdGVwcGluZyBBUEkgZnJvbSB0aGUgVE9ETyBsaXN0LgoKMjAwOS0xMS0xNiAxNDowMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBwb3NpdGlvbiByZXBvcnRpbmcKCSAgT25seSB1cGRhdGUgdGhlIGN1cnJlbnQgc3RyZWFtIHRpbWUgYWZ0ZXIgd2UgY2hlY2tlZCBpZiB3ZSBnb3QgYSBuZXcgc3RlcAoJICBldmVudC4gVGhpcyBpbXByb3ZlcyB0aGUgcG9zaXRpb24gcmVwb3J0aW5nIGJ5IHRoZSBzaW5rLgoJICBTZWUgIzU5NTk1OAoKMjAwOS0xMS0xNiAwOTo0OTo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFQSTogQWRkIG11bHRpcGxpY2F0aW9uIGFuZCBhZGRpdGlvbiBmdW5jdGlvbnMgZm9yIGZyYWN0aW9ucwoJICBnc3RfdXRpbF9mcmFjdGlvbl9hZGQoKQoJICBnc3RfdXRpbF9mcmFjdGlvbl9tdWx0aXBseSgpCgkgIFRoZXNlIHdvcmsgb24gcGxhaW4gaW50ZWdlcnMgaW5zdGVhZCBvZiBHVmFsdWVzIHRvCgkgIGtlZXAgdGhlIG92ZXJoZWFkIGFzIGxvdyBhcyBwb3NzaWJsZS4KCjIwMDktMTEtMTYgMDk6Mjk6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBBUEk6IEFkZCBmcmFjdGlvbiBoZWxwZXIgZnVuY3Rpb25zCgkgIGdzdF91dGlsX2dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yKCkKCSAgZ3N0X3V0aWxfZG91YmxlX3RvX2ZyYWN0aW9uKCkKCSAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKCkKCSAgVXNpbmcgdGhlc2UgaW5zdGVhZCBvZiBnb2luZyBvdmVyIEdWYWx1ZSBoYXMgbXVjaCBsb3dlciBvdmVyaGVhZC4KCSAgQWxzbyBhZGQgZmxvYXQ8LT5mcmFjdGlvbiB0cmFuc2Zvcm0gZnVuY3Rpb25zIGZvciBHVmFsdWUuCgoyMDA5LTExLTEzIDE1OjQ1OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRlYnVnOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIHRvIGhlbHAgdHJhY2tpbmcgcGFyc2luZyBlcnJvcnMKCjIwMDktMTEtMTMgMTE6NDI6MDIgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCByYWNlIHdoZW4gcmVjeWNsaW5nIGJ1ZmZlcnMKCSAgQXZvaWQgYSByYWNlIHdoZXJlIGEgbWluaW9iamVjdCBpcyByZWN5Y2xlZCBhbmQgcXVpY2tseSBmcmVlZCwgd2hpY2ggY2F1c2VzIHRoZQoJICBnX3R5cGVfZnJlZV9pbnN0YW5jZSgpIHRvIGJlIGNhbGxlZCBvbiB0aGUgc2FtZSBvYmplY3QgdHdpY2UuCgkgIFJlZiB0aGUgb2JqZWN0IGJlZm9yZSBjYWxsaW5nIHRoZSBmaW5hbGl6ZSBtZXRob2QgYW5kIGNoZWNrIGlmIHdlIHN0aWxsIG5lZWQgdG8KCSAgZnJlZSBpdCBhZnRlcndhcmQuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzIGNhc2UuCgkgIEZpeGVzICM2MDE1ODcKCjIwMDktMTEtMTIgMTc6MDI6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB3aGl0ZXNwYWNlOiByZW1vdmUgYmxhbmtzIGluIGRvYy1jb21tZW50CgoyMDA5LTExLTA2IDE1OjQyOjU3ICswMzAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogSW1wb3J0IF9wcml2X2dzdF9kbGxfaGFuZGxlIGludG8gZ3N0cmVnaXN0cnkuYwoJICBGaXhlcyBidWcgIzYwMTY2OC4KCjIwMDktMTEtMTIgMTQ6MTA6MDYgKzAzMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogRG8gbm90IGxpc3QgbGliZ3N0Y2hlY2sgYXMgYSByZXF1aXJlbWVudCBmb3IgdGVzdHMvZXhhbXBsZXMvbWFudWFsCgkgIEZpeGVzIGJ1ZyAjNjAxNjY5LgoKMjAwOS0xMS0xMSAxNzoxMjoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRml4IHRyZWF0aW5nIGJhc2VfdGltZSBhcyB1bnNpZ25lZCBpbiBwb3NpdGlvbiBjYWxjdWxhdGlvbgoJICBFbGVtZW50IGJhc2VfdGltZSBpcyBhIHNpZ25lZCBxdWFudGl0eSwgd2hpY2ggbGVhZHMgdG8gYmFzZXNpbmsgcmV0dXJuaW5nCgkgIGEgcG9zaXRpb24gb2YgMCB3aGVuIGRlYWxpbmcgd2l0aCBhIG5lZ2F0aXZlIGJhc2UgdGltZSAtIHdoaWNoIGFyZSBxdWl0ZQoJICBsZWdhbCB3aGVuIGNsb2NrcyAoc3VjaCBhcyB0aGUgYXVkaW8gY2xvY2spIGFyZSBjbG9zZSB0byAwLgoJICBUaGlzIGRvZXNuJ3QgbWFuaWZlc3QgaW4gbm9ybWFsIHBpcGVsaW5lcywgb2YgY291cnNlIC0gYnV0IGNhbiBoYXBwZW4KCSAgKGF0IGxlYXN0KSB3aGVuIG1hbnVhbGx5IHNldHRpbmcgdGhlIGJhc2UgdGltZSBvbiBhIHBpcGVsaW5lLgoKMjAwOS0xMS0xMCAxODowMzo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogQVBJOiBBZGQgZ3N0X3tkZWZhdWx0LH1fcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdF9jb29raWUoKQoJICBUaGlzIHJldHVybnMgdGhlIGludGVybmFsIGZlYXR1cmUgbGlzdCBjb29raWUsIHdoaWNoIGNoYW5nZXMgZXZlcnkKCSAgdGltZSBhIGZlYXR1cmUgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gVGhpcyBjYW4gYmUgdXNlZCBieSBlbGVtZW50cwoJICB0byBjaGVjayBpZiB0aGV5IHNob3VsZCB1cGRhdGUgdGhlaXIgY2FjaGVkIGZlYXR1cmUgbGlzdHMuCgoyMDA5LTExLTEwIDExOjU1OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHByaW50ZiBmb3JtYXQKCSAgQ2FzdCB0aGUgdmFyaWFibGUgdG8gZ2ludCB0byBjb25mb3JtIHRvIHRoZSBwcmludGYgZm9ybWF0IHVzZWQuCgkgIEl0IGlzIGNhc3RlZCByYXRoZXIgdGhhbiBjaGFuZ2luZyB0aGUgZm9ybWF0IGJlY2F1c2UgdGhlCgkgIG1lc3NhZ2UgaXMgY3JlYXRlZCB3aXRoIGEgY2FzdCB0byBnaW50IHRvby4KCjIwMDktMTEtMTAgMTA6MTA6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCBjcmFzaGluZyBkdWUgdG8gbmVnYXRpdmUgcGVyY2VudAoJICBxdWV1ZTIgd291bGQgY3Jhc2ggd2hlbiB1c2luZyBzbWFsbCBidWZmZXIgc2l6ZXMgYmVjYXVzZQoJICBpdCB3b3VsZCBvdmVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIHRoZSBwZXJjZW50YWdlLCByZXN1bHRpbmcKCSAgaW4gdGhlIGJ1ZmZlcmluZyBHc3RNZXNzYWdlIG5vdCBiZWluZyBjcmVhdGVkIGFuZCB0cnlpbmcgdG8gYmUKCSAgdXNlZC4gVGhpcyBwYXRjaCB1c2VzIGEgZ2ludDY0IGluc3RlYWQgb2YgYSBnaW50IHRvIGRvIHRoZQoJICBwZXJjZW50YWdlIG1hdGgsIG1ha2luZyBpdCBoYXJkZXIgdG8gb3ZlcmZsb3cuCgoyMDA5LTExLTEwIDA5OjUyOjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHNtYWxsIGRvYyB0eXBvCgoyMDA5LTExLTEwIDAwOjU3OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogZml4IGNvbXBpbGF0aW9uIHdpdGggZGVidWdnaW5nIGRpc2FibGVkCgkgIEFkZCB1Z2x5IGlmZGVmIHRvIGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyB3aGVuIGNvbXBpbGluZyB3aXRoCgkgIGRlYnVnIGxvZ2dpbmcgZGlzYWJsZWQuCgoyMDA5LTExLTA5IDE2OjIwOjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1yZWdpc3RyeS1jaGFuZ2UtaG9va3MudHh0OgoJICBwbGFubmluZzogYWRkIHRob3VnaHRzIGFib3V0IGZvcmVpZ24gcmVnaXN0cnkgY2FjaGUgdXBkYXRlcwoKMjAwOS0xMS0wOSAxNDo1NTo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogYWxsb3cgdG8gZ2V0IHBsdWdpbi1pbnN0YWxsLWluZm8gZm9yIGFsbCBpbnN0YWxsZWQgcGx1Z2lucwoJICBJZiBubyBwbHVnaW4gaXMgZ2l2ZW4sIHByaW50IHRoZSBpbmZvIGZvciBhbGwgcGx1Z2lucy4gVGhpcyBjYW4gYmUgdXNlZCBhcyBhCgkgIHN0YXJ0aW5nIHBvaW50IHRvIGdlbmVyYXRlIGEgcHJvZmlsZSBhYm91dCB3aGF0IHRoZSBnc3RyZWFtZXIgaW5zdGFsbGF0aW9uIGNhbgoJICBwb3RlbnRpYWx5IGhhbmRsZSAoZS5nLiBmb3IgTVRQIG9yIERMTkEpLgoKMjAwOS0xMS0wOSAxMjo0MjozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgZG9jczogZG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBwYWQKCjIwMDktMTEtMDcgMjA6MjI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiB3YWtlIHVwIGxlc3Mgb2Z0ZW4gdG8gY2hlY2sgaWYgd2UndmUgYmVlbiBpbnRlcnJ1cHRlZAoJICBDaGVjayBpZiB3ZSd2ZSBiZWVuIGludGVycnVwdGVkIG9ubHkgZm91ciB0aW1lcyBwZXIgc2Vjb25kIGluc3RlYWQKCSAgb2YgdHdlbnR5IHRpbWVzIHBlciBzZWNvbmQsIHRvIHdha2UgdXAgdGhlIGNwdSBsZXNzIG9mdGVuIGFuZAoJICBzYXZlIHBvd2VyIChzZWUgYnVnICM2MDA5MjIpLgoKMjAwOS0xMS0wNSAyMToxODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBhZGQgZGVmaW5lIHRvIGZvcmNlIHByaW50ZiBmb3JtYXQgY2hlY2tpbmcgZm9yIGRlYnVnIG1lc3NhZ2VzCgkgIEZvcmNlIHByaW50ZiBmb3JtYXQgY2hlY2tpbmcgZm9yIGRlYnVnIG1lc3NhZ2VzIGlmIEdTVF9ESVNBQkxFX1BSSU5URl9FWFRFTlNJT04KCSAgaXMgZGVmaW5lZC4gVGhpcyBpcyB1c2VmdWwgdG8gcXVpY2tseSBjaGVjayBjb2RlIGZvciBwcmludGYgZm9ybWF0IG1pc21hdGNoZXMKCSAgaW4gZGVidWdnaW5nIG1lc3NhZ2VzIHRoYXQgd291bGQgdXN1YWxseSBub3QgYmUgY2F1Z2h0ICh3aXRoIGdsaWJjK2djYyBhbmQKCSAgcHJpbnRmIGV4dGVuc2lvbnMgYmVpbmcgdXNlZCkuCgkgIFRvIHVzZTogbWFrZSBjbGVhbjsgbWFrZSBDRkxBR1M9Jy1nIC1PMiAtREdTVF9ESVNBQkxFX1BSSU5URl9FWFRFTlNJT04nCgoyMDA5LTExLTA1IDIxOjA5OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IE1ha2Ugc3VyZSB3ZSB1c2UgdGhlIGxvY2FsIGxpYmdzdGJhc2UgYW5kIG5vdCBhIHN0cmF5IG91dHNpZGUgb25lLgoJICBUaGVvcmV0aWNhbGx5IHdlIHNob3VsZCBhbHNvIGRvIHRoaXMgZm9yIGFsbCBsb2NhbCBsaWJyYXJpZXMgdG8gbWFrZSBzdXJlCgkgIHdlIGRvbid0IHRlc3Qgd2l0aCBhICdzdHJheScgb3V0c2lkZSBsaWJyYXJ5LgoKMjAwOS0xMS0wNSAxODozNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZml4IHR5cG8KCjIwMDktMTEtMDUgMTU6NTk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgbG9va2luZyB1cCBHc3RUYWdJbmZvIHR3aWNlIGluIGEgcm93CgkgIFBhc3MgdGhlIGluZm8gc3RydWN0dXJlIHRvIG91ciBpbnRlcm5hbCBmdW5jdGlvbiBpZiBhbHJlYWR5IGF2YWlsYWJsZS4KCSAgQWxzbyBjbGVhbiB1cCB3YXJuaW5ncyBmb3IgdW5rbm93biB0YWdzLgoKMjAwOS0xMS0wNSAxODo1NTozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBnc3RyZWdpc3RyeWNodW5rczogV2UncmUgY2VydGFpbiBwbHVnaW5fbmFtZSBpcyBhbiBpbnRlcm4gc3RyaW5nLgoJICBUaGUgb25seSBwbGFjZSB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSBjcmVhdGVzIHRoZSBwbHVnaW5fbmFtZSBhcmd1bWVudAoJICB3aXRoIGdfaW50ZXJuX3N0cmluZygpLgoJICBTaGF2ZXMgb2ZmIDElIGZyb20gcmVnaXN0cnkgbG9hZGluZy4KCjIwMDktMTEtMDQgMTk6MzM6NTggKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGltcGxlbWVudCBidWZmZXJpbmctbGVmdCBhcmd1bWVudCB0byBidWZmZXIgbWVzc2FnZXMKCSAgVXNpbmcgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbCBvZiB0aGUgcXVldWUsIGFuZCB0aGUgYXZlcmFnZSBpbnB1dAoJICByYXRlLCB3ZSBjYW4gZGV0ZXJtaW5lIGhvdyBsb25nIGl0IHdpbGwgdGFrZSB0byBmaW5pc2ggZG93bmxvYWRpbmcKCSAgdGhlIHdob2xlIHN0cmVhbSB0byB0aGUgdGVtcG9yYXJ5IGZpbGUuCgkgIEZpeGVzICM2MDA3MjYKCjIwMDktMTEtMDUgMTU6MTM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTEtMDUgMTQ6MDI6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBsb2NraW5nCgoyMDA5LTExLTA1IDE0OjI5OjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGRvbid0IHJlbGVhc2UgbXV0ZXggdHdpY2UKCjIwMDktMTEtMDUgMTQ6Mjk6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc2tpcCB0eXBlIGNoZWNrIGluIGludGVybmFsIGFwaQoKMjAwOS0xMS0wNSAxMjozNjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbmRlbnRhdGlvbiBmaXgKCjIwMDktMTEtMDUgMTI6NTQ6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVuYW1lIG5ldyBhcGkgZnJvbSBfcmVmZWQgdG8gX3JlZmZlZC4KCSAgRHVlIHRvIHBvcHVsYXIgZGVtYW5kIHJlbmFtZSB0aGUgbmV3IGFwaSBhcyB3ZSBzdGlsbCBjYW4uCgkgIEFQSTogZ3N0X3BhZF9nZXRfY2Fwc19yZWZmZWQoKSwgZ3N0X3BhZF9wZWVyX2dldF9jYXBzX3JlZmZlZCgpCgoyMDA5LTExLTA0IDIyOjQyOjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBhY2Nlc3MgcGFkdGVtcGxhdGUgbGlzdCBkaXJlY3RseSB0byBhdm9pZCBjYWxsIGFuZCB0eXBlIGNoZWNrLgoKMjAwOS0xMS0wNCAxODo1ODoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBhIEZJWE1FIDAuMTEgZm9yIGhhdmluZyBmbHVzaCBldmVudHMgdGhhdCBkb24ndCByZXNldCBydW5uaW5nIHRpbWUKCjIwMDktMTEtMDQgMTc6NTI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGEgcHJpbnRmIGNvbXBpbGUgd2FybmluZyBvbiA2NC1iaXQgcGxhdGZvcm1zCgoyMDA5LTExLTA0IDE3OjE1OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogTWFrZSBzdXJlIHRoYXQgbm9ib2R5IHNldHMgdGhlIHByb3h5cGFkIG9yIGdob3N0cGFkIGl0c2VsZiBhcyB0YXJnZXQKCSAgRG9pbmcgdGhpcyB3aWxsIGxlYWQgdG8gdmVyeSBpbnRlcmVzdGluZyBjcmFzaGVzLCBsaWtlIHN0YWNrIG92ZXJmbG93cy4KCjIwMDktMTEtMDQgMTE6MzU6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHBsdWdpbiBsb2FkZXI6IERvbid0IGZhaWwgYWZ0ZXIgYSBzaG9ydCByZWFkL3dyaXRlCgkgIFRoZSBsb2dpYyB0byBoYW5kbGUgc2hvcnQgcmVhZHMvd3JpdGVzIHdhcyBpbmNvcnJlY3QsIGNhdXNpbmcgdGhlCgkgIHBhY2tldCBoYW5kbGVyIHRvIGF0dGVtcHQgdG8gaGFuZGxlIGluY29tcGxldGUgcGFja2V0cy4KCSAgR3JvdyB0aGUgcGFja2V0IHRyYW5zbWl0IGJ1ZmZlciBpbiBwcm9wb3J0aW9uIHRvIG9ic2VydmVkIHVzYWdlLAoJICBjYXVzaW5nIGZld2VyIHJlYWxsb2NzLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluIHRoZSByZWdpc3RyeSBjaHVua3MgY29kZS4KCjIwMDktMTEtMDQgMDE6NTE6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2luIGxvYWRlcjogRG9uJ3QgY3Jhc2ggb24gYm9ndXMgcGx1Z2luIGRldGFpbHMKCSAgV2hlbiBpbnZhbGlkIHJlZ2lzdHJ5IGNodW5rcyBhcmUgcmVjZWl2ZWQgZnJvbSB0aGUgY2hpbGQsIGFuZCBwYXJzaW5nCgkgIGZhaWxzLCBkb24ndCBhY2Nlc3MgYW4gaW52YWxpZCBwbHVnaW4gcG9pbnRlci4gSW5zdGVhZCBhdHRlbXB0IHRvCgkgIGZpZ3VyZSBvdXQgd2hpY2ggcGx1Z2luIGNhdXNlZCB0aGUgcHJvYmxlbSBhbmQgYmxhY2tsaXN0IGl0LgoKMjAwOS0xMS0wNCAwMTo1NDozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogVXNlIHRoZSBzYW1lIGxvZ2ljIHRvIGZpbmQgZ251aW5kZW50IGFzIHRoZSBnaXQgaG9vawoKMjAwOS0xMS0wMyAxNzozMDoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgYnVpbGQ6IGluY2x1ZGUgc3RkaW8uaCBmb3IgRklMRQoKMjAwOS0xMS0wMyAwMToxODo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGFkZCBhbm90aGVyIGV4YW1wbGUgdG8gdGhlIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCSAgQWRkIGFuIGV4YW1wbGUgdGhhdCBzaG93cyBob3cgdG8gcmVmZXIgdG8gc3BlY2lmaWMgcGFkcyBieSBuYW1lCgkgIHdoZW4gY29uc3RydWN0aW5nIGEgcGlwZWxpbmUgc3RyaW5nLiBGaXhlcyAjNjAwMzgyLgoKMjAwOS0xMS0wMiAwODo0ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZ3N0dHlwZWZpbmQ6IGF2b2lkIG9uZSBtb3JlIHJ1bi10aW1lIHR5cGUgY2hlY2sKCjIwMDktMTEtMDIgMDk6MjI6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFQSTogQWRkIGdzdF9zdHJ1Y3R1cmVfaWRfaGFzX2ZpZWxkeyxfdHlwZWR9CgoyMDA5LTExLTAyIDA4OjI4OjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGdzdHR5cGVmaW5kOiBVc2UgX0NBU1QgdmFyaWFudHMgd2hlbiB0aGUgdHlwZSBoYXMgYWxyZWR5IGJlZW4gY2hlY2tlZC4KCSAgVGhpcyBhdm9pZHMgY2hlY2tpbmcgdGhlIHR5cGUgbl90eXBlZmluZGVycyAqIDQgdGltZXMgd2hlbiBsb2FkaW5nIHRoZQoJICByZWdpc3RyeS4KCjIwMDktMTEtMDEgMTE6MjQ6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBJbXBsZW1lbnQgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcwoJICBUaGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkIG9mIHRoZSBnaG9zdCBwYWQgaXMgaXRzCgkgIHByb3h5IHBhZCwgd2hpY2ggaXMgdGhlIHBhZCB0aGF0IGlzIGxpbmtlZCB0byB0aGUgZ2hvc3QKCSAgcGFkcyB0YXJnZXQuCgoyMDA5LTEwLTMxIDE2OjU2OjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogTWFrZSBzdXJlIHRoYXQgc2lnbmFsIHVzZXIgZGF0YSBpcyBmcmVlZCBieSBzZXR0aW5nIGEgR0Nsb3N1cmVOb3RpZnkKCSAgLi4uaW5zdGVhZCBvZiB1c2luZyBhIHNlY29uZCBtZWNoYW5pc20gYW5kIHN0b3JpbmcgdGhlIHVzZXIgZGF0YQoJICBpbnNpZGUgdGhlIEdPYmplY3RzIHFkYXRhLgoKMjAwOS0xMC0zMSAxNjo0OTowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgdGhlIHN0cnVjdHMKCjIwMDktMTAtMzEgMTY6NDM6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBBbHdheXMgZ2V0IERlbGF5ZWRMaW5rIGluZm9ybWF0aW9uIGZyb20gdGhlIG9iamVjdHMgcWRhdGEKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgaXQgaXMgYWx3YXlzIHZhbGlkLgoKMjAwOS0xMC0zMSAwOTo0ODoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogcXVldWUyIGhhcyBtb3ZlZCB0byBjb3JlCgoyMDA5LTEwLTI5IDExOjQxOjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgcXVldWUyOiBBZGQgdG8gdGhlIGRvY3MKCjIwMDktMTAtMjkgMTE6Mzg6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgIlF1ZXVlIDIiIGFzIGxvbmcgbmFtZQoKMjAwOS0xMC0yOSAxMTozNTowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBHU1RfQk9JTEVSUExBVEVfRlVMTCgpIGFuZCBhZGQgcGFkIHRlbXBsYXRlcy9zZXQgZGV0YWlscyBpbiBiYXNlX2luaXQKCjIwMDktMTAtMjkgMTE6MzA6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkKCjIwMDktMTAtMjkgMTE6MzA6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEludGVncmF0ZSBpbnRvIGNvcmVwbHVnaW5zCgoyMDA5LTEwLTI5IDExOjIxOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogTW92ZSBzdHJ1Y3QgZGVjbGFyYXRpb25zIHRvIGEgc2VwYXJhdGUgaGVhZGVyCgoyMDA5LTEwLTI5IDExOjE4OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogTW92ZSBxdWV1ZTIgdG8gZ3N0cmVhbWVyIGNvcmVwbHVnaW5zCgkgIEZpeGVzIGJ1ZyAjNTk5OTk2LgoKMjAwOS0xMC0yOCAwMDo1OTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgc2l4dGVlbnRoIG9mIGEgcG9sYXIgYmVhci4KCjIwMDktMTAtMjcgMTU6MjM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uCgoyMDA5LTA4LTA2IDEyOjE4OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiBwYXVzaW5nIHRhc2sgaWYgc28gYXBwcm9wcmlhdGUKCSAgSWYgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBhbiBlcnJvciB3aGlsZSB1cHN0cmVhbSBoYXMgYWxyZWFkeQoJICBwdXQgYWxsIGRhdGEgaW50byBxdWV1ZTIgKGluY2x1ZGluZyBFT1MpLCB1cHN0cmVhbSB3aWxsIG5vIGxvbmdlcgoJICBjaGFpbiBpbnRvIHF1ZXVlMiwgc28gaXQgaXMgdXAgdG8gcXVldWUyIHRvIHBlcmZvcm0gc29tZQoJICBFT1MgaGFuZGxpbmcgLyBtZXNzYWdlIHBvc3RpbmcgaW4gc3VjaCBjYXNlcy4gIFNlZSAjNTg5OTkxLgoKMjAwOS0wNy0xNCAxNzowMzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbGVhayBhbmQgaW1wcm92ZSBidWZmZXJpbmcKCSAgS2VlcCB0cmFjayBvZiB0aGUgbWF4IHJlcXVlc3RlZCBwb3NpdGlvbiBhbmQgY29tcGFyZSB0aGlzIHRvIHRoZSB3cml0ZSBwb3NpdGlvbgoJICBpbiB0aGUgdGVtcCBmaWxlIHRvIGdldCB0aGUgY3VycmVudCBhbW91bnQgb2YgYnVmZmVyZWQgZGF0YS4KCSAgRml4IG1lbWxlYWsgb2YgYWxsIGluY29tbWluZyBidWZmZXJzLgoJICBGaXhlcyAjNTg4NTUxCgoyMDA5LTA3LTEwIDIxOjAxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZsdXNoIGRpZmZlcmVudGx5LCBhdm9pZGluZyBkZWFkbG9ja3MKCSAgRG9uJ3QgZmx1c2ggdGhlIGZpbGUgYnkgY2xvc2luZyBhbmQgb3BlbmluZyBpdCBidXQgaW5zdGVhZCB1c2UgZ19mcmVvcGVuLiBUaGlzCgkgIGF2b2lkcyBhIGRlYWRsb2NrIGluIHNodXRkb3duIGJlY2F1c2Ugd2UgZW1pdCB0aGUgdGVtcC1sb2NhdGlvbiBwcm9wZXJ0eSBjaGFuZ2UKCSAgd2l0aCB0aGUgd3JvbmcgbG9jayBoZWxkLgoKMjAwOS0wNy0xMCAxOTo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdGVtcC10ZW1wbGF0ZSBwcm9wZXJ0eQoJICBBZGQgYSBuZXcgdGVtcC10ZW1wbGF0ZSBwcm9wZXJ0eSBzbyB0aGF0IHF1ZXVlMiBjYW4gc2VjdXJlbHkgYWxsb2NhdGUgYQoJICB0ZW1wb3JhcnkgZmlsZW5hbWUuIERlcHJlY2F0ZSB0aGUgdGVtcC1sb2NhdGlvbiBwcm9wZXJ0eSBmb3Igc2V0dGluZyB0aGUKCSAgbG9jYXRpb24gYnV0IHN0aWxsIHVzZSBpdCB0byBub3RpZnkgdGhlIGFsbG9jYXRlZCB0ZW1wIGZpbGUuCgoyMDA5LTAzLTIwIDE0OjE3OjE5ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgd2luMzI6IGZpeCBzZWVraW5nIGluIGxhcmdlIGZpbGVzCgkgIEZpeCBTZWVraW5nIGluIGxhcmdlIGZpbGVzIGJ5IHVzaW5nIHRoZSA2NC1iaXQgc2VlayBmdW5jdGlvbnMuCgkgIEZpeGVzICM1NzYwMTkKCjIwMDgtMDgtMDcgMTU6NTg6NTggKzAwMDAgIEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXBsdWdpbi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9jZHBhcmFub2lhL2dzdGNkcGFyYW5vaWFzcmMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvb2dnL2dzdG9nZ2RlbXV4LmM6IChnc3Rfb2dnX2RlbXV4X3BsdWdpbl9pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc3JjLmM6IChfZG9faW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3BidXRpbHMvcGJ1dGlscy5jOiAoZ3N0X3BiX3V0aWxzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC90YWcvdGFncy5jOiAoZ3N0X3RhZ19yZWdpc3Rlcl90YWdzX2ludGVybmFsKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhY2suYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX3BsdWdpbl9pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bC5jOiAocGx1Z2luX2luaXQpOgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIKCSAgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoKMjAwOC0wNy0xMCAyMTowNjowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2xlYW51cCBQbHVnaW4gZG9jcy4gTGluayB0byBzaWduYWxzIGFuZCBwcm9wZXJ0aWVzLiBGaXggc3ViLXNlY3Rpb24gdGl0bGVzLiBEcm9wIG1lbnRpbmluZyB0aGF0IGFsbCBvdXIgZXhhbXBsZSBwaXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtb3ZlcnJpZGVzLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFkZGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxzYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvY29udmVydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcmF0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcmVzYW1wbGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3Rlc3RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZHBhcmFub2lhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVjb2RlYmluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmZtcGVnY29sb3JzcGFjZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdkcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdub21ldmZzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGlidmlzdWFsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb2dnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcGFuZ28ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbGF5YmFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1ZXVlMi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN1YnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGhlb3JhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdHlwZWZpbmRmdW5jdGlvbnMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11cmlkZWNvZGViaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvcmF0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvc2NhbGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3Rlc3RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12b2x1bWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12b3JiaXMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teHZpbWFnZXNpbmsueG1sOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FtaXhlci5jOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzaW5rLmM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNyYy5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc2luay5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3JjLmM6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zaW5rLmM6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zcmMuYzoKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzaW5rLmM6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc3JjLmM6CgkgICogZXh0L29nZy9nc3RvZ2dkZW11eC5jOgoJICAqIGV4dC9vZ2cvZ3N0b2dnbXV4LmM6CgkgICogZXh0L3BhbmdvL2dzdGNsb2Nrb3ZlcmxheS5jOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmM6CgkgICogZXh0L3BhbmdvL2dzdHRpbWVvdmVybGF5LmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWVuYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhcGFyc2UuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZW5jLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNwYXJzZS5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzdGFnLmM6CgkgICogZ3N0L2FkZGVyL2dzdGFkZGVyLmM6CgkgICogZ3N0L2F1ZGlvY29udmVydC9nc3RhdWRpb2NvbnZlcnQuYzoKCSAgKiBnc3QvYXVkaW9yZXNhbXBsZS9nc3RhdWRpb3Jlc2FtcGxlLmM6CgkgICogZ3N0L2F1ZGlvdGVzdHNyYy9nc3RhdWRpb3Rlc3RzcmMuYzoKCSAgKiBnc3QvZmZtcGVnY29sb3JzcGFjZS9nc3RmZm1wZWdjb2xvcnNwYWNlLmM6CgkgICogZ3N0L2dkcC9nc3RnZHBkZXBheS5jOgoJICAqIGdzdC9nZHAvZ3N0Z2RwcGF5LmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6CgkgICogZ3N0L3RjcC9nc3RtdWx0aWZkc2luay5jOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc2luay5jOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6CgkgICogZ3N0L3ZpZGVvc2NhbGUvZ3N0dmlkZW9zY2FsZS5jOgoJICAqIGdzdC92aWRlb3Rlc3RzcmMvZ3N0dmlkZW90ZXN0c3JjLmM6CgkgICogZ3N0L3ZvbHVtZS9nc3R2b2x1bWUuYzoKCSAgKiBzeXMveGltYWdlL3hpbWFnZXNpbmsuYzoKCSAgKiBzeXMveHZpbWFnZS94dmltYWdlc2luay5jOgoJICBDbGVhbnVwIFBsdWdpbiBkb2NzLiBMaW5rIHRvIHNpZ25hbHMgYW5kIHByb3BlcnRpZXMuIEZpeCBzdWItc2VjdGlvbgoJICB0aXRsZXMuIERyb3AgbWVudGluaW5nIHRoYXQgYWxsIG91ciBleGFtcGxlIHBpcGVsaW5lcyBhcmUgInNpbXBsZSIKCSAgcGlwZWxpbmVzLgoKMjAwOC0wNi0yNCAxNjoyMjo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBEbyBub3QgZG91YmxlIG5vdGlmeS4gUmVtb3ZlIHRoZSB1bnN1ZWQgcmV0dXJuIHZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIERvIG5vdCBkb3VibGUgbm90aWZ5LiBSZW1vdmUgdGhlIHVuc3VlZCByZXR1cm4gdmFsdWUuCgoyMDA4LTA0LTExIDAxOjI1OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2V5ZnJhbWUtZm9yY2UudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2V5ZnJhbWUtZm9yY2UudHh0OgoJICBGaXggdHlwby4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgU2V0IGJ1ZmZlcmluZyBtb2RlIGluIHRoZSBtZXNzYWdlcy4KCSAgU2V0IGJ1ZmZlcmluZyBwZXJjZW50IGluIHRoZSBxdWVyeS4KCSAgKiB0ZXN0cy9leGFtcGxlcy9zZWVrL3NlZWsuYzogKHVwZGF0ZV9maWxsKSwgKG1zZ19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGRvX3N0cmVhbV9idWZmZXJpbmcpLCAoZG9fZG93bmxvYWRfYnVmZmVyaW5nKSwgKG1zZ19idWZmZXJpbmcpOgoJICBEbyBzb21lIG1vcmUgZmFuY3kgdGhpbmdzIGJhc2VkIG9uIHRoZSBidWZmZXJpbmcgbWV0aG9kIGluIHVzZS4KCjIwMDgtMDQtMDkgMjE6NDA6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEluY2x1ZGUgZXh0cmEgYnVmZmVyaW5nIHN0YXRzIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfY2xvc2VfdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zcmNfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbik6CgkgIEluY2x1ZGUgZXh0cmEgYnVmZmVyaW5nIHN0YXRzIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZS4KCSAgSW1wbGVtZW50IEJVRkZFUklORyBxdWVyeS4KCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChkb19hc3luY19zdGFydCksCgkgIChkb19hc3luY19kb25lKSwgKHR5cGVfZm91bmQpLCAoc2V0dXBfc3RyZWFtaW5nKSwgKHNldHVwX3NvdXJjZSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2hhbmdlX3N0YXRlKToKCSAgT25seSBhZGQgZGVjb2RlYmluMiB3aGVuIHRoZSB0eXBlIGlzIGZvdW5kIGluIHN0cmVhbWluZyBtb2RlLgoJICBNYWtlIHVyaWRlY29kZWJpbiBhc3luYyB0byBQQVVTRUQgZXZlbiB3aGVuIHdlIGRvbid0IGhhdmUgZGVjb2RlYmluMgoJICBhZGRlZCB5ZXQuCgoyMDA4LTA0LTAyIDExOjA4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVcGRhdGUgdGhlIGVzdGltYXRlZCBpbnB1dCBkYXRhIHdoZW4gd2UgcHVzaCBvdXQgYSBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9vdXRfcmF0ZXMpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIFVwZGF0ZSB0aGUgZXN0aW1hdGVkIGlucHV0IGRhdGEgd2hlbiB3ZSBwdXNoIG91dCBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgZGVidWcgaW5mbyBhYm91dCB0aGUgdGVtcCBmaWxlLgoJICBPbmx5IGZvcndhcmQgc3JjIGV2ZW50cyB3aGVuIHdlIGFyZSBub3QgdXNpbmcgYSB0ZW1wIGZpbGUuCgkgIERvbid0IGJsb2NrIHRoZSBkdXJhdGlvbiBxdWVyeSwgd2UgbmVlZCB0byBmaW5kIHNvbWV0aGluZyBiZXR0ZXIuCgkgIERvbid0IGxlYWsgdGhlIHRlbXAgZmlsZW5hbWUuCgoyMDA4LTAzLTI0IDE0OjA4OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBUaGUgcXVldWUgaXMgbmV2ZXIgZmlsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIGF0IGFsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCk6CgkgIFRoZSBxdWV1ZSBpcyBuZXZlciBmaWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbiB0aGUgcXVldWUgYXQgYWxsLgoJICBGaXhlcyAjNTIzOTkzLgoKMjAwOC0wMy0yMiAxNTowMDo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4gVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhbWl4ZXJlbGVtZW50LmM6CgkgIChnc3RfYWxzYV9taXhlcl9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzaW5rLmM6IChnc3RfYWxzYXNpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNyYy5jOiAoZ3N0X2Fsc2FzcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2NkcGFyYW5vaWEvZ3N0Y2RwYXJhbm9pYXNyYy5jOgoJICAoZ3N0X2NkX3BhcmFub2lhX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3NpbmsuYzogKGdzdF9naW9fc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3NyYy5jOiAoZ3N0X2dpb19zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zaW5rLmM6IChnc3RfZ2lvX3N0cmVhbV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc3JjLmM6IChnc3RfZ2lvX3N0cmVhbV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc2luay5jOiAoZ3N0X2dub21lX3Zmc19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NyYy5jOiAoZ3N0X2dub21lX3Zmc19zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L29nZy9nc3RvZ2dtdXguYzogKGdzdF9vZ2dfbXV4X2NsYXNzX2luaXQpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9jbGFzc19pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dHJlbmRlci5jOiAoZ3N0X3RleHRfcmVuZGVyX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6IChnc3RfdGhlb3JhX2RlY19jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWVuYy5jOiAoZ3N0X3RoZW9yYV9lbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFwYXJzZS5jOiAoZ3N0X3RoZW9yYV9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2VuYy5jOiAoZ3N0X3ZvcmJpc19lbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGF1ZGlvZmlsdGVydGVtcGxhdGUuYzoKCSAgKGdzdF9hdWRpb19maWx0ZXJfdGVtcGxhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NpbmsuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NyYy5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9jZGRhL2dzdGNkZGFiYXNlc3JjLmM6CgkgIChnc3RfY2RkYV9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvaW50ZXJmYWNlcy9taXhlcnRyYWNrLmM6CgkgIChnc3RfbWl4ZXJfdHJhY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RiYXNlcnRwZGVwYXlsb2FkLmM6CgkgIChnc3RfYmFzZV9ydHBfZGVwYXlsb2FkX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0YmFzZXJ0cHBheWxvYWQuYzoKCSAgKGdzdF9iYXNlcnRwcGF5bG9hZF9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9jb252ZXJ0L2dzdGF1ZGlvY29udmVydC5jOgoJICAoZ3N0X2F1ZGlvX2NvbnZlcnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvcmF0ZS9nc3RhdWRpb3JhdGUuYzogKGdzdF9hdWRpb19yYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKGdzdF9hdWRpb3Jlc2FtcGxlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3Rlc3RzcmMvZ3N0YXVkaW90ZXN0c3JjLmM6CgkgIChnc3RfYXVkaW9fdGVzdF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dkcC9nc3RnZHBwYXkuYzogKGdzdF9nZHBfcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogKGdzdF9wbGF5X2Jhc2VfYmluX2NsYXNzX2luaXQpLAoJICAocHJlcm9sbF91bmxpbmtlZCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYzogKGdzdF9wbGF5X3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1pbmZvLmM6IChnc3Rfc3RyZWFtX2luZm9fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N0cmVhbV9zZWxlY3Rvcl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3N1YnBhcnNlL2dzdHN1YnBhcnNlLmM6IChnc3Rfc3ViX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0bXVsdGlmZHNpbmsuYzogKGdzdF9tdWx0aV9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwY2xpZW50c2luay5jOiAoZ3N0X3RjcF9jbGllbnRfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcGNsaWVudHNyYy5jOiAoZ3N0X3RjcF9jbGllbnRfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc2luay5jOiAoZ3N0X3RjcF9zZXJ2ZXJfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcHNlcnZlcnNyYy5jOiAoZ3N0X3RjcF9zZXJ2ZXJfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6IChnc3RfdmlkZW9fcmF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW9zY2FsZS9nc3R2aWRlb3NjYWxlLmM6IChnc3RfdmlkZW9fc2NhbGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvdGVzdHNyYy9nc3R2aWRlb3Rlc3RzcmMuYzoKCSAgKGdzdF92aWRlb190ZXN0X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3Qvdm9sdW1lL2dzdHZvbHVtZS5jOiAoZ3N0X3ZvbHVtZV9jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bGVsZW1lbnQuYzogKGdzdF92NGxlbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsbWpwZWdzaW5rLmM6IChnc3RfdjRsbWpwZWdzaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsbWpwZWdzcmMuYzogKGdzdF92NGxtanBlZ3NyY19jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bHNyYy5jOiAoZ3N0X3Y0bHNyY19jbGFzc19pbml0KToKCSAgKiBzeXMveGltYWdlL3hpbWFnZXNpbmsuYzogKGdzdF94aW1hZ2VzaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy94dmltYWdlL3h2aW1hZ2VzaW5rLmM6IChnc3RfeHZpbWFnZXNpbmtfY2xhc3NfaW5pdCk6CgkgIFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlCgkgIHN0YXRpYyBzdHJpbmdzIChpLmUuIGFsbCkuIFRoaXMgZ2l2ZXMgdXMgbGVzcyBtZW1vcnkgdXNhZ2UsCgkgIGZld2VyIGFsbG9jYXRpb25zIGFuZCB0aHVzIGxlc3MgbWVtb3J5IGRlZnJhZ21lbnRhdGlvbi4gRGVwZW5kCgkgIG9uIGNvcmUgQ1ZTIGZvciB0aGlzLiBGaXhlcyBidWcgIzUyMzgwNi4KCjIwMDctMTItMTQgMTg6NDY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVzZSBzZXBhcmF0ZSB0aW1lcnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgcmF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChyZXNldF9yYXRlX3RpbWVyKSwgKHVwZGF0ZV9pbl9yYXRlcyksICh1cGRhdGVfb3V0X3JhdGVzKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgVXNlIHNlcGFyYXRlIHRpbWVycyBmb3IgaW5wdXQgYW5kIG91dHB1dCByYXRlcy4KCSAgUGF1c2UgbWVhc3VyaW5nIHRoZSBvdXRwdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGZvciBtb3JlIGRhdGEuCgkgIFNlZSAjNTAzMjYyLgoKMjAwNy0xMi0xNCAwOToyNDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogUGF1c2UgdGhlIHRpbWVyIHRvIG1lYXN1cmUgdGhlIGlucHV0IHJhdGUgd2hlbiB3ZSBibG9jayBiZWNhdXNlIHRoZSBxdWV1ZSBpcyBmaWxsZWQuIFNlZSAjNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBQYXVzZSB0aGUgdGltZXIgdG8gbWVhc3VyZSB0aGUgaW5wdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGJlY2F1c2UgdGhlCgkgIHF1ZXVlIGlzIGZpbGxlZC4gU2VlICM1MDMyNjIuCgoyMDA3LTExLTMwIDE3OjQ3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogUmVmYWN0b3Igc29tZSBjb21tb24gY29kZSB0byBmaWx0ZXIgZmFjdG9yaWVzIGFuZCBjaGVjayBjYXBzIGNvbXBhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RmYWN0b3J5bGlzdHMuYzogKGNvbXBhcmVfcmFua3MpLCAocHJpbnRfZmVhdHVyZSksCgkgIChnZXRfZmVhdHVyZV9hcnJheSksIChkZWNvZGVyc19maWx0ZXIpLCAoc2lua3NfZmlsdGVyKSwKCSAgKGdzdF9mYWN0b3J5X2xpc3RfZ2V0X2RlY29kZXJzKSwgKGdzdF9mYWN0b3J5X2xpc3RfZ2V0X3NpbmtzKSwKCSAgKGdzdF9mYWN0b3J5X2xpc3RfZmlsdGVyKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZmFjdG9yeWxpc3RzLmg6CgkgIFJlZmFjdG9yIHNvbWUgY29tbW9uIGNvZGUgdG8gZmlsdGVyIGZhY3RvcmllcyBhbmQgY2hlY2sgY2FwcyBjb21wYXQuCgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWNvZGVfYmluX2luaXQpLCAoZ3N0X2RlY29kZV9iaW5fZGlzcG9zZSksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19jb250aW51ZSksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19mYWN0b3JpZXMpLAoJICAoZ3N0X2RlY29kZV9iaW5fYXV0b3BsdWdfc2VsZWN0KSwgKGFuYWx5emVfbmV3X3BhZCksCgkgIChmaW5kX2NvbXBhdGlibGVzKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BsYXlfYmluX2luaXQpLCAoZ3N0X3BsYXlfYmluX2ZpbmFsaXplKSwKCSAgKGF1dG9wbHVnX2ZhY3Rvcmllc19jYiksIChhY3RpdmF0ZV9ncm91cCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKHByb3h5X3Vua25vd25fdHlwZV9zaWduYWwpLAoJICAocHJveHlfYXV0b3BsdWdfY29udGludWVfc2lnbmFsKSwKCSAgKHByb3h5X2F1dG9wbHVnX2ZhY3Rvcmllc19zaWduYWwpLCAocHJveHlfYXV0b3BsdWdfc2VsZWN0X3NpZ25hbCksCgkgIChwcm94eV9kcmFpbmVkX3NpZ25hbCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyBhbmQgdXNlIGZhY3RvciBmaWx0ZXJpbmcgY29kZS4KCjIwMDctMTEtMTYgMTU6NDQ6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBBZGQgcGxheWJpbjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhY2suYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svdGVzdDcuYzogKHVwZGF0ZV9zY2FsZSksICh3YXJuaW5nX2NiKSwgKGVycm9yX2NiKSwKCSAgKGVvc19jYiksIChhYm91dF90b19maW5pc2hfY2IpLCAobWFpbik6CgkgIEFkZCBwbGF5YmluMi4KCSAgQWRkZWQgZ2FwbGVzcyBwbGF5YmFjayBleGFtcGxlLgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5oOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6IChnc3RfcGxheV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svdGVzdC5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwKCSAgKHBhZF9yZW1vdmVkX2NiKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtaW5mby5oOgoJICBDaGFuZ2UgZW1haWwuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fZ2V0X3R5cGUpLAoJICAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpLCAoaW5pdF9ncm91cCksIChnc3RfcGxheV9iaW5faW5pdCksCgkgIChnc3RfcGxheV9iaW5fZGlzcG9zZSksIChnc3RfcGxheV9iaW5fc2V0X3VyaSksCgkgIChnc3RfcGxheV9iaW5fc2V0X3N1YnVyaSksIChnc3RfcGxheV9iaW5fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9wbGF5X2Jpbl9nZXRfcHJvcGVydHkpLCAoZ3N0X3BsYXlfYmluX2hhbmRsZV9tZXNzYWdlKSwKCSAgKHBhZF9hZGRlZF9jYiksIChwYWRfcmVtb3ZlZF9jYiksIChub19tb3JlX3BhZHNfY2IpLCAocGVyZm9ybV9lb3MpLAoJICAoZHJhaW5lZF9jYiksICh1bmxpbmtfZ3JvdXApLCAoYWN0aXZhdGVfZ3JvdXApLAoJICAoc2V0dXBfbmV4dF9zb3VyY2UpLCAoZ3N0X3BsYXlfYmluX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGxheV9iaW4yX3BsdWdpbl9pbml0KToKCSAgQWRkZWQgcmF3IGZpcnN0IHZlcnNpb24gb2YgcGxheWJpbjIuIERvZXMgY2hhaW5lZCBvZ2dzIGFuZCBnYXBsZXNzCgkgIHBsYXliYWNrIGZpbmUuIE5vIHN1cHBvcnQgZm9yIHJhdyBzaW5rcyB5ZXQuIE5vIHZpc3VhbGlzYXRpb25zIG9yCgkgIHN1YnRpdGxlcyB5ZXQuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmM6IChnc3RfcGxheV9zaW5rX2dldF90eXBlKSwKCSAgKGdzdF9wbGF5X3NpbmtfY2xhc3NfaW5pdCksIChnc3RfcGxheV9zaW5rX2luaXQpLAoJICAoZ3N0X3BsYXlfc2lua19kaXNwb3NlKSwgKGdzdF9wbGF5X3NpbmtfdmlzX3VuYmxvY2tlZCksCgkgIChnc3RfcGxheV9zaW5rX3Zpc19ibG9ja2VkKSwgKGdzdF9wbGF5X3Npbmtfc2V0X3ZpZGVvX3NpbmspLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfYXVkaW9fc2luayksIChnc3RfcGxheV9zaW5rX3NldF92aXNfcGx1Z2luKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9wbGF5X3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKHBvc3RfbWlzc2luZ19lbGVtZW50X21lc3NhZ2UpLCAoZnJlZV9jaGFpbiksIChhZGRfY2hhaW4pLAoJICAoYWN0aXZhdGVfY2hhaW4pLCAoZ2VuX3ZpZGVvX2NoYWluKSwgKGdlbl90ZXh0X2VsZW1lbnQpLAoJICAoZ2VuX2F1ZGlvX2NoYWluKSwgKGdlbl92aXNfZWxlbWVudCksIChnc3RfcGxheV9zaW5rX2dldF9tb2RlKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X21vZGUpLCAoZ3N0X3BsYXlfc2lua19yZXF1ZXN0X3BhZCksCgkgIChnc3RfcGxheV9zaW5rX3JlbGVhc2VfcGFkKSwgKGdzdF9wbGF5X3Npbmtfc2VuZF9ldmVudF90b19zaW5rKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2VuZF9ldmVudCksIChnc3RfcGxheV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmg6CgkgIEFkZGVkIEVsZW1lbnQgdGhhdCBhYnN0cmFjdHMgdGhlIHNpbmtzIGFuZCB0aGVpciBwaXBlbGluZXMgZm9yIHBsYXliaW4yLgoKMjAwNy0xMC0xNSAxMTozODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBTZWUgIzQ4Njc1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBTZWUgIzQ4Njc1OC4KCjIwMDctMDktMjEgMTQ6Mzc6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxhdGlvbiB3cnQgcHJpbnRmIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IGNvbXBpbGF0aW9uIHdydCBwcmludGYgYXJndW1lbnRzLgoKMjAwNy0wOS0xNyAxNzoyNDo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggYSBidW5jaCBvZiBjb21waWxlIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9pbml0KSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfc2V0X3Byb3BlcnR5KToKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2RlYy5jOiAodm9yYmlzX2hhbmRsZV9kYXRhX3BhY2tldCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NpbmsuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NpbmtfcmVuZGVyKToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdHJ0Y3BidWZmZXIuYzogKGdzdF9ydGNwX250cF90b191bml4KSwKCSAgKGdzdF9ydGNwX3VuaXhfdG9fbnRwKToKCSAgKiBnc3QtbGlicy9nc3QvcnRzcC9nc3RydHNwbWVzc2FnZS5jOiAoZ3N0X3J0c3BfbWVzc2FnZV9nZXRfdHlwZSk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL3NlZWsvc2Vlay5jOiAoc2V0X3NjYWxlKToKCSAgRml4IGEgYnVuY2ggb2YgY29tcGlsZSB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICAqIGdzdC9hdWRpb3JhdGUvZ3N0YXVkaW9yYXRlLmM6CgkgIEFsd2F5cyBwdWxsIGluIGNvbmZpZy5oIGJlZm9yZSBpbmNsdWRpbmcgYW55IHN5c3RlbSBoZWFkZXJzLgoKMjAwNy0wOS0xNyAxNjoyMjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWxzbyBmaXggIzQ3NjUxNCBmb3IgcXVldWUyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIEFsc28gZml4ICM0NzY1MTQgZm9yIHF1ZXVlMi4KCjIwMDctMDgtMTAgMTA6MDg6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBQcmludGYgZm9ybWF0IGZpeGVzICgjNDY1MDI4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6CgkgIFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0NjUwMjgpLgoKMjAwNy0wNi0yOCAxMTowNjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXNlIG90aGVyIG1ldHJpY3MgYXMgd2VsbCB3aGVuIGVzdGltYXRpbmcgdGhlIGJ1ZmZlciBsZXZlbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoYXBwbHlfc2VnbWVudCksICh1cGRhdGVfYnVmZmVyaW5nKToKCSAgVXNlIG90aGVyIG1ldHJpY3MgYXMgd2VsbCB3aGVuIGVzdGltYXRpbmcgdGhlIGJ1ZmZlciBsZXZlbC4KCjIwMDctMDYtMjggMTA6MjE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogU21hbGwgZGVidWcgaW1wcm92ZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiAobWFrZV9kZWNvZGVyKSwgKHNldHVwX3NvdXJjZSk6CgkgIFNtYWxsIGRlYnVnIGltcHJvdmVtZW50LgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGFwcGx5X3NlZ21lbnQpLCAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChwbHVnaW5faW5pdCk6CgkgIFR3ZWFrIHRoZSByYXRlIGVzdGltYXRpb24gcGVyaW9kLgoJICBXaGVuIGNhbGN1bGF0aW5nIHRoZSBidWZmZXIgZmlsbGVkbmVzcyBpbiByYXRlIGVzdGltYXRpb24gbW9kZSwgZG9uJ3QKCSAgbWl4IGl0IHdpdGggb3RoZXIgbWV0cmljcy4KCjIwMDctMDYtMTYgMDM6NDI6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsZSBlcnJvciBmcm9tIGlnbm9yZWQgcmV0dXJuIHZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIEZpeCBjb21waWxlIGVycm9yIGZyb20gaWdub3JlZCByZXR1cm4gdmFsdWUuCgoyMDA3LTA2LTEzIDE4OjIwOjU3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggYnVpbGQgb24gTWFjT1NYLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY3JlYXRlX3JlYWQpOgoJICBGaXggYnVpbGQgb24gTWFjT1NYLgoKMjAwNy0wNi0xMiAwODozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGEgZGl2aXNpb24gYnkgemVybyB3aGVuIHRoZSBtYXggcGVyY2VudCBpcyA8PSAwLiBGaXhlcyAjNDQ2NTcyLiBhbHNvIHVwZGF0ZSB0aGUgYnVmZmVyaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2hlcyBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKToKCSAgRml4IGEgZGl2aXNpb24gYnkgemVybyB3aGVuIHRoZSBtYXggcGVyY2VudCBpcyA8PSAwLiBGaXhlcyAjNDQ2NTcyLgoJICBhbHNvIHVwZGF0ZSB0aGUgYnVmZmVyaW5nIHN0YXR1cyB3aGVuIHJlY2VpdmluZyBldmVudHMuIEZpeGVzICM0NDY1NTEuCgoyMDA3LTA2LTExIDExOjMyOjI2ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogV2FpdCBmb3IgcHJlcm9sbCBiZWZvcmUgYXR0ZW1wdGluZyB0byBmb3J3YXJkIGEgZHVyYXRpb24gcXVlcnkgdXBzdHJlYW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9wZWVyX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgV2FpdCBmb3IgcHJlcm9sbCBiZWZvcmUgYXR0ZW1wdGluZyB0byBmb3J3YXJkIGEgZHVyYXRpb24gcXVlcnkgdXBzdHJlYW0uCgkgIEZpeGVzICM0NDU1MDUuCgoyMDA3LTA2LTA3IDA5OjExOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9nZXRfcmFuZ2UpOgoJICBGaXggY29tcGlsYXRpb24uCgoyMDA3LTA2LTA2IDEzOjM2OjI2ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWRkIHB1bGwgYmFzZWQgc2NoZWR1bGluZyBhbmQgZml4IHNvbWUgZGVhZGxvY2tzLiBGaXhlcyAjNDQ0NTIzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9nZXRfcmFuZ2UpLCAoZ3N0X3F1ZXVlX3NyY19jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIEFkZCBwdWxsIGJhc2VkIHNjaGVkdWxpbmcgYW5kIGZpeCBzb21lIGRlYWRsb2Nrcy4gRml4ZXMgIzQ0NDUyMy4KCSAgRG9lcyBub3QgeWV0IGNvbXBsZXRlbHkgd29yayBiZWNhdXNlIGR1cmF0aW9uIHF1ZXJpZXMgdXBzdHJlYW0gd29uJ3QKCSAgYmxvY2sgeWV0LgoKMjAwNy0wNi0wNiAwOTowODo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgbW9yZSBmc2Vla28gY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKToKCSAgU29tZSBtb3JlIGZzZWVrbyBjaGVja3MuCgoyMDA3LTA2LTA1IDE3OjAyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBJbmNsdWRlIHN0ZGlvIHRvIGRlZmluZSBmc2Vla28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9oYXZlX2RhdGEpLAoJICAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKSwgKGdzdF9xdWV1ZV9yZWFkX2l0ZW1fZnJvbV9maWxlKSwKCSAgKGdzdF9xdWV1ZV9vcGVuX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpOgoJICBJbmNsdWRlIHN0ZGlvIHRvIGRlZmluZSBmc2Vla28uCgoyMDA3LTA2LTA1IDE2OjE0OjIzICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWRkIHN1cHBvcnQgZm9yIGZpbGViYXNlZCBidWZmZXJpbmcuIEZpeGVzICM0NDEyNjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfcXVldWVfd3JpdGVfYnVmZmVyX3RvX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhdmVfZGF0YSksCgkgIChnc3RfcXVldWVfY3JlYXRlX3JlYWQpLCAoZ3N0X3F1ZXVlX3JlYWRfaXRlbV9mcm9tX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9pc19lbXB0eSksIChnc3RfcXVldWVfaXNfZmlsbGVkKSwKCSAgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3F1ZXVlX3NldF90ZW1wX2xvY2F0aW9uKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBBZGQgc3VwcG9ydCBmb3IgZmlsZWJhc2VkIGJ1ZmZlcmluZy4gRml4ZXMgIzQ0MTI2NC4KCjIwMDctMDUtMTcgMTU6MjI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFR3ZWFrIHRoZSBidWZmZXJpbmcgdGhyZXNob2xkcyBhIGxpdHRsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX3JhdGVzKToKCSAgVHdlYWsgdGhlIGJ1ZmZlcmluZyB0aHJlc2hvbGRzIGEgbGl0dGxlLgoJICBVcGRhdGUgdGhlIGJ1ZmZlciBzaXplIHdpdGggdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlIHJhdGUgaW5zdGVhZCBvZgoJICBvbmx5IHdoZW4gd2UgY2FsY3VsYXRlIGEgbmV3IHJhdGUgc28gdGhhdCB3ZSBnZXQgc21vb3RoZXIgYnVmZmVyaW5nCgkgIHVwZGF0ZXMuCgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9iYXNlX2luaXQpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX2luaXQpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2ZpbmFsaXplKSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2dldF9wcm9wZXJ0eSksICh1bmtub3duX3R5cGUpLAoJICAoYWRkX2VsZW1lbnRfc3RyZWFtKSwgKG5vX21vcmVfcGFkc19mdWxsKSwgKG5vX21vcmVfcGFkcyksCgkgIChzb3VyY2Vfbm9fbW9yZV9wYWRzKSwgKG5ld19kZWNvZGVkX3BhZCksIChhcnJheV9oYXNfdmFsdWUpLAoJICAoZ2VuX3NvdXJjZV9lbGVtZW50KSwgKGhhc19hbGxfcmF3X2NhcHMpLCAoYW5hbHlzZV9zb3VyY2UpLAoJICAocmVtb3ZlX2RlY29kZXJzKSwgKG1ha2VfZGVjb2RlciksIChyZW1vdmVfc291cmNlKSwKCSAgKHNvdXJjZV9uZXdfcGFkKSwgKHNldHVwX3NvdXJjZSksIChkZWNvZGVyX3F1ZXJ5X2luaXQpLAoJICAoZGVjb2Rlcl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwgKGRlY29kZXJfcXVlcnlfZHVyYXRpb25fZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X3Bvc2l0aW9uX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9wb3NpdGlvbl9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfbGF0ZW5jeV9mb2xkKSwgKGRlY29kZXJfcXVlcnlfbGF0ZW5jeV9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfc2Vla2luZ19mb2xkKSwgKGRlY29kZXJfcXVlcnlfc2Vla2luZ19kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfZ2VuZXJpY19mb2xkKSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9xdWVyeSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2hhbmdlX3N0YXRlKSwgKHBsdWdpbl9pbml0KToKCSAgTmV3IGVsZW1lbnQgdGhhdCBpbnRlcmdyYXRlcyBhIHNvdXJjZSwgb3B0aW9uYWwgYnVmZmVyaW5nIGVsZW1lbnQgYW5kCgkgIGRlY29kZWJpbi4KCjIwMDctMDUtMTcgMTM6MzY6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IGZpeCBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksICh1cGRhdGVfdGltZV9sZXZlbCksCgkgIChhcHBseV9zZWdtZW50KSwgKGFwcGx5X2J1ZmZlciksICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKHJlc2V0X3JhdGVfdGltZXIpLCAodXBkYXRlX3JhdGVzKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgZml4IGJ1aWxkLgoKMjAwNy0wNS0xNyAxMTo1Nzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IE9uIG91ciB3YXkgdG8gcGxheWJpbjIgdGhpcyBpcyB0aGUgbmV3IG5ldHdvcmsgcXVldWUgdGhhdCBkb2VzIGJ1ZmZlcmluZyBhbGwgYnkgaXRzZWxmIHVzaW5nIGhpZ2ggYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfcXVldWVfZ2V0Y2FwcyksIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAodXBkYXRlX2J1ZmZlcmluZyksIChyZXNldF9yYXRlX3RpbWVyKSwKCSAgKHVwZGF0ZV9yYXRlcyksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9pc19lbXB0eSksCgkgIChnc3RfcXVldWVfaXNfZmlsbGVkKSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpLCAocGx1Z2luX2luaXQpOgoJICBPbiBvdXIgd2F5IHRvIHBsYXliaW4yIHRoaXMgaXMgdGhlIG5ldyBuZXR3b3JrIHF1ZXVlIHRoYXQgZG9lcyBidWZmZXJpbmcKCSAgYWxsIGJ5IGl0c2VsZiB1c2luZyBoaWdoIGFuZCBsb3cgd2F0ZXJtYXJrcy4gSXQgY2FuIGFsc28gbWVhc3VyZSB1cCBhbmQKCSAgZG93bnN0cmVhbSBiYW5kd2lkdGggdG8gb3B0aW1hbGx5IHNpemUgdGhlIHF1ZXVlLgoKMjAwOS0xMC0yOCAyMjowMzo0NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogRml4IG1lbWxlYWsgb2YgdW51c2VkIGRlbGF5ZWQgbGlua3MKCSAgQXR0YWNoIHRoZSBEZWxheWVkTGluayBzdHJ1Y3R1cmUgdG8gdGhlIGVsZW1lbnQsIHNvIHRoYXQgd2hlbgoJICB0aGUgZWxlbWVudCBpcyBkaXNwb3NlZCwgdGhlIERlbGF5ZWRMaW5rIGlzIGZyZWVkLgoKMjAwOS0wOS0wOSAxNTozNzoxMSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2UgX2ZpeGF0ZV9jYXBzKCkgYWxzbyB0cnVuY2F0ZSB3aGVuIG5lZWRlZAoJICBUaGUgZGVmYXVsdCBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgcHJldmlvdXNseSB3b3VsZCBvbmx5IGZpeGF0ZSBlYWNoIGluZGl2aWR1YWwKCSAgc3RydWN0LiBJbiBjYXNlIHRoZXJlIGFyZSBtdWx0aXBsZSBzdHJ1Y3RzLCB0aGUgcmVzdWx0aW5nIGNhcHMgd291bGQgc3RpbGwgbm90CgkgIGJlIGZpeGVkLiBJbiB0aGUgc3Bpcml0IG9mIGhvdyBpbmRpdmlkdWFsIHN0cnVjdHMgYXJlIGZpeGF0ZWQsIHRoaXMgcGF0Y2gKCSAgY2hhbmdlcyBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgdG8gcmVtb3ZlIGFsbCBidXQgdGhlIGZpcnN0IHN0cnVjdC4KCSAgRml4ZXMgIzU5NTg4NgoKMjAwOS0wOS0yMSAxMTo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGZpeCBkb2NzCgoyMDA5LTEwLTI4IDA5OjI2OjMyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIG9wdGltaXNhdGlvbiA6IFVzZSBnX29iamVjdF9uZXd2IHdoZXJlIHBvc3NpYmxlLgoJICBUaGlzIGF2b2lkczoKCSAgKiB0cmlwbGUtY2hlY2tpbmcgZm9yIHRoZSBHVHlwZSB3aGVuIHR5cGUtY2hlY2tpbmcgaXMgZW5hYmxlZCAoc2VlICM1OTcyNjApCgkgICogQXZvaWRzIGdvaW5nIHRocm91Z2ggYW4gZXhwZW5zaXZlIG5vLWFyZ3VtZW50IGNoZWNraW5nIHdoaWNoIGxhbmRlZCBpbgoJICBnbGliLTIuMjIKCSAgKiBBdm9pZHMgZ29pbmcgdGhyb3VnaCAyIGV4dHJhYyBmdW5jdGlvbnMgKGdfb2JqZWN0X25ldyAtPiBnX29iamVjdF9uZXdfdmFsaXN0KQoKMjAwOS0xMC0yOCAxMDoxNToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogaW5jbHVkZSBhbm5vdGF0aW9uIGdsb3NzYXJ5IHRvIGhhdmUgd29ya2luZyBsaW5rcy4KCjIwMDktMTAtMjggMTA6MTQ6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgYW5ub3RhdGlvbnM6IGFkZCBhbm5vdGF0aW9ucyB0byBnc3RfaW5pdF9jaGVjayB0b28KCjIwMDktMTAtMjggMDk6NTg6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZG9jczogdGVsbCBtb3JlIGFib3V0IHdoYXQgaGFwcGVucyBpbiBnc3RfaW5pdC4KCSAgQWRkIGxpbmtzIHRvIGdzdF91cGRhdGVfcmVnaXN0cnkgYW5kIHRoZSBlbnYtdmFycy4KCjIwMDktMTAtMjggMDk6MjE6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBPR0kgYW5kIHJlcGhyYXNlIHNlY3Rpb25zIGRvY3MKCSAgVGhlIE9HSSBsaW5rcyBhcmUgZGVhZCwgc28gcmVtb3ZlIHRoZW0uIEFsc28gcmVtb3ZlIHRoZSBwYXJhZ3JhcGggdGhhdCBwb2ludGVkCgkgIHRvIE9HSSBhbmQgRFMuIE9ubHkgbWVudGlvbmluZyBEUyB0aGVyZSBtYWRlIGl0IGEgYnV0IHBvaW50bGVzcy4gQWRkIGEgZ2VuZXJpYwoJICBwYXJhZ3JhcGggaW5zdGVhZCB0aGF0IHRlbGxzIGEgYml0IGFib3V0IHRoZSB1c2VjYXNlcyBnc3RyZWFtZXIgY292ZXJzLgoKMjAwOS0xMC0yOCAwMDoyOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgdGVudGggb2YgYSBwb2xhciBiZWFyLgoKMjAwOS0xMC0yOCAwMDowNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogc3ByaW5rbGUgc29tZSBHU1RfREVCVUdfRlVOQ1BUUgoKMjAwOS0xMC0yNyAxNTo0NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRlc2lnbjogYWRkIHNvbWUgaWRlYXMgZm9yIFNLSVAgbW9kZSB0cmlja21vZGVzCgoyMDA5LTEwLTIzIDEwOjIwOjAyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGJ1ZmZlcmluZyBpcyBpbXBsZW1lbnRlZCBub3cKCjIwMDktMTAtMjIgMjE6MjQ6MjQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IG1ha2Ugc3VyZSBwZXJjZW50IGluY3JlYXNlcwoJICBLZWVwIHRyYWNrIG9mIHRoZSBsYXN0IHBvc3RlZCBwZXJjZW50IG1lc3NhZ2UgYW5kIG1ha2Ugc3VyZSB0aGUgbmV4dCBwZXJjZW50CgkgIG1lc3NhZ2VzIGFyZSBzdHJpY3RseSBpbmNyZWFzaW5nLgoKMjAwOS0xMC0yMiAxNjozODoxMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiByZWZhY3RvciBidWZmZXJpbmcgY29kZQoJICBNb3ZlIHRoZSBidWZmZXJpbmcgdXBkYXRlIGNvZGUgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBjYWxsIGl0CgkgIHdoZW4gdGhlIGJ1ZmZlcmluZyBzdGF0ZSBjaGFuZ2VzIGR1ZSB0byBFT1MuCgkgIEF2b2lkIGRpdmlkaW5nIGJ5IDAuCgoyMDA5LTEwLTIyIDE0OjA5OjAxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBhZGQgYnVmZmVyaW5nIHN1cHBvcnQKCSAgQWRkIHN1cHBvcnQgZm9yIGJ1ZmZlcmluZyBtb2RlIHdoZXJlIHdlIHBvc3QgQlVGRkVSSU5HIG1lc3NhZ2VzIGJhc2VkIG9uIHRoZQoJICBsZXZlbCBvZiB0aGUgcXVldWVzLiBJdCBjdXJyZW50bHkgb3BlcmF0ZXMgb24gdGhlIGZpcnN0IHF1ZXVlIHRoYXQgZ29lcyBvdmVyIG9yCgkgIHVuZGVyIHRoZSBoaWdoL2xvdyB0aHJlc2hvbGRzLgoKMjAwOS0xMC0yMiAxNDowNzozMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkb24ndCBjaGVjayB2aXNpYmxlIGl0ZW1zIGluIGJ1ZmZlcmluZwoJICBJbiBidWZmZXJpbmcgbW9kZSB3ZSB3YW50IHRvIGlnbm9yZSB0aGUgbWF4IHZpc2libGUgaXRlbXMgdG8gZGVjaWRlIHdoZW4gdGhlCgkgIHF1ZXVlIGlzIGZpbGxlZC4gSW5zdGVhZCwgd2Ugb25seSBsb29rIGF0IHRoZSBudW1iZXIgb2YgYnl0ZXMgYW5kL29yIHRpbWUgaW4gdGhlCgkgIHF1ZXVlLgoKMjAwOS0xMC0yMSAxMTozMDo0MCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogaG9vayB1cCBsb3cvaGlnaCBwZXJjZW50CgkgIEhvb2sgdXAgdGhlIGxvdy9oaWdoIHBlcmNlbnQgcHJvcGVydGllcyBmb3IgdGhlIGJ1ZmZlcmluZyBtb2RlLgoKMjAwOS0xMC0yMSAxMToyNDo0NyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogaG9vayB1cCBwcm9wZXJ0eSBmb3IgYnVmZmVyaW5nCgoyMDA5LTEwLTIyIDE1OjIxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNtYWxsIGNsZWFudXBzCgkgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW9uCgkgIEZpeCBzb21lIHR5cG8KCjIwMDktMTAtMjIgMDk6NDE6NTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYWRkIEZJWE1FIGZvciB3cm9uZyBjb2RlCgkgIE5lZWRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbgoKMjAwOS0xMC0yMSAxNDoyMDoyOSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmaXggZGVidWcgb3V0cHV0CgoyMDA5LTEwLTIxIDE0OjE1OjA1IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHNoYWRvd2luZyBmdW5jdGlvbiBhcmd1bWVudAoJICBEb24ndCBzaGFkb3cgdGhlIHNxIGFyZ3VtZW50IGluIHRoZSB1bmRlcnJ1bl9jYiBmdW5jdGlvbiBidXQgdXNlCgkgIGEgZGlmZmVyZW50IHZhcmlhYmxlIG5hbWUgdG8gaXRlcmF0ZSB0aGUgb3RoZXIgcXVldWVzLgoJICBVc2UgdGhlIHNhbWUgdmFyaWFibGUgbmFtZSBpbiB0aGUgb3ZlcnJ1bl9jYiBmdW5jdGlvbi4KCjIwMDktMTAtMjEgMTQ6MTI6MTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogbWFrZSBxdWV1ZSBhcmcgZXhwbGljaXQKCSAgTWFrZSB0aGUgcXVldWUgYXJndW1lbnQgdG8gSVNfRklMTEVEIGV4cGxpY2l0CgoyMDA5LTEwLTIxIDExOjE3OjA4IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZpeCBwcm9wZXJ0aWVzCgkgIEZpeCBwcm9wZXJ0aWVzLCBtYWtlIHRoZSBleHRyYS1zaXplIHByb3BlcnRpZXMgYXMgbm90IGltcGxlbWVudGVkLgoKMjAwOS0xMC0yNSAyMTozNTowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYWxsb3cgdG8gaGlkZS9zaG93IHBhZCBzdGF0dXMgd2l0aCBncmFwaGRldGFpbHMgZmxhZwoKMjAwOS0xMC0yNCAxMzoxNDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBSZW1vdmUgb2Jzb2xldGUgRklYTUUKCSAgSXQncyBub3QgbmVjZXNzYXJ5IChhbmQgbm90IGEgZ29vZCBpZGVhKSB0byBjYWNoZSB0aGUgdHlwZWZpbmQgZmFjdG9yeQoJICBsaXN0IGFueW1vcmUuCgoyMDA5LTEwLTI0IDExOjU4OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IHByaXZhdGUgaXMgYSBDKysga2V5d29yZCwgZG9uJ3QgdXNlIGl0CgkgIC4uLm90aGVyd2lzZSBDKysgY29tcGlsZXJzIHdpbGwgY29tcGxhaW4gd2hlbiBpbmNsdWRpbmcgZ3N0cmVnaXN0cnkuaAoKMjAwOS0xMC0yNCAxMDoyMTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBkb2NzOiBhZGQgU2luY2UgdGFnIHRvIGRvY3MgZm9yIG5ldyBBUEkKCSAgQW5kIHRlbGwgZ3RrLWRvYyB0aGF0IEdzdFJlZ2lzdHJ5UHJpdmF0ZSBpcyBwcml2YXRlLgoKMjAwOS0xMC0yMSAwOTo0ODo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IEtlZXAgdHlwZWZpbmQgZmFjdG9yaWVzIHNvcnRlZCBpbiB0aGUgcmVnaXN0cnkuIEZpeGVzICM1OTkxNDcKCSAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGRvIHRoZSBzb3J0aW5nIGV2ZXJ5dGltZSB3ZSB1c2UgdHlwZWZpbmQKCSAgVGhlIGJlaGF2aW91ciBvZiBnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2xpc3QgaGFzIHN1YnRsZWx5IGNoYW5nZWQKCSAgaW4gdGhlIHNlbnNlIHRoYXQgdGhlIG9yZGVyIHdhcyBwcmV2aW91c2x5IHVuZGVmaW5lZCwgd2hlcmVhcyBub3cKCSAgaXQgcmV0dXJucyB0aGVtIHNvcnRlZCBieSByYW5rIGFuZCB0aGVuIGJ5IG5hbWUuCgoyMDA5LTEwLTIxIDA5OjQ1OjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBDYWNoZSBlbGVtZW50IGFuZCB0eXBlZmluZCBmYWN0b3JpZXMuIEZpeGVzIDU5ODg5NgoJICBUaGlzIGF2b2lkcyB1bm5lZWRlZCBsaXN0L2ZpbHRlcmluZyBpZiB0aGUgcmVnaXN0cnkgaGFzbid0IGNoYW5nZWQKCjIwMDktMTAtMjEgMDk6NDA6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0cGx1Z2luZmVhdHVyZTogQVBJIDogbmV3IGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2NvcHkoKSBtZXRob2QKCSAgVGhpcyBhbGxvd3MgY29weWluZyBBTkQgaW5jcmVtZW50aW5nIHRoZSByZWZjb3VudCBhdCB0aGUgc2FtZSB0aW1lLAoJICBhdm9pZGluZyBhIGRvdWJsZSBpdGVyYXRpbyBvZiB0aGUgR0xpc3QKCjIwMDktMTAtMjQgMTA6MDU6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIGdzdHJlZ2lzdHJ5OiBBZGQgYSBjb29raWUgZm9yIGRldGVjdGluZyBmZWF0dXJlIGxpc3QgY2hhbmdlcwoJICBXZSBhbHNvIGNyZWF0ZSBhIHByaXZhdGUgc3RydWN0dXJlLCBzaW5jZSB3ZSB3aWxsIG5lZWQgdG8gYWRkIG1vcmUKCSAgZGF0YSB0aGVyZSBpbiBmb2xsb3dpbmcgcGF0Y2hlcy4KCjIwMDktMTAtMjMgMTM6MTk6MDQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBkb24ndCB1c2UgdHlwZWNoZWNraW5nIGNhc3QgbWFjcm9zCgkgIFNpbXBseSB1c2UgY2FzdGluZyBtYWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUgbWVzc2FnZSBmaWVsZHMgbGlrZSB3ZSBkbyBmb3IKCSAgYnVmZmVycyBhbmQgZXZlbnRzLiBBdm9pZHMgc29tZSBjb3N0bHkgdHlwZWNoZWNraW5nIHRoYXQgZG9lcyBub3QgcmVhbGx5IGJ1eSB1cwoJICBtdWNoLgoKMjAwOS0xMC0yMyAxMzoxMzo1MiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIFJldmVydCAiZ3N0bWVzc2FnZTogQXZvaWQgZXhwZW5zaXZlIHNyYy90eXBlL3RpbWVzdGFtcCBmZXRjaC4iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNjFjZjkzYTMzNGI3OWEyZDg0OTNlNTMxY2M0NGJhNDVhNDIwOTgwNS4KCjIwMDktMTAtMjMgMTc6NTE6MjcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBnc3RtZXNzYWdlOiBBdm9pZCBleHBlbnNpdmUgc3JjL3R5cGUvdGltZXN0YW1wIGZldGNoLgoJICBJZiB3ZSd2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB3ZSBoYXZlIGEgdmFsaWQgbWVzc2FnZSwgdXNlIHRoZSBlbnRyaWVzCgkgIGRpcmVjdGx5LgoKMjAwOS0xMC0yMyAxNzo0Nzo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IFVzZSBpbmxpbmVkIHZlcnNpb24gb2YgX2lzX2FueSgpL19pc19lbXB0eSgpCgkgIENBUFNfSVNfQU5ZIGFuZCBDQVBTX0lTX0VNUFRZIGFyZSB0aGUgZXF1aXZhbGVudCBvZiB0aGVpciBnc3RfY2Fwc18qCgkgIGNvdW50ZXJwYXJ0IGV4Y2VwdCB0aGF0IHRoZXkgYXZvaWQgdGhlIHR5cGVjaGVja2luZyBhbmQgYXJlIGlubGluZWQuCgkgIENBUFNfSVNfRU1QVFlfU0lNUExFIG9ubHkgY2hlY2tzIGZvciBlbXB0eSBjYXBzICh3aXRob3V0IGNoZWNraW5nIGlmCgkgIHRoZSBjYXBzIGlzIEFOWSkuCgoyMDA5LTEwLTIyIDE2OjQyOjEzIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVE9ETzogYWRkIGl0ZW0gdG8gVE9ETyBsaXN0CgkgIFdlIGN1cnJlbnRseSBkbyBhIGxpdHRsZSB0b28gbXVjaCB3b3JrIHdoZW4gd2UgcHVzaCB0aGUgZmlyc3QgYnVmZmVyIGFyb3VuZAoJICByZXN1bHRpbmcgaW4gZXhjZXNzaXZlIGNhcHMgY2hlY2tpbmcuIFdlIGNhbiBwcm9iYWJseSBtYWtlIHRoaXMgYSBsaXR0bGUgbGVzcwoJICBleHBlbnNpdmUuCgoyMDA5LTEwLTIyIDEyOjUyOjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0cGlwZWxpbmU6IFNpbXBsaWZ5IGJhc2UgdGltZSBjaGVja2luZyBzbGlnaHRseQoJICBTaW1wbGlmeSBjaGVja2luZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBiYXNlIHRpbWUgLSBkb24ndCByZS1jaGVjawoJICB0aGUgdmFsdWUgb2YgYSBsb2NhbCB2YXJpYWJsZSB0aGF0IHdhcyBzZXQgMyBsaW5lcyBlYXJsaWVyLgoKMjAwOS0xMC0yMiAxMzoxNToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBPcHRpbWlzYXRpb246IEF2b2lkIHR5cGUtY2hlY2tpbmcgaW4gc29ydGluZyBtZXRob2QuCgkgIFdlIGFscmVhZHkga25vdyB0aGUgbGlzdCBvbmx5IGNvbnRhaW5zIHBsdWdpbiBmZWF0dXJlcwoKMjAwOS0xMC0yMiAxMzoxMzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBPcHRpbWlzYXRpb24gOiBDYXN0IHdoZW4gd2UncmUgc3VyZSBvZiB0aGUgdHlwZS4KCSAgQWxzbyBkaXJlY3RseSBhY2Nlc3MgR3N0RWxlbWVudEZhY3RvcnktPnVyaV90eXBlIGluc3RlYWQgb2YgZ29pbmcKCSAgdGhyb3VnaCBhIGZ1bmN0aW9uIHRoYXQgd2lsbCAob25jZSBhZ2FpbikgY2hlY2sgd2hldGhlciBpdCdzIGEKCSAgR3N0RWxlbWVudEZhY3RvcnkKCjIwMDktMTAtMjIgMTI6MzM6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0cy9mYWtlc2luazogQWRkIHNvbWUgZGVidWdnaW5nCgoyMDA5LTEwLTIyIDEyOjMzOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHMvZmFla3Npbms6IExvd2VyIHRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBhdm9pZCB0aW1lb3V0cwoJICBXZSBqdXN0IGVuZCB1cCB3aXRoIHdheSB0b28gbXVjaCBjb250ZW50aW9uIGluIGdsaWIgb3RoZXJ3aXNlLgoKMjAwOS0xMC0xOSAwOTowNjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBnc3RyZWdpc3RyeTogVXNlIGhhc2ggdGFibGUgd2hlbiBmaW5kaW5nIGEgZmVhdHVyZS4gRml4ZXMgIzU5ODg5NQoKMjAwOS0xMC0yMSAxNjoyNjowMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogaW1wbGVtZW50IGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uCgkgIEltcGxlbWVudCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBzaW5rcGFkLiBXZSBjYW4gYWNjZXB0IGFueSBjYXBzIGFzCgkgIGxvbmcgYXMgaXQgaXMgYWNjZXB0ZWQgYnkgYWxsIGRvd25zdHJlYW0gcGVlciBlbGVtZW50cy4KCjIwMDktMTAtMjEgMTM6Mzg6NTcgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGF2b2lkIGxvY2sgZm9yIHRha2luZyB0aGUgY291bnRlcgoJICBUaGUgY291bnRlciBmb3IgaW5jb21taW5nIGRhdGEgaXMgYWxyZWFkeSBwcm90ZWN0ZWQgd2l0aCB0aGUgU1RSRUFNX0xPQ0sgc28gd2UKCSAgZG9uJ3QgbmVlZCB0byBhZGQgYW5vdGhlciBsb2NrIGFyb3VuZCBpdC4KCjIwMDktMTAtMjAgMjM6Mjg6NTQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiBoYXNoIHRoZSBwbHVnaW4gYmFzZW5hbWUKCSAgTWFpbnRhaW4gYSBoYXNodGFibGUgb2YgdGhlIHBsdWdpbiBiYXNlbmFtZS4gV2UgY2FuIHRoZW4gdXNlIHRoaXMKCSAgaGFzaHRhYmxlIHRvIHNwZWVkdXAgdGhlIHNlYXJjaCBmb3IgYW4gZXhpc3RpbmcgcGx1Z2luIGFuZCBhdm9pZAoJICBhIHdob2xlIGxvdCBvZiBzdHJjbXAgY2FsbHMuCgoyMDA5LTEwLTIwIDIzOjI3OjQxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBzcGVlZCB1cCBfc3RybGVuCgkgIE1ha2UgdGhlIF9zdHJsZW4gZnVuY3Rpb24gYSBsaXR0bGUgdGlnaHRlcgoKMjAwOS0xMC0yMCAyMTo0Mzo1OCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogbmFtZSBpcyBuZXZlciBOVUxMCgkgIFdoZW4gbG9va2luZyB1cCBhIGZlYXR1cmUgYnkgbmFtZSwgd2UgbmV2ZXIgY2FsbCB0aGlzIGludGVybmFsCgkgIGZ1bmN0aW9uIHdpdGggTlVMTCBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciBpdC4KCjIwMDktMTAtMjAgMjE6Mzk6MTEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHJlZmFjdG9yIHBsdWdpbiBsb29rdXAKCSAgV2Uga2VlcCBsb29rdXAgcGx1Z2lucyBieSB0aGVpciBiYXNlbmFtZS4gQXZvaWQgY3JlYXRpbmcgYSBiYXNlbmFtZQoJICBmcm9tIGEgZmlsZW5hbWUgaWYgd2UgY2FuLgoKMjAwOS0xMC0yMCAyMTowMTo1NSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZG8gcXVpY2sgY2hlY2sgZm9yIC4gZmlsZXMKCSAgRG8gYSBxdWljayBjaGVjayBmb3IgLiBmaWxlcyBiZWZvcmUgY2FsbGluZyB0aGUgc3RyY21wIGZ1bmN0aW9ucwoKMjAwOS0xMC0yMCAxMjoyMTowOSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0eG1sLmM6CgkgIFJlbW92ZSBleGVjdXRhYmxlIGJpdHMgb24geG1sIHVuaXQgdGVzdC4KCjIwMDktMTAtMTkgMTY6NDc6MTAgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogRml4IGRvY3MgZm9yIGdzdF9jYXBzX3NldF9zaW1wbGUoKQoKMjAwOS0xMC0xOSAxMzowMjozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogTW9kaWZ5IGRvY3Mgc3RyaW5nIHNsaWdodGx5LgoJICBBcHBhcmVudGx5IHN0YXJ0aW5nIHRoZSBsYXN0IGxpbmUgb2YgYSBkb2NzIHN0cmluZyB3aXRoICdyZXR1cm5zJyBib3RoCgkgIGNvbmZ1c2VzIGFuZCBlbnJhZ2VzIGd0ay1kb2MuIFVzZSBhIHNsaWdodGx5IGRpZmZlcmVudCB3b3JkaW5nIGluc3RlYWQuCgoyMDA5LTEwLTE5IDEyOjI5OjM1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogV2hlbiBhIHBsdWdpbiBpcyBibGFja2xpc3RlZCwgb3V0cHV0IGEgR1NUX0VSUk9SIGxpbmUuCgoyMDA5LTEwLTE5IDEzOjMwOjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMvZ3N0LWluc3BlY3Q6IENoZWNrIHdlJ3JlIG5vdCBoYW5kbGluZyBOVUxMIHBvaW50ZXJzLgoKMjAwOS0xMC0xOSAxMzoyOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50CgoyMDA5LTEwLTE0IDEwOjU0OjMyICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5oOgoJICB0cmFjZTogRG8gbm90IHBvaXNvbiBnc3RfdHJhY2VfYWRkX2VudHJ5KCkKCSAgU2luY2UgZ3N0X3RyYWNlX2FkZF9lbnRyeSgpIGlzIGEgbWFjcm8sIGdjYyB3aWxsIGJhcmYgd2hlbiBpdCBpcwoJICBkZWZpbmVkIGluIGNhc2UgaXQgaGFzIGJlZW4gcG9pc29uZWQgZHVlIHRvIHRyYWNlIHN1cHBvcnQgYmVpbmcKCSAgZGlzYWJsZWQuCgoyMDA5LTEwLTE4IDIzOjE4OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGp1c3QgY2FzdCBpbiBpbnRlcm5hbCBBUEkgd2hlcmUgd2UgaGF2ZSBjaGVja2VkIHBhcmFtZXRlcnMgYWxyZWFkeQoKMjAwOS0xMC0xOCAyMzoxNTowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBnX3NsaWNlIGZvciBjb250cm9sbGVkIHByb3BlcnR5IHN0cnVjdHVyZXMKCSAgVXNlIGdfc2xpZGUgaW5zdGVhZCBvZiBub21hbCBnX25ldywgQWxzbyBkb24ndCBpbml0IHN0cnVjdCB3aXRoIDAgYXMgd2UgbmVlZCB0bwoJICBpbml0IGl0IGFueXdheSB3aXRoIHRoZSByZWFsIHZhbHVlcy4KCSAgQWxzbyBqb2luIHRoZSAzIGZsYWdzIGNoZWNrcyBpbnRvIG9uZS4KCjIwMDktMTAtMTggMTc6MTc6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGxpYnMvYmFzZS90eXBlZmluZGhlbHBlcjogUmVtb3ZlIHVzZWxlc3MgdHlwZWNoZWNraW5nIGluIHRpZ2h0IGxvb3AKCSAgVGhlIGxpc3QgYWdhaW5zdCB3aGljaCB3ZSBydW4gdGhlIGNvbXBhcmVmdW5jIHdpbGwgb25seSBjb250YWluCgkgIEdzdFBsdWdpbkZlYXR1cmUsIHRoZXJlZm9yZSByZW1vdmUgdGhlIDYgZXhwZW5zaXZlIHR5cGUgY2hlY2tzIHdlIGRvCgkgIGZvciBldmVyeSBzaW5nbGUgY29tcGFyaXNpb24uCgoyMDA5LTEwLTE2IDEyOjM5OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHR5cG8gaW4gZG9jcwoKMjAwOS0xMC0xNiAwOTo0MzowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBBUEkgc3ltYm9sCgoyMDA5LTEwLTE2IDEwOjEzOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg1ZDE1MzAgdG8gMDcwMmZlMQoKMjAwOS0xMC0wNyAxNTozMjoxOCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBJbXByb3ZlIGNhcHMgc2V0dGVycyBBUEkKCSAgVGhpcyBwYXRjaCBhZGRzIGdzdF9jYXBzX3NldF92YWx1ZSgpIGFuZCBhbGxvd3MgZ3N0X2NhcHNfc2V0X3NpbXBsZSgpIHRvCgkgIHdvcmsgb24gbm9uLXNpbXBsZSBjYXBzLiBTZWUgdGhlIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUgZnVuY3Rpb25zCgkgIGFib3V0IHdoYXQgdGhleSBkby4KCSAgVGhlIGludGVudGlvbiBvZiB0aGVzZSBjaGFuZ2VzIGlzIHRvIGVhc2Ugd29ya2luZyB3aXRoIGNhcHMgaW4gY2FwcwoJICB0cmFuc2Zvcm0gZnVuY3Rpb25zLiBBbiBleGFtcGxlIGZvciB0aGlzIHdvdWxkIGJlIGZmbXBlZ2NvbG9yc3BhY2UsCgkgIHdoZXJlIHRoZSBjYXBzIHRyYW5zZm9ybSBmdW5jdGlvbiBjb3VsZCBiZSBjaGFuZ2VkIHRvIGxvb2sgcm91Z2hseSBsaWtlCgkgIHRoaXMgKHBzZXVkb2NvZGUgYWhlYWQpOgoJICByZXN1bHQgPSBnc3RfY2Fwc19jb3B5ICh0ZW1wbGF0ZV9jYXBzKTsKCSAgdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZSAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSAoY2FwcywgMCksCgkgICJ3aWRoIik7CgkgIGdzdF9jYXBzX3NldF92YWx1ZSAocmVzdWx0LCB2YWx1ZSk7CgkgIC8qIHNhbWUgZm9yIGhlaWdodCwgZnJhbWVyYXRlIGFuZCBwYXIgKi8KCSAgcmV0dXJuIGNhcHM7CgkgIHdoaWNoIGlzIG11Y2ggY2xlYW5lciBhbmQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgdGhhbiB0aGUgY3VycmVudCBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3NjkwCgoyMDA5LTEwLTAyIDEwOjE1OjU1ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgQWRkIFhNTF9MSUJTIHdoZW4gYnVpbGRpbmcgdGVzdHMgdGhhdCB1c2UgeG1sLXNwZWNpZmljIGZ1bmN0aW9ucwoKMjAwOS0xMC0xNSAxNjozNTo1OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vTWFrZXZhcnM6CgkgIHBvOiBEb24ndCBjcmVhdGUgYmFja3VwIC5wbyBmaWxlcwoJICBBcyB3ZWxsIGFzIHByZXZlbnRpbmcgY3JlYXRpb24gb2YgdXNlbGVzcyBiYWNrdXAgZmlsZXMsIGl0IHdvcmtzCgkgIGFyb3VuZCBhIGJ1ZyBpbiBnZXR0ZXh0IDAuMTcgb24gT1MvWAoKMjAwOS0xMC0xNSAxNjozMDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcmFjZSBpbiBQTEFZSU5HLT5QQVVTRUQtPlBMQVlJTkcKCSAgV2hlbiB3ZSBxdWlja2x5IHN3aXRjaCBmcm9tIFBMQVlJTkcgdG8gUEFVU0VEIGFuZCBiYWNrIHRvIFBMQVlJTkcgaXQncyBwb3NzaWJsZQoJICBpbiBzb21lIGNhc2VzIHRoYXQgdGhlIHRhc2sgcmVmdXNlcyB0byBzdGFydCwgVGhpcyBpcyBiZWNhdXNlIHdoZW4gd2UgZ28gdG8KCSAgUEFVU0VELCB3ZSB1bnNjaGVkdWxlIHRoZSBjbG9jayB0aW1lb3V0LCB3aGljaCBjb3VsZCByZXR1cm4gVU5TQ0hFRFVMRUQgd2hlbgoJICB3ZSdyZSBiYWNrIHRvIFBMQVlJTkcsIGNhdXNpbmcgdGhlIHRhc2sgdG8gUEFVU0UgYWdhaW4gd2l0aCBhIHdyb25nLXN0YXRlLgoJICBUaGlzIHBhdGNoIGNoZWNrcyBpZiB3ZSBhcmUgcnVubmluZyB3aGVuIHdlIHJldHVybiB3aXRoIGFuIFVOU0NIRURVTEVEIHJldHVybgoJICB2YWx1ZSBhbmQgaWYgd2UgYXJlLCB0cnkgdG8gY3JlYXRlIGEgbmV3IGJ1ZmZlci4KCSAgRml4ZXMgIzU5NzU1MAoKMjAwOS0xMC0xNSAxMjoxNjowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBkb2NzOiBjbGFyaWZ5IHByZXNldCBhcGkgZG9jcwoKMjAwOS0xMC0xNCAxNzo1Nzo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGRvY3M6IGZpeCBjb250cm9sbGVyIHNlY3Rpb25zIGRvY3MKCjIwMDktMTAtMTQgMTA6NDA6NTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYzODBkNGIgdG8gODVkMTUzMAoKMjAwOS0xMC0xNCAxMDoxNjozMSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBhIGRvY3VtZW50YXRpb24gdHlwbwoKMjAwOS0xMC0xNCAwODo1Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IC4uLmFuZCBhZGQgbWlzc2luZyBlbmRpZgoKMjAwOS0xMC0xNCAwODo1NzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IEFsc28gZG9uJ3QgcnVuIG1ha2UgY2hlY2stZXhwb3J0cyBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMTAtMTQgMDg6NTA6MzEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBPbmx5IHJ1biBtYWtlIGNoZWNrLWV4cG9ydHMgaWYgbm8gcHVibGljIEFQSSB3YXMgZGlzYWJsZWQKCSAgRml4ZXMgYnVnICM1OTgyOTcuCgoyMDA5LTEwLTE0IDA4OjMwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBSZXBsYWNlIHJlY3Vyc2l2ZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpIHdpdGggYW4gaXRlcmF0aXZlIHZlcnNpb24KCSAgVGhpcyBpcyBzbGlnaHRseSBtb3JlIGVmZmljaWVudCBiZWNhdXNlIHRoZSBjb21waWxlciBjYW4ndCBkbyB0YWlsCgkgIHJlY3Vyc2lvbiBoZXJlIGFuZCBoYXMgdG8ga2VlcCBhbGwgc3RhY2sgZnJhbWVzLgoJICBOb3QgdGhhdCBlZmZpY2llbmN5IGlzIHRoYXQgaW1wb3J0YW50IGhlcmUgYnV0IEkgYWxyZWFkeSBoYWQKCSAgdGhlIGl0ZXJhdGl2ZSB2ZXJzaW9uIHNvbWV3aGVyZSBlbHNlIGFuZCBib3RoIGFyZSBlYXN5IHRvIHJlYWQuCgoyMDA5LTEwLTE0IDA4OjI5OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBBZGQgc2ltcGxlIHVuaXQgdGVzdCBmb3IgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKQoKMjAwOS0xMC0xMyAxOToxMjo1MCArMDMwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLjEubXlvaGFuZW5Abm9raWEuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBmaXggdGltZXN0YW1wIGNvbXBhcmlzc2lvbiwgRml4ZXMgIzU5NzQwNwoKMjAwOS0xMC0xMiAyMTo1MTo1NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVjazogRGlzYWJsZSB0aGUgdGVzdF9mYWlsX2Fic3RyYWN0X25ldygpIHRlc3QgZW50aXJlbHkgb24gT1MvWAoJICBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcgZnJvbSB0aGUgZnVuY3Rpb24gYmVpbmcgY29tcGlsZWQgYnV0IG5vdAoJICB1c2VkLgoKMjAwOS0xMC0xMiAxNDo1NzozNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGRlYnVnOiBNYXJrIHRoZSBHU1RfUE9MTCBzeW1ib2wgYXMgZXh0ZXJuIHRvIGF2b2lkIG11bHRpcGx5LWRlZmluZWQgZXJyb3IKCjIwMDktMTAtMTIgMTQ6NDc6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiB0byA2MzgwZDRiMzcwZjA3OGYwY2NhNzI0MDQyOGVhOWY2NjM5NTcxZmY1CgoyMDA5LTEwLTEyIDE0OjI0OjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0cG9sbDogTWFrZSB0aGUgbmV3IEdTVF9QT0xMIGRlYnVnIGNvbXBsZXRlbHkgcHJpdmF0ZQoJICBNYWtlIHRoZSBHU1RfUE9MTCBkZWJ1ZyBjYXRlZ29yeSBzeW1ib2wgcHJpdmF0ZSB0byBsaWJnc3RyZWFtZXIsIGFzCgkgIHRoZXJlIHNob3VsZCBiZSBubyBleHRlcm5hbCB1c2VycyBvZiBpdC4KCjIwMDktMTAtMTIgMTQ6MjI6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiBEaXNhYmxlIGEgZmFpcmx5IHNpbGx5IGdzdG9iamVjdCB0ZXN0IG9uIE9TL1gKCSAgVGhpcyB0ZXN0IHVzZWQgdG8gU0lHQlVTIG9uIE9TL1ggYnV0IG5vdyBTSUdTRUdWJ3MgaW5zdGVhZCBvbgoJICBTbm93IExlb3BhcmQuIEl0J3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQgdG8gZmlndXJlIG91dCB3aGljaCBwbGF0Zm9ybQoJICBzaG91bGQgcHJvZHVjZSB3aGljaCBlcnJvciBmb3Igd2hhdCBpcyBmdW5kYW1lbnRhbGx5IGEgcHJldHR5IHNpbGx5CgkgIHRlc3QsIHNvIGp1c3QgZGlzYWJsZSBpdCBvbiBPUy9YCgoyMDA5LTEwLTEyIDEzOjUwOjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJICBsaWJzL2dzdC9jaGVjazogTWFrZSB3cml0aW5nIHRocmVhZHNhZmUuIEJhY2twb3J0ZWQgZnJvbSBsaWJjaGVjayB0cnVuawoKMjAwOS0xMC0xMiAxMzo0OTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgbGlicy9nc3QvY2hlY2s6IFJ1biBnc3QtaW5kZW50IG9uIGxpYmNoZWNrLgoKMjAwOS0xMC0xMiAxMjowMjozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgZ3N0cGx1Z2lubG9hZGVyOiBEb24ndCB3YWl0IGZvcmV2ZXIgb24gZ3N0X3BvbGxfd2FpdC4KCSAgVGhpcyBhbGxvd3MgdGhlIG1hY29zeCB2ZXJzaW9ucyB0byBwcm9wZXJseSBlcnJvciBvdXQgd2hlbiBmZHMgYXJlIGNsb3NlZC4KCSAgVGhpcyBpcyBvbmx5IGEgdGVtcG9yYXJ5IGZpeCB1bnRpbCB0aGUgcGx1Z2lubG9hZGVyIGlzIHN3aXRjaGVkIHRvIG5vdAoJICB1c2UgR3N0UG9sbCBidXQgR0lPQ2hhbm5lbHMuCgoyMDA5LTEwLTEyIDEyOjAxOjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogT25seSB0YWtlIGludG8gYWNjb3VudCBhY3RpdmUgZmRzCgkgIFRoaXMgaXMgbmVlZGVkIHNvIHRoYXQgc2VsZWN0IHByb3Blcmx5IGVycm9ycyBvdXQgb24gbWFjb3N4IChzaWdoKQoKMjAwOS0xMC0xMiAxMDowNzowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEFkZCBzb21lIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA5LTEwLTEyIDEwOjAxOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogVXNlIHRoZSBlcnJvciBmZHNldCB3aGVuIHVzaW5nIHNlbGVjdC9wc2VsZWN0LgoJICBUaGlzIGlzIG5lZWRlZCB0byBwcm9wZXJseSBkZXRlY3QgZmRzIHRoYXQgYXJlIGNsb3NlZCBvciB0aGF0IGdvdAoJICBhbiBlcnJvcgoKMjAwOS0xMC0xMiAwOTo1MDo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IERvbid0IHVzZSBwb2xsIG9uIHN5c3RlbXMgd2l0aCBicm9rZW4gcG9sbAoKMjAwOS0xMC0xMiAwOTo1MDowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Q6IEFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkgR1NUX1BPTEwgZm9yIGdzdHBvbGwKCjIwMDktMTAtMTIgMDk6NDc6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogRGV0ZWN0IGJyb2tlbiBwb2xsKCkKCjIwMDktMTAtMDkgMTc6NDQ6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGxldHMga2VlcCAtMSBmb3Igc2VnbWVuc3QgYXMgdGhleSBhcmUgZ3VpbnQ2NCBhbmQgbm90IEdzdENsb2NrVGltZQoKMjAwOS0xMC0wOSAxNzoxMToyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIEdTVF9DTE9DS19USU1FX05PTkUgYW5kIEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIG1vcmUKCjIwMDktMTAtMDggMjM6MTA6NDAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBGaXggdmFsZ3JpbmQgd2FybmluZ3MgYnkgemVyb2luZyBwYWRkaW5nIGJ5dGVzLgoKMjAwOS0xMC0wOCAxNzoxOTozOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGNoZWNrOiBIb3BlZnVsbHkgZml4IGFuICdtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkJyB3YXJuaW5nIG9uIE9TL1gKCjIwMDktMTAtMDggMTY6MjE6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGEgZGVidWcgZm9ybWF0IHN0cmluZyBoYXJkZXIgdG8gc2F0aXNmeSBPUy9YJ3MgZ2NjLgoKMjAwOS0xMC0wOCAxNjowNTowOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggZm9ybWF0IHN0cmluZyBmb3IgZGVidWcgZXJyb3IgbWVzc2FnZS4KCjIwMDktMTAtMDggMTU6MjE6NDggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBNb3ZlIHN0ZGluIGFuZCBzdGRvdXQgb3V0IG9mIGhhcm0ncyB3YXkKCSAgSW4gdGhlIHBsdWdpbiBsb2FkZXIgc3VicHJvY2VzcywgbW92ZSBzdGRpbiBhbmQgc3Rkb3V0IHRvIG5ldyBmZCdzCgkgIHNvIHRoYXQgcGx1Z2lucyBwcmludGluZyB0aGluZ3MgZHVyaW5nIHBsdWdpbiBpbml0IG9yICgqZ2FzcCopCgkgIHBvc3NpYmx5IHJlYWRpbmcgZnJvbSBzdGRpbiBkb24ndCBpbnRlcmZlcmUgd2l0aCB0aGUgZGF0YSBzZW50IHRvCgkgIGFuZCBmcm9tIHRoZSBwYXJlbnQuCgoyMDA5LTEwLTA4IDExOjE3OjE0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIHBsdWdpbiBkb2NzOiBBZGQgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGluc3BlY3QgZW52aXJvbm1lbnQKCjIwMDktMTAtMDggMTA6NTk6MTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzdmODk4YiB0byBhM2UzY2U0CgoyMDA5LTEwLTA4IDEwOjM5OjI4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZXM6IElnbm9yZSB0aGUgYnl0ZXdyaXRlciBjaGVjayBiaW5hcnkKCjIwMDktMTAtMDggMTA6MzY6NTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogRml4IGVycm9yIGhhbmRsaW5nIGluIHRoZSByZWdpc3RyeSBsb2FkZXIKCSAgV2hlbiB0aGUgcGx1Z2luLXNjYW5uZXIgbG9hZCBmYWlscyAoYmVjYXVzZSB0aGUgaGVscGVyIGNhbid0IGJlCgkgIHNwYXduZWQpLCBtYWtlIHN1cmUgdG8gbG9hZCB0aGUgcGx1Z2luIHRoYXQgZmFpbGVkIGluLXByb2Nlc3MsIHNvCgkgIHRoYXQgYWxsIHBsdWdpbnMgZG8gZ2V0IGxvYWRlZC4KCjIwMDktMTAtMDggMTA6MjY6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEZpeCB0ZXN0IHJ1biBpbiB0ZXN0cy9leGFtcGxlcy9tYW51YWwKCSAgQWRkIHRoZSBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgY2hlY2sgZW52aXJvbm1lbnQgaGVyZSB0b28KCSAgc28gdGhhdCBpdCBkb2Vzbid0IGZhaWwgd2hlbiBubyBpbnN0YWxsZWQgc2Nhbm5lciBpcyBhdmFpbGFibGUuCgoyMDA5LTEwLTA4IDA5OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGFkZCBiYWNrIGZpeCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gcmV2ZXJ0ZWQKCjIwMDktMTAtMDggMTA6NDc6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IG1vcmUgcXVldWUgb3B0aW1pemF0aW9ucwoJICBTcGxpdCBnc3RfcXVldWVfbG9ja2VkX2VucXVldWUoKSBpbnRvIHZhcmlhbnQgZm9yIGJ1ZmZlciBhbmQgZXZlbnQgdG8gZ2V0IHJpZCBvZgoJICB0aGUgaWYoKSBhbmQgbWFrZSB0aGUgY29kZSBtb3JlIHJlYWRhYmxlIChjb25zdGFudCBib29sZWFuIHBhcmFtZXRlcnMgYXJlIG5ldmVyCgkgIG5pY2UpLiBSZW1vdmVzIHRoZSBpZiAoaXRlbSkgY2hlY2tzIGFzIHdlIGRlcmVmZXJlbmNlIHRoZSBwb2ludGVyIGJlZm9yZSBhbnl3YXkuCgkgIEFsc28gYXBwbHkgdGhlIHNhbWUgaWRlYSBvZiByZXVzaW5nIHRoZSBwcmV2aW91cyBrbm93bGVkZ2UgaW4KCSAgZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlIHRvIHJlbW92ZSBtb3JlIHR5cGUgY2hlY2tzLgoKMjAwOS0xMC0wOCAxMDo1MTo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNwbGl0IGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldwoJICBTcGxpdCBnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcgaW50byBidWZmZXIgYW5kIGV2ZW50IHZhcmlhbnQgdG8gbWFrZSBzYXZlIGFuIGlmCgkgIGFuZCBtYWtlIGNvZGUgbW9yZSByZWFkYWJsZS4KCjIwMDktMTAtMDggMDg6NTU6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgcGx1Z2lucy9nc3RmaWxlc3JjOiBNYWtlIGEgZmFzdC1wYXRoIGZvciBsZW5ndGggPT0gMCBidWZmZXIgY3JlYXRpb24uCgkgIElmIHRoZSByZXF1ZXN0ZWQgbGVuZ3RoIGlzIDAsIHdlIGRvbid0IG5lZWQgdG8gcmVhZCBhbnl0aGluZyBmcm9tIHRoZSBmaWxlLgoKMjAwOS0xMC0wOCAwODo1NToyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBnc3QvY2hlY2svY29uc2lzdGVuY3ljaGVja2VyOiBDaGVjayB0eXBlIG9mIG1pbmlvYmplY3QgaW4gcHJvYmUKCjIwMDktMTAtMDggMDg6NTM6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGdzdC9iYXNlL2Jhc2VzaW5rOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgY29kZSB3YXMgcHJldmlvdXNseToKCSAgKiBjaGVja2luZyBpZiByZXQgd2FzICE9IE9LCgkgICogLi4gYnV0IGlmIGl0IHdhcyBGTE9XX1NURVAsIHN3aXRoIGl0IHRvIE9LCgkgICogLi4gYW5kIHRoZW4gbm90IHVzaW5nIHJldAoJICBJbnN0ZWFkIHdlIGp1c3QgbWFrZSBpdCBtb3JlIGNvbXBhY3QgYnkgY2hlY2tpbmcgaWYgaXQncyBPSyBvciBTVEVQLgoKMjAwOS0xMC0wOCAwODo1MzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBvYmplY3QgaXMgbm8gbG9uZ2VyIHVzZWQgYWZ0ZXIgdGhhdCBsaW5lCgoyMDA5LTEwLTA4IDA4OjUyOjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGdzdGluZGV4OiBNYWtlIHN1cmUgd3JpdGVyIGlzIG5vbi1OVUxMLgoJICBGaXhlcyB0aGUgTlVMTCBkZXJlZmVyZW5jZSBhIGZldyBsaW5lcyBsb3dlciAod2hlcmUgaXQgZ2V0cyB0aGUgb2JqZWN0IHR5cGUpLgoKMjAwOS0wOS0yOSAwODoxMzo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IENsZWFuIHVwIGdzdGJ1ZmZlcnN0cmVzcy4KCjIwMDktMTAtMDggMDI6NDI6MTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgYmVuY2htYXJrczogRml4IHRoZSBjb21wbGV4aXR5IGFuZCBtYXNzLWVsZW1lbnRzIGJlbmNobWFya3MKCjIwMDktMTAtMDggMDI6MjA6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoZWNrczogRml4IHN0cmluZyBsZWFrcyBpbiB0aGUgbmV3IGNoaWxkcHJveHkgdGVzdAoKMjAwOS0xMC0wOCAwMjowMzowOCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogSWdub3JlIGFuIGVtcHR5IGRlcGVuZGVuY3kgbGlzdC4KCSAgSWYgYSBwbHVnaW4gcmVnaXN0ZXJzIGFuIGVtcHR5IGRlcGVuZGVuY3kgc2V0LCBqdXN0IGlnbm9yZSBpdCByYXRoZXIKCSAgdGhhbiBzZXJpYWxpc2luZyBhbmQgY2hlY2tpbmcgYW4gZW1wdHkgc2V0LgoKMjAwOS0xMC0wOCAwMjowMTo1NCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBvZmYtYnktb25lIGVycm9yLiBJbXByb3ZlIGRlYnVnLgoJICBGaXggYW4gb2ZmLWJ5LW9uZSBlcnJvciBpbiB0aGUgc2l6ZSBndWFyZCBmb3IgdW5wYWNrX2VsZW1lbnQsIGFuZAoJICBpbXByb3ZlIHZhcmlvdXMgZGVidWcgc3RhdGVtZW50cyBpbiB0aGUgZmFpbHVyZSBwYXRocy4KCSAgQWxzbywgc3dhcCBzb21lIGdfbmV3MCB0byBnX21hbGxvYzAgZm9yIHRoZSBmdW4gb2YgaXQuCgoyMDA5LTEwLTA3IDE2OjAyOjU4IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IFVzZSBfd2ZvcGVuIG9uIHdpbjMyIHRvIG9wZW4gZmlsZXMgd2l0aCBub24tYXNjaWkgZmlsZW5hbWVzIGNvcnJlY3RseS4KCjIwMDktMTAtMDcgMjM6MzE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IFNpbmNlOiB0YWdzIGluIGRvY3MgZm9yIG5ld2x5LWFkZGVkIEFQSQoKMjAwOS0xMC0wOCAwMDowODo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmV2ZXJ0IHR3byBvZiB0aGUgY2hhbmdlcwoJICBJdCBvbmx5IG5lZWRlZCBmb3IgdGhlIG5vbiBjb25zdGFudCBzdHJpbmcuCgoyMDA5LTEwLTA3IDIzOjM2OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgYSAiJXMiIGZvcm1hdCBzdHJpbmcgd2hlbiBwcmludGluZyB0aGUgbWVtb3J5IGR1bXAgbGluZQoJICBXZSBrbm93IHRoYXQgdGhlIGNvbnRlbnQgaXMgc2F2ZSwgYnV0IHRoZSBjb21waWxlciBkb2VzIG5vdC4KCjIwMDktMTAtMDcgMjM6MjM6MDggKzAzMDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBkb24ndCBmb3JtYXQgdGhlIHN0cmluZyB0d2ljZQoJICBXZSB3ZXJlIGZvcm1hdHRpbmcgdGhlIHN0cmluZyBvbmNlIGFuZCB0aGVuIHBhc3NpbmcgdGhlIHN0cmluZyBhcyBhIGZvcm1hdAoJICBzdHJpbmcgdG8gdGhlIGxvZyBmdW5jdGlvbnMuCgoyMDA5LTEwLTA3IDExOjQzOjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCB2YXJpYW50cyBvZiBnc3RfcGFkX2dldF9jYXBzKCkgdGhhdCBkb24ndCBjb3B5IGNhcHMuIEZpeGVzICM1OTA5NDEKCSAgSW4gbW9zdCBwbGFjZXMgaW4gY29yZSBhbmQgYmFzZWNsYXNzZXMgd2UganVzdCBuZWVkIHRoZSBjYXBzIHRvIGRvIGNhcHMtCgkgIGludGVyc2VjdGlvbnMuIEluIHRoYXQgY2FzZSByZWYnZWQgY2FwcyBhcmUgZW5vdWdoIChubyBuZWVkIHRvIGNvcHkpLgoJICBUaGlzIHBhdGNoIGFsc28gc3dpdGNoZXMgdGhlIGNvZGUgdG8gdXNlIHRoZSBuZXcgZnVuY3Rpb25zLgoJICBBUEk6IGdzdF9wYWRfZ2V0X2NhcHNfcmVmZWQoKSwgZ3N0X3BhZF9wZWVyX2dldF9jYXBzX3JlZmVkKCkKCjIwMDktMDktMjYgMjM6NDM6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogYWRkIGdob3N0cGFkIHRlc3QgZm9yIHNldHRpbmcgdGFyZ2V0IGFnYWluIGFmdGVyIHBhZCBpcyBsaW5rZWQKCjIwMDktMDktMjYgMjM6NDI6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogcmVtb3ZlIGVtcHR5IGxpbmVzIGZyb20gd3JvbmcgaW5kZW50IHJ1bgoKMjAwOS0xMC0wNyAyMDozODo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGNoZWNrOiBGaXggY29tcGlsYXRpb24gb2YgdGhlIGJ5dGV3cml0ZXIgdGVzdAoKMjAwOS0xMC0wNyAxODowNzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGJ5dGUgd3JpdGVyIGFuZCByZWFkZXIgQVBJIHRvIC5kZWYgZmlsZQoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl8qKCkKCjIwMDktMDgtMjAgMTQ6MjQ6MTkgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBmaXggc3BlbGxpbmcgaW4gY29tbWVudAoKMjAwOS0xMC0wNyAxODo0MDo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZmx1c2ggcXVldWUgdXBvbiBmYXRhbCBmbG93cmV0dXJuIGFuZCByZWxlYXNlIHVwc3RyZWFtIHRocmVhZAoKMjAwOS0wOS0yMiAxNTo0NDozMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IGZpeCBBUEkgZG9jdW1lbnRhdGlvbiB0eXBvCgoyMDA5LTEwLTA3IDE4OjM3OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGJ5dGV3cml0ZXI6IEFkZCB0byB0aGUgZG9jcwoKMjAwOS0xMC0wNSAxMToyNDozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bml0IHRlc3QKCjIwMDktMTAtMDMgMTM6MzA6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgYSBnZW5lcmljIGJ5dGUgd3JpdGVyCgkgIEZpeGVzIGJ1ZyAjNTkwNjY5LgoKMjAwOS0xMC0wMyAxNTo1NzowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJpdHJlYWRlci9ieXRlcmVhZGVyOiBBUEk6IEFkZCBnc3RfKGJpdHxieXRlKV9yZWFkZXJfZ2V0X3NpemUoKQoJICAuLi4gYW5kIEdTVF8oQllURXxCSVQpX1JFQURFUigpIGNhc3RzLgoKMjAwOS0xMC0wMyAxMjozNDo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcixiaXRyZWFkZXI6IFJlbW92ZSBGSVhNRSAwLjExIHRvIHJlbW92ZSBub24taW5saW5lZCBmdW5jdGlvbnMKCSAgVGhlIG5vcm1hbCBmdW5jdGlvbnMgYXJlIGFsd2F5cyB1c2VmdWwgdG8gaGF2ZSBmb3IgYmluZGluZ3MsIGVzcGVjaWFsbHkKCSAgcnVudGltZS1jcmVhdGVkIGJpbmRpbmdzIGxpa2UgU2VlZCBvciBuZXcgR09iamVjdC1JbnRyb3NwZWN0aW9uIGJhc2VkCgkgIFB5dGhvbiBiaW5kaW5ncy4KCjIwMDktMTAtMDcgMTY6MzY6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBjaGVjazogQXR0ZW1wdCB0byBmaXggdHlwZS1wdW5uaW5nIHdhcm5pbmcgaW4gdGhlIGdzdGl0ZXJhdG9yIHRlc3QKCjIwMDktMTAtMDcgMTY6MDA6MTIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiBNYWtlIHN1cmUgdG8gaW5pdCB0aGUgZGF0YXByb3RvY29sIGxpYi4KCSAgQ2FsbCB0aGUgZ3N0X2RwX2luaXQoKSBmdW5jdGlvbiB0byBlbnN1cmUgdGhhdCB0aGUgZGVidWcKCSAgY2F0ZWdvcnkgaXMgaW5pdGlhbGlzZWQsIHRvIGF2b2lkIGdfY3JpdGljYWxzIHdoZW4gcnVubmluZyB3aXRoCgkgIEdTVF9ERUJVRz01CgoyMDA5LTEwLTA3IDE1OjQ3OjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogVXNlIEdTVF9ERUJVRyBpbnN0ZWFkIG9mIGdfbWVzc2FnZSBpbiB0aGUgZ2RwIHRlc3QKCjIwMDktMTAtMDcgMTU6MTQ6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogQWRkIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBjaGVjayBlbnZpcm9ubWVudAoKMjAwOS0xMC0wNyAxNDozNDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGltcHJvdmUgcGx1Z2luIGxvYWRlciBmYWlsdXJlIG1lc3NhZ2UgZm9yIHVuaW5zdGFsbGVkIHNldHVwcwoJICBFdmVyeW9uZSBydW5uaW5nIGFuIHVuaW5zdGFsbGVkIGdpdCBzZXR1cCBpcyBnb2luZyB0byB3b25kZXIgYWJvdXQKCSAgdGhpcyBmYWlsdXJlIG5leHQgdGltZSB0aGV5IHVwZGF0ZSwgc28gbGV0J3MgbWVudGlvbiB0aGUgc29sdXRpb24KCSAgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCgoyMDA5LTEwLTA3IDEzOjU5OjQ3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQmVlZiB1cCB0aGUgdGVzdCBmb3IgX191aW50MTI4X3Qgb24gR0NDCgkgIEdDQyAzLjQuMyBvbiB0aGUgU1BBUkMgYnVpbGRib3QgY3Jhc2hlcyB3aGVuIGFjdHVhbGx5CgkgIHVzaW5nIF9fdWludDEyOF90LiBCZWVmIHVwIHRoZSBjb25maWd1cmUgdGVzdCB0byBkZXRlY3QgdGhhdCB0aGUKCSAgdHlwZSBpcyBhY3R1YWxseSB1c2FibGUuCgoyMDA5LTEwLTA3IDA5OjU2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoJICBBbmQgYWRkIEFQSTogbWFya2VyIGluIGNvbW1pdCBtZXNzYWdlIHRoYXQgd2FzIG9taXR0ZWQgaW4gdGhlIG9yaWdpbmFsCgkgIGNvbW1pdDoKCSAgQVBJOiBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpCgoyMDA5LTEwLTA3IDA5OjU1OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgYmVuY2htYXJrczogYWRkIGJ1ZmZlcnN0cmVzcyBiaW5hcnkgdG8gLmdpdGlnbm9yZQoKMjAwOS0xMC0wNyAwOTo0Mjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBHTGliIHJlcXVpcmVtZW50IHRvIDIuMTgKCSAgQnVtcCBHTGliIHJlcXVpcmVtZW50IGFzIHBlciB0aGUgcmVsZWFzZSBwbGFubmluZyBkb2NzLgoKMjAwOS0xMC0wNyAxMDozNzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTAtMDcgMTE6MTI6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGZsaXAgdGhlIEdfVU5MSUtFTFkKCSAgSXRzIGxpa2VseSB0aGF0IHdlIGhhdmUgY2FwcyBhbmQgdW5saWtlbHkgKGVycm9yKSBvdGhlcndpc2UuCgoyMDA5LTEwLTA3IDExOjA0OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHF1ZXVlIGFwaSB0byB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkCgoyMDA5LTA5LTI4IDE1OjI1OjIyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogQXZvaWQgaW5zdGFuY2UgY2hlY2sKCSAgV2Uga25vdyBlYXJsaWVyIG9uIGluIHRoZSBjb2RlIHdoZXRoZXIgd2UncmUgaGFuZGxpbmcgYW4gZXZlbnQgb3IgYSBidWZmZXIsCgkgIGp1c3QgcGFzcyB0aGF0IGluZm9ybWF0aW9uIHRocm91Z2guCgkgIFRoaXMgY29tbWl0IGFuZCB0aGUgcHJldmlvdXMgY29tbWl0IHJlZHVjZSBpbnN0cnVjdGlvbiBmZXRjaDoKCSAgKiB3aGVuIHB1c2hpbmcgYnVmZmVyIChfY2hhaW4pIGJ5IDEwJQoJICAqIHdoZW4gcG9wcGluZyBidWZmZXIgKF9sb29wKSBieSAzJQoKMjAwOS0wOS0yOCAxNToyNDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IENhY2hlIGlucHV0L291dHB1dCB0aW1lLCBhdm9pZCBleHBlbnNpdmUgY2FsbHMuCgkgICogQ2FjaGUgdGhlIGlucHV0L291dHB1dCB0aW1lCgkgICogT25seSByZWNhbGN1bGF0ZSBpdCB3aGVuIG5lZWRlZC4KCSAgQXZvaWRzIDUwJSBjYWxscyB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUKCjIwMDktMTAtMDcgMTA6MDA6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgYnVpbGQ6IHNwcmludGYsIHNzY2FuZiBuZWVkIHN0ZGlvLmgKCjIwMDktMTAtMDUgMTE6NDY6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogaW5pdGlhbGl6ZSBndmFsdWUgaW4gX3ZhbGlzdCBmdW5jdGlvbi4gRml4ZXMgIzU5NTYwMgoJICBSZWZsb3cgdGhlIGNvZGUgdG8gbW92ZSBlcnJvciBoYW5kbGluZyB0byB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbnMuIEluaXRpYWxpemUKCSAgZ3ZhbHVlIGxpa2Ugd2UgZG8gaW4gdGhlIHNldHRlci4gQWRkIGEgdW5pdC10ZXN0IG1vZHVsZSB3aXRoIHR3byBzaW1wbGUgdGVzdHMKCSAgdGhlIGNhdGNoZSB0aGlzIGJ1Zy4KCjIwMDktMTAtMDEgMTc6Mzk6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGRvbid0IGludGVyc2VjdCB3aXRoIGFueSBpbiBwcm94eV9wYWRfZ2V0X2NhcHMKCSAgV2UgaW5pdGlhbGl6ZSB0aGUgY2FwcyB3aXRoIGFueSBhbmQgaWYgYSBwYWQgaGFzIE5VTEwgY2FwcywganVzdCBza2lwIGl0IGluc3RlYWQKCSAgb2YgaW50ZXJzZWN0aW5nIHdpdGggYW55LiBBbHNvIGFkZCBicmFuY2ggcHJlZGljdGlvbiBoZXJlLgoKMjAwOS0wOS0zMCAxNjo0MTowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IHJlbmFtZSBhZ2dyZWdhdG9yIHRvIGFkZGVyIGluIHRoZSBkb2NzLgoKMjAwOS0wOS0zMCAwOTo0NzoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IGZpeCBjb3B5IGFuZCBwYXN0IG1pc3Rha2UgZm9yIC1xIG9wdGlvbgoKMjAwOS0xMC0wNyAwOTo1NDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogRXh0ZW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBhbGxvdyB1c2luZyBhbiB1bmluc3RhbGxlZCBnc3RyZWFtZXItc2hhcnAKCjIwMDktMDktMjggMTU6MTk6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBVc2UgbmV3IEdzdERhdGFRdWV1ZSBjb25zdHJ1Y3RvcgoKMjAwOS0wOS0yOCAxNToxODozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogbmV3IGNvbnN0cnVjdG9yIHdoaWNoIHRha2VzIGNhbGxiYWNrcy4KCSAgVGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQgZ29pbmcgdGhyb3VnaCBnbGliJ3Mgc2lnbmFsbGluZyBzeXN0ZW0KCjIwMDktMDktMjggMTM6MTk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBVc2UgY2FjaGVkIHZhbHVlIGluc3RlYWQgb2YgZXhwZW5zaXZlIG9iamVjdCBnZXQuCgkgIFRoZSB0YXNrIHdpbGwgYWx3YXlzIGV4aXN0IGFzIGxvbmcgYXMgaXRzIG93bmVyIChpLmUuIHRoZSBwYWQpIGFuZCB0aGF0CgkgIG93bmVyJ3Mgb3duZXIgKGkuZS4gbXVsdGlxdWV1ZSkgZXhpc3QuCgkgIFJlZHVjZXMgdGhlIG51bWJlciBvZiBpbnN0cnVjdGlvbiBmZXRjaGVzIGJ5IDM2JS4KCjIwMDktMDktMjggMTU6NDE6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvcXVldWU6IFVzZSBwcmV2aW91cyBrbm93bGVkZ2Ugb2YgZGF0YSB0eXBlIHRvIGF2b2lkIHR5cGVjaGVjay4KCSAgV2Uga25vdyB3aGV0aGVyIHdlIGhhdmUgYSBidWZmZXIgb3IgYW4gZXZlbnQsIHVzZSB0aGF0IGluc3RlYWQgb2YgZ29pbmcKCSAgdHJvdWdoIHRoZSBleHBlbnNpdmUgR0xpYiB0eXBlY2hlY2suCgkgIFRoZSBvdmVyYWxsIGluc3RydWN0aW9uIGZldGNoIHJlZHVjdGlvbiBpbnRyb2R1Y2VkIGJ5IHRoaXMgY29tbWl0IGFuZCB0aGUKCSAgMiBwcmV2aW91cyBjb21taXRzOgoJICAqIHJlY2VpdmluZyBhIGJ1ZmZlciAoX2NoYWluKSBieSAyMCUKCSAgKiBwb3BwaW5nIGEgYnVmZmVyIChfbG9vcCkgYnkgMTQlCgkgIE51bWJlcnMgYWNxdWlyZWQgdGhyb3VnaCBjYWxsZ3JpbmQgcGFzc2luZyAxMDAwMDAgYnVmZmVycyB0aHJvdWdoIHF1ZXVlLgoKMjAwOS0wOS0yOCAxNToyMDowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBwbHVnaW5zL3F1ZXVlOiBBdm9pZCB1c2VsZXNzIHNlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgY2FsY3VsYXRpb25zLgoJICAqIENhY2hlIHNyYyBhbmQgc2luayB0aW1lCgkgICogVXNlIGEgYm9vbGVhbiB0byBrbm93IHdoZXRoZXIgc3JjL3NpbmsgdGltZSBuZWVkIHRvIGJlIHJlY2FsY3VsYXRlZAoJICBBdm9pZHMgNTAlIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpCgoyMDA5LTA5LTI4IDEzOjIxOjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBwbHVnaW5zL3F1ZXVlOiBKdXN0IGNhc3QgdG8gdGhlIG9iamVjdCBwYXJlbnQgaW5zdGVhZCBvZiB0eXBlY2hlY2tpbmcuCgoyMDA5LTA5LTIzIDE2OjE5OjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYmVuY2htYXJrOiBOZXcgYmVuY2htYXJrIGZvciB0ZXN0aW5nIGNvbnRlbnRpb24gd2hlbiBjcmVhdGluZyBidWZmZXJzCgoyMDA5LTA5LTIzIDE2OjE3OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBEb24ndCBhY3RpdmF0ZSB0cmFjaW5nIGlmIG5vdCByZXF1ZXN0ZWQuCgoyMDA5LTEwLTA3IDA4OjM3OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBpbml0IG1vcmUgdmFyaWFibGVzIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgb24gb3N4CgkgIEluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBhbmQgbWFrZSB0aGUgYnVpbGQgYm90IGhhcHB5CgkgICh0aGUgY29tcGlsZXIgbW9zdCBsaWtlbHkgY29tcGxhaW5zIGFib3V0IHRoaXMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cKCSAgaGVyZSB0aGF0IGZhaWxfdW5sZXNzIHdpbGwgYWJvcnQvZXhpdCBpbiB0aGUgcGF0aCB3aGVyZSBpdCBmYWlscykuCgoyMDA5LTA5LTI2IDExOjQzOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbXByb3ZlIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24KCSAgUGFkcyBoYXZlIHRoZWlyIEdzdFNpbmdsZVF1ZXVlIHN0b3JlZCBhcyBlbGVtZW50IHByaXZhdGUgZGF0YQoJICBzbyB0aGVyZSdzIG5vIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIHNpbmdsZSBxdWV1ZXMKCSAgZXZlcnkgdGltZS4gQWxzbyBldmVyeSBwYWQgb25seSBoYXMgYSBzaW5nbGUgaW50ZXJuYWwgbGluayBzbwoJICB1c2UgYSBzaW5nbGUgaXRlcmF0b3IgaW5zdGVhZCBvZiBhIGNvbXBsZXggY3VzdG9tIGl0ZXJhdG9yLgoJICBTZXQgdGhlIGVsZW1lbnQgcHJpdmF0ZSBkYXRhIG9mIHRoZSBwYWQgdG8gTlVMTCB3aGVuIGZyZWVpbmcgdGhlCgkgIHNpbmdsZSBxdWV1ZS4KCjIwMDktMDktMTcgMTY6MzA6NDMgLTA0MDAgIEpvaGFuIEJpbGllbiA8am9iaUBsaXRsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgYW5ub3RhdGlvbnMgZm9yIGdzdF9lbGVtZW50X3F1ZXJ5X3tkdXJhdGlvbixwb3NpdGlvbn0KCSAgRml4ZXMgYnVnICM1OTU1MTEuCgoyMDA5LTEwLTA1IDAwOjExOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2ZXJzaW9uIG9mIGdzdF9ieXRlX3JlYWRlcl9za2lwCgoyMDA5LTEwLTA3IDAwOjQ3OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbiBmaWxlcyBmb3IgbmV3IGFuZCBjaGFuZ2VkIHN0cmluZ3MKCjIwMDktMDktMjggMjI6NDM6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHRha2UgbG9ja3MgYXJvdW5kIHNtYWxsZXIgc2VjdGlvbgoJICBXZSBkb24ndCBuZWVkIHRoZSBob2xkIHRoZSBwcm94eSBtdXRleCBsb2NrZWQgZm9yIGdldHRpbmcgdGhlIGludGVybmFsIHBhZCBhbmQKCSAgZm9yIGxpbmtpbmcgdGhlIG5ldyB0YXJnZXQgcGFkIHdoZW4gd2UgcmV0YXJnZXQuIFNvIHRha2UgdGhlIGxvY2sgYSBsaXR0bGUgbGF0ZXIKCSAgYW5kIHJlbGVhc2UgaXQgZWFybGllci4KCSAgRml4ZXMgIzU5NjM2NgoKMjAwOS0xMC0wNCAxOTo1MTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBvbiBvc3gKCSAgSW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIGFuZCBtYWtlIHRoZSBidWlsZCBib3QgaGFwcHkKCSAgKHRoZSBjb21waWxlciBtb3N0IGxpa2VseSBjb21wbGFpbnMgYWJvdXQgdGhpcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdwoJICBoZXJlIHRoYXQgZmFpbF91bmxlc3Mgd2lsbCBhYm9ydC9leGl0IGluIHRoZSBwYXRoIHdoZXJlIGl0IGZhaWxzKS4KCjIwMDktMTAtMDMgMjE6MDg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBnc3Q6IHJlbW92ZSBtb3JlIHVubmVjZXNzYXJ5IGNhc3Qgd2hlbiB1c2luZyBnX3NpZ25hbF8qKCkKCjIwMDktMTAtMDMgMjA6NDk6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkYXRhcXVldWUsIGVsZW1lbnRzOiBhdm9pZCB1bm5lY2Vzc2FyeSBydW50aW1lIHR5cGUgY2hlY2tzCgoyMDA5LTEwLTA1IDE2OjQxOjUwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBVcGRhdGUgdGhlIHJlbGVhc2Ugc2NyaXB0CgkgIFJlbW92ZSBvbGQgY3J1ZnQgZnJvbSB0aGUgcmVsZWFzZSBzY3JpcHQsIGFuZCBjaGFuZ2Ugc29tZSBDVlMKCSAgcmVmZXJlbmNlcyB0byBlcXVpdmFsZW50IGdpdCBjb21tYW5kcwoKMjAwOS0xMC0wNCAxNDozMDozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEFkZCBhIG1hZ2ljIG51bWJlciBhbmQgbWF4aW11bSBzaXplIGxpbWl0LgoJICBHdWFyZCBhZ2FpbnN0IGEgaG9zdGlsZSBjaGlsZCBwcm9jZXNzIHRoYXQgc2VuZHMgYm9ndXMgZGF0YQoJICBkdWUgdG8gbWVtb3J5IGNvcnJ1cHRpb24gYnkgYWRkaW5nIGEgbWFnaWMgbnVtYmVyIHRvIGVhY2ggcGFja2V0LAoJICBhbmQgbGltaXQgdGhlIG1heGltdW0gc2l6ZSBvZiBhbnkgbWVzc2FnZSB0byAzMk1CCgoyMDA5LTAyLTA5IDEzOjMzOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHJlZ2lzdHJ5OiBBbHNvIGNoZWNrIHRoZSBiaW5hcnkgcmVnaXN0cnkgY2h1bmsgdmVyc2lvbiBvZiB0aGUgY2hpbGQuCgkgIFdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBmdW5jdGlvbiBwbHVnaW4tc2Nhbm5lciwgaW5jbHVkZSBhIGNoZWNrIG9uIHRoZQoJICB2ZXJzaW9uIG9mIHRoZSBiaW5hcnkgcmVnaXN0cnkgY2h1bmtzIGl0IHNlbmRzLCB0byBtYWtlIHN1cmUgaXQncwoJICB3aGF0IHdlIHVuZGVyc3RhbmQuCgoyMDA5LTAyLTA2IDA5OjQ5OjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICByZWdpc3RyeTogU3VwcG9ydCBpbnN0YWxsZWQvdW5pbnN0YWxsZWQgcGx1Z2luLXNjYW5uZXIgaGVscGVyCgkgIEFkZCBhIHNpbXBsZSB2ZXJzaW9uIGNoZWNrIHdoZW4gc3RhcnRpbmcgdGhlIHBsdWdpbi1zY2FubmVyIHNvIHdlIGNhbgoJICB2ZXJpZnkgd2UncmUgdGFsa2luZyB0byBvbmUgdGhhdCB0YWxrcyB0aGUgc2FtZSBsYW5ndWFnZS4KCSAgRmlyc3QgdHJ5IGEgcGx1Z2luLXNjYW5uZXIgaW4gdGhlIGluc3RhbGxlZCBwYXRoLCB0aGVuIHRyeSBvbmUgdmlhIHRoZQoJICBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciBpZiB0aGF0IGRvZXNuJ3Qgd29yay4KCSAgVXBkYXRlIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQuCgkgIEluc3RhbGwgdGhlIHBsdWdpbi1zY2FubmVyIHRvIHRoZSBsaWJleGVjIGRpcgoKMjAwOS0wMS0zMCAxNDoxODoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmVtb3ZlIGNoZWNraW5nIGZvciBhbmQgbWVudGlvbnMgb2YgZm9yayB3aGVyZSBwb3NzaWJsZS4KCSAgV2Ugbm8gbG9uZ2VyIHVzZSBmb3JrKCkgZGlyZWN0bHksIGluc3RlYWQgdXNpbmcgZ2xpYidzIHNwYXduCgkgIGZ1bmN0aW9uYWxpdHksIHNvIGRvbid0IGNoZWNrIGZvciBpdCwgYW5kIGRvbid0IHVzZSBpdCBpbiB0aGUKCSAgZG9jdW1lbnRhdGlvbiBub3Rlcy4KCjIwMDktMDEtMzAgMTM6MDY6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBSZS1lbmFibGUgYW5kIGZpeCBkaXNhYmxlZCBiaXQgb2YgdGhlIHJlZ2lzdHJ5IHRlc3QKCjIwMDktMDEtMzAgMTM6MDQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBPbmx5IGxvYWQgdGhlIHJlZ2lzdHJ5IGNhY2hlIG9uY2UgcGVyIHByb2Nlc3MuCgkgIFdoZW4gdXBkYXRpbmcgdGhlIHJlZ2lzdHJ5LCB3ZSBkb24ndCBuZWVkIHRvIHJlLXJlYWQgdGhlIHJlZ2lzdHJ5IGNhY2hlCgkgIGFuZCB3YXN0ZSB0aW1lIHJlcGxhY2luZyBhbGwgb3VyIGV4aXN0aW5nLCBob3BlZnVsbHkgaWRlbnRpY2FsLCBwbHVnaW5zCgkgIGFuZCBmZWF0dXJlcyB0aGF0IHdlJ3JlIGFib3V0IHRvIHJlLXNjYW4gYW55d2F5LgoKMjAwOS0wMS0yOSAxMzoyMjoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyB0aGUgcmVnaXN0cnkuCgkgIEFkZCB0aGUgZnVsbCBzZXQgb2YgZGVidWcgYWJvdXQgd2h5IGl0J3MgZGVjaWRlZCB0aGF0IGEgZ2l2ZW4gcGx1Z2luIGlzCgkgIHN0YWxlIG9yIG5vdCwgYW5kIGluY2x1ZGUgdGhlIHBsdWdpbiBuYW1lIHdoZW4gZmluYWxpemluZyBpdC4KCjIwMDktMDEtMjMgMjE6MTU6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgQWRkIHJlc3RhcnRpbmcgb2YgdGhlIHBsdWdpbiBsb2FkZXIgYW5kIGJsYWNrbGlzdGluZyBvZiBicm9rZW4gZmlsZXMKCjIwMDktMDEtMjMgMTU6NDc6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUGx1Z2luIGxvYWRlciBwaGFzZSAyCgkgIHBoYXNlIDIgLSBtYWtlIHRoZSBwbHVnaW4gbG9hZGVyIHJlY2VpdmUgdGhlIGxpc3Qgb2YgcGx1Z2lucyB0byBsb2FkIGFuZAoJICBzZW5kIGJhY2sgdGhlIHJlc3VsdHMgYXN5bmNocm9ub3VzbHksIHNvIHdlIGRvbid0IGNvbnRleHQgc3dpdGNoIGJhY2sKCSAgYW5kIGZvcnRoIHNvIG11Y2guCgoyMDA5LTAzLTE0IDIzOjA3OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL3BsdWdpbi1zY2FubmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IEFkZCByZWdpc3RyeSBoZWxwZXIgcGhhc2UgMQoJICBQaGFzZSAxIG9mIGFkZGluZyB0aGUgcmVnaXN0cnkgc2NhbiBoZWxwZXIKCjIwMDktMDktMTQgMjM6MzE6MTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBSZWFycmFuZ2Ugc29tZSB0aGluZ3MuCgkgIFByZXBhcmUgdG8gbGFuZCB0aGUgZXh0ZXJuYWwgcGx1Z2luIGhlbHBlciBwcm9jZXNzCgoyMDA5LTEwLTA2IDE5OjQxOjM4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yNS4xCgo9PT0gcmVsZWFzZSAwLjEwLjI1ID09PQoKMjAwOS0xMC0wNSAxMjo1NzowMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJICBSZWxlYXNlIDAuMTAuMjUKCjIwMDktMTAtMDUgMTI6NDE6NDIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0xMC0wMSAxNjoyNDo1MiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC40IHByZS1yZWxlYXNlCgoyMDA5LTA5LTMwIDE1OjUyOjMzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGliZ3N0Y2hlY2s6IERvbid0IHVzZSBjaGFyYWN0ZXIgY2xhc3NlcyBpbiBzZWQgZXhwcmVzc2lvbnMKCSAgQXBwYXJlbnRseSB0aGUgc2VkIHRoYXQgc2hpcHMgb24gU29sYXJpcyAxMCBkb2Vzbid0IHN1cHBvcnQgY2hhcmFjdGVyCgkgIGNsYXNzZXMgbGlrZSBbOmFsbnVtOl0sIHNvIGRvbid0IHVzZSB0aGVtLiBXZSBkb24ndCBuZWVkIHRoZW0gZm9yIHRoZQoJICBzeW1ib2wgbmFtZXMgdGhhdCBhcmUgYmVpbmcgZXh0cmFjdGVkIGFueXdheS4KCSAgQWxzbywgdXNlICQoU0VEKSBpbnN0ZWFkIG9mICdzZWQnCgkgIEZpeGVzOiAjNTk2ODc3CgoyMDA5LTA5LTE3IDAxOjIwOjAzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC4zIHByZS1yZWxlYXNlCgoyMDA5LTA5LTE1IDA5OjQxOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IEdNUCBzY2FsaW5nIHVuaXQgdGVzdAoJICBHTVAgb25seSB1c2VzICJ1bnNpZ25lZCBsb25nIGludCIsIHdoaWNoIGlzIDMyIGJpdAoJICBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcyBhbmQgY2FuJ3QgaG9sZCBhIGd1aW50NjQuCgkgIFRoaXMgcmVzdWx0ZWQgaW4gZmFsc2UgdW5pdCB0ZXN0IGZhaWx1cmVzIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzLgoJICBGaXhlcyBidWcgIzU5NTEzMy4KCjIwMDktMDktMTQgMTI6NDc6MjYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgRml4IG91dC1vZi10cmVlIGJ1aWxkCgoyMDA5LTA5LTE0IDE0OjA3OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2NzOiBHU1RfTUVTU0FHRV9TVFJFQU1fU1RBVFVTIGlzIGltcGxlbWVudGVkIG5vd2FkYXlzLgoJICBEb2NzIHdlcmUgc3RpbGwgbWVudGlvbiBpdCBhcyAibm90IHlldCBpbXBsZW1lbnRlZCIuCgoyMDA5LTA5LTEyIDEzOjUyOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEJ1aWxkIHBrZ2NvbmZpZyBiZWZvcmUgYWxsIGxpYnJhcmllcyBhbmQgc2V0IFBLR19DT05GSUdfUEFUSAoJICBUaGlzIHdheSBnLWlyLXNjYW5uZXIgY2FuIGZpbmQgdGhlIGdzdHJlYW1lci0wLjEwIHBrZy1jb25maWcgZmlsZS4KCjIwMDktMDktMTIgMTM6NTE6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBpbnRyb3NwZWN0aW9uOiBEb24ndCB0eXBlZGVmIEdzdFRhZ0xpc3QgdG8gR3N0U3RydWN0dXJlIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24KCjIwMDktMDktMTEgMjM6MjE6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9MSU5HVUFTOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuMiBwcmUtcmVsZWFzZQoKMjAwOS0wOS0xMSAyMjo0Mjo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRG9uJ3QgdXNlIEMrKyBzdHlsZSBjb21tZW50cwoKMjAwOS0wOS0xMSAyMjoyMjozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRGlzYWJsZSByZXN0cmljdGlvbiB0aGF0IHN0cnVjdHVyZSBjaGFuZ2VzIGFyZSBzaW5rIHBhZHMKCSAgVGhlIHN0cnVjdHVyZV9jaGFuZ2UgbWVzc2FnZSB3YXMgb3JpZ2luYWxseSBlbWl0dGVkIG9uIHNvdXJjZSBwYWRzIGFuZAoJICB0aGVuIHJlY2VudGx5IGNoYW5nZWQgdG8gYmUgc2luayBwYWRzLiBUaGlzIGNhdXNlcyBhIGZhaWx1cmUgaW4gdGhlCgkgIGdzdC1weXRob24gdGVzdHN1aXRlLiBEaXNhYmxlIHRoZSByZXN0cmljdGlvbiBzbyB0aGF0IHRoZSBwdWJsaXNoZWQKCSAgYmVoYXZpb3VyIGlzIHN0aWxsIGFsbG93ZWQuCgoyMDA5LTA5LTExIDE4OjI0OjE4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIGNoZWNrOiBGaXggdmVyc2lvbiBjaGVjayB0ZXN0cwoJICBBY2NvbW9kYXRlIHRoZSBzbGlnaHRseSBjaGFuZ2VkIHNlbWFudGljcyBpbiB0aGUgcGx1Z2luIHZlcnNpb24gY2hlY2sKCSAgd2hlcmUgYSBDVlMgdmVyc2lvbiBqdXN0IGJlZm9yZSBhIHJlbGVhc2UgaXMgYWNjZXB0YWJsZS4KCjIwMDktMDktMTEgMjE6MjA6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogZG9uJ3QgY3Jhc2ggaW4gY2xlYW5pbmcgdXAgb24gZXJyb3IuCgkgIERvbid0IGRlcmVmZXJlbmNlIE5VTEwgcG9pbnRlcnMuCgoyMDA5LTA3LTIwIDEyOjU0OjAwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRlYnVnOiB1c2UgZHVtbXkgY29kZSB0byBhdm9pZCBzcHVyaW91cyBzZW1pY29sb25zCgkgIEZpeGVzIGJ1ZyAjNTg5MTczLgoKMjAwOS0wOS0xMCAxMTo1MzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0xMCAxMTo0MTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGltcHJvdmUgdmVyc2lvbiBjaGVjawoJICBBbHNvIHBhcnNlIHRoZSBuYW5vIG9mIHRoZSB2ZXJzaW9uIGFuZCBhc3N1bWUgdGhhdCBYLlkuWi0xLjEgPj0gWC5ZLloKCSAgV2l0aCB0aGlzIGNoYW5nZSB3ZSBjYW4gYWxzbyBjaGVjayBkZXZlbG9wbWVudCB2ZXJzaW9ucyBhZ2FpbnN0IHRoZSB2ZXJzaW9uIG9mCgkgIHRoZSB1cGNvbW1pbmcgcmVsZWFzZS4KCjIwMDktMDktMTAgMTA6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQWRkIEZJWE1FIGZvciAwLjExIHRvIG5vdCB0eXBlZGVmIEdzdFRhZ0xpc3QgdG8gYmUgYSBHc3RTdHJ1Y3R1cmUKCSAgU2VlIGJ1ZyAjNTE4OTM0LgoKMjAwOS0wOS0wOSAxNjoyOToxMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggdHlwbyBpbiBpbmxpbmUgZG9jdW1lbnRhdGlvbgoKMjAwOS0wOS0wOSAxNzo1Nzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDktMDkgMTg6Mzg6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBBZGQgYSBjb21tZW50IHRvIHRoZSBzY2FsaW5nIGZ1bmN0aW9ucyB0byBleHBsYWluIHdoeSB0aGUgcm91bmRpbmcgaXMgY29ycmVjdAoKMjAwOS0wOS0wOSAxNjo0NToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZG9uJ3QgdW5yZWYgTlVMTCBjYXBzCgkgIENhcHMgY2FuIGJlIE5VTEwgc28gZG9uJ3QgY2FsbCB1bnJlZiBvbiBpdCB1bmNvbmRpdGlvbmFsbHksIGluc3RlYWQgdXNlIGFuCgkgIGV4aXN0aW5nIGV4aXQgcGFkIGZvciB0aGUgZnVuY3Rpb24uCgoyMDA5LTA5LTA5IDE0OjUzOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgZ2NjJ3MgX191aW50MTI4X3QgZm9yIDY0Yml0IHVuc2lnbmVkIGludGVnZXIgc2NhbGluZwoJICBUaGlzIGlzIGF2YWlsYWJsZSBpbiBuZXdlciBnY2MgcmVsZWFzZXMgYW5kIGl0IHNob3VsZCBvbmx5IGV4aXN0CgkgIG9uIHBsYXRmb3JtcyB0aGF0IHByb3ZpZGUgc29tZSBuYXRpdmUgMTI4Yml0IGludGVnZXIgYXJpdGhtZXRpYwoJICBpbnN0cnVjdGlvbnMuCgkgIFRoZSB4ODYtNjQgYXNzZW1ibHkgZm9yIHRoaXMgaXMgc3RpbGwga2VwdCBmb3Igbm9uLWdjYyBjb21waWxlcnMKCSAgdGhhdCBkb24ndCBwcm92aWRlIF9fdWludDEyOF90IG1hZ2ljLgoKMjAwOS0wOS0wOSAwOTozODo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkgIGRlc2lnbjogYWRkIGlkZWFzIGZvciBidWZmZXIgbWFuYWdlbWVudAoJICBSaWdodCBub3cgd2UncmUgb3BlcmF0aW5nIHN1Ym9wdGltYWwgd2hlbiB0YWxraW5nIHRvIGtlcm5lbCBpbnRlcmZhY2VzLiBXcml0ZQoJICBkb2VzbiBzb21lIGlkZWFzLgoKMjAwOS0wOS0wNyAxODoyNzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZml4IHdoaXRlc3BhY2UKCjIwMDktMDktMDMgMTk6MDY6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogZml4IHdoaXRlc3BhY2UKCjIwMDktMDktMDcgMTY6MTQ6NTcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IEZpeCB0eXBvIGluIGdzdF92YWx1ZV91bmlvbigpCgoyMDA5LTA5LTA2IDE5OjQzOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBiaXRyZWFkZXIsIGJ5dGVyZWFkZXI6IGFkZCBzb21lIEZJWE1FIDAuMTEgY29tbWVudHMgYW5kIGZpeCBpbmRlbnRpbmcKCjIwMDktMDktMDQgMTc6MTU6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgdW5jaGVja2VkIGFuZCBpbmxpbmUgdmVyc2lvbnMgb2YgdGhlIGZsb2F0IGdldHRlcnMvcGVla2VycwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfZmxvYXQqX3VuY2hlY2tlZCgpCgoyMDA5LTA5LTA0IDE2OjUyOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2ZXJzaW9ucyBvZiB0aGUgbW9zdCBjb21tb24gZ2V0dGVycyBhbmQgc2V0dGVycwoKMjAwOS0wOS0wMiAxMToyMDowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lZCBfdW5jaGVja2VkKCkgdmFyaWFudHMgZm9yIHNvbWUgZnVuY3Rpb25zCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla18qX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF8qX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3twZWVrLGdldCxkdXB9X2RhdGFfdW5jaGVja2VkKCkKCjIwMDktMDktMDUgMTI6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBTdHJpcCBHc3QgcHJlZml4IGZyb20gYWxsIHR5cGVzL2Z1bmN0aW9ucwoKMjAwOS0wOS0wNSAxMjoyMjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEZpeCBmb3Igb3V0LW9mLXRyZWUgYnVpbGRzCgoyMDA5LTA5LTA1IDEyOjA0OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IG91dC1vZi10cmVlIGJ1aWxkCgoyMDA5LTA5LTA1IDExOjUxOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IGJ1aWxkIGlmIGdpci1yZXBvc2l0b3J5IGlzIG5vdCBpbnN0YWxsZWQKCjIwMDktMDktMDUgMDk6MzY6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBuZXQ6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNSAwOTozNDozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgIGRhdGFwcm90b2NvbDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgkgIEJlY2F1c2Ugb2YgYSBidWcgaW4gZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRoaXMgaXMgZGlzYWJsZWQgZm9yIG5vdy4KCjIwMDktMDktMDUgMDk6Mjg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjI3OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjIzOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBnc3RiYXNlOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDQgMjA6NTY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU1MDYxNi4KCjIwMDktMDktMDUgMTA6MTk6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NGY5NWUzIHRvIDE5ZmE0ZjMKCjIwMDktMDktMDQgMTk6Mzc6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBkb2NzIGZvciBnc3RfYnl0ZV9yZWFkZXJfe2dldHxwZWVrfV9mbG9hdCooKQoKMjAwOS0wOS0wNCAxMTozNTo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wNCAwOTo1MToyNiArMDIwMCAgQXVyZWxpZW4gR3JpbWF1ZCA8Z3N0ZWx6ekB5YWhvby5mcj4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBPbmx5IHVucmVmIEVPUyBtZXNzYWdlIGFmdGVyIGl0IGlzIG5vdCB1c2VkIGFueW1vcmUKCSAgRml4ZXMgYnVnICM1OTQxMDcuCgoyMDA5LTA5LTAyIDE4OjU0OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHN0YXRlczogcG9zdCBzdHJ1Y3R1cmUgY2hhbmdlIG9uIHNpbmtwYWRzCgkgIFBvc3QgdGhlIHN0cnVjdHVyZSBjaGFuZ2UgbWVzc2FnZXMgb24gdGhlIHNpbmtwYWRzIG9mIHRoZSBlbGVtZW50cy4gVGhpcyBhbGxvd3MKCSAgdXMgdG8gY2F0Y2ggdW5saW5rZWQgcGFkcyBlYXJsaWVyIHdpdGhvdXQgZW5kaW5nIHVwIHdpdGggaW5jb25zaXN0ZW50IGVsZW1lbnQKCSAgZGVncmVlcy4KCjIwMDktMDktMDIgMTg6MTM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYXZvaWQgZmFsc2UgJ2xvb3AgZGV0ZWN0ZWQnIHdhcm5pbmdzCgkgIFdoZW4gd2UgZGV0ZWN0IGEgcGFkIHVubGluayBpbiBwcm9ncmVzcywgd2Ugd2lsbCBub3QgYmUgdXBkYXRpbmcgdGhlIGRlZ3JlZSBvZgoJICB0aGUgcGFyZW50IGVsZW1lbnQuIFRoaXMgY2FuIGNhdXNlIGZhbHNlIGxvb3AgZGV0ZWN0ZWQgd2FybmluZ3MgYmVjYXVzZSB0aGUKCSAgZGVncmVlIGNvdW50ZXIgaXMgaW52YWxpZC4gSGFuZGxlIHRoaXMgY2FzZSBieSBtYXJraW5nIHRoZSBpdGVyYXRvciBhcyAnZGlydHknCgkgIHdoZW4gd2UgZGV0ZWN0IGEgcGFkIHVubGluayBhbmQgYXZvaWQgZW1pdGluZyB0aGUgd2FybmluZyBpbiB0aGlzIGNhc2UuIFdlIGhhdmUKCSAgdG8gY29udGludWUgb3VyIHN0YXRlIGNoYW5nZSBhcyBnb29kIGFzIHdlIGNhbiwgd2Ugd2lsbCBldmVudHVhbGx5IHJlc3luYyB3aGVuCgkgIHRoZSBwYWQgdW5saW5rIGNvbXBsZXRlZC4KCjIwMDktMDktMDEgMTY6NDk6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMDEgMTY6NDk6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wMSAxMjowNzozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IERvbid0IGxpc3QgdGhlIHN0cmVhbXMgc3ViZGlyIHR3aWNlIGluIGV4YW1wbGVzIE1ha2VmaWxlCgkgIExpc3RpbmcgdGhlICdzdHJlYW1zJyBzdWJkaXIgdHdpY2UgaW4gRElTVF9TVUJESVJTIGJyZWFrcyBkaXN0Y2hlY2suCgoyMDA5LTA5LTAxIDEyOjA1OjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogRG9uJ3QgcHJvcGFnYXRlIGEgTlVMTCBjYWNoZWQgaW5kZXggdG8gYWRkZWQgZWxlbWVudHMKCSAgV2hlbiBhbiBlbGVtZW50IGlzIGFkZGVkIHRvIHRoZSBiaW4sIG9ubHkgc2V0IHRoZSBpbmRleCBpZiB3ZSBoYXZlIGEKCSAgY2FjaGVkIGluZGV4LCByYXRoZXIgdGhhbiBzZXR0aW5nIGEgTlVMTCBpbmRleCBvbiBlbGVtZW50cyB0aGF0IG1pZ2h0CgkgIGhhdmUgYSBkZWZhdWx0IGluZGV4IG9iamVjdCBvZiB0aGVpciBvd24uCgoyMDA5LTA3LTE5IDIxOjIzOjE4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBBZGQgYSBub3RlIGFib3V0IHJlZ2VuZXJhdGluZyB0aGUgY2hhbmdlbG9nIGluIHRoZSByZWxlYXNlIHNjcmlwdAoKMjAwOS0wOS0wMSAxMDowMzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCB0YWtlIG9iamVjdCBsb2NrIGZvciBnX2NyaXRpY2FsKCkgYW5kIGZsZXNoIG91dCB3YXJuaW5nIG1lc3NhZ2Ugc29tZSBtb3JlCgoyMDA5LTA5LTAxIDEwOjIxOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIHNpbmdsZSBpdGVyYXRvcgoKMjAwOS0wOS0wMSAxMDoyMDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IE9ubHkgdmlzaXQgdGhlIGVsZW1lbnQgYSBzaW5nbGUgdGltZSBpbiB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA5LTAxIDA3OjI3OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IHNpbmdsZSBpdGVyYXRvciBmb3IgTlVMTCBvYmplY3RzIGFuZCBub24tR1R5cGVJbnN0YW5jZSBvYmplY3RzCgkgIEZpeGVzIGJ1ZyAjNTkzNzE5LgoKMjAwOS0wOS0wMSAwMDowMDo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZGVidWc6IG1vcmUgZGV0YWlsIGluIHdyb25nLXN0YXRlLW9uLWRpc3Bvc2UgZXJyb3IuCgkgIEFsc28gdGVsbCBpbiB3aGljaCBzdGF0ZSB0aGUgZWxlbWVudCBhY3R1YWx5IGlzIGFuZCBpZiBpdCBpcyBldmVudHVhbHkKCSAgc3RhdGUtbG9ja2VkLgoKMjAwOS0wOC0zMSAyMDozODowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogZml4IGRvY3MgZm9yIF9uZXdfc2luZ2xlKCkuCgoyMDA5LTA4LTMxIDE2OjU2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGRvY3M6IGl0J3MgaXRzCgkgIFRoZSBwYW5kYSBzYXlzIG5vIQoKMjAwOS0wOC0yOSAyMDo0NDozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgcmVnaXN0cnk6IGZpbGwgaW4gZWxlbWVudGZhY3Rvcnkgd2hlbiByZWdpc3RlcmluZyBlbGVtZW50CgkgIGVsZW1lbnRmYWN0b3J5IGZpZWxkIGlzIGZpbGxlZCBpbiBieSBnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQsCgkgIGJ1dCBpdCBuZWVkcyBzb21lIGluZm8gc2V0IG9uIHRoZSBlbGVtZW50J3MgdHlwZSwgc28gaGF2ZSBpdAoJICBhdmFpbGFibGUgcHJpb3IgdG8gY2xhc3Mgc3RydWN0dXJlIGNyZWF0aW9uIHNwaW5uaW5nIHVwLgoJICBUaGlzIGFmZmVjdHMgZWxlbWVudHMgdGhhdCBoYXZlIGEgd2VsbC1rbm93bi9wdWJsaWMgdHlwZSAoZS5nLiBwaXBlbGluZSkKCSAgYW5kIGNhbiBiZSBjcmVhdGVkIGJ5IG90aGVyIG1lYW5zIHRoYW4gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlCgkgICh3aGljaCB3aWxsIGFsc28gZmlsbCBpbiB0aGUgZWxlbWVudCdzIGZhY3RvcnkpLgoKMjAwOS0wOC0zMSAxMTo0NToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIDEyOGJpdHMgZGl2aXNpb24gb24geDg2XzY0CgoyMDA5LTA4LTI5IDA0OjQ0OjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogZml4IGNvbXBpbGF0aW9uIG9mIHdpbjMyIGNvZGUKCSAgRml4ZXMgIzU5MzQ2MC4KCjIwMDktMDgtMjggMTg6Mzc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogY2FjaGUgaW5kZXgKCSAgQ2FjaGUgdGhlIGxhc3QgaW5kZXggdGhhdCB3YXMgc2V0IHdpdGggX3NldF9pbmRleCgpIGFuZCByZXR1cm4gdGhpcyBpbiB0aGUKCSAgX2dldF9pbmRleCgpIGNhbGwuCgkgIFNldCB0aGUgY2FjaGVkIGluZGV4IG9uIG5ld2x5IGFkZGVkIGVsZW1lbnRzLgoJICBGaXhlcyAjNTY2ODgxCgoyMDA5LTA4LTI4IDE4OjM1OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogYmV0dGVyIHR5cGUgY2hlY2tzCgkgIEFkZCBHU1RfQ0xPQ0sgdHlwZWNoZWNrIGZvciBfc2V0X2Nsb2NrKCkuCgkgIEFsbG93IHNldHRpbmcgTlVMTCBpbmRleGVzIG9uIGVsZW1lbnQgKGNsZWFyIHRoZSBjdXJyZW50IGluZGV4KQoJICBTb21lIHdoaXRlc3BhY2UgZml4ZXMuCgoyMDA5LTA4LTI4IDE4OjE0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDsgd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxODowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgZ3N0X2l0ZXJhdG9yX25ld19zaW5nbGUgdG8gZGVmcwoKMjAwOS0wOC0yOCAxODowMzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE3OjU5OjE1ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIENoZWNrIHN1Z2dlc3RlZCBjYXBzIGZvciBwcm94eSBhbGxvYwoJICBCZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSBhIHN1Z2dlc3Rpb24gaGVyZSB3ZSBkb24ndCBuZWVkCgkgIHRvIGNoZWNrIG9uIGNhcHMgZm9yIHByb3h5X2FsbG9jIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIG9uIHRoZQoJICBzdWdnZXN0ZWQgY2FwcyBpbnN0ZWFkLgoKMjAwOS0wOC0yOCAxNzo0OToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxNzowMjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogdXNlIHByZWZvcm1hbmNlIGNvdW50ZXJzIG9uIHdpbmRvd3MKCSAgQmFzZWQgb24gY2xvY2sgaW1wbGVtZW50YXRpb24gYnkgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCSAgVHJ5IHRvIGdldCB0aGUgdGltZSBvbiB3aW5kb3dzIHVzaW5nIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVycy4gVGhlc2UgaGF2ZSBhIG11Y2gKCSAgaGlnaGVyIHJlc29sdXRpb24gYW5kIGFjY3VyYWN5IHRoYW4gdGhlIHJlZ3VsYXIgZ2V0Y3VycmVudHRpbWUoKS4gQmUgY2FyZWZ1bCB0bwoJICBmYWxsIGJhY2sgdG8gcmVndWxhciBnZXRjdXJyZW50dGltZSgpIG9yIHBvc2l4IGNsb2NrcyB3aGVuIHBlcmZvcm1hbmNlIGNvdW50ZXJzCgkgIGFyZSBub3QgYXZhaWxhYmxlLgoKMjAwOS0wOC0yOCAxNjowNzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBzeXN0ZW1jbG9jazogZml4IGluZGVudGF0aW9uCgoyMDA5LTA4LTI4IDE1OjMyOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2Ugc2hpZnQgaW5zdGVhZCBvZiBkaXZpc2lvbgoJICBXZSBjYW4gdXNlIGEgc2hpZnQgZm9yIHNjYWxpbmcgdGhlIGRlbm9taW5hdG9yIGluc3RlYWQgb2YgYSBkaXZpZGUgc2luY2UgdGhlCgkgIGRlbm9tIGlzIGFsd2F5cyBwb3NpdGl2ZS4gVGhpcyBhdm9pZHMgaGF2aW5nIHRoZSBjb21waWxlciBnZW5lcmF0ZSBjb2RlIGZvciB0aGUKCSAgZGlmZmVyZW50IHJvdW5kaW5nIHJ1bGVzIHdoZW4gc2NhbGluZyBuZWdhdGl2ZSB2YWx1ZXMuCgoyMDA5LTA4LTI4IDEzOjQ1OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtYWtlIGlubGluaW5nIGV4cGxpY2l0CgoyMDA5LTA4LTI4IDEyOjQzOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBvcHRpbWl6ZSBmb3IgeDg2XzY0IHdpdGggc29tZSBpbmxpbmUgYXNtCgkgIDY0Yml0IHg4NiBoYXMgbmF0aXZlIDY0eDY0LT4xMjggYml0IG11bHRpcGx5IHRoYXQgd2UgY2FuIHVzZSB3aXRoIHNvbWUgaW5saW5lCgkgIGFzc2VtYmxlciB0byBzcGVlZCB1cCBsYXJnZSBtdWx0aXBsaWNhdGlvbnMuCgkgIFVzZSBic3IgdG8gZmluZCB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MgbW9yZSBlZmZpY2llbnRseS4KCjIwMDktMDgtMjggMTI6MzM6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZhY3RvciBvdXQgdGhlIGxlYWRpbmcgemVybyBjb3VudCBjb2RlCgoyMDA5LTA4LTI4IDEyOjMwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBwYXNzIGNvcnJlY3Rpb24gZmFjdG9yIGFyb3VuZAoJICBQYXNzIHRoZSBjb3JyZWN0aW9uIGZhY3RvciBhcm91bmQgdG8gZ2V0IHJpZCBvZiB0aGUgZW51bSwgc29tZSBjb2RlCgkgIGFuZCBzb21lIGJyYW5jaGVzLgoKMjAwOS0wOC0yOCAxMjoyMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxMjoxOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogbW92ZSBjb21tb24gY29ycmVjdGlvbiBjb2RlIGluIGEgbWFjcm8KCjIwMDktMDgtMjQgMTg6MDE6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI2IDE2OjUxOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWxsb3cgdG8gdXNlIE5VTEwgYXMgb2JqZWN0IGZvciB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA4LTI2IDE2OjM5OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgaXRlcmF0b3I6IEFQSTogQWRkIGdzdF9pdGVyYXRvcl9uZXdfc2luZ2xlKCkKCSAgVGhpcyBhbGxvd3MgIml0ZXJhdGlvbiIgb3ZlciBhIHNpbmdsZSBvYmplY3Qgb2Ygc29tZSB0eXBlLAoJICB3aGljaCBoYXBwZW5zIG9mdGVuIGZvciB0aGUgR3N0UGFkSXRlckludExpbmtzRnVuY3Rpb24gZm9yIGV4YW1wbGUuCgoyMDA5LTA4LTI0IDE3OjU3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJldHVybiByZXN1bHQgb2YgX3NldF9jYXBzKCkKCjIwMDktMDgtMjQgMTc6NTY6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTIyIDE0OjIyOjMxIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R4bWwuaDoKCSAgSXQncyBfX0dOVUNfXywgbm90IF9HTlVDXwoJICBUaGlzIGFwcGVhcnMgdG8gYmUgYW4gOCB5ZWFyIG9sZCBidWcuCgoyMDA5LTA4LTIxIDA5OjU5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIGRvY3M6IGFkZCBsaW5rIHRvIGNnaXQgdGFyYmFsbCBkb3dubG9hZCBvZiBnc3QtdGVtcGxhdGUgaW4gUFdHCgkgIFNvIHBlb3BsZSB3aG8gY2FuJ3QgdXNlIGdpdCBmb3Igc29tZSByZWFzb24gc3RpbGwgY2FuIGdldCBob2xkCgkgIG9mIHRoZSBjb2RlLiBTZWUgIzU5MTA2OS4KCjIwMDktMDgtMjAgMTE6NTQ6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogYWRkIGd1YXJkIHRvIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyCgkgIFNvIHdlIGRvbid0IGp1c3QgY3Jhc2ggaWYgdGhlcmUncyBhIHJlZmNvdW50aW5nIGJ1ZyBzb21ld2hlcmUgZWxzZS4KCjIwMDktMDgtMTkgMTY6MjQ6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBEb24ndCB0YWxrIGFib3V0IHRoZSBkZXByZWNhdGVkIGxpYmdub21lIGFuZCBHTk9NRS1WRlMKCSAgSW5zdGVhZCB0YWxrIGFib3V0IEdJTyBhbmQgY2hhbmdlIHRoZSBvcHRpb24gcGFyc2luZyBleGFtcGxlIHRvCgkgIG5vdCBpbml0aWFsaXplIGxpYmdub21lIGJ1dCBvbmx5IEdUSy4KCSAgRml4ZXMgYnVnICM1OTIyMzMuCgoyMDA5LTA4LTE5IDE1OjI1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogTGluayBydHBvb2wtdGVzdCB0byBsaWJwdGhyZWFkIGZvciB1c2luZyB0aGUgUE9TSVggdGhyZWFkcwoJICBBbHNvIHRoZSBvdGhlciBzdHJlYW1zIGV4YW1wbGUgY2FuIHJ1biB3aXRob3V0IHB0aHJlYWRzIHRoZXJlZm9yZQoJICBlbmFibGUgaXQgZXZlbiBpZiBwdGhyZWFkcyBhcmUgbm90IGF2YWlsYWJsZS4KCSAgRml4ZXMgYnVnICM1OTIzMTQuCgoyMDA5LTA4LTE4IDE0OjQ1OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBVc2UgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0X2ludGVybmFsX2xpbmtzCgoyMDA5LTA4LTE4IDE0OjQ1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogVXNlIGl0ZXJhdGVfaW50ZXJuYWxfbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldF9pbnRlcm5hbF9saW5rcwoKMjAwOS0wOC0xOCAxNDowNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0cGFkOiBBZGQgc29tZSBESVNBQkxFX0RFUFJFQ0FURUQgbWFya2VycyBpbiB0aGUgaGVhZGVyIHRvbwoJICBUaGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBzaW5jZSBzb21lIHRpbWUgYW5kCgkgIHRoZXJlIGFscmVhZHkgd2VyZSBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgbWFya2VycyBpbiB0aGUgc291cmNlIGZpbGUsCgkgIG5vdyBhZGQgdGhlbSB0byB0aGUgaGVhZGVyIHRvby4KCSAgRml4ZXMgYnVnICM1OTIyMDkuCgoyMDA5LTA4LTE4IDExOjM4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jczogVXBkYXRlIHRoZSBkZXNpZ24gZG9jcyBmb3IgYmluIHN0YXRlIGNoYW5nZXMgYWNjb3JkaW5nIHRvIGxhc3QgY29tbWl0CgoyMDA5LTA4LTE4IDExOjM2OjM2ICswMjAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IERvbid0IHRyeSB0byBjaGFuZ2UgY2hpbGRyZW4ncyBzdGF0ZSBpZiB0aGV5J3JlIGFscmVhZHkgaW4gdGhlIHN0YXRlIHdlIHdhbnQKCSAgRml4ZXMgYnVnICMzNjg1MzYuCgoyMDA5LTA4LTE4IDExOjMzOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWx3YXlzIGdldCB0aGUgcHJveHlwYWQncyBnaG9zdHBhZCB2aWEgdGhlIGdob3N0cGFkIGluIHRoZSBzcmMgY2FwcyBjaGFuZ2Ugbm90aWZ5IGhhbmRsZXIKCSAgQmVmb3JlIHRoZSBzaWduYWwgaGFuZGxlciB3b3VsZCBnZXQgdGhlIGdob3N0cGFkIHBhc3NlZCBhcyBzZWNvbmQKCSAgYXJndW1lbnQgYnV0IGl0IGNvdWxkJ3ZlIGFscmVhZHkgYmVlbiB1bnJlZmZlZCBhbmQgZGVzdHJveWVkLgoJICBUaGlzIHdvdWxkIHRoZW4gbGVhZCB0byBjcmFzaGVzIGFuZCBhbGwgdGhhdC4KCSAgTm93IHdlIGdldCB0aGUgZ2hvc3RwYWQgZnJvbSB0aGUgcHJveHkgcGFkLCB3aGljaCB3ZSBnZXQgZnJvbSB0aGUKCSAgdGFyZ2V0IHBhZCBhcyBpdCdzIHBlZXIuCgkgIEZpeGVzIGJ1ZyAjNTkxMzE4LgoKMjAwOS0wOC0xOCAwODo0NTowOCArMDIwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGZpbGVzaW5rOiBBZGQgcHJvcGVydHkgdG8gYWxsb3cgdG8gYXBwZW5kIHRvIGFuIGFscmVhZHkgZXhpc3RpbmcgZmlsZQoJICBGaXhlcyBidWcgIzU5MTQ0MS4KCjIwMDktMDgtMTQgMTE6NTM6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFJlbW92ZSBkdXBsaWNhdGVkIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lCgoyMDA5LTA4LTE0IDExOjEyOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogQWRkIHNwZWNpYWwgcmFuZG9tIHVuaXQgdGVzdCBmb3IgNjQgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhpcyB0ZXN0cyAxMDAwMDAgcmFuZG9tIG11bHRpcGxpY2F0aW9ucy9kaXZpc2lvbnMgb2YgYWxsIHNjYWxpbmcKCSAgZnVuY3Rpb24gdmFyaWFudHMgYW5kIGNvbXBhcmVzIHRoZSByZXN1bHQgd2l0aCB0aGUgcmVzdWx0IHRoYXQgaXMKCSAgZ2VuZXJhdGVkIGJ5IEdNUCBvbiB0aGUgc2FtZSBpbnB1dC4KCSAgRm9yIHRoaXMgY2hlY2sgZm9yIEdTTCBhbmQgR01QIGR1cmluZyBjb25maWd1cmUgYnV0IG9ubHkgdXNlCgkgIGl0IGZvciB0aGlzIHNpbmdsZSB1bml0IHRlc3QuCgkgIFRlc3RpbmcgZnVuY3Rpb25zIHdlcmUgcHJvdmlkZWQgYnkgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCjIwMDktMDgtMTMgMTY6MzE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBBZGQgbmV3IHNjYWxpbmcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgoyMDA5LTA4LTEzIDE2OjIwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogQWRkICh2ZXJ5KSBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgdGhlIG5ldyByb3VuZGluZyBzY2FsaW5nIGZ1bmN0aW9ucwoKMjAwOS0wOC0xMyAxNjoxMDozMSArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IEFQSTogQWRkIHJvdW5kaW5nIHRvIG5lYXJlc3QgYW5kIG5leHQgaW50ZWdlciB2ZXJzaW9ucyBvZiB0aGUgNjQgYml0IGludGVnZXIgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhlIG5ldyBmdW5jdGlvbnMgYXJlCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnRfcm91bmQoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50X2NlaWwoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfcm91bmQoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfY2VpbCgpCgkgIEZpeGVzIGJ1ZyAjNTkwOTE5LgoKMjAwOS0wOC0xMiAxMToxMDowNSArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogUmV2ZXJ0IHBhcnRzIG9mIGxhc3QgY2hhbmdlIHRvIG9wdGltaXplIHRoZSBzY2FsaW5nIGZ1bmN0aW9ucyBhZ2FpbgoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTExIDA5OjE2OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogRml4IHZpb2xhdGlvbnMgb2Ygc3RyaWN0LWFsaWFzaW5nIHJ1bGVzIGluIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSgpCgoyMDA5LTA4LTExIDA5OjEwOjQ3ICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBSZWZhY3RvciBnc3RfdXRpbF91aW50NjRfc2NhbGUoKQoJICBUaGlzIHdpbGwgbGF0ZXIgbWFrZSBpdCBwb3NzaWJsZSB0byBwcm92aWRlIHJvdW5kaW5nIHZlcnNpb25zCgkgIG9mIGl0IHdpdGhvdXQgbXVjaCBjb2RlIGR1cGxpY2F0aW9uLgoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTExIDE1OjIwOjE4ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiB1cGRhdGUgZG9jIHN0cmluZwoKMjAwOS0wOC0xMSAxMzoyMTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBBY3R1YWxseSBzdGFydD09c3RvcD09c2VnbWVudF9zdGFydCBpcyBpbnNpZGUgdGhlIHNlZ21lbnQKCSAgU3RpbGwgdGhlIG9sZCBjb2RlIHdhcyB3cm9uZyBhcyBpdCBjbGFpbWVkIHRoYXQgc3RhcnQ9PXN0b3A8c2VnbWVudF9zdGFydAoJICB3b3VsZCBiZSBpbnNpZGUgdGhlIHNlZ21lbnQgYW5kIHJldHVybmVkIGluc2FuZSBjbGlwcGluZyBkaWZmZXJlbmNlcy4KCjIwMDktMDgtMTEgMTM6MDM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogRml4IHVuaXQgdGVzdCBhbmQgYWRkIGFuIGFkZGl0aW9uYWwgdGVzdAoJICBUaGUgcHJldmlvdXMgdGVzdCBhc3N1bWVkIHRoYXQgc3RhcnQ9c3RvcD1zZWdtZW50X3N0YXJ0IHdpbGwKCSAgYmUgaW5zaWRlIHRoZSBzZWdtZW50IGJ1dCB0aGlzIGlzIHdyb25nLgoKMjAwOS0wOC0xMSAxMjo1OToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBDbGlwcGluZyBzaG91bGQgZGV0ZWN0IHN0YXJ0PXN0b3A8c2VnbWVudF9zdGFydCBhcyBvdXRzaWRlIHRoZSBzZWdtZW50CgkgIEJlZm9yZSBpdCByZXR1cm5lZCB0aGF0IFtzdGFydCxzdG9wXSBpcyBpbnNpZGUgdGhlIHNlZ21lbnQgYW5kIHRoYXQgdGhlCgkgIGRpZmZlcmVuY2UgYmV0d2VlbiBzZWdtZW50X3N0YXJ0IGFuZCBzdGFydCBuZWVkcyB0byBiZSBjbGlwcGVkLiBJZiB0aGUKCSAgY2xpcHBpbmcgaXMgZG9uZSBvbiBhIGJ1ZmZlciAobGlrZSBpbiBiYXNlYXVkaW9zaW5rKSB0aGlzIHdpbGwgcmVzdWx0CgkgIGluIHRoZSBkYXRhIHBvaW50ZXIgYmVpbmcgYXQgYSBpbnZhbGlkIG1lbW9yeSBwb3NpdGlvbi4KCSAgRml4ZXMgYnVnICM1ODk4NDkuCgoyMDA5LTA4LTExIDA1OjQ3OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgZ3N0YnVzOiBVbnJlZiBwaXBlbGluZSBhZnRlciB1c2FnZSBpbiB0ZXN0X2N1c3RvbV9tYWluX2NvbnRleHQgdW5pdCB0ZXN0CgkgIFRoaXMgbWFrZXMgdGhlIGNvcmUgdW5pdCB0ZXN0cyB2YWxncmluZCBjbGVhbiBhZ2Fpbi4KCjIwMDktMDgtMTEgMDI6NTQ6NTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogYWRkIEVkd2FyZCdzIGdpdCBwbHVnaW4gbW92aW5nIGhvd3RvIHRvIG1vdmluZy1wbHVnaW5zIGRvY3VtZW50CgoyMDA5LTA4LTEwIDE0OjMwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiBkb24ndCBmb3JnZXQgdG8gaW5jbHVkZSBjb25maWcuaCBpbiB0aGUgR3N0T2JqZWN0IHVuaXQgdGVzdAoKMjAwOS0wOC0xMCAxMzowNTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiB0cnkgdG8gZml4IEdzdE9iamVjdCB1bml0IHRlc3Qgb24gT1NYCgkgIFNlZW1zIGxpa2Ugd2UgZ2V0IFNJR0JVUyBpbnN0ZWFkIG9mIFNJR1NFR1YgaGVyZSB3aGVuIEdMaWIgY3Jhc2hlcwoJICB3aGVyZSBpdCBzaG91bGRuJ3QgY3Jhc2ggKGFuZCB3ZSBldmVuIGhhdmUgYSB1bml0IHRlc3QgZm9yIHRoYXQhKS4KCjIwMDktMDgtMTAgMTI6MDE6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBjaGVja3M6IHNldCBwaXBlbGluZXMgdG8gTlVMTCBzdGF0ZSBpbiBwYXJzZS1sYXVuY2ggdW5pdCB0ZXN0CgkgIEZpeGVzIHRpbWVvdXRzIGluIGdzdF90YXNrX2NsZWFudXBfYWxsKCkuCgoyMDA5LTA4LTEwIDExOjQyOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgY2hlY2tzOiBzZXQgcGlwZWxpbmUgYmFjayB0byBOVUxMIHN0YXRlIGluIEdzdEJ1cyB1bml0IHRlc3QKCSAgRml4ZXMgdGltZW91dCBpbiBnc3RfdGFza19jbGVhbnVwX2FsbCgpLgoKMjAwOS0wOC0xMCAxMTo0Mzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIHNvbWUgbG9nZ2luZyBiZWZvcmUgY2FsbGluZyBnc3RfdGFza19jbGVhbnVwX2FsbCgpCgoyMDA5LTA4LTA4IDIyOjI3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBDYWxsIGdzdF90YXNrX2NsZWFudXBfYWxsKCkgaW4gR1NUX0VORF9URVNUCgkgIFRoaXMgZml4ZXMgbWFueSB1bml0IHRlc3RzIHVuZGVyIHZhbGdyaW5kIHRoYXQgc2hvd3MKCSAgbGVha2luZyBHc3RUYXNrcyB0aGF0IGFyZSBub3QgcmVhbGx5IGxlYWtlZCBidXQganVzdAoJICBub3QgdW5yZWZmZWQgYnkgdGhlIHRhc2sgdGhyZWFkIGJlZm9yZSB0aGUgdW5pdCB0ZXN0CgkgIHN0b3BwZWQuCgkgIEZpeGVzIGJ1ZyAjNTkxMDQ1LgoKMjAwOS0wOC0wOCAxNDo0Nzo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDA5LTA4LTA4IDE0OjQ3OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDA5LTA4LTA3IDAyOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmU6IGlnbm9yZSBuZXcgcXVldWUtZXJyb3IgdGVzdAoKMjAwOS0wOC0wNiAyMDo0MDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGFkZCBpbnRlcm5hbC1jaGVjay5oIHRvIEJVSUxUX1NPVVJDRVMgaW4gYXR0ZW1wdCB0byBmaXggdGhlIGJ1aWxkCgkgIEZvciBzb21lIHBlb3BsZSB0aGUgYnVpbGQgb2YgbGliZ3N0Y2hlY2sgd2FzIGJyb2tlbiBiZWNhdXNlIHRoZSBtYWtlCgkgIHRhcmdldCB0aGF0IGNyZWF0ZXMgdGhlIGludGVybmFsLWNoZWNrLmggZmlsZSB3YXNuJ3QgZXhlY3V0ZWQgZm9yCgkgIHNvbWUgcmVhc29uLiBUaGlzIHNob3VsZCBob3BlZnVsbHkgZml4IHRoaXMuCgoyMDA5LTA4LTA2IDE4OjM4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IG9sZGVyIGFjbG9jYWxzIGRvbid0IGxpa2UgLUkuIHNvIHVzZSAtSSAuIGluc3RlYWQKCjIwMDktMDgtMDYgMTg6NDc6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogYWRkIGFkZGl0aW9uYWwgY2hlY2tpbmcgZm9yIHdyaXRhYmlsaXR5CgkgIENoZWNrIGZvciBtZXRhZGF0YSB3cml0YWJpbGl0eSB3aGVuIHNldHRpbmcgY2FwcyBvbiBidWZmZXIgb3Igd2hlbiBjb3B5aW5nCgkgIG1ldGFkYXRhIGZsYWdzLiBPbmx5IGVuYWJsZSB0aGVzZSBleHRyYSBhc3NlcnRpb25zIGluIGdpdCB2ZXJzaW9ucy4KCSAgVGhpcyBzaG91bGQgaGVscCB1cyBmaW5kIGJhZCBlbGVtZW50cy4KCjIwMDktMDgtMDQgMTA6MjI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjaGVjazogZGlzYWJsZSB1bml0IHRlc3Qgc3VwcG9ydCBvbiB3aW4zMiBmb3Igbm93CgkgIFVudGlsIHdlIG1ha2UgdGhlIGludGVybmFsIGxpYmNoZWNrIHdvcmsgb24gd2luZG93cy4KCjIwMDktMDctMTkgMTc6MDQ6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBmaXggc3ltYm9sIGV4cG9ydGluZwoKMjAwOS0wNy0xNyAwMDo0NjozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2stY2hlY2tzLm00OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkgIGNoZWNrOiBmaXggaXNzdWVzIHdpdGggJ21ha2UgZGlzdGNoZWNrJwoJICBTZWVtcyB0byB3b3JrIG5vdywgYXQgbGVhc3Qgb24gKm5peC4gT25lIG9mIHRoZSBjb25maWd1cmUgY2hlY2tzCgkgIGNhdXNlZCB0aGVzZSB3ZWlyZCBpc3N1ZXMgLSBidXQgd2hpY2ggb25lPwoKMjAwOS0wOC0wNiAxNzoyNzoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY2hlY2stY2hlY2tzLm00OgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgY2hlY2s6IHVzZSBwcml2YXRlIGNvcHkgb2YgY2hlY2sgZm9yIGxpYmdzdGNoZWNrCgkgIFNlZSAjNTc3Mjc1LiBTZWVtcyB0byB3b3JrIGZpbmUsIGJ1dCBkb2Vzbid0IGRpc3RjaGVjayB5ZXQuCgoyMDA5LTA3LTE2IDE4OjM5OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkgIGNoZWNrOiBhZGQgaW50ZXJuYWwgY29weSBvZiBjaGVjay0wLjkuNgoJICBOb3QgaG9va2VkIHVwIHlldC4gU2VlICM1NzcyNzUuCgoyMDA5LTA4LTA2IDE0OjExOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGZpeCBTaW5jZTogdGFnIGZvciBuZXcgZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpIGZ1bmN0aW9uCgoyMDA5LTA3LTIyIDExOjI0OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDExOjI0OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6NTQ6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOTozODoxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IGFkZCBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkKCSAgT2Z0ZW4gd2UgZG9uJ3QgbmVlZCB0aGUgcmVzdWx0IG9mIHRoZSBpbnRlcnNlY3Rpb24uIEFkZCBhIHZhcmlhbnQgdGhhdCBvbmx5CgkgIHRyaWVzIHRvIGludGVyc2VjdC4gSXQgY2FuIGJyZWFrIG91dCBlYXJsaWVyIGFuZCBkb2VzIGxlc3MgR1ZhbHVlIGNvcHlpbmcuCgkgIEFQSTogZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjI0OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb25seSBjaGVjayBjYXBzX2lzX2ZpeGVkKCkgaWYgdGhleSBjaGFuZ2VkCgkgIFRoZSBwcmV2aW91cyBjb2RlIGNvdWxkIGNhbGwgZ3N0X2NhcHNfaXNfZml4ZWQoKSBmb3IgdGhlIHNhbWUgY2FwcyBtYW55IHRpbWVzLgoKMjAwOS0wNy0yMSAxMzozMToxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc3BsaXQgY2FsbGJhY2sgZm9yIHN0cnVjdHVyZSBpbnRlcnNlY3QgaW50byB0d28gZnVuY3Rpb25zCgkgIFdlIGNhbGwgdGhpcyBzZXBhcmF0ZWx5LiB0aGVyZSBpcyBubyBtdWNoIGJlbmVmaXQgaW4gcmV1c2luZyB0aGUgY2FsbGJhY2suCgkgIFNwbGl0dGluZyBpcyBsZXQgdXMgcmVtb3ZlIGEgYnJhbmNoIGFsc28uCgoyMDA5LTA3LTIxIDEzOjI3OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBsb2dnaW5nOiBsb2cgaWYgd2UgY29weSBjYXBzIHRvIGJlIGFibGUgdG8gdHJhY2sgaXQKCjIwMDktMDctMjEgMTE6MzI6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBjb21tZW50cyBhYm91dCBnX3B0cl9hcnJheSBzaXplIGJlaGF2aW91cgoJICBKdXN0IGV4cGxhaW4gdGhlIGJlaGF2aW91ciB0byBhdm9pZCB0aGF0IHNvbWVvbmUgZWxzZSBpcyB3YXN0aW5nIHRpbWUgdHJ5aW5nIHRvCgkgIGltcHJvdmUgdGhpcyB0b28uCgoyMDA5LTA3LTIxIDExOjE0OjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgZXhhbXBsZTogdW5yZWYgdGhlIGNsb2NrIGlkCgoyMDA5LTA3LTIxIDEwOjU2OjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIGNvcnJlY3QgdmFyaWFibGUgaW4gdGVzdAoKMjAwOS0wNy0yOCAxNjoxMzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBhZGQgZmlsZW5hbWUgdG8gZGVidWcgbWVzc2FnZSwgbGlrZSBlbHNld2hlcmUKCjIwMDktMDctMjEgMTA6Mzg6MTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggY29tcGlsZXIgd2FybmluZyBhYm91dCB1bnVzZWQgdmFyIHdoZW4gZGlzYWJsaW5nIGRlYnVnIGxvZ2dpbmcKCjIwMDktMDgtMDYgMTM6Mjk6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcG9zdCBlcnJvciBtZXNzYWdlIHdoZW4gcGF1c2luZyB0YXNrCgkgIElmIGRvd25zdHJlYW0gcmV0dXJucyBlcnJvciBhbmQgdXBzdHJlYW0gaGFzIGFscmVhZHkgZGVsaXZlcmVkCgkgIGV2ZXJ5dGhpbmcgKGluY2x1ZGluZyBFT1MpIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBhcm91bmQgdG8gZmluZAoJICBvdXQgdGhhdCB3ZSBwYXVzZWQgKGFuZCB3aHkpLCBwb3N0IGVycm9yIG1lc3NhZ2UuICBGaXhlcyAjNTg5OTkxLgoKMjAwOS0wNy0yOCAxMjowMzozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHF1ZXVlOiBhZGQgdW5pdCB0ZXN0CgkgIE1ha2UgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJuIGFuIGVycm9yIGFmdGVyIHVwc3RyZWFtIGhhcyBhbHJlYWR5CgkgIHB1dCBhbGwgZGF0YSBpbnRvIHF1ZXVlIChpbmNsdWRpbmcgRU9TKS4gIEFzIHN1Y2gsIHVwc3RyZWFtCgkgIHdpbGwgbm90IGJlIGFyb3VuZCB0byBwaWNrIHVwIHRoZSBlcnJvciwgc28gaXQgaXMgdXAgdG8gcXVldWUgdG8KCSAgYWN0IGFwcHJvcHJpYXRlbHkuICBTZWUgIzU4OTk5MS4KCSAgTm90ZSB0aGVyZSBtYXkgYmUgZG93bnN0cmVhbSBmYXRhbCBlcnJvcnMgKGUuZy4gbmVnb3RpYXRpb24pIHRoYXQgZG8KCSAgbm90IHdhcnJhbnQgYW4gZXJyb3IgbWVzc2FnZSBhbHJlYWR5IGhhdmluZyBiZWVuIHBvc3RlZC4KCjIwMDktMDgtMDUgMTg6MDI6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2xhcmlmeSBfY2Fwc19pc19lcXVhbCgpCgoyMDA5LTA4LTA1IDE3OjU4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlZmFjdG9yIG1ldGFkYXRhIG1vZGlmaWNhdGlvbnMKCSAgQ2hlY2sgd2hlbiB3ZSBuZWVkIHRvIHRvdWNoIHRoZSBtZXRhZGF0YSBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBhZnRlciBzZWxlY3RpbmcKCSAgdGhlIG91dHB1dCBidWZmZXIgc28gdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gb25lIHBsYWNlLgoJICBBbHNvIHRha2UgZmxhZ3MgYW5kIHRpbWVzdGFtcCBtb2RpZmljYXRpb25zIGludG8gYWNjb3VudC4KCjIwMDktMDgtMDUgMTc6NTU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogb25seSBzZXQgY2FwcyB3aGVuIGRpZmZlcmVudAoJICBXaGVuIHdlIGhhdmUgYW4gaW5wdXQgYnVmZmVyIHdpdGggY2FwcyBhbmQgd2hlbiB0aG9zZSBjYXBzIGFyZSBkaWZmZXJlbnQgZnJvbQoJICB0aGUgY2FwcyB3ZSB3YW50LCBvbmx5IHRoZW4gbWFrZSBhIHdyaXRhYmxlIGNvcHkgb2YgdGhlIGlucHV0IGJ1ZmZlciBhcyB0aGUKCSAgb3V0cHV0IGJ1ZmZlciBhbmQgc2V0IHRoZSBjYXBzIG9uIHRoYXQgb3V0cHV0IGJ1ZmZlci4gVGhpcyBhdm9pZHMgc29tZSBjYXNlcwoJICB3aGVyZSB3ZSB0b29rIGEgc3ViYnVmZmVyIGZvciBzZXR0aW5nIGNhcHMgdGhhdCB3ZXJlIHRoZSBzYW1lLgoKMjAwOS0wOC0wNSAxNToyODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBlbmFibGUgb3B0aW1pc2F0aW9uCgkgIFdoZW4gd2UgaGF2ZSB0aGUgc2FtZSBpbnB1dCBhcyBvdXRwdXQgY2FwcywgcmV1c2UgdGhlIGlucHV0IGNhcHMgb2JqZWN0LiBBZnRlcgoJICB0aGUgY2FwcyByZWZjb3VudGluZyBoYXMgYmVlbiBzb3J0ZWQgb3V0IG5vdywgd2UgY2FuIGZpbmFsbHkgZW5hYmxlIHRoaXMKCSAgb3B0aW1pc2F0aW9uLgoKMjAwOS0wOC0wNSAxMzo0ODo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGRvbid0IHNldCBjYXBzIG9uIHVud3JpdGFibGUgYnVmZmVycwoJICBUYWtlIHRoZSByZWYgYWZ0ZXIgc2V0dGluZyB0aGUgY2FwcyBvbiBhIGJ1ZmZlciBiZWNhdXNlIGVsc2UgdGhlIGJ1ZmZlciBpcwoJICB0ZWNoaW5pY2FsbHkgbm90IHdyaXRhYmxlLgoKMjAwOS0wOC0wNSAxMzo0NzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGdldCBjYXBzIGFmdGVyIG1ha2luZyB3cml0YWJsZQoJICBHZXQgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciBhZnRlciB3ZSBtYWRlIHRoZSBidWZmZXIgd3JpdGFibGUuIFRoaXMgZGlkIG5vdAoJICBjYXVzZSBhbnkgcHJvYmxlbXMgYnV0IGl0J3MgbmljZXIgdGhpcyB3YXkuCgoyMDA5LTA4LTA1IDEzOjQ2OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgkgIE1ha2Ugc3VyZSB0aGUgbWV0YWRhdGEgaXMgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgdGhlIGNhcHMgb24gYSBidWZmZXIuCgoyMDA5LTA4LTA1IDEzOjQ0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgTWFrZSBzdXJlIHRoYXQgdGhlIG91dHB1dCBidWZmZXIgaGFzIHdyaXRhYmxlIG1ldGFkYXRhIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHNldAoJICBjYXBzIG9uIGl0LgoJICBmaXhlcyAjNTgzOTk5CgoyMDA5LTA4LTA1IDEzOjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW4gX3JlcGxhY2UKCjIwMDktMDgtMDUgMTM6NDM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcKCjIwMDktMDgtMDUgMTM6NDE6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHNtYWxsIGltcHJvdmVtZW50cwoJICBVbnJlZiB0aGUgdGFyZ2V0IHBhZCBhZnRlciB3ZSB1c2VkIGl0IGZvciBkZWJ1Z2dpbmcuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIE9ubHkgcmVwbGFjZSBjYXBzIHdoZW4gdGhleSBjaGFuZ2VkLgoKMjAwOS0wNy0yOSAxMzo0NjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFudXBzIGluIHBvc2l0aW9uIHF1ZXJpZXMKCSAgVXNlIGV4aXN0aW5nIGJvb2xlYW4gZmxhZyB0byBwYXNzIHBvc2l0aW9uIHF1ZXJpZXMgdXBzdHJlYW0uIEFsc28gYWRkIHVwc3RyZWFtCgkgIHF1ZXJpZXMgZm9yIHRoZSBsYXN0IHBvc2l0aW9uIHF1ZXJpZXMuCgoyMDA5LTA4LTA1IDEzOjI1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBmaXggbGlieG1sMiBjaGVjaywgd2hpY2ggaXMgb25seSBuZWVkZWQgZm9yIHhtbCBsb2FkL3NhdmUgbm93CgkgIFNpbmNlIHRoZSByZWdpc3RyeSBkb2Vzbid0IHVzZSBsaWJ4bWwyIGFueSBsb25nZXIsIGl0J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeQoJICB0byBkaXNhYmxlIGJvdGggeG1sIGxvYWQvc2F2ZSAqYW5kKiB0aGUgcmVnaXN0cnkgdG8gZ2V0IHJpZCBvZiB0aGUgbGlieG1sMgoJICBkZXBlbmRlbmN5LCBkaXNhYmxpbmcganVzdCB4bWwgbG9hZGluZy9zYXZpbmcgaXMgZW5vdWdoLiBGaXhlcyAjNTkwODQxLgoKMjAwOS0wOC0wMiAxNDozMzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVuYW1lIHVuaW5zdGFsbGVkIHJlZ2lzdHJ5IGZpbGUgdG8gcmVnaXN0cnkuZGF0CgkgIFdlJ3JlIG5vdCB1c2luZyB0aGUgeG1sIHJlZ2lzdHJ5IGFueSBsb25nZXIgYWZ0ZXIgYWxsLgoKMjAwOS0wOC0wMiAxNDoyODozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVmaW5lIHNlYXJjaCBwYXRocyBmb3IgdW5pbnN0YWxsZWQgcGx1Z2luIG1vZHVsZXMKCSAgVXNlIG1vcmUgcmVmaW5lZCBzZWFyY2ggcGF0aHMgZm9yIG91ciBwbHVnaW4gbW9kdWxlcy4gTm90IG9ubHkgZG9lcwoJICB0aGlzIG1ha2UgdGhpbmdzIG11Y2ggZmFzdGVyIGluIGFuIHVuaW5zdGFsbGVkIHNldHVwLCBpdCBhbHNvIG1ha2VzCgkgIHN1cmUgd2UncmUgbm90IGFjY2lkZW50YWxseSB1c2luZyBvdXQtb2YtZGF0ZSBwbHVnaW5zIGJ1aWx0IGFnZXMKCSAgYWdvIGFzIHBhcnQgb2YgYSAoZmFpbGVkKSAnbWFrZSBkaXN0Y2hlY2snIHdoZW4gd2UgZm9yZ2V0IHRvIGNsZWFuCgkgIHVwIHRoZSBkaXN0Y2hlY2sgYnVpbGQgZGlyZWN0b3J5LgoKMjAwOS0wNy0yOSAyMzo0MjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogZGlzdCBHU3RyZWFtZXItMS4wIGJ1ZmZlciBkZXNpZ24gZHJhZnQKCjIwMDktMDgtMDYgMDY6NTA6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdGFnbGlzdDogQWRkIG5ldyBBTEJVTV9BUlRJU1QgdGFnIHRvIHRoZSBkb2NzCgoyMDA5LTA4LTA0IDE0OjEzOjM0ICswMjAwICBKb2huIE1pbGxpa2luIDxqbWlsbGlraW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQWRkIHN1cHBvcnQgZm9yIEFMQlVNX0FSVElTVCB0YWcKCSAgVGhlICJhbGJ1bSBhcnRpc3QiIHRhZyBpcyB1c2VkIHdoZW4gdGhlIGFydGlzdCBvZiBhbiBlbnRpcmUKCSAgYWxidW0gZGlmZmVycyBmcm9tIHRoZSBhcnRpc3Qgb2YgYW4gaW5kaXZpZHVhbCB0cmFjazsgZm9yIGV4YW1wbGUsCgkgIHdoZW4gYSAiZ3Vlc3QgYXJ0aXN0IiBhcHBlYXJzIG9uIGFuIGFsYnVtLCBvciBvbiBjb21waWxhdGlvbnMuCgkgIEZpeGVzIGJ1ZyAjNTkwNDMwLgoKMjAwOS0wNy0yOSAxMzozMzoxMSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbi5zZWxuZXNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUXVlcnkgdXBzdHJlYW0gZm9yIHRoZSBwb3NpdGlvbiBpZiBjb252ZXJzaW9uIGluIFBBVVNFRCBmYWlsZWQKCSAgRml4ZXMgYnVnICM1OTAwNDUuCgoyMDA5LTA3LTI4IDIwOjQyOjIwICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcHJvdmUgZGVidWcgb3V0cHV0IGluIGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKCkKCSAgRml4ZXMgYnVnICM1ODk1MjQuCgoyMDA5LTA3LTIyIDA5OjAxOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCB1bnNldCBHQVAgZmxhZyBpZiB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUKCSAgRml4ZXMgYnVnICM1ODkzMTQuCgoyMDA5LTA4LTA2IDAxOjQzOjU3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yNC4xCgo9PT0gcmVsZWFzZSAwLjEwLjI0ID09PQoKMjAwOS0wOC0wNSAwMDo1MToxNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMC4xMC4yNAoKMjAwOS0wOC0wNCAyMzowNToyNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDgtMDMgMTU6MzE6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGF2b2lkIHdyYXAtYXJvdW5kIGluIGJ1ZmZlciBzaXplIGNoZWNrcy4gIEZpeGVzICM1OTA2MjIuCgoyMDA5LTA3LTMwIDE0OjQxOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuNSBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yOCAyMToxNTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEdldCB0aGUgZmx1c2hpbmcgc3RhdGUgd2l0aCB0aGUgb2JqZWN0IGxvY2sgdGFrZW4uCgkgIEZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMjE6MTQ6MTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBNYWtlIHN1cmUgdGhlIENvbGxlY3REYXRhIGxpc3QgaXMgdXAtdG8tZGF0ZSB3aGVuIHJlYWRpbmcvc2V0dGluZyBpdAoJICBXaXRob3V0IHRoaXMsIHdlIHJpc2tlZDoKCSAgKiBDaGVja2luZyB0aGUgZmx1c2hpbmcgc3RhdGUgb24gYW4gdW5leGlzdGluZyBsaXN0CgkgICogTm90IHNldHRpbmcgdGhlIGZsdXNoaW5nIHN0YXRlIG9uIHBhZHMgdGhhdCBoYWQganVzdCBiZWVuIGFkZGVkCgkgIFBhcnRpYWxseSBmaXhlcyAjNTkwMDU2CgoyMDA5LTA3LTI4IDIxOjEyOjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogU3BsaXQgb3V0IF9jaGVja19wYWRzIGludG8gYSB2ZXJzaW9uIHdpdGhvdXQgbG9jayB0YWtpbmcuCgkgIFRoaXMgaXMgc28gd2UgY2FuIHVzZSBfY2hlY2tfcGFkcyBpbiBwbGFjZXMgd2hlcmUgd2UndmUgYWxyZWFkeSB0YWtlbgoJICB0aGUgbG9jayBpbiBxdWVzdGlvbi4KCSAgUGFydGlhbGx5IGZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMTU6MjM6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJICBjaGVjazogbWFrZSBuZXcgR3N0U3RyZWFtQ29uc2lzdGVuY3kgc3RydWN0dXJlIHByaXZhdGUKCSAgVGhlcmUncyBubyBuZWVkIHRvIGhhdmUgR3N0U3RyZWFtQ29uc2lzdGVuY3kgaW4gYSBwdWJsaWMgaGVhZGVyIGZvcgoJICB0aGUgdGltZSBiZWluZywgc28gbWFrZSBpdCBwcml2YXRlLiBXaGlsZSB3ZSdyZSBhdCBpdCwgYWRkIGEgZ3RrLWRvYwoJICBibHVyYiBmb3IgaXQgdGhvdWdoLiBSZS1maXhlcyAjNTg4NzQ0LgoKMjAwOS0wNy0yNCAxMzo1MDoxOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjIzLjQgcHJlLXJlbGVhc2UKCjIwMDktMDctMjQgMDk6NTA6MTkgKzAxMDAgIFJvYmluIFN0b2NrZXIgPHJvYmluQG5pYm9yLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBoYW5kbGUgU0VFS0lORyBxdWVyaWVzIGZvciBmb3JtYXRzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIG9uZSB0aGUgc291cmNlIG9wZXJhdGVzIGluCgkgIFJldHVybiBGQUxTRSBpbiBiYXNlc3JjJ3MgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIHdoZW4gd2UgZ2V0IGEgU0VFS0lORyBxdWVyeSBmb3IKCSAgYSBmb3JtYXQgdGhhdCdzIG5vdCB0aGUgb25lIHRoZSBzb3VyY2Ugb3BlcmF0ZXMgaW4uIFByZXZpb3VzbHkgKGllLiBiZWZvcmUsIGluCgkgIHRoZSBnaXQgdmVyc2lvbikgd2Ugd291bGQgcmV0dXJuIFRSVUUgaW4gdGhhdCBjYXNlIGFuZCBzZWVrYWJsZT1GQUxTRSwgd2hpY2gKCSAgaXMgbW9yZSBjb3JyZWN0LCBidXQgY2F1c2VzIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHByb2JsZW1zLiAoQmVmb3JlIHRoYXQKCSAgd2Ugd291bGQgY2hhbmdlIHRoZSBmb3JtYXQgb2YgdGhlIHF1ZXJ5IHdoZW4gYW5zd2VyaW5nLCB3aGljaCB3YXMgY29tcGxldGVseQoJICBicm9rZW4gc2luY2UgY2FsbGVycyBkb24ndCBleHBlY3QgdGhhdCBvciBjaGVjayBmb3IgaXQpLiBTaW5jZSB0aGUgU0VFS0lORwoJICBxdWVyeSBpcyBhIGZhaXJseSByZWNlbnQgYWRkaXRpb24sIG5vdCBhbGwgZGVtdXhlcnMsIHBhcnNlcnMgYW5kIGRlY29kZXJzCgkgIGltcGxlbWVudCBpdCB5ZXQsIGluIHdoaWNoIGNhc2UgYW55IFNFRUtJTkcgcXVlcnkgYnkgYW4gYXBwbGljYXRpb24gd2lsbAoJICBqdXN0IGJlIHBhc3NlZCB1cHN0cmVhbSB3aGVyZSBpdCB3aWxsIHRoZW4gYmUgaGFuZGxlZCBieSBiYXNlc3JjLiBOb3csIGlmCgkgIGUuZy4gdG90ZW0gZG9lcyBhIFNFRUtJTkcgcXVlcnkgZm9yIFRJTUUgZm9ybWF0IGFuZCB3ZSBoYXZlIGEgZGVtdXhlciB0aGF0CgkgIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBxdWVyeSwgYmFzZXNyYyB3b3VsZCBhbnN3ZXIgaXQgd2l0aCBzZWVrYWJsZT1GQUxTRSBpbgoJICBtb3N0IGNhc2VzLCBhbmQgdG90ZW0gY2FuIG9ubHkgdGFrZSB0aGF0IGFzIGF1dGhvcml0YXRpdmUgYW5zd2VyLCBub3Qga25vd2luZwoJICB0aGF0IHRoZSBkZW11eGVyIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBTRUVLSU5HIHF1ZXJ5LiBUbyBhdm9pZCB0aGlzLCB3ZSBtYWtlCgkgIGJhc2VzcmMgcmV0dXJuIEZBTFNFIHRvIFNFRUtJTkcgcXVlcmllcyBpbiB1bmhhbmRsZWQgZm9ybWF0cy4gVGhhdCB3YXkKCSAgYXBwbGljYXRpb25zIGxpa2UgdG90ZW0gY2FuIGZhbGwgYmFjayBvbiBhc3N1bWluZyBzZWVrYWJpbGl0eSBkZXBlbmRpbmcgb24KCSAgd2hldGhlciBhIGR1cmF0aW9uIGlzIGF2YWlsYWJsZSwgb3Igc29tZXN1Y2guIERvd25zdHJlYW0gZWxlbWVudHMgZG9pbmcKCSAgc3VjaCBxdWVyaWVzIGFyZSBsaWtlbHkgdG8gZXF1YXRlIGFuIHVuaGFuZGxlZCBxdWVyeSB3aXRoIGEgbm9uLXNlZWthYmxlCgkgIHJlc3BvbnNlIGFzIHdlbGwsIHNvIHRoaXMgc2hvdWxkIGJlIGFuIGFjY2VwdGFibGUgZml4IGZvciB0aGUgdGltZSBiZWluZy4KCSAgU2VlICM1ODQ4MzgsICM1ODg5NDQsICM1ODk0MjMgYW5kICM1ODk0MjQuCgoyMDA5LTA3LTI0IDAwOjQxOjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZlZGFhZWUgdG8gOTRmOTVlMwoKMjAwOS0wNy0yMCAxNjoxMTowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiBhZGQgKzEgYWZ0ZXIgZXJyb3IgY2hlY2tpbmcKCSAgVGhlIGN1cnJlbnQgY29kZSBtYWRlIHRoZSBlcnJvciBjaGVja2luZyBwb2ludGxlc3MgYnkgY2hhbmdpbmcgLTEgdG8gMCBpbiBlcnJvcgoJICBjYXNlcy4gQWxzbyBkb24ndCBsZWFrIGEgcGFkIHRlbXBsYXRlIG9uIGVycm9yLgoKMjAwOS0wNy0yMCAxNTo1MToyMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMy4zIHByZS1yZWxlYXNlCgoyMDA5LTA3LTIwIDE4OjAzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSB0aGUgdGFza3MgYXJlIGpvaW5lZAoJICBDYWxsIF9jbGVhbl9hbGwoKSBvbiB0aGUgdGFzayB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBqb2luZWQgYW5kIHN0b3BwZWQuCgkgIFNlZSAjNTg5MTI3CgoyMDA5LTA3LTIwIDE1OjQ0OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZml4IHRhc2twb29sIGxlYWsKCSAgR3N0VGFrcyBkb2VzIG5vdCBhbHdheXMgdW5yZWYgdGhlIHRhc2twb29sIGl0IHdhcyBjcmVhdGVkIGZyb20gYmVjYXVzZSBpdAoJICBkZXBlbmRzIG9uIHdoZW4gdGhlIHBvb2wgcHJvdmlkZWQgYW4gSUQgZm9yIGpvaW5pbmcgdGhlIHRhc2suCgkgIFJld29yayBzb21lIGNvZGUgc28gdGhhdCB3ZSBhbHdheXMgdW5yZWYgdGhlIHBvb2wgYW5kIG9wdGlvbmFsbHkgam9pbiB3aGVuIHRoZQoJICBwb29sIHByb3ZpZGVkIGFuIGlkLgoJICBGaXhlcyAjNTg5MTI3CgoyMDA5LTA3LTIwIDEzOjI2OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1ha2UgdGFnIHF1ZXVpbmcgdGhyZWFkc2FmZQoJICBTZWUgIzU4ODc0NQoKMjAwOS0wNy0xMyAwOToyMjowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGdzdGNoZWNrOiBBZGQgYSBzdHJlYW0gY29uc2lzdGVuY3kgY2hlY2tpbmcgaGVscGVyIHJvdXRpbmUuIEZpeGVzICM1ODg3NDQKCjIwMDktMDctMjAgMTE6MDQ6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogZG9uJ3QgdW5yZWYgTlVMTCBpZiB3ZSBoYXZlIGFuIGVhcmx5IHJlYWQgZXJyb3IKCjIwMDktMDctMTIgMTA6MDQ6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VyaWFsaXplIHRhZ3MgaW50byB0aGUgZGF0YWZsb3cuIEZpeGVzICM1ODg3NDUKCjIwMDktMDctMTYgMTQ6MTc6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggQVBJIGRvY3MgZm9yIGdzdF97YWRhcHRlcnxieXRlX3JlYWRlcn1fbWFza2VkX3NjYW5fdWludDMyCgkgIENsYXJpZnkgYnl0ZSByZWFkZXIgZG9jcyBhIGJpdDogb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50CgkgIHBvc2l0aW9uIG9mIHRoZSByZWFkZXIsIG5vdCB0byB0aGUgc3RhcnQgb2YgdGhlIGRhdGEuIEFsc28sIHRoZQoJICBleGFtcGxlcyBpbiBib3RoIHRoZSBhZGFwdGVyIGRvY3MgYW5kIHRoZSBieXRlIHJlYWRlciBkb2NzIGhhdmUKCSAgdGhlIG1hc2sgYW5kIHBhdHRlcm4gYXJndW1lbnRzIHN3YXBwZWQgKHNlZSAjNTg3NTYxKS4gU3BvdHRlZAoJICBieSBDYXJsLUFudG9uIEluZ21hcnNzb24uCgoyMDA5LTA3LTE2IDEzOjU5OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdzOiBvbmx5IGVtaXQgYSBnX3dhcm5pbmcoKSBmb3IgZW1wdHkgdGFnIHN0cmluZ3MgZm9yIGdpdCB2ZXJzaW9ucwoJICBGb3Igbm93LCBkb24ndCBzaG93IGEgZ193YXJuaW5nKCkgZm9yIGVtcHR5IHRhZyBzdHJpbmdzIGFuZCBOVUxMCgkgIHRhZ3Mgd2l0aCBub24tZ2l0IHZlcnNpb25zOyB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIGZpeGVzIGluIG91cgoJICBwbHVnaW4gbW9kdWxlcyB0byBtYWtlIGl0IGludG8gYSByZWxlYXNlIGJlZm9yZSB3ZSBlbmFibGUgdGhpcwoJICB1bmNvbmRpdGlvbmFsbHkuCgoyMDA5LTA3LTE0IDE4OjU5OjEzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjMuMiBwcmUtcmVsZWFzZQoKMjAwOS0wNy0xNCAxMjoxNTowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgZXhwbGFuYXRpb24gZm9yIHNob3J0Y3V0CgoyMDA5LTA3LTEwIDIwOjA0OjQ4ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogdGFrZSBzaXplIG9uY2UKCjIwMDktMDctMTAgMTk6MTc6MDQgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGNhbl9pbnRlcnNlY3QgdG8gYmVoYXZlIGxpa2UgaW50ZXJzZWN0CgkgIEFkZCBhIHF1aWNrIHJldHVybiBpZiB0d28gdHlwZXMgYXJlIHRoZSBzYW1lLiBDaGFuZ2UgdGhlIGNoZWNrIGZvciB0aGUKCSAgaW50ZXJzZWN0aW9uIGZ1bmN0aW9uIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBvbmUgdXNlZCBpbiBpbnRlcnNlY3QoKS4gVGhlCgkgIGxhdGVyIHRyaWVzIGJvdGggZGlyZWN0aW9ucy4KCjIwMDktMDctMTQgMDA6MDQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogbWFpbnRhaW4gQUJJIGNvbXBhdGliaWxpdHkgZXZlbiBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMDctMDIgMTI6NDA6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHN0cnVjdHVyZTogQ2hhbmdlIE5VTEwgYW5kIGVtcHR5IHN0cmluZyBoYW5kbGluZwoJICBEb24ndCBmb3JiaWQgdGhlIGVtcHR5IHN0cmluZyAiIiBpbiBnZW5lcmljIHN0cnVjdHVyZXMsIG9ubHkgaW4gdGFnbGlzdHMuCgkgIFByb3Blcmx5IGFsbG93IHRoZSBOVUxMIHN0cmluZyBieSBhZGRpbmcgc3BlY2lhbCBjYXNlcyBmb3Igc2VyaWFsaXNpbmcKCSAgYW5kIGRlc2VyaWFsaXNpbmcgaXQuIHByb3AxPShzdHJpbmcpTlVMTCBpcyB0aGUgTlVMTCBzdHJpbmcsCgkgIHByb3AxPShzdHJpbmcpIk5VTEwiIGlzIHRoZSBhY3R1YWwgc3RyaW5nIHdpdGggdGhlIHZhbHVlICJOVUxMIgoKMjAwOS0wNy0xMyAxMjoyMzowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ODQ1YjYzIHRvIGZlZGFhZWUKCjIwMDktMDctMTMgMTI6MDA6NDcgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIDx5bGF0dXlhIGF0IGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBzZWdmYXVsdCB3aXRoIE1TVkMKCSAgRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgZmlsZW5vIG9uIE1TVkMgYnV0IHJlcGxhY2Ugd2l0aCBfZmlsZW5vCgkgIEZpeGVzICM1ODcwNTIKCjIwMDktMDctMTMgMDk6MzI6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jcy9kZXNpZ246IFVwZGF0ZSBNYWtlZmlsZS5hbSBmb3IgY2hhbmdlZCBmcmFtZXN0ZXAgZG9jdW1lbnQgbmFtZS4KCjIwMDktMDctMTAgMTk6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHRoZSBwbHVnaW4gZmVhdHVyZXMgbGlzdGVkIGJ5IGdzdC1pbnNwZWN0IGFyZSB0eXBlZmluZGVycywgbm90IHR5cGVzCgoyMDA5LTA3LTEwIDE4OjQ2OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGFkZCBkcmFmdCBmb3IgYXJiaXRyYXJ5IGJ1ZmZlciBtZXRhZGF0YSBpZGVhCgoyMDA5LTA3LTEwIDE4OjM1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJICBkb2NzOiBtb3JlIGZyYW1lc3RlcCBkb2NzIG91dCBvZiBkcmFmdAoKMjAwOS0wNy0xMCAxODozMzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBmcmFtZXN0ZXAgZG9jdW1lbnQKCSAgUmVtb3ZlIGV4cGVyaW1lbnRhbCBzdGF0dXMgZnJvbSB0aGUgZnJhbWVzdGVwIGRyYWZ0LgoKMjAwOS0wNy0wOCAxNToxNTowNCArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IEZpeCBjb21waWxhdGlvbiBpZiBvcHRpb24gcGFyc2luZyBpcyBkaXNhYmxlZAoJICBGaXhlcyBidWcgIzU4Nzk3Ni4KCjIwMDktMDctMDggMTU6MTA6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBVc2UgZ19idWlsZF9maWxlbmFtZSgpIGluc3RlYWQgb2YgZ19zdHJqb2luKCkgd2l0aCAvCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBnZW5lcmF0ZWQgZmlsZW5hbWVzIHVzZSB0aGUgcGxhdGZvcm0KCSAgc3BlY2lmaWMgZGlyZWN0b3J5IHNlcGFyYXRvciBpbnN0ZWFkIG9mIC8uCgkgIEZpeGVzIGJ1ZyAjNTg3OTczLgoKMjAwOS0wNy0wNyAyMDoxMzo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBhZGQgJ1NpbmNlJyB0YWcgZm9yIG5ldyBHU1RfREVCVUdfQ0FURUdPUllfR0VUIG1hY3JvCgoyMDA5LTA3LTA3IDAwOjIzOjQxICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBtYWtlIGl0IHRoZSBiZXN0IG9mIHdpbXMgYW5kIGVkd2FyZHMgcGF0Y2guCgkgIENoZWNrIHRoZSByaWdodCBmbHVzaGluZyBmbGFnLCBidXQgc3RpbGwgYWRkIGl0IHRvIHRoZSBwYWQtbGlzdC4KCjIwMDktMDYtMzAgMTE6MjY6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiBhbGxvdyBnZXR0aW5nIG90aGVyIGxvZyBjYXRlZ29yaWVzLiBGaXhlcyAjNTg3NDE3CgkgIEFkZCBhIG5ldyBtYWNybyBHU1RfREVCVUdfQ0FURUdPUllfR0VUIHRvIGdldCBhIGxvZyBjYXRlZ29yeSBieSBuYW1lLiBUaGlzCgkgIGFsbG93cyBwbHVnaW5zIHRvIHVzZSBlLmcuIGNvcmUgY2F0ZWdvcmllcyBsaWtlIFBFUkZPUk1BTkNFIG9yIENMT0NLLgoJICBBUEk6IEdTVF9ERUJVR19DQVRFR09SWV9HRVQKCjIwMDktMDctMDYgMTk6NTE6NTcgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtYWtlIGNvbW1lbnQgYSBGSVhNRSBjb21tZW50CgoyMDA5LTA3LTA2IDE5OjUwOjUyICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBsb2dnaW5nOiBsb2cgb2JqZWN0IHR5cGUgaW4gbWVzc2FnZQoKMjAwOS0wNy0wNiAxOTo0ODo1OCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBsb2dnaW5nOiB1c2UgcGVyZiBjYXRlZ29yeSBmb3IgZHJvcHBlZCBidWZmZXJzCgoyMDA5LTA2LTI5IDExOjI2OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgZm9yd2FyZCBGTFVTSF9TVE9QIGlmIHNvbWUgaW5wdXQgc3RyZWFtcyBhcmUgc3RpbGwgZmx1c2hpbmcuCgkgIFRoaXMgZ3VhcmFudGVlcyB0aGF0IG9ubHkgb25lIEZMVVNIX1NUT1AgZXZlbnQgKHRoZSBsYXN0IG9uZSkgd2lsbCBiZSBzZW50CgkgIGRvd25zdHJlYW0gd2hlbiBhIGZsdXNoaW5nIHNlZWsgaXMgYmVpbmcgZG9uZSB0aHJvdWdoIGNvbGxlY3RwYWRzLgoKMjAwOS0wNi0yNCAxMToxMTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVwZGF0ZSB0aGUgY29va2llIHdoZW4gc2V0dGluZyBvdXJzZWx2ZXMgYXMgZmx1c2hpbmcuCgkgIFRoaXMgZm9yY2VzIHRoZSBwYWQgc3RhdHVzIHRvIGJlIHJlLWV2YWx1YXRlZCBvbiB0aGUgbmV4dCBfY2hlY2tfcGFkcygpLgoKMjAwOS0wNi0wOSAxNDo1NDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGRvY3M6IGZpeCBndGstZG9jIC8qPCBwcml2YXRlID4qLyBtYXJrZXIKCjIwMDktMDYtMDkgMTQ6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBsb2cgcHJvYmFiaWxpdHkgaW4gZGVidWcgbWVzc2FnZQoKMjAwOS0wNi0zMCAxODoyMjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBwYXJzaW5nIG9mIHRoZSBzdGVwIGRvbmUgbWVzc2FnZQoJICBQYXJzZSB0aGUgZHVyYXRpb24gZmllbGQgdG9vLgoKMjAwOS0wNi0yOSAxMToyNDoyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogVXNlIGxvY2FsIHZhbHVlcyBpbiB3aGlsZS9mb3IgbG9vcHMsIHVzZSBicmFuY2ggcHJlZGljdGlvbiBtYWNyb3MKCjIwMDktMDYtMjkgMTE6MjM6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBTcHJlYWQgYnJhbmNoIHByZWRpY3Rpb24gbWFjcm9zLgoJICBUaGVzZSBhcmUgYmFzZWQgb24gcHJvZmlsaW5nIHNldmVyYWwgcGxheWJhY2sgc2NlbmFyaW9zIHVzaW5nIHBsYXliaW4yLgoKMjAwOS0wNi0yOSAxMToyMDoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBVc2UgbG9jYWwgdmFyaWFibGVzIGluIGZvci93aGlsZSBsb29wcy4KCSAgVGhpcyBtYWtlcyB0aGUgZ2VuZXJhdGVkIGNvZGUgZmFzdGVyIHNpbmNlOgoJICAqIEl0IHdvbid0IGhhdmUgdG8gcmVhZCBhbiB1bmRpcmVjdCB2YWx1ZSAod2hpY2ggd2lsbCBtb3N0IGxpa2VseSBiZQoJICBvdXRzaWRlIG9mIHRoZSBMMS9MMiBjYWNoZSkKCSAgKiBXZSBrbm93IHRoYXQgdmFsdWUgbmV2ZXIgY2hhbmdlcyAodGhlIGNvbXBpbGVyIGhhcyBubyBjbHVlIHRoYXQgaXQgZG9lc24ndCkuCgoyMDA5LTA2LTA5IDE5OjA4OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBsaWJzL2NvbnRyb2xsZXI6IFNldCBkZWZhdWx0IGdzdCBkZWJ1Z2dpbmcgY2F0ZWdvcnkuCgoyMDA5LTA2LTI5IDExOjU3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLnNjbToKCSAgdGVzdHM6IGZpeCBleGFtcGxlCgoyMDA5LTA2LTI5IDExOjU2OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJ1ZmZlcmxpc3Q6IHVzZSBmYXN0ZXIgZ3N0X2J1ZmZlcl9saXN0X2dldCgpCgkgIFVzZSB0aGUgZmFzdGVyIGdzdF9idWZmZXJfbGlzdF9nZXQoKSB0byBnZXQgdGhlIGZpcnN0IGJ1ZmZlciBvZiBhIGxpc3QuCgoyMDA5LTA2LTI5IDExOjU1OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGV4YW1wbGUKCSAgVGhlIF9kbyBmdW5jdGlvbiBub3cgdGFrZXMgdXNlcl9kYXRhIGluIGFsbCBjYXNlcy4KCjIwMDktMDYtMjkgMTE6NDY6MDAgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB0YWtlIHRpbWVzdGFtcCBsYXRlcgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IGNhc3QgYSBidWZmZXJsaXN0IG9mIGEgYnVmZmVyIGFuZCB0cnkgdG8gdGFrZQoJICB0aGUgdGltZXN0YW1wIG9mIGl0LgoJICBSZWZpeGVzICM1ODU5NjAKCjIwMDktMDYtMjkgMTE6MDc6MDAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zCgoyMDA5LTA2LTI5IDExOjI0OjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBsb2dnaW5nOiBhZGQgYSBwZXJmb3JtYWNlIGxvZyBjYXRlZ29yeQoJICBUaGlzIGNhdGVnb3J5IGNhbiBiZSB1c2VkIHRvIGxvZyBzbG93IGNvZGUgcGF0aCBhbmQgaGVscCBhdWRpdGluZyB0aGUKCSAgcGVyZm9ybWFuY2UuIEFkZCBGSVhNRS0wLjExIHRvIHNvbWUgcXVlc3Rpb25hYmxlIGNhdGVnb3JpZXMuCgoyMDA5LTA2LTI3IDE2OjM0OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IGludC0+Z2ludCB0byBiZSBpbiBzeW5jIHdpdGggdGhlICouaCAgYW5kIHVzYWdlCgoyMDA5LTA2LTI2IDEzOjMzOjUwICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicuIENoZWNrIGZvciBhdXRvbWFrZS0xLjFbMDFdCgkgIENoZWNrIGZvciBtb3JlIGF1dG9tYWtlIGNvbW1hbmQgdmFyaWFudHMuIFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicKCSAgZm9yIHBvcnRhYmlsaXR5CgoyMDA5LTA2LTI2IDEzOjQxOjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY4MTAwMzAgdG8gNTg0NWI2MwoKMjAwOS0wNi0yNiAxMjo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgcmVxdWVzdC1wYWQ6IHRlbGwgYWJvdXQgcmVmIGNvdW50cyBpbiByZWxlYXNlX3JlcXVlc3RfcGFkIGRvY3MuCgkgIEl0IGlzIG5vdCB0b28gb2J2aW91cyB0aGF0IGdldHRpbmcgYW5kIHJlbGVhc2luZyByZXF1ZXN0IHBhZHMgaXMgbm90IGVudGllcmx5CgkgIHN5bWV0cmljYWwgcmVnYXJkaW5nIHRvIHRoZSBwYWQgcmVmY291bnQuIEFkZCBhIG5vdGUgYWJvdXQgdGhhdCB0byB0aGUgZG9jcy4KCSAgVGhpcyBtaWdodCBkZXNlcnZlIGEgRklYTUUtMC4xMSB0b28uCgoyMDA5LTA2LTI1IDExOjI1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IGRvIHRoaW5ncyB3aXRoIHNpZGUgZWZmZWN0cyB3aXRoaW4gYSBnX2Fzc2VydCgpCgkgIE1ha2UgdGhlIGJ1ZmZlcmxpc3Qgc3R1ZmYgd29yayBwcm9wZXJseSB3aGVuIHRoaW5ncyBhcmUgY29tcGlsZWQKCSAgd2l0aCAtREdfRElTQUJMRV9BU1NFUlQuCgoyMDA5LTA2LTI0IDE4OjMxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYXZvaWQgZG9pbmcgbG9naWMgaW4gZ19hc3NlcnQKCSAgTWFrZSBzdXJlIHdlIHN0aWxsIGRvIHRoZSByaWdodCB0aGluZyB3aGVuIGdsaWIgaXMgY29tcGlsZWQgd2l0aG91dAoJICBhc3NlcnRpb25zLgoKMjAwOS0wNi0yMiAwNTowMDo1NCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpcmUgdGhlIG92ZXJydW4gc2lnbmFsIG9uIEVPUwoJICBGaXhlcyBzdGFydHVwIG9mIHNvbWUgc2hvcnQgTVBFRyBmaWxlcyB3aXRoIGRlY29kZWJpbjIvcGxheWJpbjIKCSAgd2hlcmUgYWxsIHRoZSBkYXRhIGZpdHMgaW4gdGhlIG11bHRpcXVldWUgYW5kIEVPUyBhcnJpdmVzIGJlZm9yZQoJICB0aGUgZ3JvdXAgaXMgZXhwb3NlZC4KCjIwMDktMDYtMjQgMTU6MTM6MzcgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmM2JiNTFiIHRvIGY4MTAwMzAKCjIwMDktMDMtMjggMTM6NTk6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEdzdFN0cnVjdHVyZTogVXNlIGRpcmVjdCB2YWx1ZXMgZm9yIHJlcGV0aXRpdmUgY29uZGl0aW9uYWxzIChmb3Ivd2hpbGUpLgoKMjAwOS0wNi0yNCAxMDo0NTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtaW5pb2JqZWN0czogRG9uJ3QgY2hhaW4gdXAgdG8gZW1wdHkgZmluYWxpemUgbWV0aG9kLgoJICBJZiBldmVyIHdlIGRvIGFueXRoaW5nIGluIG1pbmlfb2JqZWN0X2ZpbmFsaXplLCB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoZSA0CgkgIGNvcmUgbWluaW9iamVjdCBmaW5hbGl6ZSBtZXRob2RzIGNoYWluIGJhY2sgdXAgYWdhaW4uCgoyMDA5LTAzLTI3IDIwOjE3OjE1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXNlIGRpcmVjdCB2YWx1ZXMgZm9yIHJlcGV0aXRpdmUgY29uZGl0aW9uYWxzIChmb3Ivd2hpbGUpLgoKMjAwOS0wNi0yNCAwOToyODowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBtYWtlIGNoZWNrOiBhZGQgY2hlY2sgZm9yIGVudW0gdHlwZSBjbGFzcyB1bnJlZnMgaW4gZ3N0X2RlaW5pdCgpIHRvbwoJICBKdXN0IGJlY2F1c2Ugd2UgY2FuIHJlYWxseS4KCjIwMDktMDYtMjMgMTM6NDQ6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0cmFjZTogdXNlIHByb3BlciBsb2NraW5nIGluIEdzdFRyYWNlCgkgIFByb3RlY3QgdGhlIGFsbG9jYXRlZCBsaXN0IG9mIG9iamVjdHMgd2l0aCBhIGxvY2sgc28gdGhhdCB0cmFjZSBhY3R1YWxseSB3b3JrcwoJICByZWxpYWJseS4KCSAgU2hvcnRjdXQgdGhlIGFsbG9jIHRyYWNlIHNvb25lciB3aGVuIGRpc2FibGVkLgoKMjAwOS0wNi0yMyAxMzozNDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBhbHNvIGFkZCBwb2ludGVycyB0byBkZWJ1ZwoJICBBZGQgdGhlIG9iamVjdCBwb2ludGVycyBpbiB0aGUgZGVidWcgaW5mbyBmb3IgX3JlcGxhY2UuCgoyMDA5LTA2LTIzIDEyOjU2OjU5ICswMjAwICBDaGFkIEhhbm5hIDxjaGFubmFAbGlnby5jYWx0ZWNoLmVkdT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgR0FQIGZsYWcgc3VwcG9ydAoJICBjYXBzZmlsdGVyIGRvZXNuJ3QgYWN0dWFsbHkgdG91Y2ggdGhlIGRhdGEgc28gd2UgZG9uJ3Qgd2FudCB0aGUgR0FQIGZsYWcgdG8KCSAgYmUgdW5zZXQgYnkgYmFzZXRyYW5zZm9ybS4KCSAgRml4ZXMgYnVnICM1ODY1NjYuCgoyMDA5LTA2LTIzIDEwOjA1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IGJ5dGUgcmVhZGVyIG1ldGhvZHMKCjIwMDktMDUtMjIgMTQ6NDc6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYWRkIGEgYnVuY2ggb2YgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHN0cmluZ3MgYW5kIGEgZGF0YSBkdXAgZnVuY3Rpb24KCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX2RhdGEKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGYxNgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjMyCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmMTYKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmMzIKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdHJpbmdfdXRmOAoJICBBbmQgc29tZSBiYXNpYyB1bml0IHRlc3RzLiBGaXhlcyAjNTg2NTY4LgoKMjAwOS0wNi0yMiAxODoxNzoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IHR5cG8gaW4gdGFnIGRlc2NyaXB0aW9uCgoyMDA5LTA2LTIxIDAwOjI2OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBmaXggY3Jhc2ggYW5kIGxlYWsgaW4gYnVmZmVybGlzdHMgdW5pdCB0ZXN0CgkgIERvbid0IGFjY2VzcyBhbHJlYWR5LWZyZWVkIGl0ZXJhdG9yLCBtYWtlcyBjaGVjay12YWxncmluZCB3b3JrIGFuZCBmaXhlcwoJICBjcmFzaCBvbiBQUEM7IHVucmVmIGJ1ZmZlciB3ZSdyZSBnb2luZyB0byBzdGVhbCB0byBtYWtlIHZhbGdyaW5kIGhhcHB5LgoKMjAwOS0wNi0yMSAwMDowOTo1MyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBpbml0OiBGaXggaW5kZW50LCBhbmQgcmVmIHRoZSBnc3RfYnVmZmVyX2xpc3RfaXRlbV9nZXRfdHlwZSgpIGNsYXNzCgkgIEZpeCB0aGUgY2hlY2sgdGVzdHMgYnkgcmVmZmluZyB0aGUgR3N0QnVmZmVyTGlzdCBjbGFzcy4gUnVuIGdzdC1pbmRlbnQKCSAgdG8gbWFrZSBnaXQgaGFwcHkgYWJvdXQgc29tZSBleGlzdGluZyBzdHVmZgoKMjAwOS0wNi0xOSAyMTowMzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IGJyb2tlbiBmbGFncyB0byBmbGFnIHN0cmluZyBzZXJpYWxpc2F0aW9uCgkgIGUuZy4gY2RwYXJub2lhc3JjIHdvdWxkIHNob3cgZnJhZ21lbnR8ZnVsbCBmb3IgYSBmbGFncyB2YWx1ZSBvZiAyLgoKMjAwOS0wNi0xOSAxOTozNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogYWRkIGJ1ZmZlci1saXN0IHN1cHBvcnQKCjIwMDktMDYtMTkgMTk6MjQ6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiByZW1vdmUgb2xkIGVudW0gZnJvbSBkb2NzCgoyMDA5LTA2LTE5IDE0OjQ1OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGRlZmluZSBfX2dzdF9kZWJ1Z19taW4gdG8gTE9HX0xFVkVMX05PTkUgaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkCgkgIEp1c3QgaW4gY2FzZSBzb21lb25lIHdobyBjbGVhcmx5IGNhbid0IGJlIGRldGVycmVkIGJ5IGFueSBudW1iZXIgb2YgbGVhZGluZwoJICB1bmRlcnNjb3JlcyB1c2VzIHRoaXMgdmVyeSBwcml2YXRlIGJ1dCBzdGlsbCBzb21ld2hhdCBkb2N1bWVudGVkIHN5bWJvbAoJICBkaXJlY3RseSBpbiB0aGVpciBjb2RlICgqY291Z2gqIHF0ZGVtdXggKmNvdWdoKikuCgoyMDA5LTA2LTE5IDE1OjI5OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IFZhcmlvdXMgY2xlYW51cHMKCSAgQWRkIG5ldyBtZXRob2QgdG8gaXRlcmF0ZSBhIGJ1ZmZlcmxpc3Qgd2l0aG91dCBoYXZpbmcgdG8gYWxsb2NhdGUgYW4gaXRlcmF0b3IuCgkgIEFkZCBjb252ZW5pZW5jZSBtZXRob2QgZm9yIGdldHRpbmcgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IGJhc2VkIG9uIHRoZSBncm91cCBhbmQKCSAgaW5kZXguCgkgIFJlbW92ZSByZWR1bmRhbnQgX2RvX2RhdGEgY2FsbGJhY2sgYW5kIG1ldGhvZC4KCSAgVXBkYXRlIHVuaXQtdGVzdHMgYW5kIGFkZCBzb21lIG1vcmUgZm9yIHRoZSBuZXcgbWV0aG9kcy4KCjIwMDktMDYtMTkgMTQ6MTA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBtYWtlIGd0ay1kb2MgaGFwcHkKCjIwMDktMDYtMTkgMTM6NTE6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGFmdGVyIHN0cmluZyBjaGFuZ2VzCgoyMDA5LTA2LTE5IDEzOjQ4OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogY2xlYW4gdXAgc29tZSBtb3JlIGVycm9yIGFuZCBkZWJ1ZyBtZXNzYWdlcwoKMjAwOS0wNi0xOSAxMzo0Mjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgdGFza3Bvb2w6IGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyBpbiBjYXNlIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0wNi0xOSAxMzo0MDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBmaXggZXhwb3J0IG9mIEdTVF9DQVRfQlVGRkVSX0xJU1Qgd2hlbiAtLWdzdC1kaXNhYmxlLWRlYnVnIGlzIHVzZWQKCSAgTW92ZSBhbGwgdGhlIGNhdGVnb3JpZXMgdG8gZXhwb3J0IHRvIG9uZSBzaW5nbGUgcGxhY2UsIHNvIHdlIGRvbid0CgkgIGFjY2lkZW50YWxseSB1cGRhdGUgb3IgYWRkIHZhcnMgaW4gb25lIHBsYWNlIGJ1dCBub3QgdGhlIG90aGVyLgoKMjAwOS0wNi0xOCAxNjo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHVzZSB0aGUgcmlnaHQgZmx1c2hpbmcgZmxhZy4KCSAgV2UgbmVlZCB0byB1c2UgdGhlIHBhZCBwcml2YXRlIGZsYWcgYmVjYXVzZSB0aGUgb3RoZXIgcGFkIGZsYWcgaXMgcHJvdGVjdGVkIHdpdGgKCSAgdGhlIHBhZCBsb2NrIGluc3RlYWQuCgoyMDA5LTA2LTE4IDE2OjQxOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogUHJvcGVybHkgaGFuZGxlIGZsdXNoaW5nIHBhZHMuCgkgIElmIGEgcGFkIGlzIGZsdXNoaW5nLCBpdCBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYXMgZWl0aGVyIGVvcyBvcgoJICBjb250YWluaW5nIGRhdGEuCgoyMDA5LTA2LTE4IDExOjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZml4IGVycm9yIG1lc3NhZ2UKCSAgVXNlcnMgc2hvdWxkIG5ldmVyIHNlZSB0aGUgdGVybSAnZmlsZSBkZXNjcmlwdG9yJywgbXVjaCBsZXNzIGEgZmlsZQoJICBkZXNjcmlwdG9yIG51bWJlciwgaW4gYW4gZXJyb3IgbWVzc2FnZS4gUHV0IHRoYXQgaW50byB0aGUgZGVidWcKCSAgc3RyaW5nIGluc3RlYWQgYW5kIHVzZSB0aGUgZGVmYXVsdCBlcnJvciBtZXNzYWdlLgoKMjAwOS0wNi0xOCAxMTo0OTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogYWRkIHRoZSBuZXcgZmllbGQgaW4gdGhlIGhlYWRlcgoKMjAwOS0wNi0xOCAxMDo1NTozOSArMDIwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluIGF0IGdhaWduYXJkLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogbWFrZSBmZHNpbmsgc2Vla2FibGUKCSAgSW1wbGVtZW50IHRoZSBzYW1lIGxvZ2ljIGFzIGZpbGVzaW5rIHRvIGltcGxlbWVudCBzZWVraW5nLgoJICBGaXhlcyAjNTc4OTA4CgoyMDA5LTA2LTE3IDE2OjQ1OjE3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiBtb3ZlZCB0aGUgY2xvY2sgdW5yZWYgdG8gdGhlIHJpZ2h0IHBsYWNlCgoyMDA5LTA2LTE3IDE2OjE3OjI3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiB1bnJlZiB0aGUgY2xvY2sgd2hlbiB0aGUgZWxlbWVudCBjaGFuZ2VzIHRvIG51bGwgc3RhdGUKCjIwMDktMDYtMTcgMDA6Mjk6NDAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBSZXBsYWNlZCBkZXByZWNhdGVkIHdpbjMyLWNvbXBhdGliaWxpdHkgZnVuY3Rpb24gd2l0aCB1bmRlcHJlY2F0ZWQgb25lLgoJICBGaXhlcyAjNTYwNDQyLgoKMjAwOS0wNi0xNiAxODozMjoxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHN3YXAgdGhlIGxpbmVzIG9mIG15IHByZXZpb3VzIGNvbW1pdAoJICBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIG15IHByZXZpb3VzIGNvbW1pdCB0aGF0IHJlbGVhc2VkIHRoZQoJICBjbG9jayBwcm92aWRlciBhbmQgYWZ0ZXIgdXNlZCBpdCB0byBjcmVhdGUgdGhlIGNsb2NrIGxvc3QgbWVzc2FnZS4KCjIwMDktMDYtMTYgMTc6NTE6MTIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiByZW1vdmUgY2xvY2sgcmVmZXJlbmNlcyB3aGVuIGNsb2NrIGxvc3QgaGFwcGVucwoJICBSZW1vdmUgcmVmZXJlbmNlIHRvIGNsb2NrIGFuZCBjbG9jayBwcm92aWRlciBzdG9yZWQgaW4gdGhlIGJpbgoJICB3aGVuIHRoZSBjbG9ja3Byb3ZpZGVyIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBiaW4uCgoyMDA5LTA2LTE2IDEzOjM0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIFNpbmNlIHRhZyBmb3IgbmV3IG1ldGhvZAoKMjAwOS0wNi0xNiAxMzozMjozNyArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rby5zdWJhc2ljIGF0IGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGxpc3QKCSAgRml4ZXMgIzU4NTk2MAoKMjAwOS0wNi0xNiAxMTozNDo1NCArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rby5zdWJhc2ljIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBZGQgc3VwcG9ydCBmb3IgR3N0QnVmZmVyTGlzdHMKCSAgRml4ZXMgIzU4NTgzNAoKMjAwOS0wNi0xNiAxMToyMTo0MiArMDIwMCAgQ2hyaXN0b3BoZXIgSGFsc2UgUm9nZXJzIDxjaGFsc2Vyb2dlcnMgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBFeHBsaWNpdGx5IG1lbnRpb24gcmVmY291bnRpbmcgaW4gZG9jcwoJICBGaXhlcyAjNTg1OTM4CgoyMDA5LTA2LTE2IDA4OjQzOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R4bWw6IGZpeCAoZGUpc2VyaWFsaXNhdGlvbiBvZiBwcm9wZXJ0aWVzIG9mIHR5cGUgR3N0U3RydWN0dXJlCgkgIHNvdXBodHRwc3JjIGhhcyBhIHByb3BlcnR5IG9mIHR5cGUgR3N0U3RydWN0dXJlLCB3aGljaCBjYXVzZXMgYW4KCSAgYXNzZXJ0aW9uIHdoZW4gc2VyaWFsaXNpbmcgaXQgdG8geG1sLiBGaXhlcyAjNTg1MTM3LgoKMjAwOS0wNi0xNSAyMDoxMTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBUaGUgY29tcGlsZXIgc3VnZ2VzdHMgdG8gYWRkIHNvbWUgKCkgdG8gaW5kaWNhdGUgaWYgdGhlICYmIG9yIHRoZSB8fCB0YWtlcwoJICBwcmlvcml0eSwgc28gcmVmbG93IGNvZGUgYSBiaXQgc28gd2UgZG9uJ3QgaGF2ZSB0byBhZGQgeWV0IGFub3RoZXIgbGF5ZXIKCSAgb2YgKCkuIEhvcGVmdWxseSB0aGlzIHdhcyB0aGUgaW50ZW5kZWQgbWVhbmluZyBvZiB0aGUgY29kZS4KCjIwMDktMDYtMTEgMTU6MDA6NTIgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZG9uJ3QgbG9jayB3aGVuIG1pbi10aHJlc2hvbGQgYW5kIG1heC1zaXplIGNvbmZsaWN0LgoJICBXaGVuIG1pbi10aHJlc2hvbGQgaXMgc2V0IG9uIGEgcXVldWUsIGl0IGlzIHBvc3NpYmxlIHRoYXQgb25lIG9mCgkgIHRoZSBtaW5pbWEgcmVtYWlucyB1bnNhdGlzZmllZCB3aGlsZSBvbmUgb2YgdGhlIG1heGltYSBpcyBhbHJlYWR5CgkgIHJlYWNoZWQuIFRoZXJlZm9yZSwgYWx3YXlzIGNvbnNpZGVyIHRoZSBxdWV1ZSBub24tZW1wdHkgaWYgaXQgaXMgZnVsbC4KCSAgRml4ZXMgIzU4NTQzMy4KCjIwMDktMDYtMTUgMTg6NDQ6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSBzdXJlIHdlIHNldCB0aGUgbmV4dCBzdGF0ZSBjb3JyZWN0bHkKCSAgV2hlbiB0aGUgY29udGludWUgZnVuY3Rpb24gaXMgc2NoZWR1bGVkLCBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBuZXh0IHN0YXRlIGluc3RlYWQKCSAgb2YgdGhlIHBlbmRpbmcgc3RhdGUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgZml4ZXMgIzU4NTU2OQoKMjAwOS0wNi0xNSAxODo0NDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGZpeCAuaCBpbmRlbnRhdGlvbgoKMjAwOS0wNi0xNSAxODo0Mzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDA5LTA2LTE1IDE4OjQyOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBkZWJ1ZzogYWRkIHNvbWUgbW9yZSBkZWJ1ZyB0byBlbGVtZW50IGFuZCBwYWRzCgoyMDA5LTA2LTE0IDE2OjU2OjMyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGZpeCBpbmNsdWRlIG9yZGVyIHRvIGdldCBjb25maWcuaCBiZWZvcmUgX21pbmd3LmgKCSAgY29uZmlnLmggbXVzdCBhbHdheXMgYmUgaW5jbHVkZWQgYmVmb3JlIGFueSBvdGhlciBpbmNsdWRlcywgZWl0aGVyCgkgIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdmlhIGdzdF9wcml2YXRlLmguIEZpeGVzICM1ODU3MzMuCgoyMDA5LTA2LTE0IDE2OjE3OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBmdW5jdGlvbnMgdG8gY3JlYXRlIGEgbmV3IHRhZ2xpc3Qgd2l0aCB0YWdzIGluIG9uZSBnbwoJICBBZGQgZnVuY3Rpb25zIHRvIGNyZWF0ZSBhIG5ldyB0YWcgbGlzdCBhbmQgc2V0IHRhZ3MgaW4gb25lIGdvLCB3aGljaAoJICBpcyBuaWNlIGZvciB1c2UgaW4gY29tYmluYXRpb24gd2l0aCBmdW5jdGlvbnMgdGhhdCB0YWtlIG93bmVyc2hpcCBvZgoJICB0aGUgdGFnbGlzdCwgc3VjaCBhcyBnc3RfZXZlbnRfbmV3X3RhZygpIG9yIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKS4KCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X25ld19mdWxsKCkKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X25ld19mdWxsX3ZhbGlzdCgpCgoyMDA5LTA2LTEzIDE0OjU1OjQzICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgZ2l0LXZlcnNpb24uc2g6IG1ha2UgZXhlY3V0YWJsZQoKMjAwOS0wNi0xMyAxNDo1MzoyNCArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgVXBkYXRlIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaCB0byBnaXQtdXBkYXRlLnNoOyBhZGQgZ2l0LXZlcnNpb24uc2gKCSAgYWRkIHNjcmlwdCB0byBnZXQgZ2l0IHZlcnNpb25zCgkgIGZpcnN0IHVwZGF0ZSBhbGwsIHRoZW4gYnVpbGQKCSAgYWRkIGdub25saW4gdG9vCgkgIHNwZWNpZnkgd2hlcmUgdG8gcHVsbCBmcm9tCgkgIGFsc28gdXBkYXRlIHN1Ym1vZHVsZQoJICByZW5hbWUgYW5kIGNoYW5nZSBjdnMtdXBkYXRlIHNjcmlwdCB0byBnaXQtdXBkYXRlCgoyMDA5LTA2LTEyIDE4OjM2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXJlYWRlcjogYWRkIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKQoJICBBZGQgYSBwYXR0ZXJuIHNjYW4gZnVuY3Rpb24gc2ltaWxhciB0byB0aGUgb25lIHJlY2VudGx5IGFkZGVkIHRvCgkgIEdzdEFkYXB0ZXIsIGFuZCBhIHVuaXQgdGVzdCAoYmFzZWQgb24gdGhlIGFkYXB0ZXIgb25lKS4KCSAgRml4ZXMgIzU4NTU5Mi4KCSAgQVBJOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMigpCgoyMDA5LTA0LTE3IDE3OjU5OjM4ICswMzAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAbm9raWEuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCByZW1haW5pbmcgLS1kaXNhYmxlLWdzdC1kZWJ1ZyBBQkkgYnJlYWthZ2UuCgkgIEZpeGVzICM1NzkxNzcuCgoyMDA5LTA2LTEyIDE3OjUxOjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjL3Npbms6IHR1cm4gdGhlIGJ1cyBtZXNzYWdlcyBpbnRvIGdfd2FybmluZwoJICBJdHMgYSBwcm9ncmFtbWluZyBlcnJvci4KCjIwMDktMDYtMTIgMTU6NDg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggZG9jcwoKMjAwOS0wNi0xMiAxMzoxODoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHN0ZXBwaW5nOiBtb3JlIHN0ZXBwaW5nIGltcHJvdmVtZW50cwoJICBVcGRhdGUgZGVzaWduIGRvYyB3aXRoIHN0ZXAtc3RhcnQgZG9jcy4KCSAgQWRkIGVvcyBmaWVsZCB0byBzdGVwIGRvbmUgbWVzc2FnZQoJICB3aGVuIHN0ZXBwaW5nIGluIHJldmVyc2UsIHVwZGF0ZSB0aGUgc2VnbWVudCB0aW1lIGZpZWxkLgoJICBGbHVzaCBvdXQgdGhlIGN1cnJlbnQgc3RlcCB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCjIwMDktMDYtMTAgMTU6NTE6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwb3N0IHN0ZXAtc3RhcnQKCSAgd2hlbiB3ZSBjbGlwLCBhbHNvIHN0b3AgdGhlIHN0ZXBwaW5nLgoJICBEb24ndCBkbyBRb1Mgd2hlbiBzdGVwcGluZwoJICBQb3N0IHN0ZXAtc3RhcnQgd2hlbiBxdWV1ZWluZyBhbmQgYWN0aXZhdGluZyB0aGUgc3RlcC4KCjIwMDktMDYtMTAgMTU6NDg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgc3RlcC1zdGFydCBtZXNzYWdlCgoyMDA5LTA2LTExIDE0OjE4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogbW9yZSBlZmZpY2llbnQgdmFsdWUgdGFibGUgbG9va3VwIGZvciBmdW5kYW1lbnRhbCB0eXBlcwoJICBTbWFsbCBtaWNyby1vcHRpbWlzYXRpb246IGxvb2sgdXAgdmFsdWUgdGFibGUgZm9yIGZ1bmRhbWVudGFsIHR5cGVzCgkgIHZpYSBhbiBhcnJheSBkZWRpY2F0ZWQgdG8gZnVuZGFtZW50YWwgdHlwZXMgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoCgkgIGEgaGFzaCB0YWJsZSBsb29rdXAuIFNpbmNlIHRoZXJlIGNhbiBiZSBvbmx5IDI1NSBmdW5kYW1lbnRhbCB0eXBlcywKCSAgdGhlIHRhYmxlIHNpemUvZWZmaWNpZW5jeSB0cmFkZS1vZmYgc2hvdWxkIGJlIGFjY2VwdGFibGUsIGVzcC4gc2luY2UKCSAgdGhlIG1vc3QgY29tbW9ubHktdXNlZCB0eXBlcyBhcmUgYWxsIGZ1bmRhbWVudGFsIHR5cGVzLiBUaGUgc2l6ZSBvZgoJICB0aGUgdGFibGUgY291bGQgcHJvYmFibHkgYmUgbWluaW1pc2VkIGZ1cnRoZXIgaWYgbmVlZGVkIGJ5IGFsbG9jYXRpbmcKCSAgdGhlIHRhYmxlIGR5bmFtaWNhbGx5IGFuZCBvbmx5IGV4cGFuZGluZyBpdCBvbiBkZW1hbmQuCgoyMDA5LTA2LTExIDEzOjE2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogZG9uJ3QgcHV0IEdUeXBlcyBpbnRvIGludCB2YXJpYWJsZXMKCSAgR1R5cGVzIGFyZSBub3QgaW50cyBhbmQgYXMgc3VjaCBhcmUgbm90IGd1YXJhbnRlZWQgdG8gZml0IGludG8gYW4gaW50CgkgICh3aXRoIHRoZSBleGNlcHRpb24gb2YgZnVuZGFtZW50YWwgdHlwZXMpLCBzbyB3ZSByZWFsbHkgc2hvdWxkbid0IHB1dAoJICB0aGVtIGludG8gaW50IHZhcmlhYmxlcy4gRXZlbiBpZiBhIHJhdGhlciB1bmxpa2VseSBvYnNjdXJlIGNvcm5lciBjYXNlLAoJICB0aGlzIGhhcyBhY3R1YWxseSBiZWVuIGEgcHJvYmxlbSBhdCBzb21lIHBvaW50IGluIHRoZSBwYXN0LCBzZWUgY29tbWl0CgkgIDk5ZjE2NjU1ZjRjZmJjOGUwNmI1OTcyNDE3YmExMTI3OTA4M2E2NGUuCgoyMDA5LTA2LTExIDE3OjAzOjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjL3Npbms6IGltcHJvdmUgd2FybmluZyBtZXNzYWdlIGEgYml0ICh3cm9uZyBzdGF0ZSkKCSAgVW5pZnkgYW5kIHR1cm4gdGhvc2UgaW50byBlbGVtZW50IHdhcm5pbmdzLgoKMjAwOS0wNi0xMSAxNDowMDowOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBGaXggYSBjb21waWxlciB3YXJuaW5nCgkgIFVzZSAoZ3BvaW50ZXIpIGluc3RlYWQgb2YgKGdwb2ludGVyICopIHRvIGZpeCBhIHN0cmljdC1hbGlhc2luZyBidWlsZCB3YXJuaW5nLgoKMjAwOS0wNi0xMSAxMzoxNjoyOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkgIGRvY3M6IEJ1bXAgY29tbW9uLCBmaXggdGhlIHVwbG9hZCBsb2dpYyBpbmNsdXNpb24KCSAgVXBkYXRlIHRoZSBjb21tb24gc3VibW9kdWxlLCBhbmQgZml4IHRoZSBkb2NzIHVwbG9hZCBydWxlcyB0byBpbmNsdWRlCgkgIHRoZSByaWdodCBtYWtlZmlsZSBzbmlwcGV0IGZyb20gY29tbW9uLgoKMjAwOS0wNi0wOSAxMToxMzowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVzZSB0aGUgc2xpY2UgYWxsb2NhdG9yIGZvciBNdWx0aVF1ZXVlSXRlbXMKCjIwMDktMDYtMTAgMjA6Mjk6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBNYWtlIHN1cmUgY29uZmlnLmggaXMgb25seSBpbmNsdWRlZCBvbmNlCgkgIEZpeGVzIGJ1aWxkIHByb2JsZW0gb24gd2luMzIgKCM1ODUwNzUpLgoKMjAwOS0wNi0xMCAxODowNTo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGFkZCBzaW5jZTogdGFncyBmb3IgdGhlIGFwaSBkb2NzLgoJICBUaGUgcHJldmlvdXMgcmVsYXRlZCBjb21taXQgYWRkZWQgbmV3IEFQSS4KCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9nZXRfY2FjaGVfZGF0YSwgZ3N0X3BsdWdpbl9zZXRfY2FjaGVfZGF0YQoKMjAwOS0wNi0xMCAxMjowMjoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGZpeCBsZWFrcyBpbnRyb2R1Y2VkIGJ5IGZpeCBmb3IgIzU4NDM4OQoKMjAwOS0wNi0wOCAyMzo0MzoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV8qX2dldCooKSB2YXJhcmcgZnVuY3Rpb25zCgkgIEFkZCBhIGJ1bmNoIG9mIHZhcmFyZyBnZXR0ZXIgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGNvbXBsZW1lbnQKCSAgdGhlIHZhcmFyZyBzZXR0ZXIgZnVuY3Rpb25zLCBhbmQgYSBiYXNpYyB1bml0IHRlc3QuIEZpeGVzICM1MzQyMDguCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldF92YWxpc3QoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0X3ZhbGlzdCgpCgoyMDA5LTA2LTA5IDAwOjE2OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGEgZmV3IHNtYWxsIEFQSSBkb2MgZml4ZXMgYW5kIGFkZGl0aW9ucwoKMjAwOS0wNi0wOCAxOTozMzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBsb2dnaW5nOiB3aGVuIGxvZ2dpbmcgdGFnbGlzdHMsIHNob3J0ZW4gbG9uZyBidWZmZXIgZHVtcHMKCSAgRG9uJ3QgZHVtcCBodW5kcmVkcyBvZiBrQiBvZiBoZXhkYXRhIGludG8gZGVidWcgbG9ncyB3aGVuIGNvbnZlcnRpbmcKCSAgdGFnbGlzdHMgY29udGFpbmluZyBodWdlIGltYWdlcyBpbnRvIGEgc3RyaW5nLiBJbnN0ZWFkLCBzaG9ydGVuIHRoZQoJICBidWZmZXIgZGF0YSBzbyB0aGF0IHRoZSBzdHJpbmcgaXMgc3RpbGwgcmVhZGFibGUgYW5kIGRlYnVnIGxvZ3MKCSAgc3RheSBtYW5hZ2FibGUuIENhbiBiZSB0dXJuZWQgb2ZmIHdpdGggR1NUX0RFQlVHX09QVElPTlM9ZnVsbC10YWdzLgoJICBTZWUgIzU4NDk4OC4KCjIwMDktMDYtMDkgMTM6MDc6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY2hlY2sgYnl0ZSByYW5nZSBldmVuIHdoZW4gd2UgaGF2ZSB0aW1lc3RhbXBzCgkgIEFzIGZvdW5kIGJ5IHRoYXl0YW4gb24gSVJDLgoJICBBbHNvIGNoZWNrIHRoZSBieXRlIGxpbWl0LCBldmVuIGlmIHdlIGhhdmUgdGltZXN0YW1wcyBiZWNhdXNlIHRoZXJlIG1pZ2h0IGp1c3QKCSAgbm90IGJlIGEgdGltZSBsaW1pdC4KCjIwMDktMDYtMDkgMTI6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1cGRhdGUgc2VnbWVudCBzdGFydC9zdG9wIGZvciBjbGlwcGluZwoJICBXaGVuIHdlIHN0YXJ0IHN0ZXBwaW5nLCBzdG9yZSB0aGUgc3RhcnQvc3RvcCB2YWx1ZXMgb2YgdGhlIHNlZ21lbnQgYmVmb3JlIHdlCgkgIGluc3RhbGwgbmV3IHN0YXJ0L3N0b3AgdmFsdWVzIGZvciBjbGlwcGluZyBpbiBub24tZmx1c2hpbmcgc3RlcHMuCgkgIGZvciBub24tZmx1c2hpbmcgc3RlcHMsIHVwZGF0ZSB0aGUgZWxlbWVudCBzdGFydCB0aW1lLiBGb3IgZmx1c2hpbmcgc3RlcHMsIGl0CgkgIGRvZXMgbm90IGNoYW5nZSBiZWNhdXNlIHJ1bm5pbmdfdGltZSBkb2VzIG5vdCBhZHZhbmNlCgkgIE1ha2Ugc3VyZSB3ZSBhbHdheXMgcGVyZm9ybSB0aGUgc3RvcF9zdGVwcGluZyBvcGVyYXRpb25zIGV2ZW4gd2hlbiB3ZSBkcm9wCgkgIGZyYW1lcy4KCjIwMDktMDYtMDkgMTA6MjU6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkbyBwcm9wZXIgY2xpcHBpbmcgaW4gc3RlcHBpbmcKCSAgVXBkYXRlIHRoZSBzdG9wIHBvc2l0aW9uIG9mIHRoZSBzZWdtZW50IHNvIHRoYXQgd2UgY2xpcCBjb3JyZWN0bHkuCgkgIEFmdGVyIGNsaXBwaW5nIGluIG5vbi1mbHVzaGluZyBtb2RlLCByZXJlbmRlciB0aGUgcmVtYWluZGVyIG9mIHRoZSBidWZmZXIuCgoyMDA5LTA2LTA5IDEwOjIzOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogbWFrZSBjb252ZXJzaW9uIG1vcmUgcHJlY2lzZQoJICBNYWtlIHN1cmUgdGhlIGNvbnZlcnNpb24gZnJvbSBhbmQgdGhlIGNvbnZlcnNpb24gdG8gZ2l2ZSB0aGUgc2FtZSByZXN1bHRzLgoKMjAwOS0wNi0wOCAxNTozOTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGdzdF91dGlsX3VpbnQ2NF9zY2FsZSooKSBtaWNyby1vcHRpbWlzYXRpb25zCgkgIFNwcmlua2xlIEdfTElLRUxZL0dfVU5MSUtFTFk7IGFkZCBpbmxpbmVkIF9zY2FsZV9pbnRfdW5jaGVja2VkKCkKCSAgc28gd2UgZG9uJ3QgZG8gc29tZSBjaGVja3MgdHdpY2Ugd2hlbiBjYWxsaW5nIGl0IGZyb20gX3NjYWxlKCkuCgoyMDA5LTA2LTA3IDIyOjQ5OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgUmVtb3ZlIGRvdWJsZSBzZW1pY29sb25zIGF0IGVuZCBvZiBsaW5lCgoyMDA5LTA2LTA4IDE3OjM5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBzdGVwcGluZzogZG8gZmx1c2hpbmcgc3RlcHMgY29ycmVjdGx5CgkgIE5vdGUgaW4gdGhlIGRvY3MgdGhhdCBhIGZsdXNoaW5nIHN0ZXAgaW4gUExBWUlORyBicmluZ3MgdGhlIHBpcGVsaW5lIHRvIHRoZSBsb3N0CgkgIHN0YXRlIGFuZCBza2lwcyB0aGUgZGF0YSBiZWZvcmUgcHJlcm9sbGluZyBhZ2Fpbi4KCSAgSW1wbGVtZW50IHRoZSBmbHVzaGluZyBzdGVwIGNvcnJlY3RseSBieSBpbnZhbGlkYXRpbmcgdGhlIGN1cnJlbnQgc3RlcAoJICBvcGVyYXRpb24sIHdoaWNoIHdvdWxkIGFjdGl2YXRlIHRoZSBuZXcgc3RlcCBvcGVyYXRpb24uCgoyMDA5LTA2LTA4IDE2OjE2OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBDaGFuZ2UgYXdrd2FyZCB3b3JkaW5nIGluIGEgdHJhbnNsYXRlYWJsZSBtZXNzYWdlLgoKMjAwOS0wNi0wOCAxNjoyNzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBub24tZmx1c2hpbmcgc3RlcHMKCSAgQWRkIHN1cHBvcnQgZm9yIG5vbi1mbHVzaGluZyBzdGVwcyBhbmQgd2l0aCBkaWZmZXJlbnQgcmF0ZXMuCgkgIENsZWFyIHN0ZXAgaW5mbyB3aGVuIGZsdXNoaW5nCgoyMDA5LTA2LTA3IDIzOjQ2OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBhbGxvdyBwbHVnaW5zIHRvIGNhY2hlIGV4dHJhIGRhdGEgaW4gcmVnaXN0cnkuIEZpeGVzICM1NzAyMzMKCSAgQWRkIGEgR3N0U3RydWN0dXJlIHRvIEdzdFBsdWdpbi4gUGx1Z2lucyBjYW4gcmV0aWV2ZSBpdCBpbiBwbHVnaW5faW5pdCBhbmQKCSAgYWNjZXNzIHRoZSBjYWNoZWQgaW5mbyBvciBidWlsZCB0aGUgY2FjaGUgYW5kIHN0b3JlIGl0IHRoZXJlLgoKMjAwOS0wNi0wNyAyMjowOToxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBkb24ndCByZWNyZWF0ZSBmZWF0dXJlcyBvbiBmaXJzdCB1c2UuIEZpeGVzICM1ODQzODkKCSAgVGhlIGZpcnN0IHRpbWUgb25lIGNhbGxzIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpLCBnc3QgcmVjcmVhdGVzIHRoZSBwbHVnaW4KCSAgZmVhdHVyZSBhbmQgdGhlIGVsZW1lbnQgZmFjdG9yeS4gQXMgYSBzaWRlIGVmZmVjdCB3ZSByZWYgdGhlIGNsYXNzIHRvIGZpbGwKCSAgaW4gZGV0YWlsIHdlIGFscmVhZHkgaGF2ZSBmaWxsZWQgZnJvbSB0aGUgcmVnaXN0cnkgY2FjaGUuIFRoaXMgcGF0Y2ggY2hhbmdlcwoJICB0aGUgYmVoYXZpb3VyIHRvIGp1c3QgdXBkYXRlIHRoZSBleGlzdGluZyBlbnRyaWVzLiBUaGUgZmFjdG9yeSBpcyBub3cgYXR0YWNoZWQKCSAgdG8gdGhlIHR5cGUgYW5kIHNldCBpbiBnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQoKS4KCjIwMDktMDYtMDcgMjI6MjA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICB0ZXN0czogY29uZGl0aW9uYWxseSBjb21waWxlIHRoZSBzdHJlYW1zIGV4YW1wbGUKCSAgRGV0ZWN0IHB0aHJlYWRzLmggaW4gY29uZmlndXJlLmFjCgkgIE9ubHkgY29tcGlsZSB0aGUgc3RyZWFtcyBleGFtcGxlIHdoZW4gcHRocmVhZHMuaCBpcyBwcmVzZW50LgoJICBGaXhlcyAjNTg1MDM5CgoyMDA5LTA2LTA3IDE3OjMyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZW1vdmUgdHlwZSBjaGVja3MgYW5kIHJlZHVuZGFudCBjb2RlCgoyMDA5LTA2LTA3IDE1OjQzOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggZnJhY3Rpb24gcmFuZ2UgbGNvcHkgZnVuY3Rpb24KCSAgVGhpcyBmdW5jdGlvbiBzZWVtcyB0byBiZSBicm9rZW4gZm9yIDMuNSB5ZWFycy4gTHVja2lseSBub2JvZHkgZXZlciB0cmllZCB0bwoJICBtYWtlIGEgZnJhY3Rpb24gcmFuZ2Ugb2JqZWN0IHByb3BlcnR5Li4uCgoyMDA5LTA2LTA3IDE1OjM1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMKCSAgQWRkIGEgR1R5cGUtPkdzdFZhbHVlVGFibGUgaGFzaHRhYmxlIG1hcHBpbmcuCgkgIEF2b2lkIF9nZXRfdHlwZSgpIG11bHRpcGxlIHRpbWVzIHdoZW4gd2UgY2FuLgoJICBVc2UgR1NsaWNlIGZvciBmcmFjdGlvbiByYW5nZSBkeW5hbWljIG1lbW9yeQoJICBBZGQgR19MSUtFTFkgd2hlbiB3ZSBjYW4KCSAgSW1wcm92ZSBsb29rdXAgb2YgdGhlIHZhbHVlIHRhYmxlIHVzaW5nIHRoZSBoYXNodGFibGUKCjIwMDktMDYtMDcgMTQ6MzA6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbm8gbmVlZCB0byBjbGVhciBvbiBpbml0CgkgIFdlIGRvbid0IG5lZWQgdG8gY2xlYXIgdGhlIGZpZWxkIG9uIGluaXQgYmVjYXVzZSB3ZSB3aWxsIGRvIHRoYXQgYWdhaW4gYmVmb3JlIHdlCgkgIGFyZSBnb2luZyB0byB1c2UgdGhlIGZpZWxkIGxhdGVyLgoKMjAwOS0wNi0wNSAyMDo1NzowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0c3RydWN0dXJlOiBGaXggc29tZSBtZW1vcnkgbGVha3MuIFNwcmlua2xlIEdfTElLRUxZL1VOTElLRUxZCgkgIEZpeCBzb21lIG1lbW9yeSBsZWFrcyBzaG93biBieSB0aGUgbmV3IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIHVuaXQKCSAgdGVzdC4gU3BsaXQgdGhlIGdzdF9zdHJpbmdfd3JhcCBmdW5jdGlvbiBpbiBnc3R2YWx1ZS5jIGludG8gY29tcG9uZW50cyBhbmQKCSAgdXNlIHRoZW0gdG8gbWFrZSBnc3Rfc3RyaW5nX3Rha2VfYW5kX3dyYXAsIHdoaWNoIHRha2VzIG93bmVyc2hpcCBvZiB0aGUKCSAgc3RyaW5nLCBhdm9pZGluZyBhIHN0cmR1cC4KCSAgQWRkIHNvbWUgR19MSUtFTFkvVU5MSUtFTFksIGFuZCBjbGVhbiB1cCBzb21lIGxlYWtzIGluIGVycm9yIHBhdGhzLgoKMjAwOS0wNi0wNSAxMTozNzoyNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVwbHkgdG8gUVVFUllfU0VFS0lORyB3aXRoIG9yaWdpbmFsIGZvcm1hdC4gIEZpeGVzICM1ODQ4MzguCgoyMDA5LTA2LTA0IDE5OjQ0OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgY29uZmlndXJlOiByZW1vdmUgQUNfQ19JTkxJTkUgYW5kIHVwZGF0ZSB3aW4zMiBmaWxlcyB0byBnaXQKCSAgUmVtb3ZlIEFDX0NfSU5MSU5FIGNoZWNrLCBzbyB3ZSBkb24ndCBlbmQgdXAgd2l0aCBhbiAjdW5kZWYgaW5saW5lIGluCgkgIGNvbmZpZy5oLCB3aGljaCBjYXVzZXMgcHJvYmxlbXMgd2l0aCBzb21lIHZlcnNpb25zIG9mIE1TQ1YgYXBwYXJlbnRseS4KCSAgR0xpYiBkZWZpbmVzIGlubGluZSBmb3IgdXMgaW4gYSBzdWl0YWJsZSB3YXkgYWxyZWFkeSBhbnl3YXkuCgkgIEZpeGVzICM1ODQ4MzUuCgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBhbHNvIHVwZGF0ZSB0aGUgb3RoZXIgd2luMzIgZmlsZXMgdG8gZ2l0IChidW1wCgkgIHZlcnNpb24sIGFkZCBuZXcgZGVmaW5lcyBhbmQgZW51bXMpLgoKMjAwOS0wNi0wNCAxODoyNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYXZvaWQgZXhjZXNzaXZlIG5vdGlmeSBmb3IgY2FwcwoJICBBdm9pZCBhbiBvYmplY3QgcHJvcGVydHkgbm90aWZ5IGlmIHRoZSBjYXBzIG9uIHRoZSBvdGhlciBwYWQgd2VyZSBhbHJlYWR5CgkgIHNldCAoYW5kIHRodXMgbm90aWZpZWQpLgoKMjAwOS0wNi0wNCAxNzoyNzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBjbGlwcGVkIHN0YXJ0L3N0b3AgYWZ0ZXIgc3RlcAoJICBVc2UgdGhlIHNlZ21lbnQgaGVscGVycyB0byBnZXQgYSBtb3JlIGFjY3VyYXRlIGNsaXBwZWQgc3RhcnQvc3RvcCBwb3NpdGlvbiBhZnRlcgoJICBhIHN0ZXBwaW5nIG9wZXJhdGlvbiBlbmRlZC4KCjIwMDktMDYtMDQgMTI6MzQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgbW9yZSBjb3JyZWN0IHNlZ21lbnQgbWV0aG9kcwoJICBVc2UgdGhlIG1vcmUgY29ycmVjdCBuZXcgc2VnbWVudCBtZXRob2RzIGZvciB1cGRhdGluZyB0aGUgc2VnbWVudCBiZWZvcmUgYW5kCgkgIGFmdGVyIGEgc3RlcC4KCjIwMDktMDYtMDQgMTI6NDg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIGdzdF9zZWdtZW50X3NldF9ydW5uaW5nX3RpbWUKCSAgQWRkZWQgbmV3IG1ldGhvZCBmb3IgY2xvc2luZyB0aGUgc2VnbWVudCB0byBhIHNwZWNpZmljIHJ1bm5pbmcgdGltZS4KCSAgQVBJOiBHc3RTZWdtZW50Ojpnc3Rfc2VnbWVudF9zZXRfcnVubmluZ190aW1lKCkKCjIwMDktMDYtMDQgMDA6Mzc6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGZvciBzdHJpbmcgY2hhbmdlcwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBwZW9wbGUgd2hvIGdldCB0aGVtc2VsdmVzIGEgZnJlc2ggY2hlY2tvdXQKCSAgZG9uJ3QgaW1tZWRpYXRlbHkgaGF2ZSBjaGFuZ2VkICpwbyBmaWxlcyBhZnRlciBydW5uaW5nIG1ha2UsIHdoaWNoCgkgIHdvdWxkIGNhdXNlIGEgYml0IG9mIGhhc3NsZSBuZXh0IHRpbWUgdGhlIGZpbGVzIGFyZSB1cGRhdGVkLiBCZXR0ZXIKCSAgdG8ga2VlcCB0aGVtIHVwLXRvLWRhdGUgd2hlbiBzdHJpbmdzIGNoYW5nZS4KCjIwMDktMDYtMDQgMDA6NTQ6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGVycm9yczogcmV3b3JkIHN0YXRlIGNoYW5nZSBmYWlsZWQgZXJyb3IgbWVzc2FnZSBhbmQgcmVtb3ZlIGJ1Z3ppbGxhIGxpbmsKCSAgUmV3b3JkIHRoaXMgbWVzc2FnZSBhIGJpdCB0byBtYWtlIGl0IGNsZWFyZXIgd2hhdCBpdCBtZWFucywgbmFtZWx5IHRoYXQKCSAgdGhlIHN0YXRlIGNoYW5nZSBtYXkgaGF2ZSBmYWlsZWQgZm9yIGdvb2QgcmVhc29ucywgYnV0IHRoYXQgdGhlIGVsZW1lbnQKCSAganVzdCBmYWlsZWQgdG8gcG9zdCBhIHByb3BlciBlcnJvciBvbiB0aGUgYnVzLiBUaGlzIGlzIG5vdCBhbiBpbnRlcm5hbAoJICBHU3RyZWFtZXIgYnVnLCBhbmQgd2UgcmVhbGx5IGRvbid0IG5lZWQgcGVvcGxlIHRvIGZsb29kIGJ1Z3ppbGxhIHdpdGgKCSAgYnVnIHJlcG9ydHMgaWYgb25lIHN1Y2ggcGx1Z2luIGJ1ZyBldmVyIG1ha2VzIGl0IGludG8gdGhlIHdpbGQuCgoyMDA5LTA2LTA0IDAwOjI5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVmZXIgdG8gZWxlbWVudCwgcGFkLCBvciBvYmplY3QgaW4gc29tZSBtZXNzYWdlIHN0cmluZ3MKCSAgUmV2aXNpdCB0aGVzZSBzdHJpbmdzIG5vdyB0aGF0IHRoZSBjaGFuZ2UgcmVnYXJkaW5nIHRoZSBtZXNzYWdlIHNvdXJjZQoJICBvYmplY3QgaW4gZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKCkgZ290IHJldmVydGVkLiBUcnkgdG8gcmVmZXIKCSAgZXhwbGljaXRseSB0byB3aGF0IGtpbmQgb2YgZWxlbWVudCBpdCBpcyAoZWxlbWVudCwgcGFkLCBldGMuKSBpbiBzb21lCgkgIGNhc2VzLCB3aGljaCBpcyBuaWNlciB0aGFuIGhhdmluZyB0byBkZWR1Y2UgdGhpcyBpbmZvIChhbmQgd2UgY2FuCgkgIHJlLXVzZSB0aGUgYWxyZWFkeSBleGlzdGluZyB0cmFuc2xhdGVkIHN0cmluZ3MgZm9yIHRoZSBtb3N0IGNvbW1vbgoJICBjYXNlKS4gSXQgYWxzbyBtYWtlcyBmb3IgYmV0dGVyIGV4YW1wbGUgY29kZSwgc2luY2UgaXQncyBjbGVhciBub3cKCSAgdGhhdCB0aGUgbWVzc2FnZSBzb3VyY2Ugb2JqZWN0IGRvZXNuJ3QgaGF2ZSB0byBiZSBhbiBlbGVtZW50LgoKMjAwOS0wNi0wMyAyMToxMDozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBUEk6IGFkZCBHU1RfTUVTU0FHRV9TUkNfTkFNRSBtYWNybwoJICBBZGQgR1NUX01FU1NBR0VfU1JDX05BTUUgbWFjcm8gdGhhdCBhbHdheXMgcmV0dXJucyBhIG5vbi1OVUxMIHN0cmluZy4KCSAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIGxvZ2dpbmcgcHVycG9zZXMuCgoyMDA5LTA2LTAzIDE5OjA2OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBtZXRob2QgZm9yIGNvbnZlcnRpbmcgdG8gcG9zaXRpb24KCSAgQWRkIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uKCkgdGhhdCBjb252ZXJ0cyBhIHJ1bm5pbmdfdGltZSB0byBhIHBvc2l0aW9uIGluIHRoZQoJICBzZWdtZW50LiBBIGZhdWx0eSB2YXJpYW50IG9mIHRoaXMgZnVuY3Rpb24gaXMgY3VycmVudGx5IHVzZWQgaW4gaW5wdXRzZWxlY3RvcgoJICBidXQgd2UnbGwgbmVlZCBpdCBmb3IgZnJhbWUgc3RlcHBpbmcgdG9vLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uKCkKCjIwMDktMDYtMDMgMTU6Mzk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOyBoYW5kbGUgRU9TIGNvcnJlY3RseS4KCSAgSGFuZGxlIEVPUyBhbmQgYnVmZmVycyB3aXRob3V0IGEgdGltZXN0YW1wIGdyYWNlZnVsbHkuCgkgIFJlbW92ZSBhIHdhcm5pbmcgdGhhdCBpcyBub3Qgc28gbXVjaCBhIHdhcm5pbmcgbm93IGFueW1vcmUuCgoyMDA5LTA2LTAzIDA5OjQ1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgImdvIGJhY2sgdG8gYWxsb3dpbmcgZ2V0dGV4dCAwLjExLjUsIGJ1dCBkb24ndCBtaXggd2l0aCBsaWJ0b29sIDIuMiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzMWMwOWQ3MzhjZTdmNDdiZmY5ZDI5Mjk5NmU5NDg5YzI3NWU1NWExLgoJICBSZXZlcnRpbmcgdGhpcywgc2luY2UgaXQgYnJlYWtzIGF1dG9nZW4uc2ggZm9yIG1lIG9uIGRlYmlhbiBzaWQuCgkgIEZhaWx1cmUgaXM6ICJsaWJ0b29sIDIuMiByZXF1aXJlcyBhdXRvcG9pbnQgMC4xNyBvciBoaWdoZXIiIGV2ZW4gdGhvdWdoCgkgIDAuMTcgd2FzIGZvdW5kLgoKMjAwOS0wNi0wMyAwOTo0MToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJICBSZXZlcnQgIm9ubHkgdXBkYXRlIHN1Ym1vZHVsZSB3aGVuIGl0IGlzIG5vdCBvbiBhIHNwZWNpZmljIGJyYW5jaCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5M2I4MzMzM2FhZDUxOWM1NTU1MTU2NTc2ZjBiYWEzYmU3YjI2M2YzLgoJICBSZXZlcnRpbmcgc2luY2UgdGhpcyBmYWlscyBvbiBhIGZyZXNoIGNoZWNrb3V0LiBBbHNvLCB3ZSBzaG91bGRuJ3QKCSAgZGVwZW5kIG9uIHBvc3NpYmx5IHRyYW5zbGF0ZWQgc3RyaW5ncy4KCjIwMDktMDYtMDMgMDE6NTY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBkb2NzOiBmaXggdXAgcmVmZXJlbmNlIHRvIGdzdC1sYXVuY2gtMC44CgkgIEFsc28gbWVudGlvbiBkZWNvZGViaW4yLCB1cmlkZWNvZGViaW4sIGFuZCBwbGF5YmluMgoKMjAwOS0wNi0wMyAxMDozOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZvcmdldCBwcmV2aW91cyB0aW1lcyB3aGVuIHN0ZXBwaW5nCgkgIFdoZW4gd2Ugc3RhcnQgYSBmbHVzaGluZyBzdGVwIG9wZXJhdGlvbiwgZm9yZ2V0IGFib3V0IHRoZSBwcmV2aW91cyBzdHJlYW0gdGltZQoJICBzbyB0aGF0IHRoZSBwb3NpdGlvbiByZXBvcnRpbmcgd29ya3MgY29ycmVjdGx5LgoKMjAwOS0wNi0wMyAwMToyNToyNiArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgZ28gYmFjayB0byBhbGxvd2luZyBnZXR0ZXh0IDAuMTEuNSwgYnV0IGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yCgoyMDA5LTA2LTAzIDAxOjAxOjU3ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgb25seSB1cGRhdGUgc3VibW9kdWxlIHdoZW4gaXQgaXMgbm90IG9uIGEgc3BlY2lmaWMgYnJhbmNoCgoyMDA5LTA2LTAyIDEzOjQ1OjUyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IFNldCBwaXBlbGluZSB0byBQQVVTRUQgYmVmb3JlIHdhaXRpbmcgZm9yIG1haW4gbG9vcCBpZGxlCgkgIFdoZW4gaXQgaXMgc2h1dHRpbmcgZG93biBhIHBpcGVsaW5lIGFmdGVyIGN0cmwtYywgc2V0IHBpcGVsaW5lIHRvCgkgIHBhdXNlZCBiZWZvcmUgd2FpdGluZyBmb3IgdGhlIG1haW4gbG9vcCB0byBjb21wbGV0ZSBhbGwgcGVuZGluZwoJICB0cmFuc2FjdGlvbnMuICBGaXhlcyAjNTg0NjU3LgoJICBJZiBzb21lIHBhcnQgb2YgdGhlIHBpcGVsaW5lIGlzIGdlbmVyYXRpbmcgc2lnbmFscyBvciBpZGxlIGZ1bmN0aW9ucwoJICBhdCBhIGZhc3QgcmF0ZSwgd2FpdGluZyBmb3IgYSBtYWluIGxvb3AgaXRlcmF0aW9uIG1heSBuZXZlciByZXR1cm4uCgoyMDA5LTA2LTAyIDE4OjM2OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBzZXJpYWxpc2F0aW9uIG9mIG5lc3RlZCBzdHJ1Y3R1cmVzLgoJICBVc2Ugc3RyaW5nX3dhcnAvdW53cmFwIHRvIGVzY2FwZSBkZWxpbWl0ZXJzLCBvdGhlcndpc2UgZGVzZXJpYWxpc2F0aW9uIGZhaWxzLgoJICBBbHNvIG1vdmUgR1NUX0FTQ0lJX0lTX1NUUklORyB0byBwcml2YXRlIGhlYWRlciB0byBhdm9pZCBrZWVwaW5nIGl0IGluIHN5bmMuCgkgIEFsc28gdXNlICdcMCcgd2hlbiB0ZXJtaW5hdGluZyBhIHN0cmluZyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAwOS0wNi0wMiAxNTozNzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCByZWdyZXNzaW9uIGluIHVuaXQgdGVzdHMKCSAgU3RvcmUgdGhlIHRpbWVzdGFtcCBvZiB0aGUgYnVmZmVyIGFmdGVyIHByZXJvbGxpbmcuIFdoaWxlIHdlIGFyZSBwcmVyb2xsZWQgd2UKCSAgd2FudCB0byByZXBvcnQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWdtZW50IHN0YXJ0IHZhbHVlLgoKMjAwOS0wNi0wMSAyMDoyNjo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB3aWRlbiBsb2cgbGV2ZWwgc3RyaW5ncyB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgbmV3IE1FTURVTVAKCjIwMDktMDYtMDEgMTk6Mzc6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwb3N0IGEgd2FybmluZyBvbiBleGNlc3NpdmUgZnJhbWVkcm9wcwoJICBXaGVuIHdlIGdvIGludG8gZW1lcmdlbmN5IHJlbmRlcmluZywgcG9zdCBhIHdhcm5pbmcgaW5mb3JtaW5nIHRoZSB1c2VyIGFib3V0CgkgIHRoaXMgZmFjdC4KCjIwMDktMDUtMzEgMTk6MTA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIHN0ZXBwaW5nIGluIHJldmVyc2UKCSAgRml4IHN0ZXBwaW5nIGFuZCBwb3NpdGlvbiByZXBvcnRpbmcgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDktMDUtMjkgMTY6MDY6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2Ugc3RhcnRfdGltZSBhcyB0aGUgc3RlcCBzdGFydAoJICBVc2UgdGhlIHN0YXJ0X3RpbWUgb2YgdGhlIGVsZW1lbnQgYXMgdGhlIHBvaW50IGZyb20gd2hlcmUgdGhlIHN0ZXAgb3BlcmF0aW9uCgkgIHN0YXJ0cy4gVGhpcyBmaXhlcyBzdGVwcGluZyBpbiBhbGwgcGF1c2VkIHN0YXRlcy4KCjIwMDktMDUtMTkgMTk6NDU6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjYXRjaCBzdGVwIGNhc2VzIGluIF93YWl0X3ByZXJvbGwoKQoJICBXaGVuIGEgc3ViY2xhc3MgaXMgYmxvY2tpbmcgaW4gX3dhaXRfcHJlcm9sbCgpIGluIHRoZSBfcmVuZGVyIG1ldGhvZCwgbWFrZSBzdXJlCgkgIHdlIGNhbiB1bmxvY2sgdGhlIHN1YmNsYXNzIGFuZCBkZXRlY3QgdGhpcyByZXR1cm4gdmFsdWUgZnJvbSB0aGUgcmVuZGVyIG1ldGhvZC4KCjIwMDktMDUtMTkgMTA6NTA6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIHN0ZXBwaW5nIGluIHJldmVyc2UgZml4ZXMKCjIwMDktMDUtMTggMTg6NDE6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwcwoKMjAwOS0wNS0xOCAxNTo0ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBmcmFtZXN0ZXA6IGltcGxlbWVudCBiYWNrd2FyZHMgZnJhbWVzdGVwCgkgIFVwZGF0ZSBmcmFtZXN0ZXAgZG9jdW1lbnQsIHdlIHdhbnQgdG8gcGFzcyB0aGUgZmx1c2ggZmxhZyBpbiB0aGUgc3RlcC1kb25lCgkgIG1lc3NhZ2UuCgkgIEFkZCBmbHVzaCBmbGFnIHRvIHRoZSBnc3RtZXNzYWdlLgoJICBVcGRhdGUgZXhhbXBsZXMgdG8gdXNlIHRoZSBuZXcgc3RlcC1kb25lIG1lc3NhZ2UgYXBpLgoJICBJbXBsZW1lbnQgZnJhbWVzdGVwIHdpdGggcGxheWJhY2sgcmF0ZXMgPCAwLjAgdG9vLgoKMjAwOS0wNS0xNSAxNToyNTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBmcmFtZXN0ZXBwaW5nIGluIHRpbWUKCjIwMDktMDUtMTUgMTU6MjQ6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGV4YW1wbGVzOiBzdGVwIGluIHRpbWUgYXMgd2VsbAoKMjAwOS0wNS0xNSAxMjowMjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZTogcHJpbnQgc3RlcF9kb25lIG1lc3NhZ2UgYW5kIHN5bmMKCSAgRHVtcCB0aGUgc3RlcF9kb25lIG1lc3NhZ2UgY29udGVudHMuCgkgIFN5bmMgYWdhaW5zdCB0aGUgY2xvY2sgd2hlbiBnb2luZyB0byBQTEFZSU5HLgoKMjAwOS0wNS0xNSAxMjowNTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGtlZXAgdHJhY2sgb2Ygc3RlcHBlZCB0aW1lCgkgIFBhc3MgcnVubmluZ190aW1lIGFyb3VuZCBzbyB0aGF0IHRoZSBzdGVwcGluZyBjb2RlIGNhbiBjYWxjdWxhdGUgdGhlIGVsYXBzZWQKCSAgdGltZSBjb3JyZWN0bHkuCgoyMDA5LTA1LTE0IDE5OjI5OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW92ZSBzdHVmZiBhcm91bmQsIG1vcmUgc3RlcHBpbmcKCSAgTWFrZSBzdGFydCBhbmQgc3RvcF9zdGVwcGluZyBtZXRob2RzIGFuZCBtb3ZlIHRoZWlyIGludm9jYXRpb24gaW4gdGhlIHJpZ2h0CgkgIHBsYWNlcy4KCSAgUGVyZm9ybSB0aGUgYXR1YWwgc3RlcHBpbmcgb3BlcmF0aW9uIHdoZXJlIHdlIGhhdmUgZnVsbCBjb250ZXh0IGFib3V0IHRoZQoJICB0aW1lc3RhbXBzLgoKMjAwOS0wNS0xMSAxODo1NjowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIEFkZCBmcmFtZSBzdGVwcGluZyBpbiBQQVVTRUQgZXhhbXBsZQoKMjAwOS0wNS0xMSAxODo1Njo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpcnN0IHN0YWIgYXQgZnJhbWUgc3RlcHBpbmcgaW4gUEFVU0VECgkgIFVubG9jayB0aGUgcHJlcm9sbGVkIGZyYW1lIGFuZCByZWNoZWNrIGlmIHdlIG5lZWQgdG8gc3RlcC4KCSAgS2VlcCBhIHNpbXBsZSBjb3VudGVyIGZvciB0aGUgZnJhbWVzIHdlJ3JlIGFib3V0IHRvIHNraXAgd2hpbGUgc3RlcHBpbmcgYW5kCgkgIHByZXJvbGwvcG9zdCBzdGVwX2RvbmUgd2hlbiBzdGVwcGluZyBmaW5pc2hlZC4KCjIwMDktMDYtMDEgMTI6MTk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBuZXcgQVBJIGZvciBmcmFtZXN0ZXBwaW5nCgkgIEFkZCBuZXcgU1RFUCBldmVudCBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcvcGFyc2luZyB0aGUgZXZlbnQKCSAgVXBkYXRlIGRlc2lnbiBkb2NzLgoJICBBZGQgbmV3IFNURVBfRE9ORSBtZXNzYWdlIGFuZCBtZXRob2QgdG8gY3JlYXRlL3BhcnNlLgoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfbmV3X3N0ZXAoKQoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfcGFyc2Vfc3RlcCgpCgkgIEFQSTogR3N0TWVzc2FnZTo6Z3N0X21lc3NhZ2VfbmV3X3N0ZXBfZG9uZSgpCgkgIEFQSTogR3N0TWVzc2FnZTo6Z3N0X21lc3NhZ2VfcGFyc2Vfc3RlcF9kb25lKCkKCjIwMDktMDYtMDEgMTA6MDU6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmVzOiBkb24ndCBsZWFrIGludmFsaWQgb3IgZW1wdHkgc3RyaW5ncyB3aGVuIHdlIHdhcm4KCSAgRml4ZXMgbWlub3IgbWVtb3J5IGxlYWsgaW4gdW5pdCB0ZXN0cyBjYXVzZWQgYnkgdGhlIHJlY2VudCBjaGFuZ2VzLgoJICBTaW5jZSB3ZSdyZSBleHBlY3RlZCB0byB0YWtlIG93bmVyc2hpcCBvZiB0aGUgR1ZhbHVlIGluIHRoZSBzdHJ1Y3R1cmUKCSAgZmllbGQgc3RydWN0IGhlcmUsIHdlIG5lZWQgdG8gdW5zZXQgaXQgaWYgd2UgZG9uJ3QgdXNlIGl0LgoKMjAwOS0wNi0wMSAxMTowODozMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCB0ZXN0IGZvciBjdWJpYyBpbnQuIGFuZCB0b28gZmV3IGNvbnRyb2wgcG9pbnRzCgkgIEFkZGVkIGFub3RoZXIgdGVzdHMgdG8gY2hlY2sgc29tZSB3b3JyaWVzIGluIEJ1ZyAjNTgyNTY0LgoKMjAwOS0wNS0yOCAxMjozMTowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGFkZCBhIEZJWE1FIGNvbW1lbnQgZm9yIGJsb2Nrc2l6ZSB2cy4gc2l6ZS1tYXggcHJvcGVydHkgaXNzdWUKCjIwMDktMDUtMzEgMjE6Mjc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBoYWNrIGFyb3VuZCBnX29iamVjdF9ub3RpZnkoKSBidWcgYnkgcHJvdGVjdGluZyBpdCB3aXRoIGEgbG9jawoJICBPdXQtb2YtYmFuZCBldmVudHMgbWlnaHQgbGVhZCB0byB1cyBjYWxsaW5nIGdfb2JqZWN0X25vdGlmeSgpIGZyb20gYQoJICBub24tc3RyZWFtaW5nIHRocmVhZCwgd2hpY2ggY2FuIGNhdXNlIGNyYXNoZXMgaWYgZ19vYmplY3Rfbm90aWZ5KCkgaXMKCSAgYmVpbmcgY2FsbGVkIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgYXQgdGhlIHNhbWUgdGltZS4gU2VlICM1NTQ0NjAuCgoyMDA5LTA1LTMxIDIyOjM3OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogdXNlIHJlYWwgd29ybGQgbnVtYmVyIGluIGJlbmNobWFyawoKMjAwOS0wNS0zMSAyMjozNzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggY29tbWVudCBmb3JtYXR0aW5nCgoyMDA5LTA1LTMwIDIwOjM2OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGhhY2sgYXJvdW5kIGNyYXNoZXIgYnVnIGluIGdfb2JqZWN0X25vdGlmeSgpIGZvciBvdXQtb2YtYmFuZCBldmVudHMKCSAgR09iamVjdCBtYXkgY3Jhc2ggaWYgdHdvIHRocmVhZHMgZG8gY29uY3VycmVudCBnX29iamVjdF9ub3RpZnkoKSBvbiB0aGUgc2FtZQoJICBvYmplY3QuIFRoaXMgbWF5IGhhcHBlbiBpZiBmYWtlc2luayByZWNlaXZlcyBhbiBvdXQtb2YtYmFuZCBldmVudCBzdWNoIGFzCgkgIEZMVVNIX1NUQVJUIHdoaWxlIHByb2Nlc3NpbmcgYSBidWZmZXIgb3Igc2VyaWFsaXNlZCBldmVudCBpbiB0aGUgc3RyZWFtaW5nCgkgIHRocmVhZC4gU2luY2UgdGhpcyBtYXkgaGFwcGVuIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MgZHVyaW5nIGEgY29tbW9uCgkgIG9wZXJhdGlvbiBsaWtlIGEgc2VlaywgYW5kIHRoZXJlIHNlZW1zIHRvIGJlIGxpdHRsZSBjaGFuY2Ugb2YgYSB0aW1lbHkgZml4CgkgIGluIEdPYmplY3QgKHNlZSAjMTY2MDIwKSwgd2Ugc2hvdWxkIGhhY2sgYXJvdW5kIHRoaXMgaXNzdWUgYnkgcHJvdGVjdGluZyBhbGwKCSAgb2YgZmFrZXNpbmsncyBkaXJlY3QgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMgd2l0aCBhIGxvY2suCgkgIEFsc28gYWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoJICBGaXhlcyAjNTU0NDYwLgoKMjAwOS0wNS0zMSAxNjoxNzo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0czogbWFrZSBfZ2V0X3tzdHJpbmd8cG9pbnRlcn0gcmV0dXJuIEZBTFNFIGZvciBOVUxMIHZhbHVlcwoJICBNYWtlIGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKCkgcmV0dXJuIEZBTFNFIGZvciBOVUxMIHN0cmluZ3MgYW5kCgkgIGVtcHR5IHN0cmluZ3MsIGFuZCBnc3RfdGFnX2xpc3RfZ2V0X3BvaW50ZXIoKSByZXR1cm4gRkFMU0UgZm9yCgkgIE5VTEwgcG9pbnRlcnMsIGxpa2Ugd2UgZG8gd2l0aCBkYXRlcyBhbmQgYnVmZmVycy4KCSAgRml4ZXMgIzU2MDM0NS4KCjIwMDktMDUtMzAgMjA6NTA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGFnbGlzdHM6IHdhcm4gaWYgc29tZW9uZSB0cmllcyB0byBhZGQgZW1wdHkgb3IgTlVMTCBzdHJpbmcgdGFncyB0byBhIHRhZ2xpc3QKCSAgQWxzbyB3YXJuIGlmIGFuIGVsZW1lbnQgb3IgYXBwbGljYXRpb24gdHJpZXMgdG8gYWRkIGEgZmllbGQgd2l0aCBhbgoJICBlbXB0eSBzdHJpbmcgdG8gYSBzdHJ1Y3R1cmUgKE5VTEwgc3RyaW5ncyBhcmUgc3RpbGwgbmVlZGVkIGFuZAoJICBhbGxvd2VkIHRob3VnaCkgYW5kIGRvIGFsbCB0aG9zZSBjaGVja3MgaW4gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoJICBGaXhlcyAjNTU5NjQzLgoKMjAwOS0wNS0yOSAxODoyMjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBhZGQgZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSBjb252ZW5pZW5jZSBmdW5jdGlvbgoJICBBZGQgY29udmVuaWVuY2Ugd3JhcHBlciBmb3IgZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXcoKSBwbHVzCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfc2V0KCkgYW5kIHVzZSBpdCBpbiBhIGZldyBwbGFjZXMuCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKQoKMjAwOS0wNS0yOSAxODowMDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbWljcm8tb3B0aW1pc2F0aW9uOiB1c2UgR1NUX1FVQVJLIGluIG1vcmUgcGxhY2VzCgkgIFVzZSBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIGluIGNvbWJpbmF0aW9uIHdpdGggR1NUX1FVQVJLCgkgIHJhdGhlciB0aGFuIGdzdF9zdHJ1Y3R1cmVfaWRfbmV3KCkgd2hlbiBjcmVhdGluZyBtZXNzYWdlLCBldmVudCwKCSAgcXVlcnkgYW5kIHRhZ2xpc3Qgc3RydWN0dXJlcy4gTW9zdGx5IGp1c3QgYmVjYXVzZSB3ZSBjYW4uCgoyMDA5LTA1LTI5IDE2OjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVzZXQgc3RhcnRfdGltZSBpbiBsb3N0IHN0YXRlCgoyMDA5LTA1LTI5IDEzOjAzOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRvY3M6IHVwZGF0ZSBlbGVtZW50IGFuIHBpcGVsaW5lIGRvY3MKCjIwMDktMDUtMjkgMTI6NDg6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBkb2NzOiByZW1vdmUgYSBUT0RPIGl0ZW0gdGhhdCBpcyBmaXhlZCBub3cKCjIwMDktMDUtMjkgMTI6MjE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogZGVwcmVjYXRlIG9sZCBtZXRob2RzLCBmaXggdGVzdAoJICBEZXByZWNhdGUgdGhlIG9sZCBfc2V0X3N0cmVhbV90aW1lIGFuZCBfZ2V0X2xhc3Rfc3RyZWFtX3RpbWUgbWV0aG9kcyBiZWNhdXNlCgkgIHRoZXkgYXJlIG5vdyBlcXVpdmFsZW50IHRvIHRoZSBiZXR0ZXIgbmFtZWQgX3NldC9fZ2V0X3N0YXJ0X3RpbWUuCgoyMDA5LTA1LTI4IDE2OjMwOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBwaXBlbGluZTogdXNlIFNUQVJUX1RJTUUgdG8ga2VlcCB0cmFjayBvZiB0aW1lCgkgIFVzZSB0aGUgZWxlbWVudCBTVEFSVF9USU1FIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHJ1bm5pbmcgdGltZSB3aGVuIHRoZSBwaXBlbGluZQoJICBwYXVzZWQgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBiYXNlX3RpbWUuCgkgIFRha2UgdGhlIHN0YXJ0X3RpbWUgYmVmb3JlIHNldHRpbmcgdGhlIGNoaWxkcmVuIHRvIFBBVVNFRCBzbyB0aGF0IHdlIGNhbgoJICBkaXN0cmlidXRlIHRoZSBzdGFydF90aW1lIHRvIHRoZSBjaGlsZHJlbi4KCjIwMDktMDUtMjggMTU6NDA6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogc2V0IHRoZSBiYXNlX3RpbWUgYW5kIHN0YXJ0X3RpbWUgYmV0dGVyCgkgIFNpbXBseSBzZXQgdGhlIHN0YXJ0X3RpbWUgYW5kIGJhc2VfdGltZSBvbiB0aGUgZWxlbWVudCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlCgkgIHNldHRlcnMuCgoyMDA5LTA1LTI3IDExOjM1OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2UgdGhlIGJpbiBzZXQgdGhlIHN0YXJ0X3RpbWUgb24gZWxlbWVudHMKCSAgU2V0IHRoZSBzdGFydF90aW1lIG9mIHRoZSBiaW4gb24gdGhlIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gdGhlCgkgIHBpcGVsaW5lIGFuZCB3aGVuIGEgc3RhdGUgY2hhbmdlIGhhcHBlbnMuCgoyMDA5LTA1LTI2IDExOjUzOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBzdGFydF90aW1lIGZpZWxkIGFuIG1ldGhvZHMKCSAgQWRkIGEgc3RhcnRfdGltZSBmaWVsZCBhbmQgc29tZSBtZXRob2RzLiBUaGUgc3RhcnRfdGltZSB3aWxsIGNvbnRhaW4gdGhlCgkgIHJ1bm5pbmdfdGltZSBvZiB3aGVuIHRoZSBlbGVtZW50IGxhc3Qgd2VudCB0byBwYXVzZWQuIFRoaXMgdGltZSBjYW4gYmUgdXNlciB0bwoJICByZXBvcnQgdGhlIHBvc2l0aW9uIGluIFBBVVNFRCBidXQgYWxzbyB0byBkbyBtb3JlIGNvcnJlY3QgY2xpcHBpbmcgYW5kCgkgIHN0ZXBwaW5nIGxhdGVyLgoKMjAwOS0wNS0yOCAyMjowMjoyMSArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggX21hc2tlZF9zY2FuX3VpbnQzMigpIGF0IGJvdW5kYXJpZXMKCSAgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyIGNvdWxkIHJldHVybiB2YWx1ZXMgc21hbGxlciB0aGFuIG9mZnNldAoJICBpZiB0aGUgZmlyc3QgYnl0ZShzKSBvZiB0aGUgbWFzayBhcmUgMCBhbmQgdGhlIHBhdHRlcm4gbWF0Y2hlcyB0aGUKCSAgYmVnaW5uaW5nIG9mIHRoZSBhZGFwdGVyLgoJICBBZGRlZCBleGFtcGxlcyB0byBkb2N1bWVudGF0aW9uIG9mIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMigpLgoJICBBbHNvIGFkZGVkIHNvbWUgbW9yZSBtYXNrZWQgYm91bmRhcnkgdGVzdHMuCgkgIEZpeGVzICM1ODQxMTgKCjIwMDktMDUtMjggMTY6MzY6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcGFkIHByaXZhdGUgc3RydWN0dXJlCgkgIEFkZCBwYWQgcHJpdmF0ZSBzdHJ1Y3R1cmUgYW5kIG1vdmUgdGhlIG5ldyBjaGFpbmxpc3RmdW5jIGludG8gdGhlIHByaXZhdGUKCSAgc3RydWN0LiBUaGlzIGF2b2lkcyBBQkkgYnJlYWthZ2UgYW5kIGFsbG93cyB1cyB0byBleHBhbmQgaW4gdGhlIGZ1dHVyZS4KCjIwMDktMDUtMjcgMTY6MzQ6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbWlzc2luZyBzeW1ib2wgdG8gdGhlIHdpbjMyIGV4cG9ydHMKCSAgVGhpcyB3YXMgYWNjaWRlbnRpYWxseSByZW1vdmVkIGJ5IG15IGxhc3QgY29tbWl0LgoKMjAwOS0wNS0yNyAxNjoxNzozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhdm9pZCBtZW1vcnkgbGVha3MKCSAgQXZvaWQgbGVha2luZyB0aGUgY2FwcyBvZiB0aGUgZGVzdCBidWZmZXIgYW5kIGF2b2lkIGRvaW5nIG5lZWRsZXNzIGNhcHMKCSAgcmVmcy4KCSAgV2hlbiB0aGUgc291cmNlIGFuZCB0YXJnZXQgYnVmZmVycyBhcmUgdGhlIHNhbWUsIHJldHVybiBpbW1lZGlhdGx5LgoKMjAwOS0wNS0yNyAxNDozMjo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X21lc3NhZ2Vfe25ldyxwYXJzZX1fdGFnX2Z1bGwoKSB0byBnZXQvc2V0IHRoZSBzb3VyY2UgcGFkCgkgIEZpeGVzIGJ1ZyAjNTgyNTg4LgoKMjAwOS0wNS0yNyAxNDowNjoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBTZXQgdGhlIG9yaWdpbmF0aW5nIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQgKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYmViZmRlNzUwMjdlOTc1YjdlN2M3NGM2MzU4YzViZTgzZWE0YWM5Zi4KCSAgVGhpcyBjaGFuZ2Ugc2hvdWxkbid0IGJlIGRvbmUgaW4gYSBzdGFibGUgcmVsZWFzZSBzZXJpZXMgYXMKCSAgYXBwbGljYXRpb25zIGFyZSBhY3R1YWxseSBleHBlY3RpbmcgdGhlIHNlbmRlciB0byBiZSBhbgoJICBHc3RFbGVtZW50LiBPbmUgZXhhbXBsZSBpcyB0b3RlbS4KCjIwMDktMDUtMjYgMTE6MzU6NDkgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uCgoyMDA5LTA1LTI2IDEwOjQxOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBGaXggJ21ha2UgZGlzdGNoZWNrJwoJICBUaGUgY2hlY2stZW51bS1nZXR0eXBlcyBydWxlIGRpZG4ndCB3b3JrIGZvciAnbWFrZSBkaXN0Y2hlY2snIHNpbmNlCgkgIGl0IG1ha2VzIGFzc3VtcHRpb25zIGFib3V0IHRoZSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIGZpbGVzIGZyb20gdGhlCgkgIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgd2hpY2ggaXNuJ3QgdHJ1ZSBkdXJpbmcgZGlzdGNoZWNraW5nLgoKMjAwOS0wNS0yNiAxMDozODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBtYW51YWxzLm1hazogYXR0ZW1wdCB0byBtYWtlICdtYWtlIGRpc3RjaGVjaycgd29yayB3aXRoIC1qTgoJICBBdHRlbXB0IHRvIGZpeCB0aGUgJ2Nhbm5vdCBjcmVhdGUgcmVndWxhciBmaWxlIGJ1aWxkL2ltYWdlLmVudGl0aXRlczoKCSAgZmlsZSBleGlzdHMnIGVycm9yIEkgZ290LgoKMjAwOS0wNS0yNSAyMzo1ODozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZpeCBjZHBhcmFub2lhIGV4YW1wbGUgcGlwZWxpbmUgaW4gZ3N0LWxhdW5jaCBtYW4gcGFnZQoKMjAwOS0wNS0yNSAxODo0NDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCB0eXBvIGluIGNvbW1lbnRzCgoyMDA5LTA1LTI1IDE3OjQzOjMyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBkaXN0OiBGaXggdGhlIG5hbWUgb2YgdGhlIGhlYWRlciB0byBkaXN0OiB0ZXN0cnRwb29sLmgsIG5vdCBydHBvb2wtdGVzdC5oCgoyMDA5LTA1LTI1IDE3OjAzOjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDUtMjUgMTY6NTQ6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBhc3NlcnRpb24KCSAgUmVtb3ZlIGFuIGFzc2VydGlvbiwgdGhpcyBpcyBub3QgcmVhbGx5IGFuIGVycm9yIGluIGFsbCBjYXNlcy4KCSAgRml4ZXMgIzU4MjAxMAoKMjAwOS0wNS0yNSAxNjoyMTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZW5hYmxlIG1vbm90b25pYyBjbG9jayB3aGVuIHdlIGNhbgoJICBFbmFibGUgdGhlIG1vbm90b25pYyBjbG9jayBieSBkZWZhdWx0IHdoZW4gd2UgY2FuLgoJICBGaXhlcyAjNTgzNTU0CgoyMDA5LTA1LTI1IDE0OjUyOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBkb2NzOiBhZGQgSW1hZ2UgdG8gZHJhZnQga2xhc3MgZG9jdW1lbnRhdGlvbgoKMjAwOS0wNS0yNSAxMzowMzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBrZWVwIHRhc2sgcmVmIGJlZm9yZSByZWxlYXNpbmcgdGhlIGxvY2sKCSAgS2VlcCBhIHJlZiB0byB0aGUgdGFzayBvbiB0aGUgcGFkIHNvIHRoYXQgYSBjb25jdXJyZW50IHN0b3AgY2FuIHN0b3AgYW5kIGpvaW4KCSAgdGhlIHRhc2suCgoyMDA5LTA1LTI1IDExOjU2OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZ3N0dGFzazogYXZvaWQgam9pbiB0byByZXR1cm4gZWFybHkKCSAgVW5zZXQgdGhlIHJ1bm5pbmcgZmxhZyBhZnRlciB3ZSByZWxlYXNlZCB0aGUgbG9jayBmb3IgcG9zdGluZyB0aGUgc3RyZWFtLXN0YXR1cwoJICBtZXNzYWdlLiBJZiB3ZSBzZXQgdGhlIHJ1bm5pbmcgZmxhZyB0byBGQUxTRSB0b28gZWFybHksIHRoZSBqb2luIG1ldGhvZCB3aWxsCgkgIGp1c3QgY29udGludWUgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgbWVzc2FnZSB0byBiZSBwb3N0ZWQsIGxlYWRpbmcgdG8gcG90ZW50aWFsCgkgIGNyYXNoZXMuCgoyMDA5LTA1LTI0IDIzOjE0OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZml4IHVwZGF0ZSBydWxlCgkgIE9ubHkgdXBkYXRlIHRoZSBwcmVzZXQgZnJvbSBzeXN0ZW0sIGlmIHdlIGhhZCBhIHByZXNldCBiZWZvcmUgYW5kIHN5c3RlbQoJICB2ZXJzaW9uIGlzIG5ld2VyLgoKMjAwOS0wNS0yMiAyMzo0NzozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIGEgYmVuY2htYXJrIHRvIHZlcmlmeSB0aGUgc3dpdGNoIHRvIGdzZXF1ZW5jZQoKMjAwOS0wNS0yMiAyMzo1MDo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBtb3JlIGVycm9yIGhhbmRsaW5nIHRvIGV4YW1wbGUKCjIwMDktMDUtMjIgMjM6MTQ6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZnJlZSBub2RlLWRhdGUgYW5kIGRlcmVmIGFnYWluLiBGaXhlcyAjNTgwNTc5CgkgIFdoZW4gd3JpdGluZyBhIGNhY2hlIGNodW5rIGZhaWxzLCB3ZSB3ZXJlIGZyZWVpbmcgdGhlIG5vZGUgYW5kIGp1bXAgdG8gYSBmaW5hbAoJICBjbGVhbnVwIHdoaWNoIGRlcmVmZXJlbmNlZCBhIG51bGwgcG9pbnRlci4gTGV2ZSBmcmVlaW5nIHRoZSBub2RlIHRvIHRoZSBjbGVhbnVwCgkgIGNvZGUgaW4gZmFpbF9mcmVlX2xpc3QuIChzb3JyeSBmb3IgY29tbWl0dGluZyB3cm9uZyBmaXggYmVmb3JlKS4KCjIwMDktMDUtMjIgMjM6MTA6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZnJlZSBub2RlLWRhdGUgYW5kIGRlcmVmIGFnYWluLiBGaXhlcyAjNTgwNTc5CgkgIFdoZW4gd3JpdGluZyBhIGNhY2hlIGNodW5rIGZhaWxzLCB3ZSB3ZXJlIGZyZWVpbmcgdGhlIG5vZGUgYW5kIGp1bXAgdG8gYSBmaW5hbAoJICBjbGVhbnVwIHdoaWNoIGRlcmVmZXJlbmNlZCBhIG51bGwgcG9pbnRlci4gTGV2ZSBmcmVlaW5nIHRoZSBub2RlIHRvIHRoZSBjbGVhbnVwCgkgIGNvZGUgaW4gZmFpbF9mcmVlX2xpc3QuCgoyMDA5LTA1LTIyIDE0OjE3OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgR19MSUtFTFkgYW5kIGpvaW4gdHdvIGlmIGZvciBzYW1lIGNvbmRpdGlvbgoJICBBIEdfTElLRUxZIGZvciB0aGUgc2VxdWVuY2UhPU5VTEwgY2hlY2tzLiBKb2luIHR3byBpZnMgdG8gYW4gaWYtZWxzZS4gQWRkCgkgIGluZGVudCBndWlkZXMgdG8ga2VlcCBpbmRlbnQgZm9ybSBicmVha2luZyB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24KCjIwMDktMDUtMjIgMTI6NTc6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGdzdHR5cGVmaW5kaGVscGVyOiBGaXggaW5kZW50YXRpb24KCjIwMDktMDUtMjIgMTI6MjQ6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyB3YXJuaW5ncwoJICBNb3ZlIE1UIHNhZmV0eSB0byBtYWluIGRlc2NyaXB0aW9uIChpdCBkb2VzIG5vdCBiZWxvbmcgdG8gUmV0dXJuOiBvciBTaW5jZToKCSAgc3RhdGVtZW50KS4gQWRkIGEgZmV3IG1pc3NpbmcgcmV0dXJuIGRvY3MuIERvd25ncmFkZSBhIG5vcm1hbCBjb21tZW50IGZyb21hIGRvYwoJICBjb21tZW50LiBGaXggYSBkb2MgaGVhZGVyIHRvIG9ubHkgY29udGFpbiBzeW1ib2wgbmFtZS4KCjIwMDktMDUtMjIgMTA6MTk6MzYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDNhOGZhYiB0byA4ODhlMGEyCgoyMDA5LTA1LTIyIDA5OjUxOjQ0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBkaXN0OiBBZGQgcnRwb29sLXRlc3QuaCB0byB0aGUgc291cmNlcyBsaXN0IHNvIGl0IGdldHMgZGlzdGVkLgoJICBGaXhlcyB0aGUgZGlzdGNoZWNrCgoyMDA5LTA1LTIyIDA5OjQ0OjI1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZXM6IElnbm9yZSB0aGUgY2xvY2tzdHJlc3MgYmVuY2htYXJrIGJpbmFyeQoKMjAwOS0wNS0yMiAwOTo0MTozNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGNvbnRyb2xsZXI6IFNpbGVuY2UgYSB3YXJuaW5nIGZyb20gdGhlIEdTZXF1ZW5jZSBiZWluZyBOVUxMLgoJICBGaXggYSB3YXJuaW5nIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHNlbGYtPnByaXYtPnZhbHVlcyBpcyBOVUxMIGFuZAoJICB0aGUgY29kZSB0cmllcyB0byByZXRyaWV2ZSBhbiBpdGVyYXRvciBmcm9tIGl0LiBUaGUgd2FybmluZyB3YXMgc2hvd2luZwoJICB1cCBpbiB0aGUgY2hlY2tzIGZvciB0aGUgdm9sdW1lIGVsZW1lbnQuCgoyMDA5LTA1LTIyIDA5OjMzOjAyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBkb2NzOiBGaXggdXAgc29tZSBkb2N1bWVudGF0aW9uIHdhcm5pbmdzLgoJICBTaW5jZTogdGFncyBzaG91bGQgYWx3YXlzIGJlIHRoZSBsYXN0IHRoaW5nIGluIGEgZG9jIGJsb2NrLCBhcHBhcmVudGx5LgoJICBBZGQgc29tZSBSZXR1cm5zOiBkZXNjcmlwdGlvbnMgdG8gc29tZSByZWNlbnQgZnVuY3Rpb25zLgoKMjAwOS0wNS0yMSAxNzozMjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIGZvciBzdHJlYW1fdGltZS0+cnVubmluZ190aW1lCgkgIENoYW5nZSBzb21lIGluc3RhbmNlcyB3aGVyZSB3ZSB3cm9uZ2x5IHJlZmVyIHRvIHN0cmVhbSB0aW1lIHdoZXJlIGl0IHNob3VsZCBoYXZlCgkgIGJlZW4gcnVubmluZyB0aW1lLgoKMjAwOS0wNS0yMSAxMDo1Nzo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IHVzZSBHX0dVSU5UMzJfRk9STUFUIGluIHRyYW5zbGF0YWJsZSBzdHJpbmcKCSAgeGdldHRleHQgZG9lc24ndCBoYW5kbGUgdGhpcyB2ZXJ5IHdlbGwuIEZpeGVzICM1ODM0MTkuCgoyMDA5LTA1LTIwIDE3OjA3OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IGNhbiByZW1vdmUgdGhlIC1Xbm8tcG9ydGFiaWxpdHkgZnJvbSBoZXJlIG5vdwoJICBzaW5jZSB3ZSBhZGRlZCBpdCB0byBjb25maWd1cmUuYWMuCgoyMDA5LTA1LTIwIDIyOjE4OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGltcHJvdmUgdGhlIGZsdXNoIGZ1bmN0aW9uCgkgIFJlbW92ZSBhIGNvbXBhcmUgYW5kIGJyYW5jaCBmcm9tIGZsdXNoLgoKMjAwOS0wNS0yMCAxNzoyNDoxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBmaXggYXNzZXJ0aW9uIHdoZW4gZnJlZWluZyB0aGUgY29udHJvbCBzb3VyY2UKCjIwMDktMDUtMjAgMTI6NDg6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcG90ZW50aWFsbHkgc2F2ZSBhIG1lbWNweSBpbiBfdGFrZQoJICBEaXJlY3RseSB1c2UgdGhlIGFzc2VtYmxlZF9kYXRhIGluIF90YWtlKCkgZnVuY3Rpb25zIHdoZW4gd2UgY2FuIGluc3RlYWQgb2YKCSAgY29weWluZyBpdCBvdXQuCgoyMDA5LTA1LTIwIDExOjM2OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1pY3JvIG9wdGltaXNhdGlvbnMKCjIwMDktMDUtMjAgMTE6MTI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXZvaWQgY29tcGFyaXNpb25zIGluIGZhc3QgcGF0aAoJICBTbWFsbCB0d2Vha3MgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgdXNlbGVzcyBjb21wYXJlcyBpbiBsb29wcy4KCjIwMDktMDUtMjAgMTA6Mjg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IG9uZSBtb3JlIGFkYXB0ZXIgdGVzdAoKMjAwOS0wNS0yMCAxMDoyNzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBicmFuY2ggaW4gY29weSBjb2RlCgoyMDA5LTA1LTIwIDEwOjU2OjExICswMzAwICBIYW5uZXMgQmlzdHJ5IDxiaXN0cnlAaW5mb3JtYXRpay51bmktaGFtYnVyZy5kZT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBsb2Fkc2F2ZTogZml4IHJlcXVlc3RwYWQgaGFuZGxpbmcgYW5kIHNlcmlhbGlzYXRpb24gb3JkZXIuCgkgIFN1cHBvcnQgcmVxdWVzdCBwYWRzIHdoZW4gbG9hZGluZy4gUmV2ZXJzZSBwYWQgc2VyaWFsaXNhdGlvbiBvcmRlciB0bwoJICBwcmVzZXJ2ZSBpdCB3aGVuIHJlY3JlYXRpbmcgdGhlIHBpcGVsaW5lLgoKMjAwOS0wNS0yMCAwMDo0NToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wKCjIwMDktMDUtMjAgMDA6NDQ6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHN5bWJvbCB0byBkb2NzCgoyMDA5LTA1LTIwIDAwOjM3OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIF9tYXNrZWRfc2Nhbl91aW50MzIKCSAgQWRkIGEgcmVhc29uYWJseSBvcHRpbWl6ZWQgbmV3IGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMigpIGZ1bmN0aW9uCgkgIHRvIHNjYW4gdGhlIGFkYXB0ZXIgZm9yIGEgcGF0dGVybiBhZnRlciBhcHBseWluZyBhIG1hc2suCgkgIEFkZCBzb21lIHVuaXQgdGVzdHMuCgkgIEFQSTogR3N0QWRhcHRlcjo6Z3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkKCSAgRml4ZXMgIzU4MzE4NwoKMjAwOS0wNS0xOSAyMjoxMzowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBtb3JlIG9wdGltaXNhdGlvbnMKCSAgUmVtb3ZlIGR1cGxpY2F0ZSBjb3B5IGNvZGUgKF9wZWVrX2ludG8gYW5kIF9jb3B5KSBhbmQgbWFrZSBhIHVuaWZpZWQKCSAgb3B0aW1pemVkIGNvcHkgZnVuY3Rpb24uCgoyMDA5LTA1LTE5IDE3OjEyOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBwYXNzIC1Xbm8tcG9ydGFiaWxpdHkgdG8gYXV0b21ha2UgdG8gc3VwcHJlc3Mgd2FybmluZ3MKCSAgR05VIG1ha2UgaXMgcmVxdWlyZWQsIG5vIHBvaW50IHByZXRlbmRpbmcgb3RoZXJ3aXNlLgoKMjAwOS0wNS0xOCAwMTowMDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgIGRvY3M6IG1lbnRpb24gdGhhdCBHU1RfRk9STUFUX3tQRVJDRU5UfEJVRkZFUlN9IGFyZSBub3QgaW1wbGVtZW50ZWQKCjIwMDktMDUtMTcgMTA6NDY6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBnc3RjbG9jazogRml4IEFCSSBicmVha2FnZSBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcwoJICBUaGUgcGFkZGluZyBvZiBHc3RDbG9jayBpcyBhIEdzdENsb2NrVGltZSBhbmQgbm90IGEKCSAgZ3BvaW50ZXIsIHNvIGFkZGluZyBhIHBvaW50ZXIgcmVxdWlyZXMgdGhlIHBhZGRpbmcKCSAgc2l6ZSB0byBiZSBjaGFuZ2VkIGRlcGVuZGluZyBvbiB0aGUgcG9pbnRlciBzaXplLgoJICBVc2UgYW4gdW5pb24gaW5zdGVhZC4KCSAgRml4ZXMgYnVnICM1ODI4NzguCgoyMDA5LTA1LTE1IDE1OjI0OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBbZ3N0dmFsdWVdIGFkZHMgc2FmZXR5IHBhcmVudGhlc2lzIHRvIG1hY3JvcyBtaXNzaW5nIHRoZW0uCgoyMDA5LTA1LTE1IDE0OjQyOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBbZ3N0dXRpbHNdIEFkZHMgbW9yZSBzYWZldHkgdG8gR1NUX1dSSVRFXyogYW5kIEdTVF9SRUFEXyBtYWNyb3MuCgkgIEFkZHMgc2FmZXR5ICggKSB0byBwYXJhbWV0ZXJzIGluIF9HU1RfUFVUIGFuZCBfR1NUX0dFVCBtYWNyb3MuCgkgIEZpeGVzICM1ODI3MDguCgoyMDA5LTAzLTE5IDExOjM3OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogdXNlIHNlcWxvY2tzIHRvIHBhcmFsbGVsbGl6ZSByZWFkZXJzCgoyMDA5LTA0LTE2IDE1OjUzOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBzdHJlc3M6IGFkZCBhIGNsb2NrIHN0cmVzc3Rlc3QKCSAgQWRkIGEgc3RyZXNzdGVzdCBmb3IgZ3N0X2Nsb2NrX2dldF90aW1lKCkuCgoyMDA5LTA1LTE1IDExOjAwOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgTWFrZWZpbGUuYW06IHVwZGF0ZSBmb3IgYWRkZWQvbW92ZWQvcmVtb3ZlZCBmaWxlcyB0aGF0IHdlcmVuJ3QgZGlzdC1lZC4KCjIwMDktMDUtMTIgMTE6Mjk6MjEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IFJlbGVhc2Ugc2NyaXB0IG1vZGlmaWNhdGlvbnMKCjIwMDktMDUtMTQgMjI6MTE6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgY29udHJvbGxlcjogVXNlIG9yZGVyZWQgR1NlcXVlbmNlIGluc3RlYWQgb2YgR0xpc3QKCSAgVGhpcyBtYWtlcyBsb29rdXBzIGFuZCBpbnNlcnRpb25zIE8obG9nIG4pIGluc3RlYWQgb2YKCSAgYWx3YXlzIE8obikgZm9yIGluc2VydGlvbnMgYW5kIE8obikgaW4gd29yc3QgY2FzZSBmb3IKCSAgbG9va3Vwcy4KCSAgRml4ZXMgYnVnICM1ODI1NjQuCgoyMDA5LTA1LTE0IDEyOjMwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkb2NzOiByZW5hbWUgYW5kIGRlbGV0ZSBzb21lIGRlc2lnbiBkb2NzCgoyMDA5LTA1LTE0IDEyOjMwOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogUHJpbnQgdGhlIHBhdGggc3RyaW5nIGZvciBtZXNzYWdlIHNvdXJjZXMKCSAgVGhpcyByZWR1Y2VzIGNvbmZ1c2lvbiBpZiB0aGUgbWVzc2FnZSBzb3VyY2UgaXMgYSBwYWQKCSAgYW5kIG9ubHkgInNyYyIgaXMgcHJpbnRlZCBhcyBzb3VyY2UuCgoyMDA5LTA1LTE0IDEyOjI1OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBlbGVtZW50OiBTZXQgdGhlIG9yaWdpbmF0aW5nIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQgKCkKCSAgRml4ZXMgYnVnICM1ODI1ODguCgoyMDA5LTA1LTE0IDExOjM2OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoJICBBZGQgYSBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKSB3aXRoIGFuIGV4dHJhIGFyZ3VtZW50IHRvIGNvbnRyb2wKCSAgZGlzdHJpYnV0aW9uIG9mIGEgbmV3IGJhc2VfdGltZS4gV2Ugd2lsbCBuZWVkIHRoaXMgZm9yIGZsdXNoaW5nIHN0ZXAKCSAgb3BlcmF0aW9ucy4KCSAgQVBJOiBHc3RFbGVtZW50Ojpnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoKMjAwOS0wNS0xMyAyMzo1MjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBkb24ndCB1c2UgcmVhbGxvYywgaXQgZG9lcyBhIG1lbWNweQoJICBEb24ndCB1c2UgcmVhbGxvYyB0byBncm93IHRoZSBzY3JhdGNoIGFyZWEgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRoZSBtZW1jcHkgdGhlCgkgIG9sZCB1c2VsZXNzIGRhdGEgaW50byB0aGUgbmV3IGFyZWEgYmVmb3JlIHdlIHdyaXRlIG91ciBuZXcgc3R1ZmYgaW4gaXQuCgoyMDA5LTA1LTEzIDIzOjM4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZG9jczogdXBkYXRlIHRyaWNrbW9kZSBkb2N1bWVudAoKMjAwOS0wNS0xMyAyMjo1MToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB1c2UgZ19yZWFsbG9jIGZvciByZXNpemluZyB0aGUgYnVmZmVyCgkgIFVzZSBnX3JlYWxsb2MgZm9yIHJlc2l6aW5nIHRoZSBpbnRlcm5hbCBidWZmZXIgaW5zdGVhZCBvZiBhCgkgIGxlc3MgZmFuY3kgX2ZyZWUvX21hbGxvYyBwYWlyLgoKMjAwOS0wNS0xMyAyMTozNToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogbW92ZSBuZXcgbWVtYmVyIHRvIHByaXZhdGUgc3RydWN0CgkgIE1vdmUgdGhlIG5ldyBtZW1iZXJzIHRvIGEgcHJpdmF0ZSBzdHJ1Y3QgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGVub3VnaCBwYWRkaW5nCgkgIGFueW1vcmUgb24gMzItYml0cyBwbGF0Zm9ybXMuCgoyMDA5LTA1LTEzIDE4OjUwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVwZGF0ZSBzb21lIGRvY3MKCjIwMDktMDUtMTMgMTc6MDk6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCBhbm90aGVyIHRlc3QgZm9yIGFkYXB0ZXIgdGltZXN0YW1wcwoKMjAwOS0wNS0xMyAxNjo0ODozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIG5ldyB0aW1lc3RhbXAgdW5pdCB0ZXN0CgoyMDA5LTA1LTEzIDE2OjI2OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbAoKMjAwOS0wNS0xMyAxNjowOToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogYWRkIG1ldGhvZCB0byBrZWVwIHRyYWNrIG9mIHRpbWVzdGFtcHMKCSAgS2VlcCB0cmFjayBvZiB0aGUgdGltZXN0YW1wIGFuZCBvZmZzZXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGhlYWQgb2YgdGhlCgkgIGFkYXB0ZXIuCgkgIEFQSTogR3N0QWRhcHRlcjo6Z3N0X2FkYXB0ZXJfcHJldl90aW1lc3RhbXAoKQoKMjAwOS0wNS0xMyAxNjoyMDoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogc21hbGwgY2xlYW51cHMKCjIwMDktMDUtMTMgMTE6MDM6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHNob3cgbW9yZSBwYWQtZGV0YWlscwoJICBTaG93IHBhZCBhY3RpdmF0aW9uIG1vZGUgYW5kIHBhZC1mbGFncyBpbnNpZGUgdGhlIHBhZC4gV3JpdGUgZG93biBzb21lIGlkZWFzCgkgIGFib3V0IGhvdyB3ZSBjb3VsZCBpbXByb3ZlIHRoZSBjYXBzIGxheW91dC4KCjIwMDktMDUtMTMgMDA6Mjk6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGxheW91dCBpbXByb3ZlbWVudAoJICBkb3QgZG9lcyBub3QgdGFrZSB0aGUgaGVhZC90YWlsIGxhYmVscyBpbnRvIGFjY291bnQuIEZvciB1bmZpeGVkIGNhcHMgdGhleSBnZXQKCSAgcXVpdGUgbGFyZ2UuIERvdWJsZSB0aGUgcGFkZGluZyB0byBtYWtlIGl0IHNvcnQgb2YgcmVhZGFibGUgaW4gbW9yZSBjYXNlcy4gQWxzbwoJICBtYWtlIG5vcm1hbCBmb250IGJpZ2dlciBhbmQgY2Fwcy1sYWJlbCBmb250IHNtYWxsZXIgdG8gaW5jcmVhc2Ugb3VyIGx1Y2suCgoyMDA5LTA1LTEyIDIxOjAwOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBjaGVja3M6IGNoZWNrIGZvciBlbnVtIHR5cGVzIG5vdCBjbGFzc19yZWYnZWQgaW4gZ3N0X2luaXQoKSBpbiAnbWFrZSBjaGVjaycKCjIwMDktMDUtMTIgMjA6NTg6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBJbml0aWFsaXNlIHNvbWUgbW9yZSB0eXBlcyBpbiBnc3RfaW5pdCgpLCBlc3AuIHRoZSBuZXcgZW51bSB0eXBlcwoJICBQb3NzaWJseSBmaXhlcyBHT2JqZWN0IGNsYXNzIGNyZWF0aW9uL3VucmVmIHJhY2UgY29uZGl0aW9ucyB3aGVuCgkgIGNyZWF0aW5nIHRoZSBsYXN0LW1lc3NhZ2Ugc3RyaW5nIGluIGZha2VzaW5rIGZvciBldmVudHMgd2l0aAoJICBzdHJ1Y3R1cmVzIHRoYXQgaGF2ZSBmaWVsZHMgd2l0aCB0aGVzZSBlbnVtIHR5cGVzLgoKMjAwOS0wNS0xMiAyMDo1NjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHJlbW92ZSBkdXBsaWNhdGUgX2dldF90eXBlKCkgZnVuY3Rpb24gZm9yIEdzdENsb2NrVHlwZQoJICBSZW1vdmUgdGhlIHN0YXRpYyBnc3RfY2xvY2tfdHlwZV9nZXRfdHlwZSgpIGZ1bmN0aW9uIGluIHRoZQoJICBzeXN0ZW1jbG9jayBjb2RlIGluIGZhdm91ciBvZiB0aGUgcHVibGljIG9uZSBpbiBnc3RlbnVtdHlwZXMuYy4KCjIwMDktMDQtMjIgMTA6NTM6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogcmVtb3ZlIGRlcHJlY2F0ZWQgQVBJCgkgIF9pbnRlcm5hbF9saW5rX2Z1bmN0aW9uKCkgaXMgZGVwcmVjYXRlZCBhbmQgX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZnVuY3Rpb24oKQoJICBpcyBhbHJlYWR5IHByb3ZpZGVkLgoKMjAwOS0wNC0yMSAxMTozMzo0MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBhbGxvdyBzcGVjaWZ5aW5nIEdzdEVsZW1lbnQgcHJvcGVydGllcyB2aWEgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uCgkgIElmIGRlc2VyaWFsaXppbmcgYSBwcm9wZXJ0eSBmYWlscywgY2hlY2sgaWYgdGhlIHZhbHVlIHR5cGUgaXMgYSBzdHJpbmcgYW5kIGlmIHNvCgkgIGF0dGVtcHQgdG8gY3JlYXRlIGEgYmluIGZyb20gdGhlIHN0cmluZyB2YWx1ZS4gVGhpcyBhbGxvd3MgdG8gZS5nLiBzcGVjaWZ5CgkgIGF1ZGlvLXNpbmsvdmlkZW8tc2luayBmb3IgcGxheWJpbiBvbiBnc3QtbGF1bmNoIGNvbW1hbmRsaW5lLgoKMjAwOS0wNS0xMiAxNzoyOToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkgIGRvY3M6IGFkZCBzb21lIGRvY3MgYWJvdXQgYnVmZmVyIGxpc3RzCgoyMDA5LTA1LTEyIDE2OjE4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogbWFrZSBvYmplY3RzIG9wYXF1ZQoKMjAwOS0wNS0xMiAxNTozMzoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGZpeCBhIGNvbW1lbnQKCjIwMDktMDUtMTIgMTM6MTA6NTUgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBob29rIHVwIHRoZSBwYWQgZnVuY3Rpb25zCgkgIFJldXNlIGJ1ZmZlciBjb2RlIGZvciBidWZmZXJsaXN0cy4gTm90IHN1cmUgaWYgdGhpcyBtZWFzdXJhYmx5IGltcGFjdHMgcGVyZm9ybWFuY2UKCSAgZm9yIHRoZSBzaW1wbGUgYnVmZmVyIGNhc2UsIGlmIGl0IGRvZXMgYWZ0ZXIgZG9pbmcgc29tZSBiZW5jaG1hcmtzLCB3ZSBjYW4KCSAgZGVjb3VwbGUgaXQgbGF0ZXIuCgkgIEZpeGVzICM1NzIyODUKCjIwMDktMDUtMTIgMTI6MDg6NTYgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgZG9jcy9idWlsZC9kZWJ1Zy91bml0dGVzdAoJICBTZWUgIzU3MjI4NQoKMjAwOS0wNS0xMiAxMTo1MTozNyArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogYWRkIGJ1ZmZlcmxpc3QgY29kZQoJICBCdWZmZXIgbGlzdHMgYXJlIGEgbWVhbnMgdG8gbWFuYWdlIGRpc2pvaW50IGJ1ZmZlcnMgYXMgb25lIGJ1ZmZlci4gSXQncyBhbHNvCgkgIHBvc3NpYmxlIHRvIHB1dCBtYW55IG9mIHRob3NlIGJ1ZmZlcnMgaW50byBhIGxpc3QuCgkgIFRoZSBpZGVhIGlzIHRoYXQgd2hlbiBzdXBwb3J0IGlzIGFkZGVkIHRvIHZhcmlvdXMgZWxlbWVudHMsIHdlIHdpbGwgYmUgYWJsZSB0bwoJICBtb3JlIGVmZmljaWVudGx5IHNsaWNlIGFuZCBkaWNlIGJ1ZmZlcnMsIHJlZHVjZSB0aGUgYW1vdW50IG9mIG1lbWNweSBhbmQgYWxzbwoJICByZWR1Y2UgZGF0YSBwYXNzaW5nIG92ZXJoZWFkLgoJICBUaGUgaW1wbGVtZW50YXRpb24gaXMga2VwdCBzaW1wbGUgb24gcHVycG9zZSwgcmV1c2luZyBhbGwgb2YgdGhlIG1lbW9yeQoJICBtYW5hZ2VtZW50IGZlYXR1cmVzIHdlIGhhdmUgZm9yIG1pbmlvYmplY3RzIGFuZCBidWZmZXJzLgoJICBBY2Nlc3MgdG8gdGhlIGJ1ZmZlcmxpc3Qgb2JqZWN0IGlzIGRvbmUgd2l0aCBhbiBpdGVyYXRvciwgd2hpY2ggYWxsb3dzIGZvcgoJICBlZmZpY2llbnQgaXRlcmF0aW9uIGFuZCBtb2RpZmljYXRpb24gb2YgdGhlIGxpc3QuCgkgIFNlZSAjNTcyMjg1CgoyMDA5LTA1LTExIDA3OjQ5OjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGNvcHkgbmV3IGJ1ZmZlciBmbGFncyB3aGVuIGNvcHlpbmcgbWV0YWRhdGEuCgoyMDA5LTA0LTI3IDEwOjEzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBvcHRpbWl6ZSB0YWtpbmcgdGhlIGhlYWRidWZmZXIKCSAgV2hlbiBhIGFyZSByZXF1ZXN0ZWQgdG8gdGFrZSBhIGJ1ZmZlciBmcm9tIHRoZSBhZGFwdGVyIHRoYXQgaXMgZXhhY3RseSB0aGUKCSAgaGVhZGJ1ZmZlciwgZG9uJ3QgbWFrZSBhIHN1YmJ1ZmZlciBvZiBpdCBidXQgcmV0dXJuIHRoYXQgaGVhZCBidWZmZXIuCgkgIEFkZCBhIHVuaXQtdGVzdCBmb3IgdGhpcyBuZXcgb3B0aW1pc2F0aW9uLgoKMjAwOS0wNS0wNSAxNzo0MToyNCArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGxlYWsgdGhlIGZvcmNlLWNhcHMgcHJvcGVydHkKCSAgRml4ZXMgIzU4MTMyMQoKMjAwOS0wNC0yOCAxOToyMDozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBwb3N0aW5nIG9mIGFzeW5jLXN0YXJ0IG1lc3NhZ2VzCgkgIFdoZW4gYW4gZWxlbWVudCBsb3N0IGl0cyBzdGF0ZSBidXQgd2FzIGJ1c3kgZG9pbmcgYSBzdGF0ZSBjaGFuZ2UsIHN0aWxsIHBvc3QgdGhlCgkgIGFzeW5jLXN0YXJ0IG1lc3NhZ2Ugd2l0aCB0aGUgYmFzZV90aW1lIHJlc2V0IGZsYWcgb3IgZWxzZSB3ZSBtaWdodCBlbmQgdXAgd2l0aAoJICBhbiBvbGQgYmFzZV90aW1lLgoJICB0aGlzIGNhbiBoYXBwZW4gd2hlbiBhIHNpbmsgaXMgZ29pbiBhc3luYyB0byBwYXVzZWQgYW5kIHRoZW4gYSBmbHVzaGluZyBzZWVrIGlzCgkgIHBlcmZvcm1lZC4gVGhpcyB3b3VsZCBjYXVzZSB0aGUgYmFzZV90aW1lIHRvIHJlbWFpbiB1bm1vZGlmaWVkIGJlY2F1c2UgdGhlCgkgIGFzeW5jLXN0YXJ0IG1lc3NhZ2Ugd2FzIG5vdCBzZW50LgoKMjAwOS0wNS0xMCAxNzoyODozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gdGhlIHdpbjMyIGV4cG9ydHMKCjIwMDktMDUtMTAgMTE6MTc6MjcgKzAyMDAgIE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIFJ1biBsaWJ0b29saXplIGJlZm9yZSBhY2xvY2FsCgkgIFRoaXMgdW5icmVha3MgdGhlIGJ1aWxkIGluIHNvbWUgY2FzZXMuIEZpeGVzIGJ1ZyAjNTgyMDIxCgoyMDA5LTA1LTA3IDE2OjM3OjM3ICswMjAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEFQSTogQWRkIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljX2Z1bGwoKQoJICBUaGlzIGlzIG1haW5seSB1c2VmdWwgZm9yIGJpbmRpbmdzIHRoYXQgbmVlZCB0byBwcm92aWRlCgkgIHNvbWUgYWRkaXRpb25hbCB1c2VyIGRhdGEgdG8gdGhlIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbi4KCSAgRml4ZXMgYnVnICM1NDU3ODcuCgoyMDA5LTA1LTA3IDE2OjAxOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdCBvbiBpbnZhbGlkIFVSSXMKCjIwMDktMDUtMDcgMTA6MzY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCjIwMDktMDUtMDcgMDk6MzE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIHRhZ3M6IEFQSTogQWRkIGZ1bmN0aW9ucyB0byBhZGQgc2luZ2xlIHRhZ3MgdG8gR3N0VGFnTGlzdCBvciBHc3RUYWdTZXR0ZXIKCSAgVGhlIG5ldyBmdW5jdGlvbnMgYXJlIGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsdWUoKQoJICBhbmQgZ3N0X3RhZ19saXN0X2FkZF92YWx1ZSgpKS4gVGhpcyBmaXhlcyBidWcgIzU4MTE5OC4KCjIwMDktMDUtMDcgMDk6Mjg6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBHc3RVUklIYW5kbGVyOiBVc2UgZ2V0X3R5cGVfZnVsbCgpIHZtZXRob2QgaWYgc3BlY2lmaWVkIGluc3RlYWQgb2YgZ2V0X3R5cGUoKQoJICBUaGlzIGZpeGVzIGJ1ZyAjNTgxMjgxIGFuZCBtYWtlcyBpdCBlYXNpZXIgZm9yIGJpbmRpbmdzIHRvCgkgIGltcGxlbWVudCBHc3RVUklIYW5kbGVycy4gZ2V0X3Byb3RvY29sc19mdWxsKCkgd2FzIGFscmVhZHkgdXNlZAoJICBsaWtlIHRoaXMuCgoyMDA5LTA1LTEyIDAxOjQ4OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIC5wbyBmaWxlcyBmb3IgbmV3IHN0cmluZ3MgZnJvbSBjb250YWluZXItZm9ybWF0IHRhZwoKMjAwOS0wNS0xMiAwMTozMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBzbWFsbCB1cGRhdGUgdG8gcmVsZWFzZSBkb2NzCgoyMDA5LTA1LTEyIDAxOjEzOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlbmFtZSBDVlMgLT4gZ2l0IGluIGEgY291cGxlIG9mIHBsYWNlcwoKMjAwOS0wNS0xMiAwMDo0Nzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCB0aGUgR0xpYiByZXF1aXJlbWVudCB0byBHTGliID49IDIuMTYKCSAgYXMgcGVyIHRoZSBOZXcgUmVnaW1lIChzZWUgd2lraSkuCgoyMDA5LTA1LTEyIDAwOjA5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgeG1scmVnaXN0cnk6IHJlbW92ZSB0aGUgb2xkIHhtbCByZWdpc3RyeQoJICBObyBwb2ludCBpbiBrZWVwaW5nIGl0IGFyb3VuZCByZWFsbHkuIEZpeGVzICM1Nzc5MjYuCgoyMDA5LTA1LTA3IDE2OjA4OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGFkZCBhIHRhZyBmb3IgdGhlIGNvbnRhaW5lciBmb3JtYXQKCSAgQVBJOiBhZGQgR1NUX1RBR19DT05UQUlORVJfRk9STUFUCgoyMDA5LTA1LTA4IDE2OjI4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggZGVidWcgbWVzc2FnZQoJICBNYWtlIHRoZSBkZWJ1ZyBtZXNzYWdlIHNob3cgd2hhdCdzIGFjdHVhbGx5IGhhcHBlbmluZyAodGhlIG1lc3NhZ2UKCSAgcmVwbGFjZWQgaGVyZSBpcyBub3QgbmVjZXNzYXJpbHkgb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGUgb25lIHRoYXQKCSAgcmVwbGFjZXMgaXQpLgoKMjAwOS0wNS0xMiAwMDozNDo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGZpeCBjb21waWxhdGlvbgoKMjAwOS0wNC0yNCAxOTozMjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSAgdGVzdHM6IHNldCB0aGUgbGF0ZW5jeS10aW1lIHRvIHNvbWV0aGluZyBsb3cKCjIwMDktMDQtMjQgMTM6NTU6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJICB0ZXN0czogaW1wcm92ZSB0aGUgZXhhbXBsZQoKMjAwOS0wNC0yNCAxMjozNTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFRhc2tQb29sOiByZW1vdmUgX3NldF9mdW5jKCkKCSAgUmVtb3ZlIHRoZSBzdGF0aWMgZnVuY3Rpb24gc2V0IG9uIHRoZSBUYXNrUG9vbCBiZWZvcmUgX3ByZXBhcmUoKSBpcyBjYWxsZWQgYW5kCgkgIGFsbG93IGZvciBhc3NpZ25pbmcgYSBmdW5jdGlvbiB0byBhIFRhc2sgd2hlbiB3ZSBfcHVzaCgpLgoJICBVcGRhdGUgdGhlIGV4YW1wbGVzCgoyMDA5LTA0LTIzIDE5OjQyOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmg6CgkgIHRlc3RzOiBhZGQgZXhhbXBsZSBvZiBjdXN0b20gdGFza3Bvb2xzCgkgIEFkZCBhbiBleGFtcGxlIHRvIGRlbW9uc3RyYXRlIHRoZSB1c2Ugb2YgYSBjdXN0b20gdGFza3Bvb2wgYW5kIGhvdyB0byBjb25maWd1cmUKCSAgaXQgb24gdGhlIHRhc2suIEN1cnJlbnRseSB0aGUgdGFza3Bvb2wgZG9lcyBub3QgZG8gbXVjaCB5ZXQgYnV0IGl0J2xsIGNyZWF0ZQoJICBzb21lIGN1c3RvbSB0aHJlYWRzIGxhdGVyIG9uLgoKMjAwOS0wNC0yMyAxOTo0MTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICB0YXNrcG9vbDogZml4IGEgY29tbWVudAoKMjAwOS0wNC0yMyAxOTo0MTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICB0ZXN0czogY2xlYW51cCBzb21lIGNvZGUKCjIwMDktMDQtMjMgMTc6NDg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgUGFkOiBwb3N0IFNUUkVBTV9TVEFUVVNfVFlQRV9DUkVBVEUKCSAgUG9zdCBhIHN0cmVhbS1zdGF0dXMgbWVzc2FnZSBpbmRpY2F0aW5nIHRoYXQgYSBuZXcgdGFzayB3YXMgY3JlYXRlZCBzbyB0aGF0IHRoZQoJICBhcHBsaWNhdGlvbiBoYXMgYSBjaGFuY2UgdG8gY2hhbmdlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSB0YXNrLgoJICBGaXggdW5pdCB0ZXN0IHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBuZXcgcmVmIG9mIHRoZSBtZXNzYWdlLgoKMjAwOS0wNC0yMyAxNzoyNDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHRhc2sgbWV0aG9kcwoKMjAwOS0wNC0yMyAxNzoxOToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IGFkZCBtZXRob2RzIGZvciBjb25maWd1cmluZyB0aGUgcG9vbAoJICBBZGQgZ2V0dGVyIGFuZCBzZXR0ZXIgZm9yIGNvbmZpZ3VyaW5nIHRoZSBHc3RUYXNrUG9vbCB0byB1c2UgZm9yIGEgR3N0VGFzay4KCjIwMDktMDQtMjMgMTc6MDU6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBUYXNrOiByZW1lbWJlciBwb29sCgkgIFJlbWVtYmVyIHRoZSBwb29sIHdlIGN1cnJlbnRseSBoYXZlIG91ciB0YXNrIHJ1bm5pbmcgc28gdGhhdCB3ZSBjYW4gdXNlIGl0IHRvCgkgIGpvaW4gdGhlIHRhc2sgbGF0ZXIgb24uCgkgIEZpeCBhIGxlYWsgb2YgdGhlIHRhc2twb29sLgoKMjAwOS0wNC0yMyAxNjo1MzozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgLmRlZnMgZmlsZSB3aXRoIHRhc2twb29sIG1ldGhvZHMKCjIwMDktMDQtMjMgMTY6NTM6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBmaXggZGVhZGxvY2sgZHVlIHRvIHR5cG8KCjIwMDktMDUtMTIgMDA6MjU6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiB1c2UgR3N0VGFza1Bvb2wgZm9yIG1hbmFnaW5nIHRocmVhZHMKCSAgVXNlIHRoZSBuZXcgR3N0VGFza1Bvb2wgdG8gaGFuZGxlIHN0cmVhbWluZyB0aHJlYWRzLgoKMjAwOS0wNC0yMyAxNjowMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSAgdGFza3Bvb2w6IGZpeCBkb2NzLCBtYWtlIHB1c2gvam9pbiBnZW5lcmljCgkgIEZpeCBzb21lIG1vcmUgZG9jcy4KCSAgTWFrZSBfcHVzaCgpIHJldHVybiBhIGdlbmVyaWMgaWQgKHRoaXMgY2FuIGJlIHNvbWV0aGluZyBlbHNlIHRoYW4gYSBHVGhyZWFkIGluCgkgIHNvbWUgY2FzZXMpIGFuZCBtYWtlIF9qb2luKCkgdXNlIHRoYXQgZ2VuZXJpYyBpZC4KCjIwMDktMDQtMjMgMTU6NDQ6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICB0YXNrcG9vbDogYWRkIG5ldyBvYmplY3QgdG8gbWFuYWdlIHRocmVhZHMKCSAgQWRkIGEgbmV3IG9iamVjdCBHc3RUYXNrUG9vbCB0byBtYW5hZ2UgdGhlIHN0cmVhbWluZyB0aHJlYWRzLgoJICBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gY3JlYXRlIGFuZCB1c2UgY3VzdG9tIGNvbmZpZ3VyZWQgdGhyZWFkcy4KCjIwMDktMDQtMjIgMTI6MDQ6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgZXhhbXBsZXM6IHNldCBidXMgaGFuZGxlciBiZWZvcmUgc3RhdGUgY2hhbmdlCgkgIFdlIG5lZWQgdG8gc2V0IHRoZSBidXMgaGFuZGxlciBiZWZvcmUgc3RhcnRpbmcgdGhlIHBpcGVsaW5lIG9yIHdlIG1pZ2h0IGp1c3QKCSAgbWlzcyB0aGUgbWVzc2FnZSB3ZSBhcmUgbG9va2luZyBmb3IuCgoyMDA5LTA0LTIyIDEwOjE2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgdGVzdHM6IGFkZCBleGFtcGxlIGFwcCBmb3Igc3RyZWFtLXN0YXR1cwoJICBBZGQgYW4gZXhhbXBsZSBhcHBsaWNhdGlvbiB0aGF0IGFkanVzdHMgdGhlIHRocmVhZCBwcmlvcml0eSBvZiBhIHRhc2sgdXNpbmcgdGhlCgkgIHN0cmVhbS1zdGF0dXMgbWVzc2FnZXMuCgoyMDA5LTA0LTIxIDE5OjE1OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFRhc2s6IGFkZCBtZXRob2QgdG8gc2V0IHRoZSBwcmlvcml0eQoJICBBZGQgYSBtZXRob2QgdG8gY29uZmlndXJlIGEgcHJpb3JpdHkgZm9yIHRoZSB0aHJlYWRzIHVzZWQgYnkgR3N0VGFzay4KCjIwMDktMDQtMjEgMTY6MzA6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICB0ZXN0czogYWRkIGEgdW5pdC10ZXN0IGZvciB0aGUgc3RyZWFtLXN0YXR1cwoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoZSBTVFJFQU1fU1RBVFVTIG1lc3NhZ2VzLgoKMjAwOS0wNS0xMiAwMDowNToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogaW1wcm92ZSBkb2N1bWVudGF0aW9uCgkgIEltcHJvdmUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBjYWxsYmFja3MuCgoyMDA5LTA0LTIxIDE1OjI1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0ZXN0czogZml4IHVuaXQtdGVzdHMgZm9yIG5ldyBzdHJlYW0tc3RhdHVzCgkgIEZpeCB0aGUgdW5pdC10ZXN0cyBzbyB0aGF0IHRoZXkgZG9uJ3QgZmFpbCBvbiB0aGUgbmV3IHN0cmVhbS1zdGF0dXMgbWVzc2FnZXMKCSAgdGhhdCBhcmUgZW1pdGVkIG5vdy4KCjIwMDktMDQtMjEgMTQ6NDY6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogaW5zdGFsbCB0aHJlYWQgY2FsbGJhY2tzIG9mIHRoZSB0YXNrCgkgIEluc3RhbGwgdGhyZWFkIHN0YXR1cyBjYWxsYmFja3Mgb24gdGhlIHRhc2sgb2JqZWN0IG9mIGEgcGFkIGFuZCBwb3N0CgkgIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA0LTIyIDEwOjE0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogY2xhcmlmeSBzb21lIGRvY3MKCjIwMDktMDQtMjEgMTQ6NDI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBUYXNrOiBjYWxsIGxlYXZlX3RocmVhZCBiZWZvcmUgc2lnbmFsaW5nCgkgIENhbGwgdGhlIGxlYXZlX3RocmVhZCBjYWxsYmFjayBiZWZvcmUgd2Ugc2lnbmFsIHRoZSB0aHJlYWQgcGVyZm9ybWluZyB0aGUgX2pvaW4KCSAgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSB0aGF0IHRoZSBsaXN0ZW5lciBzdGlsbCBoYXMgdmFsaWQgaW5mbyBpbiB0aGUgY2FsbGJhY2suCgoyMDA5LTA0LTIxIDEzOjQyOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdE1lc3NhZ2U6IEFkZCBTVFJFQU1fU1RBVFVTIG1lc3NhZ2UgbWV0aG9kcwoJICBBZGQgbWV0aG9kcyB0byBoYW5kbGUgdGhlIHN0cmVhbV9zdGF0dXMgbWVzc2FnZSB0eXBlcy4KCjIwMDktMDQtMjEgMTM6MDU6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIHF1YXJrOiBhZGQgIm9iamVjdCIgcXVhcmsKCSAgQWRkIHRoZSBvYmplY3QgcXVhcmsgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBTVFJFQU1fU1RBVFVTIG1lc3NhZ2VzLgoKMjAwOS0wNS0xMSAyMzo0NDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmg6CgkgIFRhc2s6IHJlbW92ZSBjcmVhdGUvam9pbiBtZXRob2RzCgkgIFByZXBhcmUgZm9yIHVzaW5nIHRoZSBHc3RUYXNrUG9vbCBvYmplY3QuIFdlIGRvbid0IG5lZWQgdGhlIGNyZWF0ZSBhbmQgam9pbgoJICBjYWxsYmFja3MgYW55bW9yZSwgdGhleSB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIHBvb2wuCgoyMDA5LTA0LTIwIDE3OjA3OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogYWRkIHByaXZhdGUgZGF0YSwgZml4IHBhcmVudF9jbGFzcwoJICBVc2UgdGhlIHBhcmVudCBjbGFzcyB0aGF0IHRoZSBnbGliIG1hY3JvIGdhdmUgdXMKCSAgQWN0dWFsbHkgYWRkIHRoZSBwcml2YXRlIGRhdGEgdG8gdGhlIHRhc2suCgoyMDA5LTA0LTIwIDE3OjE5OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogaG9vayB1cCBlbnRlci9sZWF2ZS9ub3RpZnkgY2FsbGJhY2tzCgkgIEhvb3AgdXAgdGhlIG5vdGlmeS9lbnRlci9sZWF2ZSBjYWxsYmFja3MuCgoyMDA5LTA1LTExIDIzOjIzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sIHRvIGRlZnMgZmlsZQoKMjAwOS0wNS0xMSAyMzoxOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IGFsbG93IHNldHRpbmcgY2FsbGJhY2tzCgkgIEFsbG93IHNldHRpbmcgdGhyZWFkIGNhbGxiYWNrcyB0aGF0IHdpbGwgYWxsb3cgdXMgdG8gY29udHJvbCB0aGUgdGhyZWFkcyB1c2VkIGJ5CgkgIHRoZSB0YXNrLgoKMjAwOS0wNC0yMyAxOTo0MDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBpZ25vcmUgcGFkX3N0YXJ0IHJldHVybiB2YWx1ZQoKMjAwOS0wNC0yMSAxMzozNDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IG1vcmUgU1RSRUFNX1NUQVRVUyB1cGRhdGVzCgkgIFBhc3MgdGhlIHRocmVhZCBvYmplY3QgaW4gYSBHVmFsdWUsIHdoaWNoIHdvdWxkIGFsbG93IHRoZSBhcHBsaWNhdGlvbiB0byBmaWd1cmUKCSAgb3V0IHRoZSB0eXBlIG9mIHRoZSBvYmplY3QgaW5zdGVhZCBvZiB1cyBoYXZpbmcgdG8gZXhwbGljaXRseSBjb2RlIGl0IGluIGEKCSAgbWVzc2FnZSBmaWVsZC4KCjIwMDktMDQtMjEgMDk6NDU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgc3RyZWFtLXN0YXR1cyBkb2N1bWVudCBzb21lIG1vcmUKCjIwMDktMDQtMjAgMTU6NTU6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiBhZGQgZmlyc3QgdmVyc2lvbiBvZiBzdHJlYW0tc3RhdHVzCgkgIEFkZCB0aGUgZmlyc3QgdmVyc2lvbiBvZiB0aGUgU1RSRUFNX1NUQVRVUyBtZXNzYWdlIGRlc2lnbiBkb2NzLgoJICBUaGlzIG1lc3NhZ2Ugd2lsbCBiZSB1c2VkIHRvIGdpdmUgYXBwbGljYXRpb25zIG1vcmUgY29udHJvbCBvdmVyIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkcy4KCjIwMDktMDQtMjEgMTc6NTM6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBhZGQgc29tZSBtb3JlIGRvY3MKCjIwMDktMDQtMjEgMTc6MTQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogdXNlIG5ldyB0YXNrIGZ1bmN0aW9uCgkgIFVzZSB0aGUgbmV3IHRhc2tfc2V0X3N0YXRlIGZ1bmN0aW9uIGFuZCBhY3R1YWxseSByZXR1cm4gaXRzIHJlc3VsdCB0bwoJICB0aGUgY2FsbGVyLgoKMjAwOS0wNS0xMSAyMjo1OTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RUYXNrOiB1bmlmeSB0YXNrIHN0YXRlIGZ1bmN0aW9ucwoJICBBZGQgbmV3IGdzdF90YXNrX3NldF9zdGF0ZSgpIHRvIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIHRhc2sgaW5zdGVhZCBvZgoJICBkdXBsaWNhdGluZyB0aGUgY29kZSBpbiBlYWNoIGZ1bmN0aW9uLgoJICBBUEk6IEdzdFRhc2s6OmdzdF90YXNrX3NldF9zdGF0ZSgpCgoyMDA5LTA0LTIxIDEzOjM3OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWVzc2FnZTogc21hbGwgaW5kZW50YXRpb24gY2hhbmdlLgoKMjAwOS0wNS0wMiAxNDo0MzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja3MKCjIwMDktMDUtMDIgMTQ6Mzk6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIGNhbGxpbmcgX2dldF9uYW1lKCkgdG9vIG11Y2gKCSAgQXZvaWQgY2FsbGluZyBnc3RfcGx1Z2luX2dldF9uYW1lKCkgdG9vIG1hbnkgdGltZXMgYnV0IGluc3RlYWQgY2FjaGUKCSAgdGhlIHZhbHVlLgoKMjAwOS0wNS0wMiAxNDozNjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIFVzZSBuZXcgX3JlZl9zaW5rIHdoZW4gd2UgY2FuCgoyMDA5LTA1LTAyIDE0OjMzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IGFkZCBnc3Rfb2JqZWN0X3JlZl9zaW5rCgkgIEFkZCB0aGUgZ3N0X29iamVjdF9yZWZfc2luaygpIG1ldGhvZCB0byBtYXRjaCB0aGUgZ2xpYiBvbmUuCgkgIEFQSTogR3N0T2JqZWN0Ojpnc3Rfb2JqZWN0X3JlZl9zaW5rKCkKCjIwMDktMDUtMDIgMTM6MDY6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYXZvaWQgdHlwZSBjaGVja3MKCjIwMDktMDUtMDIgMTM6MDI6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogYXZvaWQgdHlwZWNoZWNrcyBpbiBmaW5hbGl6ZQoJICBBdm9pZCB1c2VsZXNzIHR5cGVjaGVja2luZyBpbiB0aGUgZmluYWxpemUgb2YgYnVmZmVycyBhbmQgc3ViYnVmZmVycy4KCjIwMDktMDUtMDIgMTI6NTk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBhdm9pZCB0eXBlY2hlY2sKCjIwMDktMDQtMjAgMTQ6MDE6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIC1sYXVuY2g6IGNvbm5lY3QgdG8gZGVlcC1ub3RpZnkgd2l0aCByaWdodCBuYW1lCgkgIENvbm5lY3QgdG8gdGhlIHJpZ2h0IHNpZ25hbCBuYW1lIHdpdGggLSBpbnN0ZWFkIG9mIF8uCgoyMDA5LTA0LTI0IDIyOjA2OjE5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFN1cHBvcnQgbmV3IHByaW50ZiBleHRlbnNpb25zIGluIGdsaWJjIDIuMTAKCSAgVGhlIHByaW50ZiBleHRlbnNpb24gbWVjaGFuaXNtIGNoYW5nZWQgaW4gZ2xpYmMgMi4xMCwgYW5kIHRoZSBvbGRlcgoJICByZWdpc3Rlcl9wcmludGZfZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4gRGV0ZWN0IGFuZCB1c2UgdGhlIG5ldwoJICBtZWNoYW5pc20gd2hlcmUgYXZhaWxhYmxlLgoKMjAwOS0wNC0yMCAxMjoyNTo1NyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogRml4IGEgdHlwbyBpbiB0aGUgcmVsZWFzZSBzY3JpcHQKCjIwMDktMDUtMTEgMjE6MTE6NDkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIzLjEKCj09PSByZWxlYXNlIDAuMTAuMjMgPT09CgoyMDA5LTA1LTEwIDIyOjQxOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjIzCgoyMDA5LTA1LTEwIDIyOjM4OjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wNS0wNiAxNjoxMDoxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjIyLjQgcHJlLXJlbGVhc2UKCjIwMDktMDQtMjQgMTk6MzY6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIEdzdEJpbjogc2V0IFBFTkRJTkdfU1RBVEUgY29ycmVjdGx5CgkgIFNldCB0aGUgcGVuZGluZyBzdGF0ZSBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgZ29pbmcgdG8gcGVyZm9ybSBhbiBhc3luYwoJICBzdGF0ZV9jb250aW51ZSBvbiB0aGUgYmluLgoJICBGaXhlcyAjNTgwMTIxCgoyMDA5LTA0LTIxIDIwOjUwOjU1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjIuMyBwcmUtcmVsZWFzZQoKMjAwOS0wNC0yMSAyMjoxMjowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiMzk0MWVhIHRvIDZhYjExZDEKCjIwMDktMDQtMTcgMTU6NDY6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICB3aW4zMjogZGVmaW5lIF9fTVNWQ1JUX1ZFUlNJT05fXyB3aGVuIGNvbXBpbGluZyB3aXRoIE1pbmdXLCBmb3IgX19zdGF0NjQKCSAgTmVlZCB0byBkZWZpbmUgdGhpcyB3aGVuIHVzaW5nIE1pbmdXLCBzbyB0aGF0IHRoZSBpbmNsdWRlcyBwcm92aWRlCgkgIF9fc3RhdDY0IGFuZCBmcmllbmRzLiBXZSBuZWVkIGF0IGxlYXN0IFdpbmRvd3MgWFAgU1AyIGZvciB0aGlzLgoJICBGaXhlcyAjNTY4NjMyLgoKMjAwOS0wNC0xNiAyMjoyNjowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0ZGVidWc6IGNvbXBldGUgc3R1YnMuIEZpeGVzICM1NzkxNzcuCgkgIEF2b2lkIGRlZmluZXMgd2hlbiBpbmNsdWRpbmcgZ3N0aW5mby5oIG91cnNlbGYgYW5kIGNvbXBsZXRlIHN0dWJzLiBTeW5jIHN0dWIKCSAgcmV0dXJucyB3aXRoIHRoZSBkZWZpbmVzLgoKMjAwOS0wNC0xNyAxMTo0NDoxMSArMDEwMCAgWWFha292IFNlbGtvd2l0eiA8eXNlbGtvd2l0ekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogZm9yaygpIGR1cmluZyByZWdpc3RyeSBzY2FubmluZyBpcyB1bnNhZmUgb24gQ3lnd2luCgkgIEZpeGVzICM1NTU5NzguCgoyMDA5LTA0LTE3IDExOjM5OjU5ICswMTAwICBZYWFrb3YgU2Vsa293aXR6IDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0X2luaXQ6IHJlbG9jYXRhYmlsaXR5IGlzIHVubmVjZXNzYXJ5IG9uIEN5Z3dpbgoJICBTZWUgIzU1NTk3OC4KCjIwMDktMDQtMTcgMTA6MTE6MjEgKzAxMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGRvbid0IGFzc3VtZSBHX0hBVkVfSVNPX1ZBUkFSR1MgaW1wbGllcyBJU08gQzk5CgkgIE1ha2VzIGhlYWRlcnMgQysrIGNsZWFuLCBlc3AuIHdpdGggdGhlIFN1biBjb21waWxlcnMuCgkgIEZpeGVzICM1Njc2OTIuCgoyMDA5LTA0LTE3IDA5OjE3OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgR3N0UGx1Z2luOiBmaXggY29tcGlsYXRpb24gaWYgYm90aCBIQVZFX1dJTjMyIGFuZCBIQVZFX1NJR0FDVElPTiBhcmUgZGVmaW5lZAoJICBNb3ZlIF9nc3RfcGx1Z2luX2ZhdWx0X2hhbmRsZXJfaXNfc2V0dXAgaW50byB0aGUgaWZkZWYgYmxvY2sgd2hlcmUgaXQncwoJICB1c2VkLiBGaXhlcyAjNTc4MjAxLgoKMjAwOS0wNC0xNiAxMjowMTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgLWxhdW5jaDogZGlzYWJsZSBDTE9DS19MT1NUIG1lc3NhZ2UgaGFuZGxpbmcKCSAgRGlzYWJsZSB0aGUgaGFuZGxpbmcgb2YgdGhlIENMT0NLX0xPU1QgbWVzc2FnZXMgdW50aWwgd2UgZml4ZWQgYW5kIHJlbGVhc2VkIHRoZQoJICBlbGVtZW50cyAocnRzcHNyYykgdGhhdCBicmVhayB3aGVuIHdlIHF1aWNrbHkgUEFVU0UvUExBWSB0aGUgcGlwZWxpbmUuCgkgIEZpeGVzICM1NzkxMjcKCjIwMDktMDQtMTUgMjI6MjQ6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzZTogQnVtcCB2ZXJzaW9uIHRvIDAuMTAuMjIuMiBmb3IgcHJlLXJlbGVhc2UKCjIwMDktMDQtMTYgMDA6MDg6MjAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogVXBkYXRlIHdpbjMyIGJ1aWxkIGZpbGVzCgoyMDA5LTA0LTE1IDIzOjI3OjMxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMgZnJvbSBUUAoKMjAwOS0wNC0xNSAyMjoxNzoxMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2c6IHJlZ2VuZXJhdGUgY2hhbmdlbG9nIHdpdGggdGhlIGdlbi1jaGFuZ2Vsb2cgc2NyaXB0CgoyMDA5LTA0LTE1IDIzOjI2OjEzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogcmVtb3ZlIGVycmFudCBndGstZG9jIGNvbW1lbnQgbWFya2VyIHRyaWdnZXJpbmcgYSB3YXJuaW5nCgoyMDA5LTA0LTE2IDAwOjAyOjA3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgcGFyYW1zcGVjczogcmV2ZXJ0IGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUoKSBmb3IgcmVsZWFzZQoJICBSZXZlcnQgdGhlIGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUgQVBJIGZvciB0aGlzIHJlbGVhc2Ugc28gd2UgY2FuCgkgIGRpc2N1c3MgaXQgYSBiaXQgZnVydGhlciBmaXJzdC4KCjIwMDktMDQtMTUgMjM6MzM6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBsb2dnaW5nOiBmaXggdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgd2hlbiBkaXNhYmxpbmcgZGVidWcgbG9ncy4KCSAgVGhlIHZhciB3YXMgTlVMTCBhbnl3YXksIGJhY2F1c2Ugb2YgdGhlIGlmZGVmcyB0aGVyZSwgdGhlIG1lc3NhZ2UgbWFrZXMgbm8KCSAgc2Vuc2UgaW5jbHVkaW5nIGl0LgoKMjAwOS0wNC0xNSAyMzoxMjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RkZWJ1Zzogc2hvdyBlbmFibGVkL2Rpc2FibGVkIGluIGNvbmZpZ3VyZSBhbmQgZml4IGJ1aWxkIGZvciBkaXNhYmxlZAoJICBXaGVuIGl0cyBkaXNhYmxlZCwgd2UgcG9pc29uIHNvbWUgc3ltYm9scyB0byBmb3JjZSBhIGJ1aWxkIGVycm9yIGlmIHRoZXkgYXJlCgkgIHVzZWQuIER1bm5vIGhvdyB1c2VmdWwgdGhpcyBhY3VhbGx5IGlzLCBidXQgd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBwb2lzb25pbmcKCSAgd2hlbiB3ZSBpbmNsdWRlIHRoaXMgb3Vyc2VsZi4gQWxzbyBkb24ndCBkZWZpbmUgc29tZSBvZiB0aGUgZHVtbWllcywgYXMgdGhleQoJICBhcmUgZ2V0dGluZyByZXBsYWNlZCB3aXRoIGRlZmluZXMgYW5kIHRoYXQgY3JlYXRlcyBjb2RlIHRoYXQgZG9lcyBub3QgY29tcGlsZS4KCjIwMDktMDQtMTUgMTk6NTg6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBVc2UgZ19vbmNlX2luaXRfKigpIGluc3RlYWQgb2YgR09uY2UgZm9yIHRoZSBlbnVtIHR5cGVzCgoyMDA5LTA0LTE1IDEzOjA1OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBzdGF0aWNwYWR0ZW1wbGF0ZTogVXBkYXRlIGRvY3Mgb2YgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMgKCkKCSAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMgKCkgYWN0dWFsbHkgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUKCSAgY2FwcyBhbmQgaXQncyBjbGVhbmVyIHRvIHVucmVmIHRoZW0gYWZ0ZXIgdXNhZ2UuIFRoZSBjb3JlIHdpbGwsIGhvd2V2ZXIsCgkgIGFsd2F5cyBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBjYXBzIHNvIHRoaXMgZGlkbid0IHJlc3VsdCBpbiBhIG1lbW9yeQoJICBsZWFrLgoKMjAwOS0wNC0xNCAyMjozMjoyMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIGRvY3M6IHVzZSByZWFsIDxub3RlPiB0YWdzIGFzIHRoZXkgbG9vayBuaWNlIGluIG5ldyBndGstZG9jCgoyMDA5LTA0LTE0IDEyOjIwOjM3IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIEZpeCBsb2NraW5nIGluIGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUKCjIwMDktMDQtMTQgMjI6MDc6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogZmFjdG9yIG91dCBkdXBsaWNhdGVkIGNvZGUgYW5kIGFkZCBhIGRlc2NyaXB0aW9uIGZvciBpdC4KCSAgQWxzbyBmaXggdHlwbyBpbiB0aGUgdGVzdHMgd2hpbGUgcmV2aWV3aW5nIHRoZW0uCgoyMDA5LTA0LTE0IDE5OjEyOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIGRvY3M6IGFkZCBzaW1wbGUgZG9jIGJsdXJiCgoyMDA5LTA0LTE0IDE5OjExOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgcGFyYW1zcGVjczogYWRkIG5vdGUgYWJvdXQgcmFjeW5lc3MKCSAgQWRkIGEgbm90ZSBhYm91dCBwb3RlbnRpYWwgcmFjeW5lc3MgaW4gX2lzX211dGFibGUoKS4KCjIwMDktMDQtMTQgMTA6MzI6MDcgKzAyMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgbXV0ZXggdG8gZG8gY29uc29sZSBjb2xvcnMgb24gd2luZG93cwoJICBVc2UgYSBzdGF0aWMgbXV0ZXggdG8ga2VlcCB0aGUgY29uc29sZSBjb2xvcnMgYW5kIGNvbnRleHQgdG9nZXRoZXIgd2hlbgoJICBkZWJ1Z2dpbmcgd2l0aCBjb2xvcnMgb24gV2luZG93cy4KCSAgRml4ZXMgIzUxNzIzMS4KCjIwMDktMDQtMTMgMTQ6Mjc6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgZG9jczogYWRkIFNpbmNlOiB0YWdzIHRvIGd0ay1kb2MgY2h1bmtzIGZvciBuZXcgcGFyYW0gc3BlYyBBUEkKCSAgQW5kLCBmb3Igb3VyIHJlbGVhc2UgbWFuYWdlciwgdGhlIGluLWNvbW1pdC1tZXNzYWdlIGtleXdvcmRzCgkgIGZvciB0aGUgcHJldmlvdXMgY29tbWl0OgoJICBBUEk6IEdTVF9QQVJBTV9NVVRBQkxFX1JFQURZCgkgIEFQSTogR1NUX1BBUkFNX01VVEFCTEVfUEFVU0VECgkgIEFQSTogR1NUX1BBUkFNX01VVEFCTEVfUExBWUlORwoJICBBUEk6IGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUKCjIwMDktMDItMjAgMTE6MDk6MTkgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIEFkZCBwYXJhbSBzcGVjIGZsYWdzIGZvciB3aGVuIGEgcHJvcGVydHkgY2FuIGJlIGNoYW5nZWQKCSAgQWRkcyBHU1RfUEFSQU1fTVVUQUJMRSogZmxhZ3MgdG8gaW5kaWNhdGUgaW4gd2hpY2ggc3RhdGVzIGEKCSAgcHJvcGVydHkgY2FuIGJlIGNoYW5nZWQgYW5kIHRha2UgZWZmZWN0LiAgRml4ZXMgIzU3MTU1OQoKMjAwOS0wNC0xMCAxNDoxNTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgLWxhdW5jaDogaGFuZGxlIGNsb2NrLWxvc3QgbWVzc2FnZXMKCSAgV2hlbiB3ZSByZWNlaXZlIGEgY2xvY2stbG9zdCBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNlbGVjdCBhIG5ldyBjbG9jayBpbiB0aGUKCSAgcGlwZWxpbmUgYnkgc2V0dGluZyB0aGUgcGlwZWxpbmUgdG8gUEFVU0VEIGFuZCBiYWNrIHRvIFBMQVlJTkcuCgoyMDA5LTA0LTA5IDE4OjI3OjIxICswMjAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyLmNhPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgYWxsb2MgcGFkCgkgIEFkZCBhIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIHBhZCB1c2VkIGZvciBwcm94eWluZyB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIG9uCgkgIHRoZSBzaW5rcGFkLgoJICBGaXhlcyAjNTc3ODkxLgoKMjAwOS0wNC0wOSAxMTo1MTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhbHdheXMgbWFyayBwZW5kaW5nX2FzeW5jX2RvbmUKCSAgV2hlbiB3ZSBnZXQgYW4gQVNZTkNfRE9ORSBtZXNzYWdlIHdoZW4gYSBzdGF0ZSBjaGFuZ2Ugd2FzIGJ1c3ksIHNldCB0aGUKCSAgcGVuZGluZ19hc3luY19kb25lIGZsYWcgc28gdGhhdCBhZnRlciB0aGUgc3RhdGUgY2hhbmdlIGNvbXBsZXRlcywgdGhlIGJpbiBjYW4KCSAgY2hlY2sgaWYgYWxsIGFzeW5jIGVsZW1lbnRzIGFyZSBmaW5pc2hlZC4gRG9uJ3Qgb25seSBkbyB0aGlzIGZvciB0aGUgYmluIGl0c2VsZgoJICBidXQgZm9yIGFsbCBlbGVtZW50cy4KCSAgVGhpcyBmaXhlcyBzb21lIGJpbnMgaW4gYmlucyB0aGF0IHNpbXVsYXRlIGFzeW5jIHN0YXRlIGNoYW5nZXMgYnkgcG9zdGluZyBBU1lOQwoJICBtZXNzYWdlcyAoc3VjaCBhcyBzZHBwYXJzZSBpbiB1cmlkZWNvZGViaW4vcGxheWJpbjIpLgoKMjAwOS0wNC0wOSAxMTo0Mjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBjb21waWxhdGlvbiwgJTA4eCBuZWVkcyBhbiB1bnNpZ25lZCBpbnQKCSAgJTA4eCBuZWVkcyBhbiB1bnNpZ25lZCBpbnQsIHNvIGdpdmUgaXQgdGhhdC4KCjIwMDktMDQtMDYgMDE6Mjc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogYWRkIEZJWE1FIGFuZCBEVU1QTUVNIGxvZyBsZXZlbHMgYW5kIGNvbnZlbmllbmNlIG1hY3JvcwoJICBUd28gbmV3IGxvZyBsZXZlbHMgdG8gZHVtcCBGSVhNRXMgaW50byB0aGUgbG9nIGFuZCB0byBsb2cgZGF0YQoJICBpbiBmb3JtIG9mIGEgaGV4IGR1bXAgKCM1NzgxMTQpLgoJICBBUEk6IEdTVF9DQVRfRklYTUVfT0JKRUNUCgkgIEFQSTogR1NUX0NBVF9NRU1EVU1QX09CSkVDVAoJICBBUEk6IEdTVF9DQVRfRklYTUUKCSAgQVBJOiBHU1RfQ0FUX01FTURVTVAKCSAgQVBJOiBHU1RfRklYTUVfT0JKRUNUCgkgIEFQSTogR1NUX01FTURVTVBfT0JKRUNUCgkgIEFQSTogR1NUX0ZJWE1FCgkgIEFQSTogR1NUX01FTURVTVAKCjIwMDktMDQtMDggMTg6MTM6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGRvY3M6IHhyZWYgbW9yZQoKMjAwOS0wNC0wOCAxNzo0OToxOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiByZW1vdmUgdGhlIGhhY2tzIHRvIHdvcmthcm91bmQgdGhlIHBhZC1sZWFrCgoyMDA5LTA0LTA4IDE1OjI0OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGVuYWJsZSBjb2RlIHRvIGZpeCB0aGUgbGVhaywgbm93IHRoYXQgdGhlIGRlcHMgaGF2ZSBiZWVuIHJlbGVhc2VkCgkgIEdvb2QgYW5kIGZmbXBlZyBhcmUgYWN0dWFsbHkgbXVsdGlwbGUgcmVsZWFzZXMgYmV5b25kLCBzbyB0aGF0IHRoaXMgaXMgbm93IHNhZmUKCSAgdG8gZG8uCgoyMDA5LTA0LTA0IDIxOjE4OjIzICswMzAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDBlYTg5ZSB0byBiMzk0MWVhCgoyMDA5LTA0LTA0IDE0OjUzOjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmOGIzZDkxIHRvIGQwZWE4OWUKCjIwMDktMDQtMDQgMTQ6NDI6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcmVtb3ZlIGRlYWQgYXNzaWdubWVudAoJICBmaXJzdF9mbGFnIHdpbGwgYmUgZWl0aGVyOgoJICAqIHJld3JpdHRlbiB3aXRob3V0IGJlaW5nIHJlYWQgaWYgd2UgbG9vcCBhZ2FpbiAobGluZSAyODQpCgkgICogbm90IHJlYWQgYWdhaW4gaWYgd2UgZG9uJ3QgbG9vcAoKMjAwOS0wNC0wNCAxNDozOTo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGJhc2VzaW5rOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cy4KCSAgc3N0YXJ0L3NzdG9wL3JzdGFydC9yc3RvcCBhcmUgYWxsIGVpdGhlcjoKCSAgKiBhc3NpZ25lZCB2YWx1ZXMgbGF0ZXIgb24gYmVmb3JlIGJlaW5nIHVzZWQgaW4gJ2RvX3RpbWVzOicgKEVPUyBhbmQgYnVmZmVycykKCSAgKiBub3QgdXNlZCAobm9uLUVPUyBldmVudHMpCgoyMDA5LTA0LTA0IDE0OjM4OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YXJpYWJsZSB3aWxsIG5vdCBiZSByZWFkIGJlZm9yZSBpdCdzIGFzc2lnbmVkIGEgdmFsdWUgbGluZSA5NDIvOTQ1CgoyMDA5LTA0LTA0IDE0OjM3OjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0dGFnbGlzdDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSAgV2UgZG9uJ3QgbmVlZCB0byBhbGxvY2F0ZSBhIHZhcmlhYmxlIGlmIGl0J3MgdGhlIHJldHVybiBvZiBhIGZ1bmN0aW9uIGNhbGwKCSAgYW5kIHdlIG9ubHkgY2hlY2sgaXQgb25jZS4KCjIwMDktMDQtMDQgMTQ6MzU6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogT25seSB1c2UgbWV0aG9kcyB1c2VkIGluIGdfKiBjaGVja3MgaWYgZ2xpYiBjaGVja3MgYXJlIGRpc2FibGVkCgoyMDA5LTA0LTA0IDEwOjU5OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZ3N0OiBVc2UgZ19vbmNlX2luaXQqIG9yIEdfREVGSU5FX1RZUEUKCjIwMDktMDQtMDQgMTA6MjA6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHhtbC5jOgoJICBnc3Q6IFVzZSBHX0RFRklORV9UWVBFIGFuZCBmcmllbmRzIG9yIGF0IGxlYXN0IGdfb25jZV9pbml0XyogaW4gdGhlIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucwoKMjAwOS0wNC0wNCAxMDoxODo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJICBnc3Q6IFVzZSBHX0RFRklORV9UWVBFIGFuZCBkb24ndCBjYWxsIGdfdGhyZWFkX2luaXQoKSBmcm9tIGNsYXNzX2luaXQKCSAgY2xhc3NfaW5pdCBpcyB0b28gbGF0ZSBmb3IgY2FsbGluZyBnX3RocmVhZF9pbml0KCkgYXMgZ190aHJlYWRfaW5pdCgpCgkgIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgYW55IEdPYmplY3QgZnVuY3Rpb24uCgoyMDA5LTA0LTAzIDEzOjQ2OjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFVzZSBnX3NsaWNlX2NvcHkgaW5zdGVhZCBvZiBnX3NsaWNlX2R1cC4KCSAgQSAoYnVnZ3kpIGdsaWIgZ19zbGljZV9kdXAgbWFjcm8gbWF5IGNhdXNlIGNvbXBpbGVyIHdhcm5pbmdzIG9uIGUuZy4geDg2XzY0LgoKMjAwOS0wNC0wMyAxMjoyMTo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgdmFsdWUgb2YgcHJvcCBpcyBiZWluZyBvdmVyd3JpdHRlbiBqdXN0IGFmdGVyIHdpdGhvdXQgYmVpbmcgcmVhZC4KCjIwMDktMDQtMDMgMTI6MjA6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgJ3R5cGUnIGlzIG5ldmVyIHVzZWQgdW50aWwgbGluZSAxODQ3IHdoZXJlIGl0J3Mgb3ZlcndyaXR0ZW4uCgoyMDA5LTA0LTAzIDEyOjE5OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YWx1ZSBzZXQgdG8gdG9fY29weSBhdCB0aGF0IGxpbmUgaXMgbmV2ZXIgdXNlZCwgYW5kIGlzIG92ZXJ3cml0dGVuCgkgIGZ1cnRoZXIgZG93biBiZWZvcmUgYmVpbmcgcmVhZC4KCjIwMDktMDQtMDMgMTI6MTc6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSAgVGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUgaXNuJ3QgdXNlZCBhZnRlciB0aGF0IGNhbGwuCgoyMDA5LTA0LTAzIDEyOjE1OjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiByZW1vdmUgcmVkdW5kYW50IGFzc2lnbm1lbnQuCgkgIElmIHRoYXQgYmxvY2sgaXMgZW50ZXJlZCwgdGhlbiBzdGFydF90aW1lIGJlY29tZXMgR1NUX0NMT0NLX1RJTUVfTk9ORS4KCSAgU2luY2Ugc3RhcnRfdGltZSBpcyBpbnZhbGlkLCB0aGUgY29kZSB3aWxsIGVudGVyIHRoZSBibG9jayBhdCBsaW5lIDQzNCBhbmQKCSAgbmV3X2Jhc2VfdGltZSB3aWxsIGJlIHNldCB0aGVyZS4KCjIwMDktMDQtMDMgMTI6MTM6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgZ3N0cmVnaXN0cnliaW5hcnk6IHJlbW92ZSB2YXJpYWJsZSBvbmx5IHVzZWQgZm9yIGEgY2hlY2suCgkgIHRoYXQgdmFyaWFibGUgaXNuJ3QgdXNlZCBhbnl3aGVyZSBlbHNlIHdpdGhpbiB0aGF0IGJsb2NrLgoKMjAwOS0wNC0wMyAxMjoxMzowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbmsgOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBzeW5jIGlzIG5ldmVyIHVzZWQgYW55d2hlcmUgaW4gdGhhdCBjb2RlLgoKMjAwOS0wNC0wMyAxMjoxMjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtb3ZlIHVudXNlZCB2YXJpYWJsZSBpbiB0aGUgI2lmIDAgYmxvY2suCgkgIFRoYXQgdmFyaWFibGUgaXMgb25seSB1c2VkIGJ5IHRoZSBjb2RlIHdoaWNoIGhhcyBiZWVuIGlmIDAnZAoKMjAwOS0wNC0wMyAxMTo1Njo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIFJlbW92ZSB1bnVzZWQgaW5jcmVtZW50cyBhcyBkZXRlY3QgYnkgTExWTSdzIENMYW5nIHN0YXRpYyBhbmFseXplci4KCjIwMDktMDQtMDMgMTE6NTI6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBkZXRlY3RlZCBieSBMTFZNJ3MgQ2xhbmcgc3RhdGljIGFuYWx5emVyLgoKMjAwOS0wNC0wMyAxMToxOTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBpbXByb3ZlIEFQSSByZWZlcmVuY2UgZm9yIGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoKQoKMjAwOS0wNC0wMiAxMzozMjo1OCArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIGdzdC9nc3RiaW4uaDoKCSAgZG9jczogZXhwbGFpbiByZWYgb3duZXJzaGlwIGZvciBoYW5kbGVfbWVzc2FnZSBpbXBsZW1lbnRhdGlvbnMKCjIwMDktMDQtMDIgMTA6NDM6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IENhbGwgZ3N0X2NoZWNrX2luaXQoKSBiZWZvcmUgY3JlYXRpbmcgdGhlIHN1aXRlCgkgIFRoaXMgYWxsb3dzIHVzaW5nIHRoZSBHU3RyZWFtZXIgb3IgR09iamVjdCBBUEkgaW4gdGhlIHN1aXRlCgkgIGNyZWF0aW9uIGZ1bmN0aW9uLgoKMjAwOS0wMy0zMSAxODoxNDowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEZpeGVzIGVycm9yIHdoZW4gRElTQUJMRV9GQVVMVF9IQU5ETEVSIGlzIGRlZmluZWQKCSAgV2hlbiBkZWZpbmVkLCB0aGlzIG1hY3JvIHByZXZlbnRlZCB0aGUgZGVjbGFyYXRpb24gb2YgJ3dhaXRpbmdfZW9zJywgY2F1c2luZyBhbiBlcnJvci4KCjIwMDktMDMtMjYgMTc6MjU6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlci4gQWx3YXlzIGNhbGxzIF9zdWdnZXN0LCBldmVuIHdpdGggTlVMTCBjYXBzLiBGaXhlcyAjNTc0ODA1CgoyMDA5LTAzLTMwIDE1OjQ1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBEb24ndCBkZWZpbmUgZ2xvYmFsIGJ1ZmZlcnMgdmFyaWFibGUsIGl0J3MgYWxyZWFkeSBkZWZpbmVkIGJ5IGxpYmdzdGNoZWNrCgoyMDA5LTAzLTMwIDEwOjMzOjUxICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2J1aWxkaW5nLnhtbDoKCSAgZG9jczogU29tZSBncmFtbWFyIGFuZCB0eXBvIGNvcnJlY3Rpb25zLgoKMjAwOS0wMy0yOSAxMzo0MToyMiArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFuYS5hbWFudGVzPgoKCSogZG9jcy9nc3QvYnVpbGRpbmcueG1sOgoJICBGaXggdHlwby4KCjIwMDktMDMtMjcgMTc6MzA6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogaW5pdCB2YXJpYWJsZSwgdGhhdCBpcyByZWZlcmVuY2VkIGluIGVycm9yIGNhc2UgYmVsb3cgdGhlIGZhaWw6IGxhYmVsCgoyMDA5LTAzLTI3IDE2OjE1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiB3YWtldXAgdGhlIGFzeW5jIHRocmVhZCBhIGJpdCBtb3JlCgkgIEFsc28gd2FrZSB1cCB0aGUgYXN5bmMgdGhyZWFkIHdoZW4gaXQgaXMgZG9pbmcgYW4gYXN5bmMgd2FpdCBmb3IgYW4gZW50cnkuCgoyMDA5LTAzLTI3IDE2OjE1OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IGEgbGl0dGxlIGRlYnVnIG1lc3NhZ2UKCjIwMDktMDMtMjYgMTM6MDc6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogY2hlY2sgZm9yIG5vdCByZWFkaW5nIGJleW9uZCB0aGUgZGF0YSBhcmVhLiBGaXhlcyAjNTc2ODQyCgkgIENoZWNrIGFsbCByZWFkcyBhZ2FpbnN0IHRoZSBlbmQgb2YgdGhlIGRhdGEgcmVnaW9uLiBSb2xsIGJhY2sgcmVnaXN0cmF0aW9uIG9mCgkgIHBhcnRpYWwgcmVhZHMuCgoyMDA5LTAzLTI1IDExOjAzOjIyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvYnVpbGRpbmcueG1sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgYSBwYWdlIGFib3V0IGJ1aWxkaW5nIGdzdHJlYW1lciBhbmQgYXBwcwoKMjAwOS0wMy0yNiAxMzowODowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFkZHMgZmxhZyBmb3IgZW9zIG9uIHNodXRkb3duIGluIGdzdC1sYXVuY2guIEZpeGVzICM1NzU4MTQuCgoyMDA5LTAzLTI2IDIyOjA1OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogbWFrZSBVTlNDSEVEVUxFRCBjaGVja3MgdGhyZWFkc2FmZQoJICBNb3ZlIHRoZSBjaGVja3MgZm9yIHVzaW5nIGFuIHVuc2NoZWR1bGVkIGVudHJ5IGZyb20gdGhlIHVuc2FmZSBHc3RDbG9jayB0byB0aGUKCSAgU3lzdGVtQ2xvY2sgb2JqZWN0IHNvIHRoYXQgd2UgY2FuIHBlcmZvcm0gdGhlIGNvcnJlY3QgbG9ja2luZy4KCSAgZml4IGEgbGVhayBhbmQgcG90ZW50aWFsIGRlYWRsb2NrIHRoZW4gdGhlIGFzeW5jIHRocmVhZCBmYWlscyB0byBzdGFydC4KCSAgU3ByaW5rbGUgc29tZSBHX0xJS0VMWSBhcm91bmQgYmVjYXVzZSB3ZSBjYW4uCgoyMDA5LTAzLTI2IDIxOjQwOjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgcGVuZGluZyBhc3luYyB3YWtldXAgc29vbmVyCgkgIFJlbW92ZSBhIHBlbmRpbmcgYXN5bmMgd2FrZXVwIGJlZm9yZSB3ZSBjaGVjayBpZiB0aGUgbmV4dCBlbnRyeSBpcyBVTlNDSEVEVUxFRAoJICBiZWNhdXNlIHdlIG1pZ2h0IGxlYXZlIHRoZSBjb250cm9sIHNvY2tldCBidXN5LgoKMjAwOS0wMy0yNiAxOTozMzo0MSArMDEwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBDb3JyZWN0ZWQgYSBkb2N1bWVudGF0aW9uIHR5cG8uCgoyMDA5LTAzLTI2IDE5OjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBhZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwOS0wMy0yNiAxODo0NjozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogcmV3b3JrIHRoZSB3YWtldXAgb2YgZW50cmllcy4KCSAgS2VlcCBhIGNvdW50ZXIgZm9yIHRoZSBhbW91bnQgb2Ygb3V0c3RhbmRpbmcgd2FrZXVwcyB0aGF0IHdlIHByb2R1Y2UgYW5kIG9ubHkKCSAgcGVyZm9ybSBhIHdyaXRlL3JlYWQgdG8gdGhlIGNvbnRyb2wgc29ja2V0IHdoZW4gMSBvciAwIHJlc3BlY3RpdmVseS4KCSAgZG9uJ3QgcG9sbCB3aGVuIHdhaXRpbmcgZm9yIHRoZSBlbnRyaWVzIHRvIGJlIHVuYmxvY2tlZCBhbmQgY2xlYXIgdGhlaXIgd2FrZXVwCgkgIGNvdW50cywganVzdCBhY3Qgb24gdGhlIHNpZ25hbCB3aGVuIHRoZSB3YWtldXAgY291bnQgaXMgMC4KCSAgdW5zY2hlZHVsZWQgZW50cmllcyB3aWxsIGNsZWFyIHRoZWlyIHdha2V1cCBjb3VudCB0aGVtc2VsdmVzLgoJICBLZWVwIHRyYWNrIG9mIHdoZW4gd2Ugd2FrZXVwIHRoZSBhc3luYyB0aHJlYWQgYmVjYXVzZSB0aGUgbGlzdCBvZiBlbnRyaWVzIGhhcwoJICBjaGFuZ2VkLgoJICBkb24ndCB0cnkgdG8gc2VlIGlmIHRoZSBsaXN0IGNoYW5nZWQgYmVjYXVzZSB3ZSBjYW4ndCByZWFsbHkga25vdyB3aGVuIG9uZSBlbnRyeQoJICBpcyBhZGRlZCBtdWx0aXBsZSB0aW1lcy4KCSAgT25seSB3YWtlIHVwIHRoZSBhc3luYyB0aHJlYWQgd2hlbiB3ZSBhZGQgYW4gYXN5bmMgZW50cnkgdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QKCSAgYW5kIHRoZSBvbGQgZW50cnkgd2FzIEJVU1kuCgoyMDA5LTAzLTI1IDE3OjMxOjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBGaXggdXAgZG9jdW1lbnRhdGlvbiBzdHJpbmdzLgoJICBOb3RlIHRoZSBjaGFuZ2VkIGJlaGF2aW91ciBvZiBnc3RfcG9sbF93YWl0IGZvciB0aW1lciBHc3RQb2xsJ3MsIGFuZAoJICBmaXggYSBjb3VwbGUgb2Ygc3BlbGxpbmcgZXJyb3JzLgoKMjAwOS0wMy0yNiAxNTo1NTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGZpeCAyIHdha2V1cCByYWNlcy4KCSAgd2hlbiBhbiBlbnRyeSBiZWluZyB3YWl0ZWQgb24gaW4gdGhlIGFzeW5jIHRocmVhZCBpcyB1bnNjaGVkdWxlZCwgY2xlYXIgdGhlCgkgIHdha2V1cCBxdWV1ZSBzbyB3ZSBjYW4gY29udGludWUgd2FpdGluZyBvbiBvdGhlciBlbnRyaWVzLgoJICBXaGVuIGFuIGVudHJ5IGJlaW5nIHdhaXRlZCBvbiBpbiB0aGUgYXN5bmMgdGhyZWFkIGlzIHVubG9ja2VkIGJlY2F1c2UgYW4gZWFybGllcgoJICBlbnRyeSB3YXMgYWRkZWQgdG8gdGhlIGxpc3QsIHNldCB0aGUgZW50cnkgdG8gT0sgYWdhaW4uIFRoaXMgbWFrZXMgc3VyZSB0aGF0CgkgIG9ubHkgdGhlIGVudHJpZXMgYmVpbmcgd2FpdGVkIG9uIGhhdmUgdGhlIEJVU1kgZmxhZyBzZXQgYW5kIHdha2UgdXAgdGhlIHRpbWVyCgkgIHBvbGwgd2hlbiB0aGV5IGFyZSB1bnNjaGVkdWxlZC4KCjIwMDktMDMtMjYgMTQ6NDQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBpZ25vcmUgLmdpdCBkaXJlY3Rvcnkgd2hlbiByZWN1cnNpdmVseSBzY2FubmluZyBwbHVnaW4gcGF0aHMgZm9yIHBsdWdpbnMKCSAgU2F2ZXMgc29tZSBjeWNsZXMvcGFuZGFzIGZvciB0aG9zZSBvZiB1cyB3aG8gcnVuIHVuaW5zdGFsbGVkIHNldHVwcy4KCjIwMDktMDMtMjYgMTQ6MTY6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICByZWdpc3RyeTogZG8gZnN5bmMoKSBiZWZvcmUgY2xvc2UoKSBhbmQgcmVuYW1lKCkKCSAgVGhpcyBoZWxwcyBwcmV2ZW50IGZpbGVzeXN0ZW0vZGF0YSBpbmNvbnNpc3RlbmNpZXMgaW4gY2VydGFpbgoJICBjaXJjdW1zdGFuY2VzIG9uIGNlcnRhaW4gZmlsZXN5c3RlbXMgKGxpa2UgZXh0NCwgeGZzLCB1YmlmcykuCgkgIEFsc28gc2VlIGJ1ZyAjNTYyOTc2LgoKMjAwOS0wMy0yNiAwMTowOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfZ2V0X2J1ZmZlcntfaW5kZXh9CgkgIENvbnZlbmllbmNlIEFQSSwgbW9zdGx5IGZvciBpbWFnZSB0YWdzLCBzbyBwZW9wbGUgZG9uJ3QgaGF2ZSB0bwoJICBmaWd1cmUgb3V0IHRoZSB3aG9sZSBHVmFsdWUvR3N0VmFsdWUgdGhpbmcganVzdCBmb3IgdGhpcy4KCjIwMDktMDMtMjUgMjM6MDM6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogQ2xlYW4gdXAgdGhlIHRlc3RzIGEgYml0LgoJICBBZGQgc29tZSBjbGVhbnVwcyB0byB0aGUgc3lzdGVtIGNsb2NrIHRlc3RzLCB0byBmcmVlIGFsbCB0aGUgbWVtb3J5IGFuZAoJICB1bnNjaGVkdWxlL3VucmVmIGFsbCBjbG9jayBJRHMgd2UgYWxsb2NhdGUuCgkgIFVzZSBhIG11dGV4IGluIG9uZSB0ZXN0IHRvIGF2b2lkIHBvdGVudGlhbCB0aHJlYWRpbmcgcHJvYmxlbXMgb24gbXVsdGljb3JlCgkgIG1hY2hpbmVzLgoKMjAwOS0wMy0yNSAyMTozNzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBBZGQgYSB0ZXN0IGZvciBzeW5jL2FzeW5jIGNsb2NraWQgaW50ZXJhY3Rpb25zCgkgIFRoaXMgdGVzdCByYW5kb21seSBoYW5ncyBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUgcmVsaWFiaWxpdHkgb2YKCSAgdW5zY2hlZHVsaW5nIHN5bmMgYW5kIGFzeW5jIGNsb2NrSUQncyBvbiB0aGUgc3lzdGVtIGNsb2NrLgoKMjAwOS0wMy0yNiAxMToxNzowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBVc2UgZ19zbGljZV9kdXAoKSBub3cKCjIwMDktMDMtMjYgMTE6MDg6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBSZW1vdmUgc29tZSBjb21wYXRpYmlsaXR5IHN0dWZmIGZvciBHTGliIDwgMi4xNAoKMjAwOS0wMy0yNSAwMDo1MDowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX1NVQlRJVExFX0NPREVDCgkgIFllcywgJ2NvZGVjJyBpc24ndCBleGFjdGx5IHRoZSBiZXN0IHdvcmQsIGJ1dCBsZXQncyBiZSBjb25zaXN0ZW50IHdpdGggQVVESU9fQ09ERUMKCSAgYW5kIFZJREVPX0NPREVDICh3aGljaCBtYXkgYmUgJ3JhdycgZm9ybWF0cyBhcyB3ZWxsIGFmdGVyIGFsbCkuIFByZXJlcXVpc2l0ZSBmb3IKCSAgYnVnICAjNTc2NTUyLgoKMjAwOS0wMy0yNCAyMTozOToyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGdzdC1sYXVuY2ggbWFuIHBhZ2UgZml4CgkgIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIGlzIC0tZ3N0LWRlYnVnLWRpc2FibGUsIG5vdCAtLWdzdC1kaXNhYmxlLWRlYnVnLgoJICBGaXhlcyAjNTc2NTU2LiBTcG90dGVkIGJ5IEJvZ2RhbiBIYXJqb2MuCgoyMDA5LTAzLTI0IDE5OjMzOjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBpbXByb3ZlIHByb3BlcnR5IHNldCBhbmQgY29udmVydCBjb2RlCgkgIFVzZSBzdHJpbmcgZGVzZXJpYWxpc2F0aW9uIGluc3RlYWQgb2YgY3VzdG9tIHBhcnNpbmcgY29kZSB0byBhbGxvdyBmb3IgYWxsCgkgIHN1cHBvcnRlZCB3YXlzIG9mIHNwZWNpZnlpbmcgcHJvcGVydHkgdmFsdWVzLgoJICBmaXhlcyAjNTc2NTgyLgoKMjAwOS0wMy0yMyAxNToxODoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgYnVpbGQ6IGRlZmluZSBzdHVicyB3aGVuIGRpc2FibGluZyBnc3QtZGVidWcgc3Vic3lzdGVtLiBGaXhlcyAjNTc1OTIyCgkgIFJ1bm5pbmcgY29uZmlndXJlIHdpdGggZS5nLiAtLWRpc2FibGUtZHN0LWRlYnVnIHdhcyBjb21waWxpbmcgb3V0IHRoZSBkZWJ1ZwoJICBzeXN0ZW0gKEFCSSBicmVhaykuIE5vdyBzdHVicyBhcmUgYWRkZWQgYW5kIG9ubHkgaWYgb25lIGRvZXMgZS5nLgoJICBtYWtlIENGTEFHUz0iLURHU1RfUkVNT1ZFX0RJU0FCTEVEIiB0aGUgc3ltYm9scyBhcmUgb21taXR0ZWQuCgoyMDA5LTAzLTIzIDEyOjM0OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBvbmNlLXBlci1zZWNvbmQgJ2VtZXJnZW5jeSByZW5kZXJpbmcnIGZvciBjYXNlIHdoZXJlIGFsbCBidWZmZXJzIGJ1dCB0aGUgdmVyeSBmaXJzdCBhcmUgbGF0ZQoJICBEdWUgdG8gYSB0eXBvIGJhc2VzaW5rIGRpZG4ndCBkbyBhbnkgZW1lcmdlbmN5IHJlbmRlcmluZyBvZiBsYXRlIGJ1ZmZlcnMKCSAgaWYgdGhlIG9ubHkgYnVmZmVyIGV2ZXIgcmVuZGVyZWQgd2FzIHRoZSBmaXJzdCBvbmUgd2l0aCB0aW1lc3RhbXAgMC4gVGhpcwoJICBtZWFucyB0aGF0IGluIGNhc2VzIHdoZXJlIHRoZSBkZWNvZGVyIGlzIHZlcnkgdmVyeSBzbG93LCB3ZSdkIG5ldmVyIHNlZQoJICBhbnkgYnVmZmVycyBidXQgdGhlIHZlcnkgZmlyc3Qgb25lIHJlbmRlcmVkLiBGaXhlcyAjNTc2MzgxLgoKMjAwOS0wMy0yMSAwMjozNDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogdHdlYWsgdGhlIHJlbGVhc2UgcHJvY2VkdXJlIHNjcmlwdAoKMjAwOS0wMy0yMCAxNDoxMjo1NSArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgd2luMzI6IGZpeCBzZWVraW5nIGluIGZpbGVzID40R0IKCSAgVXNlIDY0LWJpdCBmdW5jdGlvbnMgb24gd2luZG93cyB0byBpbXBsZW1lbnQgc2Vla2luZyBpbiBmaWxlcyBiaWdnZXIKCSAgdGhhbiA0R0IuCgkgIEZpeGVzICM1NzU5ODgKCjIwMDktMDMtMjAgMTE6MjY6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBjb250cm9sbGVyOiBGaXggZ2VuZXJhdGlvbiBvZiBjb250cm9sLWNoYW5nZSBhcnJheXMuCgkgIFdoZW4gZ2VuZXJhdGluZyBhcnJheXMgb2YgY29udHJvbCBjaGFuZ2VzIHRpbWVzdGFtcCB2YXJpYWJsZSB3YXMgdXNlZCBpbnN0ZWFkCgkgIHRoZSBsb2NhbCB0cyB2YXJpYWJsZSB0aGF0IHdlIGluY3JlbWVudCB3aGVuIHN0ZXBwaW5nIHRocm91Z2ggdGhlIGFycmF5LgoJICBQb2ludGVkIG91dCBieSBNYXJ0aW4gUG9rb3JueS4KCjIwMDktMDMtMjAgMDA6NDI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZGVidWdnaW5nOiBtYWtlIEdTVF9QVFJfRk9STUFUIHdvcmsgZm9yIHF1ZXJpZXMgYXMgd2VsbAoKMjAwOS0wMy0yMCAwMDozOTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQVBJOiBhZGQgR1NUX1FVRVJZX0NBU1QKCSAgYmVjYXVzZSB3ZSBjYW4sIGFuZCBmb3IgY29uc2lzdGVuY3kuCgoyMDA5LTAzLTE5IDIxOjI3OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGdzdGNoZWNrOiBmaXggZm9yIGNoZWNrIHZlcnNpb25zID4gMC45LjYKCSAgQSBuZXcgYXJndW1lbnQgYWxsb3dlZF9leGl0X3ZhbHVlIHdhcyBhZGRlZCBpbiBTVk4gcmVjZW50bHkgKCM1NzQyMTMpLgoKMjAwOS0wMy0xOSAxNzoxOTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBmaXggZ3N0X3BhZF9jYW5fbGluawoJICBXZSB3ZXJlIGNvbnZlcnRpbmcgdGhlIEdzdFBhZExpbmtSZXR1cm4gdG8gYSBnYm9vbGVhbiwgd2hpY2ggaXMgbm90IHdoYXQgd2Ugd2FudAoJICB0byBkby4KCjIwMDktMDMtMTkgMTA6NDQ6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtcnRzcC1zZXJ2ZXIgYml0cyBhbmQgYnJlYWsgdXAgb3Zlcmx5IGxvbmcgbGluZXMKCSAgQWRkIHNvbWUgb2YgdGhlIGJpdHMgbmVlZGVkIGZvciBhbiB1bmluc3RhbGxlZCBnc3QtcnRzcC1zZXJ2ZXIgKHNvIGdkYiB3b3JrcwoJICBvbiB0aGUgZXhhbXBsZXMgZXRjLikuIFB5dGhvbiBiaXRzIGFyZSBzdGlsbCBtaXNzaW5nLCBhbmQgd2UgbWlnaHQgbmVlZCBhbgoJICAtdW5pbnN0YWxsZWQucGMgZmlsZSBhcyB3ZWxsIGluIHRoZSBmdXR1cmUuIEJyZWFrIHVwIHZlcnkgbG9uZyBsaW5lcyB0byBtYWtlCgkgIHRoZW0gZWFzaWVyIHRvIHJlYWQgYW5kIG1haW50YWluLiBBbHNvIHJlbW92ZSBnc3QtcGx1Z2lucyBwYXRocyBmcm9tIHRoZQoJICBvbGQgZGF5cy4KCjIwMDktMDMtMTkgMTE6NDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3J3bG9ja3M6CgkgIGRvY3M6IGludGVyZXN0aW5nIGlkZWEgZm9yIGZhc3QgcncgbG9ja3MKCSAgLS0KCjIwMDktMDMtMTkgMTE6MTE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wgdG8gd2luZG93cyAuZGVmIGZpbGUKCSAgQWRkIHRoZSBuZXcgd2luZG93cyBjbWQuZXhlIGNvbG9yaW5nIG1ldGhvZCB0byB0aGUgLmRlZiBmaWxlLgoKMjAwOS0wMy0xOCAxNjozODo1MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbW9yZSBpbmZvIGFib3V0IHdoZW4gc3RhdGUgY2hhbmdlcyBjYW4gYmUgYXN5bmMgYW5kIHdoZW4gbm90LgoKMjAwOS0wMy0xOCAxOTowNzowMCArMDEwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1IGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1vcmUgaW5kZW50YXRpb24gZml4ZXMKCSAgRml4ZXMgIzUxNzIzMS4KCjIwMDktMDMtMTggMTk6MDY6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBpbmRlbnRhdGlvbiBmaXgKCjIwMDktMDMtMTggMTg6NTc6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBzaW1wbHkgc29tZSBtb3JlCgoyMDA5LTAzLTE4IDE4OjQ1OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVmYWN0b3IgZGVidWcgY29sb3JzIGZvciB3aW4zMiBhbmQgb3RoZXIKCSAgUmVmYWN0b3IgdGhlIGRlYnVnIGxpbmUgY29kZSB0byB1c2UgYXMgbXVjaCBjb2RlIGFzIHBvc3NpYmxlIGZvciB0aGUgd2luMzIgYW5kCgkgIG90aGVyIGNvbG9yIGNvZGluZ3MuCgkgIFVwZGF0ZSBkb2NzIHdpdGggbmV3IHN5bWJvbC4KCjIwMDktMDMtMTggMTc6MzA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIHdpbmRvd3M6IGluaXRpYWwgY29tbWl0IGZvciB0ZXJtaW5hbCBjb2xvcnMKCjIwMDktMDMtMTggMTc6MDE6MTYgKzAxMDAgIFplZXNoYW4gQWxpIChLaGF0dGFrKSA8emVlc2hhbmFrIGF0IGdub21lIGRvdCBvcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3RwYWQ6IGZpeCBnc3RfcGFkX2Nhbl9saW5rKCkKCSAgTW92ZSB0aGUgZ3N0X3BhZF9jYW5fbGluaygpIGltcGxlbWVudGF0aW9uIGZyb20gZ3N0dXRpbHMgdG8gZ3N0cGFkIGFuZCB1c2UKCSAgZ3N0X3BhZF9saW5rX3ByZXBhcmUoKSB0byBtYWtlIGl0IHdvcmsgY29ycmVjdGx5IGFuZCBhbHNvIGNoZWNrIHRoZSBjYXBzLgoJICBNYWtlIHRoZSBicm9rZW4gaW1wbGVtZW50YXRpb24gaW4gZ3N0dXRpbHMgc3RhdGljLgoJICBTbWFsbCBjbGVhbnVwcyBpbiB0aGUgX2dldF9maXhlZF9jYXBzKCkgZnVuY3Rpb24uCgkgIEZpeGVzICM1NzU2ODIuCgoyMDA5LTAzLTE3IDIwOjQxOjQ0ICswMDAwICBEYXZpZCBBZGFtIDx6YW5jaGV5QHVjYy5ndS51d2EuZWR1LmF1PgoKCSogZ3N0L2dzdC5jOgoJICBjb25maWcuaCBuZWVkcyB0byBiZSBpbmNsdWRlZCBmaXJzdCwgZWl0aGVyIGRpcmVjdGx5IG9yIHZpYSBnc3RfcHJpdmF0ZS5oCgkgIEZpeGVzIGJ1aWxkIHdpdGggLVdlcnJvciBjYXVzZWQgYnkgJ19GSUxFX09GRlNFVF9CSVRTIHJlZGVmaW5lZCcgd2FybmluZyBvbgoJICBPcGVuU29sYXJpcyB3aGVyZSBfRklMRV9PRkZTRVRfQklUUyBtYXkgYmUgZGVmaW5lZCBib3RoIGluIG91ciBjb25maWcuaAoJICBhbmQgdmlhIHN0ZGlvLmggKCM1NzU2OTUpLgoKMjAwOS0wMy0xNyAxOTowMjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZmFxOiByZW1vdmUgb3V0ZGF0ZWQgYml0cyBmcm9tIGluZGVudGluZyBzZWN0aW9uCgoyMDA5LTAzLTE3IDEyOjA1OjMzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZm9yd2FyZCBzZWdtZW50LXN0YXJ0IGxpa2Ugc2VnbWVudC1kb25lIGlmIHBhcmVudCBpcyBhbHNvIGEgYmluLCBmaXhlcyAjNTc1NTk4LgoJICBCaW4gY29sbGVjdHMgc2VnbWVudC1zdGFydCBtZXNzYWdlcyBhbmQgc2VnZW50LWRvbmUgbWVzc2FnZXMuIGl0IHBvc3RzIGEKCSAgc2VnbWVudC1kb25lIG1lc3NhZ2UgdG8gaXRzIHBhcmVudCwgb25jZSBpdCBoYXMgcmVjZWl2ZWQgYSBzZWdtZW50LWRvbmUgZm9yCgkgIGVhY2ggc2VnbWVudC1zdGFydC4gSW1obyBpdCBzaG91bGQgYWxzbyBzZW5kIGEgc2VnbWVudC1zdGFydCBpZiBpdCByZWNlaXZlcyB0aGUKCSAgZmlyc3Qgc2VnbWVudCBzdGFydCBhbmQgaWYgcGFyZW50IGlzICE9TlVMTC4gVGhpcyBpcyBuZWVkZWQgZm9yIGJpbnMgaW4gYmlucywKCSAgc28gdGhhdCBhbHNvIGhpZ2hlciBvcmRlciBiaW5zIGNhbiBncm91cCBzZWdtZW50LXN0YXJ0cyBhbmQgc2VnbWVudC1kb25lcy4KCSAgUmlnaHQgbm93IGhpZ2hlciBvcmRlciBiaW5zIHdpbGwgcG9zdCBhIHNlZ21lbnQtZG9uZSBmb3IgZWFjaCBzZWdtZW50LWRvbmUKCSAgcmVjZWl2ZWQuCgoyMDA5LTAzLTE2IDIwOjEyOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSAgZmFxOiBmaXggdHlwbyBpbiBnaXQgY29tbWFuZAoKMjAwOS0wMy0xNSAyMzo0MDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB0aGVzZSB3YXJuaW5ncyBhcmUgc2VyaW91cywgZ2l2ZSBtb3JlIGRldGFpbCBpbiB0aGUgbWVzc2FnZQoKMjAwOS0wMy0xNSAyMzozNzoyOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIGRlYnVnIGxvZ2dpbmcgdG8gbWFrZSBpdCBlYXNpZXIgdG8gdHJhY2UgaXQKCjIwMDktMDMtMTMgMTA6NTY6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRml4IGluZGVudGF0aW9uIG9mIC5oIGZpbGVzCgkgIC0tCgoyMDA5LTAzLTEyIDEyOjIwOjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0czogYXBwbHkgZml4IGZvciByZXBsYWNlIGFsbCBhbHNvIHRvIGdzdF90YWdfbGlzdF9hZGRfdmFsaXN0X3ZhbHVlcy4gRml4ZXMgIzU3NDI0MQoKMjAwOS0wMy0xMiAxMDo0ODoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGRvY3M6IEltcHJvdmUgc29tZSBkb2NzCgkgIFJlbmFtZSBzb21lIGZ1bmN0aW9uIHZhcmlhYmxlcyBhbmQgYWRkIHNvbWUgUmV0dXJuOiB0byBtYWtlIHRoZSBkb2NzIG1vcmUgaGFwcHkuCgoyMDA5LTAzLTEyIDAwOjQxOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgZG9jczogZml4IGxpbmtpbmcgdG8gY29uc3RhbnQgYW5kIGZ1bmN0aW9ucwoKMjAwOS0wMy0xMSAxNToyMDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IGVsbGlwc2l6ZSBjYXBzIGZpZWxkcywgYmV0dGVyIHBsYWNlbWVudCBvZiB1bm5lZ290aWF0ZWQgY2FwcwoJICBMb25nIGNhcHMgZmllbGRzIGxpa2UgZW51bXMgYXJlIGVsbGlwc2lzZWQuIElmIGNhcHMgYXJlIG5vdCBuZWdvdGlhdGVkLCB1c2UKCSAgaGVhZC0gYW5kIHRhaWxsYWJlbCB0byBwbGFjZSB0aGVtIGNsb3NlciB0byB0aGUgcGFkcy4gVXNlIHNtYXJ0ZXIgd2F5IHRvIGluZGVudC4KCjIwMDktMDMtMTEgMTA6Mjc6MTYgKzAyMDAgIExhc3psbyBQYW5keSA8bGFzemxvazJAZ21haWwuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IG1ha2UgY2FwcyBpbiBET1QgZGVidWcgZ3JhcGhzIG1vcmUgcmVhZGFibGUuIEZpeGVzIDU3NDQ4NAoJICBVc2UgYSBtb25vc3BhY2UgZm9udCBmb3IgZWRnZSBsYWJlbHMgYW5kIGluZGVudC4KCjIwMDktMDMtMTEgMTQ6MTE6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBBbGxvdyAldSBhcyBjb252ZXJzaW9uIG1vZGlmaWVyIGFkZGl0aW9uYWwgdG8gJWQgYW5kICVzCgoyMDA5LTAzLTExIDExOjIzOjA1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGdzdGJhc2VzcmM6IHVuc2lnbmVkIGxvbmcgaXMgIiVsdSIsIG5vdCAiJXVsIi4gRml4ZXMgYnVpbGQgb24gbWFjb3N4CgoyMDA5LTAzLTEwIDIxOjA4OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBsb2dnaW5nOiBzb21lIGFkZGl0aW9uYWwgbG9nZ2luZyBmb3IgdHJhY2luZyBjYXBzIG5lZ290aWF0aW9uLgoJICBEZW1vdGUgb25lIGxvZyB0aGF0IGNhbiBjb21lIHF1aXRlIG9mdGVuLiBSZW1vdmUgb25lIGZpeG1lIHRoYXQgaXMgZG9uZS4gQXBwbHkKCSAgZ3N0LWluZGVudCBjaGFuZ2VzLgoKMjAwOS0wMy0xMCAyMTowMzo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb21tZW50OiBhZGQgYSBmaXhtZS0wLjExCgoyMDA5LTAzLTEwIDIxOjAxOjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgZm9ybWF0dGluZzogdGFicyB0byBzcGFjZXMKCjIwMDktMDMtMDkgMjM6MTE6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzAzMjE2MyB0byBmOGIzZDkxCgoyMDA5LTAzLTA5IDIwOjA3OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBnc3RyZWFtZXIuc3BlYzogZml4IHN0cmF5IEBHTElCMl9SRVFAIHRoYXQgZGlkbid0IGdldCBleHBhbmRlZCBwcm9wZXJseQoKMjAwOS0wMy0wOSAxNjowOTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiByZXdvcmQgc3R1ZmYgYWJvdXQgY3VzdG9tIG1haW5sb29wcwoJICBGaXhlcyAjNTc0MjI5LgoKMjAwOS0wMy0wOSAxNjowMToyMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IGRvbid0IHVzZSBHU1RfVElNRV9GT1JNQVQgd2hlbiBidWlsZGluZyBmaWxlbmFtZXMuIGZpeGVzICM1NzQ2MjMKCjIwMDktMDMtMDkgMTE6Mzk6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNhbGwgbmV3IGNhbGxiYWNrcyBzZXQgaW4gdGhlIGJsb2NrIGNhbGxiYWNrCgkgIEtlZXAgdHJhY2sgb2Ygd2hlbiBhIG5ldyBjYWxsYmFjayBpcyBpbnN0YWxsZWQgaW4gdGhlIGNhbGxiYWNrIGFuZCBjYWxsIHRoZSBuZXcKCSAgY2FsbGJhY2sgaW4gdGhhdCBjYXNlLgoJICBBZGQgdW5pdCB0ZXN0IGZvciBjaGVja2luZyBwYWQgYmxvY2tpbmcuCgkgIEZpeGVzICM1NzM4MjMuCgoyMDA5LTAzLTA4IDE3OjIyOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgZW51bXR5cGVzIGFuZCBjb25maWcuaAoKMjAwOS0wMy0wOCAxNzoxNTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBkb2NzOiBpbXByb3ZlIGRvY3MgZm9yIGdzdF90YWdfbGlzdF9nZXRfZGF0ZSooKQoJICBNZW50aW9uIHRoYXQgdGhlIGRhdGUgdmFsdWUgbmVlZHMgdG8gYmUgZnJlZWQgYW5kIGhvdyB0byBmcmVlIGl0LgoKMjAwOS0wMy0wOCAxMjowMjoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZmYTczOGQgdG8gNzAzMjE2MwoKMjAwOS0wMy0wOCAxMToxNzo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNmMTNlNGUgdG8gZmZhNzM4ZAoKMjAwOS0wMy0wOCAwMDoyNzoyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IGltcHJvdmUgY2FwcyBsb2dnaW5nCgkgIEZhY3RvciBvdXQgY29kZSB0byBkZXNjcmliZSBjYXBzLiBJbXByb3ZlIGZvcm1hdGluZyAobm8gXG4gaW4gY2FwcyBmaWVsZHMpLgoJICBDaGVjayBwZWVyIGNhcHMgdG9vIGFuZCBzaG93IGJvdGggaWYgdGhleSBkaWZmZXIuCgoyMDA5LTAzLTA3IDExOjQzOjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2M3NDU2YiB0byAzZjEzZTRlCgoyMDA5LTAzLTA3IDEwOjQzOjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTdjODNmMiB0byAzYzc0NTZiCgoyMDA5LTAzLTA2IDIyOjEwOjEwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiByZXZlcnQgYWNjaWRlbnRpYWwgY29tbWl0IGZyb20gdGhlIHF1ZXVlIChtZSBzaG91bGQgc3RhcnQgdXNpbmcgYnJhbmNoZXMpCgoyMDA5LTAzLTA2IDIxOjU5OjIwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGFwaWRvY3M6IG1hcmt1cCBleGFtcGxlIGFzIGhpZ2hsaWdodGFibGUgZXhhbXBsZSBhbmQgY29weSBzYW1lIGZvciBzdHJ1Y3R1cmUKCSAgc3RydWN0dXJlcyBjYW4gYmUgcHJpbnRlZCBsaWtlIHdlIGNhbiBkbyBmb3IgY2Fwcy4gTWFyayB0aGUgZXhhbXBsZSBzbyB0aGF0CgkgIGd0ay1kb2MgY2FuIHByZXR0eSBwcmludCBhbmQgeHJlZiBpdC4KCjIwMDktMDMtMDQgMjE6MjE6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHJlbGlhYmx5IGdvIHRvIGVvcy4gRml4ZXMgIzU3NDE2MAoJICBVcGRhdGUgY29sbGVjdHBhZHMgc3RhdHVzIHdoZW4gcmVtb3ZpbmcgcGFkcy4KCjIwMDktMDMtMDYgMTI6MDg6NDIgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX2V2ZW50X2RlZmF1bHQgd2hlbiBzZW5kaW5nIG91dCB0aGUgbmV3c2VnbWVudCBldmVudCBpbiBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBUaGlzIG1ha2VzIGlkZW50aXR5IHNpbmdsZS1zZWdtZW50PXRydWUgISBvZ2dtdXggd29yayBhZ2FpbiBhZnRlciBhIGNoYW5nZSBpbgoJICBvZ2dtdXggKGNvbW1pdCBiMGUzZDQ0OSBpbiAtYmFzZSkuCgoyMDA5LTAzLTA1IDE3OjQyOjIyICswMTAwICBBbmR5IFdpbmdvIDx3aW5nb0BvYmxvbmcubmV0PgoKCSAgYmFzZXNpbms6IHByb3BhZ2F0ZSBVUFNUUkVBTSBldmVudHMgaW4gcHVsbCBtb2RlIHRvbwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KTogUHJvcGFnYXRlCgkgIHVwc3RyZWFtIGV2ZW50cyBpbiBwdWxsIG1vZGUgdG9vLgoKMjAwOS0wMy0wNSAxMToyOTo0OCArMDEwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiByZWxheCBmYWlsdXJlIHRvIGRlYWN0aXZhdGUgdW5saW5rZWQgcGFkcwoJICBXaGVuIGRlL2FjdGl2YXRpbmcgYSBwYWQgaW4gcHVsbCBtb2RlIHRoZSBwYWQgbmVlZHMgdG8gZGUvYWN0aXZhdGUgdGhlCgkgIHBlZXIgcGFkIGl0IGlzIGNvbm5lY3RlZCB0bywgZmFpbHVyZSB0byBiZSBhYmxlIHRvIGRvIHRoaXMgaW4gYWN0aXZhdGlvbiBtb2RlCgkgIGlzIGFuIGVycm9yLgoJICBIb3dldmVyIGlmIHRoZXJlIGlzIG5vIHBlZXJwYWQsIHdlIGNhbiBzdGlsbCBkZWFjdGl2YXRlIHRoZSBwYWQgY29ycmVjdGx5IGFuZAoJICBhc3N1bWUgdGhlIGFwcGxpY2F0aW9uIHdpbGwgZGVhY3RpdmF0ZSB0aGUgdW5saW5rZWQgcGVlciBwYWQgZXZlbnR1YWxseS4KCSAgRml4ZXMgIzU3NDE2My4KCjIwMDktMDMtMDUgMTE6MDI6NTkgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgR3N0UG9sbDogc2V0IHRoZSByZXR1cm4gdmFsdWUgb24gd2luZG93cwoJICBNYWtlIHN1cmUgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbnMgX3JlYWQvX3dyaXRlX2NvbnRyb2woKQoJICByZXR1cm4gdGhlIGFjdHVhbCByZXN1bHQgaW5zdGVhZCBvZiBhbHdheXMgRkFMU0Ugb24gd2luZG93cy4KCSAgRml4ZXMgIzU3NDIxMS4KCjIwMDktMDMtMDQgMTA6NDY6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IHVwZGF0ZSBmb3IgQ1ZTLXRvLWdpdCBtaWdyYXRpb24KCSAgRml4ZXMgIzU3Mzk0Ni4KCjIwMDktMDMtMDQgMDk6MjA6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgR3N0QWRhcHRlcjogRGlzY2FyZCBlbXB0eSBidWZmZXJzIGluIF9wdXNoKCkuIEZpeGVzICM1NzQwMjQKCjIwMDktMDMtMDMgMjA6MDE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSAgVXBkYXRlIC5naXRpZ25vcmUKCjIwMDktMDMtMDMgMTk6NTg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBiaXRzIGZvciB1bmluc3RhbGxlZCBjaGVja291dHMgb2YgZ3N0LW9wZW5tYXggYW5kIHRvdGVtCgoyMDA5LTAzLTAyIDE2OjE3OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogQWRkIGdzdF91dGlsX2FycmF5X2JpbmFyeV9zZWFyY2goKSBmb3IgYmluYXJ5IHNlYXJjaHMgb24gYSBzb3J0ZWQgYXJyYXkKCSAgVGhpcyB3aWxsIGJlIG1vc3RseSB1c2VmdWwgaW4gYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBzb21lIGtpbmQgb2YgaW50ZXJuYWwKCSAgc2Vlay9pbmRleCB0YWJsZS4gQ3VycmVudGx5IGFsbW9zdCBhbGwgb2YgdGhlbSAob3IgZXZlbiBhbGwgb2YgdGhlbSkKCSAgYXJlIHVzaW5nIGEgbGluZWFyIHNlYXJjaCBhbHRob3VnaCB0aGUgdXNlZCBhcnJheSBpcyBhbHJlYWR5IHNvcnRlZCwKCSAgd2FzdGluZyBzb21lIENQVSB0aW1lIHdpdGhvdXQgZ29vZCByZWFzb24uCgkgIEZpeGVzIGJ1ZyAjNTczNjIzLgoKMjAwOS0wMi0yOCAxMToxNToyOSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBCdW1wIGdsaWIgcmVxdWlyZW1lbnQgdG8gMi4xNAoJICBBbHNvIHJlbW92ZSBjb2RlIGNvbmRpdGlvbmFsIG9uIDwgMi4xNC4KCjIwMDktMDItMjggMTM6MzQ6MDggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBSZW1vdmUgd2luMzIvY29tbW9uL2NvbmZpZy5oLmluIGZyb20gTUFOSUZFU1QsIGl0IG5vIGxvbmdlciBleGlzdHMKCjIwMDktMDItMjcgMTM6MzU6MzUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUHJvcGVybHkgcmVzZXQgdGhlIGNhcHNmaWx0ZXIgd2hlbiBzZXR0aW5nIGNhcHMgQU5ZLgoKMjAwOS0wMi0yNyAxMjozNDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHRoZSBmcmFtZXN0ZXAgZHJhZnQKCSAgVXBkYXRlIHRoZSBkb2NzIGEgbGl0dGxlLgoJICBBZGQgcHJvcGVydHkgdG8gYWxsb3cgaW5jcmVtZW50YWwgc3RlcHBpbmcgc28gdGhhdCB3ZSBjYW4gcmVkdWNlIGV4Y2Vzc2l2ZQoJICBxdWV1ZWluZy4KCjIwMDktMDItMjYgMTU6NDA6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vdmUgbGVmdCBvdmVyIGhhbmRsaW5nIG9mIHRoZSBlcnJvciBjYXNlIHRvIHRoZSBhY3RpdmF0ZV9mYWlsZWQgbGFiZWwuCgkgIElmIHdhcyBsZWZ0IGFzIGRlYWQgY29kZS4KCjIwMDktMDItMjUgMTk6NTk6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogVXBkYXRlIHNoYXZlIGluaXQgc3RhdGVtZW50IGZvciBjaGFuZ2VzIGluIGNvbW1vbi4gQnVtcCBjb21tb24uCgoyMDA5LTAyLTI1IDEwOjUxOjU3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5IHJlZ2lzdHJ5OiBEb24ndCBhdHRlbXB0IHRvIHBhcnNlIGVtcHR5IGNhcHMKCjIwMDktMDItMjUgMTQ6MTk6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBTZXQgdHlwZWZpbmQgZmFjdG9yeSBjYXBzIHRvIE5VTEwgaW5zdGVhZCBvZiBlbXB0eSBjYXBzIGlmIHRoZXkgb3JpZ2luYWxseSB3ZXJlIE5VTEwKCjIwMDktMDItMjUgMTE6MzE6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOWNmOGM5YiB0byBhNmNlNWM2CgoyMDA5LTAyLTI0IDE1OjEwOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeWJpbmFyeTogQ2hlY2sgaWYgdHlwZWZpbmQgZmFjdG9yeSBjYXBzIGFyZSBOVUxMIGJlZm9yZSBjb3B5aW5nIHRoZW0KCjIwMDktMDItMjQgMTE6NDA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgdW5kZWNsYXJlZCBzeW1ib2xzIGZyb20gZG9jcwoJICBSZW1vdmUgc29tZSB1bmRlY2xhcmVkIHN5bWJvbHMgZnJvbSB0aGUgZG9jcy4KCjIwMDktMDItMjMgMTM6MDE6MTEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBDaGFuZ2UgaG93IHdpbjMyL2NvbW1vbi9jb25maWcuaCBpcyB1cGRhdGVkCgkgIEdlbmVyYXRlIHdpbjMyL2NvbW1vbi9jb25maWcuaC1uZXcgZGlyZWN0bHkgZnJvbSBjb25maWcuaC5pbiwKCSAgdXNpbmcgc2hlbGwgdmFyaWFibGVzIGluIGNvbmZpZ3VyZSBhbmQgc29tZSBoYXJkLWNvZGVkIGluZm9ybWF0aW9uLgoJICBDaGFuZ2UgdG9wLWxldmVsIG1ha2VmaWxlIHNvIHRoYXQgJ21ha2Ugd2luMzItdXBkYXRlJyBjb3BpZXMgdGhlCgkgIGdlbmVyYXRlZCBmaWxlIHRvIHdpbjMyL2NvbW1vbi9jb25maWcuaCwgd2hpY2ggd2Uga2VlcCBpbiBzb3VyY2UKCSAgY29udHJvbC4gIEl0J3Mga2VwdCBpbiBzb3VyY2UgY29udHJvbCBzbyB0aGF0IHRoZSBnaXQgdHJlZSBpcwoJICBidWlsZGFibGUgZnJvbSBWUy4KCjIwMDktMDItMjMgMTA6NTI6MTQgLTA4MDAgIERhdmlkIEZseW5uIDxkYXZpZGZAcmQuYmJjLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgQWRkIHNyY2RpciB0byBpbmNsdWRlcyBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMKCSAgV2hlbiB5b3UgdXNlIGdzdHJlYW1lciB1bmluc3RhbGxlZCBhbmQgYnVpbGQgb3V0c2lkZQoJICB0aGUgc291cmNlIHRyZWUsIHRoZSBpbmNsdWRlcyBuZWVkIHRvIGJlIHNwZWNpZmllZCBmb3IKCSAgYm90aCB0aGUgc291cmNlIHRyZWUgYW5kIHRoZSBidWlsZCB0cmVlLgoJICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCjIwMDktMDItMjMgMTc6MzY6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgRXJyb3Igb3V0IG1vcmUgc3BlY2lmaWNhbGx5IG9uIGVtcHR5IGNhcHMKCSAgV2hlbiB3ZSBnZXQgZW1wdHkgY2FwcyBmcm9tIHRoZSBnZXRjYXBzIGZ1bmN0aW9uIGluIHRoZSBkZWZhdWx0IG5lZ290aWF0ZQoJICBmdW5jdGlvbiwgcG9zdCBhIG1vcmUgZGVzY3JpcHRpdmUgZXJyb3IuCgoyMDA5LTAyLTIzIDE1OjI0OjAwICswMTAwICBBbmR5IFdpbmdvIDx3aW5nb0BvYmxvbmcubmV0PgoKCSAgZml4IHVyaSBoYW5kbGVyIGl0ZXJhdGlvbiBpbiBnc3QtaW5zcGVjdAoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2FsbF91cmlfaGFuZGxlcnMpOiBXaG9vcHMsIGZpeCBpdGVyYXRpb24uCgkgIEknbSBzdHVwaWQuCgoyMDA5LTAyLTIzIDEyOjMzOjEzICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgRml4IHNpZ25lZCB3aGVuIGNvbXBpbGluZyB3aXRoIE1TeXMvTWluR1cKCSAgZml4IHNpZ25lZCBpc3N1ZXMgd2hlbiBjb21waWxpbmcgd2l0aCBNU3lzL01pbkdXLgoJICBGaXhlcyAjNTcyNTkxLgoKMjAwOS0wMi0yMyAxMDo1MzoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgRG9uJ3QgZm9yd2FyZCBMQVRFTkNZIGV2ZW50IHdoZW4gbm90IHJlYWR5CgkgIFdoZW4gd2UgYXJlIG5vdCByZWFkeSB0byBoYW5kbGUgYSBsYXRlbmN5IHF1ZXJ5ICh3ZSBhcmUgbm90IHlldCBwcmVyb2xsZWQpIHdlCgkgIGFsc28gZG9uJ3QgdHJ5IHRvIGZvcndhcmQgdGhlIGxhdGVuY3kgZXZlbnQgYmVjYXVzZSB0aGF0IG1pZ2h0IGNhdXNlIHVuZXhwZWN0ZWQKCSAgZXJyb3JzIHdoZW4gdXBzdHJlYW0gaXMgbm90IHlldCBsaW5rZWQuCgoyMDA5LTAyLTIyIDIyOjA5OjM5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svY29yZToKCSAgUmVtb3ZlIGNvcmUgZmlsZSBmcm9tIHByZXZpb3VzIGNvbW1pdAoKMjAwOS0wMi0yMiAyMDowMTowNSArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svY29yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0UGFkOiBBZGQgZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luY19mdWxsCgkgIFRoaXMgYWxsb3dzIGNvbm5lY3RpbmcgYSBHRGVzdHJveU5vdGlmeSBmb3Igd2hlbiB0aGUgY2FsbGJhY2sgaXMgcmVtb3ZlZC9yZXBsYWNlZC4KCSAgUGFydGlhbGx5IGZpeGVzICM1MTQ3MTcKCjIwMDktMDItMjIgMTk6MDU6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEluY2x1ZGUgZmxvYXRpbmcgcG9pbnQgd3JpdGUvcmVhZCBmdW5jdGlvbnMgaW4gdGhlIGRvY3MgYnkgd29ya2luZyBhcm91bmQgYSBndGstZG9jIGJ1ZwoKMjAwOS0wMi0yMiAxODo1MzoxMCArMDEwMCAgQWxpIFNhYmlsIDxhbGkuc2FiaWxAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBVc2UgdGhlIGNvcnJlY3QgdW5yZWYgZnVuY3Rpb24KCjIwMDktMDItMjIgMTg6NTE6MDggKzAxMDAgIEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBDb252ZXJ0IHVucmVmL2NvcHkgZnVuY3Rpb25zIG9mIEdzdE1pbmlPYmplY3Qgc3ViY2xhc3NlcyB0byBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucwoJICB1bnJlZiBhbmQgY29weSBmdW5jdGlvbnMgYXJlIHNvbWV0aW1lcyB1c2VkIGFzIGZ1bmN0aW9uCgkgIHBvaW50ZXJzIGZvciBleGFtcGxlIGluIHRoZSBjYXNlIG9mIGdfaGFzaF90YWJsZV9uZXdfZnVsbAoJICBhcyBhIEdEZXN0cm95Tm90aWZ5IGZ1bmN0aW9uLgoJICBDdXJyZW50bHkgR3N0QnVmZmVyLCBHc3RFdmVudCwgR3N0TWVzc2FnZSBhbmQgR3N0UXVlcnkKCSAgZGVmaW5lIHRoZWlyIHJlc3BlY3RpdmUgdW5yZWYgYW5kIGNvcHkgZnVuY3Rpb25zIGFzCgkgIG1hY3JvcywgbWFraW5nIHVzZSBvZiBnc3RfbWluaV9vYmplY3RfdW5yZWYvY29weS4KCSAgVGhpcyBhcHByb2FjaCB3b3JrcyB2ZXJ5IHdlbGwgZm9yIG1vc3QgY2FzZXMsIGV4Y2VwdAoJICBmb3Igc29tZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBiaW5kaW5ncyAoY3VycmVudGx5IFZhbGEpLAoJICB3aGVyZSB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgc2VtYW50aWNzIGFyZSBkZWZpbmVkCgkgIGRlY2xhcmF0aXZlbHkuCgkgIFRoZSBwb3NzaWJsZSBzb2x1dGlvbnMgd291bGQgYmUgdG8gZWl0aGVyIGNvbnZlcnQgYWxsCgkgIHRoZSBtYWNyb3MgaW50byBzdGF0aWMgaW5saW5lIGZ1bmN0aW9uLCBvciBjaGFuZ2UgdGhlCgkgIHNpZ25hdHVyZSBvZiBnc3RfbWluaV9vYmplY3RfdW5yZWYgdG8gdGFrZSBhIHZvaWQqCgkgIGluc3RlYWQgb2YgYSBHc3RNaW5pT2JqZWN0Ki4KCSAgRml4ZXMgYnVnICM1NzI0ODAuCgoyMDA5LTAyLTIyIDE1OjIyOjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgVXNlIHNoYXZlIChodHRwOi8vZ2l0Lmxlc3BpYXUubmFtZS9jZ2l0L3NoYXZlLykgdG8gc2ltcGxpZnkgYnVpbGQgb3V0cHV0CgoyMDA5LTAyLTIyIDE1OjQ0OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVkN2M5Y2MgdG8gOWNmOGM5YgoKMjAwOS0wMi0yMSAxMToxMzozMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDgwYzYyN2QgdG8gNWQ3YzljYwoKMjAwOS0wMi0xOSAxODowNTowNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgR3N0QnVmZmVyRmxhZ3M6IEFkZCAiU2luY2U6IDAuMTAuMjMiIGZvciB0aGUgbmV3bHkgYWRkZWQgZmxhZ3MKCjIwMDktMDItMTkgMTY6MDQ6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEdzdEJ1ZmZlckZsYWdzOiBBZGQgMyBuZXcgbWVkaWEtc3BlY2lmaWMgYnVmZmVyIGZsYWdzLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzE2MzU3NwoKMjAwOS0wMi0xOSAxMjo1NzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBwcmludCBub3JtYWwgb3V0cHV0IHRvIHN0ZG91dCwgYW5kIG9ubHkgZXJyb3JzIGFuZCB3YXJuaW5ncyB0byBzdGRlcnIgaW4gZ3N0LWxhdW5jaAoJICBMZXQncyBub3QgcHJpbnQgZXZlcnl0aGluZyB0byBzdGRlcnIuIFN1cHByZXNzIHNvbWUgbW9yZSAnbm9ybWFsJyBtZXNzYWdlcyB3aGVuIC0tcXVpZXQgd2FzIHBhc3NlZC4KCjIwMDktMDItMTkgMTI6NDU6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogdXNlIGdfcHJpbnQqKCkgaW5zdGVhZCBvZiAqcHJpbnRmKCkgaW4gZ3N0LWxhdW5jaAoJICBXZSBzaG91bGQgdXNlIEdMaWIncyBnX3ByaW50KigpIGZ1bmN0aW9ucyBmb3IgcHJpbnRpbmcgc3R1ZmYgaW4gZ3N0LWxhdW5jaCwgbm90IHByaW50ZiBhbmQgZnJpZW5kcywgc2luY2Ugd2UncmUgcHJpbnRpbmcKCSAgdHJhbnNsYXRlZCBzdHJpbmdzLCB3aGljaCB3ZSBnZXQgaW4gVVRGLTggZW5jb2RpbmcsIGFuZCBHTGliJ3MgcHJpbnQgZnVuY3Rpb25zIGV4cGVjdCBVVEYtOCBlbmNvZGVkIHN0cmluZ3Mgd2hlcmVhcyBwcmludGYKCSAgZXQgYWwuIGV4cGVjdCBzdHJpbmdzIGluIHRoZSBsb2NhbGUgZW5jb2RpbmcsIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIFVURi04LgoJICBBbHNvIGFkZCBhIFBSSU5UIGNvbnZlbmllbmNlIG1hY3JvIHNvIHdlIGRvbid0IGhhdmUgdG8gbGl0dGVyIHRoZSBjb2RlIHdpdGggaWYgKCFxdWlldCkgc3RhdGVtZW50cy4KCjIwMDktMDItMTkgMTE6MTg6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3JhbmRvbS9taW1ldHlwZXM6CgkgIGRvY3M6IGZpeCBjb25zdGFudHMgZm9yIEdfTElUVExFX0VORElBTiBhbmQgR19CSUdfRU5ESUFOCgkgIFdlIGdvdCB0aGUgY29uc3RhbnRzIGZvciBHX0xJVFRMRV9FTkRJQU4gYW5kIEdfQklHX0VORElBTiB0aGUgd3Jvbmcgd2F5IGFyb3VuZCBpbiBzb21lIGRvY3MgKGZpeGVzOiAjNTcyMzkyKS4gQWxzbyBtZW50aW9uCgkgIEdfQllURV9PUkRFUiBpbiB0aGUgYXVkaW8gdHlwZXMgc2VjdGlvbi4KCjIwMDktMDItMTkgMTA6MjU6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIHRvIGRlZiBmaWxlcwoJICBBZGQgdGhlIG5ldyByZXF1ZXN0X21lc3NhZ2Ugc3ltYm9scyB0byB0aGUgd2luZG93cyBkZWYgZmlsZS4KCjIwMDktMDItMTggMTU6MzE6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBZGQgbWVzc2FnZSB0byByZXF1ZXN0IGEgc3RhdGUgY2hhbmdlCgkgIEFkZCBhIEdTVF9NRVNTQUdFX1JFUVVFU1RfU1RBVEUgdGhhdCBjYW4gYmUgcG9zdGVkIGJ5IGVsZW1lbnQgd2hlbiB0aGV5IHdvdWxkCgkgIGxpa2UgdG8gaGF2ZSB0aGUgYXBwbGljYXRpb24gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgcGlwZWxpbmUuIHRoZSBwcmltYXJ5IHVzZQoJICBjYXNlIGlzIHRvIHBhdXNlIHRoZSBwaXBlbGluZSB3aGVuIGFuIGF1ZGlvIG1peGVyIGlzIG1peGluZyBhIGhpZ2hlciBwcmlvcml0eQoJICBzdHJlYW0gYnV0IGl0IGNhbiBhbHNvIGJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzLgoJICBBZGQgc29tZSBkb2NzIGFuZCBhIHVuaXQgdGVzdC4KCSAgSW1wbGVtZW50IHRoZSBSRVFVRVNUX1NUQVRFIG1lc3NhZ2UgaW4gZ3N0LWxhdW5jaC4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZSgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfcmVxdWVzdF9zdGF0ZSgpCgkgIEFQSTogR1NUX01FU1NBR0VfUkVRVUVTVF9TVEFURQoKMjAwOS0wMi0xNiAxMjo1ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgQ2xlYXIgdGFyZ2V0IHdoZW4gdGhlIHRhcmdldCBwYWQgZGlzYXBwZWFycwoJICBXaGVuIHRoZSB0YXJnZXQgcGFkIGRpc2FwcGVhcnMgKGJlY2F1c2UgaXQgd2FzIGV4cGxpY2l0bHkgdW5saW5rZWQgb3IgdGhlCgkgIGVsZW1lbnQgd2FzIHJlbW92ZWQvdW5yZWZmZWQpIG1ha2Ugc3VyZSB3ZSByZWNlaXZlIGEgbm90aWZ5IHdpdGggdGhlIHVubGluawoJICBmdW5jdGlvbiBvbiB0aGUgcHJveHkgcGFkIGFuZCBjbGVhciB0aGUgdGFyZ2V0LiBXZSB1c2UgYSBzaW1wbGUgZmxhZyB0byBub3QgZG8KCSAgdGhpcyBhbmQgY2F1c2UgZGVhZGxvY2tzIHdoZW4gdGhlIHRhcmdldCB3YXMgY2hhbmdlZCBleHBsaWNpdGx5IHVzaW5nIHRoZQoJICBnaG9zdHBhZCBmdW5jdGlvbnMuCgkgIFVwZGF0ZSB0aGUgdW5pdCB0ZXN0IGJlY2F1c2Ugd2Ugbm93IHVucmVmIHRoZSB0YXJnZXQgc29vbmVyIChhbmQgY29ycmVjdGx5KS4KCjIwMDktMDItMTUgMTY6Mzc6MTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBkb2NzOiBmb3JtYXQgYW5kIGluZGVudCBleGFtcGxlcy4KCjIwMDktMDItMDkgMjI6NDk6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLXEvLS1xdWlldCBvcHRpb24gdG8gc3VwcmVzcyBhbnkgbm9uIGVycm9yIG91dHB1dC4KCSAgSGF2aW5nIG5vIG91dHB1dCBpcyBuaWNlIGZvciBzY3JpcHRpbmcuIEFsc28gdXBkYXRlIHRoZSBtYW5wYWdlLgoKMjAwOS0wMi0xNCAxMzozNTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkqIGRvY3MvZmFxL2dpdC54bWw6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZG9jcy9mYXEvc3RhcnQueG1sOgoJKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEZBUTogdXBkYXRlIGZvciBnaXQgYW5kIG1pc2NlbGxhbmVvdXMgc21hbGwgZml4ZXMgYW5kIGFkZGl0aW9ucwoJICBSZXBsYWNlIGFsbCBtZW50aW9ucyBvZiBDVlMgd2l0aCBnaXQuIEFkZCBsaW5rIHRvIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgaW4gY2dpdCBhbmQgdG8gU3VibWl0dGluZ1BhdGNoZXMgcGFnZSBpbiB3aWtpLiBGaXggc29tZSB0eXBvcy4gVXBkYXRlIGluZGVudGluZyBydWxlcyB0byB3aGF0IHdlIGFjdHVhbGx5IHVzZSAoIzU3MTY0NikuCgoyMDA5LTAyLTEzIDE2OjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlICoucG8gZmlsZXMgZm9yIG5ld2x5LWFkZGVkIHRyYW5zbGF0YWJsZSBzdHJpbmdzCgkgIFRoZSBvbmx5IHBlb3BsZSB3aG8gc2hvdWxkIGdldCBjb25mbGljdHMgbm93IGFyZSBwZW9wbGUgd2hvIGhhdmUgY2xvbmVkIGFuZCBidWlsdCBnc3RyZWFtZXIgYmV0d2VlbiB0aGUgdGltZSB0aG9zZSBzdHJpbmdzCgkgIHdlcmUgYWRkZWQgYW5kIHRoaXMgY29tbWl0LgoKMjAwOS0wMi0xMiAxMDozODowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBUEk6IEFkZCBIT01FUEFHRSB0YWcKCSAgVGhpcyB0YWcgd2lsbCBsaXN0IGEgaG9tZXBhZ2UgZm9yIHRoZSBtZWRpYSwKCSAgaS5lLiB0aGUgYXJ0aXN0J3Mgb3IgbW92aWUncyBob21lcGFnZS4KCSAgVGhpcyBpcyBkaWZmZXJlbnQgdG8gR1NUX1RBR19MT0NBVElPTiBhcyB0aGUgbGF0dGVyCgkgIGxpc3RzIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgbWVkaWEuCgkgIEZpeGVzIGJ1ZyAjNTcxMjI3LgoKMjAwOS0wMi0wOSAxMjowMDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQnVtcCByZXZpc2lvbiB0byB1c2UgZm9yIGNvbW1vbiBzdWJtb2R1bGUuCgoyMDA5LTAyLTA4IDEwOjI4OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgUmVwbGFjZSBzb21lIG1lbnRpb25zIG9mIENWUyBieSBHSVQKCjIwMDktMDItMDYgMTA6NTE6MjggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnkgcmVnaXN0cnk6IFJld3JpdGUgc2FuaXR5IGNoZWNrIHRvIGFjdHVhbHkgY2F0Y2ggc29tZXRoaW5nLgoJICBUaGUgcHJldmlvdXMgY29tbWl0IHdhcyBib2d1cywgYXMgd2FzIHRoZSBjaGVjayBiZWZvcmUuIFdlIGp1c3QgcG9pbnQgbSB0byB0aGUgZmlsZSBkYXRhLAoJICBzbyBuZWl0aGVyIGl0IG5vciBpdHMgbWVtYmVycyB3aWxsIGJlIE5VTEwuIEJldHRlciBjaGVjayBpZiB3ZSBoYXZlIGVub3VnaCBkYXRhLgoKMjAwOS0wMi0wNSAyMzoxMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9NYWtldmFyczoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBhdm9pZCBjb25mbGljdHMgb2YgbG9jYWwgKi5wbyBmaWxlcyB3aXRoIGZpbGVzIGluIGdpdAoJICBNYWtlIGl0IHNvIHRoYXQgZmlsZW5hbWVzIGFuZCBsaW5lIG51bWJlcnMgYXJlIG9ubHkgc3RvcmVkIGluIHRoZSAqLnBvdCBmaWxlICh3aGljaCBpcyBub3QgaW4gZ2l0KSwgYnV0IG5vdCBpbiB0aGUKCSAgaW5kaXZpZHVhbCAqLnBvIGZpbGVzLiBUaGlzIGluZm9ybWF0aW9uIGlzIGhhcmRseSB1c2VmdWwgZm9yIHRyYW5zbGF0b3JzIGluIG91ciBjYXNlLCBhbmQgaXQgc2hvdWxkIGF2b2lkIHRoZSBjb25zdGFudAoJICBjb25mbGljdHMgb2YgbG9jYWwgKi5wbyBmaWxlcyB3aXRoIHRoZSBvbmVzIGluIGdpdCB3aGljaCBhcmUgY2F1c2VkIGJ5IHRoZSBzb3VyY2UgZmlsZXMgY2hhbmdpbmcgYW5kIHRoZSBsaW5lIG51bWJlcnMKCSAgYmVpbmcgdXBkYXRlZC4KCSAgVGhpcyBjb21taXQgaXMgbGlrZWx5IHRvIGNhdXNlIG9uZSBsYXN0IG1lcmdlIGNvbmZsaWN0IGZvciB5b3UsIHdoaWNoIHlvdSBjYW4gd29yayBhcm91bmQgd2l0aCAiZ2l0IGNoZWNrb3V0IHBvLyoucG8iCgkgIGJlZm9yZSBtZXJnaW5nIG9yIHB1bGxpbmcuIEFmdGVyIHRoYXQgdGhlcmUgc2hvdWxkIChob3BlZnVsbHkpIG5vdCBiZSBhbnkgbW9yZSBsb2NhbCBtb2RpZmljYXRpb25zIG9mIHRoZXNlIGZpbGVzLgoKMjAwOS0wMi0wNSAxNToyMjo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgR3N0UG9sbCBBUEkgdG8gbGliZ3N0cmVhbWVyLmRlZgoKMjAwOS0wMi0wNSAxNzoyMzo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGNsZWFudXA6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGluIF9jbGFzc19pbml0KCkgYW5kIHJlaW5kZW50LgoKMjAwOS0wMi0wNSAxNzowNTo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHJlbW92ZSB1bnVzZWQgc2V0L2dldCBwcm9wZXJ0eSBmdW5jdGlvbnMKCjIwMDktMDItMDUgMTU6NTY6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnkgcmVnaXN0cnk6IGNvbXBhcmluZyBhcnJheXMgYWdhaW5zdCBOVUxMIGlzIHVzZWxlc3MKCjIwMDktMDItMDUgMTM6NTk6NDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSB1bnVzZWQgY29kZQoJICBTa2lwIGxvb3BpbmcgdGhydSBhIGR1bW15IGltcGxlbWVudGF0aW9uLgoKMjAwOS0wMi0wNSAxMzo1NzowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBHc3RDbG9ja1RpbWUgaXMgYWx3YXlzID49IDAKCjIwMDktMDItMDUgMTM6NDI6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMDktMDItMDQgMTc6MjA6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBjbGVhbnVwOiBFaXRoZXIgY2hlY2sgYWx3YXlzIGZvciBpbnRlcm5hbCBiZWluZyBOVUxMIG9yIGRvbid0LgoJICBJTUhPIHRoZSBnaG9zdHBhZCBpcyBib3JrZWQgaWYgaW50ZXJuYWwgaXMgTlVMTC4gU28gdGhlIGNoZWNrIGNhbiBnbyBhbmQgaXQgaXMKCSAgdXNlZCBsYXRlciB1bmNoZWNrZWQgYW55d2F5LgoKMjAwOS0wMi0wNCAxNjoyNjoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgY3Jhc2g6IERvbid0IGNyYXNoIG9uIG5vbiBleGlzdGVudCB0YWdzLgoKMjAwOS0wMi0wNCAxNjoxNzozNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGxlYWs6IERvbid0IGxlYWsgdHlwZSBuYW1lIGluIGZhaWx1cmUgY2FzZXMuCgoyMDA5LTAyLTA0IDE2OjA3OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRG9uJ3QgYXNzdW1lIGdzdF9wYWRfZ2V0X3BlZXIgcmV0dXJucyBub24gTlVMTCB2YWx1ZS4KCjIwMDktMDItMDQgMTU6NDE6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBsZWFrOiBkb24ndCByZXR1cm4gd2l0aG91dCBjYWxsaW5nIHZhX2VuZAoKMjAwOS0wMi0wMyAxODowNDo0NiArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgSW1wbGVtZW50IHRoZSBzeXN0ZW1jbG9jayB3aXRoIGdzdHBvbGwKCSAgQWRkIGEgcHJvcGVydHkgdG8gc2VsZWN0IHRoZSBjbG9jayB0eXBlLCBjdXJyZW50bHkgUkVBTFRJTUUgYW5kIE1PTk9UT05JQyB3aGVuCgkgIHBvc2l4IHRpbWVycyBhcmUgYXZhaWxhYmxlLgoJICBJbXBsZW1lbnQgdGhlIHN5c3RlbWNsb2NrIHdpdGggR3N0UG9sbCBpbnN0ZWFkIG9mIEdDb25kLiBUaGlzIGFsbG93cyB1cyB0bwoJICBzY2hlZHVsZSB0aW1lb3V0cyB3aXRoIG5hbm9zZWNvbmQgcHJlY2lzc2lvbiBvbiBuZXdlciBrZXJuZWxzIGFuZCB3aXRoIHBwb2xsCgkgIHN1cHBvcnQuIEl0J3MgYWxzbyByZXNpbGllbnQgdG8gY2hhbmdlcyB0byB0aGUgc3lzdGVtY2xvY2sgYmVjYXVzZSBvZiBOVFAgb3IKCSAgc2ltaWxhci4KCjIwMDktMDItMDMgMTc6NDk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJICBHc3RQb2xsOiBhZGQgbWV0aG9kcyB0byB1c2UgZ3N0cG9sbCBmb3IgdGltZW91dHMKCSAgQWRkIGEgc3BlY2lhbCB0aW1lciBtb2RlIGluIEdzdFBvbGwgdGhhdCBtYWtlcyBpdCBvbmx5IHVzZSB0aGUgY29udHJvbCBzb2NrZXQKCSAgd2l0aCBhIHRpbWVvdXQgdG8gc2NoZWR1bGUgdGltZW91dHMuIEFsc28gYWRkIGEgcGFpciBvZiBtZXRob2RzIHRvIHdha2V1cCB0aGUKCSAgdGltZW91dCB0aHJlYWQuCgkgIEFQSTogR3N0UG9sbDo6Z3N0X3BvbGxfbmV3X3RpbWVyKCkKCSAgQVBJOiBHc3RQb2xsOjpnc3RfcG9sbF93cml0ZV9jb250cm9sKCkKCSAgQVBJOiBHc3RQb2xsOjpnc3RfcG9sbF9yZWFkX2NvbnRyb2woKQoKMjAwOS0wMi0wMyAxNToyNzozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgR3N0QmFzZVNpbms6IHVzZSBuZXcgdmFyaWFibGUgdG8gc2NoZWR1bGUgcHJlcm9sbAoJICBVc2UgYSBzZXBhcmF0ZSB2YXJpYWJsZSB0byBrZWVwIHRyYWNrIGlmIHdlIG5lZWQgdG8gY2FsbCB0aGUgcHJlcm9sbCBtZXRob2QKCSAgaW5zdGVhZCBvZiBhYnVzaW5nIHRoZSBjb21taXRlZCB2YXJpYWJsZS4KCjIwMDktMDItMDMgMTI6NTI6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIEdzdEJhc2VTaW5rOiBhdm9pZCBjYWxsaW5nIHByZXJvbGwgbXVsdGlwbGUgdGltZXMKCSAgRml4IGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IGZpeCBmb3IgIzU2NzcyNSBpbiBjb21taXQKCSAgMWM3YWI0ZWQ0ZjE5YjYzYmEwNDZhNmYyZmU3ZDA5YTZjMTczNTdjNS4gV2Ugc2hvdWxkIG9ubHkgY2FsbCB0aGUgcHJlcm9sbAoJICBmdW5jdGlvbiBvbmNlIG5hbWVseSB3aGVuIHdlIGRpZCBub3QgeWV0IGNvbW1pdCB0aGUgc3RhdGUgY2hhbmdlLgoJICBBZGQgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCB3ZSBjYWxsIHRoZSBwcmVyb2xsIGZ1bmN0aW9uIHdoZW4gaW50ZXJydXB0aW5nIHRoZQoJICBjbG9ja193YWl0IChzZWUgIzU2NzcyNSkuCgkgIEFkZCBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHdlIG9ubHkgY2FsbCB0aGUgcHJlcm9sbCBmdW5jdGlvbiBvbmNlLgoKMjAwOS0wMS0yOSAxMzozMDo0NSArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGb3JjZSByZWNvbmZpZ3VyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlY2hlY2sgYWxsb2MgcmVxdWVzdAoJICBXaGlsZSByZWNvbmZpZ3VyaW5nIGEgYmFzZXRyYW5zZm9ybSBlbGVtZW50IHdlIG5lZWQgYWxzbyB0byByZWNoZWNrCgkgIHRoZSBhbGxvYyByZXF1ZXN0LiBCZWNhdXNlIGl0J3MgcG9zc2libGUgdGhhdCBkdWUgdG8gY2FwcyBjaGFuZ2VzCgkgIHRoZSBwcm94eV9hbGxvYyBzdGF0ZSBpcyBub3QgY29ycmVjdCBhbnltb3JlLgoJICAoUmUtY29tbWl0IGFmdGVyIGRpc2N1c2lvbiB3aXRoIFdpbSBvbiBJUkMpCgoyMDA5LTAyLTAyIDE0OjE5OjU3ICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBnc3RyZWdpc3RyeWJpbmFyeTogTWFrZSBpdCBjb21waWxlIHdpdGggR1NUX0RJU0FCTEVfR1NUX0RFQlVHLgoKMjAwOS0wMS0zMSAyMTozNDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvdG1wbC8uZ2l0aWdub3JlOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC8uZ2l0aWdub3JlOgoJICByZXBvOiBSZWFycmFuZ2UgZ2l0aWdub3JlcyBpbiBkb2NzIHN1YmRpcgoJICB0bXBsIGRpcmVjdG9yaWVzIGFyZSByZW1vdmVkIGJ5IG1ha2UgY2xlYW4sIHdoaWNoIGRlbGV0ZXMgdGhlCgkgIC5naXRpZ25vcmUuIFVzZSBhIC5naXRpZ25vcmUgaGlnaGVyIHVwIHRvIGlnbm9yZSB0aGUgdG1wbCBkaXJzIGluc3RlYWQuCgoyMDA5LTAxLTMxIDIxOjMyOjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIGNoZWNrOiBGaXggY29tbWVudCBhYm91dCB0aGUgdGltZW91dCBmb3IgZ2VuZXJpYyBzdHJlc3MgdGVzdC4KCSAgU2V0dGluZyB0aGUgdGltZW91dCB0byAwIG1ha2VzIGl0IGluZmluaXRlLCBzbyBmaXggdGhlIGNvbW1lbnQKCSAgYWJvdmUgYWNjb3JkaW5nbHkuCgoyMDA5LTAxLTMxIDIxOjMxOjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgY2hlY2s6IEluY3JlYXNlIHRpbWVvdXQgZm9yIHRoZSB0ZWUgdGVzdAoJICBUaGUgdGVlIHN0cmVzcyB0ZXN0IGtlZXBzIHRpbWluZyBvdXQgZm9yIG1lIG9uIG9uZSBvZiB0aGUgc2xvd2VyCgkgIG1hY2hpbmVzLCBzbyBpbmNyZWFzZSB0aGUgdGltZW91dCB0byAzIG1pbnMuCgoyMDA5LTAxLTMwIDE0OjU2OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIFVwZGF0ZSB0aGUgd2luMzIgY29uZmlnLmguaW4gdGVtcGxhdGUgZnJvbSB0aGUgbWFpbiBjb25maWcuaC5pbgoKMjAwOS0wMS0zMCAyMjoxODoxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgQWRkIHJlbGVhc2VpbmZvIHdpdGggb25saW5lIHVybC4KCjIwMDktMDEtMzAgMTg6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGludGVyZmFjZS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIFJlbW92ZSBicm9rZW4gY2xhc3MgdG8gaW50ZXJmYWNlIGNhc3QgbWFjcm9zIGZyb20gR3N0VXJpSGFuZGxlciBhbmQgR3N0SW1wbGVtZW50c0ludGVyZmFjZSBoZWFkZXJzCgkgIFJlbW92ZSBjbGFzcy10by1pbnRlcmZhY2Utc3RydWN0IGNhc3QgbWFjcm9zIHdoaWNoIGRvbid0IHdvcmssCgkgIGRvbid0IG1ha2Ugc2Vuc2UsIGFuZCBpbiBzb21lIGNhc2VzIHdvdWxkbid0IGV2ZW4gY29tcGlsZSBpZgoJICB1c2VkLiBSZW1vdmFsIHNob3VsZCBiZSBvayBzZWVpbmcgdGhhdCBjb2RlIHdoaWNoIHVzZXMgYW55IG9mCgkgIHRoZXNlIGlzIGJyb2tlbiBhbmQgYm91bmQgdG8gY3Jhc2guIEZpeGVzICM1NjU2MDcuCgkgIEFQSTogcmVtb3ZlIEdTVF9JTVBMRU1FTlRTX0lOVEVSRkFDRV9DTEFTUwoJICBBUEk6IHJlbW92ZSBHU1RfSVNfSU1QTEVNRU5UU19JTlRFUkZBQ0VfQ0xBU1MKCSAgQVBJOiByZW1vdmUgR1NUX1VSSV9IQU5ETEVSX0NMQVNTCgoyMDA5LTAxLTMwIDE2OjI4OjE0ICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGRvY3MvZ3N0L3RtcGwvLmdpdGlnbm9yZToKCSAgUmVtb3ZlIGdpdGlnbm9yZSBpbiBkb2NzL2dzdC90bXBsLgoJICBUaGlzIGdpdGlnbm9yZSBmaWxlIHNlZW1zIHRvIGdldCBkZWxldGVkIGJ5IHRoZSBidWlsZCwgYW5kIGRvZXNuJ3QKCSAgc2VlbSB0byBiZSBkb2luZyBhbnl0aGluZyB1c2VmdWwgYW55d2F5LgoKMjAwOS0wMS0zMCAxNjoyMTo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIEJ1bXAgY29tbW9uCgoyMDA5LTAxLTMwIDE0OjU5OjA3ICswMDAwICBKYW4gU2NobWlkdCAtIFN1biBNaWNyb3N5c3RlbXMgLSBEdWJsaW4gSXJlbGFuZCA8anMyMTI0MTlAZmxhaWwuKG5vbmUpPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIHdpdGggRm9ydGUuCgoyMDA5LTAxLTMwIDEwOjQzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiQ2hlY2sgc3VnZ2VzdGVkIGNhcHMgZm9yIHByb3h5IGFsbG9jIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDUwYWZkNDU5NTc5MTkxNzcyZjQyZDFhNDRmMzk1OWU1MzBjNWMyNjkuCgkgIEl0IGJyZWFrcyB0aGUgaW50ZXJhY3RpdmUgdGVzdC1zY2FsZSB1bml0IHRlc3QuCgoyMDA5LTAxLTMwIDEwOjQyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiRm9yY2UgcmVjb25maWd1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZWNoZWNrIGFsbG9jIHJlcXVlc3QiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgM2E0NjAyZDc3MTlkZTNjM2VmN2FlY2U2OGI1Zjk0ODlkMDc4MDE2Mi4KCSAgSXQgYnJlYWtzIHRoZSBpbnRlcmFjdGl2ZSB0ZXN0LXNjYWxlIHVuaXQgdGVzdC4KCjIwMDktMDEtMzAgMTA6Mjk6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEFsbG9jYXRlIGV2ZXJ5dGhpbmcgdGhhdCBpcyB3cml0dGVuIHRvIHRoZSByZWdpc3RyeSB3aXRoIGdfbWFsbG9jMCgpCgkgIEFsbG9jYXRlIGV2ZXJ5IHN0cnVjdHVyZSB0aGF0IGlzIGRpcmVjdGx5IHdyaXR0ZW4gdG8gdGhlIGJpbmFyeQoJICByZWdpc3RyeSB3aXRoIGdfbWFsbG9jMCgpLiBPdGhlcndpc2Ugc29tZSBwYXJ0cyBvZiBpdCB3aWxsIGJlCgkgIHVuaW5pdGlhbGl6ZWQgKHN0cnVjdCBwYWRkaW5nIGJlY2F1c2Ugb2YgYWxpZ25tZW50LCBldGMpIGFuZAoJICB2YWxncmluZCB3aWxsIGNvbXBsYWluIGFib3V0IGl0LgoKMjAwOS0wMS0zMCAwODozMDoyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgVXNlIGEgc3ltYm9saWMgbGluayBmb3IgdGhlIHByZS1jb21taXQgY2xpZW50LXNpZGUgaG9vawoKMjAwOS0wMS0yOSAxNTo0OToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIE1ha2Ugc3VyZSB0byB0YWtlIGEgY29weSBvZiB0aGUgc3RyaW5ncyB3ZSdyZSBnb2luZyB0byBmcmVlIGxhdGVyLgoKMjAwOS0wMS0yNiAxNzoxNToxNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBBZGQgbG9nZ2luZyBpbiBmYWlsdXJlIGNhc2UuIEFkZCBtb3JlIGRldGFpbHMgdG8gYSB0b2RvIGNvbW1lbnQuCgoyMDA5LTAxLTI2IDE3OjE0OjA3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2luaXQuYzoKCSAgQWRkIGEgdHJpdmlhbCBzb3VyY2UgZm9yIHRyYWNraW5nIGdzdF9pbml0IHRpbWUgYWNjcm9zcyB2ZXJzaW9ucy4KCjIwMDktMDEtMjYgMTc6MTM6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZGQgdG9kbyBjb21tZW50cy4KCjIwMDktMDEtMjkgMTM6Mzk6MjkgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgQ2hlY2sgc3VnZ2VzdGVkIGNhcHMgZm9yIHByb3h5IGFsbG9jCgkgIEJlY2F1c2Ugd2UgYXJlIHRyeWluZyB0byByZXNvbHZlIGEgc3VnZ2VzdGlvbiBoZXJlIHdlIGRvbid0IG5lZWQKCSAgdG8gY2hlY2sgb24gY2FwcyBmb3IgcHJveHlfYWxsb2MgYnV0IHdlIG5lZWQgdG8gY2hlY2sgb24gdGhlIHN1Z2dlc3RlZAoJICBjYXBzIGluc3RlYWQuCgoyMDA5LTAxLTI5IDEzOjMwOjQ1ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZvcmNlIHJlY29uZmlndXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVjaGVjayBhbGxvYyByZXF1ZXN0CgkgIFdoaWxlIHJlY29uZmlndXJpbmcgYSBiYXNldHJhbnNmb3JtIGVsZW1lbnQgd2UgbmVlZCBhbHNvIHRvIHJlY2hlY2sKCSAgdGhlIGFsbG9jIHJlcXVlc3QuIEJlY2F1c2UgaXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBjYXBzIGNoYW5nZXMKCSAgdGhlIHByb3h5X2FsbG9jIHN0YXRlIGlzIG5vdCBjb3JyZWN0IGFueW1vcmUuCgoyMDA5LTAxLTI3IDIzOjE0OjQ5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgSW1wcm92ZSB0aGUgZG9jcyBmb3IgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKS4KCSAgSXRzIG1lbnRpb25lZCBpbiB0aGUgc2VjdGlvbiBkb2NzLCBidXQgbGV0cyByZXBlYXQgYXQgdGhlIGZ1bmN0aW9uIGRvY3MgdGhhdCB0aGUgY2FsbGJhY2sgY2FuIGJlIGludm9rZWQgZnJvbSBhbnkgdGhyZWFkLgoKMjAwOS0wMS0yNyAxNzo1MzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkb24ndCB1c2UgRVJST1JfQ0ZMQUdTIHdoZW4gYnVpbGRpbmcgJGRvY21vZHVsZS1zY2FuLmMKCSAgV2UgZG9uJ3Qgd2FudCB0byB1c2UgLVdhbGwgLVdlcnJvciBhbmQgZnJpZW5kcyB3aGVuIGJ1aWxkaW5nIHRoZSBndGstZG9jLWdlbmVyYXRlZAoJICAkZG9jbW9kdWxlLXNjYW4uYywgc2luY2Ugd2UgY2FuJ3QgZWFzaWx5IGZpeCBzdHVmZiBpZiBhIGNlcnRhaW4gZ3RrLWRvYy9jb21waWxlcgoJICBjb21iaW5hdGlvbiBicmVha3MgdGhlIGJ1aWxkLiBGaXhlcyBidWlsZCBvbiB1YnVudHUgaW50cmVwaWQuCgoyMDA5LTAxLTI3IDE3OjUyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIE1ha2UgZ2l0IGlnbm9yZSBiYWNrdXAgZmlsZXMuCgoyMDA5LTAxLTI2IDIxOjI5OjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBEb24ndCBjaGVjayB0aW1lc3RhbXAgaGVyZSwgaXRzIGRvbmUgaW4gdGhlIGNhbGxlZCBmdW5jdGlvbiBhbnl3YXkuCgoyMDA5LTAxLTI2IDEyOjUyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgQXZvaWQgdW5uZWVkZWQgcmVhZHMgZnJvbSB0aGUgY29udHJvbCBzb2NrZXQKCSAgQWRkIGEgbmV3IHZhcmlhYmxlIHRoYXQga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXR1cyBvZiB0aGUgY29udHJvbCBzb2NrZXQuIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGF2b2lkIGRvaW5nIGEgcmVhZCgpIG9uIHRoZSBjb250cm9sIHNvY2tldCB3aGVuIHdlIGRpZCBub3Qgd3JpdGUKCSAgYW55dGhpbmcgdG8gaXQuCgkgIEZpeGVzICM1Njg0MzguCgoyMDA5LTAxLTI1IDIyOjE3OjMxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG1vcmUgZGVidWcgbG9nZ2luZyBmb3IgZmFpbHVyZSBjYXNlcy4KCjIwMDktMDEtMjUgMjI6MTE6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgRG9jdW1lbnQgdGhhdCBHU1RfUExVR0lOX0RFRklORSBtYWNyb3MgdXNlIFBBQ0tBR0UgZGVmaW5lLiBGaXhlcyAjNTU5NzIyLgoJICBQQUNLQUdFIGlzIGRlZmluZWQgYnkgYXV0b2Zvby4gSWYgcGVvcGxlIHVzZSBzb21ldGhpbmcgZGlmZmVyZW50LCB0aGV5IG1pZ2h0IHdhbnQgdG8gZGVmaW5lIGl0IHRoZW1zZWxmLgoKMjAwOS0wMS0yNSAxNzo1ODo1MiArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGaXggdHlwbwoKMjAwOS0wMS0yNCAyMTo1MDowOCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIE9ubHkgZnJlZSBsaXN0IG9mIGJ1ZmZlcnMgb25jZQoKMjAwOS0wMS0yNCAxNDozNzoxNCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGRvY3MvUkVBRE1FOgoJICBGaXggdHlwbwoKMjAwOS0wMS0yMyAyMzowODowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vLmdpdGlnbm9yZToKCSAgSWdub3JlIGFub3RoZXIgZmlsZQoKMjAwOS0wMS0yMyAyMTo0NDoxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGQgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2V4dGVuc2lvbiB0byB0aGUgd2luMzIgZGVmcyBmaWxlCgoyMDA5LTAxLTIzIDE2OjA5OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFVwZGF0ZSB3aW4zMiBjb25maWcuaCBmb3IgMC4xMC4yMi4xIGRldiBjeWNsZS4uLgoKMjAwOS0wMS0yMyAxNjowODowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzLy5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy90bXBsLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvbmV0Ly5naXRpZ25vcmU6CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBVcGRhdGUgYSBidW5jaCBvZiBnaXRpZ25vcmVzIHRvIGNsZWFuIHVwIG15IGdpdCBzdGF0dXMgb3V0cHV0CgoyMDA5LTAxLTIzIDA5OjU0OjUzICswMTAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgRml4IGxpbmtpbmcgZmFpbHVyZXMgb24gU29sYXJpcy4gRml4ZXMgYnVnICM1Njg0ODEuCgkgIExpbmsgbGliZ3N0cmVhbWVyIHdpdGggJChMSUJNKSBhcyBpdCB1c2VzIG1hdGggZnVuY3Rpb25zLgoJICBBZGQgYSBjb25maWd1cmUgY2hlY2sgZm9yIHNvY2tldCBhbmQgbnNsIGxpYnJhcnkgYW5kIGFkZAoJICB0aGVtIHRvIExJQlMgaWYgdGhleSdyZSBmb3VuZC4gVGhpcyBpcyBuZWVkZWQgb24gU29sYXJpcwoJICBmb3Igc29ja2V0KCkgYW5kIGdldGhvc3RieW5hbWUoKS4KCjIwMDktMDEtMjIgMTg6MDI6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBzbmFwc2hvdC4KCjIwMDktMDEtMjIgMTM6NTg6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBJbXByb3ZlIGRlYnVnIG91dHB1dCBieSBsb2dnaW5nIHRoZSBvZmZzZXRzLiBGaXhlcyBidWcgIzU2ODY3OC4KCSAgSW4gY3JlYXRlKCkgYWxzbyBsb2cgdGhlIG9mZnNldHMgYW5kIG5vdCBvbmx5IHRoZQoJICBidWZmZXIgc2l6ZS4KCjIwMDktMDEtMjIgMTM6NTE6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbW1vbjoKCSAgRml4IHByZS1jb21taXQgaG9vawoKMjAwOS0wMS0yMiAxMjo1Mjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDA5LTAxLTIyIDExOjU0OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIERvYyBmb3IgbmV3IHR5cGVmaW5kIG1ldGhvZC4KCjIwMDktMDEtMjIgMTA6NDU6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIyLjEKCjIwMDktMDEtMjIgMTA6MTY6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAwOS0wMS0yMiAwNTozNTowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgSW5zdGFsbCBhbmQgdXNlIHByZS1jb21taXQgaW5kZW50YXRpb24gaG9vayBmcm9tIGNvbW1vbgoKMjAwOS0wMS0yMSAxMjo1MDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIElmIG5vIHR5cGUgd2FzIGZvdW5kIHVzaW5nIHRoZSB0eXBlZmluZCBmdW5jdGlvbnMsIHRyeSBkb2luZyBhbiB1cHN0cmVhbSBVUkkgcXVlcnkgdG8gZ3Vlc3MgdGhlIHR5cGUgZnJvbSB0aGUgZXh0ZW5zaW9uLiBTZWUgIzU2NjY2MS4KCjIwMDktMDEtMjEgMTI6NDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgQWRkIG5ldyB0eXBlZmluZyBoZWxwZXIgZnVuY3Rpb24gdG8gZ3Vlc3MgdGhlIGNhcHMgYmFzZWQgb24gdGhlIGZpbGUgZXh0ZW5zaW9uLiBTZWUgIzU2NjY2MS4gQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfZXh0ZW5zaW9uKCkKCjIwMDktMDEtMjEgMTI6NDU6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBBbGxvdyBhZGRpbmcgYSB0eXBlZmluZGVyIHdpdGhvdXQgYSB0eXBlZmluZCBmdW5jdGlvbiBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIHRvIG1hcCB0aGUgY2FwcyB0byB0aGUgZXh0ZW5zaW9uLiBTZWUgIzU2NjY2MS4KCjIwMDktMDEtMjEgMTI6NDM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFVwZGF0ZSB0aGUgbGFzdF9idWZmZXIgZXhhY3RseSB3aXRoIHRoZSBidWZmZXIgdGhhdCBjYXVzZWQgdGhlIHByZXJvbGwgYW5kIGFsc28gY2FsbCB0aGUgcHJlcm9sbCBtZXRob2Qgd2l0aCB0aGF0IHByZXJvbGwgYnVmZmVyLiBGaXhlcyAjNTY3NzI1LgoKMjAwOS0wMS0yMSAxMjoyMTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZG8gbm90IGNhbGwgdGhlIHVubGluayBmdW5jdGlvbiBvbiB0aGUgdGFyZ2V0IHBhZCB3aGVuIHRoZSBnaG9zdHBhZCBpcyB1bmxpbmtlZC4gQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhpcyBiZWhhdmlvdXIuIEZpeGVzICM1NjY5MzYuCgoyMDA5LTAxLTIxIDA0OjI5OjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaCA6IFVzZSBnaXQgc3VibW9kdWxlCgo9PT0gcmVsZWFzZSAwLjEwLjIyID09PQoKMjAwOS0wMS0xOSAyMjo1ODo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL0xJTkdVQVM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjIyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMjIKCjIwMDktMDEtMTkgMjE6MjA6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDEtMTcgMjE6MDQ6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBvcmRlciBvZiBtZW1iZXJzIGluIEdzdEJ1c1NvdXJjZSBzdHJ1Y3R1cmUgLSB0aGUgZmlyc3QgbWVtYmVyIG11c3QgYmUgdGhlIHBhcmVudCBzdHJ1Y3R1cmUgaWUuIEdTb3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfbWFpbl9jb250ZXh0KSwgKGdzdF9idXNfY3JlYXRlX3dhdGNoKToKCSAgRml4IG9yZGVyIG9mIG1lbWJlcnMgaW4gR3N0QnVzU291cmNlIHN0cnVjdHVyZSAtIHRoZSBmaXJzdCBtZW1iZXIKCSAgbXVzdCBiZSB0aGUgcGFyZW50IHN0cnVjdHVyZSBpZS4gR1NvdXJjZS4gU2hvdWxkIG1ha2UgYnVzIHNvdXJjZXMKCSAgYXR0YWNoZWQgdG8gbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyB3b3JrIGluIGFsbCBjYXNlcyBub3cgKGllLgoJICBwcmltYXJpbHkgaW4gY2FzZXMgd2hlcmUgdGhlIGNhbGxiYWNrIGhhcyBhIG5vbi1OVUxMIHVzZXIgZGF0YQoJICBhcmd1bWVudCkuIEZpeGVzICM1NjIxNzAuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAodGVzdF9jdXN0b21fbWFpbl9jb250ZXh0KToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLCBiYXNlZCBvbiBjb2RlIGJ5CgkgIEp1c3RpbiBLYXJuZWdlcyA8anVzdGluIGF0IGFmZmluaXggY29tPi4KCjIwMDktMDEtMTUgMTA6MDQ6MzcgKzAwMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkgIGdzdC9nc3RwYWQuaDogQSBzbWFsbCBkb2N1bWVudGF0aW9uIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb25hcyBIb2xtYmVyZyA8am9uYXMgZG90IGhvbG1iZXJnIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEEgc21hbGwgZG9jdW1lbnRhdGlvbiBmaXguCgoyMDA5LTAxLTExIDA5OjQ2OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogSW5pdGlhbGl6ZSBnX29uY2VfaW5pdCogZGF0YSB3aXRoIDAuIEZpeGVzIGJ1ZyAjNTY3MjI1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW5pdGlhbGl6ZSBnX29uY2VfaW5pdCogZGF0YSB3aXRoIDAuIEZpeGVzIGJ1ZyAjNTY3MjI1LgoKMjAwOS0wMS0wOSAyMzozNzoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHByZS1yZWxlYXNlIDAuMTAuMjEuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHByZS1yZWxlYXNlIDAuMTAuMjEuMwoKMjAwOS0wMS0wOSAxNTo0MzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogRml4IGRvY3VtZW50YXRpb24gZm9yIHRoZSB3YWl0X2Nsb2NrIG1ldGhvZCwgcmVuYW1lIGJhc2VzaW5rIC0+IHNpbmsgZm9yIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgRml4IGRvY3VtZW50YXRpb24gZm9yIHRoZSB3YWl0X2Nsb2NrIG1ldGhvZCwgcmVuYW1lIGJhc2VzaW5rIC0+IHNpbmsKCSAgZm9yIGNvbnNpc3RlbmN5LgoKMjAwOS0wMS0wOCAxMzo0MToxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5jOiBDcmVhdGUgYSByZWdpc3RyeSBpZiB0aGVyZSBpcyBub25lIGFsc28gd2hlbiB0aGUgb3B0aW9uIGZvciBnc3QtZGlzYWJsZS1yZWdpc3RyeS11cGRhdGUgaGFzIGJlZW4gc2VsZWN0ZWQuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQ3JlYXRlIGEgcmVnaXN0cnkgaWYgdGhlcmUgaXMgbm9uZSBhbHNvIHdoZW4gdGhlIG9wdGlvbiBmb3IKCSAgZ3N0LWRpc2FibGUtcmVnaXN0cnktdXBkYXRlIGhhcyBiZWVuIHNlbGVjdGVkLiBGaXhlcyAjNTY3MDAyCgoyMDA5LTAxLTA2IDE4OjEwOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBSZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgUmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCByZWNlbnRseS1hZGRlZCBBUEkuCgoyMDA5LTAxLTA2IDE3OjU4OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEFQSSBmb3IgbWFraW5nIGEgR1N0cmVhbWVyIHBsdWdpbiAnZGVwZW5kZW50JyBvbiBleHRlcm5hbCBmaWxlcywgZGlyZWN0b3JpZXMgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBzbyB0aGF0IEdTLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6OgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoR3N0UGx1Z2luRGVwKSwgKF9Hc3RQbHVnaW5Qcml2YXRlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2luaXQpLCAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2NsYXNzX2luaXQpLCAoZ3N0X3BsdWdpbl9saXN0X2ZyZWUpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2dldF9lbnZfdmFyc19oYXNoKSwKCSAgKF9wcml2X3BsdWdpbl9kZXBzX2Vudl92YXJzX2NoYW5nZWQpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2V4dHJhY3RfZW52X3ZhcnNfcGF0aHMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2dldF9oYXNoX2Zyb21fc3RhdF9lbnRyeSksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZGlyZW50cnlfbWF0Y2hlcyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfc2Nhbl9kaXJfYW5kX21hdGNoX25hbWVzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zY2FuX3BhdGhfd2l0aF9maWxlbmFtZXMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2dldF9zdGF0X2hhc2gpLAoJICAoX3ByaXZfcGx1Z2luX2RlcHNfZmlsZXNfY2hhbmdlZCksIChnc3RfcGx1Z2luX2V4dF9kZXBfZnJlZSksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfc3Rydl9lcXVhbCksIChnc3RfcGx1Z2luX2V4dF9kZXBfZXF1YWxzKSwKCSAgKGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3kpLCAoZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeV9zaW1wbGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdzdFBsdWdpblByaXZhdGUpLCAoR3N0UGx1Z2luRmxhZ3MpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfTk9ORSksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19SRUNVUlNFKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX1BBVEhTX0FSRV9ERUZBVUxUX09OTFkpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfRklMRV9OQU1FX0lTX1NVRkZJWCksCgkgIChHc3RQbHVnaW5EZXBlbmRlbmN5RmxhZ3MpLCAoR3N0UGx1Z2luRmlsdGVyKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbl9kZXApLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luX2RlcF9zdHJ2KSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW5fZGVwKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOiAoR1NUX01BR0lDX0JJTkFSWV9WRVJTSU9OX1NUUiksCgkgIChHc3RCaW5hcnlQbHVnaW5FbGVtZW50KSwgKF9Hc3RCaW5hcnlEZXApLCAoR3N0QmluYXJ5RGVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wbHVnaW4pOgoJICBBZGQgQVBJIGZvciBtYWtpbmcgYSBHU3RyZWFtZXIgcGx1Z2luICdkZXBlbmRlbnQnIG9uIGV4dGVybmFsIGZpbGVzLAoJICBkaXJlY3RvcmllcyBvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHRoYXQgR1N0cmVhbWVyIGtub3dzIHdoZW4KCSAgaXQgbmVlZHMgdG8gcmUtbG9hZCBHU3RyZWFtZXIgcGx1Z2lucyB0aGF0IHdyYXAgb3RoZXIgcGx1Z2luIHN5c3RlbXMuCgkgIEZpeGVzIGJ1ZyAjMzUwNDc3LgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5KCkKCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeV9zaW1wbGUoKQoKMjAwOS0wMS0wNiAxMzowMDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGxpYmdzdGFwcC0wLjEwIGZyb20gLWJhc2UgdG8gc2VhcmNoIHBhdGggYW5kIHJlbW92ZSB0aGUgb2xkIGxpYiBmcm9tIC1iYWQgZnJvbSB0aGUgc2Vhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBsaWJnc3RhcHAtMC4xMCBmcm9tIC1iYXNlIHRvIHNlYXJjaCBwYXRoIGFuZCByZW1vdmUgdGhlIG9sZAoJICBsaWIgZnJvbSAtYmFkIGZyb20gdGhlIHNlYXJjaCBwYXRoLgoKMjAwOS0wMS0wNSAxNTo0Mjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIGNhbGxpbmcgdGhlIHF1ZXJ5IGNvbnZlcnQgcGFkIGZ1bmN0aW9ucyB0byBhdm9pZCBkZWFkbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIGNhbGxpbmcgdGhlIHF1ZXJ5IGNvbnZlcnQgcGFkIGZ1bmN0aW9ucwoJICB0byBhdm9pZCBkZWFkbG9ja3MuCgoyMDA5LTAxLTA1IDE1OjQxOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBUaGUgbG9jayBvcmRlciBzaG91bGQgYmUgbWFpbmNvbnRleHQgPiBPQkpFQ1RfTE9DSyBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIHdoZW4gd2FraW5nIHVwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfd2FrZXVwX21haW5fY29udGV4dCk6CgkgIFRoZSBsb2NrIG9yZGVyIHNob3VsZCBiZSBtYWluY29udGV4dCA+IE9CSkVDVF9MT0NLIHNvIHdlIG5lZWQgdG8gcmVsZWFzZQoJICB0aGUgb2JqZWN0IGxvY2sgd2hlbiB3YWtpbmcgdXAgdGhlIG1haW5sb29wIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCjIwMDktMDEtMDUgMTA6MTQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSBhbiBpdGVyYXRvciB0byBzZXQgdGhlIGNsb2NrIGFuZCB0aGUgaW5kZXggc28gdGhhdCB3ZSBjYW4gcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYXBwcm9wcmlhdGVseS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZXRfaW5kZXhfZnVuYyksIChnc3RfYmluX3NldF9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBVc2UgYW4gaXRlcmF0b3IgdG8gc2V0IHRoZSBjbG9jayBhbmQgdGhlIGluZGV4IHNvIHRoYXQgd2UgY2FuIHJlbGVhc2UKCSAgdGhlIG9iamVjdCBsb2NrIGFwcHJvcHJpYXRlbHkuIEZpeGVzICM1NjYzOTMuCgoyMDA5LTAxLTAzIDE4OjM5OjM4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVc2UgdGhlIG5hbWUgb2YgdGhlIHBhZHMgaW5zdGVhZCBvZiBhIHBvaW50ZXIsIGhlbHBzIGluIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpOgoJICBVc2UgdGhlIG5hbWUgb2YgdGhlIHBhZHMgaW5zdGVhZCBvZiBhIHBvaW50ZXIsIGhlbHBzIGluIGRlYnVnZ2luZy4KCjIwMDktMDEtMDMgMTg6MTY6NTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0aW5kZXguYzogQWRkIGEgZGVidWdnaW5nIGNhdGVnb3J5IGZvciBHc3RJbmRleCwgZmlyc3QgbGl0dGxlIHN0ZXAgaW4gbWFraW5nIGluZGV4aW5nIHRvcC1ub3RjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZ2V0X3R5cGUpOgoJICBBZGQgYSBkZWJ1Z2dpbmcgY2F0ZWdvcnkgZm9yIEdzdEluZGV4LCBmaXJzdCBsaXR0bGUgc3RlcCBpbiBtYWtpbmcKCSAgaW5kZXhpbmcgdG9wLW5vdGNoLgoKMjAwOS0wMS0wMyAxODoxMDowOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IEFzc2lnbiBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIHJlbGV2YW50IGNhdGVnb3JpZXMgaW5zdGVhZCBvZiB0aGUgJ2RlZmF1bHQnIGNhdGVnb3J5IHNvIHRoZXkgZG9uJ3QgZ2V0IGxvc3QgaW4gZGVidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcHJveHlfZ2V0Y2FwcyksIChnc3RfcGFkX3Byb3h5X3NldGNhcHMpLAoJICAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlX2Z1bGwpLAoJICAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICBBc3NpZ24gZGVidWcgc3RhdGVtZW50cyB0byByZWxldmFudCBjYXRlZ29yaWVzIGluc3RlYWQgb2YgdGhlICdkZWZhdWx0JwoJICBjYXRlZ29yeSBzbyB0aGV5IGRvbid0IGdldCBsb3N0IGluIGRlYnVnZ2luZy4KCjIwMDktMDEtMDEgMjE6Mjc6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEFkZCBzb21lIGlkZWFzLCBob3cgdG8gbWFrZSB0aGUgZ3JhcGggc21hbGxlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgQWRkIHNvbWUgaWRlYXMsIGhvdyB0byBtYWtlIHRoZSBncmFwaCBzbWFsbGVyLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgYSBjb21tZW50IGZyb20gYSBkZWJ1ZyBzZXNzaW9uLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBMb2cgbW9yZSBjb250ZXh0LgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgSW5kZXQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgoyMDA4LTEyLTI3IDE3OjQxOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBNYWtlIEdzdEJ1c1NvdXJjZSB3b3JrIHdpdGggbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyAoIzU2MjE3MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYnVzX3dha2V1cF9tYWluX2NvbnRleHQpLCAoZ3N0X2J1c19zZXRfbWFpbl9jb250ZXh0KSwKCSAgKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKToKCSAgTWFrZSBHc3RCdXNTb3VyY2Ugd29yayB3aXRoIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgKCM1NjIxNzApLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKG1lc3NhZ2VfZnVuY19lb3MpLCAobWVzc2FnZV9mdW5jX2FwcCksCgkgICh0ZXN0X3dhdGNoKSwgKHRlc3Rfd2F0Y2hfd2l0aF9jdXN0b21fY29udGV4dCksIChnc3RfYnVzX3N1aXRlKToKCSAgQWRkIHRlc3QgY2FzZSBmb3IgR3N0QnVzU291cmNlIHdpdGggYSBub24tZGVmYXVsdCBtYWluIGNvbnRleHQuCgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDgtMTItMjcgMTY6MjM6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogV3JhcCBtdWx0aS1saW5lIG1hY3JvcyBpbiBHX1NUTVRfe1NUQVJUfEVORH0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAodW5wYWNrX2VsZW1lbnQpLCAodW5wYWNrX2NvbnN0X3N0cmluZyksCgkgICh1bnBhY2tfc3RyaW5nKTo6CgkgIFdyYXAgbXVsdGktbGluZSBtYWNyb3MgaW4gR19TVE1UX3tTVEFSVHxFTkR9LgoKMjAwOC0xMi0yMCAxNzozMzo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgVVJJIHF1ZXJ5IHR5cGUuIFRoaXMgaXMgdXNlZnVsIHRvIHF1ZXJ5IHRoZSBVUkkgb2YgYSBzaW5rL3NvdXJjZSBlbGVtZW50IGFuZCBjYW4gYmUgdXNlZCBieSBkZW11eGVycyB0aGF0IG5lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHF1YXJrLmM6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3VyaSksIChnc3RfcXVlcnlfc2V0X3VyaSksCgkgIChnc3RfcXVlcnlfcGFyc2VfdXJpKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQVBJOiBBZGQgVVJJIHF1ZXJ5IHR5cGUuIFRoaXMgaXMgdXNlZnVsIHRvIHF1ZXJ5IHRoZSBVUkkKCSAgb2YgYSBzaW5rL3NvdXJjZSBlbGVtZW50IGFuZCBjYW4gYmUgdXNlZCBieSBkZW11eGVycyB0aGF0CgkgIG5lZWQgdG8gZ2V0IGRhdGEgZnJvbSBvdGhlciBmaWxlcy4KCSAgVGhpcyBxdWVyeSBzaG91bGQgZ28gdXBzdHJlYW0gYnkgZGVmYXVsdC4KCSAgRml4ZXMgYnVnICM1NjI5NDkuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfcXVlcnkpOgoJICBJbXBsZW1lbnQgVVJJIHF1ZXJ5LgoKMjAwOC0xMi0xOSAxNToxMTowNiArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJICBEb24ndCBmb3J3YXJkIGdzdF9wYWRfc2V0X2NhcHMoKSBvbiBhIHNvdXJjZSBnaG9zdHBhZCB0byBpdHMgdGFyZ2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgRG9uJ3QgZm9yd2FyZCBnc3RfcGFkX3NldF9jYXBzKCkgb24gYSBzb3VyY2UgZ2hvc3RwYWQgdG8gaXRzIHRhcmdldC4KCSAgVGhhdCB3b3VsZCBjYXVzZSB0aGUgZ2hvc3RwYWQgdG8gZW1pdCBub3RpZnk6OmNhcHMgdHdvIHRpbWVzIChmaXN0CgkgIGZyb20gZ3N0X3BhZF9zZXRfY2FwcygpIGFuZCBhZnRlciBmcm9tIG9uX3NyY190YXJnZXRfbm90aWZ5KCkpLgoKMjAwOC0xMi0xOSAxMToyNDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGQgc29tZSBtb3JlIHVuaXQtdGVzdHMgZm9yIHRoZSBnaG9zdHBhZCBub3RpZnkgc2lnbmFsLCBvbmUgb2Ygd2hpY2ggY3VycmVudGx5IGZhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKGdob3N0X25vdGlmeV9jYXBzKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgbW9yZSB1bml0LXRlc3RzIGZvciB0aGUgZ2hvc3RwYWQgbm90aWZ5IHNpZ25hbCwgb25lIG9mIHdoaWNoCgkgIGN1cnJlbnRseSBmYWlscy4KCjIwMDgtMTItMTkgMDk6NDQ6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncyB0byB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF90YWdfc2V0dGVyX3Jlc2V0X3RhZ3MgdG8gdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scy4KCjIwMDgtMTItMTcgMTY6MTY6NDUgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSAgSW4gYSBzb3VyY2UgZ2hvc3RwYWQsIHdoZW4gY2FwcyBhcmUgY2hhbmdlZCBpbiB0aGUgdGFyZ2V0IHBhZCwgdGhlIGNoYW5nZSBuZWVkcyB0byBiZSByZWZsZWN0ZWQgaW4gdGhlIGdob3N0cGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgSW4gYSBzb3VyY2UgZ2hvc3RwYWQsIHdoZW4gY2FwcyBhcmUgY2hhbmdlZCBpbiB0aGUgdGFyZ2V0IHBhZCwgdGhlCgkgIGNoYW5nZSBuZWVkcyB0byBiZSByZWZsZWN0ZWQgaW4gdGhlIGdob3N0cGFkLgoJICBGaXhlcyAjNTY0ODYzLgoKMjAwOC0xMi0xNyAwOTozNzo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZCBGSVhNRSBmb3IgMC4xMSB0byBzZXQgdGhlIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBhbmQgbm90IHRoZSBlbGVtZW50LiBPdGhlcndpc2UgaXQncyBpbXBvc3NpYmxlIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKToKCSAgQWRkIEZJWE1FIGZvciAwLjExIHRvIHNldCB0aGUgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGFuZCBub3QKCSAgdGhlIGVsZW1lbnQuIE90aGVyd2lzZSBpdCdzIGltcG9zc2libGUgdG8gZGV0ZWN0IGZvciB3aGljaAoJICBwYWQgdGhlIHRhZ3Mgd2VyZSBmb3VuZCB3aXRob3V0IGFkZGluZyBhbiBldmVudCBwcm9iZQoJICBvciBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgcGFkLgoKMjAwOC0xMi0xNiAyMTozMzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZmFxL2dlbmVyYWwueG1sOiBVcGRhdGUgdGhlIGZhcS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgIFVwZGF0ZSB0aGUgZmFxLgoKMjAwOC0xMi0xNiAxNTo1MTo1MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmVuYW1lIGFwaSBhZGRlZCBpbiBwcmV2aW91cyBjb21taXQgYW5kIGFkZCBzaW5jZSB0YWcgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBSZW5hbWUgYXBpIGFkZGVkIGluIHByZXZpb3VzIGNvbW1pdCBhbmQgYWRkIHNpbmNlIHRhZyB0byBkb2NzLgoJICBBUEk6IGdzdF90YWdfc2V0dGVyX3Jlc2V0X3RhZ3MoKQoKMjAwOC0xMi0xNiAxNDowNTo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGZ1bmN0aW9uIHRvIHJlc2V0IHRhZ3NldHRlciBmb3IgZWxlbWVudCByZXVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBBZGQgZnVuY3Rpb24gdG8gcmVzZXQgdGFnc2V0dGVyIGZvciBlbGVtZW50IHJldXNlLgoJICBBUEk6IGdzdF90YWdfc2V0dGVyX2ZsdXNoKCkKCjIwMDgtMTItMTYgMDk6Mzc6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEF2b2lkIGNvcHkgb2YgZW1wdHkgdGFnbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgQXZvaWQgY29weSBvZiBlbXB0eSB0YWdsaXN0LgoKMjAwOC0xMi0xNiAwOToyMzoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBjb21wbGV0ZSB1bml0IHRlc3RzLiBGaXggaGFuZGxpbmcgb2YgZW1wdHkgdGFnbGlzdHMgKHRoZXkgd2VyZSBub3QgbWVyZ2VkIGJlZm9yZSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBNb3JlIGNvbXBsZXRlIHVuaXQgdGVzdHMuIEZpeCBoYW5kbGluZyBvZiBlbXB0eSB0YWdsaXN0cyAodGhleSB3ZXJlCgkgIG5vdCBtZXJnZWQgYmVmb3JlKS4KCjIwMDgtMTItMTYgMDc6MDc6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFVwZGF0ZSBHc3RUYWdTZXR0ZXIgYW5kIEdzdFRhZ01lcmdlTW9kZSBkb2N1bWVudGF0aW9uLiBNZW50aW9uIHRoYXQgdGFncyBjYW4gY29tZSBmcm9tIGV2ZW50cyBhbmQgZnJvbSBhcHBsaWNhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgVXBkYXRlIEdzdFRhZ1NldHRlciBhbmQgR3N0VGFnTWVyZ2VNb2RlIGRvY3VtZW50YXRpb24uIE1lbnRpb24KCSAgdGhhdCB0YWdzIGNhbiBjb21lIGZyb20gZXZlbnRzIGFuZCBmcm9tIGFwcGxpY2F0aW9uLiBGaXggZXhhbXBsZS4KCjIwMDgtMTItMTUgMTU6Mjc6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBSZW1vdmUgdGhlIHNlcW51bSBlbnRyeSB0aGF0IHdlIGltcGxlbWVudGVkIGluIDAuMTAgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgUmVtb3ZlIHRoZSBzZXFudW0gZW50cnkgdGhhdCB3ZSBpbXBsZW1lbnRlZCBpbiAwLjEwIGFscmVhZHkuCgkgIEFkZCBlbnRyeSBhYm91dCByZW1vdmluZyB0aGUgZm9ybWF0IHJldHVybiB2YWx1ZSBmb3IgcXVlcmllcy4KCjIwMDgtMTItMTUgMTI6NDc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEV4cG9zZSB0aGUgcmVuZGVyLWRlbGF5IGFzIGEgcHJvcGVydHkgc28gdGhpbmdzIGxpa2UgYXBwc2luayBjYW4gdXNlIGl0IHRvIHR3ZWFrIHRoZSBzeW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSk6CgkgIEV4cG9zZSB0aGUgcmVuZGVyLWRlbGF5IGFzIGEgcHJvcGVydHkgc28gdGhpbmdzIGxpa2UgYXBwc2luayBjYW4gdXNlIGl0CgkgIHRvIHR3ZWFrIHRoZSBzeW5jaHJvbmlzYXRpb24uCgoyMDA4LTEyLTEwIDE1OjE5OjQ1ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEFsbG93IGNoZWNrIHRlc3RzIHRvIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBBbGxvdyBjaGVjayB0ZXN0cyB0byB1c2UKCSAgTUFJTl9TVEFSVF9USFJFQURTKCkvTUFJTl9TVE9QX1RIUkVBRFMoKSBtdWx0aXBsZSB0aW1lcy4gQWxzbyBhbGxvd3MKCSAgQ0tfRk9SSz1ubyB0byBiZSB1c2VkIHdpdGggbXVsdGlwbGUgY2hlY2sgdGVzdCB0aGF0IHVzZSB0aHJlYWRzLgoKMjAwOC0xMi0wOSAxNjoyMzo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBhIGNhcHMgbWVtb3J5IGxlYWsgaW50cm9kdWNlZCBieSB0aGUgbGFzdCBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKToKCSAgRml4IGEgY2FwcyBtZW1vcnkgbGVhayBpbnRyb2R1Y2VkIGJ5IHRoZSBsYXN0IGNoYW5nZS4KCjIwMDgtMTItMDkgMTU6NDU6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiB0aGUgY2FwcyBvZiB0aGUgcGFkcyBhcmUgY29tcGF0aWJsZSBiZWZvcmUgcmV0dXJuaW5nIGEgcGFkIGFuZCBjbGFpbWluZyBpdCBpcyBjb21wYXRpYmxlLiBUaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCk6CgkgIENoZWNrIGlmIHRoZSBjYXBzIG9mIHRoZSBwYWRzIGFyZSBjb21wYXRpYmxlIGJlZm9yZSByZXR1cm5pbmcKCSAgYSBwYWQgYW5kIGNsYWltaW5nIGl0IGlzIGNvbXBhdGlibGUuIFRoaXMsIGFtb25nIG90aGVyIHRoaW5ncywKCSAgZml4ZXMgYSBidWcgd2l0aCBnc3QtbGF1bmNoIHdoZXJlIGFuIGluY29tcGF0aWJsZSBwYWQgaXMgY2hvc2VuCgkgIGFuZCBsaW5raW5nIGZhaWxzLiBGaXhlcyBidWcgIzU0NDAwMy4KCjIwMDgtMTItMDkgMTQ6NDY6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IFJldmVydCBhY2NpZGVudGlhbGx5IGNvbW1pdGVkIHBhdGNoIGZvciBidWcgIzQwNDYzMSB3aGljaCB0cmllcyB0byBwcmludCBhIGJhY2t0cmFjZSBpZiBhIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2luaXQpOgoJICBSZXZlcnQgYWNjaWRlbnRpYWxseSBjb21taXRlZCBwYXRjaCBmb3IgYnVnICM0MDQ2MzEgd2hpY2gKCSAgdHJpZXMgdG8gcHJpbnQgYSBiYWNrdHJhY2UgaWYgYSB0ZXN0Y2FzZSBpcyB0ZXJtaW5hdGVkIGJ5CgkgIGEgc2lnbmFsLiBUaGlzIGNvZGUgd2FzIG5ldmVyIGFjdGl2YXRlZCBhcyB0aGUgY29ycmVzcG9uZGluZwoJICBjb25maWd1cmUuYWMgY2hhbmdlIHdhc24ndCBjb21taXR0ZWQuCgoyMDA4LTEyLTA5IDEwOjU4OjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogVGhpcyB0ZXN0IHNob3VsZCByZXR1cm4gVFJVRSBub3cgYXMgc3luY2luZyBhbiB1bmNvbnRyb2xsZWQgb2JqZWN0IHdpbGwgc3VjY2VlZCBub3cgKHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFRoaXMgdGVzdCBzaG91bGQgcmV0dXJuIFRSVUUgbm93IGFzIHN5bmNpbmcgYW4gdW5jb250cm9sbGVkCgkgIG9iamVjdCB3aWxsIHN1Y2NlZWQgbm93ICh0aGVyZSdzIG5vdGhpbmcgdG8gc3luYykuCgoyMDA4LTEyLTA5IDA5OjU2OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQWdncmVnYXRlIHJldHVybiB2YWx1ZSBmb3IgZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMoKS4gTW9yZSBpbmZvIGluIGxvZ2dpbmcuIEEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFnZ3JlZ2F0ZSByZXR1cm4gdmFsdWUgZm9yIGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKCkuIE1vcmUgaW5mbyBpbgoJICBsb2dnaW5nLiBBbHdheXMgc2V0IHZhbHVlcyBvbiBmaXJzdCBzeW5jLWNhbGwuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6CgkgIE1pY3Jvb3B0aW1pemF0aW9ucy4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBGaXggcmV0dXJuIGNvZGUgYW5kIGNvbW1lbnQuCgoyMDA4LTEyLTA5IDA5OjAwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEZpeCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gc3BlY2lmeSBhIHR5cGUgaW4gY2Fwcy4gRml4ZXMgIzU1Mzg3My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBGaXggZGVzY3JpcHRpb24gb2YgaG93IHRvIHNwZWNpZnkgYSB0eXBlIGluIGNhcHMuIEZpeGVzICM1NTM4NzMuCgkgIEFsc28gcmFuZ2VzIGFuZCBsaXN0IGNvbnRhaW4gdmFsdWVzIGFuZCBub3QgcHJvcGVydHktYXNzaWdubWVudHMuCgoyMDA4LTEyLTA4IDIyOjI4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQ2hlY2sgZm9yIGNoYW5nZWQgcGFkcy1saXN0IGJlZm9yZSBjaGVja2luZyB0aGUgbGFzdCByZXR1cm5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgQ2hlY2sgZm9yIGNoYW5nZWQgcGFkcy1saXN0IGJlZm9yZSBjaGVja2luZyB0aGUgbGFzdCByZXR1cm5lZAoJICBHc3RGbG93UmV0dXJuIGJlY2F1c2UgdGhlIHBhZCBjb3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBhbmQgd2UKCSAgbmVlZCB0byBpZ25vcmUgdGhlIHZhbHVlIGluIHRoYXQgY2FzZS4KCjIwMDgtMTItMDggMTg6MzU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogQWRkIHZtZXRob2QgdGhhdCBpcyBjYWxsZWQgYmVmb3JlIHdlIHN0YXJ0IHRoZSB0cmFuc2Zvcm0gYW5kIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBZGQgdm1ldGhvZCB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgd2Ugc3RhcnQgdGhlIHRyYW5zZm9ybSBhbmQgd2hpY2ggY2FuCgkgIGJlIHVzZWQgdG8gY29uZmlndXJlIHRoZSB0cmFuc2Zvcm0sIHN1Y2ggYXMgZHluYW1pYyBwcm9wZXJ0aWVzLgoKMjAwOC0xMi0wNSAyMDozMjowMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0LmM6IFNlYXJjaCBmb3IgcGx1Z2lucyBvbiB3aW4zMiBiYXNlZCBvbiB0aGUgbG9jYXRpb24gb2YgdGhlIGdzdHJlYW1lciBETEwuICBGaXhlcyAjNTQ4Nzg2CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgU2VhcmNoIGZvciBwbHVnaW5zIG9uIHdpbjMyIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUKCSAgZ3N0cmVhbWVyIERMTC4gIEZpeGVzICM1NDg3ODYKCjIwMDgtMTItMDQgMjA6MTA6NDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQXBwYXJlbnRseSBBQ19DT05GSUdfTUFDUk9fRElSIGJyZWFrcyB3aGVuIHVzaW5nIG1vcmUgdGhhbiBvbmUgbWFjcm8gZGlyZWN0b3J5LCByZXZlcnRpbmcgbGFzdCBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQXBwYXJlbnRseSBBQ19DT05GSUdfTUFDUk9fRElSIGJyZWFrcyB3aGVuIHVzaW5nIG1vcmUKCSAgdGhhbiBvbmUgbWFjcm8gZGlyZWN0b3J5LCByZXZlcnRpbmcgbGFzdCBjaGFuZ2UuCgoyMDA4LTEyLTA0IDE5OjQ1OjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IFNldCBBQ19DT05GSUdfTUFDUk9fRElSIHRvIGNvbW1vbi9tNCB0byBwb2ludCBhdXRvY29uZiB0byBvdXIgTTQgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFNldCBBQ19DT05GSUdfTUFDUk9fRElSIHRvIGNvbW1vbi9tNCB0byBwb2ludCBhdXRvY29uZiB0bwoJICBvdXIgTTQgbWFjcm9zLgoKMjAwOC0xMS0yOSAxMzoyOToxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmVxdWlyZSBnZXR0ZXh0IDAuMTcgYmVjYXVzZSBvbGRlciB2ZXJzaW9ucyBkb24ndCBtaXggd2l0aCBsaWJ0b29sIDIuMi4gQXQgYnVpbGQgdGltZSBhbiBvbGRlciBnZXR0ZXh0IHZlcnNpb24gd2lsbCBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQ3lnd2luIFBvcnRzIG1haW50YWluZXIKCSAgPHlzZWxrb3dpdHogYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlIGRvdCBuZXQ+CgkgICogYXV0b2dlbi5zaDoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgZ2V0dGV4dCAwLjE3IGJlY2F1c2Ugb2xkZXIgdmVyc2lvbnMgZG9uJ3QgbWl4IHdpdGggbGlidG9vbAoJICAyLjIuIEF0IGJ1aWxkIHRpbWUgYW4gb2xkZXIgZ2V0dGV4dCB2ZXJzaW9uIHdpbGwgc3RpbGwgd29yay4KCSAgRml4ZXMgYnVnICM1NTYwOTEuCgoyMDA4LTExLTI3IDExOjEyOjMwICswMDAwICDsnbTrrLjtmJUgPGl3aW5nc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC5jOiBBZGRzIHN1cHBvcnQgZm9yIEZEX0NPTk5FQ1QgZXZlbnQgKHdpbjMyKS4gU2VlICM1NjIyNTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTog7J2066y47ZiVIDxpd2luZ3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwgKGdzdF9wb2xsX2ZkX2hhc19lcnJvcik6CgkgIEFkZHMgc3VwcG9ydCBmb3IgRkRfQ09OTkVDVCBldmVudCAod2luMzIpLiBTZWUgIzU2MjI1OC4KCjIwMDgtMTEtMjQgMjA6MDI6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVHVybiBjb21tZW50IGludG8gZ3RrLWRvYyBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFR1cm4gY29tbWVudCBpbnRvIGd0ay1kb2MgY29tbWVudC4KCjIwMDgtMTEtMjQgMTU6Mjc6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmV2ZXJ0IHF1aWNrIGFjY2VwY2FwcyBhdHRlbXB0LCBpdCdzIG5vdCBmdWxseSBlcXVpdmFsZW50IHRvIHRoZSBvbGQgYmVoYXZpb3VyIGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2Fwcyk6CgkgIFJldmVydCBxdWljayBhY2NlcGNhcHMgYXR0ZW1wdCwgaXQncyBub3QgZnVsbHkgZXF1aXZhbGVudCB0byB0aGUgb2xkCgkgIGJlaGF2aW91ciBhbmQgdGh1cyBjYXVzZXMgcmVncmVzc2lvbnMuCgoyMDA4LTExLTI0IDExOjU2OjQ0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IEZpeCBtZW1vcnkgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBGaXggbWVtb3J5IGxlYWsuCgoyMDA4LTExLTI0IDA5OjU5OjA3ICswMDAwICBTaW1vbiBIb2xtIFRow7hnZXJzZW4gPG9kaWVAY3MuYWF1LmRrPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIHN0YXQoKSBjYWxscyBmb3IgZXZlcnkgZmlsZSBmcm9tIHRocmVlIHRpbWVzIHRvIG9uZSB0aW1lLiBGaXhlcyBidWcgIzU2MDM2MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTaW1vbiBIb2xtIFRow7hnZXJzZW4gPG9kaWUgYXQgY3MgZG90IGFhdSBkb3QgZGs+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUmVkdWNlIHRoZSBudW1iZXIgb2Ygc3RhdCgpIGNhbGxzIGZvciBldmVyeSBmaWxlIGZyb20gdGhyZWUgdGltZXMKCSAgdG8gb25lIHRpbWUuIEZpeGVzIGJ1ZyAjNTYwMzYwLgoKMjAwOC0xMS0yMiAxNTowOToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZW5hbWUgYSB2YXJpYWJsZSB0byBtYWtlIHRoZSBjb2RlIGNsZWFyZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMpOgoJICBSZW5hbWUgYSB2YXJpYWJsZSB0byBtYWtlIHRoZSBjb2RlIGNsZWFyZXIuCgoyMDA4LTExLTIxIDIwOjU3OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IERvbid0IHdhcm5pbmcgb24gb2Zmc2V0PT0tMS4gVGFrZW4gZnJvbSBfY2hlY2tfaW1wZXJmZWN0X29mZnNldCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIERvbid0IHdhcm5pbmcgb24gb2Zmc2V0PT0tMS4gVGFrZW4gZnJvbSBfY2hlY2tfaW1wZXJmZWN0X29mZnNldCgpLgoKMjAwOC0xMS0yMSAxODoyNjoxNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IENoZWNrIGZvciBsb2NhbGhvc3QgaW4gVVJJIHdhcyBiYWNrd2FyZHMsIGZpeCBpdC4gRml4ZXMgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgQ2hlY2sgZm9yIGxvY2FsaG9zdCBpbiBVUkkgd2FzIGJhY2t3YXJkcywgZml4IGl0LiBGaXhlcyB1bml0IHRlc3QuCgoyMDA4LTExLTIxIDE3OjE0OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFkZCBiZWdpbm5pbmdzIG9mIGEgbW9yZSBvcHRpbWl6ZWQgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0aGFuIHRoZSBkZWZhdWx0IGNvcmUgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5kX3RyYW5zZm9ybSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpOgoJICBBZGQgYmVnaW5uaW5ncyBvZiBhIG1vcmUgb3B0aW1pemVkIGFjY2VwdGNhcHMgZnVuY3Rpb24gdGhhbiB0aGUgZGVmYXVsdAoJICBjb3JlIG9uZS4KCjIwMDgtMTEtMjEgMTY6NDg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEF2b2lkIGdldHRpbmcgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gdG9vIGVhcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKToKCSAgQXZvaWQgZ2V0dGluZyB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0b28gZWFybHkuCgoyMDA4LTExLTIxIDA4OjA5OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNYWtlIGdzdC1sYXVuY2ggaGFuZGxlIExBVEVOQ1kgbWVzc2FnZXMgYW5kIG1ha2UgaXQgcmVjYWxjdWxhdGUgdGhlIGxhdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNYWtlIGdzdC1sYXVuY2ggaGFuZGxlIExBVEVOQ1kgbWVzc2FnZXMgYW5kIG1ha2UgaXQgcmVjYWxjdWxhdGUgdGhlCgkgIGxhdGVuY3kuCgoyMDA4LTExLTIwIDIxOjA1OjE0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogVXNlIGdfZmlsZW5hbWVfZnJvbV91cmkoKSBmb3IgVVJJIHBhcnNpbmcgaW4gZmlsZXNyYyByYXRoZXIgdGhhbiByb2xsaW5nIG91dCBvd24gc2xpZ2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIFVzZSBnX2ZpbGVuYW1lX2Zyb21fdXJpKCkgZm9yIFVSSSBwYXJzaW5nIGluIGZpbGVzcmMgcmF0aGVyIHRoYW4gcm9sbGluZwoJICBvdXQgb3duIHNsaWdodGx5IGluY29ycmVjdCB2ZXJzaW9uLiBGaXhlcyB1c2Ugb2Ygc29tZSBwYXRocyBvbgoJICB3aW4zMi4KCjIwMDgtMTEtMjAgMjA6NDQ6NTYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbiB3aW4zMiBjb2RlcGF0aCwgaWYgd2UgZmFpbCB0byB3cml0ZSB0aGUgcmVnaXN0cnksIGNyZWF0ZSB0aGUgZGlyZWN0b3J5IGZvciBpdCBhbmQgdHJ5IGFnYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgSW4gd2luMzIgY29kZXBhdGgsIGlmIHdlIGZhaWwgdG8gd3JpdGUgdGhlIHJlZ2lzdHJ5LCBjcmVhdGUgdGhlCgkgIGRpcmVjdG9yeSBmb3IgaXQgYW5kIHRyeSBhZ2FpbiwgbWF0Y2hpbmcgdGhlIGJlaGF2aW91ciBpbiBub24td2luMzIKCSAgY29kZXBhdGhzLgoKMjAwOC0xMS0yMCAxNDoyMzowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQ2hhbmdpbmcgdGhlIHJlbmRlciBkZWxheSBjaGFuZ2VzIHRoZSBsYXRlbmN5IGFuZCBzbyB3ZSBtdXN0IHBvc3QgYSBsYXRlbmN5IG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X3JlbmRlcl9kZWxheSk6CgkgIENoYW5naW5nIHRoZSByZW5kZXIgZGVsYXkgY2hhbmdlcyB0aGUgbGF0ZW5jeSBhbmQgc28gd2UgbXVzdCBwb3N0IGEKCSAgbGF0ZW5jeSBtZXNzYWdlLgoKMjAwOC0xMS0yMCAxMDozNTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS4qOiBBZGQgR3N0UXVlcnlUeXBlIGZvciBjdXN0b20gcXVlcmllcyBpbnN0ZWFkIG9mIGhhdmluZyB0byB1c2UgdGhlIG5vdC1zby12ZXJ5LWNvbnZlbmllbnQgcmVnaXN0cmF0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIEdzdFF1ZXJ5VHlwZSBmb3IgY3VzdG9tIHF1ZXJpZXMgaW5zdGVhZCBvZiBoYXZpbmcgdG8gdXNlIHRoZQoJICBub3Qtc28tdmVyeS1jb252ZW5pZW50IHJlZ2lzdHJhdGlvbiBpbmZyYXN0cnVjdHVyZSB0byByZWdpc3RlciBuZXcKCSAgdHlwZXMuCgoyMDA4LTExLTE5IDEyOjIwOjAzICswMDAwICBBbmRyZXcgRmVyZW4gPGFjZmVyZW5AeWFob28uY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBVbnJlZiB0aGUgR0VudW1DbGFzcyBhZnRlciB1c2FnZSBhZ2Fpbi4gRml4ZXMgYnVnICM1NjE1MDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQW5kcmV3IEZlcmVuIDxhY2ZlcmVuIGF0IHlhaG9vIGRvdCBjb20+CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kZWZhdWx0X2RlZXBfbm90aWZ5KToKCSAgVW5yZWYgdGhlIEdFbnVtQ2xhc3MgYWZ0ZXIgdXNhZ2UgYWdhaW4uIEZpeGVzIGJ1ZyAjNTYxNTAxLgoKMjAwOC0xMS0xOSAxMjowNjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogQWRkIGRvLWxhdGVuY3kgc2lnbmFsIHdpdGggdGhlIG9sZCBkZWZhdWx0IGZhbGxiYWNrIGltcGxlbWVudGF0aW9uLiBUaGlzIGFsbG93cyBmb3IgY3VzdG9tIGxhdGVuY3kgY2FsYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChfZ3N0X2Jvb2xlYW5fYWNjdW11bGF0b3IpLCAoZ3N0X2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9iaW5fcmVjYWxjdWxhdGVfbGF0ZW5jeSksIChnc3RfYmluX2RvX2xhdGVuY3lfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEFkZCBkby1sYXRlbmN5IHNpZ25hbCB3aXRoIHRoZSBvbGQgZGVmYXVsdCBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbi4gVGhpcwoJICBhbGxvd3MgZm9yIGN1c3RvbSBsYXRlbmN5IGNhbGN1bGF0aW9ucyBmb3Igd2hlbiB0aGUgZGVmYXVsdCBpcyBub3QKCSAgc3VmZmljaWVudC4KCSAgQVBJOiBHc3RCaW46OmRvLWxhdGVuY3kgc2lnbmFsLgoKMjAwOC0xMS0xOCAxMzozNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IHN5bWJvbHMgdG8gLmRlZiBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIHRvIC5kZWYgZmlsZS4KCjIwMDgtMTEtMTggMDk6NTg6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIHJlY2FsY3VsYXRlIGFuZCByZWRpc3RyaWJ1dGUgdGhlIGxhdGVuY3kgb24gYSBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgQWRkIG1ldGhvZCB0byByZWNhbGN1bGF0ZSBhbmQgcmVkaXN0cmlidXRlIHRoZSBsYXRlbmN5IG9uIGEgYmluLgoJICBBUEk6IGdzdF9iaW5fcmVjYWxjdWxhdGVfbGF0ZW5jeSgpLgoKMjAwOC0xMS0xOCAwOTo1Mjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogRG9jdW1lbnQgdGhlIGZyZWVfZnVuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBEb2N1bWVudCB0aGUgZnJlZV9mdW5jLgoKMjAwOC0xMS0xNyAyMTo0MzowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGluc3RlYWQgb2YgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlIGFzIGl0IGlzIG1hcHBlZCB0byBhIGNhc3Qgb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBpbnN0ZWFkIG9mIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZQoJICBhcyBpdCBpcyBtYXBwZWQgdG8gYSBjYXN0IG9uIG5vbi13aW4zMiBwbGF0Zm9ybXMuCgoyMDA4LTExLTE3IDIxOjQxOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogS2VlcCBsYXN0LXZhbHVlIGFuZCBvbmx5IGNhbGwgc2V0X3Byb3BlcnR5IGlmIHZhbHVlIGhhcyBjaGFuZ2VkLiBUaGlzIHN1cHJlc3NlcyBhbGwgdGhlIGdfb2JqZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICBLZWVwIGxhc3QtdmFsdWUgYW5kIG9ubHkgY2FsbCBzZXRfcHJvcGVydHkgaWYgdmFsdWUgaGFzIGNoYW5nZWQuIFRoaXMKCSAgc3VwcmVzc2VzIGFsbCB0aGUgZ19vYmplY3Rfbm90aWZpZXMgd2Ugd291bGQgdHJpZ2dlciBvdGhlcndpc2UuIEl0CgkgIGFsc28gYWxsb3dzIHRoZSB1c2VyIHRvIGNoYWdlIHRoZSB2YWx1ZSB3aGlsZSB0aGVyZSBpcyBubyBjb250cm9sbGVyCgkgIGNoYW5nZS4KCjIwMDgtMTEtMTcgMjE6MjU6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBEb24ndCBjcmFzaCBpZiBlaXRoZXIgb2YgdGhlIHN0cmluZyBHVmFsdWVzIGlzIGVtcHR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9uJ3QgY3Jhc2ggaWYgZWl0aGVyIG9mIHRoZSBzdHJpbmcgR1ZhbHVlcyBpcyBlbXB0eS4KCjIwMDgtMTEtMTcgMTU6NDg6MTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2FsbF91cmlfaGFuZGxlcnMpOiBOZXcgZnVuY3Rpb24sIHByaW50cyBhIHN1bW1hcnkgb2Ygd2hhdCBVUkkgc2NoZW1lcyBhcmUgc3VwcG9ydGVkIGJ5IHdoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9hbGxfdXJpX2hhbmRsZXJzKTogTmV3IGZ1bmN0aW9uLAoJICBwcmludHMgYSBzdW1tYXJ5IG9mIHdoYXQgVVJJIHNjaGVtZXMgYXJlIHN1cHBvcnRlZCBieSB3aGF0CgkgIGVsZW1lbnRzLgoJICAobWFpbik6IFBsdW1iIGluIHN1cHBvcnQgZm9yIC0tdXJpLWhhbmRsZXJzIG9yIC11LCBhbmQgZml4IHRoZQoJICBhcmdjIGNoZWNrIGZvciAtYSBhbmQgLXUuCgoyMDA4LTExLTE3IDA0OjQ5OjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIEdfR05VQ19QVVJFIHRvIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSogYW5kIHRoZSBkb3VibGU8LT51aW50NjQgY29udmVyc2lvbiBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgR19HTlVDX1BVUkUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlKiBhbmQgdGhlIGRvdWJsZTwtPnVpbnQ2NAoJICBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KCjIwMDgtMTEtMTMgMTg6MDk6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEF2b2lkIGNvc3RseSB0eXBlY2hlY2tpbmcgZm9yIHRyaXZpYWxseSBjb3JyZWN0IHBvaW50ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgQXZvaWQgY29zdGx5IHR5cGVjaGVja2luZyBmb3IgdHJpdmlhbGx5IGNvcnJlY3QgcG9pbnRlcnMuCgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX3dhaXQpOgoJICBBZGQgc29tZSBHX0xJS0VMWSBoZXJlIGFuZCB0aGVyZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3B1c2gpOgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvLgoKMjAwOC0xMS0xMyAxODowNTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OiBTbWFsbCB0d2Vha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OgoJICBTbWFsbCB0d2Vha3MuCgoyMDA4LTExLTEzIDE4OjAzOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvb2xkL3Rlc3RzdWl0ZS86IFJlbW92ZSByZWZlcmVuY2VzIHRvIGRlcHJlY2F0ZWQgQVBJIGdfbWVtX2NodW5rKi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOiAobWFpbik6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vbG9hZGluZy5jOiAobWFpbik6CgkgIFJlbW92ZSByZWZlcmVuY2VzIHRvIGRlcHJlY2F0ZWQgQVBJIGdfbWVtX2NodW5rKi4KCSAgRml4ZXMgIzU2MDQ0Mi4KCjIwMDgtMTEtMTIgMTY6NTU6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgLS1wbHVnaW4gb3B0aW9uLiBGaXhlcyAjNTYwMzAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgIEFkZCAtLXBsdWdpbiBvcHRpb24uIEZpeGVzICM1NjAzMDEuCgoyMDA4LTExLTEyIDEyOjQ1OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6IFF1aWNrIGJyYWluZHVtcCBmb3IgYSBwb3NzaWJsZSAobm90IHRvdGFsbHkgdmVyaWZpZWQpIGF0b21pYyBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDoKCSAgUXVpY2sgYnJhaW5kdW1wIGZvciBhIHBvc3NpYmxlIChub3QgdG90YWxseSB2ZXJpZmllZCkgYXRvbWljIGNhc2UuCgoyMDA4LTExLTEyIDEwOjM5OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogRG9uJ3Qgd3JpdGUgYW5kIGNoZWNrIGEgQ1JDIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUuIEl0J3MgZ3VhcmFudGVlZCB0aGF0IHRoZSByZWdpc3RyeSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NodW5rKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBEb24ndCB3cml0ZSBhbmQgY2hlY2sgYSBDUkMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZS4gSXQncwoJICBndWFyYW50ZWVkIHRoYXQgdGhlIHJlZ2lzdHJ5IGlzIGNvbXBsZXRlbHkgd3JpdHRlbiAoaXQncyBmaXJzdCB3cml0dGVuCgkgIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHRoZW4gbW92ZWQpIGFuZCBpZiB0aGUgcmVnaXN0cnkgd2FzIGNvcnJ1cHRlZAoJICBieSBzb21lIGhhcmR3YXJlIGZhaWx1cmUgd2Ugd291bGQgaGF2ZSBiaWdnZXIgcHJvYmxlbXMuCgkgIEJ1bXAgYmluYXJ5IHJlZ2lzdHJ5IHZlcnNpb24gdG8gMC4xMC4yMS4xIGZvciB0aGlzIGFzIGl0J3MgYW4KCSAgaW5jb21wYXRpYmxlIGNoYW5nZSBhbmQgdG8gZW5zdXJlIHRoYXQgdGhlIHJlZ2lzdHJ5IGdldHMgcmVidWlsZAoJICBhZnRlciB0aGUgdXBkYXRlLgoJICBUaGlzIHNhdmVzIHNvbWUgbWlsbGlzZWNvbmRzIGZvciByZWFkaW5nL3dyaXRpbmcgdGhlIHJlZ2lzdHJ5LgoJICBGaXhlcyBidWcgIzU2MDM5OS4KCjIwMDgtMTEtMTEgMTQ6NTA6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDogU29tZSBwc2V1ZG8gY29kZSBmb3IgaG93IHdlIGNvdWxkIGltcGxlbWVudCBjbG9jayB0aW1lb3V0cyB3aXRoIEdzdFBvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OgoJICBTb21lIHBzZXVkbyBjb2RlIGZvciBob3cgd2UgY291bGQgaW1wbGVtZW50IGNsb2NrIHRpbWVvdXRzIHdpdGggR3N0UG9sbC4KCjIwMDgtMTEtMTAgMTM6NTY6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBVcGRhdGUgQXV0aG9yIHN0cmluZyB0byBtYXRjaCBvdGhlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgVXBkYXRlIEF1dGhvciBzdHJpbmcgdG8gbWF0Y2ggb3RoZXJzLgoKMjAwOC0xMS0wNiAxNTozNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBSZW9yZ2FuaXplIHNvbWUgbW9yZSwgYmUgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUgR1NUX1RZUEVfQVJSQVkgbm90IGJlaW5nIGZpeGVkIGFuZCBpbmxpbmUgdGhlIHRyaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwgKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFJlb3JnYW5pemUgc29tZSBtb3JlLCBiZSBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBHU1RfVFlQRV9BUlJBWSBub3QKCSAgYmVpbmcgZml4ZWQgYW5kIGlubGluZSB0aGUgdHJpdmlhbCBjaGVjay4KCjIwMDgtMTEtMDYgMTU6MDk6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDYWxsZ3JpbmQgbWljcm8gb3B0aW1pc2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2NvcHkpLCAoX2dzdF9jYXBzX2ZyZWUpLAoJICAoZ3N0X2NhcHNfbWVyZ2Vfc3RydWN0dXJlKSwgKGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUpLAoJICAoZ3N0X2NhcHNfY29weV9udGgpLCAoZ3N0X2NhcHNfc2V0X3NpbXBsZSksCgkgIChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksIChnc3RfY2Fwc19pc19maXhlZCksCgkgIChnc3RfY2Fwc19pc19lcXVhbF9maXhlZCksIChnc3RfY2Fwc19pbnRlcnNlY3QpLAoJICAoZ3N0X2NhcHNfc3VidHJhY3QpLCAoZ3N0X2NhcHNfbm9ybWFsaXplKSwgKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KSwKCSAgKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgIENhbGxncmluZCBtaWNybyBvcHRpbWlzYXRpb25zLgoJICBBdm9pZCBhcnJheSBib3VuZHMgY2hlY2tzIGFuZCBmb3JjZSBpbmxpbmUgb2YgdHJpdmlhbCBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9uYW1lX2RlZmF1bHQpOgoJICAtMSBpcyBlcXVpdmFsZW50IHRvIGxldHRpbmcgZ2xpYiB0byB0aGUgc3RybGVuIGJ1dCB0aGVuIHRoZXJlIGlzIG1vcmUKCSAgcm9vbSBmb3Igb3B0aW1pc2F0aW9ucyBhbmQgaXQncyBub3Qgb3VyIGZhdWx0LgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3X3dpdGhfc2l6ZSk6CgkgIG5vIG5lZWQgdG8gY2xlYXIgdGhlIGFycmF5LCB3ZSdyZSBjb29sLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLCAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgVGhlIG1vc3QgY29tbW9uIF9pc19maXhlZCgpIGNoZWNrIGlzIGRvbmUgb24gZnVuZGFtZW50YWwgZ2xpYiBiYXNlCgkgIHR5cGVzIHNvIHdlIGNoZWNrIHRoaXMgZmlyc3QgaW5zdGVhZCBvZiBkb2luZyBhIGh1Z2UgYW1vdW50IG9mCgkgIHVzZWxlc3MgR1NUX1RZUEVfQVJSQVkgY2FsbHMuCgoyMDA4LTExLTA2IDEyOjAzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IEFkZCBhIFNLSVAgc2VlayBmbGFnIGZvciB1c2Ugd2l0aCBhZHZhbmNlZCB0cmlja21vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIGEgU0tJUCBzZWVrIGZsYWcgZm9yIHVzZSB3aXRoIGFkdmFuY2VkIHRyaWNrbW9kZXMuCgkgIEFQSTogR3N0U2Vla0ZsYWdzOjpHU1RfU0VFS19GTEFHX1NLSVAKCjIwMDgtMTEtMDUgMTY6NTc6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IE5vIG5lZWQgdG8gbWVtc2V0LCB3ZSBjYW4gY2xlYXIgdGhlIHZhbHVlIG91cnNlbHZlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKToKCSAgTm8gbmVlZCB0byBtZW1zZXQsIHdlIGNhbiBjbGVhciB0aGUgdmFsdWUgb3Vyc2VsdmVzLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLAoJICAoZ3N0X3ZhbHVlX2dldF9jb21wYXJlX2Z1bmMpOgoJICBTb21lIG9wdGltaXNhdGlvbnMgZnJvbSBhIGZldyBjYWxsZ3JpbmQgc2Vzc2lvbnM6CgkgIFdoZW4gY2hlY2tpbmcgaWYgYSB0eXBlIGlzIGZpeGVkLCBjaGVjayBmb3IgdHJpdmlhbCBmdW5kYW1lbnRhbCB0eXBlcwoJICBmaXJzdCBiZWZvcmUgY2hlY2tpbmcgdHlwZXMgZm9yIHdoaWNoIHdlIG5lZWQgdG8gZ2V0IHRoZSB0eXBlIGZvbGxvd2VkCgkgIGJ5IHRoZSBoZWF2eSBkdXR5IHR5cGUgY2hlY2tzLCB0aGlzIHJlZHVjZXMgdGhlIGFtb3VudCBvZgoJICBnX3R5cGVfZnVuZGFtZW50YWwoKSBjYWxscyBhIGxvdC4KCSAgV2hlbiBnZXR0aW5nIHRoZSBjb21wYXJlIGZ1bmN0aW9uLCBmaXJzdCBjaGVjayBmb3Igb3VyIHJlZ2lzdGVyZWQgdHlwZXMuCgkgIElmIHRoYXQgZmFpbHMsIGRvIHRoZSBoZWF2eSBkdXR5IGdfdHlwZV9pc19hKCkgY2hlY2tzLCByZWR1Y2VzIHRoZQoJICBhbW91bnQgb2YgZ190eXBlX2lzX2EoKSBjb25zaWRlcmFibHkuCgoyMDA4LTExLTA1IDExOjE3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogTXVtYmxlIHNvbWV0aGluZyBhYm91dCByZW1vdmluZyBHc3RYTUwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIE11bWJsZSBzb21ldGhpbmcgYWJvdXQgcmVtb3ZpbmcgR3N0WE1MLgoKMjAwOC0xMS0wNCAxODoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogR2V0IHRoZSBzZXFudW0gYmVmb3JlIHdlIGRpc3Bvc2UgdGhlIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEdldCB0aGUgc2VxbnVtIGJlZm9yZSB3ZSBkaXNwb3NlIHRoZSBtZXNzYWdlLgoKMjAwOC0xMS0wNCAxNjoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFJlZmVyIHRvIHRoZSBmcmFtZXN0ZXBwaW5nIGRvY3VtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZWZlciB0byB0aGUgZnJhbWVzdGVwcGluZyBkb2N1bWVudC4KCjIwMDgtMTEtMDQgMTU6NTY6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBDb3B5IHNlcW51bXMgZnJvbSBldmVudHMgdG8gbWVzc2FnZXMgc28gdGhhdCB0aGV5IGNhbiBhbGwgYmUgcmVsYXRlZCBiYWNrIHRvIGVhY2hvdGhlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2hhbmRsZV9hc3luY19zdGFydCksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQ29weSBzZXFudW1zIGZyb20gZXZlbnRzIHRvIG1lc3NhZ2VzIHNvIHRoYXQgdGhleSBjYW4gYWxsIGJlIHJlbGF0ZWQKCSAgYmFjayB0byBlYWNob3RoZXIuCgoyMDA4LTExLTA0IDE1OjUyOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBQcmludCB0aGUgbWVzc2FnZSBzZXFudW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgdGhlIG1lc3NhZ2Ugc2VxbnVtcy4KCjIwMDgtMTEtMDQgMTM6NTY6MzcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF9zZXFudW1fbmV4dCk6IFJlZmFjdG9yIGZvciBjbGFyaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfc2VxbnVtX25leHQpOiBSZWZhY3RvciBmb3IgY2xhcml0eS4KCSAgQWxzbyBhZGQgQVBJOiB0byBwcmV2aW91cyBjaGFuZ2Vsb2cgZW50cnkuCgoyMDA4LTExLTA0IDEyOjIyOjUzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBBZGQgc2VxdWVuY2UgbnVtYmVycyB0byBldmVudHMgYW5kIG1lc3NhZ2VzLiBTZWUgIzU1OTI1MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTEtMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIEFkZCBzZXF1ZW5jZSBudW1iZXJzIHRvIGV2ZW50cyBhbmQgbWVzc2FnZXMuIFNlZSAjNTU5MjUwLgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF9zZXFudW1fbmV4dCwgZ3N0X3V0aWxfc2VxbnVtX2NvbXBhcmUpOgoJICBOZXcgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RldmVudC5jIChfZ3N0X2V2ZW50X2NvcHksIGdzdF9ldmVudF9uZXcpOiBJbml0aWFsaXplIG5ldwoJICBldmVudHMgd2l0aCBhIG5ldyBzZXF1ZW5jZSBudW1iZXIsIGFuZCBjb3B5IGl0IHdoZW4gY29weWluZy4KCSAgKGdzdF9ldmVudF9nZXRfc2VxbnVtLCBnc3RfZXZlbnRfc2V0X3NlcW51bSk6IEFjY2Vzc29ycyBmb3IgYW4KCSAgZXZlbnQncyBzZXF1ZW5jZSBudW1iZXIuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChfZ3N0X21lc3NhZ2VfY29weSwgZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgIChnc3RfZXZlbnRfZ2V0X3NlcW51bSwgZ3N0X2V2ZW50X3NldF9zZXFudW0pOiBBcyB3aXRoIGV2ZW50cywgc28KCSAgd2l0aCBtZXNzYWdlcy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcy4KCjIwMDgtMTEtMDQgMTE6NTU6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsIGZpeGVzIHRoYW5rcyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICBTb21lIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbCBmaXhlcyB0aGFua3MgdG8KCSAgQW5kcmV3IEZlcmVuLiBGaXhlcyAjNTU4NDU5LgoKMjAwOC0xMS0wMyAxMjoyOToxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IERvbid0IGJvdGhlciB3aXRoIHRoZSBHVGltZXIgaWYgd2UgZG9uJ3Qgb3V0cHV0IHRoZSByZXN1bHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgRG9uJ3QgYm90aGVyIHdpdGggdGhlIEdUaW1lciBpZiB3ZSBkb24ndCBvdXRwdXQgdGhlIHJlc3VsdHMuCgoyMDA4LTExLTAzIDEwOjU5OjQ5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbTogQWRkIFdJTjMyX0xJQlMgdG8gbGliZ3N0bmV0IExJQkFERC4gRml4ZXMgIzU1NzMwMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYXZpZCBTY2hsZWVmICA8ZHNAc2NobGVlZi5vcmc+CgkgICogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBBZGQgV0lOMzJfTElCUyB0byBsaWJnc3RuZXQgTElCQURELiBGaXhlcyAjNTU3MzAwLgoKMjAwOC0xMC0zMSAxNTo1NDo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IE9oIG15LCBzdHVkaXAsIHN0dXBpZCBtZS4gUmVtb3ZlIGRvdWJsZSBzdGF0KCkgY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIE9oIG15LCBzdHVkaXAsIHN0dXBpZCBtZS4gUmVtb3ZlIGRvdWJsZSBzdGF0KCkgY2FsbC4KCjIwMDgtMTAtMzEgMTQ6MjQ6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogVXNlIGdfdW5saW5rIGluc3RlYWQgb2YgdW5saW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFVzZSBnX3VubGluayBpbnN0ZWFkIG9mIHVubGluay4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFVzZSBnbGliIHR5cGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBhIEZJWE1FOi4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBGb3JtYXR0aW5nICYgd2hpdGVzcGFjZXMuCgoyMDA4LTEwLTMxIDA4OjUzOjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IERvYyB0eXBvLiBVc2UgcmV0dXJuIHZhbHVlIG9mIHBhcmVudF9jbGFzcy0+ZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgRG9jIHR5cG8uIFVzZSByZXR1cm4gdmFsdWUgb2YgcGFyZW50X2NsYXNzLT5ldmVudC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBDaGFpbiB1cCBhdCB0aGUgZW5kIGZvciBjb25zaXN0ZW5jeS4KCjIwMDgtMTAtMzAgMTU6Mjk6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBDaGFuZ2UgdG8geGluY2x1ZGUgYmFzZWQgYnVpbGQgLSBpdHMgZmFzdGVyIGFuZCBlYXNpZXIgdG8gbWFpbnRhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIENoYW5nZSB0byB4aW5jbHVkZSBiYXNlZCBidWlsZCAtIGl0cyBmYXN0ZXIgYW5kIGVhc2llciB0byBtYWludGFpbi4KCjIwMDgtMTAtMzAgMTQ6MTU6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFVzZSBnX3VubGluaygpIGFzIG5vbmUgb2YgdGhlc2UgYXJlIGRpcmVjdG9yaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgVXNlIGdfdW5saW5rKCkgYXMgbm9uZSBvZiB0aGVzZSBhcmUgZGlyZWN0b3JpZXMuCgoyMDA4LTEwLTI5IDE3OjA0OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFNvbWUgbW9yZSBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgU29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwOC0xMC0yNyAxNTowMjo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBJZiB3ZSBoYXZlIGEgZml4YXRlIGZ1bmN0aW9uLCBjYWxsIGl0IGV2ZW4gaWYgd2UgYWxyZWFkeSBoYXZlIGZpeGVkIGNhcHMgYmVjYXVzZSB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5kX3RyYW5zZm9ybSksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpOgoJICBJZiB3ZSBoYXZlIGEgZml4YXRlIGZ1bmN0aW9uLCBjYWxsIGl0IGV2ZW4gaWYgd2UgYWxyZWFkeSBoYXZlIGZpeGVkIGNhcHMKCSAgYmVjYXVzZSB0aGUgc3ViY2xhc3MgbWlnaHQgYWRkIHNvbWUgY2Fwcy4gTWFrZXMgYXVkaW9jb252ZXJ0IGFkZCBhCgkgIGRlZmF1bHQgY2hhbm5lbCBsYXlvdXQuCgoyMDA4LTEwLTI0IDA5OjQxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENsZWFyIHRoZSBvdXRwdXQgYnVmZmVyIHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKToKCSAgQ2xlYXIgdGhlIG91dHB1dCBidWZmZXIgdmFyaWFibGUuCgkgIENsZWFudXBzIHRvIHRoZSBlcnJvciBwYXRoIGluIHRoZSBnZXRyYW5nZSBmdW5jdGlvbi4KCSAgRml4ZXMgIzU1NzY0OS4KCjIwMDgtMTAtMjMgMTI6NTI6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBVc2UgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIGFuZCBoYW5kbGUgZXJyb3JzIGluc3RlYWQgb2YgdXNpbmcgZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKCkgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBVc2UgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIGFuZCBoYW5kbGUgZXJyb3JzIGluc3RlYWQgb2YKCSAgdXNpbmcgZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKCkgd2hpY2ggYWJvcnRzIGlmIHRoZSBidWZmZXIgY291bGRuJ3QKCSAgYmUgYWxsb2NhdGVkLgoKMjAwOC0xMC0yMyAwOTo0OTowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFNldCB0aGUgbGFzdF9zdG9wIHRvIGEgbW9yZSBtZWFuaW5nZnVsIHBvc2l0aW9uIHdoZW4gY29uZmlndXJpbmcgdGhlIHNlZ21lbnQuIGllLiB0aGUgc3RhcnQvc3RvcCBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCk6CgkgIFNldCB0aGUgbGFzdF9zdG9wIHRvIGEgbW9yZSBtZWFuaW5nZnVsIHBvc2l0aW9uIHdoZW4gY29uZmlndXJpbmcgdGhlCgkgIHNlZ21lbnQuIGllLiB0aGUgc3RhcnQvc3RvcCBvZiB0aGUgc2VnbWVudCBvciBjbGlwcGVkIGFnYWluc3QgdGhlCgkgIHVwZGF0ZWQgc2VnbWVudCBib3VuZGFyaWVzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoZSBsYXN0X3N0b3AuCgoyMDA4LTEwLTIzIDA3OjExOjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogVXNlIEdTVF8oUkVBRHxXUklURSlfKEZMT0FUfERPVUJMRSlfKExFfEJFKSBpbnN0ZWFkIG9mIG91ciBvd24gY29waWVzIG9mIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBVc2UgR1NUXyhSRUFEfFdSSVRFKV8oRkxPQVR8RE9VQkxFKV8oTEV8QkUpIGluc3RlYWQgb2Ygb3VyIG93bgoJICBjb3BpZXMgb2YgdGhlbS4KCjIwMDgtMTAtMjMgMDc6MDk6MjEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogTW92ZSBmbG9hdCBlbmRpYW5uZXNzIGNvbnZlcnNpb24gbWFjcm9zIGZyb20gbGliZ3N0ZmxvYXRjYXN0IHRvIGNvcmUgYXMgaXQncyB1c2VmdWwgaW4gZ2VuZXJhbCwgZXZlbiBpbiBjb3JlLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IE1vdmUgZmxvYXQgZW5kaWFubmVzcyBjb252ZXJzaW9uIG1hY3JvcyBmcm9tIGxpYmdzdGZsb2F0Y2FzdAoJICB0byBjb3JlIGFzIGl0J3MgdXNlZnVsIGluIGdlbmVyYWwsIGV2ZW4gaW4gY29yZS4gRml4ZXMgYnVnICM1NTUxOTYuCgkgIFRoaXMgYWRkcyBHRE9VQkxFX0ZST01fQkUsIEdET1VCTEVfRlJPTV9MRSwgR0RPVUJMRV9UT19CRSwKCSAgR0RPVUJMRV9UT19MRSwgR0RPVUJMRV9TV0FQX0xFX0JFLCBHRkxPQVRfRlJPTV9CRSwgR0ZMT0FUX0ZST01fTEUsCgkgIEdGTE9BVF9UT19CRSwgR0ZMT0FUX1RPX0xFLCBHRkxPQVRfU1dBUF9MRV9CRS4KCSAgQWxzbyBhZGQgR1NUX1JFQURfIGFuZCBHU1RfV1JJVEVfIG1hY3JvcyBmb3IgZmxvYXRzIGFuZCBkb3VibGVzOgoJICBHU1RfUkVBRF9GTE9BVF9MRSwgR1NUX1JFQURfRkxPQVRfQkUsIEdTVF9SRUFEX0RPVUJMRV9MRSwKCSAgR1NUX1JFQURfRE9VQkxFX0JFLCBHU1RfV1JJVEVfRkxPQVRfTEUsIEdTVF9XUklURV9GTE9BVF9CRSwKCSAgR1NUX1dSSVRFX0RPVUJMRV9MRSwgR1NUX1dSSVRFX0RPVUJMRV9CRS4KCjIwMDgtMTAtMjIgMTQ6NDc6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0YSBhbmQgZ3N0X2J5dGVfcmVhZGVyX3BlZWtfZGF0YSB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBkYXRhIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2RhdGEpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhIGFuZCBnc3RfYnl0ZV9yZWFkZXJfcGVla19kYXRhCgkgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGRhdGEgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIGhhdmUKCSAgYSBndWFyYW50ZWVkIHNpemUuCgoyMDA4LTEwLTIyIDE0OjI1OjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IGEgYnVnIGluIHRoZSBvdXRwdXQgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc3VtbWFyeSB3aGVuIC0tZ3N0LWRpc2FibGUtcmVnaXN0cnkgaXMgc3VwcGxpZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggYSBidWcgaW4gdGhlIG91dHB1dCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdCBzdW1tYXJ5CgkgIHdoZW4gLS1nc3QtZGlzYWJsZS1yZWdpc3RyeSBpcyBzdXBwbGllZAoKMjAwOC0xMC0yMiAxMzo0NzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogRml4IHRoZSBuYW1lcyBvZiAyIGZ1bmN0aW9ucyBpbiB0aGUgZG9jcyBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBGaXggdGhlIG5hbWVzIG9mIDIgZnVuY3Rpb25zIGluIHRoZSBkb2NzIHN0cmluZ3MuCgoyMDA4LTEwLTIxIDE2OjMwOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFByb3RlY3Qgc2lua19hbGxvYyBjYXBzIHdpdGggdGhlIHNpbmtwYWQgbG9jayB0byBhdm9pZCBuYXN0eSBjYXBzIHJlZmNvdW50IHByb2JsZW1zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KToKCSAgUHJvdGVjdCBzaW5rX2FsbG9jIGNhcHMgd2l0aCB0aGUgc2lua3BhZCBsb2NrIHRvIGF2b2lkIG5hc3R5IGNhcHMKCSAgcmVmY291bnQgcHJvYmxlbXMgYXMgc2VlbiBpbiBiYW5zaGVlIGFuZCBtYXliZSBhbHNvIGluIGZhcnNpZ2h0Mi4KCSAgUmVtb3ZlIGF0b21pYyBpbnQgbm93IHRoYXQgd2UgbmVlZCB0byB0YWtlIHRoZSBsb2NrIGFueXdheXMuCgoyMDA4LTEwLTIwIDE1OjE4OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXBsZW1lbnQgbW9yZSBzZWVraW5nIGluIHB1bGwgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X3ByZXBhcmVfc2Vla19zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBJbXBsZW1lbnQgbW9yZSBzZWVraW5nIGluIHB1bGwgbW9kZS4KCSAgVXNlIHBhZCBjb252ZXJ0IGZ1bmN0aW9ucyB0byBjb252ZXJ0IHBvc2l0aW9uIHRvIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgoJICBGaXggcG9zaXRpb24vZHVyYXRpb24gcmVwb3J0aW5nIGluIHB1bGwgbW9kZS4KCSAgSW1wbGVtZW50IHBvc2l0aW9uIGFuZCBkdXJhdGlvbiByZXBvcnRpbmcgaW4gb3RoZXIgZm9ybWF0cyB0aGFuIHRpbWUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgbWVtYmVyIHRvIGtlZXAgdHJhY2sgb2Ygd2hlbiB0aGUgc2VnbWVudCBpcyBwbGF5aW5nLgoKMjAwOC0xMC0yMCAxMzozMjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogV2hlbiB3ZSB1c2UgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSB3aXRob3V0IHdhbnRpbmcgdG8gc2V0IHRoZSBjYXBzIHdlIGFsc28gZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGUgYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpOgoJICBXaGVuIHdlIHVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIHdpdGhvdXQgd2FudGluZyB0byBzZXQgdGhlIGNhcHMgd2UKCSAgYWxzbyBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjYXBzIGFyZSBjb21wYXRpYmxlIGJlY2F1c2UgdGhlIGNhbGxlcgoJICBwcmVzdW1hYmx5IGlzIGdvaW5nIHRvIHBlcmZvcm0gaXRzIG93biBjdXN0b20gY2hlY2tzLiBGaXhlcyBzb21lIGNhc2VzCgkgIHdoZXJlIGJhc2V0cmFuc2Zvcm0gZWxlbWVudHMgd291bGQgZXJyb3Igb3V0IHdoZW4gaXQgd2FzIG5vdCBuZWVkZWQuCgoyMDA4LTEwLTIwIDEzOjI5OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBVcGRhdGUgY29tbWVudC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgIEFkZCBzb21lIGRlYnVnIGluZm8uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IG1ldGhvZC4KCjIwMDgtMTAtMTkgMTk6NTc6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2Vlayk7CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2Vlayk7CgkgIFJlbW92ZSBkdXBsaWNhdGVkIGFzc2lnbm1lbnQgYW5kIGxvZyBhIG1lc3NhZ2UgaW4gZmFpbHVyZSBjYXNlLgoKMjAwOC0xMC0xOSAxMDoxMzozOSArMDAwMCAgRGlnIEdlIDxkaWcuZ2UuY25AZ21haWwuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IEZpeCBjb3B5J24ncGFzdGUgYnVnIGluIGhlbGxvIHdvcmxkIGV4YW1wbGUgKCM1NTY5MDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERpZyBHZSA8ZGlnLmdlLmNuIGF0IGdtYWlsIGNvbT4KCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKG1haW4pOgoJICBGaXggY29weSduJ3Bhc3RlIGJ1ZyBpbiBoZWxsbyB3b3JsZCBleGFtcGxlICgjNTU2OTAwKS4KCjIwMDgtMTAtMTcgMTM6Mjc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFF1ZXJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgd2hlbiBhY3RpdmF0aW5nIHRoZSBwYWQgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBRdWVyeSB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHdoZW4gYWN0aXZhdGluZyB0aGUgcGFkIGluIHB1bGwgbW9kZS4KCSAgSW1wbGVtZW50IGR1cmF0aW9uIHF1ZXJ5IGluIHB1bGwgbW9kZSBieSB1c2luZyB0aGUgaW5zdGFsbGVkIHBhZCBjb252ZXJ0CgkgIGZ1bmN0aW9uIHRvIGNvbnZlcnQgZnJvbSBieXRlcyB0byB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KCjIwMDgtMTAtMTYgMTQ6MDk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIGNvbW1pdCB0aGUgc3RhdGUgaW4gc3ViY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19mbHVzaF9zdGFydCksIChnc3RfYmFzZV9zaW5rX2ZsdXNoX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIG1ldGhvZCB0byBjb21taXQgdGhlIHN0YXRlIGluIHN1YmNsYXNzZXMuCgkgIFJlZmFjdG9yIHRoZSBmbHVzaF9zdGFydCBhbmQgZmx1c2hfc3RvcCBjb2RlIGJlY2F1c2Ugd2UgbmVlZCBpdCBmb3IKCSAgZmx1c2hpbmcgd2hpbGUgc2Vla2luZyB0b28uCgkgIEltcGxlbWVudCB0aGUgYmVnaW5uaW5ncyBvZiBzZWVraW5nIGluIHB1bGwgbW9kZS4KCSAgVXNlIHRoZSBzZWdtZW50IGxhc3Rfc3RvcCBmaWVsZCBmb3IgdGhlIHB1bGxpbmcgb2Zmc2V0LgoJICBGaXggdGhlIHBhdXNlIG1ldGhvZCBpbiBwdWxsIG1vZGUuCgkgIENvbmZpZ3VyZSB0aGUgc2VnbWVudCB0byBCWVRFUyBmb3IgcHVsbCBtb2RlLgoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX2RvX3ByZXJvbGwoKQoKMjAwOC0xMC0xNiAxMzo1Njo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCjIwMDgtMTAtMTQgMTc6MTA6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cXVhcmsuYzogRml4IHByaW50ZiBmb3JtYXQgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nLgoKMjAwOC0xMC0xNCAxMjozNDo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogRml4IGZsb3cgYWdncmVnYXRpb24gb2YgdGVlLiBFcnJvciBvdXQgaW1tZWRpYXRlbHkgZm9yIGFsbCBmbG93IHJldHVybnMgZXhjZXB0IE9LIGFuZCBOT1RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBGaXggZmxvdyBhZ2dyZWdhdGlvbiBvZiB0ZWUuIEVycm9yIG91dCBpbW1lZGlhdGVseSBmb3IgYWxsIGZsb3cgcmV0dXJucwoJICBleGNlcHQgT0sgYW5kIE5PVF9MSU5LRUQsIHJldHVybiBOT1RfTElOS0VEIGlmIGFsbCBwYWRzIGFyZSBub3QgbGlua2VkCgkgIGFuZCByZXR1cm4gT0sgaWYgYXQgbGVhc3Qgb25lIHBhZCBpcyBsaW5rZWQuCgkgIEJlZm9yZSB3ZSBlcnJvcmVkIG91dCBvbiAiZmF0YWwiIGZsb3cgcmV0dXJucyAoaS5lLiBub3QgZm9yIFdST05HX1NUQVRFKQoJICBhbmQgb3RoZXJ3aXNlIHJldHVybmVkIHRoZSBmbG93IHJldHVybiBvZiB0aGUgbGFzdCBwYWQsIHdoaWNoIGlzIHdyb25nLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoX2Zha2VfY2hhaW4pLCAoX2Zha2VfY2hhaW5fZXJyb3IpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAodGVlX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdHMgZm9yIHRoZSBmbG93IGFnZ3JlZ2F0aW9uLgoKMjAwOC0xMC0xMyAxNzoxOToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFJlbW92ZSBpdGVtIGZyb20gdGhlIHRvZG8gbGlzdCBiZWNhdXNlIGl0IHdhcyBmaXhlZCB3aXRoIHRoZSBsYXRlbmN5IHN0YXRlIGNoYW5nZSByZXdyaXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgdG9kbyBsaXN0IGJlY2F1c2UgaXQgd2FzIGZpeGVkIHdpdGggdGhlIGxhdGVuY3kKCSAgc3RhdGUgY2hhbmdlIHJld3JpdGVzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50X2Z1bGwpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50X2Z1bGwpLCAoZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfbmV3X3NlZWspLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLCAoZ3N0X2V2ZW50X25ld19sYXRlbmN5KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9sYXRlbmN5KToKCSAgVXNlIHF1YXJrcyB0byBjb25zdHJ1Y3QgYW5kIHBhcnNlIGV2ZW50cy4KCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBzb21lIG1vcmUgcXVhcmtzIHRvIHRoZSB0YWJsZS4KCSAgRW1pdCBhIHdhcm5pbmcgd2hlbiB0aGUgcXVhcmsgdGFibGVzIGFyZSBub3QgaW4gc3luYy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBhbiBhc3NlcnQuCgoyMDA4LTEwLTEzIDE2OjQ3OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zLzogRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgY29yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBEb24ndCBpbnN0YWxsIHN0YXRpYyBsaWJzIGZvciBwbHVnaW5zLiBGaXhlcyAjNTUwODUxIGZvciBjb3JlLgoKMjAwOC0xMC0xMyAxMDo1MDoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRml4IGRlYWRsb2NrLCBnX3NvdXJjZV9nZXRfaWQoKSBjYW5ub3QgYmUgY2FsbGVkIGluIGZpbmFsaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsX3VubG9ja2VkKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKSwKCSAgKGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pLAoJICAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpLCAoZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKToKCSAgRml4IGRlYWRsb2NrLCBnX3NvdXJjZV9nZXRfaWQoKSBjYW5ub3QgYmUgY2FsbGVkIGluIGZpbmFsaXplLgoJICBLZWVwIHRyYWNrIG9mIHRoZSB3YXRjaCBzb3VyY2UgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHNvdXJjZSBvYmplY3QKCSAgaW5zdGVhZC4KCSAgVXNlIHRoZSBidXMgbG9jayB0byBwcm90ZWN0IGFjY2VzcyB0byB0aGUgcG9pbnRlciB0byB0aGUgY3VycmVudAoJICB3YXRjaCBzb3VyY2UuCgoyMDA4LTEwLTEzIDA5OjIyOjIyICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdGJ1cy5jOiBPbmx5IGFsbG93IG9uZSBidXMgd2F0Y2ggdG8gYmUgc2V0IGF0IGEgdGltZS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgZGlzcGF0Y2hlciBwb3BzIHRoZSBtZXNzYWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlIG9uIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKToKCSAgT25seSBhbGxvdyBvbmUgYnVzIHdhdGNoIHRvIGJlIHNldCBhdCBhIHRpbWUuIFRoaXMgaXMgbmVjZXNzYXJ5CgkgIGJlY2F1c2UgdGhlIGRpc3BhdGNoZXIgcG9wcyB0aGUgbWVzc2FnZSBmcm9tIHRoZSBidXMgYW5kIHRoZSBzZWNvbmQKCSAgd2F0Y2hlciB3aWxsIHRoZW4gZ2V0IE5VTEwgb3IgdGhlIG5leHQgbWVzc2FnZSAoYW5kIHRoZSBmaXJzdCB3b24ndAoJICBnZXQgdGhpcyBuZXh0IG1lc3NhZ2UgdGhlbiwgZXRjKS4gSWYgbW9yZSB0aGFuIG9uZSAid2F0Y2hlciIgaXMKCSAgcmVxdWlyZWQgc2lnbmFsIHdhdGNoZXMgc2hvdWxkIGJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTI2MDQ0LgoKMjAwOC0xMC0xMiAyMjoxNjowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IENoYW5nZSB0aGUgcHJpbnRpbmcgb2YgdGhlICdidWZmZXJpbmcuLi4nIG91dHB1dCB0byBhdm9pZCBwdXR0aW5nIGEgXHIgaW4gYSB0cmFuc2xhdGVhYmxlIHN0cmluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBDaGFuZ2UgdGhlIHByaW50aW5nIG9mIHRoZSAnYnVmZmVyaW5nLi4uJyBvdXRwdXQgdG8gYXZvaWQgcHV0dGluZwoJICBhIFxyIGluIGEgdHJhbnNsYXRlYWJsZSBzdHJpbmcgKGZsYWdnZWQgYnkgdGhlIFRQKS4KCjIwMDgtMTAtMTAgMTU6Mzg6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R4bWwuYzogQ2xhcmlmeSB0aGF0IHRoZSBzYXZlX3RoeXNlbGYoKSBhbmQgcmVzdG9yZV90aHlzZWxmKCkgdmlydHVhbCBmdW5jdGlvbnMgb2YgR3N0T2JqZWN0IG5lZWQgdG8gYmUgb3ZlcnJpZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIENsYXJpZnkgdGhhdCB0aGUgc2F2ZV90aHlzZWxmKCkgYW5kIHJlc3RvcmVfdGh5c2VsZigpIHZpcnR1YWwKCSAgZnVuY3Rpb25zIG9mIEdzdE9iamVjdCBuZWVkIHRvIGJlIG92ZXJyaWRlbiwgbm90CgkgIGdzdF9vYmplY3RfKHNhdmV8cmVzdG9yZSlfdGh5c2VsZigpIHdoaWNoIGlzIGltcG9zc2libGUuCgkgIEZpeGVzIGJ1ZyAjNTU1NzAwLgoKMjAwOC0xMC0xMCAxNToyNzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmV2ZXJ0IGEgcGF0Y2ggZnJvbSAyMSBtb250aHMgYWdvIHRoYXQgYnJva2UgY2FwcyBuZWdvdGlhdGlvbiBpbiBwdWxsIG1vZGUuIEJhc2ljYWxseSwgaGF2aW5nIGEgYnVmZmVyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBSZXZlcnQgYSBwYXRjaCBmcm9tIDIxIG1vbnRocyBhZ28gdGhhdCBicm9rZSBjYXBzIG5lZ290aWF0aW9uIGluIHB1bGwKCSAgbW9kZS4gQmFzaWNhbGx5LCBoYXZpbmcgYSBidWZmZXIgcGFzcyBvdmVyIGEgcGFkIHdpbGwgdHJpZ2dlciB0aGUKCSAgc2V0Y2FwcyBmdW5jdGlvbiB3aGVuIGNhcHMgY2hhbmdlLCBqdXN0IGxpa2UgaW4gcHVzaCBtb2RlLgoKMjAwOC0xMC0xMCAxNToxMjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgdGhlIGRvY3Mgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgVXBkYXRlIHRoZSBkb2NzIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgSWYgd2UgcHVsbCBhIGJ1ZmZlciB3aXRoIG5vbi10cml2aWFsIGNhcHMsIHN1Z2dlc3QgdGhvc2UgY2FwcyB3aXRoIHRoZQoJICBtYXggcHJvYmFiaWxpdHkuCgoyMDA4LTEwLTEwIDE0OjMxOjAzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIGFub3RoZXIgbGltaXRhdGlvbiBvZiBwYWQtYmxvY2tpbmcgd2l0aCBzZWdtZW50IHNlZWtzIG5vdCBwdXNoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBhbm90aGVyIGxpbWl0YXRpb24gb2YgcGFkLWJsb2NraW5nIHdpdGggc2VnbWVudCBzZWVrcyBub3QgcHVzaGluZwoJICBFT1MgZXZlbnRzLgoKMjAwOC0xMC0xMCAxMzoyNDoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgbmV3IHN5bWJvbHMgdG8gdGhlIHdpbjMyIGRlZnMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gdGhlIHdpbjMyIGRlZnMgZmlsZXMKCjIwMDgtMTAtMTAgMTA6Mzg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFRoZSBtZXNzYWdlIHNyYyBjYW4gYmUgTlVMTCwgZG9uJ3QgdHJ5IHRvIHByaW50IHRoZSBvYmplY3QgbmFtZXMgaW4gdGhhdCBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgVGhlIG1lc3NhZ2Ugc3JjIGNhbiBiZSBOVUxMLCBkb24ndCB0cnkgdG8gcHJpbnQgdGhlIG9iamVjdCBuYW1lcyBpbiB0aGF0CgkgIGNhc2UuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGUpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKHJ1bl9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIGRlYnVnLgoJICBGaXggdGhlIHRlc3QsIHB1bGwgYmFzZWQgc2lua3MgZ28gQVNZTkMgdG8gUEFVU0VELCBqdXN0IGxpa2Ugb3RoZXIKCSAgc2NoZWR1bGluZyBtb2Rlcy4KCjIwMDgtMTAtMTAgMTA6MDE6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZV9zaW5rX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9ibG9ja3NpemUpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfYmxvY2tzaXplKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBibG9ja3NpemUgcHJvcGVydHkgYW5kIG1ldGhvZHMgdG8gY29udHJvbCB0aGUgYW1vdW50IG9mIGRhdGEKCSAgdG8gcHVsbC4KCSAgTmVnb3RpYXRlIGZpcnN0IGJlZm9yZSBhY3RpdmF0aW5nIHVwc3RyZWFtIGluIHB1bGwgbW9kZSBzbyB0aGF0IHRoZXkgY2FuCgkgIG5lZ290aWF0ZSB0aGVtc2VsdmVzLgoJICBXaGVuIHdlIG9wZXJhdGUgaW4gcHVsbCBtb2RlLCB3ZSBvbmx5IGFjY2VwdCB0aGUgY2FwcyB0aGF0IHdlCgkgIG5lZ290aWF0ZWQuCgkgIE1ha2UgdGhlIHNpbmsgZ28gQVNZTkMgdG8gUEFVU0VELCBsaWtlIGFsbCBvdGhlciBzaW5rcy4KCSAgQVBJOiBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua19zZXRfYmxvY2tzaXplKCkKCSAgQVBJOiBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua19nZXRfYmxvY2tzaXplKCkKCSAgQVBJOiBHc3RCYXNlU2luazo6YmxvY2tzaXplCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfbGl2ZSksIChnc3RfYmFzZV9zcmNfaXNfbGl2ZSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCksIChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2Jsb2Nrc2l6ZSksIChnc3RfYmFzZV9zcmNfZ2V0X2Jsb2Nrc2l6ZSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2RvX3RpbWVzdGFtcCksIChnc3RfYmFzZV9zcmNfZ2V0X2RvX3RpbWVzdGFtcCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgdHlwZWNoZWNraW5nIGluIHB1YmxpYyBBUEkgZnVuY3Rpb25zLgoJICBBZGQgbWV0aG9kcyB0byBjb250cm9sIHRoZSBibG9ja3NpemUgaW4gc3ViY2xhc3Nlcy4KCSAgQVBJOiBHc3RCYXNlU3JjOjpnc3RfYmFzZV9zcmNfc2V0X2Jsb2Nrc2l6ZSgpCgkgIEFQSTogR3N0QmFzZVNyYzo6Z3N0X2Jhc2Vfc3JjX2dldF9ibG9ja3NpemUoKQoKMjAwOC0xMC0xMCAwOToxMToxMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBXZSBub3cgc2VlIDMgZXZlbnRzIGdvIHRocm91Z2ggb3VyIHBhZCwgc2luY2UgYmFzZXNpbmsgbm93IHNlbmRzIHVwc3RyZWFtIGxhdGVuY3kgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKHByb2JlX2RvX25vdGhpbmcpLCAoZGF0YV9wcm9iZSksCgkgIChidWZmZXJfcHJvYmUpLCAoZXZlbnRfcHJvYmUpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBXZSBub3cgc2VlIDMgZXZlbnRzIGdvIHRocm91Z2ggb3VyIHBhZCwgc2luY2UgYmFzZXNpbmsgbm93IHNlbmRzCgkgIHVwc3RyZWFtIGxhdGVuY3kgZXZlbnRzLgoKMjAwOC0xMC0wOCAxNToyMToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgdHJ5aW5nIHRvIGZsdXNoIHRoZSBidXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB0cnlpbmcgdG8gZmx1c2ggdGhlIGJ1cy4KCjIwMDgtMTAtMDggMTQ6MjE6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZvcndhcmQgTEFURU5DWSBldmVudHMgdXBzdHJlYW1zIHNvIHRoYXQgZWxlbWVudHMga25vdyBhYm91dCB0aGUgdG90YWwgcGlwZWxpbmUgbGF0ZW5jeS4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgRm9yd2FyZCBMQVRFTkNZIGV2ZW50cyB1cHN0cmVhbXMgc28gdGhhdCBlbGVtZW50cyBrbm93IGFib3V0IHRoZSB0b3RhbAoJICBwaXBlbGluZSBsYXRlbmN5LiBGaXhlcyAjNTU1MzA3LgoKMjAwOC0xMC0wOCAxMToyMDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFsbG93IHRocm91Z2ggcXVlcmllcyB3aGVuIHdlIGRvbid0IGtub3cgaG93IGFzIG90aGVyd2lzZSBpdCdzIG5vdCBwb3NzaWJsZSB0byBxdWVyeSB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBBbGxvdyB0aHJvdWdoIHF1ZXJpZXMgd2hlbiB3ZSBkb24ndCBrbm93IGhvdwoJICB0byBhZGp1c3QgdGhlbSAobm90IFRJTUUgb3IgQllURVMpLCBhcyBvdGhlcndpc2UgaXQncwoJICBub3QgcG9zc2libGUgdG8gcXVlcnkgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gb3JkZXIKCSAgdG8gc2VlayBpbiBvdGhlciBmb3JtYXRzIGF0IGFsbC4KCjIwMDgtMTAtMDggMTE6MTI6MTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDgtMTAtMDggMTE6MTE6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFBsYWNhdGUgZG9jIHBlbmRhbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBQbGFjYXRlIGRvYyBwZW5kYW50cy4KCjIwMDgtMTAtMDggMTA6Mzk6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogVW5icmVhayAtZ29vZCBidWlsZCwgcHJpdmF0ZSBpcyBhIHJlc2VydmVkIGMrKyBrZXl3b3JkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgVW5icmVhayAtZ29vZCBidWlsZCwgcHJpdmF0ZSBpcyBhIHJlc2VydmVkIGMrKyBrZXl3b3JkLgoKMjAwOC0xMC0wOCAxMDoxOToxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLio6IEZpeCB1bmludGVuZGVkIEFQSSByZW1vdmFsOiByZS1hZGQgR1NUX0dIT1NUX1BBRF9DQVNUIHRvIHRoZSBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oIChHU1RfR0hPU1RfUEFEX0NBU1QpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChHU1RfR0hPU1RfUEFEX0NBU1QpOiBGaXggdW5pbnRlbmRlZCBBUEkKCSAgcmVtb3ZhbDogcmUtYWRkIEdTVF9HSE9TVF9QQURfQ0FTVCB0byB0aGUgaGVhZGVyLgoKMjAwOC0xMC0wOCAxMDoxMjo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmggKEdzdFByb3h5UGFkLCBHc3RQcm94eVBhZENsYXNzLCBHc3RHaG9zdFBhZCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmggKEdzdFByb3h5UGFkLCBHc3RQcm94eVBhZENsYXNzLCBHc3RHaG9zdFBhZCkKCSAgKEdzdEdob3N0UGFkQ2xhc3MpOiBQdWJsaWNhbGx5IGV4cG9zZSB0aGVzZSBzdHJ1Y3R1cmVzIHNvIGFzIHRvCgkgIGFsbG93IGVhc3kgc3ViY2xhc3NpbmcgZnJvbSBDLiBIaWRlIHRoZSBtZW1iZXIgZGF0YSBiZWhpbmQgYQoJICBwcml2YXRlIG9wYXF1ZSBkYXRhIHBvaW50ZXIuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IEFkYXB0IHRvIHN0b3JlIGluc3RhbmNlIGRhdGEgaW4gdGhlIHR5cGUKCSAgaW5zdGFuY2UncyBwcml2YXRlIGRhdGEgcmVnaW9uLCBub3QgaW4gdGhlIHB1YmxpYyBzdHJ1Y3QuCgoyMDA4LTEwLTA4IDEwOjA3OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSWYgd2UgY2FuJ3QgZ2V0IGEgY2FjaGUgZmlsZSBkb24ndCB0cnkgdG8gc2F2ZSBzb21ldGhpbmcgdG8gaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSk6CgkgIElmIHdlIGNhbid0IGdldCBhIGNhY2hlIGZpbGUgZG9uJ3QgdHJ5IHRvIHNhdmUgc29tZXRoaW5nIHRvIGl0LgoJICBEZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcnMgdXN1YWxseSBpc24ndCBhIGdvb2QgaWRlYS4KCjIwMDgtMTAtMDggMDg6NTQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6IElmIHdlIGdvdCBhIHRlbXBsYXRlIHZpYSBnX29iamVjdF9nZXQoKSwgYmUgc3VyZSB0byB1bnJlZiBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogSWYgd2UgZ290IGEKCSAgdGVtcGxhdGUgdmlhIGdfb2JqZWN0X2dldCgpLCBiZSBzdXJlIHRvIHVucmVmIGl0LgoJICAqIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOiBGaXggaW5jb3JyZWN0IGRvYy4KCjIwMDgtMTAtMDcgMTU6MTI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgU3BhcmMgQUJJIGNoZWNrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkgIEFkZCBTcGFyYyBBQkkgY2hlY2tzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENhc3Qgc2lnbmVkIGludGVnZXIgdG8gdW5zaWduZWQgdG8gYXZvaWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOC0xMC0wNyAxMjoyNjo0MCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IFVzZSBuZXcgR1NUX1JFQURfVUlOVDI0XyhMRXxCRSkgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2JlKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9iZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2JlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2JlKToKCSAgVXNlIG5ldyBHU1RfUkVBRF9VSU5UMjRfKExFfEJFKSBtYWNyb3MuCgoyMDA4LTEwLTA3IDEyOjAwOjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBbHdheXMgdXNlIHRoZSB1bmFsaWduZWQgdmFyaWFudHMgb2YgR1NUX1JFQURfVUlOVCogYW5kIEdTVF9XUklURV9VSU5UKiBhcyBpdCdzIHRvbyBlYXN5IHRvIGJyZWFrIHRoZSBJU08gQyBzdHJpY3QgYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWx3YXlzIHVzZSB0aGUgdW5hbGlnbmVkIHZhcmlhbnRzIG9mIEdTVF9SRUFEX1VJTlQqIGFuZCBHU1RfV1JJVEVfVUlOVCoKCSAgYXMgaXQncyB0b28gZWFzeSB0byBicmVhayB0aGUgSVNPIEMgc3RyaWN0IGFsaWFzaW5nIHJ1bGVzIHdpdGggc2ltcGxlCgkgIGNhc3RzIHRvIHRoZSBjb3JyZXNwb25kaW5nIHR5cGUgYW5kIHRoaXMgd291bGQgaW50cm9kdWNlIGhhcmQgdG8gZGVidWcKCSAgYnVncy4gRml4ZXMgYnVnICM1NDU3MTQuCgkgIEFQSTogQWRkIEdTVF9SRUFEX1VJTlQyNF8oTEV8QkUpIGFuZCBHU1RfV1JJVEVfVUlOVDI0XyhMRXxCRSkuCgoyMDA4LTEwLTA3IDA2OjU2OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQWRkICdTaW5jZScgYml0cyB0byBndGstZG9jIGNodW5rcyBmb3IgbmV3IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOiAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOgoJICBBZGQgJ1NpbmNlJyBiaXRzIHRvIGd0ay1kb2MgY2h1bmtzIGZvciBuZXcgQVBJLgoKMjAwOC0xMC0wNiAyMTo1Mjo1NyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZpeCBkb2N1bWVudGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2N1bWVudGF0aW9uCgoyMDA4LTEwLTA2IDE4OjAzOjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZywgZG9oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2csIGRvaAoKMjAwOC0xMC0wNiAxODowMTo0MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IE5ldyBBUEksIGEgZnJlZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBtYWxsb2NfZGF0YSB0byBmcmVlIGl0LiBCLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOiBOZXcgQVBJLCBhIGZyZWUgZnVuY3Rpb24KCSAgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgbWFsbG9jX2RhdGEgdG8gZnJlZSBpdC4gQmFzaWNhbGx5IGEgd2F5CgkgIHRvIGF2b2lkIHN1YmNsYXNzaW5nIHdoZW4gYWxsIHlvdSBuZWVkIGlzIGEgZGlmZmVyZW50IGZyZWUKCSAgZnVuY3Rpb24sIGkuZS4gZnJlZSgpIGluc3RlYWQgb2YgZ19mcmVlKCkuCgkgICogZ3N0L2dzdGJ1ZmZlci5jIChnc3RfYnVmZmVyX2ZpbmFsaXplKTogRnJlZSBtYWxsb2NfZGF0YSB2aWEKCSAgY2FsbGluZyB0aGUgZnJlZSBmdW5jdGlvbi4KCSAgKGdzdF9idWZmZXJfaW5pdCk6IEluaXRpYWxpemUgdGhlIGZyZWUgZnVuY3Rpb24gdG8gZ19mcmVlLgoKMjAwOC0xMC0wNiAxNzo1NzoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLio6IE5ldyBmdW5jdGlvbiwgZmluaXNoZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGdob3N0IHBhZC4gVXNlZnVsIGZvciBsYW5ndWFnZSBiaW5kaW5ncyBhbmQgc3ViY2xhc3NlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6IE5ldyBmdW5jdGlvbiwKCSAgZmluaXNoZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGdob3N0IHBhZC4gVXNlZnVsIGZvciBsYW5ndWFnZQoJICBiaW5kaW5ncyBhbmQgc3ViY2xhc3NlcnMgb2YgR3N0R2hvc3RQYWQuIEZpeGVzICM1MzkxMDguCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKTogVXNlIHRoZSBuZXcgY29uc3RydWN0b3IuCgoyMDA4LTEwLTA2IDE2OjE1OjAyICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdGJpbi5jOiBLZWVwIHRyYWNrIG9mIHBhZHMgdGhhdCBhcmUgYmVpbmcgbGlua2VkL3VubGlua2VkIGFuZCByZXN5bmMgdGhlIHN0YXRlIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlIG9uIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25ldyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBLZWVwIHRyYWNrIG9mIHBhZHMgdGhhdCBhcmUgYmVpbmcgbGlua2VkL3VubGlua2VkIGFuZCByZXN5bmMgdGhlIHN0YXRlCgkgIGNoYW5nZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfZGlyZWN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2NoYWluX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF91bmxpbmspLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwKCSAgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgU29tZSBjb2RlIGNsZWFudXBzLCB1c2UgbWFjcm9zIHRvIGNoZWNrIHBhZCBkaXJlY3Rpb24uCgkgIERvbid0IG5lZWQgdG8gdGFrZSB0aGUgbG9jayBvbiB0aGUgcGFkIGRpcmVjdGlvbi4KCSAgUG9zdCBzdHJ1Y3R1cmUgY2hhbmdlIHdoZW4gcGFkcyBhcmUgbGlua2VkL3VubGlua2VkLgoJICBDaGFuZ2Ugc29tZSBjaGVja3MgaW50byBfcmV0dXJuX2lmX2ZhaWwoKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICh0ZXN0X2xpbmtfc3RydWN0dXJlX2NoYW5nZV9zdGF0ZV9jaGFuZ2VkX3N5bmNfY2IpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZCB0ZXN0Y2FzZSBmb3IgcGFkIGxpbmsvdW5saW5rZSByZXN5bmMgZHVyaW5nIGEgc3RhdGUgY2hhbmdlLgoJICBGaXhlcyAjNTEwMzU0LgoKMjAwOC0xMC0wNiAxNTozMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcGxlbWVudCBTVFJVQ1RVUkVfQ0hBTkdFRCBtZXNzYWdlcy4gVGhlc2UgbWVzc2FnZXMgd2lsbCBiZSB1c2VkIHRvIHNpZ25hbCB0aGUgcGFyZW50IGJpbiBvZiBsaW5rL3VubGluayBvcGVyYXRpb25zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RydWN0dXJlX2NoYW5nZSksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdHJ1Y3R1cmVfY2hhbmdlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBJbXBsZW1lbnQgU1RSVUNUVVJFX0NIQU5HRUQgbWVzc2FnZXMuIFRoZXNlIG1lc3NhZ2VzIHdpbGwgYmUgdXNlZCB0bwoJICBzaWduYWwgdGhlIHBhcmVudCBiaW4gb2YgbGluay91bmxpbmsgb3BlcmF0aW9ucyB0aGF0IGNvdWxkIHJlcXVpcmUgYQoJICByZXN5bmMgd2hlbiBkb2luZyBhIHN0YXRlIGNoYW5nZS4gU2VlICMjNTEwMzU0LgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19zdHJ1Y3R1cmVfY2hhbmdlKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9zdHJ1Y3R1cmVfY2hhbmdlKCkKCjIwMDgtMTAtMDYgMTU6MjE6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVhcmsuKjogQWRkIHNvbWUgbW9yZSBxdWFya3MgZm9yIG5ldyBtZXNzYWdlLiBTZWUgIzUxMDM1NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1YXJrLmM6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBzb21lIG1vcmUgcXVhcmtzIGZvciBuZXcgbWVzc2FnZS4gU2VlICM1MTAzNTQuCgoyMDA4LTEwLTA2IDEyOjU3OjM5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgQVBJIHRhZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBBUEkgdGFnCgoyMDA4LTEwLTA2IDEyOjQxOjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBZGQgYml0IHJlYWRlciBhbmQgYnl0ZSByZWFkZXIgY2xhc3NlcywgaW5jbHVkaW5nIGRvY3VtZW50YXRpb24gYW5kIGFuIGV4dGVuc2l2ZSB1bml0IHRlc3Qgc3VpdGUuIEZpeGVzIGJ1ZyAjNTUzNTU0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOiAoZ3N0X2JpdF9yZWFkZXJfbmV3KSwKCSAgKGdzdF9iaXRfcmVhZGVyX25ld19mcm9tX2J1ZmZlciksIChnc3RfYml0X3JlYWRlcl9mcmVlKSwKCSAgKGdzdF9iaXRfcmVhZGVyX2luaXQpLCAoZ3N0X2JpdF9yZWFkZXJfaW5pdF9mcm9tX2J1ZmZlciksCgkgIChnc3RfYml0X3JlYWRlcl9zZXRfcG9zKSwgKGdzdF9iaXRfcmVhZGVyX2dldF9wb3MpLAoJICAoZ3N0X2JpdF9yZWFkZXJfZ2V0X3JlbWFpbmluZyksIChnc3RfYml0X3JlYWRlcl9za2lwKSwKCSAgKGdzdF9iaXRfcmVhZGVyX3NraXBfdG9fYnl0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogKEdET1VCTEVfU1dBUF9MRV9CRSksCgkgIChHRkxPQVRfU1dBUF9MRV9CRSksIChnc3RfYnl0ZV9yZWFkZXJfbmV3KSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9uZXdfZnJvbV9idWZmZXIpLCAoZ3N0X2J5dGVfcmVhZGVyX2ZyZWUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2luaXQpLCAoZ3N0X2J5dGVfcmVhZGVyX2luaXRfZnJvbV9idWZmZXIpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3NldF9wb3MpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9wb3MpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmcpLCAoZ3N0X2J5dGVfcmVhZGVyX3NraXApLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50OCksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDgpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDgpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50OCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9iZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfYmUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9iZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9iZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9iaXRfcmVhZGVyX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9zdWl0ZSk6CgkgIEFkZCBiaXQgcmVhZGVyIGFuZCBieXRlIHJlYWRlciBjbGFzc2VzLCBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbgoJICBhbmQgYW4gZXh0ZW5zaXZlIHVuaXQgdGVzdCBzdWl0ZS4gRml4ZXMgYnVnICM1NTM1NTQuCgoyMDA4LTEwLTA2IDA4OjU4OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyB3aGlsZSBmbHVzaGluZyBhbmQgb3RoZXIgaW50ZXJtZWRpYXRlIHN0YXRlIGNoYW5nZXMuIEZpeGVzICM1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyB3aGlsZSBmbHVzaGluZyBhbmQgb3RoZXIgaW50ZXJtZWRpYXRlIHN0YXRlCgkgIGNoYW5nZXMuIEZpeGVzICM1NTM4NzQuCgoyMDA4LTEwLTA2IDA4OjQ1OjQyICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggc21hbGwgcmVmb3VudCBsZWFrIGluIGNhcHMgY29tcGF0aWJpbGl0eSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6CgkgIE9yaWdpbmFsIHBhdGNoIGJ5IDogU2ltb24gRGVzY2FyaWVzCgkgIEZpeCBzbWFsbCByZWZvdW50IGxlYWsgaW4gY2FwcyBjb21wYXRpYmlsaXR5IGNoZWNrLgoJICBGaXhlcyAjNTUxNjc2LgoKMjAwOC0xMC0wNiAwNzozMDo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6IEZpeCAwLjggYXBpIHVzYWdlIGluIGV4YW1wbGUuIEZpeGVzICM1NTQ1NjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkgIEZpeCAwLjggYXBpIHVzYWdlIGluIGV4YW1wbGUuIEZpeGVzICM1NTQ1NjEKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgQ2hhbmdlIDAuOSB0byAwLjEwIGhlcmUuCgoyMDA4LTEwLTA2IDA3OjEzOjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtZGF0YS54bWw6IENoYW5nZSAiZXZlbnQtZXZlbnQgaW50ZXJhY3Rpb24iIHRvICJlbGVtZW50LWVsZW1lbnQgaW50ZXJhY3Rpb24iLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZGF0YS54bWw6CgkgIENoYW5nZSAiZXZlbnQtZXZlbnQgaW50ZXJhY3Rpb24iIHRvICJlbGVtZW50LWVsZW1lbnQgaW50ZXJhY3Rpb24iLgoJICBGaXhlcyAjNTUyNDQ4LiBBbHNvIGZpeCBzYW1wbGUgY29kZSBmb3Igc2Vla2luZyBhbmQgZG8gbW9yZSAwLjgtPjAuMTAKCSAgdXBkYXRlcy4KCjIwMDgtMTAtMDUgMTA6MDE6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjEuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMS4xCgo9PT0gcmVsZWFzZSAwLjEwLjIxID09PQoKMjAwOC0xMC0wMiAyMzo1OTo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjIxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMjEKCjIwMDgtMTAtMDIgMjI6NDI6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wOS0yOCAyMjo0OTo1NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuMjAuNCBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjAuNCBwcmUtcmVsZWFzZQoKMjAwOC0wOS0yOCAyMToxOToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggYXNzZXJ0aW9uIGluIGJhc2V0cmFuc2Zvcm0gd2hlbiB0aGUgc3ViY2xhc3MgY2hvb3NlcyBub3QgdG8gYWxsb2NhdGUgYSBidWZmZXIgaW4gcHJlcGFyZV9idWZmZXIoKSwgYW5kIG1ha2UgY2Fwc2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIEZpeCBhc3NlcnRpb24gaW4gYmFzZXRyYW5zZm9ybSB3aGVuIHRoZSBzdWJjbGFzcyBjaG9vc2VzIG5vdCB0bwoJICBhbGxvY2F0ZSBhIGJ1ZmZlciBpbiBwcmVwYXJlX2J1ZmZlcigpLCBhbmQgbWFrZSBjYXBzZmlsdGVyIGVycm9yIG91dAoJICBjbGVhbmx5IGlmIHJlcXVlc3RlZCB0byBhcHBseSBjYXBzIHRoYXQgZG9uJ3QgY29tcGxldGVseSBzcGVjaWZ5IHRoZQoJICBidWZmZXIuIEZpeGVzICM1NTE1MDkKCjIwMDgtMDktMjQgMTU6MDM6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVGFrZSBuZXcgY2FwcyByZWYgYmVjYXVzZSBvdXIgb2xkIG9uZSBtaWdodCBoYXZlIGJlZW4gZ29uZSB3aGVuIHRoZSBzdWJjbGFzcyBwZXJmb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgVGFrZSBuZXcgY2FwcyByZWYgYmVjYXVzZSBvdXIgb2xkIG9uZSBtaWdodCBoYXZlIGJlZW4gZ29uZSB3aGVuIHRoZQoJICBzdWJjbGFzcyBwZXJmb3JtcyBhIGdzdF9wYWRfc2V0X2NhcHMoKSBvbiB0aGUgc3JjcGFkLiBTZWUgIzU0ODc2NC4KCjIwMDgtMDktMTYgMTU6MzU6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBBbHNvIGNvbW1pdCBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFsc28gY29tbWl0IENoYW5nZUxvZwoKMjAwOC0wOS0xNiAxNToyNDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBHYWguIENvbW1pdCBwcmUtcmVsZWFzZSBpbmZvIHRoYXQgc2hvdWxkIGhhdmUgZ29uZSBpbiBsYXN0IHdlZWsgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdhaC4gQ29tbWl0IHByZS1yZWxlYXNlIGluZm8gdGhhdCBzaG91bGQgaGF2ZSBnb25lIGluIGxhc3Qgd2VlayBhbHJlYWR5LgoJICAyMDA4LTA5LTEwICBKYW4gU2NobWlkdCAgPGphbi5zY2htaWR0QHN1bi5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjIwLjIgcHJlLXJlbGVhc2UKCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2lkLnBvOgoJICAqIHBvL3B0X0JSLnBvOgoJICBOZXcgdHJhbnNsYXRpb25zLgoKMjAwOC0wOS0xNSAxNToxODowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBEbyBub3QgcHJvYmUgYXZhaWxhYmlsaXR5IG9mIGNoZWNrIHVuaXQgdGVzdCBsaWJyYXJ5IHdoZW4gY3Jvc3MgY29tcGlsaW5nLCBhcyB0ZXN0IHdvdWxkIG5vdCB3b3JrIGFueXdhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG8gbm90IHByb2JlIGF2YWlsYWJpbGl0eSBvZiBjaGVjayB1bml0IHRlc3QgbGlicmFyeSB3aGVuIGNyb3NzCgkgIGNvbXBpbGluZywgYXMgdGVzdCB3b3VsZCBub3Qgd29yayBhbnl3YXkuIEFsc28gY2xlYW51cCB2ZXJib3NlIG91dHB1dAoJICBvZiB0aGUgY2hlY2sgdGVzdC4gRml4ZXMgIzU1MTk1Mi4KCjIwMDgtMDktMTQgMjI6MDE6MzAgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBBdm9pZCBsZWFraW5nIHRoZSBwYXJlbnQgcmVmIHdoZW4gd2UgZmFpbCBjaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhlIGVsZW1lbnQgdXNpbmcgZ3N0X2VsZW1lbnRfc3luY18uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCk6CgkgIEF2b2lkIGxlYWtpbmcgdGhlIHBhcmVudCByZWYgd2hlbiB3ZSBmYWlsIGNoYW5naW5nIHRoZSBzdGF0ZSBvZiB0aGUKCSAgZWxlbWVudCB1c2luZyBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KCkuIEZpeGVzICM1NTE5NzguCgoyMDA4LTA5LTExIDE2OjU2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6IFJlbW92ZSBzb21lIGJpdHMgdGhhdCBubyBsb25nZXIgYXBwbHksIHVwZGF0ZSBvdGhlcnMgKCM1NTE2NDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDo6CgkgIFJlbW92ZSBzb21lIGJpdHMgdGhhdCBubyBsb25nZXIgYXBwbHksIHVwZGF0ZSBvdGhlcnMgKCM1NTE2NDIpLgoKMjAwOC0wOS0wOSAxODo0NzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjogQWRkIEdTVF9EQVRBRElSLCBoYXJkLWNvZGUgY3B1IHRvIHg4Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBBZGQgR1NUX0RBVEFESVIsIGhhcmQtY29kZSBjcHUgdG8geDg2LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBTcGFjZXMgdG8gdGFicy4KCjIwMDgtMDktMDMgMDU6NTI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBGaXggU2luY2U6IG1hcmtlcnMgZm9yIG5ldyBnZW8gdGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRml4IFNpbmNlOiBtYXJrZXJzIGZvciBuZXcgZ2VvIHRhZ3MuCgoyMDA4LTA5LTAyIDIwOjAwOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBGaXggYWN0dWFsIHRhZyBuYW1lIGRlZmluZSBhZnRlciByZW5hbWluZyBmcm9tIGFsdGl0dWRlIHRvIGVsZXZhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRml4IGFjdHVhbCB0YWcgbmFtZSBkZWZpbmUgYWZ0ZXIgcmVuYW1pbmcgZnJvbSBhbHRpdHVkZSB0byBlbGV2YXRpb24uCgoyMDA4LTA5LTAxIDE0OjA1OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgZmFsbGJhY2sgd2hlbiBjYWxsaW5nIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIG9uIGFuIGVsZW1lbnQgdGhhdCBpbXBsZW1lbnRzIHRoZSBuZXcgaW50ZXJuYWxfbGluayBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGFkZF91bnJlZl9wYWRfdG9fbGlzdCksCgkgIChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgQWRkIGZhbGxiYWNrIHdoZW4gY2FsbGluZyB0aGUgZGVwcmVjYXRlZCBmdW5jdGlvbiBvbiBhbiBlbGVtZW50IHRoYXQKCSAgaW1wbGVtZW50cyB0aGUgbmV3IGludGVybmFsX2xpbmsgaGFuZGxlci4KCjIwMDgtMDktMDEgMTM6MzU6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBuZXcgdGFncyBmb3IgZ2VvIGxvY2F0aW9uIGFuZCBjbGFyaWZ5IHB1cnBvc2Ugb2YgZXhpc3RpbmcgbG9jYXRpb24gdGFnLiBGaXhlcyAjNDgxMTY5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBZGQgbmV3IHRhZ3MgZm9yIGdlbyBsb2NhdGlvbiBhbmQgY2xhcmlmeSBwdXJwb3NlIG9mIGV4aXN0aW5nIGxvY2F0aW9uCgkgIHRhZy4gRml4ZXMgIzQ4MTE2OQoKMjAwOC0wOS0wMSAxMToyNzo0NSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIHRocmVhZC1zYWZlIGludGVybmFsIGxpbmtzIGl0ZXJhdG9yLiBGaXhlcyAjNTQ5NTA0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksIChnc3RfcGFkX2Rpc3BhdGNoZXIpOgoJICBVc2UgdGhyZWFkLXNhZmUgaW50ZXJuYWwgbGlua3MgaXRlcmF0b3IuIEZpeGVzICM1NDk1MDQuCgoyMDA4LTA5LTAxIDEwOjQyOjA0ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgQWRkIHRocmVhZHNhZmUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGZvciBnZXR0aW5nIGludGVybmFsIGxpbmtzIG9mIGFuIGVsZW1lbnQuIERlcHJlY2F0ZSB0aGUgb2xkIGludGVybmFsIGxpbmtzIGZ1bmN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLAoJICAoZ3N0X3BhZF9zZXRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19mdW5jdGlvbiksCgkgIChpbnRfbGlua19pdGVyX2RhdGFfZnJlZSksIChpdGVyYXRlX3BhZCksCgkgIChnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCksCgkgIChnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MpLCAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3MpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIHRocmVhZHNhZmUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGZvciBnZXR0aW5nIGludGVybmFsIGxpbmtzIG9mIGFuCgkgIGVsZW1lbnQuIERlcHJlY2F0ZSB0aGUgb2xkIGludGVybmFsIGxpbmtzIGZ1bmN0aW9ucy4KCSAgQVBJOkdzdFBhZDo6Z3N0X3BhZF9zZXRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19mdW5jdGlvbigpCgkgIEFQSTpHc3RQYWQ6OkdzdFBhZEl0ZXJJbnRMaW5rRnVuY3Rpb24KCSAgQVBJOkdzdFBhZDo6Z3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKCkKCSAgQVBJOkdzdFBhZDo6Z3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQoKQoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19pdGVyYXRlX2ludGVybmFsX2xpbmtzKSwKCSAgKGdzdF9wcm94eV9wYWRfaW5pdCk6CgkgIEltcGxlbWVudCB0aHJlYWRzYWZlIGludGVybmFsIGxpbmtzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAodGVlX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBpbnRlcm5hbCBsaW5rcyBvbiB0ZWUuIFNlZSAjNTQ5NTA0LgoKMjAwOC0wOC0zMCAxMjo1Nzo0NyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBsaWJzL3RyYW5zZm9ybTEgdGVzdCByZXF1aXJlcyBsaWJzL3Rlc3RfdHJhbnNmb3JtLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGxpYnMvdHJhbnNmb3JtMSB0ZXN0IHJlcXVpcmVzIGxpYnMvdGVzdF90cmFuc2Zvcm0uYwoKMjAwOC0wOC0zMCAxMjowNzo0MSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRGllIGV2aWwgZGVhZGxvY2ssIGRpZSAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBEaWUgZXZpbCBkZWFkbG9jaywgZGllICEKCjIwMDgtMDgtMzAgMTE6NTU6NTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBGaXggYWxsIGxlYWtzIGR1ZSB0byB0aGUgYnVnIGluIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgYnkgd2hpY2ggaXQgZG9lcyBub3Qgc3RlYWwgdGhlIHJlZmNvdW50IG9mIHRoZSBnaXZlbiBjYXBzIGFzIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKG5hbWVfaXNfdmFsaWQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggYWxsIGxlYWtzIGR1ZSB0byB0aGUgYnVnIGluIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgYnkgd2hpY2ggaXQgZG9lcwoJICBub3Qgc3RlYWwgdGhlIHJlZmNvdW50IG9mIHRoZSBnaXZlbiBjYXBzIGFzIHN0YXRlZC4KCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCjIwMDgtMDgtMjkgMTc6NTg6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuKjogQWZ0ZXIgMyB5ZWFycyBpdCdzIGFib3V0IHRpbWUgdG8gcmV2aXNlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBpdGVyYXRvciBvYmplY3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWZ0ZXIgMyB5ZWFycyBpdCdzIGFib3V0IHRpbWUgdG8gcmV2aXNlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZQoJICBpdGVyYXRvciBvYmplY3RzLgoKMjAwOC0wOC0yOSAxNjoxMDo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogTWFrZSB0aGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gbGVzcyB0aHJlYWQtdW5zYWZlIGFuZCBhZGQgc29tZSBjb21tZW50cywgZHVubm8gd2h5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgTWFrZSB0aGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gbGVzcyB0aHJlYWQtdW5zYWZlIGFuZCBhZGQgc29tZQoJICBjb21tZW50cywgZHVubm8gd2h5LgoKMjAwOC0wOC0yOSAxNDoxMjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBJbmNsdWRlIGdzdGluZm8uaCBldmVuIGlmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRyBpcyBkZWZpbmVkLiBGaXhlcyBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBJbmNsdWRlIGdzdGluZm8uaCBldmVuIGlmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRyBpcyBkZWZpbmVkLiBGaXhlcwoJICBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuCgoyMDA4LTA4LTI5IDAwOjM0OjU4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBSZXZlcnQgbGFzdCBjaGFuZ2UsIHNpbmNlIGl0IGJyZWFrcyBhIGZldyBwbHVnaW5zLCBmZm1wZWcsIGFsYXcsIGFuZCBtdWxhdy4gIENvZGUgaXMgY29ycmVjdCwgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLCBzaW5jZSBpdCBicmVha3MKCSAgYSBmZXcgcGx1Z2lucywgZmZtcGVnLCBhbGF3LCBhbmQgbXVsYXcuICBDb2RlIGlzIGNvcnJlY3QsCgkgIGJ1dCBzaG91bGRuJ3QgYmUgZW5hYmxlZCB1bnRpbCB3ZSd2ZSByZWxlYXNlZCBmaXhlZCB2ZXJzaW9ucwoJICBvZiAtZ29vZCBhbmQgLWZmbXBlZy4KCjIwMDgtMDgtMjggMjA6MTI6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogUHV0IHRoZSBnc3Rfb2JqZWN0X2dldF9uYW1lKCkgYmFjayBpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBQdXQgdGhlIGdzdF9vYmplY3RfZ2V0X25hbWUoKSBiYWNrIGluLgoKMjAwOC0wOC0yOCAxMjozMjoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IFRoZSBvbGQgYmVoYXZpb3VyIHdhcyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjYXBzLiBBcyB3ZSBub3cgY2FsbCBnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBUaGUgb2xkIGJlaGF2aW91ciB3YXMgdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25ldygpIHRha2VzIG93bmVyc2hpcCBvZgoJICB0aGUgY2Fwcy4gQXMgd2Ugbm93IGNhbGwgZ19vYmplY3RfbmV3KCkgd2hpY2ggY2FsbHMgZ19vYmplY3Rfc2V0KCkgYW5kCgkgIHdoaWNoIGNvcGllcyB0aGUgY2Fwcywgd2UgaGF2ZSB0byB1bnJlZiB0aGVtIHRvIG5vdCBsZWFrIHRoZW0uIEZpeGVzCgkgIG1ha2UgdmFsZ3JpZCBmb3IgbWUuCgoyMDA4LTA4LTI4IDEwOjQ1OjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IERvbid0IHNlZ2ZhdWx0IG9uIGlucHV0IGxpa2UgInRlbDorMS0xMjMtNTU1LTEyMzQiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIERvbid0IHNlZ2ZhdWx0IG9uIGlucHV0IGxpa2UgInRlbDorMS0xMjMtNTU1LTEyMzQiLgoKMjAwOC0wOC0yNyAwNzoxODozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IGFsc28gaW5jbHVkZSBPYmplY3RUeXBlIGluIGdzdF9vYmplY3RfZ2V0X3BhdGhfc3RyaW5nKCkuIE1ha2VzIGdzdC1sYXVuY2ggLXYgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCBhbHNvIGluY2x1ZGUgT2JqZWN0VHlwZSBpbgoJICBnc3Rfb2JqZWN0X2dldF9wYXRoX3N0cmluZygpLiBNYWtlcyBnc3QtbGF1bmNoIC12IGJpdCBtb3JlIHVzZWZ1bC4KCjIwMDgtMDgtMjcgMDM6MDQ6MjMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0IHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdAoJICBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBUaGlzIGNhdXNlcyBwcm9ibGVtcyB3aXRoIGNvbnZlcnRpbmcgbmVnYXRpdmUgZ3JhbnVsZXBvcwoJICB2YWx1ZXMgZm9yIERpcmFjLgoJICAqIGdzdC9nc3RxdWVyeS5jOiBTYW1lLCBnc3RfcXVlcnlfbmV3X2NvbnZlcnQoKS4KCjIwMDgtMDgtMjcgMDI6NTk6NTkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0IHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdAoJICBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBUaGlzIGNhdXNlcyBwcm9ibGVtcyB3aXRoIGNvbnZlcnRpbmcgbmVnYXRpdmUgZ3JhbnVsZXBvcwoJICB2YWx1ZXMgZm9yIERpcmFjLgoKMjAwOC0wOC0yNSAxMTowNjozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZyB0byB0aGUgY2xvY2sgc2xhdmluZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZyB0byB0aGUgY2xvY2sgc2xhdmluZyBjb2RlLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBiYXNldHJhbnNmb3JtIG1ldGhvZC4KCjIwMDgtMDgtMjUgMTE6MDA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFRha2UgdGhlIChyZWN1cnNpdmUpIHN0YXRlIGxvY2sgYmV0d2VlbiBnZXR0aW5nIHRoZSBsb2NrZWQgc3RhdGUgb2YgYW4gZWxlbWVudCBhbmQgY2hhbmdpbmcgdGhlIGVsZW1lbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFRha2UgdGhlIChyZWN1cnNpdmUpIHN0YXRlIGxvY2sgYmV0d2VlbiBnZXR0aW5nIHRoZSBsb2NrZWQgc3RhdGUgb2YgYW4KCSAgZWxlbWVudCBhbmQgY2hhbmdpbmcgdGhlIGVsZW1lbnQgc3RhdGUuIFRoaXMgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0bwoJICBsb2NrIGFuIGVsZW1lbnQncyBzdGF0ZSBhbmQgdGhlbiBjaGFuZ2UgaXRzIHN0YXRlIHdpdGhvdXQgcmFjZXMuCgoyMDA4LTA4LTI1IDEwOjUyOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBXaGVuIGFuIGVsZW1lbnQgaXMgaW4gdGhlIGxvY2tlZCBzdGF0ZSB3ZSBzdGlsbCB3YW50IHRvIHVwZGF0ZSB0aGUgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgV2hlbiBhbiBlbGVtZW50IGlzIGluIHRoZSBsb2NrZWQgc3RhdGUgd2Ugc3RpbGwgd2FudCB0byB1cGRhdGUgdGhlCgkgIGJhc2VfdGltZSBvZiB0aGUgZWxlbWVudC4KCjIwMDgtMDgtMjEgMTE6MTc6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXNlIHRoZSByZXN1bHQgZnJvbSBnc3RfcGFkX3NldF9jYXBzKCkgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGUgZWxlbWVudCBhbHdheXMgYWNjZXB0ZWQgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBVc2UgdGhlIHJlc3VsdCBmcm9tIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZSBlbGVtZW50CgkgIGFsd2F5cyBhY2NlcHRlZCB0aGUgY2FwcyBjb21wdXRlZCBieSB0aGUgZGVmYXVsdCBuZWdvdGlhdGUgZnVuY3Rpb24uCgoyMDA4LTA4LTIwIDEwOjUyOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wbGVtZW50IG1ldGhvZCBmb3IgcmVjb25maWd1cmluZyBiYXNldHJhbnNmb3JtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBJbXBsZW1lbnQgbWV0aG9kIGZvciByZWNvbmZpZ3VyaW5nIGJhc2V0cmFuc2Zvcm0uCgkgIEFQSTogR3N0QmFzZVRyYW5zZm9ybTo6Z3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKCkKCjIwMDgtMDgtMjAgMDc6MjI6MTEgKzAwMDAgIE11cnJheSBDdW1taW5nIDxtdXJyYXljQG11cnJheWMuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE1lbnRpb24gdGhhdCB0aGlzIGlzIGp1c3QgbGlrZSBnc3RfYnVmZmVyX21lcmdlKCkgYnV0IHdpdGggZXh0cmEgdW5yZWZmaW5nIGZvciBDIGNvZGVycy4gQWR2aXNlIGxhbmd1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTXVycmF5IEN1bW1pbmcgPG11cnJheWNAbXVycmF5Yy5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1lbnRpb24gdGhhdCB0aGlzIGlzIGp1c3QgbGlrZSBnc3RfYnVmZmVyX21lcmdlKCkgYnV0IHdpdGggZXh0cmEKCSAgdW5yZWZmaW5nIGZvciBDIGNvZGVycy4gQWR2aXNlIGxhbmd1YWdlIGJpbmRpbmdzIG5vdCB0byB3cmFwIGl0LgoJICBGaXhlcyBCdWcgIzUzMzg1Ni4KCSAgQWxzbyBmaXggZmlsZSBjb21tZW50LgoKMjAwOC0wOC0yMCAwNzowMzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IENhbGwgc3VwZXI6OmV2ZW50KCkgd2hlbiBub3QgaGFuZGxpbmcgaXQuIEZpeGVzICM1NDQ4NTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIENhbGwgc3VwZXI6OmV2ZW50KCkgd2hlbiBub3QgaGFuZGxpbmcgaXQuIEZpeGVzICM1NDQ4NTUuCgoyMDA4LTA4LTE5IDE3OjIzOjE4ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBVc2UgNjQgYml0IHZhcmlhbnRzIG9mIHN0YXQgZnVuY3Rpb25zIG9uIHdpbjMyLCB0byBlbmFibGUgc3VwcG9ydCBvZiBsYXJnZSBmaWxlcyB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgVXNlIDY0IGJpdCB2YXJpYW50cyBvZiBzdGF0IGZ1bmN0aW9ucyBvbiB3aW4zMiwgdG8gZW5hYmxlIHN1cHBvcnQKCSAgb2YgbGFyZ2UgZmlsZXMgdGhlcmUuCgkgIEZpeGVzICM1NDcyNzcuCgoyMDA4LTA4LTE5IDE2OjQ3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiB0aGUgZmx1c2hpbmcgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgaW4gdGhlIGZsdXNoaW5nIHN0YXRlLgoJICBBbHNvIHJlcG9ydCB0aGUgcG9zaXRpb24gd2hlbiB3ZSBhcmUgbm90IHlldCBwcmVyb2xsZWQgYnV0IHdlCgkgIGhhdmUgYSBuZXdzZWdtZW50IGV2ZW50LiBGaXhlcyAjNTQzNDQ0LgoJICBJbXByb3ZlIHRoZSBwdWxsLWJhc2VkIG5lZ290aWF0aW9uIGNvZGUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgQWRkIHRlc3RjYXNlIGZvciBwb3NpdGlvbiByZXBvcnRpbmcgd2hpbGUgZmx1c2hpbmcgaW4gUEFVU0VEIGFuZAoJICBQTEFZSU5HLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXBkYXRlIHVuaXQtdGVzdCwgd2UgY2FuIG5vdyBxdWVyeSB0aGUgcG9zaXRpb24gYXMgc29vbiBhcyB3ZSByZWNlaXZlIGEKCSAgTkVXU0VHTUVOVCBldmVudC4KCjIwMDgtMDgtMTkgMDg6NTI6MDUgKzAwMDAgIEphc29uIFpoYW8gPGUzNDIzY0Btb3Rvcm9sYS5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gdGhlIHN1YmNsYXNzIGV2ZW50IGhhbmRsZXIgcmVsZWFzZXMgdGhlIFBSRVJPTExfTE9DSywgd2UgY291bGQgYmUgaW4gdGhlIGZsdXNoaW5nIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBKYXNvbiBaaGFvIDxlMzQyM2MgYXQgbW90b3JvbGEgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpOgoJICBXaGVuIHRoZSBzdWJjbGFzcyBldmVudCBoYW5kbGVyIHJlbGVhc2VzIHRoZSBQUkVST0xMX0xPQ0ssIHdlIGNvdWxkIGJlCgkgIGluIHRoZSBmbHVzaGluZyBzdGF0ZSBhbmQgd2UgaGF2ZSB0byBpZ25vcmUgdGhlIGV2ZW50LiBGaXhlcyAjNTQ4Mzk0LgoKMjAwOC0wOC0xOCAxMToyODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRG9jdW1lbnQgR1NUX1JFR0lTVFJZX1VQREFURSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBEb2N1bWVudCBHU1RfUkVHSVNUUllfVVBEQVRFIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAwOC0wOC0xOCAwOTo1OToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBJZiB0aGUgZWxlbWVudCBpcyBjb25maWd1cmVkIGluIHBhc3N0aHJvdWdoIG1vZGUgYnV0IHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZ2F2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBJZiB0aGUgZWxlbWVudCBpcyBjb25maWd1cmVkIGluIHBhc3N0aHJvdWdoIG1vZGUgYnV0IHRoZQoJICBwcmVwYXJlX291dHB1dF9idWZmZXIgZ2F2ZSB1cyBhIG5ldyBvdXRwdXQgYnVmZmVyLCBkaXNjYXJkIHRoYXQgYnVmZmVyCgkgIGFuZCByZXVzZSB0aGUgaW5wdXQgYnVmZmVyLgoKMjAwOC0wOC0xNSAxNzowMTowNyArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLio6IFByb3RlY3QgcGFkX2FsbG9jIHdpdGggYSBuZXcgbG9jayBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgbm90aGluZyBpcyBwZXJmb3JtaW5nIGEgcGFkXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXMgYXQgdGFuZGJlcmcgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2ZpbmFsaXplKSwgKGdzdF90ZWVfaW5pdCksCgkgIChnc3RfdGVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfdGVlX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF90ZWVfZmluZF9idWZmZXJfYWxsb2MpLCAoZ3N0X3RlZV9idWZmZXJfYWxsb2MpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFByb3RlY3QgcGFkX2FsbG9jIHdpdGggYSBuZXcgbG9jayBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgbm90aGluZyBpcwoJICBwZXJmb3JtaW5nIGEgcGFkX2FsbG9jIHdoZW4gcmVtb3ZpbmcgdGhlIHBhZC4gRml4ZXMgIzU0NzgzNS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKGJ1ZmZlcl9hbGxvY19oYXJuZXNzX3NldHVwKSwKCSAgKGJ1ZmZlcl9hbGxvY19oYXJuZXNzX3RlYXJkb3duKSwgKGFwcF90aHJlYWRfZnVuYyksCgkgIChmaW5hbF9zaW5rcGFkX2J1ZmZlcmFsbG9jKSwgKEdTVF9TVEFSVF9URVNUKSwgKHRlZV9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RjYXNlIGZvciBzaHV0ZG93biByYWNlLgoKMjAwOC0wOC0xNCAyMDowNTozMyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuaDogQWRkIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBkb2MKCjIwMDgtMDgtMTQgMTY6Mzc6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogR28gb3ZlciB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGFnYWluIGFuZCBtYWtlIHN1cmUgd2UgYWx3YXlzIGVuZCB1cCBhbGxvY2F0aW5nIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBHbyBvdmVyIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYWdhaW4gYW5kIG1ha2Ugc3VyZSB3ZSBhbHdheXMgZW5kIHVwCgkgIGFsbG9jYXRpbmcgYSBidWZmZXIuCgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCSAgQXZvaWQgZG9pbmcgcGFkIGFsbG9jIHdoZW4gd2UgaGF2ZSBhIHBlbmRpbmcgc3VnZ2VzdGlvbiBiZWNhdXNlIHdlCgkgIGNhbm5vdCB5ZXQgZGVhbCB3aXRoIGNoYW5naW5nIGNhcHMgaW4gdGhhdCBjYXNlLiBGaXhlcyAjNTQ3NzI4CgoyMDA4LTA4LTE0IDE0OjI2OjIwICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IEFkZCBvbmUgbW9yZSBpbWFnZSBzaG93aW5nIGRpZmZlcmVudCB0aW1lcyB0b2dldGhlciB3aXRoIGEgZGVzY3JpYmluZyBwYXJhZ3JhcGguIEZpeGVzICM1NDc3MjkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgICogZG9jcy9tYW51YWwvY2xvY2tzLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1jbG9ja3Muc3ZnOgoJICBBZGQgb25lIG1vcmUgaW1hZ2Ugc2hvd2luZyBkaWZmZXJlbnQgdGltZXMgdG9nZXRoZXIgd2l0aCBhIGRlc2NyaWJpbmcKCSAgcGFyYWdyYXBoLiBGaXhlcyAjNTQ3NzI5LgoKMjAwOC0wOC0xNCAxNDowNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogQWRkIG5ldyBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBtZXRob2QuCgoyMDA4LTA4LTE0IDEzOjU3OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IG92ZXJ3cml0ZSB0aGUgb3V0c2l6ZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBleHBlY3RlZCBzaXplIG9mIGEgbmV3IGJ1ZmZlciBiZWNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCk6CgkgIERvbid0IG92ZXJ3cml0ZSB0aGUgb3V0c2l6ZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBleHBlY3RlZCBzaXplIG9mIGEgbmV3CgkgIGJ1ZmZlciBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgaXQgaW4gY2FzZSB3ZSBjYW5ub3QgcHJvY2VzcyB0aGUgbmV3CgkgIGJ1ZmZlci4KCSAgV2hlbiBjb252ZXJ0aW5nIHRoZSBzaXplIG9mIHRoZSBuZXcgYnVmZmVyIHRvIGFuIHVwc3RyZWFtIHNpemUsIGFjdHVhbGx5CgkgIHVzZSB0aGUgZXhwZWN0ZWQgc2l6ZSBvZiB0aGUgYnVmZmVyLCBub3Qgc29tZSBvdGhlciByYW5kb20gdmFsdWUuCgkgIFVzZSBhbiBhdG9taWMgaW50IHRvIHNpZ25hbCB0aGF0IGEgbmV3IHVwc3RyZWFtIGNhcHMgc3VnZ2VzdGlvbiBpcwoJICBhdmFpbGFibGUuCgkgIFdoZW4gd2UgY2FuIGNvbnZlcnQgdGhlIGN1cnJlbnQgYnVmZmVyIHRvIGEgbmV3IGZvcm1hdCwgY2hlY2sgaWYgdGhlCgkgIGJ1ZmZlciBzaXplIGlzIG9mIHRoZSBleHBlY3RlZCBzaXplIGFuZCBhbGxvY2F0ZSBhIG5ldyBidWZmZXIgb2YgdGhlCgkgIGV4cGVjdGVkIHNpemUgd2hlbiB0aGlzIGlzIG5vdCB0aGUgY2FzZS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgcmVtb3ZlIGlmZGVmZmVkIGNvZGUgZnJvbSB0aGUgdW5pdCB0ZXN0LgoKMjAwOC0wOC0xMiAxODo0ODo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGtnY29uZmlnLzogUmVtb3ZlIC1sZ3N0Y29udHJvbC0wLjEwIHdoaWNoIG5ldmVyIHdvcmtlZCBhbnl3YXkgYXMgdGhlIGxpYiBpcyBjYWxsZWQgZ3N0Y29udHJvbGxlci0wLjEwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIFJlbW92ZSAtbGdzdGNvbnRyb2wtMC4xMCB3aGljaCBuZXZlciB3b3JrZWQgYW55d2F5IGFzIHRoZSBsaWIgaXMKCSAgY2FsbGVkIGdzdGNvbnRyb2xsZXItMC4xMC4KCjIwMDgtMDgtMTIgMDY6Mjc6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFJlbW92ZSBkb3VibGUgaW50ZXJmYWNlIGZyb20gZG9jLXN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIFJlbW92ZSBkb3VibGUgaW50ZXJmYWNlIGZyb20gZG9jLXN0cmluZy4KCjIwMDgtMDgtMTIgMDY6MTY6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggaGVhZGluZ3MgaW4gZG9jcyBhbmQgZ3RrLWRvYyB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZpeCBoZWFkaW5ncyBpbiBkb2NzIGFuZCBndGstZG9jIHdhcm5pbmdzLgoKMjAwOC0wOC0xMSAxOTowNDowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IERvbid0IHVzZSBnX21rc3RtcCgpIG9uIHdpbjMyLCBpdCdzIHVuc2FmZSBpZiBnbGliIGlzIHVzaW5nIGEgZGlmZmVyZW50IGxpYmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBEb24ndCB1c2UgZ19ta3N0bXAoKSBvbiB3aW4zMiwgaXQncyB1bnNhZmUgaWYgZ2xpYiBpcyB1c2luZyBhIGRpZmZlcmVudAoJICBsaWJjLgoJICBGaXhlcyAjNTQ0Nzc2LgoKMjAwOC0wOC0xMSAxNToxNDoyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggYSAibWF5IGJlIHVzZWQgdW5pdGlhbGl6ZWQiIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZpeCBhICJtYXkgYmUgdXNlZCB1bml0aWFsaXplZCIgd2FybmluZy4KCjIwMDgtMDgtMTEgMDg6MDY6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERvY3VtZW50IHByZXNldC1pZmFjZSB2bWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIERvY3VtZW50IHByZXNldC1pZmFjZSB2bWV0aG9kcy4KCjIwMDgtMDgtMTEgMDc6MDc6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOiBUdXJuIHRob3VnaHRzIGFib3V0IEhBTCBpbnRvIGEgbm90ZS10YWcuIFJlbW92ZSBtZW50aW9uaW5nIHRoYXQgaXMgb25seSB1c2VkIHRvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgVHVybiB0aG91Z2h0cyBhYm91dCBIQUwgaW50byBhIG5vdGUtdGFnLiBSZW1vdmUgbWVudGlvbmluZyB0aGF0IGlzCgkgIG9ubHkgdXNlZCB0byBkaXNjb3ZlciBkZXZpY2VzLgoKMjAwOC0wOC0wNyAxNTo0OTowMCArMDAwMCAgRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCgkgIGdzdC9nc3QuYzogTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2OC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIKCSAgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoKMjAwOC0wOC0wNyAxMjoyODoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBzdWJzZXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXRfZmllbGQpOgoJICBGaXggc3Vic2V0IHRlc3QuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSB1bml0IHRlc3Qgc3Vic2V0IHRlc3RzIGFuZCBhZGQgYSB0ZXN0Y2FzZSBmb3IgdGhlIHN1YnNldCBmYWlsdXJlCgkgIGNhc2VzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgSW1wcm92ZSBzdWJ0cmFjdGlvbiB1bml0IHRlc3QuCgoyMDA4LTA4LTA3IDA3OjAxOjE1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBVbmxvY2ssIGluc3RlYWQgb2YgbG9ja2luZyBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgVW5sb2NrLCBpbnN0ZWFkIG9mIGxvY2tpbmcgYWdhaW4uCgoyMDA4LTA4LTA1IDE2OjUwOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBDbGFyaWZ5IHRoZSBkb2NzIGEgYml0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQ2xhcmlmeSB0aGUgZG9jcyBhIGJpdCBtb3JlLgoKMjAwOC0wOC0wNSAxNTo0MjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiBEb24ndCBsZWFrIG9sZCB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgIERvbid0IGxlYWsgb2xkIHRhZ2xpc3QuCgoyMDA4LTA4LTA1IDE1OjAzOjI3ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBdm9pZCBvdmVyZmxvd3MgaW4gZml4YXRpb24gY29kZSB3aGVuIGRlYWxpbmcgd2l0aCBNQVhJTlQgdmFsdWVzLCB3aGljaCB2NGwyc3JjIHNlZW1zIHRvIGRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICBBdm9pZCBvdmVyZmxvd3MgaW4gZml4YXRpb24gY29kZSB3aGVuIGRlYWxpbmcgd2l0aCBNQVhJTlQgdmFsdWVzLCB3aGljaAoJICB2NGwyc3JjIHNlZW1zIHRvIGRvLgoJICBGaXhlcyAjNTQ2MzI4LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGUgZml4LgoKMjAwOC0wOC0wNSAxMToxMjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBVc2UgbmV3IGNhcHMgc3VnZ2VzdGlvbiBmZWF0dXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVxdWVzdCBhIGNhcHMgbmVnb3RpYXRpb24gdXBzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGNvcHlfZnVuYyksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBVc2UgbmV3IGNhcHMgc3VnZ2VzdGlvbiBmZWF0dXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVxdWVzdCBhIGNhcHMKCSAgbmVnb3RpYXRpb24gdXBzdHJlYW0uCgoyMDA4LTA4LTA1IDExOjExOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBmdW5jdGlvbjoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBmdW5jdGlvbjoKCSAgQVBJOiBHc3RCYXNlVHJhbnNmb3JtOjpnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCgpCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2Nhbl90cmFuc2Zvcm0pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2luX3BsYWNlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19pbl9wbGFjZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3FvcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBSZXdyaXRlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcGVyZm9ybSBuZWdvdGlhdGlvbiBvdXRzaWRlIG9mIHRoZQoJICBidWZmZXJfYWxsb2MgZnVuY3Rpb25zLiAgRml4ZXMgIzU0NTg1My4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGJ1ZmZlcl9hbGxvY19jdDIpOgoJICBVcGRhdGUgdW5pdCB0ZXN0LgoKMjAwOC0wOC0wNSAwNTo0NDowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOiBPbmx5IHJ1biBwcmVzZXQgdGVzdHMgd2hlbiAkSE9NRSBpcyB3cml0YWJsZS4gUHJlbGltaW5hcnkgZml4IGZvciAjNTQ1NDMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkgIE9ubHkgcnVuIHByZXNldCB0ZXN0cyB3aGVuICRIT01FIGlzIHdyaXRhYmxlLiBQcmVsaW1pbmFyeSBmaXggZm9yCgkgICM1NDU0MzMuCgoyMDA4LTA4LTA0IDE1OjQ5OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggcmFjZSBmb3IgYmlucyB0aGF0IHNpbXVsYXRlIEFTWU5DIHN0YXRlIGNoYW5nZXMgYnkgaW5zZXJ0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBGaXggcmFjZSBmb3IgYmlucyB0aGF0IHNpbXVsYXRlIEFTWU5DIHN0YXRlIGNoYW5nZXMgYnkgaW5zZXJ0aW5nCgkgIEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzIGluIHRoZWlyIGJ1cy4gV2UgbmVlZCB0byBjaGVjayBmb3IKCSAgcGVuZGluZyBBU1lOQyBtZXNzYWdlcyBldmVuIHdoZW4gdGhlIGJpbiBkb2VzIG5vdCBoYXZlIEFTWU5DIGNoaWxkcmVuLgoJICBXZSBub3RlIGRldGVjdCB0aGlzIGJlaGF2aW91ciBiZWNhdXNlIHdlIHdpbGwgcmVjZWl2ZSBhbiBBU1lOQyBtZXNzYWdlCgkgIHRoYXQgaXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgYmluIGl0c2VsZi4KCSAgRml4ZXMgcmFjZXMgd2l0aCBkZWNvZGViaW4yIHN0YXRlIGNoYW5nZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoKMjAwOC0wOC0wNCAxMzowMTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIEZpeCB0eXBvLgoKMjAwOC0wOC0wNCAxMjo0NjoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQXJnaC4gYWN0dWFsbHkgc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY29tbWl0dGluZy4gTm93IGFkZHMgZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSB0byBnc3RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEFyZ2guIGFjdHVhbGx5IHNhdmUgdGhlIHRleHQgYmVmb3JlIGNvbW1pdHRpbmcuIE5vdyBhZGRzCgkgIGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgdG8gZ3N0X3RhZ19yZWdpc3RlcigpLgoKMjAwOC0wOC0wNCAxMjozMDoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogRG8gYXMgdGltIHBvaW50ZWQgb3V0IGFuZCBhY3R1YWxseSByZWdpc3RlciB0aGUgbmV3IHRhZy4gQWxzbyBpbXByb3ZlIHRlIGRvY3MgYW5kIHVzZSBnc3RfdGFnX21lcmdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRG8gYXMgdGltIHBvaW50ZWQgb3V0IGFuZCBhY3R1YWxseSByZWdpc3RlciB0aGUgbmV3IHRhZy4gQWxzbyBpbXByb3ZlCgkgIHRlIGRvY3MgYW5kIHVzZSBnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIG1ldGhvZCB0byBhbGxvdwoJICByZXRyaXZpbmcgYWxsIGtleXdvcmRzIG1lcmdlZCBpbiBvbmUgbGlzdC4KCjIwMDgtMDgtMDEgMTE6NTc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJldmVydCAnYWNjaWRlbnRpYWwnIGNoYW5nZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiByZW1vdmFsLiBXZSBzdGlsbCBuZWVkIHRvIGdlbmVyYXRlIHRoZSB0eXBlcyBmaWxlIGluIGNvbmZpZ3VyZSAtLS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBSZXZlcnQgJ2FjY2lkZW50aWFsJyBjaGFuZ2Ugb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gcmVtb3ZhbC4gV2Ugc3RpbGwKCSAgbmVlZCB0byBnZW5lcmF0ZSB0aGUgdHlwZXMgZmlsZSBpbiBjb25maWd1cmUgLS1kaXNhYmxlLWxvYWQtc2F2ZS4KCjIwMDgtMDgtMDEgMTE6MzQ6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBuZXcgdGFnbGlzdCBpdGVtIEdTVF9UQUdfS0VZV09SRFMsIG5lZWRlZCBmb3IgIzUyMDY5NCAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQWRkIG5ldyB0YWdsaXN0IGl0ZW0gR1NUX1RBR19LRVlXT1JEUywgbmVlZGVkIGZvciAjNTIwNjk0IC4KCjIwMDgtMDgtMDEgMTA6MDI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogQWRkICJuYW1lLXRlbXBsYXRlIiwgImRpcmVjdGlvbiIsICJwcmVzZW5jZSIgYW5kICJjYXBzIiBwcm9wZXJ0aWVzLCBzbyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIChnc3RfcGFkX3RlbXBsYXRlX2NsYXNzX2luaXQpLCAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfbmV3KSwgKGdzdF9wYWRfdGVtcGxhdGVfcGFkX2NyZWF0ZWQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfcHJvcGVydHkpOgoJICBBZGQgIm5hbWUtdGVtcGxhdGUiLCAiZGlyZWN0aW9uIiwgInByZXNlbmNlIiBhbmQgImNhcHMiIHByb3BlcnRpZXMsCgkgIHNvIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBpcyBqdXN0IGEgdGhpbiB3cmFwcGVyIGFyb3VuZAoJICBnX29iamVjdF9uZXcoKSwgd2hpY2ggaXMgYmV0dGVyIGZvciBiaW5kaW5ncy4gKEZpeGVzOiAjNTM5NzcyKQoKMjAwOC0wNy0zMSAxNzoxNjo1MCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHVyaS5jOiBCZSBtb3JlIGxpYmVyYWwgaW4gd2hhdCBVUklzIHdlIGFjY2VwdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICBCZSBtb3JlIGxpYmVyYWwgaW4gd2hhdCBVUklzIHdlIGFjY2VwdC4KCSAgRG8gbm90IHVuZXNjYXBlIGJpdHMgb2YgdGhlIFVSSSBmb3Igbm8gYXBwYXJlbnQgcmVhc29uIGJlZm9yZSBwYXNzaW5nIHRvCgkgIHRoZSBlbGVtZW50LiBGaXhlcyAjNTQ1MzUyLgoKMjAwOC0wNy0zMSAxNToyNDoyMSArMDAwMCAgUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPgoKCSAgZ3N0L2dzdC5jOiBJbmNsdWRlIGdzdGNvbmZpZy5oIGFzIG1hY3JvcyBmcm9tIGl0IGFyZSB1c2VkLiBGaXhlcyBidWcgIzU0NTYwNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+CgkgICogZ3N0L2dzdC5jOgoJICBJbmNsdWRlIGdzdGNvbmZpZy5oIGFzIG1hY3JvcyBmcm9tIGl0IGFyZSB1c2VkLiBGaXhlcyBidWcgIzU0NTYwNy4KCjIwMDgtMDctMzEgMTU6MjA6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFJlbW92ZSBHU1RfRElTQUJMRV8oRU5VTVRZUEVTfElOREVYfFVSSSkgZXZlcnl3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3NldF9pbmRleF9mdW5jKToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9pbmRleCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSk6CgkgICogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5kZW50OgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbmRleF9pbmZvKSwgKHByaW50X2VsZW1lbnRfbGlzdCksCgkgIChwcmludF9wbHVnaW5fZmVhdHVyZXMpLCAocHJpbnRfZWxlbWVudF9mZWF0dXJlcyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2V2ZW50X21hc2tzKSwKCSAgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBSZW1vdmUgR1NUX0RJU0FCTEVfKEVOVU1UWVBFU3xJTkRFWHxVUkkpIGV2ZXJ5d2hlcmUuCgkgIERpc2FibGluZyB0aGUgaW5kZXhlcnMgYW5kIFVSSSBoYW5kbGVyIGNvZGUgd2lsbCBvbmx5IHJlZHVjZSB0aGUKCSAgcmVxdWlyZWQgYW1vdW50IG9mIG1lbW9yeSBieSBhIHZlcnkgc21hbGwgYW1vdW50IGJ1dCBvbiB0aGUgb3RoZXIgaGFuZAoJICByZXF1aXJlcyBtdWNoIG1vcmUgbWFpbnRhaW5jZSB3b3JrLiBBcGFydCBmcm9tIHRoYXQgbWFueSBwbGFjZXMgb2YKCSAgY29kZSBhcmUgYnJva2VuIHdoZW4gZGlzYWJsaW5nIHRoZW0uCgkgIERpc2FibGluZyB0aGUgZW51bSB0eXBlcyBkb2Vzbid0IHJlZHVjZSB0aGUgcmVxdWlyZWQgYW1vdW50IG9mIG1lbW9yeQoJICBieSBtb3JlIHRoYW4gYSBmZXcgYnl0ZXMgYW5kIG1ha2VzIGl0IGhhcmQgdG8gZml4IGJ1Z3MgbGlrZSAjNTM5NzcyLAoJICBpLmUuIHVzZSB0aGUgZW51bXMgYXMgR09iamVjdCBwcm9wZXJ0aWVzLgoKMjAwOC0wNy0zMSAxMzowNjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBzb21lIHRob3VnaHRzIGFuZCBwcm9ibGVtcyB3aXRoIHVwc3RyZWFtIHJlbmVnb3RpYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBzb21lIHRob3VnaHRzIGFuZCBwcm9ibGVtcyB3aXRoIHVwc3RyZWFtIHJlbmVnb3RpYXRpb24uCgoyMDA4LTA3LTMxIDEyOjUwOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZW1vdmUgc2lsbHkgcmVkdW5kYW50IGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgIFJlbW92ZSBzaWxseSByZWR1bmRhbnQgZGVidWcuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgQ2xhcmlmeSB0aGUgZG9jcyByZWdhcmRpbmcgbmV3IGNhcHMgcmVjZWl2ZWQgZnJvbSBwYWRfYWxsb2MuCgoyMDA4LTA3LTMxIDA5OjU1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IE1ha2Ugc2V0dGluZyB0aGUgY2FwcyBtb3JlIHRocmVhZHNhZmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2dldF9wcm9wZXJ0eSksIChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1fY2Fwcyk6CgkgIE1ha2Ugc2V0dGluZyB0aGUgY2FwcyBtb3JlIHRocmVhZHNhZmUuCgoyMDA4LTA3LTMxIDA4OjM5OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgVXBkYXRlIGRvY3MuCgoyMDA4LTA3LTMxIDA4OjM3OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBBZGQgYW5kIHVzZSBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgZmFsbGluZyBiYWNrIHRvIHRoZSBwb3RlbnRpYWxseSBsZXNzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9hY2NlcHRjYXBzKToKCSAgQWRkIGFuZCB1c2UgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byB0aGUKCSAgcG90ZW50aWFsbHkgbGVzcyBvcHRpbWl6ZWQgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCjIwMDgtMDctMjkgMTU6MzI6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IE9ubHkgc2FuaXR5LWNoZWNrIHRoZSBidWZmZXIgc2l6ZSBpZiByZXF1ZXN0ZWRfY2FwcyA9PSBidWZmZXJfY2FwcyAoaWUuIGRvbid0IHRha2UgcGFkIGNhcHMgaW50byBhY2NvdW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgIE9ubHkgc2FuaXR5LWNoZWNrIHRoZSBidWZmZXIgc2l6ZSBpZiByZXF1ZXN0ZWRfY2FwcyA9PSBidWZmZXJfY2FwcwoJICAoaWUuIGRvbid0IHRha2UgcGFkIGNhcHMgaW50byBhY2NvdW50LCB0aGV5J3JlIG5vdCByZWxldmFudCBoZXJlKQoKMjAwOC0wNy0yOSAxNDozMjo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuKjogUmV2ZXJ0aW5nIGFzIG5vdCBldmVyeXRoaW5nIGlzIGNsZWFyIHlldC4gTmVlZHMgc29tZSBnZW5lcmFsIGRlc2lnbiB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFJldmVydGluZyBhcyBub3QgZXZlcnl0aGluZyBpcyBjbGVhciB5ZXQuIE5lZWRzIHNvbWUgZ2VuZXJhbCBkZXNpZ24KCSAgd29yay4KCjIwMDgtMDctMjkgMTM6MzY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIHRlZSBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIHRlZSBjb21taXQuCgoyMDA4LTA3LTI5IDEzOjMwOjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBDbGVhbnVwIHNlY3Rpb24tZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQ2xlYW51cCBzZWN0aW9uLWZpbGUuCgoyMDA4LTA3LTI5IDExOjU3OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS4qOiBSZWxheSB0YWcgZXZlbnRzIGluIHRlZS4gRml4ZXMgcGFydHMgb2YgIzQ3NDAxNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBSZWxheSB0YWcgZXZlbnRzIGluIHRlZS4gRml4ZXMgcGFydHMgb2YgIzQ3NDAxNi4KCjIwMDgtMDctMjkgMDA6NDU6MjkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIEJ1aWxkIHRoZSBuZXQgbGlicmFyeSBpZiB3ZSBoYXZlIHdpbnNvY2syLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgIEJ1aWxkIHRoZSBuZXQgbGlicmFyeSBpZiB3ZSBoYXZlIHdpbnNvY2syLgoKMjAwOC0wNy0yNiAxMjowMDozNiArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBSZXBsYWNlIG9uZSBkaWFncmFtIHdpdGggdHdvIHNlcGFyYXRlIG9uZXMgYW5kIHVwZGF0ZXMgb3RoZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMucG5nOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL3F1ZXVlLnBuZzoKCSAgKiBkb2NzL21hbnVhbC90aHJlYWQtYnVmZmVyaW5nLnBuZzoKCSAgKiBkb2NzL21hbnVhbC90aHJlYWQtc3luY2hyb25pemluZy5wbmc6CgkgIFJlcGxhY2Ugb25lIGRpYWdyYW0gd2l0aCB0d28gc2VwYXJhdGUgb25lcyBhbmQgdXBkYXRlcyBvdGhlcnMuCgkgIEZpeGVzICM1NDI0MDEuCgoyMDA4LTA3LTI1IDEwOjI0OjQzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogRml4IGxpbmsgaW4gZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IGxpbmsgaW4gZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDctMjQgMTc6Mzg6NDMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDctMjQgMTU6MTM6MjQgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDogcmV2ZXJ0IHRoZSBjaGFuZ2VzIHRvIHRoZSBoZWFkZXIgZmlsZSBmb3IgdGhlIEFCSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHJldmVydCB0aGUgY2hhbmdlcyB0byB0aGUgaGVhZGVyIGZpbGUgZm9yIHRoZSBBQkkuCgoyMDA4LTA3LTI0IDE0OjQ3OjU4ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IERvbid0IGNhY2hlIHRoZSBzZWVrYWJsZSBzdGF0dXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBEb24ndCBjYWNoZSB0aGUgc2Vla2FibGUgc3RhdHVzLgoJICBGaXhlcyBidWcgIzU0NDE3NAoKMjAwOC0wNy0yNCAxMjozNjoyMCArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogQWRkIGZha2VzaW5rIHRvIGV4YW1wbGUgY29kZSB0byBjbG9zZSB0aGUgcGlwZWxpbmUgZ3JhcGguICBUaGlzIHByZXZlbnRzIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IEFkZCBmYWtlc2luayB0byBleGFtcGxlCgkgIGNvZGUgdG8gY2xvc2UgdGhlIHBpcGVsaW5lIGdyYXBoLiAgVGhpcyBwcmV2ZW50cyB0aGUgcHJvZ3JhbSBmcm9tCgkgIHByaW50aW5nIGludGVybmFsIGRhdGEgZmxvdyBlcnJvcnMuCgoyMDA4LTA3LTIzIDE1OjQ0OjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogQ29ycmVjdCB0eXBvLiBGaXhlcyBidWcgIzU0NDMyMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIENvcnJlY3QgdHlwby4gRml4ZXMgYnVnICM1NDQzMjAuCgoyMDA4LTA3LTIyIDE4OjEyOjU0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSBBQ19JU0NfUE9TSVggbWFjcm87IGl0J3MgYnJva2VuIG9uIHNvbWUgcGxhdGZvcm1zIGFuZCBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSBBQ19JU0NfUE9TSVggbWFjcm87IGl0J3MgYnJva2VuIG9uIHNvbWUgcGxhdGZvcm1zIGFuZCBub3QgbmVlZGVkLgoJICBBZGQgY2hlY2sgKHRha2VuIGZyb20gLWJhc2UpIGZvciB3aW5zb2NrLCBhZGRzIFdJTjMyX0xJQlMKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIEFkZCBXSU4zMl9MSUJTIHRvIExJQkFERCBmb3IgbGliZ3N0cmVhbWVyLiBOZWVkZWQgbm93IHRoYXQgZ3N0cG9sbCB1c2VzCgkgIHdpbnNvY2suCgkgIERlZmluZSBHU1RfRVhQT1JUUyB3aGVuIGJ1aWxkaW5nIGxpYmdzdHJlYW1lciAob25seSB1c2VkIG9uIHdpbjMyKQoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIFVzZSBHU1RfRVhQT1JUIGluc3RlYWQgb2YgbG9jYWxseS1kZWZpbmVkIChhbmQgaW5jb3JyZWN0IElNUE9SVF9TWU1CT0wpCgkgIGZvciBzeW1ib2xzIHRoYXQgd2UgbmVlZCB0byBleHBvcnQgaW4gYm90aCB0aGVzZSBmaWxlcy4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBJbmNsdWRlIGdzdF9wcml2YXRlLmggaGlnaGVyIHVwIHRvIGF2b2lkIHNvbWUgY29tcGlsZSBwcm9ibGVtcyBvbiB3aW4zMi4KCjIwMDgtMDctMjIgMDk6MjQ6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBGaXggdHlwb3MuCgoyMDA4LTA3LTIyIDAwOjI5OjU1ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogUHJldmlvdXMgY29tbWl0IHdhcyB3cm9uZyBOVUxMIGNhcHMgZG9lcyBub3QgZXhpc3QgYW5kIGluZGljYXRlIGFuIGVycm9yLCBzbyBhbHNvIGFkZCBhIEZJWE1FIHRvIGdzdF9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIFByZXZpb3VzIGNvbW1pdCB3YXMgd3JvbmcgTlVMTCBjYXBzIGRvZXMgbm90IGV4aXN0CgkgIGFuZCBpbmRpY2F0ZSBhbiBlcnJvciwgc28gYWxzbyBhZGQgYSBGSVhNRSB0bwoJICBnc3RfY2Fwc19pc19lcXVhbCB3aGVyZSBOVUxMIGNhcHMgYXJlIGFjY2VwdGVkLgoKMjAwOC0wNy0yMSAyMzowMjo0MCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEFsbG93IHBhc3Npbmcgb2YgTlVMTCB0byBnc3RfY2Fwc191bmlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBBbGxvdyBwYXNzaW5nIG9mIE5VTEwgdG8gZ3N0X2NhcHNfdW5pb24KCjIwMDgtMDctMjEgMjE6MzI6MDYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWRkIGluIGRvYyB0aGF0IGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCBjYW4gYWNjZXB0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBBZGQgaW4gZG9jIHRoYXQgZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0IGNhbiBhY2NlcHQKCSAgTlVMTCB0byBjbGVhciB0YXJnZXQKCjIwMDgtMDctMTUgMjI6NTM6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IEdzdFJlZ2lzdHJ5UG9vbCBkb2Vzbid0IGV4aXN0OyBkb24ndCByZWZlciB0byBpdCBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEdzdFJlZ2lzdHJ5UG9vbCBkb2Vzbid0IGV4aXN0OyBkb24ndCByZWZlciB0byBpdCBpbiBkb2NzLgoJICBEb24ndCByZWZlciB0byBmdW5jdGlvbnMgdGhhdCBkb24ndCBleGlzdCBpbiBkb2NzLCBpdCdzCgkgIHVuaGVscGZ1bC4KCjIwMDgtMDctMTIgMTc6NTE6MTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3QuYzogRml4IHNjYW5uaW5nIG9mIHBhdGhzIGdpdmVuIHZpYSAtLWdzdC1wbHVnaW4tcGF0aC4gRml4ZXMgYnVnICM1NDIxNzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IHNjYW5uaW5nIG9mIHBhdGhzIGdpdmVuIHZpYSAtLWdzdC1wbHVnaW4tcGF0aC4gRml4ZXMgYnVnICM1NDIxNzUuCgoyMDA4LTA3LTEyIDE3OjQzOjE1ICswMDAwICB0bWF0dGggPGxlLmJ1c2luZXNzbWFuQGdtYWlsLmNvbT4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBEb24ndCB1c2UgYW4gdW5kZWNsYXJlZCB2YXJpYWJsZSBpbiB0aGUgZXhhbXBsZSBwcm9ncmFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IHRtYXR0aCA8bGUgZG90IGJ1c2luZXNzbWFuIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIERvbid0IHVzZSBhbiB1bmRlY2xhcmVkIHZhcmlhYmxlIGluIHRoZSBleGFtcGxlIHByb2dyYW0uCgkgIEZpeGVzIGJ1ZyAjNTQyNTczLgoKMjAwOC0wNy0xMiAwOTo1OTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogU3F1ZWV6ZSBnaG9zdC1wYWQgbGlua3MgYW5kIHJlbW92ZSA8PiBmcm9tIGNsYXNzbmFtZSBsYWJlbHMgdG8gc2F2ZSBtb3JlIGhvcml6b250YWwgc3BhY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFNxdWVlemUgZ2hvc3QtcGFkIGxpbmtzIGFuZCByZW1vdmUgPD4gZnJvbSBjbGFzc25hbWUgbGFiZWxzIHRvIHNhdmUKCSAgbW9yZSBob3Jpem9udGFsIHNwYWNlLgoKMjAwOC0wNy0xMSAxOTozMDo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogR2l2ZSByZXF1ZXN0IGFuZCBzb21ldGltZXMgcGFkcyBhIGRpZmZlcmVudCBzaHBlIHN0eWxlLiBDb25kZW5zZSB0aGUgZ3JhcGhzIGEgbGl0dGxlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEdpdmUgcmVxdWVzdCBhbmQgc29tZXRpbWVzIHBhZHMgYSBkaWZmZXJlbnQgc2hwZSBzdHlsZS4gQ29uZGVuc2UgdGhlCgkgIGdyYXBocyBhIGxpdHRsZSBtb3JlLgoKMjAwOC0wNy0xMCAwMDozMDowMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCByZXF1aXJlIGZsZXggYW5kIGJpc29uIGlmIHRoZSBwYXJzZXIgaXMgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgcmVxdWlyZSBmbGV4IGFuZCBiaXNvbiBpZiB0aGUgcGFyc2VyIGlzIGRpc2FibGVkLgoKMjAwOC0wNy0wOCAxMToyMDoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOiBEb24ndCB1c2UgZGVjbGFyYXRpb25zIGFmdGVyIHN0YXRlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKF9saXN0X2ZpbmRfc29ydGVkX2N1c3RvbSk6CgkgIERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KCjIwMDgtMDctMDggMDk6MDQ6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEFkZCBGSVhNRXMgZm9yIDAuMTEgdG8gdXNlIEdTVF9UWVBFX09CSkVDVCBpbiB0aGUgc2lnbmF0dXJlIG9mIHRoZSB0aGUgY2hpbGQtYWRkZWQgLyAtcmVtb3ZlZCBzaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2Jhc2VfaW5pdCk6CgkgIEFkZCBGSVhNRXMgZm9yIDAuMTEgdG8gdXNlIEdTVF9UWVBFX09CSkVDVCBpbiB0aGUgc2lnbmF0dXJlCgkgIG9mIHRoZSB0aGUgY2hpbGQtYWRkZWQgLyAtcmVtb3ZlZCBzaWduYWxzIGFzIEdzdENoaWxkUHJveHkKCSAgb25seSBzdXBwb3J0cyBHc3RPYmplY3RzLgoKMjAwOC0wNy0wNyAxMTowMToyNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEZpeCBtZW1sZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEZpeCBtZW1sZWFrCgoyMDA4LTA3LTA2IDEyOjQ5OjQzICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC9nc3Rwb2xsLmM6IEZpeCAiaWdub3JlZCByZXR1cm4gdmFsdWUiIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBuZXdlciBnbGliYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogZ3N0L2dzdHBvbGwuYzoKCSAgRml4ICJpZ25vcmVkIHJldHVybiB2YWx1ZSIgY29tcGlsZXIgd2FybmluZyB3aXRoIG5ld2VyIGdsaWJjLgoKMjAwOC0wNy0wNSAxNjoyODoyOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogRml4IGNvcHkmcGFzdGUgZXJyb3IgaW4gZ3N0X2NoaWxkX3Byb3h5X3JlbW92ZWQoKSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBGaXggY29weSZwYXN0ZSBlcnJvciBpbiBnc3RfY2hpbGRfcHJveHlfcmVtb3ZlZCgpIGRvY3VtZW50YXRpb24uCgoyMDA4LTA3LTAyIDE0OjQzOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBQcmludCBlcnJvciBkZWJ1ZyBtZXNzYWdlIGlmIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZHMgdGhhdCBzaG91bGQgYmUgc2V0IGFyZSBOVUxMLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChDSEVDS19QTFVHSU5fREVTQ19GSUVMRCksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFByaW50IGVycm9yIGRlYnVnIG1lc3NhZ2UgaWYgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkcyB0aGF0IHNob3VsZAoJICBiZSBzZXQgYXJlIE5VTEwuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfY29uc3Rfc3RyaW5nKToKCSAgRG9uJ3QgY3Jhc2ggaWYgdGhlIHN0cmluZyB0byBzZXJpYWxpc2UgaXMgTlVMTCAoaXQgcmVhbGx5IHNob3VsZAoJICBub3QgYmUsIGJ1dCBhcHBhcmVudGx5IHRoaXMgdXNlZCB0byB3b3JrIHdpdGggdGhlIHhtbCByZWdpc3RyeSAuLi4pLgoKMjAwOC0wNy0wMiAxMjoyMzoxMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBGaXggcGFyc2luZyBvZiBsb2cgbWVzc2FnZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIEZpeCBwYXJzaW5nIG9mIGxvZyBtZXNzYWdlcwoKMjAwOC0wNy0wMSAwOToyNzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogU29ydCBhbHBoYWJldGljYWxseSBzbyBtYWtlIGNoZWNrLWV4cG9ydHMgZG9lc24ndCBiYXJmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6OgoJICBTb3J0IGFscGhhYmV0aWNhbGx5IHNvIG1ha2UgY2hlY2stZXhwb3J0cyBkb2Vzbid0IGJhcmYuCgoyMDA4LTA3LTAxIDA1OjUzOjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuYzogVXNlIGdzdF9mb3JtYXRfZ2V0X25hbWUoKSB0byBpbXByb3ZlIGRlYnVnIG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIFVzZSBnc3RfZm9ybWF0X2dldF9uYW1lKCkgdG8gaW1wcm92ZSBkZWJ1ZyBvdXRwdXQuCgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBSZW1vdmUgI2lmZGVmJ2VkIGNvZGUuIEFkZCBUT0RPIGNvbW1lbnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgQWRkIGRlYnVnIG91dHB1dCB0byBlYXNlIHNwb3R0aW5nIGZvcm1hdCAhPSBzZWdtZW50LmZvcm1hdCBhc3NlcnRpb25zLgoKMjAwOC0wNi0zMCAwOTo0Mjo0MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogQWxzbyBlbmFibGUgdGhlIEdEUCB1bml0IHRlc3QgYWdhaW4gb24gUFBDIG5vdyB0aGF0IHRoZSBidWcgaXMgZml4ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBBbHNvIGVuYWJsZSB0aGUgR0RQIHVuaXQgdGVzdCBhZ2FpbiBvbiBQUEMgbm93IHRoYXQgdGhlIGJ1ZwoJICBpcyBmaXhlZC4KCjIwMDgtMDYtMzAgMDk6Mzg6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRG9uJ3Qgd3JpdGUgdG8gdGhlIHNhbWUgcmVnaW9uIG9mIG1lbW9yeSBhcyBhIHVpbnQ2NCBhbmQgdWludDE2IGFzIHRoaXMgYnJlYWtzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIERvbid0IHdyaXRlIHRvIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgYXMgYSB1aW50NjQgYW5kIHVpbnQxNgoJICBhcyB0aGlzIGJyZWFrcyBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgYW5kIGFwcGFyYW50bHkgYnJlYWtzIG9uIFBQQwoJICBhbmQgczM5MC4gVGhhbmtzIHRvIFNqb2VyZCBTaW1vbnMgZm9yIGFuYWx5c2luZy4gRml4ZXMgYnVnICMzNDgxMTQuCgoyMDA4LTA2LTI5IDE2OjExOjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6IE9wdGltaXplIGxpc3QgaGFuZGxpbmcuIFVzZSBvd24gZmluZCBmdW5jdGlvbi4gRXhwbG9pdCB0aGF0IGZhY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBPcHRpbWl6ZSBsaXN0IGhhbmRsaW5nLiBVc2Ugb3duIGZpbmQgZnVuY3Rpb24uIEV4cGxvaXQgdGhhdCBmYWN0IHRoYXQKCSAgdGhlIGxpc3QgaXMgc29ydGVkLiBBbHNvIHBhc3MgYmFjayB0aGUgbm9kZSBiZWZvcmUsIHNvIHRoYXQgd2UgY2FuCgkgIGluc2VydCBxdWlja2x5LiBIYXZlIGEgZmFzdCBwYXRoIGZvciBhcHBlbmQuCgoyMDA4LTA2LTI5IDE1OjAwOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi86IEZpeCB0d28gdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIEZpeCB0d28gdHlwb3MuCgoyMDA4LTA2LTI3IDA5OjAyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgU2hvdyBjb25maWd1cmF0aW9uIHN1bWFyeSBhZnRlciBjb25maWd1cmUgcnVuLiBCYXNlZCBvbiBwYXRjaCBieQoJICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+LiBGaXhlczogIzU0MDEzNAoKMjAwOC0wNi0yNyAwNzowMzowNSArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBBZGQgc2NhbGUgZmFjdG9yIGZvciBwZGYgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBBZGQgc2NhbGUgZmFjdG9yIGZvciBwZGYgb3V0cHV0LgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIFN3aXRjaGVkIHNlY3Rpb25zICJwYWRzIiBhbmQgImJpbnMiIGFuZCBhZGRlZCBhIHBpcGVsaW5lIGRpYWdyYW0uCgkgICogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgQWRkZWQgbW9yZSBpbmZvIG9uIGdzdHJlYW1lci4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSAgQ29tbWVudGVkIG91dCB0aGUgd2hvbGUgc2VjdGlvbiAiY3VycmVudCBwcm9ibGVtIiwgd2hpY2ggc291bmRzCgkgIGhpc3RvcmljYWwgYW5kIHNvbWVob3cgb3NvbGV0ZTsgaXQgY291bGQgYmUgdHVybmVkIGluIGEgcG9zaXRpdmUKCSAgd2F5IGFuZCByZXVzZWQgdG8gaW1wcm92ZSB0aGUgZGVzaWduIHByaW5jaXBsZXMuCgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgIC0gVXBkYXRlIFVSTHMgdG8gbGlicmFyeS5nbm9tZS5vcmcuCgkgIC0gRG8gbm90IG1lbnRpb24gR1RLKyBpbiBwcmVsaW1pbmFyeSByZWFkaW5nIChpcnJlbGV2YW50KS4KCSAgLSBNZW50aW9uIFBsdWdpbiBXcml0ZXIncyBNYW51YWwgYW5kIGZ1cnRoZXIgcmVhZGluZyBvbmx5IGluIHRoZQoJICBwcmV2aW91cyBzZWN0aW9uLgoJICAtIEFkZGVkIGEgbGlzdCBvZiBtb3N0IHJlbGV2YW50IEdPYmplY3QvZ2xpYiB0b3BpY3MuCgkgICogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtZ2hvc3QuZmlnOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LWdob3N0LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1ub2dob3N0LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1ub2dob3N0LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LW11bHRpLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC1tdWx0aS5wbmc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9nc3RyZWFtZXItb3ZlcnZpZXcucG5nOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvbGlua2VkLWVsZW1lbnRzLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMucG5nOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL3F1ZXVlLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9xdWV1ZS5wbmc6CgkgICogZG9jcy9tYW51YWwvc2ltcGxlLXBsYXllci5wbmc6CgkgICogZG9jcy9tYW51YWwvc2luay1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9zaW5rLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL3NyYy1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9zcmMtZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtcGlwZWxpbmVzLnN2ZzoKCSAgUmVtb3ZlZCAuZmlnLCBhZGRlZCAucG5nIGNvdW50ZXJwYXJ0LgoJICBGaXhlczogIzUzOTEzNwoKMjAwOC0wNi0yNiAyMDoyNzowMCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS4qOiByZXZlcnQgZXh0cmEtc2l6ZS1idWZmZXJzIHN0dWZmLCBjYXVzZWQgc29tZSByYWNlIGNvbmRpdGlvbnMgYW5kIGV4dHJhLXNpemUtYnVmZmVycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgcmV2ZXJ0IGV4dHJhLXNpemUtYnVmZmVycyBzdHVmZiwgY2F1c2VkIHNvbWUgcmFjZSBjb25kaXRpb25zCgkgIGFuZCBleHRyYS1zaXplLWJ1ZmZlcnMgaXMgbm90IHVzZWQgYW55bW9yZS4gRG9jcyBuZWVkcyBzb21lIHVwZGF0ZXMKCjIwMDgtMDYtMjYgMTI6NTI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBVcGRhdGUgd2luMzIgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFVwZGF0ZSB3aW4zMiBmaWxlcy4KCjIwMDgtMDYtMjYgMTI6MjQ6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5oOiBBZGQgbWlzc2luZyBTaW5jZScgbWFya2VycyB0byBndGstZG9jIGJsdXJicy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDogKEdzdERlYnVnR3JhcGhEZXRhaWxzKSwKCSAgKEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUpOgoJICBBZGQgbWlzc2luZyBTaW5jZScgbWFya2VycyB0byBndGstZG9jIGJsdXJicy4KCjIwMDgtMDYtMjYgMTE6NTk6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogQWRkIHNvbWUgbW9yZSB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChidWZmZXJfYWxsb2NfcHQxKSwKCSAgKHNldF9jYXBzX3B0MSksIChHU1RfU1RBUlRfVEVTVCksIChzZXRfY2Fwc19wdDIpLCAodHJhbnNmb3JtX2lwXzEpLAoJICAoc2V0X2NhcHNfMSksIChzZXRfY2Fwc19jdDEpLCAodHJhbnNmb3JtX2N0MSksCgkgICh0cmFuc2Zvcm1fY2Fwc19jdDEpLCAodHJhbnNmb3JtX3NpemVfY3QxKSwgKGJ1ZmZlcl9hbGxvY19jdDEpLAoJICAoc2V0X2NhcHNfY3QyKSwgKHRyYW5zZm9ybV9jdDIpLCAodHJhbnNmb3JtX2NhcHNfY3QyKSwKCSAgKHRyYW5zZm9ybV9zaXplX2N0MiksIChidWZmZXJfYWxsb2NfY3QyKToKCSAgQWRkIHNvbWUgbW9yZSB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCjIwMDgtMDYtMjUgMTc6Mjc6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzLzogTW9yZSB0ZXN0cywgcHJlcGFyZSBmb3IgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzogKGdzdF90ZXN0X3RyYW5zX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19jbGFzc19pbml0KSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKHJlc3VsdF9idWZmZXJfYWxsb2MpLCAoZ3N0X3Rlc3RfdHJhbnNfbmV3KSwgKGdzdF90ZXN0X3RyYW5zX2ZyZWUpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcHVzaCksIChnc3RfdGVzdF90cmFuc19wb3ApOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoYnVmZmVyX2FsbG9jX3B0MSksCgkgIChzZXRfY2Fwc19wdDEpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc2V0X2NhcHNfcHQyKSwgKHRyYW5zZm9ybV9pcF8xKSwKCSAgKHNldF9jYXBzXzEpLCAoc2V0X2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9jdDEpLAoJICAodHJhbnNmb3JtX2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9zaXplX2N0MSksIChidWZmZXJfYWxsb2NfY3QxKSwKCSAgKHNldF9jYXBzX2N0MiksICh0cmFuc2Zvcm1fY3QyKSwgKHRyYW5zZm9ybV9jYXBzX2N0MiksCgkgICh0cmFuc2Zvcm1fc2l6ZV9jdDIpLCAoYnVmZmVyX2FsbG9jX2N0MiksCgkgIChnc3RfYmFzZXRyYW5zZm9ybV9zdWl0ZSk6CgkgIE1vcmUgdGVzdHMsIHByZXBhcmUgZm9yIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoKMjAwOC0wNi0yNSAxNTozOTowMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS4qOiBGaXggZGVhZC1sb2NrIGluIHVuZGVycnVuX2NiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBGaXggZGVhZC1sb2NrIGluIHVuZGVycnVuX2NiCgoyMDA4LTA2LTI1IDE0OjQ5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiBGaXggZGV2aWNlIG9wZW4vY2xvc2UgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBGaXggZGV2aWNlIG9wZW4vY2xvc2UgZG9jcy4KCjIwMDgtMDYtMjUgMTQ6NDc6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogTWVudGlvbiBidWdudW1iZXIgZm9yIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnbnVtYmVyIGZvciBsYXN0IGNvbW1pdC4KCjIwMDgtMDYtMjUgMTQ6NDQ6NTIgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsL21hbnVhbC54bWw6IC0gUmVvcmdhbmlzZWQgdGhlIHByZXZpb3VzICJpbnRyb2R1Y3Rpb24iIGJ1bmRsZSBpbnRvIEZvcmV3b3JkLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgLSBSZW9yZ2FuaXNlZCB0aGUgcHJldmlvdXMgImludHJvZHVjdGlvbiIgYnVuZGxlIGludG8gRm9yZXdvcmQsCgkgIEludHJvZHVjdGlvbiwgYW5kIEFib3V0IEdTdHJlYW1lci4gVGhlIHR3byBmaXJzdCBhcmUgPHByZWZhY2U+CgkgIGRvY2Jvb2sgZWxlbWVudHMuIFRoZSBsYXRlciBpcyB0aGUgZmlyc3QgcGFydCBvZiB0aGUgYm9vay4KCSAgLSBhZGRlZCBpbnRyby1nc3RyZWFtZXIueG1sIChjb250ZW50IHBhcnRpYWxseSBmcm9tCgkgIGludHJvLXByZWZhY2UueG1sKQoJICAtIG1vdmVkIGFwcGVuZGl4LXdpbjMyLnhtbCBpbnRvIGFwcGVuZGl4LWludGVncmF0aW9uLnhtbAoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOiBnc3RyZWFtZXIgc2VjdGlvbiBtb3ZlZC4uLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6IC4uLmhlcmUuIG5ldyBmaWxlLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXdpbjMyLnhtbDogcmVtb3ZlZCBmaWxlLiBDb250ZW50IG1vdmVkLi4uCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOiAuLi5oZXJlLgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDogc2VjdGlvbiBhYm91dCBHc3RFZGl0b3IgbW92ZWQuLi4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOiAuLi5oZXJlLgoKMjAwOC0wNi0yNSAxNDozMjo1MyArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiAtIEV4cGxpY2l0ZWx5IGluY2x1ZGUgZ2xpYi5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLmZpZzoKCSAgLSBFeHBsaWNpdGVseSBpbmNsdWRlIGdsaWIuaC4KCSAgLSBEbyBub3QgdXNlIGdsb2JhbCB2YXJpYWJsZXMuCgkgIC0gVXNlIGdfcHJpbnRlcnIoKSBpbnN0ZWFkIG9mIGdfcHJpbnQoKS4KCSAgLSBNaW5vciBmb3JtYXRpbmcvcmVuYW1pbmcgdG8gaW5jcmVhc2UgcmVhZGliaWxpdHkuCgkgIC0gUmVuYW1lZCBuZXdfcGFkKCkgdG8gb25fcGFkX2FkZGVkKCkKCSAgLSBJbXByb3ZlZCBleHBsZW5hdG9yeSBjb21tZW50cy4KCSAgLSByZW5hbWVkIG9nZyBwYXJzZXIgdG8gb2dnIGRlbXV4ZXIKCSAgLSBVc2UgImF1dG9hdWRpb3NpbmsiIGluc3RlYWQgb2YgImFsc2FzaW5rIi4KCSAgRml4ZXM6ICM1Mzg2MTkKCjIwMDgtMDYtMjUgMTQ6Mjc6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogUmVtb3ZlIGN2cyBjb25mbGljdCBtYXJrZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgUmVtb3ZlIGN2cyBjb25mbGljdCBtYXJrZXIuCgoyMDA4LTA2LTI1IDE0OjI1OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogRG9jdW1lbnQgdGhhdCBmb3IgcGxnaW4tZG9jcyB3ZSBleHRyYXh0IGhlIHNob3J0LWRlc2MgZnJvbSB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgRG9jdW1lbnQgdGhhdCBmb3IgcGxnaW4tZG9jcyB3ZSBleHRyYXh0IGhlIHNob3J0LWRlc2MgZnJvbSB0aGUgZWxlbWVudAoJICBkZXRhaWxzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgVGVsbCB0aGF0IGRldmljZXMgc2hvdWxkIGJlIGNsb3NlZCBpbiBQQVVTRUQgLT4gUkVBRFkuCgkgICogZG9jcy9tYW51YWwvUkVBRE1FOgoJICBEb2N1bWVudCBob3cgdGVzdHMgaW4gdGhlIG1hbnVhbCBhcmUgaGFuZGxlZC4KCSAgKiBkb2NzL21hbnVhbHMubWFrOgoJICBUeXBvIGluIGNvbW1lbnQuCgoyMDA4LTA2LTI1IDExOjUwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBPbmx5IGNhcmUgYWJvdXQgbGF0ZW5jeSBtaW4gYW5kIG1heCB3aGVuIHRoZSBzaW5rIGlzIGFjdHVhbGx5IGEgbGl2ZSBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKToKCSAgT25seSBjYXJlIGFib3V0IGxhdGVuY3kgbWluIGFuZCBtYXggd2hlbiB0aGUgc2luayBpcyBhY3R1YWxseSBhIGxpdmUKCSAgc2luay4KCjIwMDgtMDYtMjUgMTA6NTM6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBGaXggdHlwby4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgQWRkIG5vdGVzIGFib3V0IHdoeSB0cmFuc2Zvcm0gbmVlZHMgdG8ga25vdyBpbnB1dC9vdXRwdXQgc2l6ZXMuCgkgIEFkZCBzb21lIGlzc3VlcyB0aGF0IG5lZWQgdG8gYmUgc29sdmVkLgoJICBBZGQgc29tZSBtb3JlIHVzZSBjYXNlcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6IChnc3RfdGVzdF90cmFuc19iYXNlX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfY2xhc3NfaW5pdCksIChyZXN1bHRfc2lua19jaGFpbiksCgkgIChyZXN1bHRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZXN0X3RyYW5zX25ldyksIChnc3RfdGVzdF90cmFuc19mcmVlKSwKCSAgKGdzdF90ZXN0X3RyYW5zX3B1c2gpLCAoZ3N0X3Rlc3RfdHJhbnNfcG9wKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKGJ1ZmZlcl9hbGxvY19wdDEpLAoJICAoc2V0X2NhcHNfcHQxKSwgKEdTVF9TVEFSVF9URVNUKSwgKHNldF9jYXBzX3B0MiksICh0cmFuc2Zvcm1faXBfMSksCgkgIChzZXRfY2Fwc18xKSwgKHNldF9jYXBzX2N0MSksICh0cmFuc2Zvcm1fY3QxKSwKCSAgKHRyYW5zZm9ybV9jYXBzX2N0MSksICh0cmFuc2Zvcm1fc2l6ZV9jdDEpLCAoYnVmZmVyX2FsbG9jX2N0MSksCgkgIChnc3RfYmFzZXRyYW5zZm9ybV9zdWl0ZSk6CgkgIEFkZCBzdXBvcnQgZm9yIGRpZmZlcmVudCBwYWQgdGVtcGxhdGVzIGFuZCBidWZmZXItYWxsb2MuCgkgIEFkZCBtb3JlIGNoZWNrcyBmb3IgY2FwcyBhbmQgYnVmZmVyLWFsbG9jLgoJICBBZGQgY2hlY2tzIGZvciBwcm94eSBidWZmZXIgYWxsb2MuCgkgIEFkZCB1bml0IHRlc3QgZm9yIGNvcHkgdHJhbnNmb3JtLgoKMjAwOC0wNi0yNCAxOTo1Njo1MSArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBUeXBvIGFuZCBmb3JtYXR0aW5nIGZpeGVzICgjNTM4NTk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1saWNlbnNpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgVHlwbyBhbmQgZm9ybWF0dGluZyBmaXhlcyAoIzUzODU5NCkuCgoyMDA4LTA2LTI0IDA3OjQ5OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogRml4IHNvbWUgbWVtb3J5IGxlYWtzIGFuZCB1c2VzIG9mIG9iamVjdCBpbnN0YW5jZXMgdGhhdCB3ZSBkb24ndCBhY3R1YWxseSBvd24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggc29tZSBtZW1vcnkgbGVha3MgYW5kIHVzZXMgb2Ygb2JqZWN0IGluc3RhbmNlcyB0aGF0IHdlIGRvbid0CgkgIGFjdHVhbGx5IG93bi4KCjIwMDgtMDYtMjIgMTk6MTk6MzUgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogQWRkIGZ1bmN0aW9uYWxpdHkgdG8gZXh0cmEtc2l6ZS1idWZmZXJzIHByb3BlcnR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgQWRkIGZ1bmN0aW9uYWxpdHkgdG8gZXh0cmEtc2l6ZS1idWZmZXJzIHByb3BlcnR5LgoKMjAwOC0wNi0yMiAxNDozNToxMyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCB1cGRhdGUgdGhlIGN1cl90aW1lIG9uIEdTVF9DTE9DS19USU1FX05PTkUgKCM1Mzc4MDQpIGFuZCBkb24ndCBhY3RpdmF0ZSB0aGUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgRG9uJ3QgdXBkYXRlIHRoZSBjdXJfdGltZSBvbiBHU1RfQ0xPQ0tfVElNRV9OT05FICgjNTM3ODA0KSBhbmQgZG9uJ3QKCSAgYWN0aXZhdGUgdGhlIHBhZHMgaWYgdGhleSBhcmUgYWRkZWQgaW4gU1RBVEVfTlVMTC4KCjIwMDgtMDYtMjEgMjE6MjA6MTMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IEFQSSB0byBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gZG9jCgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBUEk6IGdzdF9jaGVja190ZWFyZG93bl9wYWRfYnlfbmFtZQoKMjAwOC0wNi0yMSAxOTo0ODo1MyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IEFsc28gc2V0dXAgcmVxdWVzdCBwYWRzIGFuZCBhbGxvdyBzZXR1cCBwYWRzIGJ5IG5hbWUgKCM1Mzc4MTIpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWxzbyBzZXR1cCByZXF1ZXN0IHBhZHMgYW5kIGFsbG93IHNldHVwIHBhZHMgYnkgbmFtZSAoIzUzNzgxMikKCSAgQVBJOiBnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZF9ieV9uYW1lCgkgIEFQSTogZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkX2J5X25hbWUKCjIwMDgtMDYtMjAgMjE6MDg6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBVc2UgSEFWRV9WQUxHUklORF9IIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgVXNlIEhBVkVfVkFMR1JJTkRfSCBzb21lIG1vcmUuCgoyMDA4LTA2LTIwIDE2OjI5OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDogUGFzcyBhcmd1bWVudHMgdG8gbWFrZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBQYXNzIGFyZ3VtZW50cyB0byBtYWtlLgoJICBSdW4gYXV0b3JlZ2VuLnNoIGlmIE1ha2VmaWxlIGlzIG5vdCB0aGVyZS4KCjIwMDgtMDYtMjAgMTU6NTQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRG9uJ3QgYXNzdW1lIHRoYXQgPHZhbGdyaW5kL3ZhbGdyaW5kLmg+IGV4aXN0cyBqdXN0IGJlY2F1c2UgdGhlIGJpbmFyeSBpcyB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIERvbid0IGFzc3VtZSB0aGF0IDx2YWxncmluZC92YWxncmluZC5oPiBleGlzdHMganVzdCBiZWNhdXNlCgkgIHRoZSBiaW5hcnkgaXMgdGhlcmUuCgoyMDA4LTA2LTIwIDEyOjA2OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgc29tZSB0ZXN0IGJhc2V0cmFuc2Zvcm0gZWxlbWVudCBhbmQgdGhlIGJlZ2lubmluZ3Mgb2YgdmFyaW91cyB1bml0IHRlc3RzIGZvciBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOiAoZ3N0X3Rlc3RfdHJhbnNfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX2NsYXNzX2luaXQpLCAoZ3N0X3Rlc3RfdHJhbnNfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19zZXRfZGF0YSksIChyZXN1bHRfc2lua19jaGFpbiksCgkgIChnc3RfdGVzdF90cmFuc19uZXcpLCAoZ3N0X3Rlc3RfdHJhbnNfZnJlZSksIChnc3RfdGVzdF90cmFuc19wdXNoKSwKCSAgKGdzdF90ZXN0X3RyYW5zX3BvcCk6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgICh0cmFuc2Zvcm1faXBfMSksIChzZXRfY2Fwc18xKSwgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgQWRkIHNvbWUgdGVzdCBiYXNldHJhbnNmb3JtIGVsZW1lbnQgYW5kIHRoZSBiZWdpbm5pbmdzIG9mIHZhcmlvdXMKCSAgdW5pdCB0ZXN0cyBmb3IgaXQuCgoyMDA4LTA2LTIwIDExOjI0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBJbmNyZWFzZSBjb2RlIHJlYWRhYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgSW5jcmVhc2UgY29kZSByZWFkYWJpbGl0eS4KCSAgRG9uJ3QgdHJ5IHRvIGNvbXBhcmUgYnVmZmVyIG9mZnNldHMgd2hlbiB0aGVyIGFyZSBpbnZhbGlkLgoKMjAwOC0wNi0yMCAxMTowNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IHNvbWUgbW9yZSBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3Qgc29tZSBtb3JlIGRlc2lnbiBkb2NzLgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBTbWFsbCBhZGRpdGlvbjogZ29vZCBwbHVnaW5zIG11c3RuJ3QgaGF2ZSBmdW5jdGlvbmFsIGNvZGUKCSAgd2l0aGluIGFzc2VydGlvbiBtYWNyb3MuCgoyMDA4LTA2LTIwIDEwOjMyOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDogU29tZSBpZGVhcyBhYm91dCBhIGZyYW1lc3RlcCBBUEkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgU29tZSBpZGVhcyBhYm91dCBhIGZyYW1lc3RlcCBBUEkKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgU3RhcnQgZGVzaWduIGFuZCB1c2UgY2FzZXMgZm9yIGJhc2V0cmFuc2Zvcm0gaW4gb3JkZXIgdG8gZ2V0IGl0CgkgIGZpeGVkIHNvb24uCgoyMDA4LTA2LTIwIDEwOjIwOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBNYWtlIGl0IGtub3duIHRoYXQgZ3N0X2J1c19wb2xsKCkgaXMgcHVyZSBldmlsIChmaXhlcyAjNTM4ODEwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBNYWtlIGl0IGtub3duIHRoYXQgZ3N0X2J1c19wb2xsKCkgaXMgcHVyZSBldmlsIChmaXhlcyAjNTM4ODEwKS4KCjIwMDgtMDYtMjAgMTA6MTQ6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBSZW1vdmUgc2hvcnRfZGVzY3JpcHRpb24uIEFkZCBiYXNpYyBkb2NzIGZvciBnc3R0eXBlZmluZGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIFJlbW92ZSBzaG9ydF9kZXNjcmlwdGlvbi4gQWRkIGJhc2ljIGRvY3MgZm9yIGdzdHR5cGVmaW5kZWxlbWVudC4KCSAgU2ltcGxpZnkgbWFya3VwIGZvciBmYWtlc3JjL2Zkc3JjLgoKMjAwOC0wNi0yMCAxMDowNzoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQWRkZWQgU2luY2UgZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICBBZGRlZCBTaW5jZSBkb2MuCgoyMDA4LTA2LTIwIDEwOjAyOjE0ICswMDAwICBqb2VsIGxhcnNzb24gPHRpbGxqb2VsQGdtYWlsLmNvbT4KCgkgIEFkZCB0aW1lb3V0IHByb3BlcnR5IGxpa2UgdWRwc3JjLiBGaXhlcyAjNTM4NjI4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGpvZWwgbGFyc3NvbiA8dGlsbGpvZWwgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19pbml0KSwgKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mZF9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIEFkZCB0aW1lb3V0IHByb3BlcnR5IGxpa2UgdWRwc3JjLiBGaXhlcyAjNTM4NjI4LgoJICBBZGQgc29tZSBtb3JlIGRvY3MgYW5kIGV4YW1wbGUgcGlwZWxpbmVzLgoKMjAwOC0wNi0yMCAwODo1NDo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gYWxsb3cgc2lua3MgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIGRlbGF5IGJldHdlZW4gdGhlIHN5bmMgdGltZXMgYW5kIHRoZSBhY3R1YWwgcmVuZGVyaW5nIG9mIHRoZSBkYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcmVuZGVyX2RlbGF5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3JlbmRlcl9kZWxheSksIChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG1ldGhvZCB0byBhbGxvdyBzaW5rcyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgZGVsYXkgYmV0d2VlbiB0aGUgc3luYwoJICB0aW1lcyBhbmQgdGhlIGFjdHVhbCByZW5kZXJpbmcgb2YgdGhlIGRhdGEuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfcmVuZGVyX2RlbGF5KCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9yZW5kZXJfZGVsYXkoKQoKMjAwOC0wNi0yMCAwODo0NTowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgdmVyc2lvbiBudW1iZXIgYmFjayB0byBkZXYgLT4gMC4xMC4yMC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciBiYWNrIHRvIGRldiAtPiAwLjEwLjIwLjEKCjIwMDgtMDYtMjAgMDg6Mzk6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIEdTVF9UQUdfQVRUQUNITUVOVCBmb3IgZ2VuZXJpYyBmaWxlIGF0dGFjaG1lbnRzIHRvIHN0cmVhbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogQWRkIEdTVF9UQUdfQVRUQUNITUVOVCBmb3IgZ2VuZXJpYyBmaWxlIGF0dGFjaG1lbnRzIHRvIHN0cmVhbXMuCgkgIEZpeGVzIGJ1ZyAjNTM4NTY4LgoKMjAwOC0wNi0yMCAwODozNjo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFJldmVydCBvbmUgY2hhbmdlLCB0aGF0IG1ha2UgcmV0IHZhbHVlIHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBSZXZlcnQgb25lIGNoYW5nZSwgdGhhdCBtYWtlIHJldCB2YWx1ZSBwb3NzaWJsZSB1bmluaXRpYWxpemVkLgoKMjAwOC0wNi0yMCAwODozMjozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFVzZSBmcmVlemUvdGhhdyBub3RpZnkgdG8gc3luYyBub3RpZnkgZW1pc3Npb24gYSBiaXQgKGl0cyBhbHNvIG1vcmUgZWZmaWNpZW50KS4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBVc2UgZnJlZXplL3RoYXcgbm90aWZ5IHRvIHN5bmMgbm90aWZ5IGVtaXNzaW9uIGEgYml0IChpdHMgYWxzbyBtb3JlCgkgIGVmZmljaWVudCkuIE1vdmUgZGVidWcgb3V0cHV0IHRvIExPRyAoaXMgY2FsbGVkIGEgbG90IGluIGEgbG9vcCkuCgkgIEFsd2F5cyB1bnNldCBnX3ZhbHVlcyBpZiB0aGUgaGF2ZSBiZWVuIGluaXRpYWxpemVkLgoKMjAwOC0wNi0yMCAwODoyODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSWYgd2UgaGF2ZSBub3Qgc2VlbiBhIGJ1ZmZlciBiZWZvcmUgRU9TLCB1c2UgdGhlIHNlZ21lbnQgdmFsdWVzIHRvIHJlcG9ydCB0aGUgY3VycmVudCBwby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgIElmIHdlIGhhdmUgbm90IHNlZW4gYSBidWZmZXIgYmVmb3JlIEVPUywgdXNlIHRoZSBzZWdtZW50IHZhbHVlcyB0bwoJICByZXBvcnQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW5zdGVhZCBvZiBpbnZhbGlkIHBvc2l0aW9ucy4KCjIwMDgtMDYtMjAgMDg6MjE6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDgtMDYtMjAgMDg6MTc6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJld3JpdGUgaGFuZGxpbmcgb2YgZGVmYXVsdCB2YWx1ZXMuIEZpeCBvdmVyZmxvdyB3aXRoIHVuc2lnbmVkIHR5cGVzIGluIGxpbmVhciBpbnRlcnBvbGF0aW9uLiBSZW1vdmUgbm93IG9ic29sZXRlIF9maS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIFJld3JpdGUgaGFuZGxpbmcgb2YgZGVmYXVsdCB2YWx1ZXMuIEZpeCBvdmVyZmxvdyB3aXRoIHVuc2lnbmVkIHR5cGVzCgkgIGluIGxpbmVhciBpbnRlcnBvbGF0aW9uLiBSZW1vdmUgbm93IG9ic29sZXRlIF9maXJzdF92YWx1ZSgpIGZ1bmN0aW9uLgoJICBBZGQgbW9yZSB0ZXN0cy4gRml4ZXMgIzUzODIwMS4KCjIwMDgtMDYtMjAgMDg6MTQ6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBBZGQgZGVidWcgaW5mby4KCSAgV2hlbiBhIGJ1ZmZlciBpcyB3cml0YWJsZSwgaXRzIG1ldGFkYXRhIGlzIGFsc28gd3JpdGFibGUgc28gd2UgZG9uJ3QKCSAgbmVlZCB0byBzdWJidWZmZXIgKHdoaWNoIHRoZW4gbWFrZXMgdGhlIGJ1ZmZlciBub3Qtd3JpdGFibGUgYW55bW9yZSkuCgo9PT0gcmVsZWFzZSAwLjEwLjIwID09PQoKMjAwOC0wNi0xOCAxMDo1ODozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjIwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMjAKCjIwMDgtMDYtMTggMTA6NTY6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDYtMTEgMjE6MTQ6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjE5LjMgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjE5LjMgcHJlLXJlbGVhc2UKCjIwMDgtMDYtMTEgMjA6MDc6MzEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgUmVuYW1lIERBVEFESVIgdG8gR1NUX0RBVEFESVIgdG8gYXZvaWQgYnVpbGQgcHJvYmxlbXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUmVuYW1lIERBVEFESVIgdG8gR1NUX0RBVEFESVIgdG8gYXZvaWQgYnVpbGQgcHJvYmxlbXMKCSAgb24gd2luMzIuIFBhdGNoIEJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCSAgRml4ZXM6ICM1MzY4NTcKCjIwMDgtMDYtMDUgMTA6MTM6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRXhwbGljaXRlbHkgbGluayB3aXRoIC1sZGwgaWYgZGxhZGRyKCkgaXMgZm91bmQgdGhlcmUuIEJlZm9yZSBpdCB3YXMgaW1wbGljaXRlbHkgbGlua2VkIGJ5IHRoZSBnbW9kdWxlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEV4cGxpY2l0ZWx5IGxpbmsgd2l0aCAtbGRsIGlmIGRsYWRkcigpIGlzIGZvdW5kIHRoZXJlLiBCZWZvcmUgaXQgd2FzCgkgIGltcGxpY2l0ZWx5IGxpbmtlZCBieSB0aGUgZ21vZHVsZSBwa2djb25maWcgZmlsZSBidXQgaW4gZ2xpYiAyLjE3LjAKCSAgLWxkbCBoYXMgbW92ZWQgZnJvbSBMaWJzIHRvIExpYnMucHJpdmF0ZS4gRml4ZXMgYnVnICM1MzY3NDQuCgoyMDA4LTA2LTA1IDA5OjQyOjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgUHV0IHByZS1yZWxlYXNlIGNoYW5lZ2xvZyBlbnRyeSB3aGVyZSBpdCBhY3R1YWxseSBoYXBwZW5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUHV0IHByZS1yZWxlYXNlIGNoYW5lZ2xvZyBlbnRyeSB3aGVyZSBpdCBhY3R1YWxseSBoYXBwZW5lZAoKMjAwOC0wNi0wNSAwOTo0MToyNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuMTkuMiBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMTkuMiBwcmUtcmVsZWFzZQoKMjAwOC0wNi0wNSAwODo1NTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5jOiBGaXggdHlwbyAoc3BvdHRlZCBieSBGYWJyaWNpbyBHb2RveSwgIzUzNjcyMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICBGaXggdHlwbyAoc3BvdHRlZCBieSBGYWJyaWNpbyBHb2RveSwgIzUzNjcyMykuCgoyMDA4LTA2LTA0IDExOjQ3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgc29tZSBkZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfYXN5bmNfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF90c19vZmZzZXQpLCAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3Fvcyk6CgkgIEFkZCBzb21lIGRlYnVnLgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgaW52YWxpZCBRb1MgbWVzc2FnZXMuCgoyMDA4LTA2LTA0IDExOjMxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IEFkZCBzb21lIGFzc2VydCBhbmQgZG9jcyBmb3IgaW52YWxpZCBpbnB1dCB0byB0aGUgcW9zIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfcW9zKToKCSAgQWRkIHNvbWUgYXNzZXJ0IGFuZCBkb2NzIGZvciBpbnZhbGlkIGlucHV0IHRvIHRoZSBxb3MgZnVuY3Rpb24uCgoyMDA4LTA1LTMwIDE1OjQ4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBUaGUgcmVwb3J0ZWQgcG9zaXRpb24gbXVzdCBhbHdheXMgYmUgc21hbGxlciB0aGFuIHRoZSBsYXN0IHNlZW4gdGltZXN0YW1wcyAob3IgdGltZXN0YW1wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBUaGUgcmVwb3J0ZWQgcG9zaXRpb24gbXVzdCBhbHdheXMgYmUgc21hbGxlciB0aGFuIHRoZSBsYXN0IHNlZW4KCSAgdGltZXN0YW1wcyAob3IgdGltZXN0YW1wICsgZHVyYXRpb24gZm9yIHJldmVyc2UpLgoKMjAwOC0wNS0zMCAwNzozNjoxNyArMDAwMCAgUm9iIEJyYWRmb3JkIDxyb2JAcm9ic3Rlci5vcmcudWs+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogRG9uJ3QgcmVjdXJzZSBpbnRvIC5kZWJ1ZyBkaXJlY3RvcmllcyBhcyBzb21lIGRpc3Ryb3MgaW5zdGFsbCB0aGUgZGVidWdnaW5nIHN5bWJvbHMgbmV4dCB0byB0aGUgcGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSb2IgQnJhZGZvcmQgPHJvYiBhdCByb2JzdGVyIGRvdCBvcmcgZG90IHVrPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIERvbid0IHJlY3Vyc2UgaW50byAuZGVidWcgZGlyZWN0b3JpZXMgYXMgc29tZSBkaXN0cm9zIGluc3RhbGwKCSAgdGhlIGRlYnVnZ2luZyBzeW1ib2xzIG5leHQgdG8gdGhlIHBsdWdpbnMgaW4gLmRlYnVnIGRpcmVjdG9yaWVzCgkgIGFuZCBkbG9wZW4oKSBjcmFzaGVzIG9uIHRoZW0gc29tZXRpbWVzLiBGaXhlcyBidWcgIzUwODA3MC4KCSAgQWRkIEZJWE1FIGZvciAwLjExIHRvIG5vdCByZWN1cnNlIGludG8gZGlyZWN0b3JpZXMgYXQgYWxsIGJlY2F1c2UKCSAgaXQncyB2ZXJ5IGluY29uc2lzdGVudCB0byB0aGUgYmVoYXZpb3VyIG9mIG90aGVyIFBBVEggZW52aXJvbm1lbnQKCSAgdmFyaWFibGVzLgoKMjAwOC0wNS0yOSAxNjozNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IHBvc2l0aW9uIHF1ZXJ5IHJhbmdlIGNoZWNrcyBpbiByZXZlcnNlIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBGaXggcG9zaXRpb24gcXVlcnkgcmFuZ2UgY2hlY2tzIGluIHJldmVyc2UgcGxheWJhY2suCgoyMDA4LTA1LTI5IDA3OjE5OjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudC4qOiBEZXByZWNhdGVkIGdzdF9lbGVtZW50X2dldF9wYWQoKSBhcyBpdCBjYW4ndCBiZSB1c2VkIHNhbmVseS4gSXQncyBub3QgY2xlYXIgb2YgdGhlIHJlZmVyZW5jZSB0byB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBEZXByZWNhdGVkIGdzdF9lbGVtZW50X2dldF9wYWQoKSBhcyBpdCBjYW4ndCBiZSB1c2VkIHNhbmVseS4gSXQncyBub3QKCSAgY2xlYXIgb2YgdGhlIHJlZmVyZW5jZSB0byB0aGUgcmVzdWx0aW5nIHBhZCBtdXN0IGJlIHJlbGVhc2VkIGxhdGVyCgkgIG9yIG5vdCwgcmVzdWx0aW5nIGluIHBvc3NpYmxlIGxlYWtzLiBGaXhlcyBidWcgIzUzMzg2NS4KCjIwMDgtMDUtMjggMTY6NDY6MDcgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogU21hbGwgZG9jIGZpeC4gRml4ZXMgIzUzNTI4NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIFNtYWxsIGRvYyBmaXguIEZpeGVzICM1MzUyODUuCgoyMDA4LTA1LTI4IDEzOjQ4OjE3ICswMDAwICBCamFybmUgUm9zZW5ncmVuIDxiamFybmVAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBzZW5kaW5nIGFuIEVPUyBldmVudCB0byB0aGUgYmFzZXNyYyBub24tYmxvY2tpbmcgZXZlbiBpZiB0aGUgaW1wbGVtZW50YXRpb24gZG9lcyBibG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBCamFybmUgUm9zZW5ncmVuIDxiamFybmUgYXQgYXhpcyBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIHNlbmRpbmcgYW4gRU9TIGV2ZW50IHRvIHRoZSBiYXNlc3JjIG5vbi1ibG9ja2luZyBldmVuIGlmIHRoZQoJICBpbXBsZW1lbnRhdGlvbiBkb2VzIGJsb2NraW5nIHdhaXRzIGluIHRoZSBjcmVhdGUgZnVuY3Rpb24uIFRoaXMgaXMgZG9uZQoJICBieSB1bmxvY2tpbmcgdGhlIGNyZWF0ZSBmdW5jdGlvbiB3aGVuIEVPUyBpcyBzZW50LgoJICBGaXhlcyAjNTM1MjE4LgoKMjAwOC0wNS0yOCAxMDo0NDoxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogSWYgcG9zc2libGUgcHJpbnQgdGhlIGVsZW1lbnQgdHlwZSBvZiBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBJZiBwb3NzaWJsZSBwcmludCB0aGUgZWxlbWVudCB0eXBlIG9mIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMuCgoyMDA4LTA1LTI4IDA3OjQ3OjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogUmVtb3ZlIGFuIHVudXNlZCBmaWVsZCBmcm9tIHRoZSBwcml2YXRlIEdzdExpc3RJdGVyYXRvciBzdHJ1Y3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBSZW1vdmUgYW4gdW51c2VkIGZpZWxkIGZyb20gdGhlIHByaXZhdGUgR3N0TGlzdEl0ZXJhdG9yIHN0cnVjdC4KCjIwMDgtMDUtMjcgMjA6MTk6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBBZGQgcGFyYW1ldGVyIGd1YXJkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFkZCBwYXJhbWV0ZXIgZ3VhcmRzLgoKMjAwOC0wNS0yNyAxOTo0Nzo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IFJldmVydCB0ZXN0IGNoYW5nZSBhbmQgYWRkIGNvbW1lbnQgd2h5IGl0IHNob3VsZCBub3Qgd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIFJldmVydCB0ZXN0IGNoYW5nZSBhbmQgYWRkIGNvbW1lbnQgd2h5IGl0IHNob3VsZCBub3Qgd29yay4KCjIwMDgtMDUtMjcgMTg6MzE6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiBFeHRlbmRpbmcgdGhlIHRlc3QgYSBsaXR0bGUgdG8gdmVyaWZ5IHRoYXQgd2UgYWxzbyBnZXQgdGhlIE5VTEwgc3RhdGUtIGNoYW5nZSBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgRXh0ZW5kaW5nIHRoZSB0ZXN0IGEgbGl0dGxlIHRvIHZlcmlmeSB0aGF0IHdlIGFsc28gZ2V0IHRoZSBOVUxMIHN0YXRlLQoJICBjaGFuZ2UgbWVzc2FnZS4KCjIwMDgtMDUtMjcgMTY6Mzc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEFkZCBTaW5jZTogbWFya2VycyB0byBkb2NzIGJsdXJicy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOiAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9tZXRhKSwKCSAgKGdzdF9wcmVzZXRfZ2V0X3ByZXNldF9uYW1lcyksIChnc3RfcHJlc2V0X2dldF9wcm9wZXJ0eV9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2xvYWRfcHJlc2V0KSwgKGdzdF9wcmVzZXRfc2F2ZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9yZW5hbWVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfZGVsZXRlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X3NldF9tZXRhKToKCSAgQWRkIFNpbmNlOiBtYXJrZXJzIHRvIGRvY3MgYmx1cmJzLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgcmVjZW50bHktYWRkZWQgQVBJLgoKMjAwOC0wNS0yNyAxNToxMTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgY29uZmlndXJlLmFjOiBBZGQgREFUQURJUiBmb3Igc3RvcmluZyBwcmVzZXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0ICA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgREFUQURJUiBmb3Igc3RvcmluZyBwcmVzZXRzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIEFkZCBHc3RQcmVzZXQgdG8gZG9jcy4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwcmVzZXQuYzogKHByZXNldF9nZXRfcGF0aHMpLCAocHJlc2V0X3NraXBfcHJvcGVydHkpLAoJICAocHJlc2V0X29wZW5fYW5kX3BhcnNlX2hlYWRlciksIChwcmVzZXRfcGFyc2VfdmVyc2lvbiksCgkgIChwcmVzZXRfbWVyZ2UpLCAocHJlc2V0X2dldF9rZXlmaWxlKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfcHJlc2V0X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfcHJvcGVydHlfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2xvYWRfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9zYXZlX3ByZXNldHNfZmlsZSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfc2F2ZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3JlbmFtZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2RlbGV0ZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9kZWZhdWx0X3NldF9tZXRhKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfbWV0YSksIChnc3RfcHJlc2V0X2RlZmF1bHRfcmFuZG9taXplKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9yZXNldCksIChnc3RfcHJlc2V0X2dldF9wcmVzZXRfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9nZXRfcHJvcGVydHlfbmFtZXMpLCAoZ3N0X3ByZXNldF9sb2FkX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X3NhdmVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfcmVuYW1lX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlbGV0ZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9zZXRfbWV0YSksCgkgIChnc3RfcHJlc2V0X2dldF9tZXRhKSwgKGdzdF9wcmVzZXRfY2xhc3NfaW5pdCksCgkgIChnc3RfcHJlc2V0X2Jhc2VfaW5pdCksIChnc3RfcHJlc2V0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEFkZCBHc3RQcmVzZXQgdG8gY29yZS4gRml4ZXMgIzM5Njc3OQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzogKGdzdF9wcmVzZXRfdGVzdF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3ByZXNldF90ZXN0X3NldF9wcm9wZXJ0eSksIChnc3RfcHJlc2V0X3Rlc3RfY2xhc3NfaW5pdCksCgkgIChnc3RfcHJlc2V0X3Rlc3RfYmFzZV9pbml0KSwgKGdzdF9wcmVzZXRfdGVzdF9nZXRfdHlwZSksCgkgIChnc3RfcHJlc2V0X3Rlc3RfcGx1Z2luX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAocmVtb3ZlX3ByZXNldF9maWxlKSwgKHRlc3Rfc2V0dXApLCAodGVzdF90ZWFyZG93biksCgkgIChnc3RfcHJlc2V0X3N1aXRlKToKCSAgQWRkIEdzdFByZXNldCB1bml0IHRlc3RzLgoKMjAwOC0wNS0yNyAxMDo1OTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVGhlIGRlZmF1bHQgZXZlbnQgZnVuY3Rpb24gb24gYSBzaW5rcGFkIHNob3VsZCByZXR1cm4gVFJVRSB3aGVuIHRoZXJlIGFyZSBubyBpbnRlcm5hbCBsaW5rcyBidXQgc2hvdWxkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpOgoJICBUaGUgZGVmYXVsdCBldmVudCBmdW5jdGlvbiBvbiBhIHNpbmtwYWQgc2hvdWxkIHJldHVybiBUUlVFIHdoZW4KCSAgdGhlcmUgYXJlIG5vIGludGVybmFsIGxpbmtzIGJ1dCBzaG91bGQgY29sbGVjdCB0aGUgcmV0dXJuIHZhbHVlcyBmcm9tCgkgIHRoZSBpbnRlcm5hbCBsaW5rcyBvdGhlcndpc2UuCgoyMDA4LTA1LTI3IDEwOjU3OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVXNlIGZhc3RlciBhbmQgc2FmZXIgX3BhZF9wdXNoX2V2ZW50KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBVc2UgZmFzdGVyIGFuZCBzYWZlciBfcGFkX3B1c2hfZXZlbnQoKS4KCjIwMDgtMDUtMjcgMTA6NTA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGVsZW1lbnRfZmluZF91bmxpbmtlZF9wYWQpLAoJICAoZ3N0X2Jpbl9maW5kX3VubGlua2VkX3BhZCksIChnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgZ3N0X2Jpbl9maW5kX3VubGlua2VkX3BhZCgpCgkgIEFQSTogZGVwcmVjYXRlIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzQwMTQ1NikKCjIwMDgtMDUtMjYgMTA6MDc6MDkgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogRml4ZWQgYSBidW5jaCBvZiB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdHRhc2suYzoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBGaXhlZCBhIGJ1bmNoIG9mIHR5cG9zLgoKMjAwOC0wNS0yNSAxNjozNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86ICd1bmNvbm5lY3RlZCBwYWQnIC0+ICd1bmxpbmtlZCBwYWQnIGZvciBjb25zaXN0ZW5jeSAoIzQwMTQ1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksIChlbGVtZW50X2ZpbmRfdW5saW5rZWRfcGFkKSwKCSAgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLCAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKSwKCSAgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbl9mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgJ3VuY29ubmVjdGVkIHBhZCcgLT4gJ3VubGlua2VkIHBhZCcgZm9yIGNvbnNpc3RlbmN5ICgjNDAxNDU2KS4KCjIwMDgtMDUtMjUgMTY6MTM6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDogU21hbGwgZG9jcyB1cGRhdGUsIGNhbid0IGJlIGJvdGhlcmVkIHRvIHJld3JpdGUgdGhlIG5vbnNlbnNpY2FsIGV4YW1wbGVzIHJpZ2h0IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIFNtYWxsIGRvY3MgdXBkYXRlLCBjYW4ndCBiZSBib3RoZXJlZCB0byByZXdyaXRlIHRoZSBub25zZW5zaWNhbAoJICBleGFtcGxlcyByaWdodCBub3cuCgoyMDA4LTA1LTI1IDE0OjQ0OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IENsYXJpZnkgZG9jcyBmb3IgR1NUX1NFRUtfVFlQRV9DVVIgKCM1MzQ1MDUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQ2xhcmlmeSBkb2NzIGZvciBHU1RfU0VFS19UWVBFX0NVUiAoIzUzNDUwNSkuCgoyMDA4LTA1LTI1IDE0OjEzOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgoyMDA4LTA1LTI1IDEzOjU2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgR2V0IGFsbCBtaXNzaW5nIGVsZW1lbnRzIGZyb20gYSBwYXJzZSBsYXVuY2ggc3RyaW5nIGlmIHBvc3NpYmxlIChpZS4gaWYgdGhlIEZBVEFMX0VSUk9SUyBmbGFnIGhhcyBiZWVuIHNwZWNpZmllZCkuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBHZXQgYWxsIG1pc3NpbmcgZWxlbWVudHMgZnJvbSBhIHBhcnNlIGxhdW5jaCBzdHJpbmcgaWYgcG9zc2libGUKCSAgKGllLiBpZiB0aGUgRkFUQUxfRVJST1JTIGZsYWcgaGFzIGJlZW4gc3BlY2lmaWVkKS4gRml4ZXMgIzUyODE3OC4KCjIwMDgtMDUtMjQgMTY6Mzg6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgZ3N0X3BhcnNlX2xhdW5jaCpfZnVsbCgpIEFQSS4gKEV4cG9zZXMgYSBwcmV2aW91c2x5LWV4aXN0aW5nIG1lbW9yeSBsZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGUgbmV3IGdzdF9wYXJzZV9sYXVuY2gqX2Z1bGwoKSBBUEkuCgkgIChFeHBvc2VzIGEgcHJldmlvdXNseS1leGlzdGluZyBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgY29kZQoJICBwYXRoLCBzbyBhZGRpbmcgdG8gVkFMR1JJTkRfVE9fRklYIGZvciBub3cpLgoKMjAwOC0wNS0yNCAxNTozMzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoX0dzdFBhcnNlQ29udGV4dCk6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfZXJyb3JfcXVhcmspLCAoZ3N0X3BhcnNlX2NvbnRleHRfbmV3KSwKCSAgKGdzdF9wYXJzZV9jb250ZXh0X2ZyZWUpLCAoZ3N0X3BhcnNlX2NvbnRleHRfZ2V0X21pc3NpbmdfZWxlbWVudHMpLAoJICAoZ3N0X3BhcnNlX2xhdW5jaHYpLCAoZ3N0X3BhcnNlX2xhdW5jaHZfZnVsbCksIChnc3RfcGFyc2VfbGF1bmNoKSwKCSAgKGdzdF9wYXJzZV9sYXVuY2hfZnVsbCk6CgkgICogZ3N0L2dzdHBhcnNlLmg6IChHU1RfUEFSU0VfRkxBR19OT05FKSwgKEdTVF9QQVJTRV9GTEFHX0ZBVEFMX0VSUk9SUyksCgkgIChHc3RQYXJzZUZsYWdzKSwgKEdzdFBhcnNlQ29udGV4dCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZ3N0X3BhcnNlXypfZnVsbCBBUEkgKCM1MjgxNzgpOgoJICBBUEk6IGdzdF9wYXJzZV9sYXVuY2hfZnVsbCgpCgkgIEFQSTogZ3N0X3BhcnNlX2xhdW5jaHZfZnVsbCgpCgkgIEFQSTogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uX2Z1bGwoKQoJICBBUEk6IGdzdF9wYXJzZV9jb250ZXh0X25ldygpCgkgIEFQSTogZ3N0X3BhcnNlX2NvbnRleHRfZnJlZSgpCgkgIEFQSTogZ3N0X3BhcnNlX2NvbnRleHRfZ2V0X21pc3NpbmdfZWxlbWVudHMoKQoKMjAwOC0wNS0yMyAwNjo1MDoxMCArMDAwMCAgU3VyZXNoIEt1bWFyIFAgPHN1cmVzaGt1bWFyLnBwQGdtYWlsLmNvbT4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWxzbyBzdXBwb3J0IGZmbXBlZyBpbiBnc3QtdW5pbnN0YWxsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogU3VyZXNoIEt1bWFyIFAgPHN1cmVzaGt1bWFyLnBwQGdtYWlsLmNvbT4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFsc28gc3VwcG9ydCBmZm1wZWcgaW4gZ3N0LXVuaW5zdGFsbGVkLgoKMjAwOC0wNS0yMiAyMDoyOToyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBZnRlciBkaXNjdXNzaW9uIG9uIElSQyB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeSBhcyBkZWZhdWx0IGJ1dCBhbGxvdyB0byBkaXNhYmxlIGl0IHdpdGggLS1kaXNhYmxlLWJpbmFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWZ0ZXIgZGlzY3Vzc2lvbiBvbiBJUkMgdXNlIHRoZSBiaW5hcnkgcmVnaXN0cnkgYXMgZGVmYXVsdAoJICBidXQgYWxsb3cgdG8gZGlzYWJsZSBpdCB3aXRoIC0tZGlzYWJsZS1iaW5hcnktcmVnaXN0cnkuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCB0aGUgdHdvIG5ldyBzeW1ib2xzIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5LgoKMjAwOC0wNS0yMiAxNTozODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1vcmUgZ3VhcmRzIGFnYWluc3QgYmFkIGlucHV0OyB0eXBvIGZpeDsgc29tZSBtaW5vciBjbGVhbi11cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoX2dzdF9wYXJzZV9lc2NhcGUpLCAoZ3N0X3BhcnNlX2xhdW5jaHYpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OiAoZ3JhcGgpOgoJICBNb3JlIGd1YXJkcyBhZ2FpbnN0IGJhZCBpbnB1dDsgdHlwbyBmaXg7IHNvbWUgbWlub3IgY2xlYW4tdXBzLgoKMjAwOC0wNS0yMiAwODozMzoyNyArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJZiBub3RoaW5nIGVsc2UgY2FuIGJlIHVzZWQsIHVzZSB0aGUgbGFzdCBidWZmZXIncyBzdGFydCB0aW1lIGFzIHRoZSBzZWdtZW50J3MgbGFzdCBzdG9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgSWYgbm90aGluZyBlbHNlIGNhbiBiZSB1c2VkLCB1c2UgdGhlIGxhc3QgYnVmZmVyJ3Mgc3RhcnQgdGltZSBhcwoJICB0aGUgc2VnbWVudCdzIGxhc3Qgc3RvcC4gRml4ZXMgYnVnICM1MzQyNTguCgoyMDA4LTA1LTIxIDE4OjMzOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBNb3ZlIHNpemUgc2FuaXR5IGNoZWNrIHRvIHRoZSByaWdodCBwbGFjZTogZG93bnN0cmVhbSBtYXkgcmV0dXJuIGEgYnVmZmVyIHdpdGggYSBzbWFsbGVyIHNpemUgaWYgdGhlIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICBNb3ZlIHNpemUgc2FuaXR5IGNoZWNrIHRvIHRoZSByaWdodCBwbGFjZTogZG93bnN0cmVhbSBtYXkgcmV0dXJuCgkgIGEgYnVmZmVyIHdpdGggYSBzbWFsbGVyIHNpemUgaWYgdGhlIGJ1ZmZlciBjYXBzIGFyZSBkaWZmZXJlbnQgdGhhbgoJICB0aGUgcmVxdWVzdGVkIG9uZXMsIGFzIG1heSBoYXBwZW4gd2hlbiBkb2luZyByZXZlcnNlIG5lZ290aWF0aW9uLgoKMjAwOC0wNS0yMSAxNjowNjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBTbWFsbCBjbGVhbnVwcy4gQWRkIG5vdGUgYWRib3V0IGdfZm9wZW4oKSBvbiB3aW5kb3dzIGFuZCB3aHkgd2UgZG9uJ3QgdXNlIGl0IHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICBTbWFsbCBjbGVhbnVwcy4gQWRkIG5vdGUgYWRib3V0IGdfZm9wZW4oKSBvbiB3aW5kb3dzIGFuZCB3aHkgd2UgZG9uJ3QKCSAgdXNlIGl0IHlldC4KCjIwMDgtMDUtMjEgMTU6NTc6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb24ndCB1c2UgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xvYWRfYW5kX2xpbmspOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwKCSAgKGdzdF9lbGVtZW50X3VubGlua19wYWRzKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKHNldHVwX211bHRpcXVldWUpLAoJICAobXFfc2lua3BhZF90b19zcmNwYWQpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAocnVuX2RlbGF5ZWRfdGVzdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCkuCgoyMDA4LTA1LTIxIDE1OjU0OjI4ICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQG5va2lhLmNvbT4KCgkgIGRvY3MvTWFrZWZpbGUuYW06IEZpeCBpbnN0YWxsaW5nIHBsdWdpbiBkb2N1bWVudGF0aW9uIHdoZW4gZ3RrLWRvYyBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgRml4IGluc3RhbGxpbmcgcGx1Z2luIGRvY3VtZW50YXRpb24gd2hlbiBndGstZG9jIGlzIGRpc2FibGVkLgoKMjAwOC0wNS0yMSAxNTo1MToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogQXZvaWQgdXNpbmcgYSBiYWQgZnVuY3Rpb24gaW4gdGhlIGV4YW1wbGUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgQXZvaWQgdXNpbmcgYSBiYWQgZnVuY3Rpb24gaW4gdGhlIGV4YW1wbGUgY29kZS4KCjIwMDgtMDUtMjEgMTU6NDk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogRml4IGRlYnVnIG9mIHRoZSBuZXcgY2xvY2sgcmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKToKCSAgRml4IGRlYnVnIG9mIHRoZSBuZXcgY2xvY2sgcmF0ZS4KCjIwMDgtMDUtMjEgMTE6MTA6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogQWRkIGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jaygpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2soKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCjIwMDgtMDUtMjAgMDg6Mjg6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFVucmVmIGV2ZW50cyB0aGF0IHRoZSBHc3RCYXNlVHJhbnNmb3JtOjpldmVudCB2ZnVuYyBkaWRuJ3Qgd2FudCB0byBoYXZlIGZvcndhcmRlZCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbS5tdWxsZXIgYXQgY29sbGFib3JhIGNvIHVrPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnQpOgoJICBVbnJlZiBldmVudHMgdGhhdCB0aGUgR3N0QmFzZVRyYW5zZm9ybTo6ZXZlbnQgdmZ1bmMgZGlkbid0IHdhbnQgdG8KCSAgaGF2ZSBmb3J3YXJkZWQgYnkgdGhlIGJhc2UgY2xhc3MuIENsb3NlcyBhIGxlYWsgaW4gaWRlbnRpdHkuCgkgIEZpeGVzIGJ1ZyAjNDQ2NzYzLgoKMjAwOC0wNS0xOSAxNjozNjo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEV4cG9zZSBhIG1ldGhvZCB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW50ZXJuYWxseSB0byBzeW5jaHJvbml6ZSBhZ2FpbnN0IHRoZSBjbG9jayBiZWNhdXNlIGl0IGNhbiBiZSB1c2VmdWwgZm9yIHN1Yi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBFeHBvc2UgYSBtZXRob2QgdGhhdCB3YXMgcHJldmlvdXNseSB1c2VkIGludGVybmFsbHkgdG8gc3luY2hyb25pemUKCSAgYWdhaW5zdCB0aGUgY2xvY2sgYmVjYXVzZSBpdCBjYW4gYmUgdXNlZnVsIGZvciBzdWJjbGFzc2VzIHRvby4KCSAgR3N0QmFzZVNpbms6OmdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jaygpCgoyMDA4LTA1LTE5IDExOjU5OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgc2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBnZXQgc21hbGxlciBidWZmZXJzIHRoYW4gcmVxdWVzdGVkIChhbmQgZmFsbGJhY2sgdG8gbm9ybWFsIGJ1ZmZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYnVmZmVyX2FsbG9jX3VuY2hlY2tlZCk6CgkgIEFkZCBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGdldCBzbWFsbGVyIGJ1ZmZlcnMKCSAgdGhhbiByZXF1ZXN0ZWQgKGFuZCBmYWxsYmFjayB0byBub3JtYWwgYnVmZmVyIGFsbG9jIGlmIHdlIGRvKS4KCjIwMDgtMDUtMTkgMTE6MTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlZmFjdG9yIGFkanVzdGluZyB0aGUgcnVubmluZ190aW1lIHdpdGggbGF0ZW5jeSBhbmQgb2Zmc2V0IGludG8gYSBzZXBhcmF0ZSBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfYWRqdXN0X3RpbWUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICBSZWZhY3RvciBhZGp1c3RpbmcgdGhlIHJ1bm5pbmdfdGltZSB3aXRoIGxhdGVuY3kgYW5kIG9mZnNldCBpbnRvIGEKCSAgc2VwYXJhdGUgbWV0aG9kLgoJICBXaGVuIGRvaW5nIGNsaXBwaW5nLCB3ZSBzdGlsbCB3YW50IHRvIHVzZSB0aGUgc3ViY2xhc3MgZ2V0X3RpbWVzIG1ldGhvZCwKCSAganVzdCBpbiBjYXNlIHRoZSBEVVJBVElPTiBvciBUSU1FU1RBTVAgYXJlIG5vdCBzZXQuCgoyMDA4LTA1LTE5IDEwOjQ2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3R5cGVfZmluZF9zdWdnZXN0X3NpbXBsZSgpLCAjNTMzNzQwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9zdWdnZXN0X3NpbXBsZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogYWRkIGdzdF90eXBlX2ZpbmRfc3VnZ2VzdF9zaW1wbGUoKSwgIzUzMzc0MC4KCjIwMDgtMDUtMTkgMTA6Mjk6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXNlIHJpZ2h0IGVycm9yIGNvZGUgd2hlbiB0eXBlZmluZGluZyBmYWlscywgc28gd2UgY2FuIHVzZSB0aGUgZGVmYXVsdCAodHJhbnNsYXRlZCkgZXJyb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICBVc2UgcmlnaHQgZXJyb3IgY29kZSB3aGVuIHR5cGVmaW5kaW5nIGZhaWxzLCBzbyB3ZSBjYW4gdXNlCgkgIHRoZSBkZWZhdWx0ICh0cmFuc2xhdGVkKSBlcnJvciBtZXNzYWdlcy4KCjIwMDgtMDUtMTkgMTA6MDM6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogV2hlbiB0aGUgc3ViY2xhc3MgZGlkIG5vdCBzZXQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLCBjb25maWd1cmUgdGhlIGNhcHMgd2UgbmVnb3RpYXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgIFdoZW4gdGhlIHN1YmNsYXNzIGRpZCBub3Qgc2V0IGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycywgY29uZmlndXJlIHRoZQoJICBjYXBzIHdlIG5lZ290aWF0ZWQgb24gdGhlIHNvdXJjZSBwYWQuCgkgIFdoZW4gdGhlIHR5cGVmaW5kIGhlbHBlciBkb2VzIG5vdCBmaW5kIGNhcHMsIGVycm9yIG91dCBwcm9wZXJseSBpbnN0ZWFkCgkgIG9mIGRvaW5nIHRoaW5ncyB3aXRoIE5VTEwgY2Fwcy4KCjIwMDgtMDUtMTggMTg6NTM6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dHlwZWZpbmQuaDogVGFicyB0byBzcGFjZXMsIG9oIHllcyEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIFRhYnMgdG8gc3BhY2VzLCBvaCB5ZXMhCgoyMDA4LTA1LTE4IDEyOjEzOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkKCjIwMDgtMDUtMTggMTE6NTI6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiBBZGQgRGF2aWQncyBhbmQgQmVuamFtaW4ncyB0ZXN0cyBmb3IgYXJyYXkgc3VidHJhY3Rpb24gdG8gdGhlIHVuaXQgdGVzdCBzdWl0ZSwgd2hpY2ggc3VnZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKHRlc3RfaW50ZXJzZWN0MiksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZCBEYXZpZCdzIGFuZCBCZW5qYW1pbidzIHRlc3RzIGZvciBhcnJheSBzdWJ0cmFjdGlvbiB0byB0aGUKCSAgdW5pdCB0ZXN0IHN1aXRlLCB3aGljaCBzdWdnZXN0cyB0aGF0ICMxNDc5MzEgaXMgZml4ZWQgdGhlc2UgZGF5cy4KCjIwMDgtMDUtMTggMTE6MzU6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuYzogRG9jdW1lbnQgdGhhdCBnc3RfZXZlbnRfbmV3X3RhZygpIGFuZCBnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24oKSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdGFnbGlzdC9zdHJ1Y3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIERvY3VtZW50IHRoYXQgZ3N0X2V2ZW50X25ld190YWcoKSBhbmQgZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKCkKCSAgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHRhZ2xpc3Qvc3RydWN0dXJlIHBhc3NlZCB0byB0aGVtLiAoIzUzMzYzNSkuCgoyMDA4LTA1LTE3IDE3OjIwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvTWFrZWZpbGUuYW06IERvbid0IGRlc2NlbmQgaW50byB0aGUgcGx1Z2lucyBkaXIgaWYgcGx1Z2luIGRvY3MgYnVpbGRpbmcgaXMgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgIERvbid0IGRlc2NlbmQgaW50byB0aGUgcGx1Z2lucyBkaXIgaWYgcGx1Z2luIGRvY3MgYnVpbGRpbmcKCSAgaXMgZGlzYWJsZWQuCgkgICogZG9jcy9SRUFETUU6CgkgIEFkZCBhIG5vdGUgYWJvdXQgdGhlIG5ldyB0eXBlOkdUeXBlTmFtZSBzeW50YXggZm9yIHRoZSBwbHVnaW4KCSAgZG9jdW1lbnRhdGlvbiAudHlwZXMgZmlsZS4KCjIwMDgtMDUtMTcgMTM6NTQ6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IE1hcmsgdGhlIGRlYnVnIHN0cmluZyBwYXJhbWV0ZXJzIGFzIGNvbnN0LiBGaXhlcyBidWcgIzUzMzQ5MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfaW5mbyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWFyayB0aGUgZGVidWcgc3RyaW5nIHBhcmFtZXRlcnMgYXMgY29uc3QuIEZpeGVzIGJ1ZyAjNTMzNDkwLgoKMjAwOC0wNS0xNiAyMTowOTo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBTb3J0IGJ1ZmZlciBjYWNoZSBsaXN0IGJ5IGVuZCBvZmZzZXRzLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBkb24ndCBzdG9wIHRvIHNlYXJjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBTb3J0IGJ1ZmZlciBjYWNoZSBsaXN0IGJ5IGVuZCBvZmZzZXRzLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBkb24ndAoJICBzdG9wIHRvIHNlYXJjaCBmb3IgYSBjYWNoZWQgYnVmZmVyIHRoYXQgY29udGFpbnMgdGhlIHJlcXVlc3RlZCBkYXRhCgkgIHRvbyBlYXJseS4KCSAgQWxzbyByZWFkIGEgbWluaW11bSBvZiA0ayBieXRlcyBpbnN0ZWFkIG9mIDUxMiBieXRlcyBhcyB0aGlzIGlzIGEgYml0CgkgIG1vcmUgZWZmaWNpZW50LiBGaXhlcyBidWcgIzQ1OTg2Mi4KCjIwMDgtMDUtMTQgMTg6MTc6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEV4cGxhaW4gd2h5IHdlIGNvcHkgdGhlIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEV4cGxhaW4gd2h5IHdlIGNvcHkgdGhlIGxpc3QuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEltcHJvdmUgZG9jcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG9uZSBkZWJ1Zy1sb2cgc3RhdGVtZW50IHRvIGhlbHAgdHJhY2luZyBwcm9iZWxtcyB3aXRoIGxpbmtpbmcgcGFkcy4KCjIwMDgtMDUtMTQgMTg6MDk6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IEFkZCBhIHRlc3QgZm9yIHJlbW92aW5nIHRoZSBkZWZhdWx0IGxvZyBoYW5kbGVyLiBTZWVtcyB0byBmYWlsIHVuZGVyIHdpbmRvd3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIEFkZCBhIHRlc3QgZm9yIHJlbW92aW5nIHRoZSBkZWZhdWx0IGxvZyBoYW5kbGVyLiBTZWVtcyB0byBmYWlsIHVuZGVyCgkgIHdpbmRvd3MuCgoyMDA4LTA1LTE0IDEzOjUyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZWxlYXNlIHBhZCBsb2NrIGJlZm9yZSBjYWxsaW5nIG91dCB0byBhdm9pZCBhIHBvc3NpYmxlIGRlYWRsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMpOgoJICBSZWxlYXNlIHBhZCBsb2NrIGJlZm9yZSBjYWxsaW5nIG91dCB0byBhdm9pZCBhIHBvc3NpYmxlIGRlYWRsb2NrLgoKMjAwOC0wNS0xNCAxMDoyMjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSB1bm5lZWRlZCB2YWx1ZSB1bnNldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIHVubmVlZGVkIHZhbHVlIHVuc2V0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZGUvc2VyaWFsaXphdGlvbiBvZiBjYXBzLgoKMjAwOC0wNS0xMyAxMjo1NDowMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFVzZSBjdXN0b20gbWFyc2hhbGVycyB0aGF0IHRha2UgR3N0TWluaU9iamVjdCBhcyBmaXJzdCBwYXJhbWV0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVF9PQkpFQ1QpLCAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVF9PQkpFQ1QpLAoJICAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICBVc2UgY3VzdG9tIG1hcnNoYWxlcnMgdGhhdCB0YWtlIEdzdE1pbmlPYmplY3QgYXMgZmlyc3QgcGFyYW1ldGVyLgoJICBVc2luZyBPQkpFQ1QgYXMgcGFyYW1ldGVyIHdoaWxlIGEgR3N0TWluaU9iamVjdCBpcyBnaXZlbiB3aWxsIGxlYWQKCSAgdG8gYXNzZXJ0aW9ucyBpZiBidWlsdCB3aXRoIEdfRU5BQkxFX0RFQlVHLiBGaXhlcyBidWcgIzUyNTUzMi4KCjIwMDgtMDUtMTMgMTI6Mzg6MzEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IENsZWFuIHVwIG9uIEZMVVNIX1NUT1AgYW5kIG5vdCBGTFVTSF9TVEFSVC4gRm9yd2FyZCBib3RoIGV2ZW50cyBpbW1lZGlhdGVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NlbmRfY2FjaGVkX2V2ZW50cyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQ2xlYW4gdXAgb24gRkxVU0hfU1RPUCBhbmQgbm90IEZMVVNIX1NUQVJULiBGb3J3YXJkIGJvdGggZXZlbnRzCgkgIGltbWVkaWF0ZWx5LgoKMjAwOC0wNS0xMyAxMTo0NToyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRm9yd2FyZCBGTFVTSF9TVEFSVCBldmVudHMgaW1tZWRpYXRlbHkgYW5kIGNsZWFuIHVwIGluc3RlYWQgb2YgY2FjaGluZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBGb3J3YXJkIEZMVVNIX1NUQVJUIGV2ZW50cyBpbW1lZGlhdGVseSBhbmQgY2xlYW4gdXAgaW5zdGVhZCBvZgoJICBjYWNoaW5nIHRoZW0uCgoyMDA4LTA1LTEzIDA3OjExOjA1ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2hlY2sgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciByZXR1cm5lZCBieSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIGFuZCBmYWxsIGJhY2sgdG8gZGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIENoZWNrIHRoZSBjYXBzIG9mIHRoZSBidWZmZXIgcmV0dXJuZWQgYnkgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSBhbmQKCSAgZmFsbCBiYWNrIHRvIGRlZmF1bHQgbmVnb3RpYXRpb24gaW4gdGhlIGNoYWluIGZ1bmN0aW9uIGlmIHRoZSBjYXBzCgkgIGFyZSBkaWZmZXJlbnQgZnJvbSB3aGF0IHdhcyByZXF1ZXN0ZWQuIEZpeGVzIGJ1ZyAjNTI2NzY4LgoKMjAwOC0wNS0wOSAyMDo0ODoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5vLCBsZXQncyBub3QgdXNlIGdfc2xpY2Vfe2R1cHxjb3B5fSBoZXJlLCBzaW5jZSB0aGV5IG9ubHkgZXhpc3Qgc2luY2UgR0xpYiAyLjE0IGFuZCB3ZSBzdGlsbCBkZXBlbmQgb25seSBvbiA+PSAyLjEyLi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIE5vLCBsZXQncyBub3QgdXNlIGdfc2xpY2Vfe2R1cHxjb3B5fSBoZXJlLCBzaW5jZSB0aGV5IG9ubHkgZXhpc3QKCSAgc2luY2UgR0xpYiAyLjE0IGFuZCB3ZSBzdGlsbCBkZXBlbmQgb25seSBvbiA+PSAyLjEyLiBBbHNvIGFkZAoJICB1bml0IHRlc3QgZm9yIGdzdF9zZWdtZW50X2NvcHkoKS4KCjIwMDgtMDUtMDkgMTg6MjU6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuaDogVHJ5IHRvIGZpeCAnZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0IGFsaWFzaW5nIHJ1bGVzJyB3YXJuaW5ncyB3aXRoIEMrKyBjb20uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6IChHU1RfQk9JTEVSUExBVEVfRlVMTCk6CgkgIFRyeSB0byBmaXggJ2RlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdAoJICBhbGlhc2luZyBydWxlcycgd2FybmluZ3Mgd2l0aCBDKysgY29tcGlsZXJzIGFuZCBHTGliID49IDIuMTQuMDogR0xpYgoJICBjaGFuZ2VkIHRoZSBkZWZhdWx0IEdUeXBlIHR5cGVkZWYgZnJvbSBndWxvbmcgdG8gZ3NpemUgYXQgc29tZSBwb2ludCwKCSAgYnV0IGtlcHQgR1R5cGUgdHlwZWRlZidlZCB0byBndWxvbmcgZm9yIEMrKyBmb3IgQUJJIHJlYXNvbnM7IHRoZQoJICBnX29uY2VfKiBmdW5jdGlvbnMgYWxsIHRha2UgYSBnc2l6ZSAqIHRob3VnaCwgc28gd29yayBhcm91bmQgdGhlIHR5cGUKCSAgbWlzbWF0Y2ggZm9yIEMrKyBieSBkb2luZyBldmVyeXRoaW5nIGluIGdzaXplIGFuZCBjYXN0aW5nIHRvIEdUeXBlCgkgIGxhdGVyLgoKMjAwOC0wNS0wOSAxNDowMjo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzaWduYWxzIHRvIHB1c2ggb3VyIGNvcmUgcGx1Z2luIGRvY3MgY292ZXJhZ2UgYmFjayB1cCB0byAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2lnbmFscyB0byBwdXNoIG91ciBjb3JlIHBsdWdpbiBkb2NzCgkgIGNvdmVyYWdlIGJhY2sgdXAgdG8gMTAwJS4KCjIwMDgtMDUtMDggMTQ6MjM6MTYgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOiBSZXZlcnRlZCBHU1RfRlVOQ1RJT04gdG8gdGhlIG9sZCB2ZXJzaW9uIGFzIHdlIGRvbid0IHdhbnQgdGhlIGZ1bGwgc2lnbmF0dXJlIGluIEMrKyBjb2QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKToKCSAgUmV2ZXJ0ZWQgR1NUX0ZVTkNUSU9OIHRvIHRoZSBvbGQgdmVyc2lvbiBhcyB3ZSBkb24ndCB3YW50IHRoZQoJICBmdWxsIHNpZ25hdHVyZSBpbiBDKysgY29kZS4gQWxzbyBhZGRlZCBzdXBwb3J0IGZvciBNU1ZDLgoKMjAwOC0wNS0wOCAxMTozNzowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEludGVybiB0aGUgdHlwZSBuYW1lIHN0cmluZywgc2ltaWxhciB0byB3aGF0IEdfREVGSU5FX1RZUEUgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEludGVybiB0aGUgdHlwZSBuYW1lIHN0cmluZywgc2ltaWxhciB0byB3aGF0IEdfREVGSU5FX1RZUEUgZG9lcy4KCjIwMDgtMDUtMDggMTE6Mjc6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBNYWtlIEdTVF9CT0lMRVJQTEFURSB0aHJlYWQtc2FmZSBpZiBidWlsZGluZyB3aXRoIEdMaWIgMi4xNCBvciBuZXdlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1ha2UgR1NUX0JPSUxFUlBMQVRFIHRocmVhZC1zYWZlIGlmIGJ1aWxkaW5nIHdpdGggR0xpYiAyLjE0IG9yIG5ld2VyLgoKMjAwOC0wNS0wOCAwNTo1NTozNCArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IHBhc3N0aHJvdWdoIGJ1ZmZlciBhbGxvY2F0aW9uIHRvbyBlYXNpbHkgaWYgdGhlIGNhcHMgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gYSBwYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBEb24ndCBwYXNzdGhyb3VnaCBidWZmZXIgYWxsb2NhdGlvbiB0b28gZWFzaWx5IGlmIHRoZSBjYXBzIGNoYW5nZS4KCSAgVGhpcyBicmVha3Mgd2hlbiB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUgYW5kIHVwc3RyZWFtIGNoYW5nZXMKCSAgaXQncyBjYXBzLiBGaXhlcyBidWcgIzUyNjc2OC4KCjIwMDgtMDUtMDcgMTk6MjQ6NDQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0aW5mby5jIChnc3RfZGVidWdfbG9nX3ZhbGlzdCk6IEltcHJvdmVkIHRoZSBfX0ZJTEVfXyBwYXJ0IG9mIGRlYnVnIG91dHB1dCBmb3IgTVNWQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYyAoZ3N0X2RlYnVnX2xvZ192YWxpc3QpOgoJICBJbXByb3ZlZCB0aGUgX19GSUxFX18gcGFydCBvZiBkZWJ1ZyBvdXRwdXQgZm9yIE1TVkMuCgoyMDA4LTA1LTA3IDE5OjE1OjE0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KTogRGVjbGFyYXRpb24gYWZ0ZXIgc3RhdGVtZW50IGZpeCBmb3IgY29tcGlsZXJzIGxpa2UgTVNWQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgRGVjbGFyYXRpb24gYWZ0ZXIgc3RhdGVtZW50IGZpeCBmb3IgY29tcGlsZXJzIGxpa2UgTVNWQy4KCjIwMDgtMDUtMDcgMTk6MDk6MDggKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmguaW46IERvbid0IGRlZmluZSBHU1RfRlVOQ1RJT04sIGlmIEdMaWIgc3VwcG9ydHMgTVNWQyB3ZSdkIG11Y2ggcmF0aGVyIHVzZSB0aGUgcmVhbCB0aGluZyB0aGFuIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBEb24ndCBkZWZpbmUgR1NUX0ZVTkNUSU9OLCBpZiBHTGliIHN1cHBvcnRzIE1TVkMgd2UnZCBtdWNoIHJhdGhlcgoJICB1c2UgdGhlIHJlYWwgdGhpbmcgdGhhbiBoYXZpbmcgIj8/PyIgdW5jb25kaXRpb25hbGx5LgoKMjAwOC0wNS0wNyAxODo1MToyMiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6IE1hZGUgR1NUX0ZVTkNUSU9OIGFuIGFsaWFzIGZvciBHX1NUUkZVTkMgdG8gYXZvaWQgZHVwbGljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6CgkgIE1hZGUgR1NUX0ZVTkNUSU9OIGFuIGFsaWFzIGZvciBHX1NUUkZVTkMgdG8gYXZvaWQgZHVwbGljYXRpb24uCgoyMDA4LTA1LTA3IDA5OjQ3OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IFNtYWxsIGNvZGUgY2xlYW51cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9hdmFpbGFibGVfZmFzdCk6CgkgIFNtYWxsIGNvZGUgY2xlYW51cC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIEZpeCBzb21lIGNvbW1lbnRzLgoKMjAwOC0wNS0wNyAwOTozNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy4qOiBBZGRlZCBmb3JtYXQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgZm9ybWF0IG9mIHRoZSBuZXdzZWdtZW50IGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfaW5pdCksIChnc3RfZmFrZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2Vfc3JjX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgQWRkZWQgZm9ybWF0IHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGZvcm1hdCBvZiB0aGUgbmV3c2VnbWVudCBldmVudHMuCgkgIEFQSTogR3N0RmFrZVNyYzpmb3JtYXQKCjIwMDgtMDUtMDYgMDg6NDU6MDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgZ3N0X3BhZF9oYXNfbmFtZSgpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wYWRfaGFzX25hbWUoKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCjIwMDgtMDUtMDYgMDg6NDM6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIERvbid0IGFsbG93IG5lZ2F0aXZlIHNpemVzIHdoZW4gYWxsb2NhdGluZyBuZXcgYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgRG9uJ3QgYWxsb3cgbmVnYXRpdmUgc2l6ZXMgd2hlbiBhbGxvY2F0aW5nIG5ldyBidWZmZXJzLgoJICBGaXhlcyBidWcgIzQ2MTI1My4KCjIwMDgtMDUtMDUgMTY6NDc6MjkgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRG9uJ3QgcHJpbnQgYSB3YXJuaW5nIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eSB3aGVuIHdlIHRyeSB0byBwb3AgaGVyZS4gVGhhdCBjb3VsZCBoYXBwZW4gaWYgYW5vdGhlciB0aHJlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIG5ldD4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCk6CgkgIERvbid0IHByaW50IGEgd2FybmluZyBpZiB0aGUgcXVldWUgaXMgZW1wdHkgd2hlbiB3ZSB0cnkgdG8gcG9wCgkgIGhlcmUuIFRoYXQgY291bGQgaGFwcGVuIGlmIGFub3RoZXIgdGhyZWFkIG9yIGNhbGxiYWNrIHNldCB0aGUKCSAgYnVzIHRvIGZsdXNoaW5nIGJldHdlZW4gdGhlIHNvdXJjZSdzIGNoZWNrL3ByZXBhcmUgYW5kIHRoZQoJICBkaXNwYXRjaCBiZWluZyBjYWxsZWQgKCM1MzE1MzgpLgoKMjAwOC0wNS0wNSAxNjoyNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBTbWFsbCBkb2NzIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIFNtYWxsIGRvY3MgZml4LgoKMjAwOC0wNS0wNSAxNTo1MDozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZCB1bml0IHRlc3QgZm9yIGRlc2VyaWFsaXppbmcgdWludDY0cyBhbmQgY2hlY2sgc29tZSByZWFsbHkgbGFyZ2UgbnVtYmVycyBpbiB0aGUgaW50NjQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyB1aW50NjRzIGFuZCBjaGVjayBzb21lIHJlYWxseSBsYXJnZQoJICBudW1iZXJzIGluIHRoZSBpbnQ2NCB0ZXN0LgoKMjAwOC0wNS0wNCAxOTowNzoyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogVXNlICIlcyIgYXMgZm9ybWF0IHN0cmluZyBpbnN0ZWFkIG9mIHByaW50aW5nIHN0cmluZ3MgZGlyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChuX3ByaW50KSwgKHByaW50X2hpZXJhcmNoeSksCgkgIChwcmludF9pbnRlcmZhY2VzKSwgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKToKCSAgVXNlICIlcyIgYXMgZm9ybWF0IHN0cmluZyBpbnN0ZWFkIG9mIHByaW50aW5nIHN0cmluZ3MgZGlyZWN0bHkuCgoyMDA4LTA1LTA0IDE0OjI1OjA3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suYzogTWFrZSBzb21lIGNoZWNrcyBhY3R1YWxseSB1c2VmdWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6CgkgIE1ha2Ugc29tZSBjaGVja3MgYWN0dWFsbHkgdXNlZnVsLgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIFJlbW92ZSBzb21lIHVudXNlZCBjb2RlLiBVbnNpZ25lZCBpbnRlZ2VycyB0ZW5kIHRvIGJlID49IDAuCgoyMDA4LTA1LTAzIDE5OjIzOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogRml4ICdTaW5jZTonIHZlcnNpb24gaW4gZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCgpIGRvY3MgYmx1cmI6IHRoaXMgZnVuY3Rpb24gd2FzIG5vdCBpbiB0aGUgdW5zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfZ2V0X21pbmlfb2JqZWN0KToKCSAgRml4ICdTaW5jZTonIHZlcnNpb24gaW4gZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCgpIGRvY3MgYmx1cmI6IHRoaXMKCSAgZnVuY3Rpb24gd2FzIG5vdCBpbiB0aGUgdW5zY2hlZHVsZWQgMC4xMC4xOSByZWxlYXNlLgoKMjAwOC0wNS0wMyAxOToxMzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBPbmx5IHByaW50IG9uZSBsb2cgbWVzc2FnZSBwZXIgbm9uLXBsdWdpbiBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBPbmx5IHByaW50IG9uZSBsb2cgbWVzc2FnZSBwZXIgbm9uLXBsdWdpbiBmaWxlLgoKMjAwOC0wNS0wMyAxOTowODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCBhbGlnbm1lbnQgb2YgZGVidWcgbG9nIGNvbHVtbnMgb24gNjQtYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgRml4IGFsaWdubWVudCBvZiBkZWJ1ZyBsb2cgY29sdW1ucyBvbiA2NC1iaXQuCgoyMDA4LTA1LTAzIDE2OjUyOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzLzogSWdub3JlIHByaXZhdGUgY29udHJvbGxlciBoZWFkZXJzIGZvciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgSWdub3JlIHByaXZhdGUgY29udHJvbGxlciBoZWFkZXJzIGZvciBkb2NzLgoKMjAwOC0wNS0wMyAxNToyNToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IE1vdmUgc29tZSBwcml2YXRlIGRlY2xhcmF0aW9ucyBpbnRvIHByaXZhdGUgaGVhZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJICBNb3ZlIHNvbWUgcHJpdmF0ZSBkZWNsYXJhdGlvbnMgaW50byBwcml2YXRlIGhlYWRlcnMuCgoyMDA4LTA1LTAyIDEwOjEyOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgdW51c2VkIGFmdGVyIFN0ZWZhbidzIHJlZmFjdG9yaW5nIGFuZCB1c2VzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG5vdywuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKGRlYnVnX2R1bXBfZWxlbWVudF9wYWQpOgoJICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgdW51c2VkIGFmdGVyIFN0ZWZhbidzIHJlZmFjdG9yaW5nIGFuZCB1c2VzCgkgIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG5vdywgcmVzdWx0aW5nIGluIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDgtMDUtMDEgMTM6MDM6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUnVuIGdfc3RyX2hhc19zdWZmaXgoKSBvbmx5IG9uIHRoZSBmaWxlIG5hbWUsIG5vdCB0aGUgZW50aXJlIGZpbGUgcGF0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUnVuIGdfc3RyX2hhc19zdWZmaXgoKSBvbmx5IG9uIHRoZSBmaWxlIG5hbWUsIG5vdCB0aGUKCSAgZW50aXJlIGZpbGUgcGF0aC4KCjIwMDgtMDQtMzAgMTQ6MjA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFNpbmNlIHdlJ3JlIG5vdCBjYWxsZWQgb25seSBmcm9tIHRoZSBjaGFpbiBmdW5jdGlvbiBhbnkgbG9uZ2VyLCB3ZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xlYWtfZG93bnN0cmVhbSk6CgkgIFNpbmNlIHdlJ3JlIG5vdCBjYWxsZWQgb25seSBmcm9tIHRoZSBjaGFpbiBmdW5jdGlvbiBhbnkgbG9uZ2VyLAoJICB3ZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGVyZSdzIGFsd2F5cyBkYXRhIGluIHRoZSBxdWV1ZSwgc28gbW92ZQoJICB0aGUgaXNfZnVsbCBjaGVjayB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsb29wIChvdGhlcndpc2Ugd2UnZAoJICBoaXQgdGhlIGFzc2VydCB3aGVuIGNoYW5naW5nIHRoZSBsaW1pdCBwcm9wZXJ0aWVzIHdoaWxlIHRoZQoJICBxdWV1ZSBpcyBlbXB0eSBvciBub3QgcnVubmluZyB5ZXQpLgoJICBBbHNvLCBvbmx5IHNldCBhIGRpc2NvbnQgaWYgaXRlbXMgd2VyZSBhY3R1YWxseSByZW1vdmVkIGZyb20KCSAgdGhlIHF1ZXVlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6ICh0ZXN0X2xlYWt5X2Rvd25zdHJlYW0pOgoJICBUZXN0IGNhc2UgZm9yIHRoZSBhYm92ZS4KCjIwMDgtMDQtMzAgMDk6MzU6NDMgKzAwMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogV2hlbiBjaGFuZ2luZyB0aHIgbWF4IGNhcGFjaXR5IG9mIGEgbGVha3kgcXVldWUsIGltbWVkaWF0bHkgZHJvcCBidWZmZXJzIGluc3RlYWQgb2Ygd2FpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmFzIEhvbG1iZXJnIDxqb25hcyBkb3QgaG9sbWJlcmcgYXQgYXhpcyBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sZWFrX2Rvd25zdHJlYW0pLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKHF1ZXVlX2NhcGFjaXR5X2NoYW5nZSksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgV2hlbiBjaGFuZ2luZyB0aHIgbWF4IGNhcGFjaXR5IG9mIGEgbGVha3kgcXVldWUsIGltbWVkaWF0bHkgZHJvcCBidWZmZXJzCgkgIGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgYSBwdXNoIG9uIHRoZSBzaW5rcGFkLiBGaXhlcyAjNTMwNjM3LgoKMjAwOC0wNC0zMCAwNzo1NjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogUmVmYWN0b3IgY29kZSBhbmQgZml4IGhhbmRsaW5nIG9mIGdob3N0cGFkcyBhbmQgdGhlaXIgcHJveHlwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBSZWZhY3RvciBjb2RlIGFuZCBmaXggaGFuZGxpbmcgb2YgZ2hvc3RwYWRzIGFuZCB0aGVpciBwcm94eXBhZHMuCgoyMDA4LTA0LTI5IDExOjIzOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byBjb252ZW5pZW50bHkgY2hlY2sgdGhlIG5hbWUgb2YgYSBjdXN0b20gZXZlbnQgd2l0aCBnc3RfZXZlbnRfaGFzX25hbWUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9oYXNfbmFtZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBtZXRob2QgdG8gY29udmVuaWVudGx5IGNoZWNrIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGV2ZW50IHdpdGgKCSAgZ3N0X2V2ZW50X2hhc19uYW1lKCkuCgkgIFJlZm9ybWF0IHRoZSBldmVudCBkb2NzIHNvIHRoYXQgcmVsYXRlZCBtZXRob2RzIGFyZSBwdXQgdG9nZXRoZXIgaW5zdGVhZAoJICBvZiB0aGUgZGVmYXVsdCBhbHBoYWJldGljYWwgc29ydC4KCSAgVXBkYXRlIHVuaXQgdGVzdCB3aXRoIG5ldyBtZXRob2QuCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9oYXNfbmFtZSgpCgoyMDA4LTA0LTI4IDE4OjQ0OjQ4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbTogRG9uJ3QgYWRkIGFuIGV4cGxpY2l0IGxpbmsgdG8gbGliZ3N0cmVhbWVyLTAuMTAubGE7IGl0J3MgYWxyZWFkeSBpbmNsdWRlZCBpbiBHU1RfT0JKX0xJQlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBEb24ndCBhZGQgYW4gZXhwbGljaXQgbGluayB0byBsaWJnc3RyZWFtZXItMC4xMC5sYTsgaXQncyBhbHJlYWR5CgkgIGluY2x1ZGVkIGluIEdTVF9PQkpfTElCUy4KCjIwMDgtMDQtMjggMDk6MjE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3QuYzogUmVnaXN0ZXIgR3N0Q2xvY2sgdHlwZSBmcm9tIGEgdHlwZS1zYWZlIGNvbnRleHQuIEZpeGVzIGJ1ZyAjNTMwMzE3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIFJlZ2lzdGVyIEdzdENsb2NrIHR5cGUgZnJvbSBhIHR5cGUtc2FmZSBjb250ZXh0LiBGaXhlcyBidWcgIzUzMDMxNy4KCjIwMDgtMDQtMjYgMDA6MTM6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgdG9vbHMvZ3N0LXJ1bi5jOiBJbmNsdWRlIDx1bmlzdGQuaD4gY29uZGl0aW9uYWxseSBvbiBIQVZFX1VOSVNURF9IIGFzIGVsc2V3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5IEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoJICAqIHRvb2xzL2dzdC1ydW4uYzoKCSAgSW5jbHVkZSA8dW5pc3RkLmg+IGNvbmRpdGlvbmFsbHkgb24gSEFWRV9VTklTVERfSCBhcyBlbHNld2hlcmUuCgoyMDA4LTA0LTI1IDE3OjU0OjI4ICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgdGhlIEdMaWIgc3R1ZmYgdG8gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgVXNlIHRoZSBHTGliIHN0dWZmIHRvIGNyZWF0ZSBhIHByaXZhdGUgc3RydWN0dXJlLgoJICBBZGQgc29tZSBsb2NraW5nIGFyb3VuZCBzb21lIGRpc3Bvc2UgbWV0aG9kcyB0byBtYWtlIHRoZW0gYSBsaXR0bGUKCSAgc2FmZXIsIHNlZSAjNTI5NzIzLiBQYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgoyMDA4LTA0LTI1IDEzOjIyOjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogRml4IGRvYyB0eXBvcyBhbmQgdW5pZnkgY2FwcyBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRml4IGRvYyB0eXBvcyBhbmQgdW5pZnkgY2FwcyBhIGJpdC4KCjIwMDgtMDQtMjUgMTM6MDk6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRm9yZ290IHRvIGFsc28gYWRkIHRoZSBlbnZ2YXIgZG9jcyBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEZvcmdvdCB0byBhbHNvIGFkZCB0aGUgZW52dmFyIGRvY3MgaGVyZS4KCjIwMDgtMDQtMjUgMTA6MDE6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSZWYgc29tZSBtb3JlIGNsYXNzZXMgaW4gZ3N0X2luaXQoKSB0byB3b3JrIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBwcmUtMi4xNiBHTGlicywgYW5kIGFkZCBiYXNpYyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCksIChnc3RfZGVpbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBpcGVsaW5lX3RocmVhZCksCgkgICh0ZXN0X2NvbmN1cnJlbnRfY3JlYXRlKSwgKGdzdF9waXBlbGluZV9zdWl0ZSk6CgkgIFJlZiBzb21lIG1vcmUgY2xhc3NlcyBpbiBnc3RfaW5pdCgpIHRvIHdvcmsgYXJvdW5kIHRocmVhZC1zYWZldHkKCSAgaXNzdWVzIGluIHByZS0yLjE2IEdMaWJzLCBhbmQgYWRkIGJhc2ljIHVuaXQgdGVzdC4KCjIwMDgtMDQtMjUgMDc6MjI6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlYXJyYW5nZSB0aGUgbGF0ZW5jeSBxdWVyeSBjb2RlLiBXZSBhbHdheXMgd2FudCB0byBkbyB0aGUgdXBzdHJlYW0gcXVlcnksIGV2ZW4gaWYgd2UgYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6CgkgIFJlYXJyYW5nZSB0aGUgbGF0ZW5jeSBxdWVyeSBjb2RlLiBXZSBhbHdheXMgd2FudCB0byBkbyB0aGUgdXBzdHJlYW0KCSAgcXVlcnksIGV2ZW4gaWYgd2UgYXJlIG5vdCBsaXZlIHNvIHRoYXQgdGhlIHVwc3RyZWFtIGVsZW1lbnRzIGNhbiBnZXQgdGhlCgkgIGxhdGVuY3kgcmVzdWx0cyB0b28uIElmIHdlIGZhaWwgZG9pbmcgdGhlIHF1ZXJ5IGFuZCB3ZSBhcmUgbGl2ZSwgd2UKCSAgcmV0dXJuIFRSVUUgYWZ0ZXJ3YXJkcy4KCjIwMDgtMDQtMjQgMTU6MTQ6NTQgKzAwMDAgIEphc29uIFpoYW8gPGUzNDIzY0Btb3Rvcm9sYS5jb20+CgoJICBFbmFibGUvZGlzYWJsZSBzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkoKSBiYXNlZCBvbiBjb21tYW5kbGluZSBzd2l0Y2ggb3IgZW52aXJvbm1lbnQgdmFyaWFibGUuIEZpeGVzICM1MjA0NjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgIEVuYWJsZS9kaXNhYmxlIHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSgpIGJhc2VkIG9uIGNvbW1hbmRsaW5lIHN3aXRjaAoJICBvciBlbnZpcm9ubWVudCB2YXJpYWJsZS4gRml4ZXMgIzUyMDQ2OC4KCSAgKiBDaGFuZ2VMb2c6CgkgIEZpeCB0eXBvIGluIG15IHByZXZpb3VzIGNvbW1pdC4KCjIwMDgtMDQtMjQgMDg6Mjc6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBZGQgYSB3YXJuaW5nIG9mIHdlIGhpdCB1bmhhbmRsZWQgZmFjdG9yaWVzIHdoZW4gc2F2aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgQWRkIGEgd2FybmluZyBvZiB3ZSBoaXQgdW5oYW5kbGVkIGZhY3RvcmllcyB3aGVuIHNhdmluZy4KCSAgTW9yZSBkZWJ1ZyBsb2dnaW5nIGRldGFpbCwgYnV0IG1vdmUgdG8gTE9HIGNhdGVnb3J5LgoKMjAwOC0wNC0yNCAwNjo0Njo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFRlbGwgdGhlICp0cnV0aCogd2hlbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBUZWxsIHRoZSAqdHJ1dGgqIHdoZW4gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNC0yMyAxNDo1NDoyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFVucmVmIHRoZSBmYWN0b3J5IGFmdGVyIGl0IHdhcyB1c2VkIHRoZSBsYXN0IHRpbWUsIG5vdCBiZWZvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKToKCSAgVW5yZWYgdGhlIGZhY3RvcnkgYWZ0ZXIgaXQgd2FzIHVzZWQgdGhlIGxhc3QgdGltZSwgbm90IGJlZm9yZS4KCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9tYWtlKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQgYW5kIGRvbid0IGxlYWsgYSByZWYgdG8gdGhlIGluZGV4IGZhY3Rvcnkgd2l0aAoJICBlYWNoIGNhbGwuCgoyMDA4LTA0LTIzIDEzOjU1OjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEltcHJvdmUgdGhlIGRvY3VtZW50YXRpb24uCgoyMDA4LTA0LTIzIDEwOjE0OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBUaGUgZ2xpYiBtYWNybyBzZWVtcyB0byBiZSBib3JrZWQuIFVzZSBnX3NsaWNlX2NvcHkgZGlyZWN0bHkgYW5kIGNhc3QgaW4gdGhlIGhvcGUgdGhhdCB0aGlzIGZpeGVzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgVGhlIGdsaWIgbWFjcm8gc2VlbXMgdG8gYmUgYm9ya2VkLiBVc2UgZ19zbGljZV9jb3B5IGRpcmVjdGx5IGFuZCBjYXN0CgkgIGluIHRoZSBob3BlIHRoYXQgdGhpcyBmaXhlcyB0aGUgd2FybmluZyBvbiA2NGJpdC4KCjIwMDgtMDQtMjMgMDc6MDg6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IERvY3VtZW50IHRoZSBuZXcgZnVuY3Rpb24uIFVzZSBnX3NsaWNlX2R1cCgpIChubyBuZWVkIGZvciBnc3Rfc2VnbWVudF9pbml0KCkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBEb2N1bWVudCB0aGUgbmV3IGZ1bmN0aW9uLiBVc2UgZ19zbGljZV9kdXAoKSAobm8gbmVlZCBmb3IKCSAgZ3N0X3NlZ21lbnRfaW5pdCgpKS4KCjIwMDgtMDQtMjMgMDY6NTc6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE1vdmUgR1BhcmFtU2VwYyBtYWNyb3MgdG8gc3RhbmRhcnQgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTW92ZSBHUGFyYW1TZXBjIG1hY3JvcyB0byBzdGFuZGFydCBzZWN0aW9uLgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRG4ndCBkb2N1bWVudCBfZ2V0X3R5cGUgLSBpdHMgaW4gcHJpdmF0ZSBzZWN0aW9uIGluIGRvY3MgYW55d2F5IGFuZAoJICB0aGlzIGRvYy1ibG9iIHdhcyBpbmNvbXBsZXRlLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBGaXggd3Jvbmcgc3ltYm9sIG5hbWVzIGluIGRvY3MuCgkgICogZ3N0L2dzdG1hY3Jvcy5oOgoJICBBZGQgb25jZSBkb2Mgc2VudGVuY2UuCgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0wNC0yMSAxMDoyNTowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvTWFrZWZpbGUuYW06IEFuZCByZW1vdmUgdGhvc2UgbGlicyBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgQW5kIHJlbW92ZSB0aG9zZSBsaWJzIGhlcmUuCgoyMDA4LTA0LTIxIDA5OjI5OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL01ha2VmaWxlLmFtOiBGaXggZG9jcyBidWlsZCBhZ2FpbiBieSBhZGRpbmcgbGliZ3N0bmV0LTAuMTAuc28gdG8gU0NBTk9CSl9ERVBTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEZpeCBkb2NzIGJ1aWxkIGFnYWluIGJ5IGFkZGluZyBsaWJnc3RuZXQtMC4xMC5zbyB0byBTQ0FOT0JKX0RFUFMuCgoyMDA4LTA0LTIxIDA4OjM0OjA5ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBBZGQgdGhlIG1pbi10aHJlc2hvbGQgdG8gdGhlIG1pbiBsYXRlbmN5IGlmIHBvc3NpYmxlLiBGaXhlcyAjNTI5MTQ4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgQWRkIHRoZSBtaW4tdGhyZXNob2xkIHRvIHRoZSBtaW4gbGF0ZW5jeSBpZiBwb3NzaWJsZS4gRml4ZXMgIzUyOTE0OC4KCjIwMDgtMDQtMjEgMDc6NDU6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjogU3R1cGlkIGVkaXRvciwgSSByZW1vdmVkIHRoYXQgbGluZSBhcyBpdCBzaG91bGQgZ28gaW4geWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIFN0dXBpZCBlZGl0b3IsIEkgcmVtb3ZlZCB0aGF0IGxpbmUgYXMgaXQgc2hvdWxkIGdvIGluIHlldC4KCjIwMDgtMDQtMjEgMDc6NDI6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBSZW1vdmUgbGlicmFyeSB0eXBlcyBmcm8gY29yZSBkb2NzIGFuZCBoYXZlIHRoZW0gaW4gbGlicyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBSZW1vdmUgbGlicmFyeSB0eXBlcyBmcm8gY29yZSBkb2NzIGFuZCBoYXZlIHRoZW0gaW4gbGlicyBkb2NzLgoJICBSZWZvcm1hdCBhbmQgY2xlYW51cC4gQWRkIGNvbW1lbnQgZm9yIG1pbmlvYmplY3QgdHlwZXMuCgoyMDA4LTA0LTIwIDE2OjMyOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBGaXggbGVhazogZ19zdHJkb3duIG9wZXJhdGVzIG9uIHRoZSBzdHJpbmcgaW4gcGxhY2UsIHdoaWxlIGdfYXNjaWlfc3RyZG93bigpIHJldHVybnMgYSBuZXdseS1hbGxvY2F0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfZ2V0X3Byb3RvY29sKToKCSAgRml4IGxlYWs6IGdfc3RyZG93biBvcGVyYXRlcyBvbiB0aGUgc3RyaW5nIGluIHBsYWNlLCB3aGlsZQoJICBnX2FzY2lpX3N0cmRvd24oKSByZXR1cm5zIGEgbmV3bHktYWxsb2NhdGVkIHN0cmluZy4KCjIwMDgtMDQtMjAgMDk6NTU6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50IHRoZSBVUkkgcHJvdG9jb2xzIGFuZCB0aGUgVVJJIHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfdXJpX2hhbmRsZXJfaW5mbyksCgkgIChwcmludF9lbGVtZW50X2luZm8pOgoJICBQcmludCB0aGUgVVJJIHByb3RvY29scyBhbmQgdGhlIFVSSSB0eXBlIHN1cHBvcnRlZCBieSB0aGUgZWxlbWVudC4KCjIwMDgtMDQtMTkgMTY6MDU6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IFVzZSBnX3ZhbHVlX3Rha2Vfc3RyaW5nKCkgaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBnX3ZhbHVlX3NldF9zdHJpbmdfdGFrZV9vd25lcnNoaXAoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKToKCSAgVXNlIGdfdmFsdWVfdGFrZV9zdHJpbmcoKSBpbnN0ZWFkIG9mIHRoZSBkZXByZWNhdGVkCgkgIGdfdmFsdWVfc2V0X3N0cmluZ190YWtlX293bmVyc2hpcCgpLgoKMjAwOC0wNC0xOSAxNTo0MjoxOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFJldHVybiB0aGUgb2xkIENSQyBpbnN0ZWFkIG9mIDAgaWYgd2UgZ2l2ZSBhIE5VTEwgYnVmZmVyIG9yIGEgYnVmZmVyIHdpdGggYSBsZW5ndGggb2YgMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChfZ3N0X2NyYzMyKToKCSAgUmV0dXJuIHRoZSBvbGQgQ1JDIGluc3RlYWQgb2YgMCBpZiB3ZSBnaXZlIGEgTlVMTCBidWZmZXIKCSAgb3IgYSBidWZmZXIgd2l0aCBhIGxlbmd0aCBvZiAwLgoKMjAwOC0wNC0xOSAxNTozNjoyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHVyaS5jOiBBIHZhbGlkIFVSSSBzY2hlbWUgY2FuIGFsc28gaW5jbHVkZSAnKycsICctJyBhbmQgJy4nIGFkZGl0aW9uYWwgdG8gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYXMgcGVyIFJGQyAzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfcHJvdG9jb2xfY2hlY2tfaW50ZXJuYWwpLAoJICAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpLCAoZ3N0X3VyaV9oYXNfcHJvdG9jb2wpLAoJICAoZ3N0X3VyaV9jb25zdHJ1Y3QpLCAoZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkpOgoJICBBIHZhbGlkIFVSSSBzY2hlbWUgY2FuIGFsc28gaW5jbHVkZSAnKycsICctJyBhbmQgJy4nIGFkZGl0aW9uYWwKCSAgdG8gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYXMgcGVyIFJGQyAzOTg2IFNlY3Rpb24gMy4xLgoJICBIYW5kbGUgVVJJIHNjaGVtZXMgY2FzZSBpbnNlbnNpdGl2ZSBpbiBhbGwgcGxhY2VzIGFuZCBjb252ZXJ0CgkgIHRvIGxvd2VyLWNhc2Ugd2hlbiBjb25zdHJ1Y3RpbmcgYW4gVVJJIG9yIHNldHRpbmcgYW4gVVJJIHdpdGgKCSAgdGhlIEdzdFVSSUhhbmRsZXIgaW50ZXJmYWNlLiBGaXhlcyBidWcgIzUyODg2OC4KCSAgQWxsIGVsZW1lbnRzIGNhbiBzdGlsbCBhc3N1bWUgKGFzIGJlZm9yZSkgdGhhdCB0aGV5IHdpbGwKCSAgZ2V0IHBhc3NlZCBVUklzIHdpdGggYSBsb3dlci1jYXNlIFVSSSBzY2hlbWUgYnkgdGhlIEdzdFVSSUhhbmRsZXIKCSAgaW50ZXJmYWNlLgoKMjAwOC0wNC0xNyAxMDowOTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IERvbid0IHVzZSBnX2F0b21pY19zZXRfaW50IHdoZXJlIGl0J3Mgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyk6CgkgIERvbid0IHVzZSBnX2F0b21pY19zZXRfaW50IHdoZXJlIGl0J3Mgbm90IG5lZWRlZC4KCjIwMDgtMDQtMTcgMDg6NDU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggMiBjYXBzIGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9jYXBzKToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBGaXggMiBjYXBzIGxlYWtzLgoKMjAwOC0wNC0xNyAwODozNDoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFVzZSBnX2F0b21pY19pbnRfc2V0KCkgaGVyZSB0b28gaW5zdGVhZCBvZiBhc3NpZ25tZW50ICsgZ19hdG9taWNfaW50X2dldCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9hdG9taWNfaW50X3NldCk6CgkgIFVzZSBnX2F0b21pY19pbnRfc2V0KCkgaGVyZSB0b28gaW5zdGVhZCBvZiBhc3NpZ25tZW50ICsKCSAgZ19hdG9taWNfaW50X2dldCgpLgoKMjAwOC0wNC0xNyAwNzoxNDo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLio6IEFQSTogRGVwcmVjYXRlIGdzdF9hdG9taWNfaW50X3NldCgpLCBnX2F0b21pY19pbnRfc2V0KCkgc2hvdWxkIGJlIHVzZWQgbm93IHRoYXQgd2UgZGVwZW5kIG9uIG5ldyBlbm91Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IERlcHJlY2F0ZSBnc3RfYXRvbWljX2ludF9zZXQoKSwgZ19hdG9taWNfaW50X3NldCgpIHNob3VsZCBiZSB1c2VkCgkgIG5vdyB0aGF0IHdlIGRlcGVuZCBvbiBuZXcgZW5vdWdoIEdMaWIuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyk6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCksIChnc3RfZGVidWdfc2V0X2NvbG9yZWQpLAoJICAoZ3N0X2RlYnVnX3NldF9kZWZhdWx0X3RocmVzaG9sZCksIChfZ3N0X2RlYnVnX2NhdGVnb3J5X25ldyksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc2V0X3Byb3BlcnR5KToKCSAgVXNlIGdfYXRvbWljX2ludF9zZXQoKSBpbnN0ZWFkIG9mIGdzdF9hdG9taWNfaW50X3NldCgpLgoKMjAwOC0wNC0xNiAxODo0ODowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IEFsc28gdXNlIEdfR0lOVDY0X0NPTlNUQU5UIGZvciB0aGUgcXVlcmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEFsc28gdXNlIEdfR0lOVDY0X0NPTlNUQU5UIGZvciB0aGUgcXVlcmllcy4KCjIwMDgtMDQtMTYgMTg6Mzg6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IFVzZSBHX0dJTlQ2NF9DT05TVEFOVCBpbiB2YXJhcmdzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBVc2UgR19HSU5UNjRfQ09OU1RBTlQgaW4gdmFyYXJncyBmdW5jdGlvbi4KCjIwMDgtMDQtMTYgMTU6NTE6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbml0aWFsaXplIHRoZSByZWdpc3RyeSBtYWdpYyB3aXRoIHplcm9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpOgoJICBJbml0aWFsaXplIHRoZSByZWdpc3RyeSBtYWdpYyB3aXRoIHplcm9lcy4KCjIwMDgtMDQtMTYgMTQ6MTg6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBBZGQgY3JjMzIgY2hlY2tzdW0gdG8gdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlIGFuZCBjaGVjayB0aGlzIGJlZm9yZSBhY2NlcHRpbmcgYSByZWdpc3RyeSBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKF9nc3RfY3JjMzIpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIEFkZCBjcmMzMiBjaGVja3N1bSB0byB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUgYW5kIGNoZWNrIHRoaXMgYmVmb3JlCgkgIGFjY2VwdGluZyBhIHJlZ2lzdHJ5IGZpbGUuCgkgIEFsc28gZnJlZSB0aGUgZGF0YSBsaXN0IHdoZW4gd3JpdGluZyB0byB0aGUgcmVnaXN0cnkgZmlsZSBmYWlscy4KCjIwMDgtMDQtMTYgMTM6MTY6NDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiBhbiBlbGVtZW50IHN1cHBvcnRzIHRoZSBVcmkgaW50ZXJmYWNlLCByZXR1cm5zIGEgdmFsaWQgcG9pbnRlciB0byB0aGUgc3VwcG9ydGVkIFVSSSBwcm90by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBJZiBhbiBlbGVtZW50IHN1cHBvcnRzIHRoZSBVcmkgaW50ZXJmYWNlLCByZXR1cm5zIGEgdmFsaWQgcG9pbnRlcgoJICB0byB0aGUgc3VwcG9ydGVkIFVSSSBwcm90b2NvbHMgYnV0IHRoaXMgcG9pbnRlciBjb250YWlucyBub3RoaW5nCgkgIGRvbid0IHRyeSB0byBzYXZlIHRoYXQgYXMgaXQgd2lsbCBjb3JydXB0IHRoZSByZWdpc3RyeS4KCSAgRG9uJ3QgdW5yZWYgdGhlIHBsdWdpbiBpZiB3ZSBhZGRlZCBpdCB0byB0aGUgcmVnaXN0cnkgYWxyZWFkeSBidXQKCSAgZmFpbCB0byBsb2FkIGEgZmVhdHVyZSBhcyBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIHRha2VzIG93bmVyc2hpcAoJICBvZiB0aGUgcGx1Z2luLgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdC4KCjIwMDgtMDQtMTYgMDg6MzA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IENsYXJpZnkgc29tZSB0YWcgaXRlbSBkb2NzIGFmdGVyIGRpc2N1c3Npb24gb24gaXJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBDbGFyaWZ5IHNvbWUgdGFnIGl0ZW0gZG9jcyBhZnRlciBkaXNjdXNzaW9uIG9uIGlyYy4KCjIwMDgtMDQtMTUgMDY6MjM6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBjb21tZW50ZWQgb3V0IHBsdWdpbnMgKHRoZXkgaGF2ZSB0aGVpciBvd24gZG9jcykuIFVwZGF0ZSBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgUmVtb3ZlIGNvbW1lbnRlZCBvdXQgcGx1Z2lucyAodGhleSBoYXZlIHRoZWlyIG93biBkb2NzKS4gVXBkYXRlCgkgIGNvbW1lbnRzLgoKMjAwOC0wNC0xNSAwNjoxNjozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIEdTVF9QQVJBTV9DT05UUk9MTEFCTEUgYW5kIEdTVF9QQVJBTV9VU0VSX1NISUZULiBNb3ZlIHBhcmFtc3BlYyBkb2NzIHRvIG93biBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICBBZGQgR1NUX1BBUkFNX0NPTlRST0xMQUJMRSBhbmQgR1NUX1BBUkFNX1VTRVJfU0hJRlQuIE1vdmUgcGFyYW1zcGVjCgkgIGRvY3MgdG8gb3duIHNlY3Rpb24uCgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIFRoaXMgbm93IG9ubHkgZG9jdW1lbnRzIEdWYWx1ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBSZW1vdmUgR1NUX1BBUkFNX0NPTlRST0xMQUJMRS4KCjIwMDgtMDQtMTUgMDU6NTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBDb3JyZWN0IGZpbGUgcGF0aC4gVGVsbCBhYm91dCBob3cgdG8gdXNlIC1vdmVycmlkZXMudHh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgQ29ycmVjdCBmaWxlIHBhdGguIFRlbGwgYWJvdXQgaG93IHRvIHVzZSAtb3ZlcnJpZGVzLnR4dC4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgU21hbGwgZGVzaWduIHVwZGF0ZS4KCjIwMDgtMDQtMTQgMTI6MTI6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBGaXggYSB0eXBvIGluIGEgZGVidWcgbWVzc2FnZSBhbmQgcmV2ZXJ0IGNoYW5nZSBmcm9tIHllc3RlcmRheSBhcyBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBGaXggYSB0eXBvIGluIGEgZGVidWcgbWVzc2FnZSBhbmQgcmV2ZXJ0IGNoYW5nZSBmcm9tIHllc3RlcmRheSBhcwoJICBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIHdpbGwgb25seSBmYWlsIGlmIHNvbWV0aGluZyBpcyByZWFsbHkgd3JvbmcKCSAgYWxyZWFkeSBhbmQgd2UgY2FuJ3Qgc3Vydml2ZSBpdCBhbnl3YXkuCgoyMDA4LTA0LTE0IDA4OjQ4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBQcmUtcmVnaXN0ZXIgR3N0R0Vycm9yIEdUeXBlIGZyb20gYSB0aHJlYWQtc2FmZSBjb250ZXh0IChmaXhlcyAjNTI3OTY3KTsgdW5yZWYgZW51bSB0eXBlIGNsYXNzZXMgaW4gZGVpbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpLCAoZ3N0X2RlaW5pdCk6CgkgIFByZS1yZWdpc3RlciBHc3RHRXJyb3IgR1R5cGUgZnJvbSBhIHRocmVhZC1zYWZlIGNvbnRleHQKCSAgKGZpeGVzICM1Mjc5NjcpOyB1bnJlZiBlbnVtIHR5cGUgY2xhc3NlcyBpbiBkZWluaXQuCgoyMDA4LTA0LTEzIDE5OjU4OjQzICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmM6IE1lcmdpbmcgYW4gZW1wdHkgbGlzdCB3aXRoIGFub3RoZXIgbGlzdCBpbiBLRUVQX0FMTCBtb2RlIHNob3VsZCB5aWVsZCBhbiBlbXB0eSBsaXN0IGFzIHJlc3VsdCBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW5lIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncyk6CgkgIE1lcmdpbmcgYW4gZW1wdHkgbGlzdCB3aXRoIGFub3RoZXIgbGlzdCBpbiBLRUVQX0FMTCBtb2RlIHNob3VsZAoJICB5aWVsZCBhbiBlbXB0eSBsaXN0IGFzIHJlc3VsdCBhbmQgbm90IHRoZSBzZWNvbmQgbGlzdCAoIzUxMjU3OCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0YWcgbWVyZ2UgbW9kZXMgYW5kIHRoZSBhZm9yZW1lbnRpb25lZCBidWcuCgoyMDA4LTA0LTEzIDE4OjUwOjA1ICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBGaXggZGVzY3JpcHRpb24gdG8gbWF0Y2ggdGhlIG9yZGVyIGluIHRoZSB0YWJsZSAoIzUxMjU3NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuZSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRlPgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEZpeCBkZXNjcmlwdGlvbiB0byBtYXRjaCB0aGUgb3JkZXIgaW4gdGhlIHRhYmxlICgjNTEyNTc3KS4KCjIwMDgtMDQtMTMgMTc6NTE6MDIgKzAwMDAgIEt3YW5nIFl1bCBTZW8gPGt3YW5neXVsLnNlby5nbWFpbC5jb20+CgoJICBEZWZpbmUgc29ja2xlbl90IGFzIGludCBpZiBpdCdzIG5vdCBkZWZpbmVkIHlldC4gRml4ZXMgY29tcGlsYXRpb24gd2l0aCBNU1ZDNiBhbmQgb3RoZXIgdmVyc2lvbnMgd2hlcmUgc29ja2xlbl90IGlzIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBLd2FuZyBZdWwgU2VvICA8a3dhbmd5dWwuc2VvIGdtYWlsIGNvbT4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIERlZmluZSBzb2NrbGVuX3QgYXMgaW50IGlmIGl0J3Mgbm90IGRlZmluZWQgeWV0LiBGaXhlcyBjb21waWxhdGlvbgoJICB3aXRoIE1TVkM2IGFuZCBvdGhlciB2ZXJzaW9ucyB3aGVyZSBzb2NrbGVuX3QgaXMgbm90IGRlZmluZWQgaW4KCSAgdGhlIHdpbmRvd3MgaGVhZGVycyAoIzUxODAyMikuCgoyMDA4LTA0LTEzIDEzOjU0OjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSWYgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSBmYWlscyBvdXIgcmVmZXJlbmNlIHRvIHRoZSBwbHVnaW4gaXMgaW52YWxpZCBzbyBkb24ndCB0cnkgdG8gdXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgSWYgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSBmYWlscyBvdXIgcmVmZXJlbmNlIHRvIHRoZSBwbHVnaW4gaXMKCSAgaW52YWxpZCBzbyBkb24ndCB0cnkgdG8gdXNlIGl0IGFueW1vcmUgYW5kIGluc3RlYWQgZXJyb3Igb3V0LgoKMjAwOC0wNC0xMiAyMDo1Mjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IERlLWNydWZ0IGEgYml0LiBJZiBubyBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIHByaW50IGFsbCBlbGVtZW50cyBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKSwgKG1haW4pOgoJICBEZS1jcnVmdCBhIGJpdC4gSWYgbm8gYXJndW1lbnQgaXMgc3BlY2lmaWVkLCBwcmludCBhbGwgZWxlbWVudHMgaW4KCSAgWE1MIHN5bnRheCByYXRoZXIgdGhhbiBhIGZyZWVzdHlsZSBsaXN0IG9mIGVsZW1lbnRzIGxpa2UgZ3N0LWluc3BlY3QuCgkgIEFsc28sIGRvbid0IHByaW50IFhNTCBoZWFkZXIgY2h1bmsgdW5sZXNzIHdlIGFjdHVhbGx5IGhhdmUgc29tZXRoaW5nCgkgIHRvIHByaW50IChpZS4gZG9uJ3QgcHJpbnQgaXQgYmVmb3JlIGFuIGVycm9yIG1lc3NhZ2UpOyBwcmludCBlcnJvcgoJICBtZXNzYWdlIHRvIHN0ZGVyciBub3Qgc3Rkb3V0LiBSZW1vdmUgc3VwcG9ydCBmb3IgcHJpbnRpbmcgcGx1Z2luCgkgIGluZm8gKGl0IHdvdWxkIGp1c3Qgb3V0cHV0IHNvbWV0aGluZyBmcmVlc3R5bGUgYWxvbmcgdGhlIGxpbmVzIG9mCgkgIGdzdC1pbnNwZWN0IHNvIGZhciksIHdoaWNoIGZpeGVzICM1MTQ1MDcuIEFsc28gYWRkIGxpY2Vuc2UgaGVhZGVyLgoKMjAwOC0wNC0xMSAwOToyNzo0NCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBNYWMgT1MgWCBsb3ZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTA0LTExICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICBNYWMgT1MgWCBsb3ZlLi4uCgkgICogY29uZmlndXJlLmFjOiBNZXJnZSBwbGF0Zm9ybSBzcGVjaWZpYyBkZWZpbmVzLCBpbnRyb2R1Y2UgYSBuZXcKCSAgZGVmaW5lIG9uIE9TIFggdG8gcmVtZW1iZXIgdGhhdCBmb3JraW5nIHdoZW4gdXBkYXRpbmcgcmVnaXN0cnkgaXMKCSAgdW5zYWZlLgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogVXBkYXRlZCB0byBpbmNsdWRlIGdzdC1saWJzIGluIHRoZSBiYWQKCSAgbW9kdWxlLgoJICAqIGdzdC9nc3QuYzogRG9uJ3QgZm9yayB3aGVuIHVwZGF0aW5nIHJlZ2lzdHJ5IGlmIEdTVF9IQVZFX1VOU0FGRV9GT1JLCgkgIGlzIGRlZmluZWQuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKTogRml4ZWQgYSBib2d1cwoJICBjb25kaXRpb24gdGhhdCBsZWFkcyB0byBhYnNvbHV0ZWx5IG5vIHBsdWdpbnMgYmVpbmcgcmVnaXN0ZXJlZCBvbgoJICBPUyBYLgoKMjAwOC0wNC0xMCAyMDo0Njo1MSArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIEFkZCBnc3RfcGFkX2FkZF8qX3Byb2JlX2Z1bGwoKSBmdW5jdGlvbnMgd2l0aCBhIG5vdGlmeSBjYWxsYmFjayB0aGF0IGxldHMgdGhlIGNhbGxlciBmcmVlIHRoZSBkYXRhIGl0IHBhc3NlcyB0byB0aGUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZV9mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3BhZF9hZGRfKl9wcm9iZV9mdWxsKCkgZnVuY3Rpb25zIHdpdGggYSBub3RpZnkgY2FsbGJhY2sgdGhhdAoJICBsZXRzIHRoZSBjYWxsZXIgZnJlZSB0aGUgZGF0YSBpdCBwYXNzZXMgdG8gdGhlIHByb2JlIGZ1bmN0aW9ucy4gVGhpcwoJICBpcyB1c2VmdWwgZm9yIGJpbmRpbmdzIHN1Y2ggYXMgZ3N0LXB5dGhvbiBvciBnc3RyZWFtZXJtbSAoIzUyNjgxNCkuCgkgIEFQSTogZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZV9mdWxsCgkgIEFQSTogZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlX2Z1bGwKCSAgQVBJOiBnc3RfcGFkX2FkZF9ldmVudF9wcm9iZV9mdWxsCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBtaW5pbWFsIHVuaXQgdGVzdCB0byBtYWtlIHN1cmUgZnJlZWluZyB0aGUgZGF0YSBhY3R1YWxseSB3b3JrcwoJICBhcyBleHBlY3RlZC4KCSAgKiB0ZXN0cy9iZW5jaG1hcmtzLy5jdnNpZ25vcmU6CgkgIFJhbmRvbSBjdnNpZ25vcmUgYWRkZW5kdW0uCgoyMDA4LTA0LTEwIDE5OjEzOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuaDogTWVudGlvbiBHc3REZWJ1Z0dyYXBoRGV0YWlscyBlbnVtIHR5cGUgaW4gZG9jIGJsdXJiIHNvIHdlIGdldCBhIGxpbmsgdG8gaXQgaW4gdGhlIGRvY3MgKHNpbmNlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IChHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFX1dJVEhfVFMpLAoJICAoR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSk6CgkgIE1lbnRpb24gR3N0RGVidWdHcmFwaERldGFpbHMgZW51bSB0eXBlIGluIGRvYyBibHVyYiBzbyB3ZSBnZXQgYSBsaW5rCgkgIHRvIGl0IGluIHRoZSBkb2NzIChzaW5jZSB0aGVzZSBhcmUgbWFjcm9zIHRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzCgkgIHdvbid0IGJlIHNob3duIGluIHRoZSBkb2NzIG90aGVyd2lzZSkuCgoyMDA4LTA0LTEwIDE0OjEwOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IERvIG5vdCBhYm9ydCBvbiBvdXQgb2YgbWVtb3J5IGZvciBwYWRfYWxsb2NfYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIERvIG5vdCBhYm9ydCBvbiBvdXQgb2YgbWVtb3J5IGZvciBwYWRfYWxsb2NfYnVmZmVyLgoKMjAwOC0wNC0xMCAxMzo1OToyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogUmVtb3ZlIGJsYW5rIGxpbmUgYmV0d2VlbiBzeW1ib2wgbmFtZSBhZCBwYXJhbWV0ZXJzIHRvIGZpeCBndGtkb2Mgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgUmVtb3ZlIGJsYW5rIGxpbmUgYmV0d2VlbiBzeW1ib2wgbmFtZSBhZCBwYXJhbWV0ZXJzIHRvIGZpeCBndGtkb2MKCSAgd2FybmluZy4KCjIwMDgtMDQtMDkgMjI6Mzc6MjIgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBFeHBvc2UgZ3N0X3NlZ21lbnRfY29weSgpIHRvIG1ha2UgdGhpbmdzIGVhc2llciBmb3IgdGhlIGMrKyBiaW5kaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBFeHBvc2UgZ3N0X3NlZ21lbnRfY29weSgpIHRvIG1ha2UgdGhpbmdzIGVhc2llciBmb3IgdGhlIGMrKyBiaW5kaW5ncy4KCSAgRml4ZXMgIzUxODkzMi4KCSAgQVBJOiBnc3Rfc2VnbWVudF9jb3B5KCkKCjIwMDgtMDQtMDkgMjE6Mjc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IEZpeCBjb25zdCBwb3NpdGlvbjsgcmVmIEdUeXBlIGNsYXNzZXMgZm9yIGVudW0gdHlwZXMgdG8gd29yayBhcm91bmQgdGhyZWFkLXNhZmV0eSBpc3N1ZXMgaW4gR0xpYiB2ZXJzaW9ucyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChpbml0X3Bvc3QpOgoJICBGaXggY29uc3QgcG9zaXRpb247IHJlZiBHVHlwZSBjbGFzc2VzIGZvciBlbnVtIHR5cGVzIHRvIHdvcmsKCSAgYXJvdW5kIHRocmVhZC1zYWZldHkgaXNzdWVzIGluIEdMaWIgdmVyc2lvbnMgPCAyLjE2LgoKMjAwOC0wNC0wOSAxODoyNjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDogRml4IHNvbWUgdHlwb3MgYW5kIHNldCB0aGUgZXN0aW1hdGVkIHRvdGFsIGZvciBwdXNoIG1vZGUgdG8gLTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgRml4IHNvbWUgdHlwb3MgYW5kIHNldCB0aGUgZXN0aW1hdGVkIHRvdGFsIGZvciBwdXNoIG1vZGUgdG8gLTEuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZyk6CgkgIFNldCBidWZmZXJpbmctbGVmdCB0byAwIGFzIHdlJ3JlIG5vdCBidWZmZXJpbmcgYnkgZGVmYXVsdC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgSW1wbGVtZW50IEJVRkZFUklORyBxdWVyeS4KCjIwMDgtMDQtMDkgMTc6MzQ6NTQgKzAwMDAgIE1pbG9zeiBEZXJlenluc2tpIDxpbnRlcm5hbGVycm9yQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBBZGQgdHdvIG5ldyBlcnJvciBjb2RlcyBmb3IgZW5jcnlwdGVkIGNvbnRlbnQuIEZpeGVzICM1MjQ2NTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogTWlsb3N6IERlcmV6eW5za2kgPGludGVybmFsZXJyb3IgZ21haWwgY29tPgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBZGQgdHdvIG5ldyBlcnJvciBjb2RlcyBmb3IgZW5jcnlwdGVkIGNvbnRlbnQuIEZpeGVzICM1MjQ2NTkuCgkgIEFQSTogR1NUX1NUUkVBTV9FUlJPUl9ERUNSWVBUCgkgIEFQSTogR1NUX1NUUkVBTV9FUlJPUl9ERUNSWVBUX05PS0VZCgoyMDA4LTA0LTA5IDEzOjE1OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHF1ZXJ5Lmg6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRml4IHR5cG8uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZnVuY3Rpb25zLgoKMjAwOC0wNC0wOSAwODoxOTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBGaXggaW1wZXJmZWN0IHRpbWVzdGFtcC9vZmZzZXQgY2hlY2tzIHdoZW4gd2UgZ2V0IGFub3RoZXIgTkVXU0VHTUVOVCBldmVudCBhZnRlciBwcm9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9ldmVudCksCgkgIChnc3RfaWRlbnRpdHlfc3RhcnQpOgoJICBGaXggaW1wZXJmZWN0IHRpbWVzdGFtcC9vZmZzZXQgY2hlY2tzIHdoZW4gd2UgZ2V0IGFub3RoZXIgTkVXU0VHTUVOVAoJICBldmVudCBhZnRlciBwcm9jZXNzaW5nIHNvbWUgZGF0YS4gRml4ZXMgYnVnICM1MjYwNDIuCgoyMDA4LTA0LTA4IDIwOjI4OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmVuYW1lIF9hdmFpbCAtPiBfcmFuZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3JhbmdlKSwgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcmFuZ2UpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW5hbWUgX2F2YWlsIC0+IF9yYW5nZQoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19yYW5nZQoKMjAwOC0wNC0wOCAyMDoxNzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBidXN5IGZpZWxkIGFuZCBxdWFyayBmb3IgdGhlIGJ1ZmZlcmluZyBxdWVyeSBzbyB0aGF0IHRoZSBhcHAgY2FuIG9ubHkgdXNlIHRoZSBxdWVyeSB0byBzZWUgaWYgYnVmZmVyaW5nIGlzIGluIHByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZ3N0L2dzdHF1YXJrLmM6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZyksIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBidXN5IGZpZWxkIGFuZCBxdWFyayBmb3IgdGhlIGJ1ZmZlcmluZyBxdWVyeSBzbyB0aGF0IHRoZSBhcHAgY2FuCgkgIG9ubHkgdXNlIHRoZSBxdWVyeSB0byBzZWUgaWYgYnVmZmVyaW5nIGlzIGluIHByb2dyZXNzLgoKMjAwOC0wNC0wOCAxOTo1OTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJlb3JkZXIgdGhlIG1lc3NhZ2UgZG9jcyBhbmQgaGVhZGVycyBmb3IgY2xhcml0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2Vfc2V0X2J1ZmZlcmluZ19zdGF0cyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmdfc3RhdHMpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X3NldF9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KSwgKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3N0YXRzKSwgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfc3RhdHMpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfYXZhaWwpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19hdmFpbCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlb3JkZXIgdGhlIG1lc3NhZ2UgZG9jcyBhbmQgaGVhZGVycyBmb3IgY2xhcml0eS4KCSAgQWRkIGFkaXRpb25hbCBidWZmZXJpbmcgc3RhdHMgQVBJIGZvciBtZXNzYWdlcy4KCSAgQWRkIGJ1ZmZlcmluZyBxdWVyeS4KCSAgQ29udmVydCBzb21lIGxlZnRvdmVyIHF1ZXJpZXMgdG8gdXNlIEdzdFF1YXJrLgoJICBBUEk6IGdzdF9tZXNzYWdlX3NldF9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBHU1RfUVVFUllfQlVGRkVSSU5HCgkgIEFQSTogR3N0QnVmZmVyaW5nTW9kZQoJICBBUEk6IGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudAoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudAoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX2F2YWlsCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19hdmFpbAoKMjAwOC0wNC0wOCAxOTo1MjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IFVzZSBHc3RRdWFyayBmb3IgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9uZXdfbmV3X2Nsb2NrKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX25ld19hc3luY19zdGFydCksIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX2xvc3QpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfbmV3X2Nsb2NrKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9hc3luY19zdGFydCk6CgkgIFVzZSBHc3RRdWFyayBmb3IgbWVzc2FnZXMuCgoyMDA4LTA0LTA4IDE5OjM5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1YXJrLio6IEFkZCBzb21lIG1vcmUgcXVhcmtzIG5lZWRlZCBmb3IgbWVzc2FnZXMgYW5kIHF1ZXJpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgbmVlZGVkIGZvciBtZXNzYWdlcyBhbmQgcXVlcmllcy4KCjIwMDgtMDQtMDggMTk6MTQ6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6IFJlbW92ZSB0aGUgIm5vbmUiIGJ1ZmZlcmluZyBtb2RlLCBTVFJFQU0gaXMgYSBnb29kIGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgUmVtb3ZlIHRoZSAibm9uZSIgYnVmZmVyaW5nIG1vZGUsIFNUUkVBTSBpcyBhIGdvb2QgZGVmYXVsdC4KCSAgTW92ZSBlc3RpbWF0ZWQtdGltZSB0byB0aGUgYXZhaWwgcXVlcnksIHRoYXQncyB3aGVuIGl0IHdpbGwgYmUgbmVlZGVkLgoJICBPdGhlciBzbWFsbCB0eXBvIGZpeGVzIGFuZCB1cGRhdGVzLgoKMjAwOC0wNC0wNyAxMzoyNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmRleC5jOiBEb24ndCBwdXQgZGVzY3JpcHRpb25zIGludG8gdGhlIG5pY2sgZmllbGQgb2YgYSBHRW51bVZhbHVlOiBpdCdzIG5vdCBtZWFudCBmb3IgdGhhdCBhbmQgc29tZSBsYW5ndWFnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9yZXNvbHZlcl9nZXRfdHlwZSk6CgkgIERvbid0IHB1dCBkZXNjcmlwdGlvbnMgaW50byB0aGUgbmljayBmaWVsZCBvZiBhIEdFbnVtVmFsdWU6IGl0J3Mgbm90CgkgIG1lYW50IGZvciB0aGF0IGFuZCBzb21lIGxhbmd1YWdlIGJpbmRpbmdzIHJlbHkgb24gdGhlIG5pY2sgZmllbGQgdG8KCSAgY29uc3RydWN0IGNvbnN0YW50cyBhbmQgdGhlIGxpa2UuIEZpeGVzICM1MjY3MDUuCgoyMDA4LTA0LTA3IDEwOjQ4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWVyZ2Ugb3RoZXIgY2hhbmdlcyBmcm9tIDAuMTAuMTkgcmVsZWFzZSBicmFuY2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE5FV1M6CgkgICogUkVMRUFTRToKCSAgKiBnc3RyZWFtZXIuZG9hcDoKCSAgTWVyZ2Ugb3RoZXIgY2hhbmdlcyBmcm9tIDAuMTAuMTkgcmVsZWFzZSBicmFuY2guCgoyMDA4LTA0LTA2IDA4OjU0OjQ3ICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBY3R1YWxseSBidWlsZCBkbGxzIHdoZW4gY3Jvc3MtY29tcGlsaW5nIHdpdGggbWluZ3czMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuIGRvdCBsZXNwaWF1IGF0IGdtYWlsIGRvdCBjb20+CgkgICogY29uZmlndXJlLmFjOgoJICBBY3R1YWxseSBidWlsZCBkbGxzIHdoZW4gY3Jvc3MtY29tcGlsaW5nIHdpdGggbWluZ3czMi4KCSAgRml4ZXMgYnVnICM1MjYyNDcuCgoyMDA4LTA0LTA1IDEwOjU4OjExICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBvbGwuYzogRml4IGNvbXBpbGF0aW9uIG9mIEdzdFBvbGwgd2l0aCBtaW5ndzMyLiBGaXhlcyBidWcgIzUyNjIzNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuIGRvdCBsZXNwaWF1IGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBvbGwuYzoKCSAgRml4IGNvbXBpbGF0aW9uIG9mIEdzdFBvbGwgd2l0aCBtaW5ndzMyLiBGaXhlcyBidWcgIzUyNjIzNi4KCjIwMDgtMDQtMDQgMTM6NDM6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBGaXggdHlwby4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIFVwZGF0ZSBkZXNpZ24gZG9jcyB3aXRoIG1vcmUgYnVmZmVyaW5nIGlkZWFzLgoKMjAwOC0wNC0wMyAyMToxNTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIHRvIDAuMTAuMTkuMSBhZnRlciB0aGUgdW5zY2hlZHVsZWQgMC4xMC4xOSByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgdmVyc2lvbiB0byAwLjEwLjE5LjEgYWZ0ZXIgdGhlIHVuc2NoZWR1bGVkIDAuMTAuMTkgcmVsZWFzZS4KCjIwMDgtMDQtMDMgMTY6NDU6MDIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyB0byB3b3JrIHdpdGggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgdG8gd29yayB3aXRoIGRvY3MKCjIwMDgtMDQtMDMgMTQ6NDk6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUmV2ZXJ0IHBhcnQgdGhhdCBiZWxvbmdzIHRvIHRoZSBwcmVzZXQgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0IHBhcnQgdGhhdCBiZWxvbmdzIHRvIHRoZSBwcmVzZXQgcGF0Y2guCgoyMDA4LTA0LTAzIDE0OjI2OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFkZCBxb3V0ZXMgdG8gdGhlIGRlZmluZS4gRml4ZXMgIyA1MjU5NjEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIHFvdXRlcyB0byB0aGUgZGVmaW5lLiBGaXhlcyAjIDUyNTk2MS4KCjIwMDgtMDQtMDMgMDc6NTI6MzEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvOiBVc2UgR1NsaWNlIHdoZW4gcG9zc2libGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChfZmlsZV9pbmRleF9pZF9mcmVlKSwKCSAgKGdzdF9maWxlX2luZGV4X2xvYWQpLCAoZ3N0X2ZpbGVfaW5kZXhfYWRkX2lkKSwKCSAgKGdzdF9maWxlX2luZGV4X2dldF9hc3NvY19lbnRyeSk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOiAoZ3N0X21lbV9pbmRleF9mcmVlX2Zvcm1hdCksCgkgIChnc3RfbWVtX2luZGV4X2ZyZWVfaWQpLCAoZ3N0X21lbV9pbmRleF9hZGRfaWQpLAoJICAoZ3N0X21lbV9pbmRleF9pbmRleF9mb3JtYXQpOgoJICBVc2UgR1NsaWNlIHdoZW4gcG9zc2libGUuCgoyMDA4LTA0LTAyIDE3OjQ1OjA4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgdGhlIGNvbnRyb2wgcG9pbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfY29udHJvbF9wb2ludF9mcmVlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcm5hbCk6CgkgIFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgdGhlIGNvbnRyb2wgcG9pbnRzLgoKMjAwOC0wNC0wMiAxNzoyMTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IENsZWFudXAgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIENsZWFudXAgcHJvcGVydGllcy4KCSAgRml4IHBhZCBsZWFrIHdoZW4gcGVlciBxdWVyeSBmYWlscy4KCSAgV2UgY2FuIHN0aWxsIHR5cGVmaW5kIHdoZW4gdGhlIHBlZXIgcmV0dXJucyAtMS4KCSAgQWRkIHByb3BlcnR5IHRvIGZvcmNlIGNhcHMgYW5kIGJ5cGFzcyB0eXBlZmluZGluZy4gVGhpcyB3aWxsIGJlIHVzZWQgaW4KCSAgdXJpZGVjb2RlYmluLgoJICBBUEk6OmZvcmNlLWNhcHMKCjIwMDgtMDQtMDEgMTM6NTU6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBHTGliIDIuMTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBHTGliIDIuMTIuCgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfbmV3X2VtcHR5KSwgKF9nc3RfY2Fwc19mcmVlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoX2dzdF9jbG9ja19pZF9mcmVlKToKCSAgVW5jb25kaXRpb25hbGx5IHVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpb24uCgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX25ldyksIChnc3RfcG9sbF9mcmVlKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfbmV3KSwgKGdzdF9zZWdtZW50X2ZyZWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3X3dpdGhfc2l6ZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZyZWUpOgoJICBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW9uLgoKMjAwOC0wNC0wMSAxMzo0ODo1OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlLzogUmVxdWlyZSBhIG5ldyBlbm91Z2ggZmxleCBhbmQgYmlzb24gYW5kIHJlbW92ZSB0aGUgcGFyc2VyIGhhY2tzIHRvIHVzZSBhIHByZS1yZWdlbmVyYXRlZCB2ZXJzaW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIFJlcXVpcmUgYSBuZXcgZW5vdWdoIGZsZXggYW5kIGJpc29uIGFuZCByZW1vdmUgdGhlIHBhcnNlciBoYWNrcyB0byB1c2UKCSAgYSBwcmUtcmVnZW5lcmF0ZWQgdmVyc2lvbi4KCjIwMDgtMDQtMDEgMTA6MjU6MzUgKzAwMDAgIEphc29uIFpoYW8gPEUzNDIzQ0Btb3Rvcm9sYS5jb20+CgoJICBjb25maWd1cmUuYWM6IEFkZCBhIGNvbmZpZ3VyZSBzd2l0Y2ggdG8gZGlzYWJsZSBvcHRpb24gcGFyc2luZyBpbiBnc3RfaW5pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDQtMDEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgIHBhdGNoIGJ5OiBKYXNvbiBaaGFvIDxFMzQyM0NAbW90b3JvbGEuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzogQWRkIGEgY29uZmlndXJlIHN3aXRjaCB0byBkaXNhYmxlIG9wdGlvbiBwYXJzaW5nCgkgIGluIGdzdF9pbml0LgoJICBGaXhlcyAjNTIyODgyLgoKMjAwOC0wMy0zMSAxMzo0NzoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFjT1MgaGFzIHBsdWdpbnMgdW5kZXIgLnNvIG9yIHVuZGVyIC5keWxpYi4gQWRkIGRldGVjdGlvbiBmb3IgTWFjT1MgYW5kIGhhbmRsZSB0aGlzIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgTWFjT1MgaGFzIHBsdWdpbnMgdW5kZXIgLnNvIG9yIHVuZGVyIC5keWxpYi4gQWRkIGRldGVjdGlvbiBmb3IgTWFjT1MKCSAgYW5kIGhhbmRsZSB0aGlzIGNhc2UuCgkgICogZ3N0L2dzdC5jOgoJICBBZGQgYSBjb21tZW50IGhlcmUgZGVzY3JpYmluZywgd2h5IHdlIHN0YXQgZWFjaCBwbHVnaW4gYW5kIG5vdCB0cnkgdG8KCSAgYmUgc21hcnQuCgoyMDA4LTAzLTMxIDEwOjIxOjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWxzbyB1bnNldCB0aGUgR0FQIGZsYWcgb24gYnVmZmVycyBpZiB3ZSdyZSB3b3JraW5nIGlucGxhY2UgYnV0IHRoZSBlbGVtZW50IGlzIG5vdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgQWxzbyB1bnNldCB0aGUgR0FQIGZsYWcgb24gYnVmZmVycyBpZiB3ZSdyZSB3b3JraW5nIGlucGxhY2UgYnV0CgkgIHRoZSBlbGVtZW50IGlzIG5vdCBHQVAtYXdhcmUuCgkgIE1hcmsgYSBjb21tZW50IGFzIEZJWE1FIDAuMTEuCgoyMDA4LTAzLTMxIDA4OjMyOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IEZpeCB0eXBlIGluIGxvZyBtZXNzYWdlIGFuZCBhZGQgb25lIHRvIGVhc2Ugc2VlaW5nIGhvdyBsb25nIHJlZ2lzdHJ5IGNhY2hlIHZlcmlmaWNhdGlvbiB0YWtlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggdHlwZSBpbiBsb2cgbWVzc2FnZSBhbmQgYWRkIG9uZSB0byBlYXNlIHNlZWluZyBob3cgbG9uZyByZWdpc3RyeQoJICBjYWNoZSB2ZXJpZmljYXRpb24gdGFrZXMuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE9ubHkgdGVzdCBwbHVnaW4gZmlsZW5hbWVzIGFnYWluc3QgR19NT0RVTEVfU1VGRklYLgoKMjAwOC0wMy0zMSAwNzo0OToyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogSW1wcm92ZSBoYW5kbGluZyBnaG9zdC9wcm94eSBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBJbXByb3ZlIGhhbmRsaW5nIGdob3N0L3Byb3h5IHBhZHMuCgoyMDA4LTAzLTI3IDE5OjEzOjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBFeHBvc2UgbWFjcm8gdG8gZG9jcyBhbmQgZml4IGxpbmsgdG8gaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgRXhwb3NlIG1hY3JvIHRvIGRvY3MgYW5kIGZpeCBsaW5rIHRvIGl0LgoKMjAwOC0wMy0yNyAxNToyMzo1NSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBXaGVuIGNhbGN1bGF0aW5nIEdEUCBib2R5IENSQywgdXNlIHRoZSBjb3JyZWN0IHBvaW50ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApOgoJICBXaGVuIGNhbGN1bGF0aW5nIEdEUCBib2R5IENSQywgdXNlIHRoZSBjb3JyZWN0IHBvaW50ZXIuCgkgIEZpeGVzIHBhcnQgb2YgIzUyMjQwMS4KCjIwMDgtMDMtMjQgMTY6NTY6MzYgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IElkZW50aXR5IGlzIG5vdCBhbHdheXMgYSBwYXNzdGhyb3VnaCBlbGVtZW50LCBpdCBjYW4gbW9kaWZ5IHRoZSBidWZmZXIgdGltZXN0YW1wcyB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBJZGVudGl0eSBpcyBub3QgYWx3YXlzIGEgcGFzc3Rocm91Z2ggZWxlbWVudCwgaXQgY2FuIG1vZGlmeSB0aGUgYnVmZmVyCgkgIHRpbWVzdGFtcHMgd2hlbiBpdCBoYXMgYSBkYXRhcmF0ZSBhbmQgb3BlcmF0ZXMgaW4gc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgV2UgdGhlcmVmb3JlIG1ha2UgaXQgYW4gaW5fcGxhY2UgZmlsdGVyIHdpdGggYSBjdXN0b20gYnVmZmVyIHByZXBhcmUKCSAgZnVuY3Rpb24gdGhhdCBjb25kaXRpb25hbGx5IG1ha2VzIHRoZSBpbnB1dCBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUKCSAgd2hlbiBuZWVkZWQuICBGaXhlcyAjNTIzOTg1LgoKMjAwOC0wMy0yNCAxNjo0NDoyNSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuIEZpeGVzICM1MjM5NzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLiBGaXhlcyAjNTIzOTc4LgoKMjAwOC0wMy0yNCAxNjozMTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBbHNvIHJldHJ5IG91ciBwb2xsX3dhaXQgd2hlbiB3ZSBnZXQgRUFHQUlOLiBGaXhlcyAjNTI0MDQxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEFsc28gcmV0cnkgb3VyIHBvbGxfd2FpdCB3aGVuIHdlIGdldCBFQUdBSU4uIEZpeGVzICM1MjQwNDEuCgoyMDA4LTAzLTI0IDEwOjM4OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gdHJ5aW5nIHRvIG1ha2Ugcm9vbSBpbiB0aGUgcXVldWUsIGJ1bXAgdGhlIG1heCBhbGxvd2VkIGJ1ZmZlcnMgYmlnZ2VyIHRoYW4gdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKToKCSAgV2hlbiB0cnlpbmcgdG8gbWFrZSByb29tIGluIHRoZSBxdWV1ZSwgYnVtcCB0aGUgbWF4IGFsbG93ZWQgYnVmZmVycwoJICBiaWdnZXIgdGhhbiB0aGUgY3VycmVudCBhbW91bnQgb2YgYnVmZmVycyBpbiB0aGUgcXVldWUuIHRoaXMgZml4ZXMgc29tZQoJICBuYXN0eSBkZWFkbG9ja3MgaW4gbXVsdGlxdWV1ZSB3aGVuIGR5bmFtaWNhbGx5IGNoYW5naW5nIHRoZSBsaW1pdHMgb2YKCSAgdGhlIHF1ZXVlLgoKMjAwOC0wMy0yNCAxMDozMzo0MSArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIGdzdC9nc3RjYXBzLio6IENvbnN0aWZ5IHRoZSBmaWVsZCBnY2hhciAqIHBhcmFtcyBpbiBzZXRfc2ltcGxlIGFuZCBmcmllbmRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6ICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3NldF9zaW1wbGUpLAoJICAoZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3QpLCAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBDb25zdGlmeSB0aGUgZmllbGQgZ2NoYXIgKiBwYXJhbXMgaW4gc2V0X3NpbXBsZSBhbmQgZnJpZW5kcy4KCSAgRml4ZXMgIzUyMjMyNi4KCjIwMDgtMDMtMjQgMTA6Mjk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogVHJhbnNmb3JtIGEgR3N0T2JqZWN0IHRvIGEgbW9yZSBtZWFuaW5nZnVsbCBzdHJpbmcgdGhhdCBpbmNsdWRlcyB0aGUgb2JqZWN0IHR5cGUgaW4gYWRkaXRpb24gdG8gaXRzIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX29iamVjdF9zdHJpbmcpOgoJICBUcmFuc2Zvcm0gYSBHc3RPYmplY3QgdG8gYSBtb3JlIG1lYW5pbmdmdWxsIHN0cmluZyB0aGF0IGluY2x1ZGVzIHRoZQoJICBvYmplY3QgdHlwZSBpbiBhZGRpdGlvbiB0byBpdHMgbmFtZS4KCjIwMDgtMDMtMjMgMTU6MTc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGJ1Z251bWJlciB0byBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGJ1Z251bWJlciB0byBjb21taXQuCgoyMDA4LTAzLTIzIDE0OjI0OjQ4ICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKTogRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoKMjAwOC0wMy0yMyAxMTo0MDo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFJlbmFtZSBjb25zdGFudCBldmVyeXdoZXJlIGFuZCBkb24ndCBmb3JnZXQgb25lIG9jY3VyZW5jZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKToKCSAgUmVuYW1lIGNvbnN0YW50IGV2ZXJ5d2hlcmUgYW5kIGRvbid0IGZvcmdldCBvbmUgb2NjdXJlbmNlLgoKMjAwOC0wMy0yMyAxMToyOTo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGV2ZW4gaWYgdGhlIGFyY2hpdGVjdHVyZSBhbGxvd3MgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MuIFVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSk6CgkgIEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGV2ZW4gaWYgdGhlIGFyY2hpdGVjdHVyZSBhbGxvd3MKCSAgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MuIFVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzIHVzdWFsbHkgY29tZXMgd2l0aAoJICBwZXJmb3JtYW5jZSBwZW5hbGl0eS4KCjIwMDgtMDMtMjMgMTE6MjM6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBpbnN0ZWFkIG9mIGFsd2F5cyAzMiBiaXQuIEZpeGVzIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzZXMgby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBpbnN0ZWFkIG9mIGFsd2F5cyAzMiBiaXQuIEZpeGVzCgkgIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzZXMgb24gaWE2NCBhbmQgZnJpZW5kcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQnVtcCBiaW5hcnkgcmVnaXN0cnkgZm9ybWF0IHZlcnNpb24gZm9yIHRoaXMgYXMgaXQgY2hhbmdlcyB0aGUKCSAgZm9ybWF0IG9uIHRob3NlIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBoYXZlIHVuYWxpZ25lZCBhY2Nlc3MKCSAgYW5kIDY0IGJpdCBwb2ludGVycy4KCjIwMDgtMDMtMjIgMTQ6NTY6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIERlZmluZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGlmIGl0J3MgdW5kZWZpbmVkIChHTGliIDwgMi4xMy4wKSBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlIHN0YXRpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoX2dzdF9jaGVja19mYXVsdF9oYW5kbGVyX3Jlc3RvcmUpLAoJICAoX2dzdF9jaGVja19mYXVsdF9oYW5kbGVyX3NpZ2hhbmRsZXIpLAoJICAoX2dzdF9jaGVja19mYXVsdF9oYW5kbGVyX3NldHVwKSwgKGdzdF9jaGVja19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9jbGFzc19pbml0KToKCSAgRGVmaW5lIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgaWYgaXQncyB1bmRlZmluZWQgKEdMaWIgPCAyLjEzLjApIGFuZAoJICB1c2UgaXQgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4KCSAgVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1c2FnZSwgZmV3ZXIgYWxsb2NhdGlvbnMgYW5kIHRodXMgbGVzcwoJICBtZW1vcnkgZGVmcmFnbWVudGF0aW9uLiBGaXhlcyBidWcgIzUyMzgwNi4KCjIwMDgtMDMtMjIgMTQ6NTE6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIEdTVF9JU19QQVJBTV9TUEVDX01JTklfT0JKRUNULCBHU1RfUEFSQU1fU1BFQ19NSU5JX09CSkVDVAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCksCgkgIChnc3RfcGFyYW1fc3BlY19taW5pX29iamVjdCk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBUEk6IEFkZCBHU1RfSVNfUEFSQU1fU1BFQ19NSU5JX09CSkVDVCwgR1NUX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QKCSAgR1NUX1RZUEVfUEFSQU1fTUlOSV9PQkpFQ1QgYW5kIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QuIEFsc28gbW92ZQoJICBHc3RQYXJhbVNwZWNNaW5pT2JqZWN0IGludG8gYSBwdWJsaWMgaGVhZGVyIGZvciB0aGlzLgoJICBUaGlzIG1ha2UgR3N0TWluaU9iamVjdCBhIGJpdCBtb3JlIGNvbnNpc3RlbnQgd2l0aCBHT2JqZWN0IGFuZCBtYWtlcwoJICBpdCBwb3NzaWJsZSB0byBleHRlbmQgdGhlIHBhcmFtIHNwZWNzLgoJICBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0IGlzIG1haW5seSB1c2VmdWwgZm9yIHNldF9wcm9wZXJ0eSBtZXRob2RzLgoJICBGaXhlcyBidWcgIzUyMzc5OC4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBQcmludCBzb21ldGhpbmcgdXNlZnVsIGZvciBHc3RNaW5pT2JqZWN0IHByb3BlcnRpZXMgYW5kIG5vdCBqdXN0CgkgICJ1bmtub3duIHR5cGUiLgoKMjAwOC0wMy0yMSAxNjoxMTo1MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQ2FsbCB0aGUgdmVyc2lvbiBHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSIHRvIGJlIG1vcmUgY29uc2lzdGVudCBhbmQgYWRkIGl0IHRvIHRoZSAocHJpdmF0ZSBwYXJ0KSBvZiB0aGUgZG9jcyB0byBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIENhbGwgdGhlIHZlcnNpb24gR1NUX01BR0lDX0JJTkFSWV9WRVJTSU9OX1NUUiB0byBiZSBtb3JlIGNvbnNpc3RlbnQKCSAgYW5kIGFkZCBpdCB0byB0aGUgKHByaXZhdGUgcGFydCkgb2YgdGhlIGRvY3MgdG8gZml4IHRoZSBidWlsZC4KCjIwMDgtMDMtMjEgMTU6NTI6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBEb24ndCB1c2UgR1NUX01BSk9STUlOT1IgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgdmVyc2lvbi4gSW5zdGVhZCBoYXJkY29kZSBhIHZhbHVlIHRoYXQgbXVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIERvbid0IHVzZSBHU1RfTUFKT1JNSU5PUiBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSB2ZXJzaW9uLiBJbnN0ZWFkCgkgIGhhcmRjb2RlIGEgdmFsdWUgdGhhdCBtdXN0IGJlIGNoYW5nZWQgd2hlbmV2ZXIgdGhlIGZvcm1hdCBjaGFuZ2VzCgkgIGluIGFuIGluY29tcGF0aWJsZSB3YXkuCgkgIEFsc28gZG9uJ3QgR1NUX0VSUk9SIHdoZW4gdGhlcmUgaXMgYSB2ZXJzaW9uIG1pc21hdGNoLCBqdXN0CgkgIHJlZ2VuZXJhdGUgdGhlIHJlZ2lzdHJ5IHNpbGVudGx5LgoKMjAwOC0wMy0yMSAwMDozNToxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gZGV2ZWxvcG1lbnQgLSAwLjEwLjE4LjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0gMC4xMC4xOC4xCgo9PT0gcmVsZWFzZSAwLjEwLjE4ID09PQoKMjAwOC0wMy0yMSAwMDoyMDo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xOAoKMjAwOC0wMy0yMCAyMzoyNjowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wMy0xOCAxMjoxNzo1OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAwLjEwLjE3LjQgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNy40IHByZS1yZWxlYXNlCgoyMDA4LTAzLTE4IDEwOjU0OjUyICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgQWRkIG5ldyBmdW5jdGlvbiBnc3RfcG9sbF9mZF9pZ25vcmVkKCkgZm9yIGltcHJvdmVkIFdpbmRvd3MgY29tcGF0aWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMKCSAgPG9sZSBkb3QgYW5kcmUgZG90IHJhdm5hcyBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX3dpbnNvY2tfZXJyb3JfdG9fZXJybm8pLAoJICAoZ3N0X3BvbGxfdXBkYXRlX3dpbnNvY2tfZXZlbnRfbWFzayksCgkgIChnc3RfcG9sbF9wcmVwYXJlX3dpbnNvY2tfYWN0aXZlX3NldHMpLAoJICAoZ3N0X3BvbGxfY29sbGVjdF93aW5zb2NrX2V2ZW50cyksIChnc3RfcG9sbF9uZXcpLCAoZ3N0X3BvbGxfZnJlZSksCgkgIChnc3RfcG9sbF9hZGRfZmRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2lnbm9yZWQpLAoJICAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwKCSAgKGdzdF9wb2xsX2NoZWNrX2N0cmxfY29tbWFuZHMpLCAoZ3N0X3BvbGxfd2FpdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBmdW5jdGlvbiBnc3RfcG9sbF9mZF9pZ25vcmVkKCkgZm9yIGltcHJvdmVkIFdpbmRvd3MKCSAgY29tcGF0aWJpbGl0eS4KCSAgVmFyaW91cyBtaW5vciBmaXhlcyBhbmQgY2xlYW51cHMuIFNlZSAjNTIwODA4LgoKMjAwOC0wMy0xNyAxMDoyMTo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmRleC4qOiBEb24ndCBmcmVlIGtleSBzdHJpbmdzIHdoaWNoIHdlIGRvbid0IG93bi4gRml4ZXMgY3Jhc2ggaW4gZ3N0X2luZGV4X2VudHJ5X2ZyZWUoKSAoIzUyMjc0MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2VudHJ5X2ZyZWUpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICBEb24ndCBmcmVlIGtleSBzdHJpbmdzIHdoaWNoIHdlIGRvbid0IG93bi4gRml4ZXMgY3Jhc2ggaW4KCSAgZ3N0X2luZGV4X2VudHJ5X2ZyZWUoKSAoIzUyMjc0MSkuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZGV4LmM6ICh0ZXN0X2luZGV4X2VudHJpZXMpLAoJICAoZ3N0X2luZGV4X3N1aXRlKSwgKGdzdF9pbmRleCk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDgtMDMtMTEgMTQ6MDk6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBSZW1vdmUgc3ltYm9scyB0aGF0IHdlcmUgcmVtb3ZlZCByZWNlbnRseS4gRml4ZXMgYnVnICM1MjE3NDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgc3ltYm9scyB0aGF0IHdlcmUgcmVtb3ZlZCByZWNlbnRseS4gRml4ZXMgYnVnICM1MjE3NDAuCgoyMDA4LTAzLTExIDAwOjI0OjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIDAuMTAuMTcuMyBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjMgcHJlLXJlbGVhc2UKCjIwMDgtMDMtMTEgMDA6MjM6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZWxlYXNlIDAuMTAuMTcuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbGVhc2UgMC4xMC4xNy4zCgoyMDA4LTAzLTA3IDE1OjM5OjQ1ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgUmVtb3ZlIEdzdFBvbGxNb2RlIGZyb20gdGhlIEFQSSwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBsZXQgdGhlIGFwcGxpY2F0aW9uIGNvbnRyb2wgdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMKCSAgPG9sZSBkb3QgYW5kcmUgZG90IHJhdm5hcyBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBvbGwuYzogKGZpbmRfaW5kZXgpLCAoZ3N0X3BvbGxfZnJlZV93aW5zb2NrX2V2ZW50KSwKCSAgKGdzdF9wb2xsX3VwZGF0ZV93aW5zb2NrX2V2ZW50X21hc2spLCAoZ3N0X3BvbGxfbmV3KSwKCSAgKGdzdF9wb2xsX2ZyZWUpLCAoZ3N0X3BvbGxfZmRfaW5pdCksIChnc3RfcG9sbF9hZGRfZmRfdW5sb2NrZWQpLAoJICAoZ3N0X3BvbGxfcmVtb3ZlX2ZkKSwgKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksCgkgIChnc3RfcG9sbF9mZF9jdGxfcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9oYXNfY2xvc2VkKSwKCSAgKGdzdF9wb2xsX2ZkX2hhc19lcnJvciksIChnc3RfcG9sbF9mZF9jYW5fcmVhZF91bmxvY2tlZCksCgkgIChnc3RfcG9sbF9mZF9jYW5fd3JpdGUpLCAoZ3N0X3BvbGxfd2FpdCksCgkgIChnc3RfcG9sbF9zZXRfY29udHJvbGxhYmxlKSwgKGdzdF9wb2xsX3Jlc3RhcnQpLAoJICAoZ3N0X3BvbGxfc2V0X2ZsdXNoaW5nKToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RhcnQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3N0YXJ0KToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzogKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcG9sbF9zdWl0ZSk6CgkgIFJlbW92ZSBHc3RQb2xsTW9kZSBmcm9tIHRoZSBBUEksIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gbGV0IHRoZQoJICBhcHBsaWNhdGlvbiBjb250cm9sIHRoaXMuCgkgIEFkZCBzdXBwb3J0IGZvciBXaW4zMi4KCSAgRml4IHRoZSB0ZXN0c3VpdGUuIEZpeGVzICM1MjA2NzEuCgoyMDA4LTAzLTA3IDEzOjE5OjEyICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluY2x1ZGUgaW8uaCBmb3Igd3JpdGUoKSBhbmQgY2xvc2UoKSB3aGVuIGJ1aWxkaW5nIHdpdGggTVNWQy4gRml4ZXMgYnVnICM1MjA4NzcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzCgkgIDxvbGUgZG90IGFuZHJlIGRvdCByYXZuYXMgYXQgdGFuZGJlcmcgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgSW5jbHVkZSBpby5oIGZvciB3cml0ZSgpIGFuZCBjbG9zZSgpIHdoZW4gYnVpbGRpbmcgd2l0aCBNU1ZDLiBGaXhlcwoJICBidWcgIzUyMDg3Ny4KCjIwMDgtMDMtMDcgMTE6MTI6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vdmUgcmVnaXN0cnkgYmFja2VuZCBBUEkgdG8gcHJpdmF0ZSBoZWFkZXJzIHdoZXJlIHdlIGNhbi4gQWRkIGZpeG1lLTAuMTEgY29tbWVudHMgZm9yIHRoZSBvdGhlcnMuIEFkZCBzdHVicyBmb3IgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgTW92ZSByZWdpc3RyeSBiYWNrZW5kIEFQSSB0byBwcml2YXRlIGhlYWRlcnMgd2hlcmUgd2UgY2FuLiBBZGQKCSAgZml4bWUtMC4xMSBjb21tZW50cyBmb3IgdGhlIG90aGVycy4gQWRkIHN0dWJzIGZvciB0aGUgeG1sIGJhY2tlbmQgd2hlbgoJICB1c2luZyB0aGUgYmluYXJ5IHRvIGVuc3VyZSB0aGV5IGZ1bmN0aW9ucyBleGlzdHMgKHRoZXkgc2hvdWxkIG5vdCBiZQoJICB1c2VkIHRob3VnaCkuIEZpeGVzICM1MjA3NTYuCgoyMDA4LTAzLTA0IDAwOjE0OjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIDAuMTAuMTcuMiBwcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjIgcHJlbGVhc2UKCjIwMDgtMDMtMDMgMTg6NDI6MDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBTd2l0Y2ggdG8gdXNpbmcgcG9ydGFibCBnc2l6ZS9nc3NpemUgaW5zdGVhZCBvZiBzaXplX3Qvc3NpemVfdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV9zYXZlKToKCSAgKiBnc3QvZ3N0dXJpLmM6ICh1bmVzY2FwZV9zdHJpbmcpLCAoZ3N0X3VyaV9oYXNfcHJvdG9jb2wpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlX3NyY19tYXBfc21hbGxfcmVnaW9uKSwgKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgIFN3aXRjaCB0byB1c2luZyBwb3J0YWJsIGdzaXplL2dzc2l6ZSBpbnN0ZWFkIG9mIHNpemVfdC9zc2l6ZV90CgkgIEZpeGVzICM1MjAxNTIKCjIwMDgtMDMtMDMgMTg6MTQ6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBJbXBvcnQgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgYW55IG90aGVyIGhlYWRlciB0aGF0IG1pZ2h0IGluY2x1ZGUgb3RoZXIgZ2xpYiBoZWFkZXJzLiBUaGlzIGZpeGVzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgSW1wb3J0IGdzdF9wcml2YXRlLmggYmVmb3JlIGFueSBvdGhlciBoZWFkZXIgdGhhdCBtaWdodCBpbmNsdWRlIG90aGVyCgkgIGdsaWIgaGVhZGVycy4gVGhpcyBmaXhlcyB0aGUgYnVpbGQgb24gd2luZG93cyB1c2luZyBuYXRpdmUgY29tcGlsZXJzLgoKMjAwOC0wMy0wMyAxNDo0ODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogQWRkIGhlcmUgdG9vLCBqdXN0IGZvciBjb21wbGV0ZW5lc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgQWRkIGhlcmUgdG9vLCBqdXN0IGZvciBjb21wbGV0ZW5lc3MuCgoyMDA4LTAzLTAzIDE0OjQzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IGJyb2tlbiB1c2Ugb2YgY29uZmlnLmgtZGVmaW5lZCBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlIGluIGEgcHVibGljIGhlYWRlciBmaWxlLiBBZGQgYSBjb3JyZXNwb25kaW5nIGRlZmluZSB0byBnc3RjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIEZpeCBicm9rZW4gdXNlIG9mIGNvbmZpZy5oLWRlZmluZWQgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZSBpbiBhIHB1YmxpYwoJICBoZWFkZXIgZmlsZS4gQWRkIGEgY29ycmVzcG9uZGluZyBkZWZpbmUgdG8gZ3N0Y29uZmlnLmgsIHNpbmNlIHdlIGNhbid0CgkgIHJlYWxseSByZW1vdmUgdGhvc2UgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGZyb20gdGhlIGhlYWRlciBmaWxlIG5vdwoJICAob3IgY2FuIHdlPyBhbmQgd2h5IGFyZSB0aGV5IHRoZXJlIGluIHRoZSBmaXJzdCBwbGFjZT8pLgoKMjAwOC0wMy0wMyAxMDowNzoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jIChHU1RfU1RBUlRfVEVTVCk6IEFkZCBhIGNoZWNrIGZvciB0aGUgbmV3IHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTAzLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYyAoR1NUX1NUQVJUX1RFU1QpOiBBZGQgYSBjaGVjayBmb3IKCSAgdGhlIG5ldyB3YXJuaW5nLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYyAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6IFdhcm4gaWYKCSAgc3RydWN0dXJlX2Zyb21fc3RyaW5nIGRpZG4ndCBjb25zdW1lIHRoZSB3aG9sZSBzdHJpbmcsIGJ1dCB0aGUKCSAgY2FsbGVyIGRpZCBub3QgcHJvdmlkZSBhbiBlbmQgcG9pbnRlci4KCjIwMDgtMDMtMDEgMTE6MjE6MzAgKzAwMDAgIEZhYnJpemlvIEdlbm5hcmkgPGZhYnJpemlvLmdlQHRpc2NhbGkuaXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogU3RyaW5ncyBhbGxvY2F0ZWQgYnkgbGlieG1sMiBzaG91bGQgYmUgZnJlZWQgd2l0aCB4bWxGcmVlKCksIG5vdCB3aXRoIGdfZnJlZSgpLiBGaXhlcyBpc3N1ZXMgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGYWJyaXppbyBHZW5uYXJpIDxmYWJyaXppby5nZSBhdCB0aXNjYWxpIGl0PgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAocmVhZF9zdHJpbmcpLCAobG9hZF9mZWF0dXJlKToKCSAgU3RyaW5ncyBhbGxvY2F0ZWQgYnkgbGlieG1sMiBzaG91bGQgYmUgZnJlZWQgd2l0aCB4bWxGcmVlKCksIG5vdAoJICB3aXRoIGdfZnJlZSgpLiBGaXhlcyBpc3N1ZXMgb24gd2luZG93cyBpbiBjZXJ0YWluIGNvbnRleHRzICgjNTE5Njk4KS4KCjIwMDgtMDItMjkgMTg6Mzg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW50ZXJmYWNlLmM6IERvbid0IGNyYXNoIGlmIHRoZSBlbGVtZW50IHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgcXVlcmllZCwgYnV0IGRvZXMgbm90IGltcGxlbWVudCBHc3RJbXBsZW1lbnRzSW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGludGVyZmFjZS5jOiAoZ3N0X2VsZW1lbnRfaW1wbGVtZW50c19pbnRlcmZhY2UpOgoJICBEb24ndCBjcmFzaCBpZiB0aGUgZWxlbWVudCBzdXBwb3J0cyB0aGUgaW50ZXJmYWNlIHF1ZXJpZWQsIGJ1dCBkb2VzCgkgIG5vdCBpbXBsZW1lbnQgR3N0SW1wbGVtZW50c0ludGVyZmFjZS4gRml4ZXMgIzUxOTU4NC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW50ZXJmYWNlLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDgtMDItMjkgMTU6Mzk6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA4LTAyLTI5IDE1OjIyOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogSW1wcm92ZSBzb21lIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSk6CgkgIEltcHJvdmUgc29tZSBjb21tZW50LgoJICBVcGRhdGUgdmFyaWFibGVzIHdoZXJlIGl0IG1ha2VzIG1vcmUgc2Vuc2UuCgoyMDA4LTAyLTI5IDE0OjIzOjE3ICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dXJpLmM6IFVzZSB0aGUgZ2V0X3Byb3RvY29sc19mdWxsIHZmdW5jIGlmIGdldF9wcm90b2NvbHMgaXMgTlVMTC4gIEZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFuZGxlcl9nZXRfcHJvdG9jb2xzKToKCSAgVXNlIHRoZSBnZXRfcHJvdG9jb2xzX2Z1bGwgdmZ1bmMgaWYgZ2V0X3Byb3RvY29scyBpcyBOVUxMLiAgRml4ZXMKCSAgVVJJSGFuZGxlcnMgaW1wbGVtZW50ZWQgdXNpbmcgbGFuZ3VhZ2UgYmluZGluZ3MuCgoyMDA4LTAyLTI5IDEzOjU5OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBbmQgY29ycmVjdCBldmVuIG1vcmUgdmFsaWQgc3BhcnNlIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKHNldHVwX2Zha2VzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChzZXR1cF9mZHNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzogKHNldHVwX2ZpbGVzaW5rKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChzZXR1cF9maWxlc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoc2V0dXBfaWRlbnRpdHkpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoc2V0dXApLCAodGVhcmRvd24pOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKHB1bGxfbWVzc2FnZXMpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6IChteV9mb29faW5pdCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAodGhyZWFkX25hbWVfb2JqZWN0KSwKCSAgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzogKGNyZWF0ZV9hbmRfZmlsbF9hZGFwdGVyKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIEFuZCBjb3JyZWN0IGV2ZW4gbW9yZSB2YWxpZCBzcGFyc2Ugd2FybmluZ3MuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcG9sbF9mZF9pbml0IHRvIHRoZSBsaXN0IG9mIHN5bWJvbHMuCgoyMDA4LTAyLTI5IDEyOjQxOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBDb3JyZWN0IGFsbCByZWxldmFudCB3YXJuaW5ncyBmb3VuZCBieSB0aGUgc3BhcnNlIHNlbWFudGljIGNvZGUgYW5hbHl6ZXIuIFRoaXMgaW5jbHVkZSBtYXJraW5nIHNldmVyYWwgc3ltYm9scyBzdGF0aWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVhZF9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbG9nX21lc3NhZ2VfZnVuYyksCgkgIChnc3RfY2hlY2tfbG9nX2NyaXRpY2FsX2Z1bmMpLCAoZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycyksCgkgIChnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX2dldCksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3RfY29udHJvbF9wcm9wZXJ0aWVzKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xsZXIpLCAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9zb3VyY2UpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX25ldyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoX2ZpbGVfaW5kZXhfaWRfc2F2ZV94bWwpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6IChtZXNzX3NvbWVfbW9yZSk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHNldHVwX3F1ZXVlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6IChzZXR1cCksICh0ZWFyZG93biksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N1aXRlKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1ha2VfcGlwZWxpbmUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QtcnVuLmM6CgkgIENvcnJlY3QgYWxsIHJlbGV2YW50IHdhcm5pbmdzIGZvdW5kIGJ5IHRoZSBzcGFyc2Ugc2VtYW50aWMgY29kZQoJICBhbmFseXplci4gVGhpcyBpbmNsdWRlIG1hcmtpbmcgc2V2ZXJhbCBzeW1ib2xzIHN0YXRpYywgdXNpbmcKCSAgTlVMTCBpbnN0ZWFkIG9mIDAgZm9yIHBvaW50ZXJzLCBub3QgdXNpbmcgdmFyaWFibGUgc2l6ZWQgYXJyYXlzCgkgIG9uIHRoZSBzdGFjaywgbW92aW5nIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyB0byB0aGUgYmVnaW5uaW5nIG9mCgkgIGEgYmxvY2sgYW5kIHVzaW5nICJmb28gKHZvaWQpIiBpbnN0ZWFkIG9mICJmb28gKCkiIGZvciBkZWNsYXJhdGlvbnMuCgoyMDA4LTAyLTI5IDEyOjA1OjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogRG9uJ3QgcmVzZXQgR3N0UG9sbEZEcywgdGhpcyBpcyBub3QgbmVjZXNzYXJ5IGF0IGFsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICBEb24ndCByZXNldCBHc3RQb2xsRkRzLCB0aGlzIGlzIG5vdCBuZWNlc3NhcnkgYXQgYWxsLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6ICh0ZXN0X3BvbGxfd2FpdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChkZWxheWVkX3Jlc3RhcnQpLCAoZGVsYXllZF9jb250cm9sKToKCSAgVXNlIEdTVF9QT0xMX0ZEX0lOSVQuCgoyMDA4LTAyLTI5IDExOjU3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBvbGwuKjogQWRkZWQgU2luY2UgdGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX2ZkX2luaXQpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgIEFkZGVkIFNpbmNlIHRhZ3MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgIFVzZSBzb21lIG1vcmUgaW5pdCBtYWNyb3MuCgoyMDA4LTAyLTI5IDExOjIwOjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFVzZSBpbml0IG1hY3JvcyBhbmQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3Npbmtfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgVXNlIGluaXQgbWFjcm9zIGFuZCBmdW5jdGlvbnMuCgoyMDA4LTAyLTI5IDExOjAwOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIElOSVQgbWFjcm8gYW5kIF9pbml0IG1ldGhvZCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBHc3RQb2xsRkQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX2ZkX2luaXQpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgIEFkZCBJTklUIG1hY3JvIGFuZCBfaW5pdCBtZXRob2QgZm9yIGluaXRpYWxpemluZyB0aGUgR3N0UG9sbEZELgoKMjAwOC0wMi0yOCAxOTo1ODoyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgSW5pdGlhbGl6ZSBzb21lIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGFzIHNwb3R0ZWQgYnkgdmFsZ3JpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19zdGFydCksCgkgIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAodGVzdF9wb2xsX3dhaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVsYXllZF9yZXN0YXJ0KSwgKGRlbGF5ZWRfY29udHJvbCk6CgkgIEluaXRpYWxpemUgc29tZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBhcyBzcG90dGVkIGJ5IHZhbGdyaW5kLgoKMjAwOC0wMi0yOCAxNToyNTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBBZGQgcG9sbCBzdHJlc3MgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzogKG1lc3Nfc29tZV9tb3JlKSwgKHJ1bl90ZXN0KSwKCSAgKG1haW4pOgoJICBBZGQgcG9sbCBzdHJlc3MgdGVzdC4KCjIwMDgtMDItMjggMTA6MTg6MDIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFBvcnQgdG8gR3N0UG9sbC4gU2VlICM1MDU0MTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpLAoJICAoZ3N0X2ZkX3Npbmtfc3RhcnQpLCAoZ3N0X2ZkX3Npbmtfc3RvcCksIChnc3RfZmRfc2lua191bmxvY2spLAoJICAoZ3N0X2ZkX3NpbmtfdW5sb2NrX3N0b3ApLCAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zcmNfc3RhcnQpLCAoZ3N0X2ZkX3NyY19zdG9wKSwgKGdzdF9mZF9zcmNfdW5sb2NrKSwKCSAgKGdzdF9mZF9zcmNfdW5sb2NrX3N0b3ApLCAoZ3N0X2ZkX3NyY19jcmVhdGUpLAoJICAoZ3N0X2ZkX3NyY191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBQb3J0IHRvIEdzdFBvbGwuIFNlZSAjNTA1NDE3LgoKMjAwOC0wMi0yNyAyMToxODozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBnc3RfcG9sbF8gc3ltYm9scyB0byB3aW4zMiBkZWZzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBnc3RfcG9sbF8gc3ltYm9scyB0byB3aW4zMiBkZWZzLgoKMjAwOC0wMi0yNyAxOTowMToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVzZSBhIHByaXZhdGUgc3R1Y3QgdG8gbm90IGJyZWFrIEFCSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0YXJ0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0b3ApLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RhcnQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0b3ApLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBVc2UgYSBwcml2YXRlIHN0dWN0IHRvIG5vdCBicmVhayBBQkkuCgoyMDA4LTAyLTI3IDE4OjI3OjU5ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IE1hc3NpdmUgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwcyBiZWNhdXNlIG9mIEdzdFBvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0YXJ0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0b3ApLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RhcnQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0b3ApLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBNYXNzaXZlIGNvZGUgcmVtb3ZhbCBhbmQgY2xlYW51cHMgYmVjYXVzZSBvZiBHc3RQb2xsLgoJICBGaXhlcyAjNTA1NDE3LgoKMjAwOC0wMi0yNyAxODowMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIGNoZWNrcyBmb3IgcG9sbCwgcHBvbGwgYW5kIHBzZWxlY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIGNoZWNrcyBmb3IgcG9sbCwgcHBvbGwgYW5kIHBzZWxlY3QuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgR3N0UG9sbC4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3Rwb2xsLmM6IChmaW5kX2luZGV4KSwgKHNlbGVjdGFibGVfZmRzKSwKCSAgKHBvbGxhYmxlX3RpbWVvdXQpLCAoY2hvb3NlX21vZGUpLCAocG9sbGZkX3RvX2ZkX3NldCksCgkgIChmZF9zZXRfdG9fcG9sbGZkKSwgKGdzdF9wb2xsX25ldyksIChnc3RfcG9sbF9mcmVlKSwKCSAgKGdzdF9wb2xsX3NldF9tb2RlKSwgKGdzdF9wb2xsX2dldF9tb2RlKSwKCSAgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksIChnc3RfcG9sbF9hZGRfZmQpLAoJICAoZ3N0X3BvbGxfcmVtb3ZlX2ZkKSwgKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksCgkgIChnc3RfcG9sbF9mZF9jdGxfcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9jdGxfcmVhZCksCgkgIChnc3RfcG9sbF9mZF9oYXNfY2xvc2VkKSwgKGdzdF9wb2xsX2ZkX2hhc19lcnJvciksCgkgIChnc3RfcG9sbF9mZF9jYW5fcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9jYW5fcmVhZCksCgkgIChnc3RfcG9sbF9mZF9jYW5fd3JpdGUpLCAoZ3N0X3BvbGxfd2FpdCksCgkgIChnc3RfcG9sbF9zZXRfY29udHJvbGxhYmxlKSwgKGdzdF9wb2xsX3Jlc3RhcnQpLAoJICAoZ3N0X3BvbGxfc2V0X2ZsdXNoaW5nKToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICBBZGQgZ2VuZXJpYyBwb2xsIGFic3RyYWN0aW9uLiBXZSBpZGVhbGx5IGRvbid0IHdhbnQgdG8gaGF2ZSB0aGlzIGluIGNvcmUKCSAgaGVyZSBidXQgaW4gZ2xpYiBpbnRlYWQuLi4KCSAgVGhpcyBjb2RlIHdpbGwgYmUgdXNlZCBpbiB2YXJpb3VzIG5ldHdvcmsgZWxlbWVudHMgYW5kIHVsdGltYXRlbHkgZm9yCgkgIHRoZSBuYW5vc2Vjb25kIHByZWNpc2lvbiBtb25vdG9uaWMgY2xvY2sgKHRoYXQncyB3aHkgaXQncyBoZXJlIGluIGNvcmUpLgoJICBJdCdsbCBhbGxvdyB1cyB0byBpbXBsZW1lbnQgY2FuY2VsYWJsZSBzb2NrZXQgb3BlcmF0aW9ucyBmb3Igd2luZG93cyB0b28uCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKHRlc3RfcG9sbF93YWl0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGRlbGF5ZWRfc3RvcCksIChkZWxheWVkX3Jlc3RhcnQpLCAoZGVsYXllZF9mbHVzaCksCgkgIChkZWxheWVkX2NvbnRyb2wpLCAoZ3N0X3BvbGxfc3VpdGUpOgoJICBBZGQgR3N0UG9sbCB1bml0IHRlc3QuCgoyMDA4LTAyLTI1IDE1OjM3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGZpbHRlci5jOiBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgZ3N0X2ZpbHRlcl9ydW4oKS4gRml4ZXMgIzUxODYyNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgZ3N0X2ZpbHRlcl9ydW4oKS4gRml4ZXMgIzUxODYyNy4KCjIwMDgtMDItMjMgMTY6MDM6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL1JFQURNRTogQWRkIGEgZmV3IGxpbmVzIGFib3V0IHRoZSBuZXcgJ2NoZWNrLWluc3BlY3RlZC12ZXJzaW9ucycgdGFyZ2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgQWRkIGEgZmV3IGxpbmVzIGFib3V0IHRoZSBuZXcgJ2NoZWNrLWluc3BlY3RlZC12ZXJzaW9ucycgdGFyZ2V0LgoKMjAwOC0wMi0yMSAxMDozMDo1MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEFkZCBxb3MgdG8gdGhlIGV2ZW50IHRlc3QuIFJlbmFtZSB0Y2FzZS90c3VpdGU7IGlzIG5vdCBvbmx5IGFib3V0IGN1c3RvbSBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBBZGQgcW9zIHRvIHRoZSBldmVudCB0ZXN0LiBSZW5hbWUgdGNhc2UvdHN1aXRlOyBpcyBub3Qgb25seSBhYm91dAoJICBjdXN0b20gZXZlbnRzLgoKMjAwOC0wMi0yMSAxMDoyMjozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBFbnN1cmUgdGhhdCBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGVhYmxlLCBiZWZvcmUgbW9kaWZ5aW5nLiBTcG90dGVkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRW5zdXJlIHRoYXQgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRlYWJsZSwgYmVmb3JlIG1vZGlmeWluZy4gU3BvdHRlZCBieQoJICBNaWtlLgoKMjAwOC0wMi0yMCAxNTo0NDozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBXaGVuIGRyb3BwaW5nIGJ1ZmZlcnMgaW4gbGVha3kgbW9kZXMsIG1hcmsgbmV4dCBidWZmZXJzIHdlIHNlbnQgYXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgV2hlbiBkcm9wcGluZyBidWZmZXJzIGluIGxlYWt5IG1vZGVzLCBtYXJrIG5leHQgYnVmZmVycyB3ZSBzZW50IGFzCgkgIERJU0NPTlQuCgoyMDA4LTAyLTIwIDEyOjMxOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IEFsc28sIGlmIG1tYXAoKSBmYWlscyB0aGF0IHdvdWxkIGJlIGEgUkVBRCBlcnJvciwgbm90IE9QRU5fUkVBRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbik6CgkgIEFsc28sIGlmIG1tYXAoKSBmYWlscyB0aGF0IHdvdWxkIGJlIGEgUkVBRCBlcnJvciwgbm90IE9QRU5fUkVBRC4KCjIwMDgtMDItMjAgMTI6MjY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUmVtb3ZlIEdzdEJ1ZmZlclN0b3JlLCBubyBpZGVhIHdoeSB3ZSB3ZXJlIHN0aWxsIGJ1aWxkaW5nIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgUmVtb3ZlIEdzdEJ1ZmZlclN0b3JlLCBubyBpZGVhIHdoeSB3ZSB3ZXJlIHN0aWxsIGJ1aWxkaW5nIGl0LgoJICBJdCdzIG5vdCB1c2VkIGFueXdoZXJlIGFuZCBzdXBlcnNlZGVkIGJ5IEdzdEFkYXB0ZXIuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9hZGRfYXNzb2NpYXRpb24pOgoJICBQcmludGYgZm9ybWF0IGZpeGVzIGZvciA2NC1iaXQgaW50ZWdlcnMuCgoyMDA4LTAyLTE5IDEzOjAwOjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IHNldCBHU1RfQ0FDSEVfRElSIGFuZCBhbGxvdyB0byBzZXQgaXQgYnkgYSBjb25maWd1cmUgcGFyYW1ldGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IHNldCBHU1RfQ0FDSEVfRElSIGFuZCBhbGxvdyB0byBzZXQgaXQgYnkgYSBjb25maWd1cmUgcGFyYW1ldGVyLgoJICBXZSdyZSBub3QgaW4gMC44IHRpbWVzIGFueW1vcmUuCgoyMDA4LTAyLTE5IDEyOjU2OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IE1ha2UgdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZm9yIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QgbWF0Y2ggdGhlIGltcGxlbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycyksCgkgIChnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBNYWtlIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZvcgoJICBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0IG1hdGNoIHRoZSBpbXBsZW1lbnRhdGlvbi4KCSAgRml4IHVwIHNwZWxsaW5nLCBncmFtbWFyIGFuZCB3b3JkaW5nIG9mIHRoZSBkb2N1bWVudGF0aW9uIGluIGEgZmV3CgkgIHBsYWNlcywgYW5kIGFkZCB0aGUgU2luY2Uga2V5d29yZCB0byBuZXcgQVBJIGZ1bmN0aW9ucy4KCSAgVXNlIGdfbGlzdF9kZWxldGVfbGluayBpbnN0ZWFkIG9mIGdfbGlzdF9yZW1vdmUgaW4KCSAgZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycywgc2luY2UgaXQncyBpbW1lYXN1cmFibHkgbW9yZSBlZmZpY2llbnQuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgbmV3IGdzdF9jaGVja19kcm9wX2J1ZmZlcnMgZnVuY3Rpb24gd2hlcmUgYXBwcm9wcmlhdGUuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgZ3N0X2NvbGxlY3RfcGFkc190YWtlX2J1ZmZlciwKCSAgZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlciwgZ3N0X2luZGV4X3NldF9yZXNvbHZlcl9mdWxsIHRvIHRoZQoJICBleHBvcnRzCgkgIENoYW5nZWxvZyBzdXJnZXJ5IHRvIGFkZCBBUEkga2V5d29yZCB0byBuZXcgZ3N0X2NoZWNrIEFQSS4KCjIwMDgtMDItMTkgMDg6MDU6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzogVXBkYXRlIHByZS1nZW5lcmF0ZWQgZmxleCBmaWxlcyB3aXRoIGZsZXggMi4zLjM0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6ICh5eV9nZXRfbmV4dF9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eWVuc3VyZV9idWZmZXJfc3RhY2spLCAoX2dzdF9wYXJzZV95eWxleF9pbml0X2V4dHJhKToKCSAgVXBkYXRlIHByZS1nZW5lcmF0ZWQgZmxleCBmaWxlcyB3aXRoIGZsZXggMi4zLjM0LgoKMjAwOC0wMi0xOSAwNTo0OTozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogQWRkIEZJWE1FIGZvciAwLjExIHRvIG1ha2UgR3N0TWluaU9iamVjdENsYXNzOjpjb3B5KCkgYSBiaXQgbW9yZSBmcmllbmRseSB0byBzdWJjbGFzc2VzIGFuZCBub3QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIEFkZCBGSVhNRSBmb3IgMC4xMSB0byBtYWtlIEdzdE1pbmlPYmplY3RDbGFzczo6Y29weSgpIGEgYml0IG1vcmUKCSAgZnJpZW5kbHkgdG8gc3ViY2xhc3NlcyBhbmQgbm90IHJlcXVpcmUgdGhlbSB0byBrbm93IGFsbCBpbnRlcm5hbHMKCSAgb2YgdGhlaXIgcGFyZW50IGNsYXNzLgoKMjAwOC0wMi0xNSAxMzoxNToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHN1Yi1idWZmZXIgZnVuY3Rpb25zIHRvIGNvbGxlY3RwYWRzLiBGaXhlcyAjNTE2MTg3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFkZCBzdWItYnVmZmVyIGZ1bmN0aW9ucyB0byBjb2xsZWN0cGFkcy4gRml4ZXMgIzUxNjE4Ny4KCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3Rha2VfYnVmZmVyKCksIGdzdF9jb2xsZWN0X3BhZHNfcmVhZF9idWZmZXIoKQoKMjAwOC0wMi0xNSAxMjozMzowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBDb3B5IHNlbGVjdGVkIGJ1ZmZlci1mbGFncyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgQ29weSBzZWxlY3RlZCBidWZmZXItZmxhZ3Mgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzLgoJICBGaXhlcyAjNTE2Mzk1LgoKMjAwOC0wMi0xMiAxMjowNDo0MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUHJvcGVybHkgY2hhaW4gdXAgZmluYWxpemUgZnVuY3Rpb25zIHRvIHRoZSBwYXJlbnQgY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfY2xhc3NfaW5pdCksIChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9jbGFzc19pbml0KSwgKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2NsYXNzX2luaXQpLAoJICAoZ3N0X21lc3NhZ2VfZmluYWxpemUpOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXJ5X2ZpbmFsaXplKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSk6CgkgIFByb3Blcmx5IGNoYWluIHVwIGZpbmFsaXplIGZ1bmN0aW9ucyB0byB0aGUgcGFyZW50IGNsYXNzLgoKMjAwOC0wMi0xMSAxNzo1Mzo1NyArMDAwMCAgU2lhdmFzaCBTYWZpIDxzaWF2YXNoLnNhZmlAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGluZGV4Lio6IEFkZCBuZXcgZnVuY3Rpb24gd2l0aCBvcHRpb24gdG8gZGlzcG9zZSBvZiB1c2VyX2RhdGEgaW4gcmVzb2x2ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2lhdmFzaCBTYWZpIDxzaWF2YXNoIGRvdCBzYWZpIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZmluYWxpemUpLCAoZ3N0X2luZGV4X3NldF9yZXNvbHZlciksCgkgIChnc3RfaW5kZXhfc2V0X3Jlc29sdmVyX2Z1bGwpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICBBZGQgbmV3IGZ1bmN0aW9uIHdpdGggb3B0aW9uIHRvIGRpc3Bvc2Ugb2YgdXNlcl9kYXRhIGluIHJlc29sdmVyLgoJICBBY3R1YWxseSBjYWxsIHRoZSBkaXNwb3NlIGZ1bmN0aW9uIHdoZW4gZmluYWxpemluZyB0aGUgb2JqZWN0IGFuZCBub3QKCSAganVzdCB3aGVuIGNoYW5naW5nIHRoZSByZXNvbHZlci9maWx0ZXIuCgkgIEFQSTogR3N0SW5kZXg6OmdzdF9pbmRleF9zZXRfcmVzb2x2ZXJfZnVsbCgpCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBmdW5jdGlvbiB0byBkb2NzLiBGaXhlcyAjNTE1NDY5LgoKMjAwOC0wMi0xMSAwODo1MzowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGluZGV4LmM6IENoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MuIEZpeGVzIGxlYWtpbmcgdGhlIEdzdE9iamVjdCBuYW1lIGFuZCBvdGhlciB0aGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2ZpbmFsaXplKToKCSAgQ2hhaW4gdXAgZmluYWxpemUgdG8gdGhlIHBhcmVudCBjbGFzcy4gRml4ZXMgbGVha2luZyB0aGUgR3N0T2JqZWN0CgkgIG5hbWUgYW5kIG90aGVyIHRoaW5ncy4KCjIwMDgtMDItMTAgMTk6NDg6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBGaXggSm9zZXAncyBzdXJuYW1lIGluIHByZXZpb3VzIGNvbW1pdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBGaXggSm9zZXAncyBzdXJuYW1lIGluIHByZXZpb3VzIGNvbW1pdHMKCjIwMDgtMDItMDggMDA6NTQ6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBNYWtlIERJU0FCTEVfREVQUkVDQVRFRCBkZWZpbmVkICpvbmx5KiBkdXJpbmcgQ1ZTLCBub3QgZHVyaW5nIHByZS1yZWxlYXNlcyBvciByZWxlYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBNYWtlIERJU0FCTEVfREVQUkVDQVRFRCBkZWZpbmVkICpvbmx5KiBkdXJpbmcgQ1ZTLCBub3QgZHVyaW5nCgkgIHByZS1yZWxlYXNlcyBvciByZWxlYXNlcy4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBnc3QtcGx1Z2lucy1nbAoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIENoYW5nZSBvbmUgb2YgdGhlIHN0ZXBzIC0gd2Ugb25seSB1cGxvYWQgY29yZSAmIGJhc2UgdG8gR25vbWUgRlRQCgoyMDA4LTAyLTA2IDEyOjIxOjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y29uZmlnLmguaW46IEFkZCAnaWQnIGZvciBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIEFkZCAnaWQnIGZvciBleGFtcGxlLgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBMaW5rIHRvIHNpZ25hbHMuIERvYyBhbmQgY29tbWVudCBmaXhlcy4KCjIwMDgtMDItMDUgMjE6MjI6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBTb21lIG1pbm9yIGRvY3MgZml4ZXM6IGZpeCB0eXBvLCBtZW50aW9uIHRoYXQgR1NUX0ZMT1dfUkVTRU5EIGlzIHVudXNlZCBhbmQgdW5pbXBsZW1lbnRlZDsgZmluYWxseSwgaXQgaXMgcGx1Z2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOiAoR1NUX1BBRF9MSU5LX1NVQ0NFU1NGVUwpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6IChHc3RQbHVnaW5GZWF0dXJlQ2xhc3MpOgoJICBTb21lIG1pbm9yIGRvY3MgZml4ZXM6IGZpeCB0eXBvLCBtZW50aW9uIHRoYXQgR1NUX0ZMT1dfUkVTRU5EIGlzCgkgIHVudXNlZCBhbmQgdW5pbXBsZW1lbnRlZDsgZmluYWxseSwgaXQgaXMgcGx1Z2luIGZlYXR1cmVzLCBub3QKCSAgcGx1Z2lucywgdGhhdCBoYXZlIHJhbmtzLgoKMjAwOC0wMi0wNSAxOTo0MjozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogQ2xhcmlmeSBHc3RSYW5rIHJhbmdlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIENsYXJpZnkgR3N0UmFuayByYW5nZSBkb2NzLgoKMjAwOC0wMi0wNSAxODozNzowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0LmM6IEFkZCBhIHNlcGFyYXRlIGdzdF9kZWluaXRpYWxpemVkIHRoYXQgcHJldmVudHMgZ3N0X2luaXQoKSBmcm9tIGJlaW5nIGNhbGxlZCBhZnRlciBnc3RfZGVpbml0KCkuICBGaXhlcyAjNTAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiBBZGQgYSBzZXBhcmF0ZSBnc3RfZGVpbml0aWFsaXplZCB0aGF0IHByZXZlbnRzCgkgIGdzdF9pbml0KCkgZnJvbSBiZWluZyBjYWxsZWQgYWZ0ZXIgZ3N0X2RlaW5pdCgpLiAgRml4ZXMgIzUwOTU1OQoKMjAwOC0wMi0wNSAxNDoxNToxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZXMgdG8gdGhlIGJlaGF2aW91ciBvZiBHc3RQYWRUZW1wbGF0ZXMsIGV0YyBhbmQgdGhlIHBvc3NpYmxpdHkgdG8gY2FsbCB0aGVtIGluIGNsYXNzX2luaXQgYXMgaXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9iYXNlX2luaXQpLAoJICAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYmFzZV9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9nZXRfdHlwZSksCgkgIChnc3RfcGlwZWxpbmVfYmFzZV9pbml0KSwgKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX2Jhc2VfaW5pdCksIChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2Jhc2VfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpLAoJICAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZXMgdG8gdGhlIGJlaGF2aW91ciBvZiBHc3RQYWRUZW1wbGF0ZXMsIGV0YwoJICBhbmQgdGhlIHBvc3NpYmxpdHkgdG8gY2FsbCB0aGVtIGluIGNsYXNzX2luaXQgYXMgaXQgYnJlYWtzIHRvbwoJICBtYW55IGVsZW1lbnRzLiBSZW9wZW5zIGJ1ZyAjNDkxNTAxLgoJICBTaG91bGQgYmUgYXBwbGllZCBhZ2FpbiBmb3IgMC4xMSwgdGh1cyBhZGRlZCBhIGZldyBGSVhNRSAwLjExIGF0CgkgIHNldmVyYWwgcGxhY2VzLgoKMjAwOC0wMi0wNSAwOToyNDoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEdW1wIG9uZSBncmFwaCBwZXIgcGlwZWxpbmUgc3RhdGUtY2hhbmdlIGFuZCBzdGF0ZSBjaGFuZ2UgbmFtZSAoaWYgR1NUX0RFQlVHX0RVTVBfRE9UX0RJUiBpcyBzZXQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIER1bXAgb25lIGdyYXBoIHBlciBwaXBlbGluZSBzdGF0ZS1jaGFuZ2UgYW5kIHN0YXRlIGNoYW5nZSBuYW1lCgkgIChpZiBHU1RfREVCVUdfRFVNUF9ET1RfRElSIGlzIHNldCkuCgoyMDA4LTAyLTA0IDE0OjE0OjQyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgQmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBuZXcgY29weSBvZiB0aGUgY2FwcyBhbmQgbm90IHJlZmZlZCBjYXBzIGZyb20gYSB0ZW1wbGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBCZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIG5ldyBjb3B5IG9mIHRoZSBjYXBzIGFuZCBub3QKCSAgcmVmZmVkIGNhcHMgZnJvbSBhIHRlbXBsYXRlCgoyMDA4LTAyLTAzIDEyOjA0OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBEb24ndCB1c2UgYmFzZV9pbml0IHdoZXJlIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gRm9yIGV4YW1wbGUgaXQncyBub3QgbmVjZXNzYXJ5IGFueW1vcmUgZm9yIGFkZGluZyBwYWQgdGVtcGxhdGVzIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2dldF90eXBlKSwKCSAgKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2Jhc2VfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpLAoJICAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIERvbid0IHVzZSBiYXNlX2luaXQgd2hlcmUgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5LiBGb3IgZXhhbXBsZSBpdCdzCgkgIG5vdCBuZWNlc3NhcnkgYW55bW9yZSBmb3IgYWRkaW5nIHBhZCB0ZW1wbGF0ZXMgb3Igc2V0dGluZyBlbGVtZW50CgkgIGRldGFpbHMuCgkgIExlYXZlIGVtcHR5IGJhc2VfaW5pdCBmdW5jdGlvbnMgaW4gc2V2ZXJhbCBwbGFjZXMgYXMgR1NUX0JPSUxFUlBMQVRFCgkgIHN0aWxsIGRlZmluZXMgYW5kIHVzZXMgdGhlbS4KCjIwMDgtMDItMDMgMTA6NDg6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC86IE1ha2UgaXQgcG9zc2libGUgKGFuZCByZWNvbW1lbmRlZCkgdG8gc2V0IGVsZW1lbnQgZGV0YWlscyBhbmQgYWRkIHBhZCB0ZW1wbGF0ZXMgaW4gdGhlIGNsYXNzX2luaXQgZnVuY3Rpb25zIGJ5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYmFzZV9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBNYWtlIGl0IHBvc3NpYmxlIChhbmQgcmVjb21tZW5kZWQpIHRvIHNldCBlbGVtZW50IGRldGFpbHMgYW5kIGFkZAoJICBwYWQgdGVtcGxhdGVzIGluIHRoZSBjbGFzc19pbml0IGZ1bmN0aW9ucyBieSBjb3B5aW5nIHRoZSBkZXRhaWxzL3BhZAoJICB0ZW1wbGF0ZXMgaW4gR3N0RWxlbWVudCdzIGJhc2VfaW5pdC4KCSAgQWxzbyBtYWtlIGl0IHBvc3NpYmxlIHRvIHJlcGxhY2UgZXhpc3RpbmcgcGFkIHRlbXBsYXRlcyBieSBhZGRpbmcKCSAgYSBuZXcgb25lIHdpdGggdGhlIHNhbWUgbmFtZS4gVGhpcyB3YXMgZG9uZSBpbiBhIGhhY2tpc2ggZmFzaGlvbgoJICBpbiBzYW1lIGVsZW1lbnRzIGJlZm9yZSBhbHJlYWR5LgoJICBEb24ndCByZWZlcmVuY2UgcGFkIHRlbXBsYXRlcyB0aGF0IGFyZSBhZGRlZCBhIHNlY29uZCB0aW1lLiBBCgkgIG5ldyBwYWQgdGVtcGxhdGUgaGFzIGEgcmVmY291bnQgb2Ygb25lIGFuZCBpcyBub3QgZmxvYXRpbmcgYW55bW9yZQoJICBhbmQgdG8gYmUgb3duZWQgYnkgdGhlIGVsZW1lbnQncyBjbGFzcy4gTWFrZSB0aGlzIG1vcmUgZXhwbGljaXQgYnkKCSAgbWVudGlvbmluZyBpdCBpbiB0aGUgZG9jcyBvZiBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKCkuCgkgIFRoZXNlIGNoYW5nZXMgYXJlIGJhY2t3YXJkcyBjb21wYXRpYmxlLiBGaXhlcyBidWcgIzQ5MTUwMS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBzZXR0aW5nIGVsZW1lbnQgZGV0YWlscywgYWRkaW5nIHBhZCB0ZW1wbGF0ZXMgYW5kCgkgIHJlcGxhY2luZyB0aGVtIGluIGEgc3ViY2xhc3MuCgoyMDA4LTAyLTAyIDA2OjQ4OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9wYWRfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoKMjAwOC0wMi0wMSAxNzoxNjoyNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIEFkZCBtb3JlIGZ1bmN0aW9ucyBmb3IgdW5pdCB0ZXN0aW5nOiBnc3RfY2hlY2tfZHJvcF9idWZmZXJzLCBnc3RfY2hlY2tfY2Fwc19lcXVhbCwgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWRkIG1vcmUgZnVuY3Rpb25zIGZvciB1bml0IHRlc3Rpbmc6IGdzdF9jaGVja19kcm9wX2J1ZmZlcnMsCgkgIGdzdF9jaGVja19jYXBzX2VxdWFsLCBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0LAoJICBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcgoKMjAwOC0wMi0wMSAxNjozNzoyMiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0NIRUNLX1ZFUlNJT04gdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDItMDEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdTVF9DSEVDS19WRVJTSU9OIHRvIHRoZQoJICBkb2NzCgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCksCgkgIChnc3RfaW5kZXhfZnJlZV93cml0ZXIpLAoJICAoZ3N0X2luZGV4X2ZpbmFsaXplKSwgKGdzdF9pbmRleF9lbnRyeV9mcmVlKSwKCSAgKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb24pOiBGaXggbWVtb3J5IGxlYWtzLgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46IEFkZCBHU1RfQ0hFQ0tfVkVSU0lPTiBtYWNyby4KCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6IChnc3RfbWVtX2luZGV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X21lbV9pbmRleF9mcmVlX2Zvcm1hdCksIChnc3RfbWVtX2luZGV4X2ZyZWVfaWQpLAoJICAoZ3N0X21lbV9pbmRleF9maW5hbGl6ZSk6IEZpeCBtZW1vcnkgbGVha3MuCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOiBVcGRhdGVkIHRvIENWUyBIRUFELgoKMjAwOC0wMi0wMSAxMjoyNToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IFNvbWUgbW9yZSBkZXRhaWxzIGFib3V0IGhvdyB0aGUgcGx1Z2luIGRvY3Mgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBTb21lIG1vcmUgZGV0YWlscyBhYm91dCBob3cgdGhlIHBsdWdpbiBkb2NzIHdvcmtzLgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIFdoaXRlc3BhY2UgY2xlYW51cC4KCjIwMDgtMDItMDEgMTI6MTA6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wYXJzZS86IEFkZCBkZWxheWVkIHNldC1wcm9wZXJ0eS4gVGhpcyBhbGxvd3MgdG8gc2V0IHByb3BlcnRpZXMgb24gZHluYW1pY2FseSBjcmVhdGVkIG9iamVjdHMgKHBhZHMgaW4gdmlkZW9teGVyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgQWRkIGRlbGF5ZWQgc2V0LXByb3BlcnR5LiBUaGlzIGFsbG93cyB0byBzZXQgcHJvcGVydGllcyBvbiBkeW5hbWljYWx5CgkgIGNyZWF0ZWQgb2JqZWN0cyAocGFkcyBpbiB2aWRlb214ZXIpLgoKMjAwOC0wMi0wMSAxMToyNzozMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCjIwMDgtMDItMDEgMTA6Mjc6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBmaXhtZSByZWdhcmRpbmcgRU9TIGluIHB1bGwgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19sb29wKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCk6CgkgIEFkZCBmaXhtZSByZWdhcmRpbmcgRU9TIGluIHB1bGwgbW9kZS4KCSAgRml4IHBvc2l0aW9uIHJlcG9ydGluZyBpbiBQQVVTRUQgZm9yIG5lZ2F0aXZlIHJhdGVzLgoKMjAwOC0wMi0wMSAxMDoyMzo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFdoZW4gcmVwbGFjaW5nIGEgbWluaW9iamVjdCwgZG8gYSBxdWljayBlcXVhbGl0eSBjaGVjayBmaXJzdCBzbyB0aGF0IHdlIGNhbiBhdm9pZCBhIHJlZi91bnJlZiBwYWlyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpOgoJICBXaGVuIHJlcGxhY2luZyBhIG1pbmlvYmplY3QsIGRvIGEgcXVpY2sgZXF1YWxpdHkgY2hlY2sgZmlyc3Qgc28gdGhhdCB3ZQoJICBjYW4gYXZvaWQgYSByZWYvdW5yZWYgcGFpci4KCjIwMDgtMDItMDEgMTA6MTc6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBBZGQgbXVsdGlxdWV1ZSB0byB0aGUgZG9jcy4KCjIwMDgtMDEtMzAgMTQ6Mzg6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE3ID09PQoKMjAwOC0wMS0zMCAxNDowNTo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xNwoKMjAwOC0wMS0zMCAxMzoxMzo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGFkZCBDaGFuZ2VMb2cgZW50cnkgZm9yIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIENoYW5nZUxvZyBlbnRyeSBmb3IgcHJldmlvdXMgY29tbWl0CgoyMDA4LTAxLTMwIDEzOjEyOjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCjIwMDgtMDEtMzAgMTI6NTU6NDIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgoyMDA4LTAxLTMwIDEyOjQ0OjEzICswMDAwICBDeWd3aW4gUG9ydHMgbWFpbnRhaW5lciA8eXNlbGtvd2l0ekB1c2Vycy5zb3VyY2Vmb3JnZT4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggY29tcGlsYXRpb24gb24gc3lzdGVtcyB0aGF0IGhhdmUgcG9zaXggdGltZXJzIGJ1dCBubyBtb25vdG9uaWMgY2xvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBGaXggY29tcGlsYXRpb24gb24gc3lzdGVtcyB0aGF0IGhhdmUgcG9zaXggdGltZXJzIGJ1dCBubwoJICBtb25vdG9uaWMgY2xvY2suCgkgIEZpeGVzOiAjNTEyNzE1CgkgIFBhdGNoIEJ5OiBDeWd3aW4gUG9ydHMgbWFpbnRhaW5lciA8eXNlbGtvd2l0eiBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UKCSAgZG90IG5ldD4KCjIwMDgtMDEtMzAgMTI6Mzk6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCBpbiBwcmVwYXJhdGlvbiBmb3IgYW4gaW1wcm9tcHR1IDAuMTAuMTcgcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0IGluIHByZXBhcmF0aW9uIGZvciBhbiBpbXByb21wdHUgMC4xMC4xNyByZWxlYXNlCgoyMDA4LTAxLTI5IDA5OjQzOjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9wYWRfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoKMjAwOC0wMS0yOCAyMzozMDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTYgPT09CgoyMDA4LTAxLTI4IDIzOjI3OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL0xJTkdVQVM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE2CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTYKCjIwMDgtMDEtMjggMjE6MjA6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDEtMjQgMjM6Mjg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBQ19UUllfQ09NUElMRSBpbnN0ZWFkIG9mIEFDX1RSWV9SVU4gdG8gY2hlY2sgZm9yIF9QT1NJWF9USU1FUiwgX1BPU0lYX01PTk9UT05JQ19DTE9DSywgZXRjLiBNYWtlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQUNfVFJZX0NPTVBJTEUgaW5zdGVhZCBvZiBBQ19UUllfUlVOIHRvIGNoZWNrIGZvcgoJICBfUE9TSVhfVElNRVIsIF9QT1NJWF9NT05PVE9OSUNfQ0xPQ0ssIGV0Yy4gTWFrZXMgY29uZmlndXJlCgkgIG5vdCBmYWlsIHdoZW4gdHJ5aW5nIHRvIGNyb3NzY29tcGlsZSBvbiBPcGVuRW1iZWRkZWQgKCM1MTE3NTApLgoKMjAwOC0wMS0yMCAxNzowODo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9tYW51YWxzLm1hazogVXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlIHRvIGZpeCB0aGUgYnVpbGQgaWYgR05VIG1ha2UgaXMgY2FsbGVkIGRpZmZlcmVudC4gRml4ZXMgYnVnICM1MTA3NDcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIFVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZSB0byBmaXggdGhlIGJ1aWxkIGlmIEdOVSBtYWtlIGlzCgkgIGNhbGxlZCBkaWZmZXJlbnQuIEZpeGVzIGJ1ZyAjNTEwNzQ3LgoKMjAwOC0wMS0yMCAxNTowNDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogRml4IG9sZC1zdHlsZSBzdGF0aWMgcGx1Z2lucyB2aWEgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIGFnYWluLCB3aGljaCBJIGJyb2tlIHR3byBjb21taXRzIGFnbyB3aGVuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9pbml0aWFsaXplKToKCSAgRml4IG9sZC1zdHlsZSBzdGF0aWMgcGx1Z2lucyB2aWEgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDCgkgIGFnYWluLCB3aGljaCBJIGJyb2tlIHR3byBjb21taXRzIGFnbyB3aGVuIGNoYW5naW5nIHRoZSBBUEkKCSAgb2YgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKTogdGhlIGdfbGlzdF9mb3JlYWNoKCkgaW4KCSAgX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljIHN0aWxsIGFzc3VtZWQgdGhlIG9sZCBmdW5jdGlvbgoJICBzaWduYXR1cmUgYW5kIHdvdWxkIHRoZXJlZm9yZSBmYWlsIChyZS1maXhlcyAjNTEwMTg3KS4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfbnVtX3N0YXRpY19wbHVnaW5zKSwgKF9zdGF0aWNfcGx1Z2lucyksCgkgIChfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLCAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpOgoJICBSZXZlcnQgdGhlICh0ZWNobmljYWxseSBjb3JyZWN0KSBjaGFuZ2UgdG8gY2FsbCBnX3RocmVhZF9pbml0KCkgZnJvbQoJICB0aGUgcHJlLW1haW4oKSBjb25zdHJ1Y3Rvci4gVGhpcyB3aWxsIGJyZWFrIHByb2dyYW1zIHdoaWNoIGNhbGwKCSAgZ190aHJlYWRfaW5pdCgpIHdpdGhvdXQgYW4gaWYgKCFnX3RocmVhZF9zdXBwb3J0ZWQoKSkgZ3VhcmQgaW4gdGhlaXIKCSAgbWFpbiBmdW5jdGlvbi4gV2UgY291bGQganVzdCBibGFtZSBpdCBvbiBHTGliIG9yIHRoZSBhcHBsaWNhdGlvbiwgYnV0CgkgIGl0J3MgcHJvYmFibHkgYmVzdCB0byBqdXN0IGF2b2lkIHRoaXMgYWx0b2dldGhlciBhbmQgc2ltcGx5IG5vdCB1c2UKCSAgYW55IEdMaWIgZnVuY3Rpb25zIGhlcmUgYW5kIHVzZSBwbGFpbiBvbGQgbWFsbG9jKCkgd2l0aCBhIHNpbXBsZQoJICBhcnJheSB0byBzdG9yZSB0aGUgcGx1Z2lucyB0byByZWdpc3RlciBsYXRlciB3aGVuIGdzdF9pbml0KCkgaXMKCSAgZmluYWxseSBjYWxsZWQgKHJlLWZpeGVzICM1MTAxODcpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzogKEdTVF9HTlVDX0NPTlNUUlVDVE9SX0RFRklORUQpLAoJICAoR1NUX0dOVUNfQ09OU1RSVUNUT1JfREVGSU5FRCksIChwbHVnaW5faW5pdF9jb3VudGVyKSwKCSAgKHBsdWdpbjFfaW5pdCksIChwbHVnaW4yX2luaXQpLCAocGx1Z2luM19pbml0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICBEdW1iIHVuaXQgdGVzdCB0byBtYWtlIHN1cmUgdGhlIG9sZCBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgc3RpbGwKCSAgd29ya3MuCgoyMDA4LTAxLTE3IDIyOjIyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5oOiBSZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmRzIGFyb3VuZCBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyk6CgkgIFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYXJvdW5kIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQy4KCSAgVGhpcyBtYWtlcyBndGstZG9jIGNvbXBsYWluLCBidXQgcmVzdWx0cyBpbiBzbGlnaHRseSBiZXR0ZXIKCSAgY29tcGlsZXIgZXJyb3JzLiBUaGUgb2xkIF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIGlzCgkgIHN0aWxsIGd1YXJkZWQsIHNvIHRoZXJlJ2xsIGJlIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCB0aGF0CgkgIGluc3RlYWQuIEZpeGVzICM1MTAxODcgdG9vLgoKMjAwOC0wMS0xNyAyMjoxNzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IENoYW5nZSBBUEkgb2YgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSB0byBub3QgdGFrZSBhIEdzdFBsdWdpbkRlc2MsIGJ1dCByYXRoZXIganVzdCB0YWtlIGFsbCB0aGUgYXJndW1lbnRzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksCgkgIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChfZ3N0X3BsdWdpbl9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHc3RQbHVnaW5GaWx0ZXIpOgoJICBDaGFuZ2UgQVBJIG9mIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgdG8gbm90IHRha2UKCSAgYSBHc3RQbHVnaW5EZXNjLCBidXQgcmF0aGVyIGp1c3QgdGFrZSBhbGwgdGhlIGFyZ3VtZW50cwoJICBpbiBhIEdzdFBsdWdpbkRlc2MgZGlyZWN0bHkuIFRoaXMgaXMgbW9yZSBpbnR1aXRpdmUgYW5kCgkgIGF2b2lkcyBjZXJ0YWluIG1pc3Rha2VzIHdoZW4gcG9ydGluZyBjb2RlIGZyb20KCSAgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIHRvIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkuCgkgIEZpeGVzICM1MTAxODcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBGaXggdXAgZm9yIGNoYW5nZWQgQVBJLgoKMjAwOC0wMS0xNyAxODo1MDozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9sZWdhbC54bWw6IFVwZGF0ZSBGQVEsIFRvdGVtIGFjdHVhbGx5IGhhcyBhbiBleGNlcHRpb24gdGhlc2UgZGF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvbGVnYWwueG1sOgoJICBVcGRhdGUgRkFRLCBUb3RlbSBhY3R1YWxseSBoYXMgYW4gZXhjZXB0aW9uIHRoZXNlIGRheXMuCgoyMDA4LTAxLTE0IDIyOjIwOjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IEFQSSBkZWNsYXJhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgQVBJIGRlY2xhcmF0aW9ucwoKMjAwOC0wMS0xNCAxMzoxODozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogU3BlbGxpbmcgZml4ZXMgZm9yIHRoZSBBUEkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgU3BlbGxpbmcgZml4ZXMgZm9yIHRoZSBBUEkgZG9jcy4KCjIwMDgtMDEtMTQgMTE6NDc6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBBZGQgQVBJIGtleXdvcmQgZm9yIGdzdF91dGlsX2dldF90aW1lc3RhbXAsIGFuZCByZW1vdmUgdGhlIHRhZyBmb3IgR1NUX0dFVF9USU1FU1RNQVAgd2hpY2ggZGlkbid0IHN1cnZpdmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgQVBJIGtleXdvcmQgZm9yIGdzdF91dGlsX2dldF90aW1lc3RhbXAsIGFuZCByZW1vdmUgdGhlIHRhZyBmb3IgR1NUX0dFVF9USU1FU1RNQVAgd2hpY2ggZGlkbid0IHN1cnZpdmUuCgoyMDA4LTAxLTE0IDExOjQwOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGxvbmcgcHJvcGVydHkgZGVzY3JpcHRpb24gZm9yIFFvUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZpeCBsb25nIHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciBRb1MuCgoyMDA4LTAxLTEyIDIwOjIyOjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogX2dzdF90cmFjZV9vbiBpcyBhbHJlYWR5IHByb3ZpZGVkIGJ5IGdzdHRyYWNlLmgsIG5vIG5lZWQgdG8gZGVjbGFyZSBpdCBvdXJzZWx2ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgX2dzdF90cmFjZV9vbiBpcyBhbHJlYWR5IHByb3ZpZGVkIGJ5IGdzdHRyYWNlLmgsIG5vIG5lZWQgdG8gZGVjbGFyZQoJICBpdCBvdXJzZWx2ZXMuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkICdidWZmZXJzJywgJ2NoZWNrX2NvbmQnIGFuZCAnY2hlY2tfbXV0ZXgnIGZyb20gbGliZ3N0Y2hlY2sKCSAgYW5kIHJlbW92ZSBzdHJhbmdlIHRjYXNlX2FkZF90ZXN0IHdoaWNoIGlzIG91dHB1dHRpbmcgYSB3YXJuaW5nLgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgUHJvcGVybHkgZGVjbGFyZSAnYnVmZmVycycsICdjaGVja19jb25kJywgJ2NoZWNrX211dGV4JyBleHRlcm4KCSAgYW5kIGRlZmluZSB0aGVtIGluIGdzdGNoZWNrLmMgaW5zdGVhZCBvZiBoYXZpbmcgZXZlcnkgLmMgZmlsZSB3aGNpaAoJICBpbmNsdWRlcyBnc3RjaGVjay5oIGJlIGRlZmluaW5nIGl0cyBvd24gY29weSBhbmQgcmVseWluZyBvbiBzeW1ib2wKCSAgaW50ZXJwb3NpbmcgdG8gbWFycnkgdGhlbSBhbGwsIHdoaWNoIGRvZXNuJ3Qgd29yayBvbiBTb2xhcmlzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGRlZmluZSAnYnVmZmVycycgbG9jYWxseSwgaXQgY29tZXMgZnJvbSBsaWJnc3RjaGVjay4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChzZW5kX2J1ZmZlcik6CgkgIEZpeCB0eXBlIG9mIHZhcmlhYmxlIChHc3RGbG93UmV0dXJuLCBub3QgR3N0U3RhdGVDaGFuZ2VSZXR1cm4pCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYSBidW5jaCBvZiBjYXN0cyB0byBtYWtlIHZhcmlvdXMgY29uc3RhbnRzIGZpdCB0aGUgdHlwZXMKCSAgdGhleSdyZSBiZWluZyBhc3NpZ25lZCB0by4KCjIwMDgtMDEtMTAgMjE6MDY6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEltcHJvdmUgZG9jcyBhbmQgYWRkIHNvbWUgaWRlYXMgZm9yIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJhbC1wdXJwb3NlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBJbXByb3ZlIGRvY3MgYW5kIGFkZCBzb21lIGlkZWFzIGZvciBtYWtpbmcgdGhpcyBtb3JlIGdlbmVyYWwtcHVycG9zZS4KCjIwMDgtMDEtMTAgMTU6NTU6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogQWRkIEdTVF9DQVRfVFlQRVMsIGZvciBjb25zaXN0ZW5jeSwgYW5kIHNvIHRoYXQgdGhlIG90aGVyIGRlYnVnIGNhdGVnb3JpZXMgZG9uJ3QgbWFrZSBmdW4gb2YgaXQuIFMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChHU1RfQ0FUX1RZUEVTKToKCSAgQWRkIEdTVF9DQVRfVFlQRVMsIGZvciBjb25zaXN0ZW5jeSwgYW5kIHNvIHRoYXQgdGhlIG90aGVyCgkgIGRlYnVnIGNhdGVnb3JpZXMgZG9uJ3QgbWFrZSBmdW4gb2YgaXQuIFNwb3R0ZWQgYnkgU2F1ciBvbiBJUkMuCgoyMDA4LTAxLTEwIDEzOjAzOjM1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE1vdmUgdHlwZXMuaCBmcm9tIEVYVFJBX0RJU1QgdG8gbm9pbnN0X0hFQURFUlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTW92ZSB0eXBlcy5oIGZyb20gRVhUUkFfRElTVCB0byBub2luc3RfSEVBREVSUy4KCjIwMDgtMDEtMTAgMTI6MTQ6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGF1dG9nZW4uc2g6IEFkZCAtV25vLXBvcnRhYmlsaXR5IHRvIHRoZSBhdXRvbWFrZSBwYXJhbWV0ZXJzIHRvIHN0b3Agd2FybmluZ3MgYWJvdXQgR05VIG1ha2UgZXh0ZW5zaW9ucyBiZWluZyB1c2VkLiBXZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICBBZGQgLVduby1wb3J0YWJpbGl0eSB0byB0aGUgYXV0b21ha2UgcGFyYW1ldGVycyB0byBzdG9wIHdhcm5pbmdzCgkgIGFib3V0IEdOVSBtYWtlIGV4dGVuc2lvbnMgYmVpbmcgdXNlZC4gV2UgcmVxdWlyZSBHTlUgbWFrZSBpbiBhbG1vc3QKCSAgZXZlcnkgTWFrZWZpbGUgYW55d2F5LgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFNX1BST0dfQ0NfQ19PIGFzIGEgY29tcGlsZXIgdGhhdCBhY2NlcHRzIGJvdGggLWMgYW5kIC1vCgkgIGF0IHRoZSBzYW1lIHRpbWUgaXMgcmVxdWlyZWQgZm9yIHBlciB0YXJnZXQgZmxhZ3MuCgoyMDA4LTAxLTA5IDE4OjIzOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSBhbmQgZGVwcmVjYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLAoJICAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLCAoX2dzdF9wbHVnaW5faW5pdGlhbGl6ZSksCgkgIChnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyk6CgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgYW5kIGRlcHJlY2F0ZQoJICBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMsIHNpbmNlIGl0J3Mgbm90IHBvcnRhYmxlCgkgICgjNDk4OTI0KS4KCSAgQWxzbywgaW4gX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCksIG1ha2Ugc3VyZSB0byBjYWxsCgkgIGdfdGhyZWFkX2luaXQoKSBiZWZvcmUgY2FsbGluZyBHTGliIGZ1bmN0aW9ucyBzdWNoIGFzCgkgIGdfbGlzdF9hcHBlbmQoKSBpZiB3ZSdyZSBub3QgaW5pdGlhbGlzZWQgeWV0LCBzaW5jZSB0aGF0CgkgIG1heSBsZWFkIHRvIHJhbmRvbSBjcmFzaGVzIHdpdGggb2xkZXIgR1NsaWNlL0dMaWIgdmVyc2lvbnMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBBZGFwdCB1bml0IHRlc3QgdG8gYWJvdmUgY2hhbmdlcy4KCjIwMDgtMDEtMDkgMTY6MzY6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBZZXQgYW5vdGhlciBncmF0dWl0b3VzIEdTdHJpbmcgbWljcm8tb3B0aW1pc2F0aW9uOiBhZGQgYSAocHJpdmF0ZSkgZnVuY3Rpb24gdGhhdCBzZXJpYWxpc2VzIGEgc3RydWN0dXJlIGFwcGVuZGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChTVFJVQ1RVUkVfRVNUSU1BVEVEX1NUUklOR19MRU4pOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9BU0NJSV9JU19TVFJJTkcpLAoJICAocHJpdl9nc3Rfc3RydWN0dXJlX2FwcGVuZF90b19nc3RyaW5nKSwgKGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKToKCSAgWWV0IGFub3RoZXIgZ3JhdHVpdG91cyBHU3RyaW5nIG1pY3JvLW9wdGltaXNhdGlvbjogYWRkIGEgKHByaXZhdGUpCgkgIGZ1bmN0aW9uIHRoYXQgc2VyaWFsaXNlcyBhIHN0cnVjdHVyZSBhcHBlbmRpbmcgdG8gYW4gZXhpc3RpbmcKCSAgR1N0cmluZywgc28gdGhhdCB3aGVuIHdlIHNlcmlhbGlzZSBjYXBzIHdlIGRvbid0IG5lZWQgdG8gYWxsb2MrZnJlZQoJICBhIHRocm93YXdheSBHU3RyaW5nIGZvciBlYWNoIHN0cnVjdHVyZSAoZWFjaCBvZiB3aGljaCBhbHNvIGVudGFpbGluZwoJICBtdWx0aXBsZSByZWFsbG9jcyBvbiB0aGUgd2F5KTsgYWxzbyB1c2UgZ19zdHJpbmdfc2l6ZWRfbmV3KCkgaW4KCSAgdmFyaW91cyBwbGFjZXMgd2l0aCBhbiBhcHByb3hpbWF0ZSBzdHJpbmcgbGVuZ3RoIHRvIGF2b2lkIHJlYWxsb2NzCgkgIHdpdGhpbiBHU3RyaW5nLiBTZWUgIzUwMDE0My4KCjIwMDgtMDEtMDkgMTU6MDU6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFsd2F5cyBjaGVjayBVVEYtOCBjb25mb3JtYW5jZSBvZiBzdHJ1Y3R1cmUgc3RyaW5ncyBhbmQgbm90IG9ubHkgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsdWUpOgoJICBBbHdheXMgY2hlY2sgVVRGLTggY29uZm9ybWFuY2Ugb2Ygc3RydWN0dXJlIHN0cmluZ3MgYW5kIG5vdCBvbmx5CgkgIGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsZWQ7IHJlYXNvbmluZzogdGhlIGJlaGF2aW91ciBvZgoJICB0aGUgYWN0dWFsIGNvZGUgc2hvdWxkbid0IHJlYWxseSBjaGFuZ2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCgkgIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmxlZCBvciBub3QgKCM1MDgyOTEpLgoKMjAwOC0wMS0wOSAxMzo0ODowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFrZWZpbGUuYW06IFJlbW92ZSBvbGQgY292ZXJhZ2UgdGFyZ2V0IGluIGZhdm91ciBvZiAibWFrZSBsY292Ii4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBvbGQgY292ZXJhZ2UgdGFyZ2V0IGluIGZhdm91ciBvZiAibWFrZSBsY292Ii4KCjIwMDgtMDEtMDkgMTI6MjU6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVGhlIHN0YXJ0IHNlZ21lbnQgZm9yIHJldmVyc2UgcGxheWJhY2sgZ29lcyBmcm9tIHN0YXJ0IHRvIGxhc3Rfc3RvcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgVGhlIHN0YXJ0IHNlZ21lbnQgZm9yIHJldmVyc2UgcGxheWJhY2sgZ29lcyBmcm9tIHN0YXJ0IHRvIGxhc3Rfc3RvcC4KCjIwMDgtMDEtMDkgMTI6MjI6MjIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmg6IENhc3QgdGhlIHJlc3VsdHMgZnJvbSB0aGUgdGltZXZhbC9zcGVjX3RvX3RpbWUgbWFjcm9zIHRvIHdoYXQgdGhlIGRvY3Mgc2F5IGl0IGNhc3RzIHRvLCBhIEdzdENsb2NrVGltLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXhpcyBjb20+CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIENhc3QgdGhlIHJlc3VsdHMgZnJvbSB0aGUgdGltZXZhbC9zcGVjX3RvX3RpbWUgbWFjcm9zIHRvIHdoYXQgdGhlCgkgIGRvY3Mgc2F5IGl0IGNhc3RzIHRvLCBhIEdzdENsb2NrVGltZS4gZml4ZXMgIzUwODE3NS4KCjIwMDgtMDEtMDkgMTI6MTk6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFVwZGF0ZSBzb21lIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIFVwZGF0ZSBzb21lIGNvbW1lbnRzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEltcHJvdmUgcHJpbnRpbmcgb2YgZmxhZ3MuCgoyMDA4LTAxLTA4IDIxOjEzOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFByaW50IGVsZW1lbnQgbmFtZSB3aXRoIGdfd2FybmluZygpIGlmIHRoZXJlJ3MgYSBwcm9ibGVtIHdpdGggdGhlIHVuaXQgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpOgoJICBQcmludCBlbGVtZW50IG5hbWUgd2l0aCBnX3dhcm5pbmcoKSBpZiB0aGVyZSdzIGEgcHJvYmxlbQoJICB3aXRoIHRoZSB1bml0IHNpemUuCgoyMDA4LTAxLTA4IDAyOjA3OjM4ICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvOiBGaXggZW1wdHkgcHJvdG90eXBlcy4gIEZpeGVzIGJ1ZyAjNTA3OTU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgRml4IGVtcHR5IHByb3RvdHlwZXMuICBGaXhlcyBidWcgIzUwNzk1Ny4KCjIwMDgtMDEtMDggMDI6MDE6MzQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6IEZpeCB0eXBvLgoKMjAwOC0wMS0wNyAxMToyMzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB1cGRhdGUgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBpbiBkb19zZWVrLCB0aGF0J3MgdGhlIHBvc2l0aW9uIHdlIGRpZCBhIHNlZWsgdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIERvbid0IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIGluIGRvX3NlZWssIHRoYXQncyB0aGUgcG9zaXRpb24gd2UKCSAgZGlkIGEgc2VlayB0by4KCSAgUmVhZCBiYWNrd2FyZHMgd2hlbiB3ZSBoYXZlIGEgbmVnYXRpdmUgcmF0ZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChldmVudF9mdW5jKSwgKHdhaXRfZW9zKSwKCSAgKHNldHVwX2ZpbGVzcmMpLCAoY2xlYW51cF9maWxlc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZpbGVzcmNfc3VpdGUpOgoJICBBZGQgY2hlY2sgZm9yIHJldmVyc2UgcmVhZGluZy4KCjIwMDgtMDEtMDcgMDk6NDc6NDkgKzAwMDAgIEFsZXhpcyBCYWxsaWVyIDxhYmFsbGllckBnZW50b28ub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBEZWNpZGUgd2hpY2ggaGVhZGVyIHRvIGluY2x1ZGUgYmFzZWQgb24gdGhlIHVzZXJsYW5kIEFCSSB0YXJnZXQgYW5kIG5vdCB0aGUga2VybmVsL2NwdS4gRml4IHVwIHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxleGlzIEJhbGxpZXIgPGFiYWxsaWVyIGF0IGdlbnRvbyBvcmc+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJICBEZWNpZGUgd2hpY2ggaGVhZGVyIHRvIGluY2x1ZGUgYmFzZWQgb24gdGhlIHVzZXJsYW5kIEFCSSB0YXJnZXQKCSAgYW5kIG5vdCB0aGUga2VybmVsL2NwdS4gRml4IHVwIHN0cnVjdHVyZSBzaXplcyBvZiBwcGM2NCBoZWFkZXIKCSAgZm9yIDY0LWJpdCB1c2VybGFuZCAoIzUwMzU5MCkuICBNaWdodCBuZWVkIHNvbWV0aGluZyBzaW1pbGFyIGZvcgoJICB4ODYgdG9vLgoKMjAwOC0wMS0wNSAxMzo0NToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IExvZyB0aGUgcmVhc29uIHdoeSBmb3BlbiBmYWlscyBpbiBhZGRpdGlvbiB0byB0aGUgZmFjdCB0aGF0IGl0IGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlKToKCSAgTG9nIHRoZSByZWFzb24gd2h5IGZvcGVuIGZhaWxzIGluIGFkZGl0aW9uIHRvIHRoZSBmYWN0IHRoYXQgaXQgZmFpbGVkLgoKMjAwOC0wMS0wNCAxODo0NDowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL3BhcnNlLmw6IFVzZSAiJW9wdGlvbiBuZXZlci1pbnRlcmFjdGl2ZSIgdG8gcHJldmVudCB1c2VsZXNzIGNhbGxzIHRvIGlzYXR0eSgpIG9uIGV2ZXJ5IGlucHV0IHdoZW4gcGFyc2luZy4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBVc2UgIiVvcHRpb24gbmV2ZXItaW50ZXJhY3RpdmUiIHRvIHByZXZlbnQgdXNlbGVzcyBjYWxscyB0byBpc2F0dHkoKQoJICBvbiBldmVyeSBpbnB1dCB3aGVuIHBhcnNpbmcuIEFsc28gdXNlICIlb3B0aW9uIG5vaW5wdXQiIHRvIG5vdCBkZWZpbmUKCSAgdGhlIHN0YXRpYyBpbnB1dC95eWlucHV0IGZ1bmN0aW9ucyB3aGljaCB3ZSBkb24ndCB1c2UgYW55d2F5LiBUaGlzCgkgIHJlbW92ZXMgYSBjb21waWxlciB3YXJuaW5nIHdpdGggZ2NjIDQuMyBhbmQgc2F2ZXMgc29tZSBieXRlcyBpbiB0aGUKCSAgbGlicmFyeS4KCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIFJlZ2VuZXJhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlLgoKMjAwOC0wMS0wNCAxODozOToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgY3Jhc2ggd2hlbiB0cnlpbmcgdG8gZml4YXRlIGFuZCBlbXB0eSBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChmaXhhdGVfdmFsdWUpOgoJICBEb24ndCBjcmFzaCB3aGVuIHRyeWluZyB0byBmaXhhdGUgYW5kIGVtcHR5IGxpc3QuCgkgIEZpeGVzICM1MDY2NDMuCgoyMDA4LTAxLTAzIDA5OjQzOjQxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IENsYXJpZnkgdGhlIGNvbW1lbnRzIHRvIG1ha2UgdGhlIHVzYWdlIG9mIHRoaXMgc2NyaXB0IGFuZCB3aGF0IGl0IGRvZXMgZWFzaWVyIHRvIHVuZGVyc3RhbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQ2xhcmlmeSB0aGUgY29tbWVudHMgdG8gbWFrZSB0aGUgdXNhZ2Ugb2YgdGhpcyBzY3JpcHQgYW5kIHdoYXQgaXQKCSAgZG9lcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KCjIwMDgtMDEtMDEgMTc6MTA6MzIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weTogQWRkIG1vcmUgb3B0aW9ucyB0byBnc3QtcGxvdC10aW1lbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgQWRkIG1vcmUgb3B0aW9ucyB0byBnc3QtcGxvdC10aW1lbGluZQoKMjAwNy0xMi0zMSAxOToxMTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogU29tZSBtb3JlIGluZm8gb24gaG93IHRoZSBzdHJlYW1fdGltZSBpbiBHc3RCYXNlU2luayBpcyBkb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFNvbWUgbW9yZSBpbmZvIG9uIGhvdyB0aGUgc3RyZWFtX3RpbWUgaW4gR3N0QmFzZVNpbmsgaXMgZG9uZS4KCjIwMDctMTItMzAgMTM6MzY6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiByZW1vdmUgYm9ndXMgY2hhbmdlbG9nIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogcmVtb3ZlIGJvZ3VzIGNoYW5nZWxvZyBlbnRyeQoKMjAwNy0xMi0zMCAxMzozMToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogUHV0IGJhY2sgdGhlIHRjYXNlX3NldF90aW1lb3V0KCksIGFwcGFyZW50bHkgaXQncyBuZWVkZWQgYWZ0ZXIgYWxsOyBmaXggaXQgdXAgaW4gYSB3YXkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChnc3Rfc2lua3Nfc3VpdGUpOgoJICBQdXQgYmFjayB0aGUgdGNhc2Vfc2V0X3RpbWVvdXQoKSwgYXBwYXJlbnRseSBpdCdzIG5lZWRlZCBhZnRlcgoJICBhbGw7IGZpeCBpdCB1cCBpbiBhIHdheSB0aGF0IG1ha2VzIHRoaW5ncyB3b3JrIHdpdGggdmFsZ3JpbmQgdG9vLgoKMjAwNy0xMi0zMCAxMjoyMjo0OSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IGFkZCB3YXJuaW5nIHdoZW4gZmFpbGVkIHRvIG9wZW4gZmlsZSBmb3Igd3JpdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBhZGQgd2FybmluZyB3aGVuIGZhaWxlZCB0byBvcGVuIGZpbGUgZm9yIHdyaXRpbmcKCjIwMDctMTItMjggMTQ6MzQ6MzQgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBPcHRpbWlzYXRpb246IGJhaWwgb3V0IG9mIHRoZSBsb29wIGFzIGVhcmx5IGFzIHBvc3NpYmxlICgjNTAwMTQzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCAgPHNwZ2xlZ2xlIHlhaG9vIGZyPgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgT3B0aW1pc2F0aW9uOiBiYWlsIG91dCBvZiB0aGUgbG9vcCBhcyBlYXJseSBhcyBwb3NzaWJsZSAoIzUwMDE0MykuCgoyMDA3LTEyLTI4IDE0OjE1OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQnVuY2ggb2YgZ3JhdHVpdG91cyBuYW5vLW9wdGltaXNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfY29uc3RydWN0X3Rlcm1fY29sb3IpOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaHYpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZHVtcF9tZW0pOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9hbnlfbGlzdCksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FueV9saXN0X3N0cmluZyk6CgkgIEJ1bmNoIG9mIGdyYXR1aXRvdXMgbmFuby1vcHRpbWlzYXRpb25zLgoKMjAwNy0xMi0yOCAxMzo1NzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogRml4IGxlYWsgaW4gdW5pdCB0ZXN0IChidXMgc3luYyBoYW5kbGVyIG11c3QgdW5yZWYgdGhlIG1lc3NhZ2UgaWYgaXQgcmV0dXJucyBHU1RfQlVTX0RSTy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChhc3luY19kb25lX2Z1bmMpLAoJICAoYXN5bmNfZG9uZV9lb3NfZnVuYyk6CgkgIEZpeCBsZWFrIGluIHVuaXQgdGVzdCAoYnVzIHN5bmMgaGFuZGxlciBtdXN0IHVucmVmIHRoZSBtZXNzYWdlCgkgIGlmIGl0IHJldHVybnMgR1NUX0JVU19EUk9QKS4gRG9uJ3QgZmlkZGxlIHdpdGggdGhlIGRlZmF1bHQgdGVzdAoJICB0aW1lb3V0LCB0aGlzIGlzIHNtYWxsZXIgdGhhbiB0aGUgY3VycmVudCBwcmVjb25maWd1cmVkIHZhbHVlCgkgIHZpYSBDS19ERUZBVUxUX1RJTUVPVVQsIGFuZCBhbHNvIGJyZWFrcyB0aGluZ3Mgd2l0aCB2YWxncmluZAoJICBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIENLX0RFRkFVTFRfVElNRU9VVC4KCjIwMDctMTItMjQgMTk6MjE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFkZCBidWcgdGhhdCB3YXMgZml4ZWQgd2l0aCBsYXN0IGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBidWcgdGhhdCB3YXMgZml4ZWQgd2l0aCBsYXN0IGNvbW1pdC4KCjIwMDctMTItMjQgMTk6MTE6MjkgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIHN0ZGlvX2V4dC5oIGZvciB0aGUgZmlsZXNpbmsgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIFBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGUgYXQgeWFob28gZG90IGZyPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ2hlY2sgZm9yIHN0ZGlvX2V4dC5oIGZvciB0aGUgZmlsZXNpbmsgY2hhbmdlcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChidWZmZXJfbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpLCAoZ3N0X2ZpbGVfc2lua19pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfZGlzcG9zZSksIChnc3RfZmlsZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgQWRkIHR3byBwcm9wZXJ0aWVzIHRvIGNvbnRyb2wgdGhlIGJ1ZmZlcmluZyBtb2RlIGFuZCBzaXplLgoJICBBUEk6IEdzdEZpbGVTaW5rOjpidWZmZXItbW9kZQoJICBBUEk6IEdzdEZpbGVTaW5rOjpidWZmZXItc2l6ZQoKMjAwNy0xMi0yNCAxNDozNToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBBZGQgc29tZSBtb3JlIGRvY3MgdG8gZXhwbGFpbiB3aHkgYSBGSVhNRSB3YXMgd3JvbmdseSBhZGRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKToKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIHRvIGV4cGxhaW4gd2h5IGEgRklYTUUgd2FzIHdyb25nbHkgYWRkZWQuCgoyMDA3LTEyLTIyIDEyOjQ4OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IEZpeCB0eXBvIGluIHRoZSBnc3Rfb2JqZWN0X3tyZWYsdW5yZWZ9IGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgRml4IHR5cG8gaW4gdGhlIGdzdF9vYmplY3Rfe3JlZix1bnJlZn0gZG9jdW1lbnRhdGlvbi4KCjIwMDctMTItMjEgMjE6MTc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IERvbid0IHVzZSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMsIGl0IGlzIG5vdCBwb3J0YWJsZSBhbmQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjYXRlZCAoc2VlICM0OTg5MjQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBEb24ndCB1c2UgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLCBpdCBpcyBub3QgcG9ydGFibGUgYW5kIGlzCgkgIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgKHNlZSAjNDk4OTI0KS4KCjIwMDctMTItMjEgMjA6NTg6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dHlwZWZpbmQuYzogTWFrZSBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyIHdvcmsgZm9yIHN0YXRpYyB0eXBlZmluZCBmdW5jdGlvbnMsIGllLiBhbGxvdyBwYXNzaW5nIHBsdWdpbiA9PSBOVUxMICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgTWFrZSBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyIHdvcmsgZm9yIHN0YXRpYyB0eXBlZmluZCBmdW5jdGlvbnMsCgkgIGllLiBhbGxvdyBwYXNzaW5nIHBsdWdpbiA9PSBOVUxMIChwcmVyZXF1aXNpdGUgZm9yICM0OTg5MjQpLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpOgoJICBTbWFsbCBkb2NzIGFkZGl0aW9uLgoKMjAwNy0xMi0yMSAxMzo1NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVhbGx5IHVubGluayB0aGUgcGVlciBwYWQgaW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBwZWVyIHBvaW50ZXIgdG8gTlVMTCB3aGVuIHdlIGRpc3Bvc2UgdGhlIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKToKCSAgUmVhbGx5IHVubGluayB0aGUgcGVlciBwYWQgaW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBwZWVyIHBvaW50ZXIgdG8gTlVMTAoJICB3aGVuIHdlIGRpc3Bvc2UgdGhlIHBhZC4KCSAgVGhpcyBjb3JyZWN0bHkgY2FsbHMgdGhlIHVubGluayBmdW5jdGlvbnMgYW5kIG1ha2VzIHN1cmUgdGhhdCB0aGUgcGVlcgoJICBkb2VzIG5vdCBoYXZlIGEgaGFuZGxlIHRvIGludmFsaWQgbWVtb3J5LiBTZWUgIzUwNDY3MS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgQWRkIHRlc3RzdWl0ZSBmb3IgYWJvdmUgY2FzZS4KCjIwMDctMTItMjAgMDk6MjA6MjcgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogRml4IGRldGVjdGlvbiBvZiB0aGUgY2hlY2sgdmVyc2lvbiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdCAod291bGQgb3RoZXJ3aXNlIGJyZWFrIGlmIGNoZWNrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXhpcyBjb20+CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IGRldGVjdGlvbiBvZiB0aGUgY2hlY2sgdmVyc2lvbiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdCAod291bGQKCSAgb3RoZXJ3aXNlIGJyZWFrIGlmIGNoZWNrIGdvZXMgdjAuMTAuMCk7IGNvcnJlY3RseSByZXBvcnQgdGhlCgkgIG5hbWUgb2YgdGhlIGZhaWxlZCB0ZXN0IGFnYWluIGluIGNhc2Ugb2YgZmFpbHVyZSwgaW5zdGVhZCBvZgoJICBqdXN0ICd0ZicgKGZpeGVzICM1MDQ0OTkpLgoKMjAwNy0xMi0xOSAxNzo0OTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbGxvdyBzZW5kaW5nIEVPUyB0byB0aGUgc291cmNlIHRvIG1ha2UgaXQgc2VuZCBvdXQgYW4gRU9TIGV2ZW50IGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBBbGxvdyBzZW5kaW5nIEVPUyB0byB0aGUgc291cmNlIHRvIG1ha2UgaXQgc2VuZCBvdXQgYW4gRU9TIGV2ZW50IGZyb20KCSAgdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIFVwZGF0ZSBkb2NzIGFuZCBkZXByZWNhdGUgdGhlIG9sZCBOVUxML1JFQURZIHNodXRkb3duIG1ldGhvZC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9iYXNlc3JjX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgY29udHJvbGxlZCBzaHV0ZG93bi4KCjIwMDctMTItMTkgMTI6NDg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFNtYWxsIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgU21hbGwgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBUaGUgc2VlayBmb3JtYXQgY2FuIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBzZWdtZW50IGZvcm1hdCB3aGVuIHRoZSBzdGFydAoJICBhbmQgc3RvcCB2YWx1ZXMgYXJlIG5vdCB0byBiZSB1cGRhdGVkLCB3aGVuIHdlIG9ubHkgZG8gYSByYXRlIGNoYW5nZSBmb3IKCSAgZXhhbXBsZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICBBZGQgYSB0ZXN0Y2FzZSBmb3IgdGhlIHJhdGUtb25seSBzZWVrcywgY2hlY2tpbmcgdGhhdCB0aGUgZm9ybWF0IGlzCgkgIGNvcnJlY3RseSBpZ25vcmVkIHdoZW4gc3RhcnQgYW5kIHN0b3AgYXJlIG5vdCB1cGRhdGVkLgoKMjAwNy0xMi0xOCAxMzozODozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSwgZ3N0ZW51bXR5cGVzLmMgY2hhbmdlcyB3ZXJlIG5vdCBjb21taXR0ZWQgYmVjYXVzZSB0aGVyZSB3ZXJlIG5vbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nIHN1cmdlcnksIGdzdGVudW10eXBlcy5jIGNoYW5nZXMgd2VyZSBub3QgY29tbWl0dGVkIGJlY2F1c2UgdGhlcmUgd2VyZSBub25lCgoyMDA3LTEyLTE4IDEzOjE4OjM1ICswMDAwICBNYXR0aGlhcyBCb2x0ZSA8cGhvdG9uQG1haWwudXBiLmRlPgoKCSAgd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOiBTb21lIGluZGVudGlvbiBmaXhlcyBieSBnc3QtaW5kZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6IChyZWdpc3Rlcl9nc3RfYnVmZmVyX2ZsYWcpLAoJICAocmVnaXN0ZXJfZ3N0X2J1ZmZlcl9jb3B5X2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9jbG9ja19mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfZGVidWdfZ3JhcGhfZGV0YWlscyksCgkgIChyZWdpc3Rlcl9nc3Rfc3RhdGVfY2hhbmdlX3JldHVybiksIChyZWdpc3Rlcl9nc3Rfc3RhdGVfY2hhbmdlKSwKCSAgKHJlZ2lzdGVyX2dzdF9lbGVtZW50X2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9jb3JlX2Vycm9yKSwKCSAgKHJlZ2lzdGVyX2dzdF9saWJyYXJ5X2Vycm9yKSwgKHJlZ2lzdGVyX2dzdF9yZXNvdXJjZV9lcnJvciksCgkgIChyZWdpc3Rlcl9nc3Rfc3RyZWFtX2Vycm9yKSwgKHJlZ2lzdGVyX2dzdF9ldmVudF90eXBlX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF9ldmVudF90eXBlKSwgKHJlZ2lzdGVyX2dzdF9pbmRleF9lbnRyeV90eXBlKSwKCSAgKHJlZ2lzdGVyX2dzdF9hc3NvY19mbGFncyksIChyZWdpc3Rlcl9nc3RfbWVzc2FnZV90eXBlKSwKCSAgKHJlZ2lzdGVyX2dzdF9taW5pX29iamVjdF9mbGFncyksIChyZWdpc3Rlcl9nc3RfcGFkX2xpbmtfcmV0dXJuKSwKCSAgKHJlZ2lzdGVyX2dzdF9mbG93X3JldHVybiksIChyZWdpc3Rlcl9nc3RfcGFkX3RlbXBsYXRlX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF9waXBlbGluZV9mbGFncyksIChyZWdpc3Rlcl9nc3RfcGx1Z2luX2Vycm9yKSwKCSAgKHJlZ2lzdGVyX2dzdF90YWdfbWVyZ2VfbW9kZSksIChyZWdpc3Rlcl9nc3RfYWxsb2NfdHJhY2VfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X3R5cGVfZmluZF9wcm9iYWJpbGl0eSksIChyZWdpc3Rlcl9nc3RfcGFyc2VfZXJyb3IpOgoJICBTb21lIGluZGVudGlvbiBmaXhlcyBieSBnc3QtaW5kZW50LgoJICBQYXRjaCBieTogTWF0dGhpYXMgQm9sdGUgPHBob3RvbiBhdCBtYWlsIGRvdCB1cGIgZG90IGRlPgoJICAqIHdpbjMyL3ZzOC9ncmFtbWFyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y29udHJvbGxlci52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIEZpeCBjb21waWxhdGlvbiB3aXRoIFZTOCBhbmQgaW5jbHVkZSBzb21lIG1pc3NpbmcgZmlsZXMuCgoyMDA3LTEyLTE4IDEyOjAzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogU21hbGwgZG9jcyBhZGRpdGlvbjogbWVudGlvbiB0aGF0IHRoZSBzdHJpbmdzIHJldHVybmVkIGJ5IGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKigpIGFyZSBpbiBVVEYtOCBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIFNtYWxsIGRvY3MgYWRkaXRpb246IG1lbnRpb24gdGhhdCB0aGUgc3RyaW5ncyByZXR1cm5lZCBieQoJICBnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZyooKSBhcmUgaW4gVVRGLTggZW5jb2RpbmcuCgoyMDA3LTEyLTE3IDE5OjU5OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZWZpbGUuYW06IFRoZSBjaGVjay1leHBvcnRzIHN0dWZmIG1vdmVkIHRvIGNvbW1vbi93aW4zMi5tYWssIHNvIGluY2x1ZGUgdGhhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIFRoZSBjaGVjay1leHBvcnRzIHN0dWZmIG1vdmVkIHRvIGNvbW1vbi93aW4zMi5tYWssIHNvIGluY2x1ZGUgdGhhdC4KCjIwMDctMTItMTcgMTY6Mzg6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBfd2FpdF9wbGF5aW5nKCkgbm90IGNoZWNrIGFueSB2YXJpYWJsZXMgc28gdGhhdCB3ZSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uIGZyb20gc3ViY2wuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3BsYXlpbmcpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2UgX3dhaXRfcGxheWluZygpIG5vdCBjaGVjayBhbnkgdmFyaWFibGVzIHNvIHRoYXQgd2UgY2FuIGNhbGwgdGhpcwoJICBmdW5jdGlvbiBmcm9tIHN1YmNsYXNzZXMuIE1vdmUgdGhlIGNoZWNrcyBlbHNld2hlcmUgc2ltaWxhciB0bwoJICBfd2FpdF9wcmVyb2xsKCkgaW4gYmFzZXNpbmsuCgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT25seSBzaWduYWwgdGhlIExJVkUgY29uZCB3aGVuIHdlIGFyZSBnb2luZyBiYWNrIHRvIFBMQVlJTkcuCgoyMDA3LTEyLTE2IDE4OjI5OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFVzZSBnX3JlbW92ZSgpIGFuZCBnX3JlbmFtZSgpLiBDaGVjayByZXN1bHQgb2YgZ19yZW5hbWUoKSwgYW5kIGRvbid0IGxlYWsgdGhlIG9wZW4gZmlsZSBkZXNjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSk6CgkgIFVzZSBnX3JlbW92ZSgpIGFuZCBnX3JlbmFtZSgpLiBDaGVjayByZXN1bHQgb2YgZ19yZW5hbWUoKSwgYW5kCgkgIGRvbid0IGxlYWsgdGhlIG9wZW4gZmlsZSBkZXNjcmlwdG9yIGlmIHdlIGVycm9yIG91dCB3aGVuIHdyaXRpbmcuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgTXVzdCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIGNsb3NlKCkgYWZ0ZXIgd3JpdGluZyBvdXQgdGhlIG5ldwoJICByZWdpc3RyeSBmaWxlLiAgU29tZXRpbWVzIHdyaXRlIHByb2JsZW1zIHN1Y2ggYXMgb3V0LW9mLWRpc2tzcGFjZQoJICBhcmUgb25seSByZXBvcnRlZCB3aGVuIHRoZSBmaWxlIGlzIGNsb3NlZCBhbmQgbm90IGFscmVhZHkgZHVyaW5nCgkgIHRoZSB3cml0ZS4gIFRoaXMgbWF5IGhhdmUgY2F1c2VkIHBhcnRpYWwvYnJva2VuIHJlZ2lzdHJ5IGZpbGVzIGluCgkgIHNvbWUgcmFyZSBjaXJjdW1zdGFuY2VzLiBTaG91bGQgZml4ICM1MDM2NzUuCgoyMDA3LTEyLTE2IDE3OjM3OjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy86IElnbm9yZSBmaWxlcyBnZW5lcmF0ZWQgYnkgbmV3IGNvbW1vbi8qIG1vZGlmaWNhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2xpYnMvLmN2c2lnbm9yZToKCSAgKiBkb2NzL3BsdWdpbnMvLmN2c2lnbm9yZToKCSAgSWdub3JlIGZpbGVzIGdlbmVyYXRlZCBieSBuZXcgY29tbW9uLyogbW9kaWZpY2F0aW9ucwoKMjAwNy0xMi0xNSAxNToxOTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBZZXMsIHlvdSBjYW4gYWxzbyBoYXZlIGEgPFRBQj4gaWYgeW91IHdhbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgWWVzLCB5b3UgY2FuIGFsc28gaGF2ZSBhIDxUQUI+IGlmIHlvdSB3YW50LgoKMjAwNy0xMi0xNSAxNDo1ODo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgbmV3IGJhc2V0cmFuc2Zvcm0gQVBJIHRvIHdpbiBleHBvcnQgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IGJhc2V0cmFuc2Zvcm0gQVBJIHRvIHdpbiBleHBvcnQgZmlsZS4KCjIwMDctMTItMTUgMTQ6NDI6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogQWRqdXN0IHRoZSB0ZXN0IHRvIHRoZSByZWZjb3VudCBjaGFuZ2UgdHdvIGRheXMgYWdvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIEFkanVzdCB0aGUgdGVzdCB0byB0aGUgcmVmY291bnQgY2hhbmdlIHR3byBkYXlzIGFnby4KCjIwMDctMTItMTQgMjE6MzY6NTAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9mYXEvZ2V0dGluZy54bWw6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDogRml4IHR5cG8uCgoyMDA3LTEyLTE0IDE2OjUyOjM4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSgpIHRvIGNvbnRyb2wgd2hldGhlciB0aGUgZWxlbWVudCBjb3JyZWN0bHkgaGFuZGxlcyBHU1RfQlVGRkVSX0ZMQUdfR0FQIG9yIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBUEk6IEFkZCBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSgpIHRvIGNvbnRyb2wgd2hldGhlcgoJICB0aGUgZWxlbWVudCBjb3JyZWN0bHkgaGFuZGxlcyBHU1RfQlVGRkVSX0ZMQUdfR0FQIG9yIHNob3VsZG4ndAoJICBnZXQgYnVmZmVycyB3aXRoIHRoaXMgZmxhZyBhdCBhbGwuIEZpeGVzICM1MDMyMzEuCgoyMDA3LTEyLTEzIDE2OjQ5OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogUmVwbGFjZSBnc3RfcGFkX2dldF9wYXJlbnQgYnkgR1NUX09CSkVDVF9QQVJFTlQgaW5zaWRlIHN0cmVhbWluZyB0aHJlYWQuIENvcnJlY3QgbG9nIG1lc3NhZ2UgaW4gZ3N0YmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXBsYWNlIGdzdF9wYWRfZ2V0X3BhcmVudCBieSBHU1RfT0JKRUNUX1BBUkVOVCBpbnNpZGUgc3RyZWFtaW5nCgkgIHRocmVhZC4gQ29ycmVjdCBsb2cgbWVzc2FnZSBpbiBnc3RiYXNlc3JjLmMuCgoyMDA3LTEyLTEzIDEzOjU5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBwb3NzaWJsZSBjb21waWxlciB3YXJuaW5nICgjNTAzNDE3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChlbGVtZW50X2ZpbmRfdW5jb25uZWN0ZWRfcGFkKToKCSAgRml4IHBvc3NpYmxlIGNvbXBpbGVyIHdhcm5pbmcgKCM1MDM0MTcpLgoKMjAwNy0xMi0xMyAxMTo0MTowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogRG9uJ3QgdXNlIEdTVF9DQVRfRVZFTlQgaGVyZSBmb3IgbG9nZ2luZywgaXQgbWFrZXMgbm8gc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKToKCSAgRG9uJ3QgdXNlIEdTVF9DQVRfRVZFTlQgaGVyZSBmb3IgbG9nZ2luZywgaXQgbWFrZXMgbm8gc2Vuc2UuCgoyMDA3LTEyLTEzIDEwOjMxOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgc3VwcG9ydCBmb3IgR3N0RnJhY3Rpb24gcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgQWRkIHN1cHBvcnQgZm9yIEdzdEZyYWN0aW9uIHByb3BlcnRpZXMuCgoyMDA3LTEyLTEyIDIzOjIwOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZWZpbGUuYW06IEFkZCBjaGVjay1leHBvcnRzIHRhcmdldCBhbmQgcnVuIGl0IGFzIHBhcnQgb2YgJ21ha2UgY2hlY2snIChzZWUgIzQ5OTE0MCBhbmQgIzQ5Mzk4MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBBZGQgY2hlY2stZXhwb3J0cyB0YXJnZXQgYW5kIHJ1biBpdCBhcyBwYXJ0IG9mICdtYWtlIGNoZWNrJwoJICAoc2VlICM0OTkxNDAgYW5kICM0OTM5ODMpLgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX3ByaXZfZ3N0X2luX3ZhbGdyaW5kKSwgKF9nc3RfZGVidWdfaW5pdCksCgkgIChfcHJpdl9nc3RfaW5fdmFsZ3JpbmQpOgoJICAqIGdzdC9nc3RpbmZvLmg6IChHc3RMb2dGdW5jdGlvbik6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6ICh0eXBlX2ZpbmRfZGVidWcpLCAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKHR5cGVfZmluZF9kZWJ1ZyksIChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKEdTVF9DQVRfREVGQVVMVCksCgkgIChHU1RfQ0FUX0RFRkFVTFQpLCAocGFyZW50X2NsYXNzKSwgKHByaXZfZ3N0X2NvbnRyb2xsZXJfa2V5KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLCAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLAoJICAoX2dzdF9jb250cm9sbGVyX2Rpc3Bvc2UpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOiAoR1NUX0NBVF9ERUZBVUxUKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKEdTVF9DQVRfREVGQVVMVCksIChnc3Rfb2JqZWN0X3VuY29udHJvbF9wcm9wZXJ0aWVzKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xsZXIpLCAoZ3N0X29iamVjdF9zZXRfY29udHJvbGxlciksCgkgIChnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKSwgKGdzdF9vYmplY3Rfc3luY192YWx1ZXMpLAoJICAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9zb3VyY2UpLCAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXlzKSwgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5KSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiAoR1NUX0NBVF9ERUZBVUxUKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOiAoR1NUX0NBVF9ERUZBVUxUKToKCSAgTWFrZSBzb21lIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBzdGF0aWMgc3RhdGljOyByZW5hbWUgc29tZQoJICBwcml2YXRlIHN5bWJvbHMgc28gdGhhdCB0aGV5IGRvbid0IGdldCBleHBvcnRlZDsgYWRkIHNvbWUgRklYTUUKCSAgY29tbWVudHMgc28gd2UgY2FuIG1vdmUgYWNjaWRlbnRhbGx5IGV4cG9ydGVkIGZ1bmN0aW9ucyBpbnRvCgkgIG91ciBwcml2YXRlIHNlY3Rpb24gaW4gMC4xMS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF91dGlsc19nZXRfdGltZXN0YW1wKCkuCgoyMDA3LTEyLTEyIDE0OjA0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogQWRkIG1vcmUgbWlzc2luZyAiU2luY2U6IiB0YWdzIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBBZGQgbW9yZSBtaXNzaW5nICJTaW5jZToiIHRhZ3MgdG8gZG9jcy4KCjIwMDctMTItMTIgMDY6NTg6NTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGQgbWlzaW5nICJTaW5jZToiIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgbWlzaW5nICJTaW5jZToiIHRvIGRvY3MuCgoyMDA3LTEyLTExIDIyOjAzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEluY2x1ZGUgImdsaWItY29tcGF0LXByaXZhdGUuaCIgdG8gZml4IHRoZSBidWlsZCBvbiBzeXN0ZW0gd2l0aCBnbGliIDwgMi4xMC4gRml4ZXMgIzUwMzEzMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBJbmNsdWRlICJnbGliLWNvbXBhdC1wcml2YXRlLmgiIHRvIGZpeCB0aGUgYnVpbGQgb24gc3lzdGVtIHdpdGgKCSAgZ2xpYiA8IDIuMTAuIEZpeGVzICM1MDMxMzEuCgoyMDA3LTEyLTExIDIwOjMyOjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuKjogQWN0dWFsbHkgaXRzIG5vdCBQVVJFIGFzIGl0IGdldHMgdGhlIHRpbWUgZnJvbSBlbHNld2hlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBY3R1YWxseSBpdHMgbm90IFBVUkUgYXMgaXQgZ2V0cyB0aGUgdGltZSBmcm9tIGVsc2V3aGVyZS4KCjIwMDctMTItMTEgMjA6MjM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZSBHU1RfR0VUX1RJTUVTVEFNUCBpbnRvIGdzdF91dGlsX2dldF90aW1lc3RhbXAgYW5kIHJlcGxhY2UgYWxsIHVzZXMgYXMgd2UgZG9uJ3QgaGF2ZSBIQVZFX1BPU0lYX1RJTUVSUyBpbiBwdWJsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBDaGFuZ2UgR1NUX0dFVF9USU1FU1RBTVAgaW50byBnc3RfdXRpbF9nZXRfdGltZXN0YW1wIGFuZCByZXBsYWNlIGFsbAoJICB1c2VzIGFzIHdlIGRvbid0IGhhdmUgSEFWRV9QT1NJWF9USU1FUlMgaW4gcHVibGljIGhlYWRlcnMuCgkgIFRoYW5rcyBUaW0gZm9yIHNwb3R0aW5nLgoKMjAwNy0xMi0xMSAxNToyOToyNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUgYnkgbWlycm9yaW5nIGxhdGVzdCBGZWRvcmEgb25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlIGJ5IG1pcnJvcmluZyBsYXRlc3QgRmVkb3JhIG9uZQoKMjAwNy0xMi0wOSAwNDoyODowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBkZWZpbmUgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBmb3IgcmVsZWFzZXMuIEZpeGVzICM0OTgxODEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgZGVmaW5lIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgZm9yIHJlbGVhc2VzLiBGaXhlcyAjNDk4MTgxLgoKMjAwNy0xMi0wOCAxMjo1NDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRG9uJ3QgY3Jhc2ggaW4gX2Zyb21fc3RyaW5nKCkgaWYgdGhlIHN0cnVjdHVyZSBuYW1lIGlzIG5vdCB2YWxpZCAoZml4ZXMgIzUwMTU2MCkuICBBbGxvdyBzdHJ1Y3R1ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbGlkYXRlX25hbWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9uZXdfdmFsaXN0KSwgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6CgkgIERvbid0IGNyYXNoIGluIF9mcm9tX3N0cmluZygpIGlmIHRoZSBzdHJ1Y3R1cmUgbmFtZSBpcyBub3QgdmFsaWQKCSAgKGZpeGVzICM1MDE1NjApLiAgQWxsb3cgc3RydWN0dXJlIG5hbWVzIHRvIHN0YXJ0IHdpdGggYSBudW1iZXIKCSAgYWdhaW4gKHRoaXMgYXBwYXJlbnRseSBicm9rZSB0aGUgdWJ1bnR1IGNvZGVjIGluc3RhbGxlcikuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgY3Jhc2g7IHVwZGF0ZSB1bml0IHRlc3RzIGZvciBuZXcgYmVoYXZpb3VyLgoKMjAwNy0xMi0wMyAxMTowNDowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDbGFyaWZ5IGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCgpIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDbGFyaWZ5IGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCgpIGRvY3VtZW50YXRpb24uCgkgIEZpeGVzICM1MDA5MTkuCgoyMDA3LTEyLTAyIDIwOjMzOjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogRG9uJ3QgZm9yZ2V0IHRvIGRpc3Qge2dzdCxsaWJzfS9zdHJ1Y3RfaHBwYS5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgZm9yZ2V0IHRvIGRpc3Qge2dzdCxsaWJzfS9zdHJ1Y3RfaHBwYS5oLgoKMjAwNy0xMS0yOCAxMzowMjozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVc2UgbmV3IEFQSSB0byBnZXQgZWxhcHNlZCB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgoyMDA3LTExLTI4IDEyOjUyOjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggd3Jvbmcgb3JkZXIgb2YgYXJncyBpbiBHU1RfQ0xPQ0tfRElGRigpIHVzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCB3cm9uZyBvcmRlciBvZiBhcmdzIGluIEdTVF9DTE9DS19ESUZGKCkgdXNhZ2UuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBVc2UgbmV3IEFQSSB0byBnZXQgZWxhcHNlZCB0aW1lLgoKMjAwNy0xMS0yOCAxMjozNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmVuYW1lIG5ldyBBUEkgKyBDaGFuZ2VMb2cgc3VyZ2VyeSB0byByZW1vdmUgb2xkIG5hbWUgZnJvbSBsYXN0IGVudHJ5Li4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIFJlbmFtZSBuZXcgQVBJICsgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gcmVtb3ZlIG9sZCBuYW1lIGZyb20gbGFzdCBlbnRyeS4uCgkgIEFQSTogR1NUX0dFVF9USU1FU1RBTVAKCjIwMDctMTEtMjggMTI6MTE6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE5vdyBoaWRlIHRoZSBkaWZmZXJlbnQgY2xvY2sgc3R1ZmYgYmVoaW5kIGEgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBOb3cgaGlkZSB0aGUgZGlmZmVyZW50IGNsb2NrIHN0dWZmIGJlaGluZCBhIG1hY3JvLgoJICBBUEk6IEdTVF9HRVRfQ1VSUkVOVF9USU1FCgoyMDA3LTExLTI4IDExOjM5OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBcHBseSB0aGUgcG9zaXgtdGltZXIgY2hlY2sgZnJvbSAjMzYxMTU1LiBDb25kaXRpb25hbGx5IHVzZSB0aGUgcG9zaXggdGltZXIgZm9yIGxvZ2dpbmcuIFRoaXMgZ2l2ZXMgYmV0dGVyIHRpbWVzdGFtcCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgQXBwbHkgdGhlIHBvc2l4LXRpbWVyIGNoZWNrIGZyb20gIzM2MTE1NS4gQ29uZGl0aW9uYWxseSB1c2UgdGhlIHBvc2l4CgkgIHRpbWVyIGZvciBsb2dnaW5nLiBUaGlzIGdpdmVzIGJldHRlciB0aW1lc3RhbXAgcHJlY2lzc2lvbiwgbGVzcwoJICBvdmVyaGVhZCBhbmQgbm8gbnRwIGppdHRlci4KCjIwMDctMTEtMjggMTE6MTE6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFNvbWUgY2xlYW51cCBhbmQgY2hlY2tpbmcgYWdhaW5zdCBpbnZhbGlkIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2NsYXNzX2luaXQpLCAoZ3N0X21pbmlfb2JqZWN0X2NvcHlfZGVmYXVsdCksCgkgIChnc3RfbWluaV9vYmplY3RfZmluYWxpemUpLCAoZ3N0X21pbmlfb2JqZWN0X2NvcHkpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2lzX3dyaXRhYmxlKSwgKGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKSwKCSAgKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKSwgKHBhcmFtX21pbmlfb2JqZWN0X3ZhbGlkYXRlKSwKCSAgKGdzdF9wYXJhbV9zcGVjX21pbmlfb2JqZWN0X2dldF90eXBlKToKCSAgU29tZSBjbGVhbnVwIGFuZCBjaGVja2luZyBhZ2FpbnN0IGludmFsaWQgZnVuY3Rpb24gcGFyYW1ldGVycy4KCjIwMDctMTEtMjggMTA6NTg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTdGFydCBtZXJnaW5nIGluIHRoZSBlYXN5IGJpdHMgb2YgIzM2MTE1NSwgdGhlIG1vbm90b25pYyBjbG9jayBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIFN0YXJ0IG1lcmdpbmcgaW4gdGhlIGVhc3kgYml0cyBvZiAjMzYxMTU1LCB0aGUgbW9ub3RvbmljIGNsb2NrIHBhdGNoLgoJICBUaGlzIG9uZSBhZGRzIGEgZmV3IGhhbmR5IG1hY3JvcyB3aXRoIGRvY3MgYW5kIGEgdGVzdHN1aXRlLgoKMjAwNy0xMS0yNyAxODo0NTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogQmUgYSBiaXQgc21hcnRlciB3aGVuIHNlZWtpbmcsIGxpa2UsIGRvbid0IHRyeSB0byBkbyBhIHNlZWsgd2hlbiBpdCdzIG5vdCBuZWVkZWQuIFRoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KToKCSAgQmUgYSBiaXQgc21hcnRlciB3aGVuIHNlZWtpbmcsIGxpa2UsIGRvbid0IHRyeSB0byBkbyBhIHNlZWsgd2hlbiBpdCdzCgkgIG5vdCBuZWVkZWQuIFRoaXMgYXZvaWRzIGVycm9ycyB3aGVuIHRoZSBmaWxlIGlzIG5vdCBzZWVrYWJsZS4KCSAgRml4ZXMgIzQ5OTc3MS4KCjIwMDctMTEtMjYgMTM6MTY6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgcmVtb3ZlIHByZXNldCBpbnRlcmZhY2UgYWdhaW4uIDotKC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IHJlbW92ZSBwcmVzZXQgaW50ZXJmYWNlIGFnYWluLiA6LSguCgoyMDA3LTExLTIyIDIxOjMyOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcmludCAnZGVmYXVsdCB2YWx1ZScgZm9yIGVudW1zIGFuZCBmbGFncyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFByaW50ICdkZWZhdWx0IHZhbHVlJyBmb3IgZW51bXMgYW5kIGZsYWdzIHRvby4KCjIwMDctMTEtMjIgMTU6NTk6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDogTW9yZSBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBNb3JlIGlkZWFzLgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRml4IHR5cG8gYW5kIGdpdmUgYmV0dGVyIGxvZyBvdXRwdXQuCgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBNb3JlIGlkZWFzLCBtYWtlIGdyYXBocyBhIGJpdCBzbWFsbGVyIGFuZCBmaXggcGFyYW0gbmFtZSBpbiBtYWNyby4KCjIwMDctMTEtMjIgMTM6NTY6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogVHJ5IGhhcmRlciB0byB1c2UgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGZnZXRzKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgVHJ5IGhhcmRlciB0byB1c2UgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGZnZXRzKCkuCgoyMDA3LTExLTIxIDE2OjA4OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEZvciB0aGVzZXMgdHdvIGZnZXRzIHdlIGhhbmRsZSB0aGUgZXJyb3IgYmVsb3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgRm9yIHRoZXNlcyB0d28gZmdldHMgd2UgaGFuZGxlIHRoZSBlcnJvciBiZWxvdy4KCjIwMDctMTEtMjEgMTM6NDc6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE9ubHkgc2VuZCB1cHN0cmVhbSBldmVudHMgdXBzdHJlYW0uIEZpeGVzICM0OTg3NDYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6CgkgIE9ubHkgc2VuZCB1cHN0cmVhbSBldmVudHMgdXBzdHJlYW0uIEZpeGVzICM0OTg3NDYuCgoyMDA3LTExLTIxIDEzOjI3OjUwICswMDAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lio6IEFkZCBwcm9wZXJ0eSB0byBkaXNhYmxlIGhhbmRvZmYgc2lnbmFsIGVtaXNzaW9uLiBGaXhlcyAjNDk4Njk0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZSBhdCB5YWhvbyBkb3QgZnI+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCksCgkgIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgQWRkIHByb3BlcnR5IHRvIGRpc2FibGUgaGFuZG9mZiBzaWduYWwgZW1pc3Npb24uIEZpeGVzICM0OTg2OTQuCgkgIEFQSTogR3N0SWRlbnRpdHk6OnNpZ25hbC1oYW5kb2ZmcwoKMjAwNy0xMS0yMSAwOTo0Njo1MCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFlldCBhbm90aGVyIG1pc3NpbmcgbGlicmFyeSBmb3IgdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCAoZmZ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0yMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFlldCBhbm90aGVyIG1pc3NpbmcgbGlicmFyeSBmb3IgdGhlCgkgIHVuaW5zdGFsbGVkIHNjcmlwdCAoZmZ0KQoKMjAwNy0xMS0yMSAwMDoyNDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDogQWRkIGEgcXVlc3Rpb24gYWJvdXQgaG93IHRvIHN1Ym1pdCBuZXcgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgQWRkIGEgcXVlc3Rpb24gYWJvdXQgaG93IHRvIHN1Ym1pdCBuZXcgdHJhbnNsYXRpb25zLgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFVwZGF0ZSB0aGUgY29udGFjdCBlbWFpbCBhZGRyZXNzIGZvciB0aGUgVHJhbnNsYXRpb24gUHJvamVjdAoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgVGhlIHBhcmVudF9jbGFzcyBmb3IgZmRzcmMgaXMgcHVzaHNyYywgbm90IEdzdEVsZW1lbnQuCgoyMDA3LTExLTIwIDE2OjM0OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IFBsdWcgYSBsZWFrIGFuZCBmaXggc2F2aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFBsdWcgYSBsZWFrIGFuZCBmaXggc2F2aW5nLgoKMjAwNy0xMS0yMCAxNjoxMDoyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBnc3RfcHJlc2V0X19nZXRfcHJvcGVydHlfbmFtZXMoKSBmdW5jdGlvbiB0byB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGdzdF9wcmVzZXRfX2dldF9wcm9wZXJ0eV9uYW1lcygpIGZ1bmN0aW9uIHRvIHRoZSBkb2NzCgkgIHRvIGZpeCB0aGUgYnVpbGQuCgoyMDA3LTExLTIwIDE1OjQ2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0Lio6IENoYW5nZSBfZ2V0X3ByZXNldF9uYW1lcyBBUEkgdG8gcmV0dXJuIGEgc3RydiB3aXRoIGNvcGllcy4gQWRkIF9nZXRfcHJvcGVydHlfbmFtZXMgdG8gYWxsb3cgaW1wbGVtZW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQ2hhbmdlIF9nZXRfcHJlc2V0X25hbWVzIEFQSSB0byByZXR1cm4gYSBzdHJ2IHdpdGggY29waWVzLiBBZGQKCSAgX2dldF9wcm9wZXJ0eV9uYW1lcyB0byBhbGxvdyBpbXBsZW1lbnRhdGlvbnMgdG8gZmlsdGVyIGFuZCBwcm92aWRlCgkgIGdvb2QgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCjIwMDctMTEtMjAgMTE6NDY6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgYW5vdGhlciBsaWJyYXJ5IHRvIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgKHNkcCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTIwICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgYW5vdGhlciBsaWJyYXJ5IHRvIHRoZSB1bmluc3RhbGxlZAoJICBzY3JpcHQgKHNkcCkuCgoyMDA3LTExLTE5IDE1OjIzOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IE1vcmUgY2xlYW51cHMsIGRvY3MsIGFuZCBUT0RPcyBmcm9tIGNvbW1lbnRzIHRoYXQgbm93IHNsb3dseSBjb21lIGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIE1vcmUgY2xlYW51cHMsIGRvY3MsIGFuZCBUT0RPcyBmcm9tIGNvbW1lbnRzIHRoYXQgbm93IHNsb3dseSBjb21lIGluLgoKMjAwNy0xMS0xOSAxNDozODo0OSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBuZXcgYmFzZSBsaWJyYXJpZXMgaW4gdGhlIExEIHNlYXJjaCBwYXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIG5ldyBiYXNlIGxpYnJhcmllcyBpbiB0aGUgTEQKCSAgc2VhcmNoIHBhdGguCgoyMDA3LTExLTE5IDExOjU0OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEZpeCBib2d1cyB3YXJuaW5nIGFuZCBtYWtlIHRoZSBwcm9wZXJ0eSB0eXBlIHNwZWNpZmljIGNvZGUgbW9yZSBzaW1pbGFyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEZpeCBib2d1cyB3YXJuaW5nIGFuZCBtYWtlIHRoZSBwcm9wZXJ0eSB0eXBlIHNwZWNpZmljIGNvZGUgbW9yZQoJICBzaW1pbGFyLgoKMjAwNy0xMS0xOSAwOTozMzowNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IE1ha2UgaXQgYnVpbGQgb24gT1MgWC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMTkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6IChnc3RfcHJlc2V0X2RlZmF1bHRfY3JlYXRlX3ByZXNldCk6IE1ha2UKCSAgaXQgYnVpbGQgb24gT1MgWC4KCjIwMDctMTEtMTkgMDg6NTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENoYW5nZSBlbWFpbCwgY2xlYW51cHMgYWRkIHNvbWUgbW9yZSBkZWJ1ZyBhbmQgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgQ2hhbmdlIGVtYWlsLCBjbGVhbnVwcyBhZGQgc29tZSBtb3JlIGRlYnVnIGFuZCBjb21tZW50cy4KCSAgQWxzbyBzZXQgYnVzIGFuZCBjbG9jayBvbiBuZXcgZWxlbWVudHMgd2hlbiB0aGUgcGlwZWxpbmUgd2FzIGluIGVycm9yLgoKMjAwNy0xMS0xOCAxOTozMDoxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogRml4IGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4gRml4ZXMgIzQ5Nzg1OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEZpeCBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuIEZpeGVzICM0OTc4NTkuCgkgIFNwb3R0ZWQgYnkgU2FtZWVyIE5haWsuCgoyMDA3LTExLTE3IDE3OjUwOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuYzogTGl0dGxlIGRvY3VtZW50YXRpb24gaW1wcm92bWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIExpdHRsZSBkb2N1bWVudGF0aW9uIGltcHJvdm1lbnQuCgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBNb3JlIFRPRE8gY2xlYW51cHMuIFJlbW92ZSBjKysgY29tbWVudHMuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFkZCBUT0RPIGFuZCB1c2UgcXVhcmsgZnJvbSBzdGF0aWMgc3RyaW5nLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBVc2UgcXVhcmsgZnJvbSBzdGF0aWMgc3RyaW5nLgoKMjAwNy0xMS0xNyAxNzoyNDo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBBZGQgc29tZSBjb21tZW50cyBhbmQgVE9ET3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgQWRkIHNvbWUgY29tbWVudHMgYW5kIFRPRE9zLgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQWRkIHBhZGRpbmcgZm9yIGZ1dHVyZSBjaGFuZ2VzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgSW1wbGVtZW50IHRoZSBpZmFjZS4KCjIwMDctMTEtMTcgMTY6NDM6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCB0aGUgcHJlc2V0IGludGVyZmFjZSAoRml4ZXMgIzM5Njc3OSkuIERvIHNvbWUgZG9jIGNsZWFudXBzIGFsb25nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQWRkIHRoZSBwcmVzZXQgaW50ZXJmYWNlIChGaXhlcyAjMzk2Nzc5KS4gRG8gc29tZSBkb2MgY2xlYW51cHMgYWxvbmcuCgoyMDA3LTExLTE2IDAwOjIzOjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNSA9PT0KCjIwMDctMTEtMTYgMDA6MDc6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC4xNSwgIk9jdG9iZXIiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjE1ID09PQoJICAyMDA3LTExLTE1ICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjE1LCAiT2N0b2JlciIKCjIwMDctMTEtMTUgMjM6MzE6MTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMTEtMTQgMTI6MjQ6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6IENvbnZlcnQgbGluZSBlbmRpbmdzIGJhY2sgdG8gRE9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgQ29udmVydCBsaW5lIGVuZGluZ3MgYmFjayB0byBET1MuCgoyMDA3LTExLTEzIDExOjMwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogVXBkYXRlIGZhc3QgdGFncmVhZGluZyBkcmFmdCBhbmQgcGVyZm9ybWFuY2UgcHJvZmlsaW5nIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIFVwZGF0ZSBmYXN0IHRhZ3JlYWRpbmcgZHJhZnQgYW5kIHBlcmZvcm1hbmNlIHByb2ZpbGluZyBpZGVhcy4KCjIwMDctMTEtMDkgMTQ6MDU6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoZW4gdW5yZWZmaW5nIGEgYnVmZmVyIGJlY2F1c2UgaXQgY291bGQgY2F1c2UgYSBkZWFkbG9jayB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfbGFzdF9idWZmZXIpOgoJICBEb24ndCBob2xkIHRoZSBvYmplY3QgbG9jayB3aGVuIHVucmVmZmluZyBhIGJ1ZmZlciBiZWNhdXNlIGl0IGNvdWxkCgkgIGNhdXNlIGEgZGVhZGxvY2sgd2hlbiB0aGUgZmluYWxpemUgZnVuY3Rpb24gd2FudHMgdG8gZ3JhYiB0aGUgb2JqZWN0CgkgIGxvY2sgdG9vLiBGaXhlcyAjNDk1MTMzLgoKMjAwNy0xMS0wOSAxMTo1Njo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFsc28gYWNjdW11bGF0ZSB0aW1lIGNvcnJlY3RseSB3aGVuIGRvaW5nIHJldmVyc2UgcGxheWJhY2suIEZpeGVzICM0ODgyMDEsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIEFsc28gYWNjdW11bGF0ZSB0aW1lIGNvcnJlY3RseSB3aGVuIGRvaW5nIHJldmVyc2UgcGxheWJhY2suIEZpeGVzCgkgICM0ODgyMDEsCgkgIFdoZW4gY29udmVydGluZyB0byBydW5uaW5nIGFuZCBzdHJlYW0gdGltZSwgdXNlIGRlZmF1bHQgdmFsdWVzIGZvcgoJICBzdGFydC9zdG9wL3RpbWUvYWNjdW0gd2hlbiBjb21wYXJpbmcgZGlmZmVyZW50IGZvcm1hdHMuIEZpeGVzICM0OTQyNDUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIERvIHJ1bm5pbmcvc3RyZWFtIHRpbWUgaW4gVElNRSBmb3JtYXQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgMiBuZXcgdW5pdCB0ZXN0cyBmb3Igc2VnbWVudCBhY2N1bXVsYXRpb24uCgoyMDA3LTExLTA3IDE1OjUzOjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTW92ZSBnZXRlbnYoKSBiYWNrIGludG8gZ3N0X2luaXQsIHNvIGV2ZXJ5b25lIGNhbiBsaXZlIGhhcHBpbHkgZXZlciBhZnRlci4gTWFrZSBzdXJlIHRoZSBzeW1ib2wgaXNuJ3QgZXhwb3J0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAocHJpdl9nc3RfZHVtcF9kb3RfZGlyKSwgKGRlYnVnX2R1bXBfZWxlbWVudCksCgkgIChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZSk6CgkgIE1vdmUgZ2V0ZW52KCkgYmFjayBpbnRvIGdzdF9pbml0LCBzbyBldmVyeW9uZSBjYW4gbGl2ZSBoYXBwaWx5CgkgIGV2ZXIgYWZ0ZXIuIE1ha2Ugc3VyZSB0aGUgc3ltYm9sIGlzbid0IGV4cG9ydGVkIHRob3VnaC4KCjIwMDctMTEtMDYgMjM6MTc6MDkgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy4qOiBVcGRhdGUgZW51bSB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlICA8c2ViYXN0aWVuIG1vdXR0ZSBuZXQ+CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgVXBkYXRlIGVudW0gdHlwZXMuCgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFVwZGF0ZSB2czYgcHJvamVjdCBmaWxlcyAoIzQ5NDM0MykuCgoyMDA3LTExLTA2IDE3OjE4OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVuaWZ5IGZsdXNoaW5nIGNvZGUsIHJlbW92ZSBzb21lIG9sZCB1bmxvY2sgY29kZSB0aGF0IGlzIG5vIGxvbmdlciB1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIFVuaWZ5IGZsdXNoaW5nIGNvZGUsIHJlbW92ZSBzb21lIG9sZCB1bmxvY2sgY29kZSB0aGF0IGlzIG5vIGxvbmdlciB1c2VkLgoJICBUYWtlIHRoZSBzdHJlYW1pbmcgbG9jayB3aGVuIHNlZWtpbmcgdG8gYXZvaWQgcmFjZXMuIEZpeGVzICM0OTI3MjkuCgkgIEFkZGVkIHNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDctMTEtMDYgMTU6MTA6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IE1ha2UgIF9nc3RfZGlzYWJsZV9zZWd0cmFwIHN0YXRpYywgaXQncyBvbmx5IHVzZWQgaW4gZ3N0cGx1Z2luLmMgYW5kIHdlIGNhbiB1c2UgZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCgpIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoX2dzdF9kaXNhYmxlX3NlZ3RyYXApOgoJICBNYWtlICBfZ3N0X2Rpc2FibGVfc2VndHJhcCBzdGF0aWMsIGl0J3Mgb25seSB1c2VkIGluIGdzdHBsdWdpbi5jIGFuZAoJICB3ZSBjYW4gdXNlIGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQoKSB0aGVyZSBub3cgdGhhdCB3ZSBoYXZlIHRoYXQgQVBJLgoJICBNb3ZlIF9nc3RfZGVidWdfZHVtcF9kb3RfZGlyIGludG8gZ3N0ZGVidWd1dGlscy5jLCB0aGVyZSdzIG5vIHJlYXNvbgoJICB0byBkbyB0aGUgZ2V0ZW52IGhlcmUgKGFuZCBleHBvcnQgdGhlIHZhcmlhYmxlKS4KCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoZGVidWdfZHVtcF9lbGVtZW50KSwKCSAgKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlKSwgKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlX3dpdGhfdHMpOgoJICBEb24ndCB1c2UgVkxBcyB3aGljaCBpcyBhIEM5OWlzbSBhbmQgdGhyb3dzIG9mZiBNU1ZDICgjNDkzOTgzKS4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoX3ByaXZfZ3N0X2luZm9fc3RhcnRfdGltZSksIChfZ3N0X2RlYnVnX2luaXQpLAoJICAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgUmVuYW1lIF9nc3RfaW5mb19zdGFydF90aW1lIHRvIHByaXZfZ3N0X2luZm9fc3RhcnRfdGltZSBzbyBpdAoJICBkb2Vzbid0IGdldCBleHBvcnRlZCAod2FzIG5ldmVyIGluIGFueSBoZWFkZXIpLgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX2ZhdWx0X2hhbmRsZXJfc2V0dXApLAoJICAoZ3N0X3BsdWdpbl9sb2FkaW5nX211dGV4KToKCSAgTWFrZSBzdGF0aWMgbXV0ZXggZ3N0X3BsdWdpbl9sb2FkaW5nX211dGV4IHJlYWxseSBzdGF0aWMgKHdhcyBuZXZlcgoJICBpbiBhbnkgaGVhZGVyKSwgYW5kIHVzZSBnc3Rfc2VndHJhcF9pc19lbmFibGVkKCkgaW5zdGVhZCBvZgoJICBfZ3N0X2Rpc2FibGVfc2VndHJhcC4KCSAgKiBnc3QvZ3N0dHJhY2UuYzogKF9nc3RfdHJhY2VfZGVmYXVsdCk6CgkgIE1ha2UgbG9jYWwgX2dzdF90cmFjZV9kZWZhdWx0IHN0YXRpYyAod2FzIG5ldmVyIGluIGFueSBoZWFkZXIpLgoKMjAwNy0xMS0wNiAxNDo0MzoxNCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBtb3JlIG1pc3Npbmcgc3ltYm9scywgcmVtb3ZlIHNvbWUgZHVwbGljYXRlcywgYW5kIHNvcnQgYXMgdGhlICdzb3J0JyBjb21tYW5kIHNvcnRzIGl0IChwYXJ0aWFsbHkgZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBtb3JlIG1pc3Npbmcgc3ltYm9scywgcmVtb3ZlIHNvbWUgZHVwbGljYXRlcywgYW5kIHNvcnQKCSAgYXMgdGhlICdzb3J0JyBjb21tYW5kIHNvcnRzIGl0IChwYXJ0aWFsbHkgZml4ZXMgIzQ5Mzk4MykuCgoyMDA3LTExLTA2IDEyOjI4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogT25seSBjaGFuZ2UgdGhlIHN0YXRlIGNvb2tpZSBpZiBhIGRpZmZlcmVudCBzdGF0ZSB3YXMgc2V0IG9uIHRoZSBlbGVtZW50LiBTZWUgIzQ5MjcyOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgT25seSBjaGFuZ2UgdGhlIHN0YXRlIGNvb2tpZSBpZiBhIGRpZmZlcmVudCBzdGF0ZSB3YXMgc2V0IG9uIHRoZQoJICBlbGVtZW50LiBTZWUgIzQ5MjcyOS4KCjIwMDctMTEtMDYgMTE6NDE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogUmVtb3ZlIHVudXNlZCBhbmQgdW5pbml0aWFsaXNlZCB0eXBlIHZhcmlhYmxlcyB0aGF0IHdlcmUgc3RpbGwgZXhwb3J0ZWQgZm9yIHNvbWUgcmVhc29uICh0aGV5IHdlcmUgbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIFJlbW92ZSB1bnVzZWQgYW5kIHVuaW5pdGlhbGlzZWQgdHlwZSB2YXJpYWJsZXMgdGhhdCB3ZXJlIHN0aWxsCgkgIGV4cG9ydGVkIGZvciBzb21lIHJlYXNvbiAodGhleSB3ZXJlIG5ldmVyIGluIGFueSBoZWFkZXIgZmlsZXMKCSAgdGhvdWdoKS4KCjIwMDctMTEtMDYgMTA6MzM6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHRyeSB0byByZXBvcnQgYSAwIHBvc2l0aW9uIHdoZW4gd2UgZG9uJ3Qga25vdywgcmV0dXJuIC0xIGFuZCBGQUxTRSBpbnN0ZWFkLiBUaGlzIG0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgdHJ5IHRvIHJlcG9ydCBhIDAgcG9zaXRpb24gd2hlbiB3ZSBkb24ndCBrbm93LCByZXR1cm4gLTEgYW5kIEZBTFNFCgkgIGluc3RlYWQuIFRoaXMgbW9zdGx5IGhhcHBlbnMgd2hlbiB3ZSBhcmUgcHJlcm9sbGluZy4KCSAgTWFrZSBzdXJlIHdlIGNhbiByZXBvcnQgdGhlIHJpZ2h0IHBvc2l0aW9uIGJlZm9yZSB3ZSBwb3N0IHRoZSBBU1lOQ19ET05FCgkgIG1lc3NhZ2Ugc28gdGhhdCBhIG1lc3NhZ2UgaGFuZGxlciBjYW4gcXVlcnkgcG9zaXRpb24gd2l0aG91dCByYWNlcy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChzZW5kX2VvcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChhc3luY19kb25lX2hhbmRvZmYpLCAoYXN5bmNfZG9uZV9mdW5jKSwgKHNlbmRfYnVmZmVyKSwKCSAgKGFzeW5jX2RvbmVfZW9zX2Z1bmMpLCAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgQWRkIHR3byB0ZXN0cyBmb3IgdGhlIGFib3ZlLgoKMjAwNy0xMS0wNiAxMDoyMTowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1BSU5UQUlORVJTOiBVcGRhdGUgd2l0aCBuZXcgZW1haWwgYWRkcmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTUFJTlRBSU5FUlM6CgkgIFVwZGF0ZSB3aXRoIG5ldyBlbWFpbCBhZGRyZXNzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBzb21lIG1vcmUgaW5mbyBhYm91dCBmdXR1cmUgcGFkLWJsb2NrIGFuZCBuZWdvdGlhdGlvbiBjaGFuZ2VzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgQWRkIHNvbWUgaWRlYXMgYWJvdXQgYnVmZmVyaW5nIHJlcG9ydGluZy4KCjIwMDctMTEtMDYgMTA6MDE6MDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgU1BFQyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMsIGFsc28gYWRkIE1BSU5UQUlORVJTIGZpbGUgdG8gRVhUUkFfRElTVCwgdGhlIG9tbWlzc2lvbiBvZiB0aGlzIGNhdXNlIGEgd2VpcmQgUlAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBTUEVDIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcywgYWxzbyBhZGQgTUFJTlRBSU5FUlMgZmlsZSB0byBFWFRSQV9ESVNULCB0aGUgb21taXNzaW9uIG9mIHRoaXMgY2F1c2UgYSB3ZWlyZCBSUE0gYnVpbGQgZXJyb3Igb24gRkM4CgoyMDA3LTExLTA2IDAwOjU5OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzogRGlzYWJsZSBzaWxseSByYWN5IHRlc3QgdGhhdCBhbHdheXMgZmFpbHMgb24gdGhpcyBjb21iaW5hdGlvbiBvZiBDUFUgYW5kIGtlcm5lbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBEaXNhYmxlIHNpbGx5IHJhY3kgdGVzdCB0aGF0IGFsd2F5cyBmYWlscyBvbiB0aGlzIGNvbWJpbmF0aW9uIG9mIENQVQoJICBhbmQga2VybmVsLgoKMjAwNy0xMS0wNCAxMDoxNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IG1lbnRpb24gYnVnIG51bWJlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IG1lbnRpb24gYnVnIG51bWJlcgoKMjAwNy0xMS0wNCAxMDoxMzozMyArMDAwMCAgTXVycmF5IEN1bW1pbmcgPG11cnJheWNAbXVycmF5Yy5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IENvcnJlY3RlZCB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBwYXJlbnQtc2V0IGFuZCBwYXJlbnQtdW5zZXQgc2lnbmFsczogVGhlIHBhcmFtZXRlciBpcyBhIEdzdE9iamVjdCwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNdXJyYXkgQ3VtbWluZyAgPG11cnJheWNAbXVycmF5Yy5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBDb3JyZWN0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgcGFyZW50LXNldCBhbmQgcGFyZW50LXVuc2V0CgkgIHNpZ25hbHM6IFRoZSBwYXJhbWV0ZXIgaXMgYSBHc3RPYmplY3QsIG5vdCBhIEdPYmplY3QuCgoyMDA3LTExLTAyIDE4OjM1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTW92ZSBkZWNsYXJhdGlvbiBvZiBwcml2YXRlIF9nc3RfZm9vX2luaXRpYWxpemUoKSBmdW5jdGlvbnMgaW50byBvdXIgcHJpdmF0ZSBoZWFkZXIgZmlsZSB3aGVyZSB0aGV5IHNob3VsZCBoYXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgTW92ZSBkZWNsYXJhdGlvbiBvZiBwcml2YXRlIF9nc3RfZm9vX2luaXRpYWxpemUoKSBmdW5jdGlvbnMgaW50bwoJICBvdXIgcHJpdmF0ZSBoZWFkZXIgZmlsZSB3aGVyZSB0aGV5IHNob3VsZCBoYXZlIGJlZW4gYWxsIGFsb25nLgoKMjAwNy0xMS0wMiAxNzo0MzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGd0ay1kb2MgZml4ZXM7IHRyYWlsaW5nLWNvbW1hLWluLWVudW0gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgICogZ3N0L2dzdHhtbC5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZ3RrLWRvYyBmaXhlczsgdHJhaWxpbmctY29tbWEtaW4tZW51bSBmaXguCgoyMDA3LTExLTAyIDE2OjI3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDbGVhbiB1cCBvbiBkZWluaXQgKG5vdCB0aGUgZXh0ZXJuYWwgb25lcyB0aG91Z2gsIGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgZm9yIHNvbWUgcmVhc29uKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2RlaW5pdCk6CgkgIENsZWFuIHVwIG9uIGRlaW5pdCAobm90IHRoZSBleHRlcm5hbCBvbmVzIHRob3VnaCwgZG9lc24ndCBzZWVtIHRvIGJlCgkgIG5lZWRlZCBmb3Igc29tZSByZWFzb24pLgoKMjAwNy0xMS0wMSAyMzo1MTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IFJlbW92ZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgZm9yIE1TVkMgdGhhdCB3YXMgY29waWVkIG92ZXIgaW50byBjb3JlIGZyb20gYSBwbHVnaW4sIG9idmlvdXNseSB3aXRob3V0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOiAoR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTik6CgkgIFJlbW92ZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgZm9yIE1TVkMgdGhhdCB3YXMgY29waWVkIG92ZXIgaW50byBjb3JlCgkgIGZyb20gYSBwbHVnaW4sIG9idmlvdXNseSB3aXRob3V0IGV2ZXIgaGF2aW5nIGJlZW4gdGVzdGVkIChub3RlIHRoZQoJICBzaW5nbGUgdW5kZXJzY29yZSBpbiBfZGVjbHNwZWMgaW4gdGhlIGluaXRpYWwgY29tbWl0KSwgYW5kIHRoYXQgZG9lc24ndAoJICByZWFsbHkgbWFrZSBzZW5zZS4gIFNlZSAjNDkyMDc3LgoKMjAwNy0xMS0wMSAyMTo1MDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdfdHlwZV9jbGFzc19yZWYoKSBvdGhlciB0eXBlcyBhcyB3ZWxsLCBzZWUgIzM0OTQxMCBhbmQgIzY0NzY0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jIChnc3RfZHBfaW5pdCk6CgkgIGdfdHlwZV9jbGFzc19yZWYoKSBvdGhlciB0eXBlcyBhcyB3ZWxsLCBzZWUgIzM0OTQxMCBhbmQgIzY0NzY0LgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfaW5pdGlhbGl6ZSk6CgkgIFNpbXBsaWZ5IGV4aXN0aW5nIGdfdHlwZV9jbGFzc19yZWYoKS4KCjIwMDctMTEtMDEgMjA6MTA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Zm9ybWF0LmM6IGdfdHlwZV9jbGFzc19yZWYoKSBvdXIgR3N0Rm9ybWF0IHR5cGUgdG8gbWFrZSBzdXJlIHdlIGF2b2lkIHRoZSB0aHJlYWQtdW5zYWZlIGJpdHMgb2YgdGhlIEdPYmplY3QvR1QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoX2dzdF9mb3JtYXRfaW5pdGlhbGl6ZSk6CgkgIGdfdHlwZV9jbGFzc19yZWYoKSBvdXIgR3N0Rm9ybWF0IHR5cGUgdG8gbWFrZSBzdXJlIHdlIGF2b2lkIHRoZQoJICB0aHJlYWQtdW5zYWZlIGJpdHMgb2YgdGhlIEdPYmplY3QvR1R5cGUgc3lzdGVtLCBpZS4gYnVnICMzNDk0MTAgYW5kCgkgIGJ1ZyAjNjQ3NjQuIFNob3VsZCBmaXggaW50ZXJtaXR0ZW50IHRlZSB1bml0IHRlc3QgZmFpbHVyZXMgKCM0NzQ4MjMpLgoKMjAwNy0xMS0wMSAxOToxOToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiBTaW1wbGlmeSwgc2ltcGxpZnksIHNpbXBsaWZ5IC0gb3Igbm90LiAgUmV3cml0ZSB1bml0IHRlc3Qgbm90IHRvIHVzZSBnc3RfcGFyc2VfbGF1bmNoKCk7IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKHRlc3RfbnVtX2J1ZmZlcnMpOgoJICBTaW1wbGlmeSwgc2ltcGxpZnksIHNpbXBsaWZ5IC0gb3Igbm90LiAgUmV3cml0ZSB1bml0IHRlc3QKCSAgbm90IHRvIHVzZSBnc3RfcGFyc2VfbGF1bmNoKCk7IGFsbG93IE4gc3ViLXN0cmVhbXMuIEluY3JlYXNpbmcKCSAgdGhlIG51bWJlciBvZiBzdWItc3RyZWFtcyBzZWVtcyB0byByZXByb2R1Y2UgIzQ3NDgyMyBtb3JlIGVhc2lseS4KCjIwMDctMTAtMzEgMjI6MDE6MDMgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBGaXggYSBjb3VwbGUgb2YgbWlzc2luZyBpbmNsdWRlcyBmb3IgTVNWQzIwMDUgYW5kIGEgQzk5IGlzc3VlLiBBbHNvLCBzdGFydGluZyB3aXRoIDIuMTQuMCwgR0xpYiB3b24ndCBwcm92aWRlIGEgcGlwZSguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgIEZpeCBhIGNvdXBsZSBvZiBtaXNzaW5nIGluY2x1ZGVzIGZvciBNU1ZDMjAwNSBhbmQgYSBDOTkgaXNzdWUuIEFsc28sCgkgIHN0YXJ0aW5nIHdpdGggMi4xNC4wLCBHTGliIHdvbid0IHByb3ZpZGUgYSBwaXBlKCkgbWFjcm8gYW55IGxvbmdlciwKCSAgc28gdXNlIF9waXBlKCkgZGlyZWN0bHkgKCM0OTIwNzcpLgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzogKF90cmVhZGRpcik6CgkgIEFkZCBhIGNvdXBsZSBvZiBjYXN0cyB0byBtYWtlIGl0IGJ1aWxkIHdpdGhvdXQgd2FybmluZ3Mgd2l0aCBNU1ZDLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgc29tZSBtb3JlIHN5bWJvbHMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgoKMjAwNy0xMC0zMSAxODowODoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogVXNlIF9LRUVQIGFzIG1lcmdlIG1vZGUgcmF0aGVyIHRoYW4gX0tFRVBfQUxMLCBzbyB0YWdzIGFycml2aW5nIGluIGEgc2Vjb25kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApOgoJICBVc2UgX0tFRVAgYXMgbWVyZ2UgbW9kZSByYXRoZXIgdGhhbiBfS0VFUF9BTEwsIHNvIHRhZ3MKCSAgYXJyaXZpbmcgaW4gYSBzZWNvbmQgb3IgdGhpcmQgdGFnIG1lc3NhZ2UgYXJlIGFkZGVkIHRvCgkgIHRoZSB0YWcgbGlzdCBhcyB3ZWxsLgoKMjAwNy0xMC0zMSAxMzowMTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEl0cyAiU2luY2U6IiBhbmQgbm90ICJAU2luY2U6Ii4gQW5kIHJlbW92ZSBhbiBzdXBlcmZsb3VzIGNhc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBJdHMgIlNpbmNlOiIgYW5kIG5vdCAiQFNpbmNlOiIuIEFuZCByZW1vdmUgYW4gc3VwZXJmbG91cyBjYXN0LgoKMjAwNy0xMC0zMCAxODozMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBhIG5ldyBsYXN0LWJ1ZmZlciBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIHRoZSBsYXN0IGJ1ZmZlciB1c2VkIGluIGJhc2VzaW5rIGZvciBwcmVyb2xsIG9yIHJlbmRlcmluZy4gdXNlZnVsIGZvciBtYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9sYXN0X2J1ZmZlciksIChnc3RfYmFzZV9zaW5rX3NldF9sYXN0X2J1ZmZlciksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBhIG5ldyBsYXN0LWJ1ZmZlciBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIHRoZSBsYXN0IGJ1ZmZlciB1c2VkIGluCgkgIGJhc2VzaW5rIGZvciBwcmVyb2xsIG9yIHJlbmRlcmluZy4gdXNlZnVsIGZvciBtYWtpbmcgc25hcHNob3RzLgoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X2xhc3RfYnVmZmVyKCkKCSAgQVBJOiBHc3RCYXNlU2luazo6bGFzdC1idWZmZXIKCjIwMDctMTAtMjkgMTM6NDY6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEltcHJvdmUgYmluIGdyYXBoIGR1bXBpbmcsIGJ5IHVzaW5nIHRoZSBlbnZ2YXIgdG8gc3BlY2lmeSBhIHBhdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBJbXByb3ZlIGJpbiBncmFwaCBkdW1waW5nLCBieSB1c2luZyB0aGUgZW52dmFyIHRvIHNwZWNpZnkgYSBwYXRoLgoJICBSZW5hbWUgdGhlIGVudnZhciB0byBHU1RfREVCVUdfRFVNUF9ET1RfRElSLgoKMjAwNy0xMC0yOSAxMzoxMDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFBvc3Qgc3BlY2lhbCBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbid0IGRldGVybWluZSB0aGUgdHlwZSBvZiBhIHN0cmVhbSBiZWNhdXNlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBQb3N0IHNwZWNpYWwgZXJyb3IgbWVzc2FnZSBpZiB3ZSBjYW4ndCBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBzdHJlYW0KCSAgYmVjYXVzZSBpdCdzIGVtcHR5LgoKMjAwNy0xMC0yOSAxMDowNTo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9jdW1lbnQgbmV3IGVudi12YXIuIEFkZCBvbmUgbG9nLWxpbmUgYWZ0ZXIgZHVtcG5nIGEgZ3JhcGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIERvY3VtZW50IG5ldyBlbnYtdmFyLiBBZGQgb25lIGxvZy1saW5lIGFmdGVyIGR1bXBuZyBhIGdyYXBoLgoKMjAwNy0xMC0yNiAxODozOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVWdseSBoYWNrIHRvIHB1dCB0aGUgKHJlY2VudGx5IHJlbW92ZWQgYW5kIG5vbi1wb3J0YWJsZSwgYXBwYXJlbnRseSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVZ2x5IGhhY2sgdG8gcHV0IHRoZSAocmVjZW50bHkgcmVtb3ZlZCBhbmQgbm9uLXBvcnRhYmxlLCBhcHBhcmVudGx5KQoJICAtV2wsLS1leHBvcnQtZHluYW1pYyBiYWNrIGludG8gbGliZ3N0Y2hlY2sncyBMREZMQUdTIHdoZW4gd2UncmUgdXNpbmcKCSAgR05VIGxkLCBiZWNhdXNlIHdpdGhvdXQgdGhhdCAnbWFrZSBjaGVjaycgZmFpbHMgbWlzZXJhYmx5IG9uIG15IGRlYmlhbgoJICBzdGFibGUgYm94LiAgU29tZW9uZSB3aXRoIG1vcmUga25vd2xlZGdlIG9mIGxpbmtlciBpbnRyaWNhY2llcyBhbmQKCSAgcG9ydGFiaWxpdHkgaXNzdWVzIHRoYW4gbWUgZml4IHRoaXMgcHJvcGVybHkgcGxlYXNlLgoKMjAwNy0xMC0yNSAxNzoyMDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVzZXQgbGFzdCBzZWVuIHBvc2l0aW9uIGFmdGVyIGZsdXNoaW5nIHNvIHRoYXQgd2UgZG9uJ3QgcmVwb3J0IHRoZSBvbGQgcG9zaXRpb24gYW55bW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgIFJlc2V0IGxhc3Qgc2VlbiBwb3NpdGlvbiBhZnRlciBmbHVzaGluZyBzbyB0aGF0IHdlIGRvbid0IHJlcG9ydCB0aGUgb2xkCgkgIHBvc2l0aW9uIGFueW1vcmUuCgoyMDA3LTEwLTI1IDE2OjE5OjA1ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC86IFBhdGNoIGZyb20gQWxlc3NhbmRybyBEZWNpbmEgYWRkaW5nIGdldF90eXBlX2Z1bGwgYW5kIGdldF9wcm90b2NvbHNfZnVsbCBwcml2YXRlIHZmdW5jcyB0byB0aGUgVVJJSGFuZGxlciBpbnRlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIFBhdGNoIGZyb20gQWxlc3NhbmRybyBEZWNpbmEgYWRkaW5nIGdldF90eXBlX2Z1bGwgYW5kCgkgIGdldF9wcm90b2NvbHNfZnVsbCBwcml2YXRlIHZmdW5jcyB0byB0aGUgVVJJSGFuZGxlciBpbnRlcmZhY2UKCSAgdG8gYWxsb3cgYmluZGluZ3MgdG8gc3VwcG9ydCBjcmVhdGluZyBVUkkgaGFuZGxlcnMuCgkgIFBhcnRpYWxseSBmaXhlczogIzMzOTI3OQoJICBBUEk6IEdzdFVSSUhhbmRsZXJJbnRlcmZhY2U6OmdldF90eXBlX2Z1bGwKCSAgQVBJOiBHc3RVUklIYW5kbGVySW50ZXJmYWNlOjpnZXRfcHJvdG9jb2xzX2Z1bGwKCjIwMDctMTAtMjUgMTU6MTQ6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IE1ha2UgaXQgc28gdGhhdCBwYWRzIGFyZSBjb25zaWRlcmVkIGxpbmtlZCB1bnRpbCBhIGJ1ZmZlciBpcyBwdXNoZWQgYW5kIGRpc2NvdmVyZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGlfcXVldWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCk6CgkgIE1ha2UgaXQgc28gdGhhdCBwYWRzIGFyZSBjb25zaWRlcmVkIGxpbmtlZCB1bnRpbCBhIGJ1ZmZlciBpcyBwdXNoZWQKCSAgYW5kIGRpc2NvdmVyZWQgb3RoZXJ3aXNlLiBUaGlzIGF2b2lkcyBwcm9ibGVtcyB3aXRoIGRlY29kZWJpbjIgaGFuZ2luZwoJICBhZnRlciBhIHNlZWsgaW4gdGhlIGZpbGVzcmMgISBkZWNvZGViaW4yIG5hbWU9ZCAhIGZha2VzaW5rIGQuICEgZmFrZXNpbmsKCSAgY2FzZS4KCSAgTWFrZSBzdXJlIHdlIGxvY2sgdGhlIG11bHRpcXVldWUgd2hlbiB1cGRhdGluZyB0aGUgbWF4LXNpemUgcHJvcGVydGllcy4KCSAgRml4IGEgY3Jhc2ggb24gU29sYXJpcyBpbiBhIGRlYnVnIHN0YXRlbWVudCBpbiBnZXRfcmVxdWVzdF9wYWQgdGhhdAoJICBwYXNzZXMgYSBOVUxMIHN0cmluZyB0byBHU1RfREVCVUcuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXFfZHVtbXlwYWRfY2hhaW4pLAoJICAocnVuX291dHB1dF9vcmRlcl90ZXN0KToKCSAgRml4IHRoZSB0ZXN0IHRvIGFsbG93IHRoZSBmaXJzdCBidWZmZXIgb24gbm90LWxpbmtlZCBwYWRzIHRvIGNvbWUgb3V0CgkgIG9mIHNlcXVlbmNlIHdoaWxlIG11bHRpcXVldWUgZGlzY292ZXJzIHRoYXQgdGhleSBhcmUgbm90LWxpbmtlZC4KCjIwMDctMTAtMjUgMTQ6NTA6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgVXNlIGEgY3VzdG9tIGV4cG9ydCBzeW1ib2wgcmVnZXggZm9yIGxpYmdzdGNoZWNrLCBhcyBpdCBuZWVkcyB0byBleHBvcnQgc3ltYm9scyB0aGF0IGRvbid0IG1hdGNoIHRoZSBzdGFuZGFyZCBHU3RyZWFtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgVXNlIGEgY3VzdG9tIGV4cG9ydCBzeW1ib2wgcmVnZXggZm9yIGxpYmdzdGNoZWNrLCBhcyBpdCBuZWVkcwoJICB0byBleHBvcnQgc3ltYm9scyB0aGF0IGRvbid0IG1hdGNoIHRoZSBzdGFuZGFyZCBHU3RyZWFtZXIgZ3N0XyoKCSAgcGF0dGVybiwgYW5kICAtLWV4cG9ydC1keW5hbWljIGlzIG5vdCBwb3J0YWJsZSAob25seSB3b3JrcyBvbgoJICBHTlUgbGQpCgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCk6CgkgIE1ha2Ugc3VyZSB0byBwYXNzIGEgbWVzc2FnZSBwYXJhbWV0ZXIgdG8gdGhlIGZhaWxfKiBtYWNyb3MuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDA3LTEwLTI1IDE0OjQxOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBEaXNhYmxlIHRlc3QgdGhhdCBjaGVja3MgdGhhdCB3aGl0ZSBzcGFjZXMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cnVjdHVyZSBuYW1lcyBvciBmaWVsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKHRlc3RfdG9fc3RyaW5nKToKCSAgRGlzYWJsZSB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgd2hpdGUgc3BhY2VzIGFyZSBub3QgYWxsb3dlZAoJICBpbiBzdHJ1Y3R1cmUgbmFtZXMgb3IgZmllbGQgbmFtZXMsIHNpbmNlIHdlIG5lZWQgdG8KCSAgc3VwcG9ydCB0aGF0IGZvciBub3cgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMuCgoyMDA3LTEwLTI0IDEzOjEzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19BUlRJU1RfU09SVE5BTUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfQVJUSVNUX1NPUlROQU1FCgkgIEFQSTogYWRkIEdTVF9UQUdfQUxCVU1fU09SVE5BTUUKCSAgQVBJOiBhZGQgR1NUX1RBR19USVRMRV9TT1JUTkFNRQoJICBBZGQgdGFnIHZhcmlhbnRzIGZvciBzb3J0aW5nICgjNDE0NTM5KS4KCjIwMDctMTAtMjQgMTM6MDA6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFsc28gYWxsb3cgd2hpdGUgc3BhY2UgZm9yIG5hbWVzIHNvIHdlIGRvbid0IGJyZWFrIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFsc28gYWxsb3cgd2hpdGUgc3BhY2UgZm9yIG5hbWVzIHNvIHdlIGRvbid0IGJyZWFrCgkgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAwNy0xMC0yMiAxNTozNzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU21hbGwgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBTbWFsbCB1cGRhdGVzLgoKMjAwNy0xMC0yMiAxMTozMjoxNCArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4ZWQgZG9jdW1lbnRhdGlvbiBmcm9tIG15IHByZXZpb3VzIGNvbW1pdCAoYWRkZWQgbmV3IEFQSSBhZGQgZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZpeGVkIGRvY3VtZW50YXRpb24gZnJvbSBteSBwcmV2aW91cyBjb21taXQgKGFkZGVkIG5ldyBBUEkgYWRkCgkgIGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKCksIGFkZCBnc3RfdmFsdWVfZ2V0X3N0cnVjdHVyZSgpIGFuZAoJICBHU1RfVkFMVUVfSE9MRFNfU1RSVUNUVVJFKS4KCjIwMDctMTAtMjIgMTE6MTA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFJlZmxvdyBjb2RlIHRvIGZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFJlZmxvdyBjb2RlIHRvIGZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmcuCgoyMDA3LTEwLTIyIDA4OjUzOjI2ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJICBBZGRlZCBHc3RTdHJ1Y3R1cmUgdG8gZ3N0X3ZhbHVlX3RhYmxlIGFuZCBpdHMgcmVsYXRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpLAoJICAoZ3N0X2NhcHNfZnJvbV9zdHJpbmdfaW5wbGFjZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfYWJicnMpLAoJICAoZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcpLCAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2V0X3N0cnVjdHVyZSksCgkgIChnc3RfdmFsdWVfZ2V0X3N0cnVjdHVyZSksIChnc3RfdmFsdWVfc2VyaWFsaXplX3N0cnVjdHVyZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfc3RydWN0dXJlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZGVkIEdzdFN0cnVjdHVyZSB0byBnc3RfdmFsdWVfdGFibGUgYW5kIGl0cyByZWxhdGVkIGZ1bmN0aW9ucy4KCSAgQ2hhbmdlZCBnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyB0byBwcmludCAnOycgaW4gdGhlIGVuZC4KCSAgQ2hhbmdlZCBnc3RfY2Fwc190b19zdHJpbmcgdG8gbm90IHByaW50ICc7JyBiZXRld2VlbiBpdHMKCSAgZmllbGRzIChzdHJ1Y3R1cmVzKSBhbnltb3JlIGFuZCByZW1vdmUgdGhlIGxhc3RlcyAnOycgZnJvbSBsYXRlc3QKCSAgc3RydWN0dXJlLiBOb3cgaXQgaXMgcG9zc2libGUgdG8gaGF2ZSBuZXN0ZWQgc3RydWN0dXJlcy4KCSAgSW4gYWRkaXRpb24sIGJhY2t3YXJkIGNvbXBhdGliaWx0eSBpcyBhc3N1cmVkIGJ5IGFjY2VwdGluZyAnXDAnIGFzCgkgIGVuZCBkZWxpbWl0ZXIuIEZpeGVzOiAjNDg3OTY5LgoJICBBUEk6IGFkZCBnc3RfdmFsdWVfc2V0X3N0cnVjdHVyZSgpCgkgIEFQSTogYWRkIGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKCkKCjIwMDctMTAtMTkgMDk6NDg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IFdoZW4gbm8gR1NvdXJjZSBjYWxsYmFjayBoYXMgYmVlbiBzZXQgdXAsIHRlbGwgZGV2ZWxvcGVyIHRvIHVzZSBhIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgZXhpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIFdoZW4gbm8gR1NvdXJjZSBjYWxsYmFjayBoYXMgYmVlbiBzZXQgdXAsIHRlbGwgZGV2ZWxvcGVyCgkgIHRvIHVzZSBhIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgZXhpc3RzLgoKMjAwNy0xMC0xNyAxMjo1ODoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWxsb3cgZHVtcGluZyBwaXBlbGluZXMgYXMgZG90IGdyYXBocy4gRml4ZXMgIzQ1NjU3My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWxsb3cgZHVtcGluZyBwaXBlbGluZXMgYXMgZG90IGdyYXBocy4gRml4ZXMgIzQ1NjU3My4KCjIwMDctMTAtMTYgMjE6NDg6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFsbG93ICcrJyBhcyB3ZWxsLCBpdCBjYW4gYmUgcGFydCBvZiBtZWRpYSBvciBtaW1lIHR5cGVzIHN1Y2ggYXMgaW1hZ2Uvc3ZnK3htbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBbGxvdyAnKycgYXMgd2VsbCwgaXQgY2FuIGJlIHBhcnQgb2YgbWVkaWEgb3IgbWltZSB0eXBlcwoJICBzdWNoIGFzIGltYWdlL3N2Zyt4bWwuCgoyMDA3LTEwLTE2IDIwOjMwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2J1c19wb3BfZmlsdGVyZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBBUEk6IGFkZCBnc3RfYnVzX3BvcF9maWx0ZXJlZAoJICBBUEk6IGFkZCBnc3RfYnVzX3RpbWVkX3BvcF9maWx0ZXJlZAoJICBUd28gbmV3IGZ1bmN0aW9ucyBmb3Igd2FpdGluZyBmb3Igc3BlY2lmaWMgbWVzc2FnZSB0eXBlcyBvbiB0aGUKCSAgYnVzIGZvciBhIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZSB3aXRob3V0IGl0ZXJhdGluZyBhbnkgbWFpbgoJICBsb29wcyBvciBtYWluIGNvbnRleHRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgU29tZSB0ZXN0cyBmb3IgdGhlIG5ldyBmdW5jdGlvbnMuCgoyMDA3LTEwLTE2IDE3OjIxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogTWFrZSBndGstZG9jIGlnbm9yZSBzdHVmZiBpdCBzaG91bGQgaWdub3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBNYWtlIGd0ay1kb2MgaWdub3JlIHN0dWZmIGl0IHNob3VsZCBpZ25vcmUuCgoyMDA3LTEwLTE2IDE2OjEyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWxsb3cgcnVudGltZSBzZWxlY3Rpb24gb2YgdW5pdCB0ZXN0cyB0byBydW4gdmlhIHRoZSBHU1RfQ0hFQ0tTIGVudmlyb25tZW50IHZhcmlhYmxlICh0ZXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWxsb3cgcnVudGltZSBzZWxlY3Rpb24gb2YgdW5pdCB0ZXN0cyB0byBydW4gdmlhIHRoZSBHU1RfQ0hFQ0tTCgkgIGVudmlyb25tZW50IHZhcmlhYmxlICh0ZXN0IGNhc2UgZnVuY3Rpb24gbmFtZXMsIGNvbW1hLXNlcGFyYXRlZCkuCgoyMDA3LTEwLTE2IDEzOjU4OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXZlcnQgc2VyaWFsaXNhdGlvbiBjaGFuZ2UgYW5kIGNvbnN0cmFpbiBzdHJ1Y3R1cmUtbmFtZXMgYWZ0ZXIgY29uc2Vuc3VzIG9uIGlyYy4gVXBkYXRlIGFwaSBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgUmV2ZXJ0IHNlcmlhbGlzYXRpb24gY2hhbmdlIGFuZCBjb25zdHJhaW4gc3RydWN0dXJlLW5hbWVzIGFmdGVyCgkgIGNvbnNlbnN1cyBvbiBpcmMuIFVwZGF0ZSBhcGkgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0IHRoZSBjaGFuZ2UuCgoyMDA3LTEwLTE2IDA2OjMyOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEltcHJvdmUgc2VyaWFsaXphdGlvbiBhbmQgZml4IHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEltcHJvdmUgc2VyaWFsaXphdGlvbiBhbmQgZml4IHRlc3RzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWRkIGFub3RoZXIgdGVzdCB0aGF0IGNvdmVycyB3aHkgSSBhY3R1YWxseSBkaWQgdGhlIHByZXZpb3VzIHN0cnVjdHVyZQoJICBjaGFuZ2UuCgoyMDA3LTEwLTE1IDE0OjMzOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRG9uJ3QgY3Jhc2ggd2hlbiBpbnNwZWN0aW5nIGFuIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBEb24ndCBjcmFzaCB3aGVuIGluc3BlY3RpbmcgYW4gZWxlbWVudC4KCjIwMDctMTAtMTUgMTE6NTg6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IEFkZCB1bml0IHRlc3QgZm9yIGVzY2FwaW5nIG9mIHN0cnVjdHVyZSBuYW1lIHdoZW4gc2VyaWFsaXNpbmcgYW5kIGRlc2VyaWFsaXNpbmcgdG8vZnIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBlc2NhcGluZyBvZiBzdHJ1Y3R1cmUgbmFtZSB3aGVuIHNlcmlhbGlzaW5nCgkgIGFuZCBkZXNlcmlhbGlzaW5nIHRvL2Zyb20gc3RyaW5ncy4KCjIwMDctMTAtMTUgMTE6MzY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBJZiBhY2NlcHRjYXBzIHVuY29uZGl0aW9uYWxseSByZXR1cm5zIFRSVUUsIHVwc3RyZWFtIGlzIHRyaWNrZWQgaW50byB0aGlua2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggcXVldWUgbmVnb3RpYXRpb24uIElmIGFjY2VwdGNhcHMgdW5jb25kaXRpb25hbGx5IHJldHVybnMgVFJVRSwKCSAgdXBzdHJlYW0gaXMgdHJpY2tlZCBpbnRvIHRoaW5raW5nIGl0IGNhbiBzdWdnZXN0IGEgZm9ybWF0IGRvd25zdHJlYW0KCSAgd2hpbGUgZG93bnN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IHRoYXQgZm9ybWF0LiBUaGUgcmVhbCBwcm9ibGVtIGlzIHRoYXQKCSAgY29yZSBjYWxscyBhY2NlcHRjYXBzIHdoZW4gcHVzaGluZyBhIGJ1ZmZlciB3aXRoIG5ldyBjYXBzLCBmb3Igd2hpY2ggd2UKCSAgZG8gYSBsaXR0bGUgd29ya2Fyb3VuZCBieSBzZXR0aW5nIHRoZSBjYXBzIG9uIHRoZSBzcmNwYWQgb3Vyc2VsdmVzCgkgIGJlZm9yZSBwdXNoaW5nIHRoZSBidWZmZXIgKHVudGlsIHRoaXMgaXMgZmlndXJlZCBvdXQpLiBGaXhlcyAjNDg2NzU4LgoKMjAwNy0xMC0xNSAxMToxOTozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogQWRkIHNvbWUgbW9yZSBjb21tZW50cyBhbmQgZGVidWcgb3V0cHV0LiBRdW90ZSBzdHJ1Y3R1cmUgbmFtZSB0byBmaXggZGVzZXJpYWxpc2F0aW9uIG9mIHNvbWUgc3RyaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBvdXRwdXQuIFF1b3RlIHN0cnVjdHVyZSBuYW1lIHRvIGZpeAoJICBkZXNlcmlhbGlzYXRpb24gb2Ygc29tZSBzdHJpbmdzLgoKMjAwNy0xMC0xNSAwNzozNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBEZWZpbmUgR1NUX0JVRkZFUl9GTEFHX0dBUCBtb3JlIHN0cmljdGx5IHRvIGVuYWJsZSBvcHRpbWl6YXRpb25zIGJhc2VkIG9uIGl0LiBGaXggZG9jcyBmb3IgR1NUX0JVRkZFLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRGVmaW5lIEdTVF9CVUZGRVJfRkxBR19HQVAgbW9yZSBzdHJpY3RseSB0byBlbmFibGUgb3B0aW1pemF0aW9ucyBiYXNlZAoJICBvbiBpdC4gRml4IGRvY3MgZm9yIEdTVF9CVUZGRVJfTUFMTE9DREFUQSBhbmQgR3N0QnVmZmVyLm1hbGxvY19kYXRhLgoKMjAwNy0xMC0xNSAwNzoxMTowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogU2F2ZSBhcHByb3guIDQwMCAxIGJ5dGUgYWxsb2NzIHdoZW4gcHJpbnRpbmcuIFVzZSBBUEkgdG8gYWNjZXMgZWxlbWVudCBkZXRhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBTYXZlIGFwcHJveC4gNDAwIDEgYnl0ZSBhbGxvY3Mgd2hlbiBwcmludGluZy4gVXNlIEFQSSB0byBhY2NlcyBlbGVtZW50CgkgIGRldGFpbHMuCgkgICogdG9vbHMvZ3N0LXJ1bi5jOgoJICBBdm9pZCBhIHN0cmR1cC4KCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBVc2UgQVBJIHRvIGFjY2VzIGVsZW1lbnQgZGV0YWlscy4KCjIwMDctMTAtMTUgMDY6NTI6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCBzb21lIHNwZWxsaW5nIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzLgoKMjAwNy0xMC0xNCAxNTo1NDowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ29ycmVjdGx5IHNldCB0aGUgbmV4dCBzdGF0ZSBpZiBhbGwgb2Ygb3VyIGFzeW5jIGNoaWxkcmVuIGNvbW1pdGVkIHRoZWlyIHN0YXRlLiBUaGlzIG1ha2VzIHN1cmUgd2UgY2FuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX2RvbmUpOgoJICBDb3JyZWN0bHkgc2V0IHRoZSBuZXh0IHN0YXRlIGlmIGFsbCBvZiBvdXIgYXN5bmMgY2hpbGRyZW4gY29tbWl0ZWQgdGhlaXIKCSAgc3RhdGUuIFRoaXMgbWFrZXMgc3VyZSB3ZSBjYW4gYWN0dWFsbHkgY2FuY2VsIHRoZSBzdGF0ZSBjaGFuZ2UgaW4KCSAgcHJvZ3Jlc3MuIEZpeGVzIGEgcmVncmVzc2lvbiBpbiBSaHl0aG1ib3ggd2hlbiBzZWVraW5nLgoKMjAwNy0xMC0xMyAxNzo0MzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3Qgc2hhZG93IGxvY2FsIHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIERvbid0IHNoYWRvdyBsb2NhbCB2YXJpYWJsZS4KCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBEb24ndCBzaGFkb3cgZ2xvYmFsIGZ1bmN0aW9uIG5hbWUuCgoyMDA3LTEwLTEzIDE3OjIwOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogVXNlIGFscmVhZHktaW50ZXJuZWQgc3RyaW5nIGZvciB0aGUgcHJpdmF0ZSBHc3RQbHVnaW5GZWF0dXJlIHBsdWdpbl9uYW1lIGZpZWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIFVzZSBhbHJlYWR5LWludGVybmVkIHN0cmluZyBmb3IgdGhlIHByaXZhdGUgR3N0UGx1Z2luRmVhdHVyZQoJICBwbHVnaW5fbmFtZSBmaWVsZC4KCjIwMDctMTAtMTAgMjI6NDM6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IEFQSSB0byBkb2NzOyBmaXhlcyB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGRvY3M7IGZpeGVzIHRoZSBidWlsZC4KCjIwMDctMTAtMTAgMTU6MTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZCBmdW5jdGlvbiB0byB3YWl0IGZvciBFT1MsIHN1YmNsYXNzZXMgY2FuIHVzZSB0aGlzIHRvIGNvcnJlY3RseSB3YWl0IGZvciBkZXZpY2VzIHRvIGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGluc3BpcmVkIGJ5OiBCZW5vaXQgRm91ZXQgPGJlbm9pdCBkb3QgZm91ZXQgYXQgcHVycGxlbGFicyBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgZnVuY3Rpb24gdG8gd2FpdCBmb3IgRU9TLCBzdWJjbGFzc2VzIGNhbiB1c2UgdGhpcyB0byBjb3JyZWN0bHkgd2FpdAoJICBmb3IgZGV2aWNlcyB0byBkcmFpbiBiZWZvcmUgcGVyZm9ybWluZyB0aGUgRU9TIGxvZ2ljLiBGaXhlcyAjNDg1MzQzLgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MoKQoKMjAwNy0xMC0xMCAxMDo1MzozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uaDogQ2FzdCBkZXNjcmlwdGlvbiBzdHJpbmcgY29uc3RhbnRzIGluIEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcyB0byBhIChnY2hhciopIHRvIG1ha2UgQysrIGNvZGUgdXNpbmcgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIENhc3QgZGVzY3JpcHRpb24gc3RyaW5nIGNvbnN0YW50cyBpbiBHU1RfUExVR0lOX0RFRklORSBtYWNyb3MKCSAgdG8gYSAoZ2NoYXIqKSB0byBtYWtlIEMrKyBjb2RlIHVzaW5nIHRoZXNlIG1hY3JvcyBjb21waWxlCgkgIHdpdGhvdXQgd2FybmluZyB3aXRoIGcrKy00LjIgKHNlZSAjNDYyNzM3KS4gIEV2ZW4gaWYgc2xpZ2h0bHkKCSAgdWdseSwgdGhpcyBzZWVtcyBwcmVmZXJhYmxlIHRvIHB1dHRpbmcgdGhlIGRlc2NyaXB0aW9uIHN0cmluZ3MKCSAgaW50byB0aGUgR0xpYiBxdWFyayB0YWJsZSBvciBtYWtpbmcgdGhlIHN0cnVjdHVyZSBtZW1iZXIgYQoJICBjb25zdCBnY2hhciAqIGFuZCBkb2luZyBjYXN0cyBpbiBjb3JlIGNvZGUgdGhhdCBhbGxvY3MgYW5kCgkgIGZyZWVzIHRoZXNlIHN0cmluZ3MsIG9yIHJlcXVpcmluZyBhIGNhc3QgaW4gdGhlIEMrKyBjb2RlLgoKMjAwNy0xMC0wOSAyMDo0NToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IFVzZSBfX0ZVTkNUSU9OX18gaW5zdGVhZCBvZiBfX1BSRVRUWV9GVU5DVElPTl9fLCBpdCdzIHNpbGx5IHRvIHByaW50IHRoZSBlbnRpcmUgY2xhc3MvZnVuY3Rpb24gc2lnbmF0dS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBVc2UgX19GVU5DVElPTl9fIGluc3RlYWQgb2YgX19QUkVUVFlfRlVOQ1RJT05fXywgaXQncyBzaWxseQoJICB0byBwcmludCB0aGUgZW50aXJlIGNsYXNzL2Z1bmN0aW9uIHNpZ25hdHVyZSBpbnRvIHRoZSBsb2cKCSAgZmlsZSBmb3IgQysrIGNvZGUuICBUaGlzIG9ubHkgYWZmZWN0cyBDKysgY29kZSwgZm9yIEMgY29kZQoJICBldmVyeXRoaW5nIHJlbWFpbnMgdGhlIHNhbWUuCgoyMDA3LTEwLTA5IDE2OjIwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBXb3JrIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBwaXBlbGluZXMgY29udGFpbmluZyAoc2VtaSlsb29wcyB1bnRpbCBhIHByb3BlciwgbW9yZSBjb21wbGljYXRlZCBzb2x1dGlvbiBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKHJlbW92ZV9mcm9tX3F1ZXVlKToKCSAgV29yayBhcm91bmQgYSBwcm9ibGVtIHdpdGggcGlwZWxpbmVzIGNvbnRhaW5pbmcgKHNlbWkpbG9vcHMgdW50aWwgYQoJICBwcm9wZXIsIG1vcmUgY29tcGxpY2F0ZWQgc29sdXRpb24gaXMgcmVhZHkuIFNlZSAjNDc1NDU1LgoKMjAwNy0xMC0wOSAxNDoxODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFB1dCBtb3JlIHN0cmluZ3MgaW50byB0aGUgR0xpYiBxdWFyayB0YWJsZS4gTm8gbmVlZCB0byBrZWVwIGEgaHVuZHJlZC1zb21ldGhpbmcgY29waWVzIG9mIGlkZW50aWNhbCB2ZXJzaW9uIHN0ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBQdXQgbW9yZSBzdHJpbmdzIGludG8gdGhlIEdMaWIgcXVhcmsgdGFibGUuIE5vIG5lZWQgdG8ga2VlcAoJICBhIGh1bmRyZWQtc29tZXRoaW5nIGNvcGllcyBvZiBpZGVudGljYWwgdmVyc2lvbiBzdHJpbmdzLAoJICBsaWNlbnNlIHN0cmluZ3MsIHBhY2thZ2UgbmFtZSBzdHJpbmdzIGFuZCBwYWNrYWdlIG9yaWdpbgoJICBzdHJpbmdzIGFyb3VuZC4KCjIwMDctMTAtMDkgMTA6NDE6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRG9uJ3QgaW1wbHkgdGhhdCBpdCdzIG9rYXkgdG8gdW5jb25kaXRpb25hbGx5IGNoYW5nZSBidWZmZXIgZGF0YSBvciBidWZmZXIgbWV0YWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIERvbid0IGltcGx5IHRoYXQgaXQncyBva2F5IHRvIHVuY29uZGl0aW9uYWxseSBjaGFuZ2UKCSAgYnVmZmVyIGRhdGEgb3IgYnVmZmVyIG1ldGFkYXRhIGluIGEgcGFkIHByb2JlIGNhbGxiYWNrLAoJICBhbmQgYSBidW5jaCBvZiBvdGhlciBjb21tZW50cy4gRml4ZXMgIzQzMDAzMS4KCjIwMDctMTAtMDggMjA6NDU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBVcGRhdGUgZ2VuZXJhdGVkIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFVwZGF0ZSBnZW5lcmF0ZWQgZmlsZXMuCgoyMDA3LTEwLTA4IDE3OjU5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogUHJlZml4IHNlY3Rpb24gd2l0aCBicm9rZW4gY29kZSB3aXRoIGEgd2FybmluZyAoc2VlICMzNDI0MzIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBQcmVmaXggc2VjdGlvbiB3aXRoIGJyb2tlbiBjb2RlIHdpdGggYSB3YXJuaW5nIChzZWUgIzM0MjQzMikuCgoyMDA3LTEwLTA4IDE3OjI2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBDYWxsIGdfdGhyZWFkX2luaXQoKSBiZWZvcmUgZ19vcHRpb25fY29udGV4dF9uZXcoKSB0byBhdm9pZCB3YXJuaW5ncy4gU3BvdHRlZCBieSBSaXRlc2ggS2hhZGdhcmF5LiBGaXhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkgIENhbGwgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBnX29wdGlvbl9jb250ZXh0X25ldygpIHRvCgkgIGF2b2lkIHdhcm5pbmdzLiBTcG90dGVkIGJ5IFJpdGVzaCBLaGFkZ2FyYXkuIEZpeGVzICM0ODQyMjUuCgoyMDA3LTEwLTA4IDE3OjA1OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIHdlIHJlY2VpdmVkIEVPUyBhbmQgYXJlIHdhaXRpbmcgZm9yIHdoZW4gdG8gcG9zdCB0aGUgRU9TIG1lc3NhZ2UsIG91ciBzdGF0ZSBpcyBwcmVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKToKCSAgV2hlbiB3ZSByZWNlaXZlZCBFT1MgYW5kIGFyZSB3YWl0aW5nIGZvciB3aGVuIHRvIHBvc3QgdGhlIEVPUyBtZXNzYWdlLAoJICBvdXIgc3RhdGUgaXMgcHJlcm9sbGVkIGFuZCB3ZSBzaG91bGQgbm90IHJldHVybiBBU1lOQy4KCSAgUmVvcmdhbml6ZSBzb21lIGNvZGUgcGF0aHMgdG8gaW1wbGVtZW50IHRoaXMgYmVoYXZpb3IuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoc2VuZF9lb3MpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCB0byB2ZXJpZnkgYWJvdmUgRU9TIGZpeC4KCjIwMDctMTAtMDggMTA6Mjg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBNb3ZlIGRldGVjdGluZyB0aGUgaW5wdXQgY2FwcyBvZiB0aGUgc2lua3BhZCB0byB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NldGNhcHMpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTW92ZSBkZXRlY3RpbmcgdGhlIGlucHV0IGNhcHMgb2YgdGhlIHNpbmtwYWQgdG8gdGhlIHNldGNhcHMgZnVuY3Rpb24uCgkgIFRoaXMgYWxsb3dzIHVzIHRvIHVwZGF0ZSB0aGUgb3V0cHV0IGNhcHMgd2hlbiB3ZSByZWNlaXZlIG5ldyBpbnB1dCBjYXBzCgkgIGluc3RlYWQgb2YgYWx3YXlzIHVzaW5nIHRoZSBmaXJzdCBkZXRlY3RlZCBjYXBzLgoKMjAwNy0xMC0wOCAxMDoyMToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdHJ5IHRvIHByZXJvbGwgbm9uLWFzeW5jIGVsZW1lbnRzIGFmdGVyIGEgZmx1c2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBEb24ndCB0cnkgdG8gcHJlcm9sbCBub24tYXN5bmMgZWxlbWVudHMgYWZ0ZXIgYSBmbHVzaC4KCSAgU3VidHJhY3QgbGF0ZW5jeSBmb3JtIGNsb2NrIHRpbWVzIHdoZW4gcmVwb3J0aW5nIHBvc2l0aW9uLgoKMjAwNy0xMC0wNSAxNDo0NDoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGNvbW1lbnQgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BhdXNlX3Rhc2spOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTbWFsbCBjb21tZW50IGFuZCBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KCjIwMDctMTAtMDUgMTQ6NDA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUmV3b3JrIHRoZSBsb2NraW5nIG9mIGJhc2VzcmMgaW4gYSBzaW1pbGFyIGZhc2hpb24gdG8gYmFzZXNpbmsuIFdlIGJhc2ljYWxseSBoYXZlIG9uZSBsb2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfbGl2ZSksIChnc3RfYmFzZV9zcmNfaXNfbGl2ZSksCgkgIChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwgKGdzdF9iYXNlX3NyY193YWl0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3VubG9jayksIChnc3RfYmFzZV9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksIChnc3RfYmFzZV9zcmNfc2V0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFJld29yayB0aGUgbG9ja2luZyBvZiBiYXNlc3JjIGluIGEgc2ltaWxhciBmYXNoaW9uIHRvIGJhc2VzaW5rLiBXZQoJICBiYXNpY2FsbHkgaGF2ZSBvbmUgbG9jayAoTElWRV9MT0NLKSBwcm90ZWN0aW5nIHRoZSBkYXRhZmxvdy4gVGhpcyBhbGxvd3MKCSAgdXMgdG8gaGFuZGxlIGxpdmUgc291cmNlcyBhbmQgc2VtaSBsaXZlIG9uZXMgbXVjaCBiZXR0ZXIuCgkgIFNpbXBsaWZ5IGZsdXNoaW5nLgoJICBGaXggdW5sb2NraW5nIHdoZW4gc2Vla2luZywgc2h1dHRpbmcgZG93biBhbmQgcGF1c2luZyBpbiBsaXZlIHNvdXJjZXMuCgoyMDA3LTEwLTA1IDExOjUyOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogRml4IGNvbXBpbGF0aW9uIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAocnVuX3BpcGVsaW5lKToKCSAgRml4IGNvbXBpbGF0aW9uIGFnYWluLgoKMjAwNy0xMC0wMyAxNToyNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVXNlIG1lYW5pbmdmdWwgY2F0ZWdvcmllcyBmb3IgdGhlIGxvZ3MgdG8gY2xlYW4gdGhlIGRlZmF1bHQgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBVc2UgbWVhbmluZ2Z1bCBjYXRlZ29yaWVzIGZvciB0aGUgbG9ncyB0byBjbGVhbiB0aGUgZGVmYXVsdCBvbmUuCgoyMDA3LTEwLTAzIDE1OjA1OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgoyMDA3LTEwLTAzIDE1OjAyOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDogQWRkIHNvbWUgbW9yZSB0aG91Z2h0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIEFkZCBzb21lIG1vcmUgdGhvdWdodHMuCgoyMDA3LTEwLTAzIDE0OjUxOjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgoyMDA3LTEwLTAzIDEyOjA1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFNwZWVkdXAgdHlwZWZpbmRpbmcuIFRoaXMgaXMgd29yayBpbiBwcm9ncmVzcyAoc2VlICM0NTk4NjIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIFNwZWVkdXAgdHlwZWZpbmRpbmcuIFRoaXMgaXMgd29yayBpbiBwcm9ncmVzcyAoc2VlICM0NTk4NjIpLgoKMjAwNy0xMC0wMyAxMTozNjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBGaXggZG9jcyB0aGF0IG1lbnRpb24gJ3BsdWdpbl9kZXNjJyBpbnN0ZWFkIG9mICdnc3RfcGx1Z2luX2Rlc2MnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEZpeCBkb2NzIHRoYXQgbWVudGlvbiAncGx1Z2luX2Rlc2MnIGluc3RlYWQgb2YgJ2dzdF9wbHVnaW5fZGVzYycuCgkgIFNwb3R0ZWQgYnkgSm9zZXAgVG9ycmEgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4uCgoyMDA3LTEwLTAzIDExOjE2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNsb2NrLmg6IEZpeCB1cCBicm9rZW4gR1NUX0NMT0NLX0ZMQUdTIG1hY3JvIGFuZCBHc3RDbG9jayBkb2NzLiBUaGUgZmxhZ3MgZmllbGQgaGFzIG1vdmVkIHRvIEdzdE9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCB1cCBicm9rZW4gR1NUX0NMT0NLX0ZMQUdTIG1hY3JvIGFuZCBHc3RDbG9jayBkb2NzLiBUaGUgZmxhZ3MKCSAgZmllbGQgaGFzIG1vdmVkIHRvIEdzdE9iamVjdC4KCjIwMDctMTAtMDIgMTU6MjA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2FsbCB1bmxvY2sgZm9yIGxpdmUgc291cmNlcyBzbyB0aGF0IHRoZXkgY2FuJ3QgZ2V0IHN0dWNrIGluIF9jcmVhdGUgYW5kIHByb2R1Y2UgYSBidWZmZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBDYWxsIHVubG9jayBmb3IgbGl2ZSBzb3VyY2VzIHNvIHRoYXQgdGhleSBjYW4ndCBnZXQgc3R1Y2sgaW4gX2NyZWF0ZSBhbmQKCSAgcHJvZHVjZSBhIGJ1ZmZlciBiZWZvcmUgdGhleSBhcmUgc2V0IGJhY2sgdG8gUExBWUlORy4KCjIwMDctMTAtMDIgMDk6MjE6NDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IENvbW1lbnQgdGhlIHNlZ21lbnQtcmVsYXRlZCBjb2RlLi4uIGluIHRoZSBQUk9QRVIgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksCgkgIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpOgoJICBDb21tZW50IHRoZSBzZWdtZW50LXJlbGF0ZWQgY29kZS4uLiBpbiB0aGUgUFJPUEVSIGZ1bmN0aW9uLgoJICBTZWUgIzQ4MjE0NyBhbmQgbXkgY29tbWl0IGZyb20geWVzdGVyZGF5LgoKMjAwNy0xMC0wMSAxNzo1OToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbHNvIGluaXRpYWxpemUgdGhlIGNvdW50ZXIgdGhhdCBjYWxjdWxhdGVzIHRoZSBmaXJzdCB0aW1lc3RhbXAgb24gYSBidWZmZXIgY29ycmVjdGx5IGZvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBBbHNvIGluaXRpYWxpemUgdGhlIGNvdW50ZXIgdGhhdCBjYWxjdWxhdGVzIHRoZSBmaXJzdCB0aW1lc3RhbXAgb24gYQoJICBidWZmZXIgY29ycmVjdGx5IGZvciBub24tbGl2ZSBzb3VyY2VzLgoKMjAwNy0xMC0wMSAxMjozMToyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRGlzYWJsZSBjb2RlIHRoYXQncyBicmVha2luZyB0aGUgY3VycmVudC10aW1lLWxldmVsIHJlcG9ydGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKToKCSAgRGlzYWJsZSBjb2RlIHRoYXQncyBicmVha2luZyB0aGUgY3VycmVudC10aW1lLWxldmVsIHJlcG9ydGluZy4KCSAgU2VlICM0ODIxNDcKCjIwMDctMDktMzAgMTg6MTY6MzQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBNX1BJIGFuZCBJTVBPUlRfU1lNQk9MIHRvIHRoZSBwcml2YXRlIHBhcnQgb2YgdGhlIEdzdEluZm8gc2VjdGlvbiBhcyB0aGV5IHNob3VsZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgTV9QSSBhbmQgSU1QT1JUX1NZTUJPTCB0byB0aGUgcHJpdmF0ZSBwYXJ0IG9mIHRoZSBHc3RJbmZvIHNlY3Rpb24KCSAgYXMgdGhleSBzaG91bGRuJ3Qgc2hvdyB1cC4gRml4ZXMgdGhlIGRvY3MgYnVpbGQuCgoyMDA3LTA5LTI5IDExOjQ2OjMxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBBZGQgYW4gZXhwbGljaXQgdmFyaWFibGUgaW1wb3J0YXRpb24gbmVlZGVkIG9uIFZTNiAob25seSBmb3IgTVNDX1ZFUikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQWRkIGFuIGV4cGxpY2l0IHZhcmlhYmxlIGltcG9ydGF0aW9uIG5lZWRlZCBvbiBWUzYgKG9ubHkgZm9yIE1TQ19WRVIpCgkgIERlZmluZSBNX1BJIHdoaWNoIGlzIHVzZWQgaW4gZmlsZXMgd2hpY2ggYXJlIGluY2x1ZGluZyBnc3RpbmZvLmguCgkgIFZTNiBpbmNsdWRlcyBkb2Vzbid0IGRlZmluZSBpdC4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVXBkYXRlIHRoZSBsaXN0IG9mIGZpbGVzIHRvIGJ1aWxkLgoKMjAwNy0wOS0yOCAxMDoyMjo0MCArMDAwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEltcHJvdmUgZGVidWdnaW5nLiBGaXhlcyAjNDgwODU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZSBkb3QgY29udHJlcmFzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLiBGaXhlcyAjNDgwODU4LgoKMjAwNy0wOS0yOCAxMDoxNToyMyArMDAwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEZpcnN0IHBhdGNoIG9mIGNvZGUgY2xlYW51cHMsIHVzZSB0aGUgbWFjcm9zIGFuZCByaWdodCBhcmd1bWVudHMgaW4gdGhlIG1hY3JvcyB0byBzaWduYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUgZG90IGNvbnRyZXJhcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpcnN0IHBhdGNoIG9mIGNvZGUgY2xlYW51cHMsIHVzZSB0aGUgbWFjcm9zIGFuZCByaWdodCBhcmd1bWVudHMgaW4gdGhlCgkgIG1hY3JvcyB0byBzaWduYWwgYW5kIGxvY2sgdGhlIHF1ZXVlLiBTZWUgIzQ4MDg1OC4KCjIwMDctMDktMjYgMTg6MDY6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEltcHJvdmUgZGVidWdnaW5nIHdoZW4gZGVhbGluZyB3aXRoIF9wb2xsKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKHBvbGxfZnVuYyk6CgkgIEltcHJvdmUgZGVidWdnaW5nIHdoZW4gZGVhbGluZyB3aXRoIF9wb2xsKCkuCgoyMDA3LTA5LTI2IDE4OjA0OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEZpeCBtZW1vcnkgbGVhayBJIGludHJvZHVjZWQgYSBmZXcgZGF5cyBhZ28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBGaXggbWVtb3J5IGxlYWsgSSBpbnRyb2R1Y2VkIGEgZmV3IGRheXMgYWdvLgoKMjAwNy0wOS0yNiAxNzowMDoyMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBNYWtlIGl0IG9uY2UgYWdhaW4gcG9zc2libGUgdG8gZnJlZSBHc3RCdWZmZXJzIGluIHRoZSBkZWZhdWx0IGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgTWFrZSBpdCBvbmNlIGFnYWluIHBvc3NpYmxlIHRvIGZyZWUgR3N0QnVmZmVycyBpbiB0aGUgZGVmYXVsdAoJICBidWlsZC4KCSAgVGhlIHBvaXNvbmluZyBzY3JpYmJsZXMgb24gcGFydHMgb2YgdGhlIG1pbmlvYmplY3Qgd2UgbmVlZCBpbgoJICBvcmRlciB0byBmcmVlIGl0LgoJICBGaXhlcyAjNDgwMzQxCgoyMDA3LTA5LTI1IDE4OjM1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19DT01QT1NFUiwgZml4ZXMgIzQ1OTgwOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfQ09NUE9TRVIsIGZpeGVzICM0NTk4MDkuCgoyMDA3LTA5LTI0IDE3OjQxOjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLio6IEFkZCB0aGUgMy1jbGF1c2UgQlNEIGxpY2Vuc2UgYW5kIHRoZSBNSVQvWDExIGxpY2Vuc2UgdG8gdGhlIGxpY2Vuc2UgbGlzdC4gRml4ZXMgIzQ3OTc4NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQWRkIHRoZSAzLWNsYXVzZSBCU0QgbGljZW5zZSBhbmQgdGhlIE1JVC9YMTEgbGljZW5zZSB0byB0aGUgbGljZW5zZQoJICBsaXN0LiBGaXhlcyAjNDc5Nzg0LgoKMjAwNy0wOS0yNCAxNzoyMjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL2dldHRpbmcueG1sOiBBZGQgUStBIGFib3V0IGRpZmZlcmVudCBHU3RyZWFtZXIgdmVyc2lvbnMgKCMzNjQwNTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSAgQWRkIFErQSBhYm91dCBkaWZmZXJlbnQgR1N0cmVhbWVyIHZlcnNpb25zICgjMzY0MDU2KS4KCjIwMDctMDktMjQgMTI6NDY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJldHVybiBjb3JyZWN0IGdib29sZWFuIGZyb20gcXVlcnkgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUmV0dXJuIGNvcnJlY3QgZ2Jvb2xlYW4gZnJvbSBxdWVyeSBmdW5jdGlvbi4KCjIwMDctMDktMjQgMTI6Mjk6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNpbXBsaWZ5IGxhdGVuY3kgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTaW1wbGlmeSBsYXRlbmN5IHF1ZXJ5LgoJICBXaGVuIG5vdCBzeW5jaHJvbml6aW5nLCB3ZSBjYW4gcmVwb3J0IGxhdGVuY3kgd2l0aG91dCBxdWVyeWluZyB0aGUgcGVlcgoJICBlbGVtZW50LgoKMjAwNy0wOS0yNCAxMTo0NjozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBzbWFsbCB0eXBvcyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBGaXggc21hbGwgdHlwb3MgaW4gdGhlIGRvY3MuCgoyMDA3LTA5LTI0IDExOjIyOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIHR5cG8gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIHR5cG8gZml4ZXMuCgoyMDA3LTA5LTIzIDEwOjE2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiBBZGQgc29tZSBkZWJ1ZyB0ZXh0IHRvIGVycm9yIG1lc3NhZ2UgdG8gaW5kaWNhdGUgdGhhdCB3ZSBlcnJvcmVkIG91dCBvbiByZXF1ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIEFkZCBzb21lIGRlYnVnIHRleHQgdG8gZXJyb3IgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGF0CgkgIHdlIGVycm9yZWQgb3V0IG9uIHJlcXVlc3QuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBXaGVuIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORyBmYWlscywgY2hlY2sgZm9yIGFuCgkgIGVycm9yIG1lc3NhZ2Ugb24gdGhlIGJ1cyBhbmQgcHJpbnQgaXQuCgoyMDA3LTA5LTIyIDE3OjIyOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2NzLnBvOgoJKiBwby9odS5wbzoKCSogcG8vdWsucG86CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoKMjAwNy0wOS0yMiAxNzoxODo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGVkIGJ5OiBKb3JnZSBHb256w6FsZXogR29uesOhbGV6IDxhbG9yaWVsQGdtYWlsLmNvbT4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2VzLnBvOgoJICBBZGRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwNy0wOS0yMSAxNDozNzozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRml4IHByaW50ZiBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBwcmludGYgYXJndW1lbnRzLgoKMjAwNy0wOS0yMCAxMDozNjoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogSW1wcm92ZWQgc3RhdGUgY2hhbmdlIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgSW1wcm92ZWQgc3RhdGUgY2hhbmdlIHVuaXQgdGVzdC4KCjIwMDctMDktMjAgMDc6NDI6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RiaW4uaDogTW92ZSBwcml2IHRvIHRoZSByaWdodCBwbGFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBNb3ZlIHByaXYgdG8gdGhlIHJpZ2h0IHBsYWNlLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBBZGQgRklYTUU6IGFuZCBpbXByb3ZlIGxvZy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIFdvcmsgd2l0aCBhbGwgdHlwZXMgb2YgcmVnaXN0cmllcy4KCjIwMDctMDktMTkgMjA6Mzk6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgdW5yZWYgdGhlIGV2ZW50IGFmdGVyIHB1c2hpbmcgaXQuIEZpeGVzICM0Nzg0MDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpOgoJICBEb24ndCB1bnJlZiB0aGUgZXZlbnQgYWZ0ZXIgcHVzaGluZyBpdC4gRml4ZXMgIzQ3ODQwMS4KCjIwMDctMDktMTkgMTg6MDc6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIElnbm9yZSByZWdpc3RyaWVzIGluIGFueSBmb3JtYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIC5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6CgkgIElnbm9yZSByZWdpc3RyaWVzIGluIGFueSBmb3JtYXQuCgoyMDA3LTA5LTE5IDEzOjI4OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDogQWRkIGNvbXBhdGliaWxpdHkgbWFjcm8gZm9yIGdfaW50ZXJuX3N0cmluZygpIGZvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICBBZGQgY29tcGF0aWJpbGl0eSBtYWNybyBmb3IgZ19pbnRlcm5fc3RyaW5nKCkgZm9yCgkgIEdMaWItMi44IChhbnkgcmVhc29uIHdlIGNhbid0IGp1c3QgYnVtcCB0aGUKCSAgcmVxdWlyZW1lbnQgdG8gYXQgbGVhc3QgMi4xMD8pCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIE1ha2UgR3N0U3RhdGljUGFkVGVtcGxhdGUncyB0ZW1wbF9uYW1lIGZpZWxkIGEgY29uc3QgZ2NoYXIgKiBhbmQgZml4CgkgIHVwIHRoZSBpbnRlcm5hbCBjb2RlIGFjY29yZGluZ2x5LiAgVGhpcyBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLCBzaW5jZQoJICB0aGVyZSBpcyBubyByZWFzb24gZXh0ZXJuYWwgY29kZSBjb3VsZCBldmVyIGFzc3VtZSB0aGUgc3RyaW5nIGluIHN1Y2gKCSAgYSBzdHJ1Y3R1cmUgaXMgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHVubGVzcyBpdCBkaWQgdGhhdCBpdHNlbGY7ICB0aGUKCSAgdXNlIG9mIGdfc3RyZHVwKCkgaXMgcHJpdmF0ZSB0byBlbGVtZW50IGZhY3Rvcmllcy4gIFRoZSBuZXcgY29kZSBhbHNvCgkgIHNhdmVzIHNvbWUgbWVtb3J5IGJ5IHB1dHRpbmcgcGFkIHRlbXBsYXRlIG5hbWUgc3RyaW5ncyBpbnRvIHRoZSBHTGliCgkgIHF1YXJrIHRhYmxlIGluc3RlYWQgb2YgYWxsb2NhdGluZyB0aGVtIGR5bmFtaWNhbGx5LgoJICBEZWNsYXJpbmcgdGhpcyBmaWVsZCBjb25zdGFudCBmaXhlcyB3YXJuaW5ncyB3aXRoIGcrKy00LjIgd2hlbiB1c2luZwoJICB0aGUgR1NUX1NUQVRJQ19QQURfVEVNUExBVEUgbWFjcm8gaW4gYysrIGNvZGUgKCM0NzgwOTIpLgoKMjAwNy0wOS0xOSAxMjozMToxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFJlbGVhc2Ugc3RhdGljIGNhcHMuIEZpeGVzICM0NzU3MjMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBSZWxlYXNlIHN0YXRpYyBjYXBzLiBGaXhlcyAjNDc1NzIzLgoKMjAwNy0wOS0xOCAyMjoxMzo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLio6IE1ha2Ugc29tZSBpbnRlcm5hbCBBUEkgdGFrZSBjb25zdCBnY2hhciAqIGluc3RlYWQgb2YganVzdCBnY2hhciAqIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggZysrLS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIE1ha2Ugc29tZSBpbnRlcm5hbCBBUEkgdGFrZSBjb25zdCBnY2hhciAqIGluc3RlYWQgb2YganVzdAoJICBnY2hhciAqIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggZysrLTQuMi4yIHdoZW4KCSAgcGFzc2luZyBzdHJpbmcgY29uc3RhbnRzIChwYXJ0aWFsbHkgZml4ZXMgIzQ3ODA5MikuCgoyMDA3LTA5LTE3IDIwOjU1OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBIGxhdGVuY3kgcXVlcnkgZmFpbHMgd2hlbiBvbmUgb2YgdGhlIHNpbmtzIGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEEgbGF0ZW5jeSBxdWVyeSBmYWlscyB3aGVuIG9uZSBvZiB0aGUgc2lua3MgZmFpbC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wOS0xNyAxNzoxNzoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggbWlub3IgY29tcGlsYXRpb24gd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfbG9vcCk6CgkgIEZpeCBtaW5vciBjb21waWxhdGlvbiB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoKMjAwNy0wOS0xNyAwNjowMTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogTWVhc3VyZSBxdWV1ZSBsZXZlbCBiYXNlZCBvbiB0aGUgZGlmZiBiZXR3ZWVuIGhlYWQgYW5kIHRhaWwgdGltZXN0YW1wcyBldmVuIHdoZW4gcHVzaGluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSk6CgkgIE1lYXN1cmUgcXVldWUgbGV2ZWwgYmFzZWQgb24gdGhlIGRpZmYgYmV0d2VlbiBoZWFkIGFuZCB0YWlsIHRpbWVzdGFtcHMKCSAgZXZlbiB3aGVuIHB1c2hpbmcgdGhlIGZpcnN0IGJ1ZmZlci4KCjIwMDctMDktMTQgMjM6MDY6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNpbmtzIHRoYXQgZG9uJ3QgcHJlcm9sbCBjYW4gYWx3YXlzIGJlIHF1ZXJpZWQgZm9yIHRoZSBsYXRlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNpbmtzIHRoYXQgZG9uJ3QgcHJlcm9sbCBjYW4gYWx3YXlzIGJlIHF1ZXJpZWQgZm9yIHRoZSBsYXRlbmN5LgoJICBEb24ndCBwb3N0IEFTWU5DIHN0YXJ0IHdoZW4gd2UgYXJlIG5vdCBhc3luYy4KCjIwMDctMDktMTQgMjA6MjQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IFdoZW4gZG93bnN0cmVhbSByZXR1cm5zIFVORVhQRUNURUQgZnJvbSBwdXNoaW5nIGEgYnVmZmVyLCBkb24ndCB0cnkgdG8gcHVzaCBtb3JlIGJ1ZmZlcnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFdoZW4gZG93bnN0cmVhbSByZXR1cm5zIFVORVhQRUNURUQgZnJvbSBwdXNoaW5nIGEgYnVmZmVyLCBkb24ndCB0cnkgdG8KCSAgcHVzaCBtb3JlIGJ1ZmZlcnMgYnV0IGFsbG93IHB1c2hpbmcgb2YgRU9TIGFuZCBORVdTRUdNRU5ULgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8gaGVyZSBhbmQgdGhlcmUuIEZpeGVzICM0NzY1MTQuCgoyMDA3LTA5LTE0IDE1OjUyOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBMYXRlbmN5IHF1ZXJ5IGlzIGFsbG93ZWQgYWZ0ZXIgd2UgYXJlIHByZXJvbGxlZC4gSW50cm9kdWNlIGEgbmV3IGZsYWcgZm9yIHRoaXMgYW5kIHN0b3AgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBMYXRlbmN5IHF1ZXJ5IGlzIGFsbG93ZWQgYWZ0ZXIgd2UgYXJlIHByZXJvbGxlZC4gSW50cm9kdWNlIGEgbmV3IGZsYWcKCSAgZm9yIHRoaXMgYW5kIHN0b3AgYWJ1c2luZyBvdGhlciB2YXJpYWJsZXMuCgoyMDA3LTA5LTEzIDIzOjUzOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFB1c2ggT09CIGV2ZW50cyBkb3duc3RyZWFtIHdoZW4gd2UgZ2V0IHRoZW0gaW4gc2VuZF9ldmVudC4gVGhpcyBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpOgoJICBQdXNoIE9PQiBldmVudHMgZG93bnN0cmVhbSB3aGVuIHdlIGdldCB0aGVtIGluIHNlbmRfZXZlbnQuIFRoaXMgYWxsb3dzCgkgIHRoZSBhcHBsaWNhdGlvbiB0byBpbnNlcnQgZXZlbnRzIGluIHRoZSBwaXBlbGluZS4KCSAgQWRkIHNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDctMDktMTMgMjE6Mjc6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3ZlIGxhdGVuY3kgcXVlcnkgZnJvbSBHc3RQaXBlbGluZSB0byBHc3RCaW4gc28gdGhhdCB3ZSBjYW4gYWxzbyB1c2UgaXQgd2hlbiBhc3luYy1oYW5kbGluZyBpcyBlbmFibGVkIG9uIGJpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChjbGVhcl9xdWV1ZSksCgkgIChkb19iaW5fbGF0ZW5jeSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBNb3ZlIGxhdGVuY3kgcXVlcnkgZnJvbSBHc3RQaXBlbGluZSB0byBHc3RCaW4gc28gdGhhdCB3ZSBjYW4gYWxzbwoJICB1c2UgaXQgd2hlbiBhc3luYy1oYW5kbGluZyBpcyBlbmFibGVkIG9uIGJpbnMuCgoyMDA3LTA5LTEzIDIxOjE5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBVcGRhdGUgZG9jcy4KCSAgQ2xlYW4gdXAgdGhlIHRpbWVzdGFtcGluZyBhbmQgc3luY2luZyBjb2RlIGZvciBwc2V1ZG8gbGl2ZSBzb3VyY2VzLgoKMjAwNy0wOS0xMyAxOToyNzo1MyArMDAwMCAgU3RldmUgRmluayA8c3BoaW5rQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6IE1lbnRpb24gbGVzcyAtUiBzd2l0Y2ggaW4gdGhlIHNlY3Rpb24gYWJvdXQgZGVidWcgb3V0cHV0ICgjNDc0MDU1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICBNZW50aW9uIGxlc3MgLVIgc3dpdGNoIGluIHRoZSBzZWN0aW9uIGFib3V0IGRlYnVnIG91dHB1dCAoIzQ3NDA1NSkuCgoyMDA3LTA5LTEzIDE3OjE1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBRdWV1ZSBjYW4gbGF0ZW5jeSB0byB0aGUgcGlwZWxpbmUgdXAgdG8gdGhlIGNvbmZpZ3VyZWQgbWF4IHNpemUgaW4gdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBRdWV1ZSBjYW4gbGF0ZW5jeSB0byB0aGUgcGlwZWxpbmUgdXAgdG8gdGhlIGNvbmZpZ3VyZWQgbWF4IHNpemUgaW4gdGltZS4KCSAgUmVwb3J0IHRoaXMgZmFjdCBpbiB0aGUgbGF0ZW5jeSBxdWVyeS4KCjIwMDctMDktMTMgMDk6MDg6MjMgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlKCkgd2hlbiBjb252ZXJ0aW5nIGZyb20gYSB1aW50NjQgb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW4gYXQgbW91dHRlIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlKCkgd2hlbiBjb252ZXJ0aW5nIGZyb20gYSB1aW50NjQgb3IKCSAgR3N0Q2xvY2tUaW1lIHRvIGRvdWJsZSB0byBmaXggdGhlIGJ1aWxkIG9uIHdpbjMyLiBGaXhlcyAjNDc0MzcxLgoKMjAwNy0wOS0xMyAwODo0Mjo1NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBJbXBsZW1lbnQgcG9pc29uaW5nIGZvciBHc3RCdWZmZXIgaWYgLS1lbmFibGUtcG9pc29uaW5nIGlzIHNwZWNpZmllZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgIEltcGxlbWVudCBwb2lzb25pbmcgZm9yIEdzdEJ1ZmZlciBpZiAtLWVuYWJsZS1wb2lzb25pbmcgaXMgc3BlY2lmaWVkLgoJICBXaGVuIGZpbmFsaXppbmcgYSBidWZmZXIgdGhlIGNvbXBsZXRlIHN0cnVjdCBpcyBmaWxsZWQgd2l0aCAweGZmLAoJICB0aHVzIG1ha2luZyBhIHVzZSBvZiB0aGUgYnVmZmVyIGFmdGVyIHRoZSBmaW5hbCB1bnJlZiBpbXBvc3NpYmxlLgoKMjAwNy0wOS0xMyAwODozNjozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IFVzZSBmYWlsX3VubGVzc19lcXVhbHNfaW50KGEsIGIpIGluc3RlYWQgb2YgZmFpbF91bmxlc3NfZXF1YWxzIChhID09IGIpIHRvIGdldCBiZXR0ZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgZmFpbF91bmxlc3NfZXF1YWxzX2ludChhLCBiKSBpbnN0ZWFkIG9mCgkgIGZhaWxfdW5sZXNzX2VxdWFscyAoYSA9PSBiKSB0byBnZXQgYmV0dGVyIG91dHB1dCBvbiBmYWlsdXJlcy4KCjIwMDctMDktMTIgMTY6MzU6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6IEFsc28gY2hlY2sgZm9yIHRoZSBvdGhlciBmaWxlIFVSSSB2YXJpYW50IG9uIHdpbjMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIEFsc28gY2hlY2sgZm9yIHRoZSBvdGhlciBmaWxlIFVSSSB2YXJpYW50IG9uIHdpbjMyLgoKMjAwNy0wOS0xMiAxMjozNjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogSWYgdGhlcmUncyBubyBob3N0bmFtZSwgd2Ugd2FudCB0byByZXR1cm4gJ2M6L2Zvby9iYXIudHh0JyBhbmQgbm90ICcvYzovZm9vL2Jhci50eHQnIG9uIFdpbmRvd3MuIEZpeGVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2dldF9sb2NhdGlvbik6CgkgIElmIHRoZXJlJ3Mgbm8gaG9zdG5hbWUsIHdlIHdhbnQgdG8gcmV0dXJuICdjOi9mb28vYmFyLnR4dCcKCSAgYW5kIG5vdCAnL2M6L2Zvby9iYXIudHh0JyBvbiBXaW5kb3dzLiBGaXhlcyAjNDY5NDAyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgVW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUgYW5kIGEgZmV3IG1vcmUgdGhpbmdzLgoKMjAwNy0wOS0xMSAyMzoyNzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OiBBZGQgZG9jcyBvbiBob3cgbGl2ZSBzb3VyY2VzIHNob3VsZCB0aW1lc3RhbXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICBBZGQgZG9jcyBvbiBob3cgbGl2ZSBzb3VyY2VzIHNob3VsZCB0aW1lc3RhbXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc3luYyk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgRm9yIHN1YmNsYXNzZXMgdGhhdCBhcmUgbGl2ZSBhbmQgbGlrZSB0byBzeW5jLCBhZGQgYWRpdGlvbmFsIHN0YXJ0dXAKCSAgbGF0ZW5jeSB0byBzeW5jIHRpbWUgYW5kIHRpbWVzdGFtcHMgc28gdGhhdCB3ZSB0aW1zdGFtcCBhY2NvcmRpbmcgdG8gdGhlCgkgIGRlc2lnbiBkb2MuCgoyMDA3LTA5LTExIDE4OjU5OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBBbHNvIGRvIGEgZ190eXBlX2NsYXNzX3JlZigpIGZvciB0aGUgc3ViYnVmZmVyIHR5cGUgaW4gdGhlIGluaXQgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgQWxzbyBkbyBhIGdfdHlwZV9jbGFzc19yZWYoKSBmb3IgdGhlIHN1YmJ1ZmZlciB0eXBlIGluCgkgIHRoZSBpbml0IGZ1bmN0aW9uLgoKMjAwNy0wOS0xMSAxNTo1NTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBmdW5jdGlvbiB0byBwZXJmb3JtIGEgcXVlcnkgb24gdGhlIHBlZXIgb2YgYSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wZWVyX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBmdW5jdGlvbiB0byBwZXJmb3JtIGEgcXVlcnkgb24gdGhlIHBlZXIgb2YgYSBwYWQuCgkgIEFQSTogZ3N0X3BhZF9wZWVyX3F1ZXJ5KCkKCjIwMDctMDktMTEgMTM6NDM6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBDbGVhbnVwIHRoZSB0ZXN0IGEgbGl0dGxlICh1c2UgZ3N0LWxvZ2dpbmcgYW5kIG5vdCBnX21lc3NhZ2UpLiBJbXByb3ZlIHRlc3QgdG8gY2hlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgQ2xlYW51cCB0aGUgdGVzdCBhIGxpdHRsZSAodXNlIGdzdC1sb2dnaW5nIGFuZCBub3QgZ19tZXNzYWdlKS4gSW1wcm92ZQoJICB0ZXN0IHRvIGNoZWNrIGlmIGEgd2FpdCByZWFjaGVkIHRoZSB0YXJnZXQuCgoyMDA3LTA5LTExIDEwOjMzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBBUEkgdG8gZG9jcyBhbmQgZml4IHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gZG9jcyBhbmQgZml4IHRoZSBidWlsZC4KCjIwMDctMDktMTAgMTY6NTA6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogQWRkIHByb3BlcnR5IHRvIG1ha2UgdGhlIGJhc2VzcmMgdGltZXN0YW1wIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGN1cnJlbnQgcnVubmluZyB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfZG9fdGltZXN0YW1wKSwgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCBwcm9wZXJ0eSB0byBtYWtlIHRoZSBiYXNlc3JjIHRpbWVzdGFtcCBidWZmZXJzIGJhc2VkIG9uIHRoZSBjdXJyZW50CgkgIHJ1bm5pbmcgdGltZS4KCSAgQVBJOiBHc3RCYXNlU3JjOjpkby10aW1lc3RhbXAKCSAgQVBJOiBnc3RfYmFzZV9zcmNfc2V0X2RvX3RpbWVzdGFtcCgpCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX2dldF9kb190aW1lc3RhbXAoKQoKMjAwNy0wOS0wOCAyMDoyNTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IFJlYWxseSBtYWtlIHN1cmUgdHJhbnNsYXRpb25zIGFyZSB1cC10by1kYXRlIGJlZm9yZSBhIHJlbGVhc2UgKCM0NjUwMTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBSZWFsbHkgbWFrZSBzdXJlIHRyYW5zbGF0aW9ucyBhcmUgdXAtdG8tZGF0ZSBiZWZvcmUKCSAgYSByZWxlYXNlICgjNDY1MDEwKS4KCjIwMDctMDktMDcgMTQ6NDY6NTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IGhlYWRlciBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxhdGVzdCBoZWFkZXIgZmlsZXMKCjIwMDctMDktMDcgMDQ6NTA6MjMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBbHdheXMgZGVzdHJveSB0aGUgdGltZXIsIGFsc28gaW4gZXJyb3IgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgQWx3YXlzIGRlc3Ryb3kgdGhlIHRpbWVyLCBhbHNvIGluIGVycm9yIGNhc2VzLgoKMjAwNy0wOS0wNSAyMjoyOTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOiBGaXggWE1MIGV4YW1wbGUgY29kZS4gRml4ZXMgIzQ3MjcxNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6CgkgIEZpeCBYTUwgZXhhbXBsZSBjb2RlLiBGaXhlcyAjNDcyNzE0LgoKMjAwNy0wOS0wNSAyMjoxMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJvdGVjdCBlb3MgYW5kIGhhdmVfcHJlcm9sbCB3aXRoIHRoZSBPQkpFQ1QgbG9jayBzbyB3ZSBkb24ndCBuZWVkIHRvIHRha2UgdGhlIFBSRVJPTEwgbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBQcm90ZWN0IGVvcyBhbmQgaGF2ZV9wcmVyb2xsIHdpdGggdGhlIE9CSkVDVCBsb2NrIHNvIHdlIGRvbid0IG5lZWQgdG8KCSAgdGFrZSB0aGUgUFJFUk9MTCBsb2NrIHdoZW4gcXVlcnlpbmcgdGhlIGxhdGVuY3kuIEZpeGVzICM0NzM4NDYuCgoyMDA3LTA5LTA1IDEzOjI0OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBHaXZlIHNvbWUgbG9nLW1lc3NhZ2VzIGEgY2F0ZWdvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIEdpdmUgc29tZSBsb2ctbWVzc2FnZXMgYSBjYXRlZ29yeS4KCjIwMDctMDktMDUgMDE6MDA6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEZpeCBmcmFjdGlvbiBsaXN0IGZpeGF0aW9uIGNvZGUuIFRha2UgdGhlIGZyYWN0aW9uIHdpdGggdGhlIHNtYWxsZXN0IGRpZmZlcmVuY2Ugd2l0aCB0aGUgdGFyZ2V0IGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgIEZpeCBmcmFjdGlvbiBsaXN0IGZpeGF0aW9uIGNvZGUuIFRha2UgdGhlIGZyYWN0aW9uIHdpdGggdGhlIHNtYWxsZXN0CgkgIGRpZmZlcmVuY2Ugd2l0aCB0aGUgdGFyZ2V0IGluc3RlYWQgb2YgdGhlIGZpcnN0IG9uZSBpbiB0aGUgbGlzdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgQWRkZWQgdGVzdCB0byB2ZXJpZnkgY29ycmVjdCBmcmFjdGlvbiBsaXN0IGZpeGF0aW9uIGJlaGF2aW91ci4KCjIwMDctMDktMDIgMjA6MzA6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogRXhwb3J0IGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBFeHBvcnQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoIHRvby4KCjIwMDctMDgtMzAgMTc6NTA6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IG1ldGhvZHMgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBtZXRob2RzIHRvIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF90c19vZmZzZXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdHNfb2Zmc2V0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgdHMtb2Zmc2V0IHByb3BlcnR5IHRvIGZpbmUtdHVuZSB0aGUgc3luY2hyb25pc2F0aW9uLgoJICBBUEk6IEdzdEJhc2VTaW5rOjp0cy1vZmZzZXQgcHJvcGVydHkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF90c19vZmZzZXQoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X3RzX29mZnNldCgpCgoyMDA3LTA4LTI5IDIwOjU3OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBBZGQgYXN5bmMgcHJvcGVydHkgdG8gaW5zdHJ1Y3QgdGhlIHNpbmsgbmV2ZXIgdG8gaW5mb3JtIHRoZSBwYXJlbnQgYWJvdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfbWF4X2xhdGVuZXNzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X21heF9sYXRlbmVzcyksIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkKSwgKGdzdF9iYXNlX3Npbmtfc2V0X2FzeW5jX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19hc3luY19lbmFibGVkKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBhc3luYyBwcm9wZXJ0eSB0byBpbnN0cnVjdCB0aGUgc2luayBuZXZlciB0byBpbmZvcm0gdGhlIHBhcmVudCBhYm91dAoJICBBU1lOQyBzdGF0ZSBjaGFuZ2VzLCB1cGRhdGUgZG9jcy4KCSAgQ2hlY2sgYXJndW1lbnQgd2l0aCBnX3JldHVybl8qIGZvciB0aGUgcHVibGljIGZ1bmN0aW9ucy4KCSAgQVBJOiBHc3RCYXNlU2luazo6YXN5bmMgcHJvcGVydHkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9hc3luY19lbmFibGVkKCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2lzX2FzeW5jX2VuYWJsZWQoKQoKMjAwNy0wOC0yOCAxNTowMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfbG9vcCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFJlYXJyYW5nZSBzb21lIGNvZGUgc28gdGhhdCB3ZSBjYW4gYWRkIHN1cHBvcnQgZm9yIG1lYXN1cmluZyB0aGUKCSAgc3RhcnR1cCBsYXRlbmN5LgoKMjAwNy0wOC0yNyAyMDowMDozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDogTW9yZSB0aG91Z2hzIG9uIHRoaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgIE1vcmUgdGhvdWdocyBvbiB0aGlzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBBZGQgYnVnemlsbGEgdGlja2V0IG51bWJlciB0byBGSVhNRSBjb21tZW50LgoKMjAwNy0wOC0yNiAxODozMDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNQUlOVEFJTkVSUzoKCSAgcmVtb3ZlIHRlbXAgZmlsZXMgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0ZW1wIGZpbGVzIGFnYWluCgoyMDA3LTA4LTI2IDE2OjQyOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1BSU5UQUlORVJTOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDgtMjYgMTU6NTg6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQVVUSE9SUzoKCSogTUFJTlRBSU5FUlM6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wOC0yNCAyMTo1MzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCjIwMDctMDgtMjQgMTY6Mzk6MDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBSZXZlcnQgcGF0Y2ggd2hpY2ggdXNlcyAkKGdzdF9oZWFkZXJzKSBpbnN0ZWFkIG9mICReIGJlY2F1c2UgaXQgYnJlYWtzIG1ha2UgZGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBSZXZlcnQgcGF0Y2ggd2hpY2ggdXNlcyAkKGdzdF9oZWFkZXJzKSBpbnN0ZWFkIG9mICReIGJlY2F1c2UgaXQKCSAgYnJlYWtzIG1ha2UgZGlzdC4KCjIwMDctMDgtMjQgMTQ6NTU6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBGaXggbGVha3MgaW4gdGhlIG5ldyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWtzIGluIHRoZSBuZXcgdW5pdCB0ZXN0LgoKMjAwNy0wOC0yMyAyMDo0MTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRG9uJ3QgdXNlIEdTVF9JTkZPIGJlZm9yZSB0aGUgZGVidWcgc3lzdGVtIGlzIGFjdHVhbGx5IGluaXRpYWxpc2VkIChzaG91bGRuJ3QgZG8gYW55IGhhcm0sIGJ1dCB3b24ndCBwcmludC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIERvbid0IHVzZSBHU1RfSU5GTyBiZWZvcmUgdGhlIGRlYnVnIHN5c3RlbSBpcyBhY3R1YWxseSBpbml0aWFsaXNlZAoJICAoc2hvdWxkbid0IGRvIGFueSBoYXJtLCBidXQgd29uJ3QgcHJpbnQgYW55dGhpbmcgZWl0aGVyLCBzbyB3ZSBjYW4KCSAganVzdCBhcyB3ZWxsIHJlbW92ZSBpdCkuCgkgICogZ3N0L2dzdGluZm8uaDoKCSAgR1NUX0NBVF9MRVZFTF9MT0dfdmFsaXN0KCksIHdoaWNoIGlzIG91ciBpbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvcgoJICBjb21waWxlcnMgdGhhdCBkb24ndCBzdXBwb3J0IHZhcmlhZGljIG1hY3JvcyAoc3VjaCBhcyBNU1ZDKSwgc2hvdWxkCgkgIGNoZWNrIGZvciBkZWJ1Z19sZXZlbCA8PSBfX2dzdF9kZWJ1Z19taW4gYXMgd2VsbCwgc2luY2UgdGhhdCdzIHRoZQoJICBmdW5jdGlvbiBjYWxsZWQgZnJvbSBhbGwgdGhlIGxldmVsLXNwZWNpZmljIEdTVF9DQVRfKl9MT0dfT0JKRUNUKCkKCSAgaW5saW5lIGhlbHBlciBmdW5jdGlvbnMuIFNob3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlIGEgYml0LCBidXQgYWxzbwoJICBtYWtlcyBzdXJlIHVzZXMgb2YgR1NUX0lORk8gZXQuYWwgYXJlIGlnbm9yZWQgaWYgdGhlIGRlYnVnZ2luZwoJICBzeXN0ZW0gaXNuJ3QgaW5pdGlhbGlzZWQgeWV0IChpbnN0ZWFkIG9mIHByaW50aW5nIGFuIGFzc2VydGlvbgoJICBmYWlsdXJlKS4KCjIwMDctMDgtMjMgMDc6MTA6MzMgKzAwMDAgIERhdmlkIE5lxI1hcyA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJlcGxhY2Ugc29tZSBub24gcG9ydGFibGUgbWFrZWZpbGUgY29uc3RydWN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBEYXZpZCBOZcSNYXMgPHlldGlAcGh5c2ljcy5tdW5pLmN6PgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgUmVwbGFjZSBzb21lIG5vbiBwb3J0YWJsZSBtYWtlZmlsZSBjb25zdHJ1Y3RzLgoKMjAwNy0wOC0yMSAxNDoxMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29tbW9uL2d0ay1kb2MtcGx1Z2lucy5tYWs6IEdycnJyci4gRG9uJ3QgcmVtb3ZlIHRoZSB0eXBlcyBmaWxlIG9uIG1ha2UgY2xlYW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9ndGstZG9jLXBsdWdpbnMubWFrOgoJICBHcnJycnIuIERvbid0IHJlbW92ZSB0aGUgdHlwZXMgZmlsZSBvbiBtYWtlIGNsZWFuLgoKMjAwNy0wOC0yMCAxNzo1MTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogQWRkIGNvbG9yc3BhY2UgdG8gZXhhbXBsZSBwaXBlbGluZS4gRml4ZXMgIzQ1ODI3NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBBZGQgY29sb3JzcGFjZSB0byBleGFtcGxlIHBpcGVsaW5lLiBGaXhlcyAjNDU4Mjc0LgoKMjAwNy0wOC0yMCAxMjozMTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IFRoZSByZWxlYXNlIG1hbmFnZXIgc2hvdWxkIHJ1biAnbWFrZSBkb3dubG9hZC1wbycgYmVmb3JlIG1ha2luZyBhIHJlbGVhc2UgdG8gbWFrZSBzdXJlIHRyYW5zbGF0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBUaGUgcmVsZWFzZSBtYW5hZ2VyIHNob3VsZCBydW4gJ21ha2UgZG93bmxvYWQtcG8nIGJlZm9yZSBtYWtpbmcgYQoJICByZWxlYXNlIHRvIG1ha2Ugc3VyZSB0cmFuc2xhdGlvbnMgYXJlIHVwLXRvLWRhdGUuCgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9iZS5wbzoKCSAgKiBwby9wbC5wbzoKCSAgKiBwby9ydy5wbzoKCSAgQWRkIHNvbWUgbmV3IHRyYW5zbGF0aW9ucy4KCjIwMDctMDgtMTcgMTM6NDg6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IERvbsK0dCB0cnkgdG8gZG8gYW55IHN0YXRlIG1hbmFnZW1lbnQgd2hlbiBhIGxpdmUgcGlwZWxpbmUgcG9zdHMgYnVmZmVyaW5nIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICBEb27CtHQgdHJ5IHRvIGRvIGFueSBzdGF0ZSBtYW5hZ2VtZW50IHdoZW4gYSBsaXZlIHBpcGVsaW5lIHBvc3RzCgkgIGJ1ZmZlcmluZyBtZXNzYWdlcy4KCSAgQWxzbyBtYWtlIHRoZSBidWZmZXJpbmcgc3RyaW5nIHRyYW5zbGF0YWJsZS4KCjIwMDctMDgtMTYgMTE6MDQ6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICBXaGVuIGFkZGluZyBlbGVtZW50cywgaW5zZXJ0IG1lc3NhZ2VzIGludG8gdGhlIGJ1cyBvZiB0aGUgbmV3bHkgYWRkZWQKCSAgZWxlbWVudCBhbmQgbWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIHRoZSBzb3VyY2Ugb2YgdGhlIG1lc3NhZ2UuIFRoaXMKCSAgYWxsb3dzIHRoZSBwYXJlbnQgYmluIHRvIGludGVyY2VwdCB0aGUgbWVzc2FnZSBhbmQgZG8gdGhlCgkgIHJpZ2h0IHRoaW5nLiBJdCBhbHNvIGF2b2lkcyB1cyBwb3N0aW5nIEFTWU5DX1NUQVJUIGFuZCBDTE9DS19QUk9WSURFCgkgIG1lc3NhZ2VzIHRvIHRoZSBhcHAgKHdoaWNoIGlzIG5vdCBhbGxvd2VkKS4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHRlc3RzdWl0ZSBzbyB0aGF0IGlzIGRvZXMgbm90IHdvcmsgYXJvdW5kIG1lc3NhZ2VzIHRoYXQgc2hvdWxkIG5vdAoJICBoYXZlIGJlZW4gcG9zdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KCjIwMDctMDgtMTYgMTA6Mjc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBhbm5veWluZyBidWcgaW4gdGhlIHNvcnRlZCBpdGVyYXRvciB3aGVyZSBhIHNpbmsgdGhhdCBpcyBub3QgcmVhbGx5IGEgc2luayAod2hlbiBpdCBoYXMgZG93bnN0cmVhbSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKHJlbW92ZV9mcm9tX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpOgoJICBGaXggYW5ub3lpbmcgYnVnIGluIHRoZSBzb3J0ZWQgaXRlcmF0b3Igd2hlcmUgYSBzaW5rIHRoYXQgaXMgbm90IHJlYWxseQoJICBhIHNpbmsgKHdoZW4gaXQgaGFzIGRvd25zdHJlYW0gbGlua3MpIHNjcmV3ZWQgdXAgdGhlIGl0ZXJhdG9yLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBVbml0IHRlc3QgdG8gdmVyaWZ5IHRoZSBmaXguCgoyMDA3LTA4LTE2IDEwOjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogQWRkIHNvbWUgbW9yZSBkb2NzIGZvciB0aGUgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyBmb3IgdGhlIG1lc3NhZ2VzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgV2hlbiBpbnRlcnJ1cHRpbmcsIGRvbid0IHRyeSB0byBzZXQgcGlwZWxpbmUgdG8gUEFVU0VEIHR3aWNlLgoKMjAwNy0wOC0xNCAxNDoxMDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTW92ZSBBU1lOQ19TVEFSVCBtZXNzYWdlIHBvc3RpbmcgdG8gd2hlcmUgaXQgYmVsb25ncywgc2ltaWxhciB0byBhc3luY19kb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBNb3ZlIEFTWU5DX1NUQVJUIG1lc3NhZ2UgcG9zdGluZyB0byB3aGVyZSBpdCBiZWxvbmdzLCBzaW1pbGFyIHRvCgkgIGFzeW5jX2RvbmUuCgkgIERvbid0IHBvc3QgQVNZTkNfU1RBUlQgd2hlbiB3ZSBhcmUgaW4gZXJyb3IuCgkgIFBvc3QgQVNZTkNfU1RBUlQgd2hlbiB3ZSBhZGRlZCBhbiBhc3luYyBlbGVtZW50IHRvIGEgYmluLgoKMjAwNy0wOC0xNCAxMzo0Mzo0NCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0aW5kZXguYzogRml4IGluZGV4IGVudHJ5IGdlbmVyYXRpb24gZnJvbSB2YXJncy4gRml4ZXMgIzQ2NjU5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDgtMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb24pOiBGaXggaW5kZXggZW50cnkKCSAgZ2VuZXJhdGlvbiBmcm9tIHZhcmdzLiBGaXhlcyAjNDY2NTk1LgoKMjAwNy0wOC0xNCAxMzozNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWx3YXlzIGNoYW5nZSB0aGUgc3RhdGUgb2YgYSBOT19QUkVST0xMIGVsZW1lbnQgZXZlbiBpZiBpdCBoYXMgQVNZTkMgZWxlbWVudHMgaW5zaWRlIChpbiBjYXNlIG9mIGEgYmluKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEFsd2F5cyBjaGFuZ2UgdGhlIHN0YXRlIG9mIGEgTk9fUFJFUk9MTCBlbGVtZW50IGV2ZW4gaWYgaXQgaGFzIEFTWU5DCgkgIGVsZW1lbnRzIGluc2lkZSAoaW4gY2FzZSBvZiBhIGJpbikuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciB0aGlzIGNhc2UuCgoyMDA3LTA4LTEzIDEzOjMzOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbW9yZSBtaXNzaW5nIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgQWRkIG1vcmUgbWlzc2luZyBkb2NzLgoKMjAwNy0wOC0xMiAxNjo0NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWRkIFNpbmNlIHRhZyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFkZCBTaW5jZSB0YWcgdG8gZG9jcy4KCjIwMDctMDgtMTIgMTY6NDA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgZnVuY3Rpb24gdG8gZ2V0IHVpbnQgZnJvbSBhIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF91aW50KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIEFkZCBmdW5jdGlvbiB0byBnZXQgdWludCBmcm9tIGEgc3RydWN0dXJlLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQoKQoKMjAwNy0wOC0xMiAxNjozODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBwcm9wZXIgY2hlY2sgZm9yIHNpbXBsZSBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3QpLAoJICAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgRml4IHByb3BlciBjaGVjayBmb3Igc2ltcGxlIGNhcHMuCgoyMDA3LTA4LTEwIDE3OjM1OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogUmVtb3ZlIGNydWZ0IGFuZCBkbyBzb21lIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBjcnVmdCBhbmQgZG8gc29tZSBjbGVhbnVwcy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIFByZXBhcmUgZm9yIGNvbW1pbmcgZ3RrZG9jIGZlYXR1cmVzIChyZWJhc2UgYWdhaW5zdCBvbmxpbmUgZG9jcykuCgoyMDA3LTA4LTEwIDE0OjUyOjQxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGggdG8gZG9jcy4KCSAgQWxzbyBmaXggZm9ybWF0dGluZyBvZiBhbiBvbGRlciBjaGFuZ2Vsb2cgZW50cnkKCjIwMDctMDgtMTAgMTQ6NDA6MjYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeS5oOiBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoLCB3aGljaCB3YXMgbWlzc2luZyBmcm9tIHRoaXMgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCwgd2hpY2ggd2FzIG1pc3NpbmcgZnJvbSB0aGlzIGhlYWRlci4KCjIwMDctMDgtMTAgMTA6MzA6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzogUHJpbnRmIGZvcm1hdCBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBQcmludGYgZm9ybWF0IGZpeC4KCjIwMDctMDgtMDkgMjE6NTA6MTkgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHNlbmQgYW4gYXN5bmNfc3RhcnQgbWVzc2FnZSBkdXJpbmcgZG93bndhcmRzIHN0YXRlIGNoYW5nZSBpZiB0YXJnZXQgc3RhdGUgaXMgbGVzcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBEb24ndCBzZW5kIGFuIGFzeW5jX3N0YXJ0IG1lc3NhZ2UgZHVyaW5nIGRvd253YXJkcyBzdGF0ZSBjaGFuZ2UgaWYgdGFyZ2V0CgkgIHN0YXRlIGlzIGxlc3MgdGhhbiBSRUFEWQoKMjAwNy0wOC0wOSAxMDo1MDoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIEh1bmdhcmlhbiB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0ZWQgYnk6IEdhYm9yIEtlbGVtZW4gPGtlbGVtZW5nQGdub21lLmh1PgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vaHUucG86CgkgIEFkZGVkIEh1bmdhcmlhbiB0cmFuc2xhdGlvbi4KCjIwMDctMDgtMDkgMTA6NDg6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vZmkucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmwucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdWsucG86CgkgIFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoKMjAwNy0wOC0wNyAxNjowNjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOiBEaXN0IGdzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgRGlzdCBnc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oCgoyMDA3LTA4LTA3IDE1OjE1OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczogRG9uJ3QgcmVnaXN0ZXIgdGhlIGVudW0gdHlwZSBnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKCkgaW4gdGhlIC50eXBlcyBmaWxlIC0gb25seSBHTy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIERvbid0IHJlZ2lzdGVyIHRoZSBlbnVtIHR5cGUgZ3N0X2xmb193YXZlZm9ybV9nZXRfdHlwZSgpIGluIHRoZQoJICAudHlwZXMgZmlsZSAtIG9ubHkgR09iamVjdCBkZXJpdmVkIHR5cGVzIGJlbG9uZy4KCjIwMDctMDgtMDcgMTQ6MDQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IFJlbW92ZSBjb21tYSBmcm9tIGxhc3QgZWxlbWVudCBpbiBlbnVtIHRvIGF2b2lkIGNvbXBpbGUgZXJyb3JzIHdoZW4gdXNpbmcgLXBlbmRhbnRpYy4gRml4ZXMgIzQ2NDM2Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiA8YXJlbmV2aWVyIGF0IGZkbiBkb3QgZnI+CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBSZW1vdmUgY29tbWEgZnJvbSBsYXN0IGVsZW1lbnQgaW4gZW51bSB0byBhdm9pZCBjb21waWxlIGVycm9ycyB3aGVuCgkgIHVzaW5nIC1wZW5kYW50aWMuIEZpeGVzICM0NjQzNjYuCgoyMDA3LTA4LTA3IDA5OjU2OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIHNvbWUgbW9yZSBUT0RPIGl0ZW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBzb21lIG1vcmUgVE9ETyBpdGVtcwoJICAqIGdzdC9nc3RiaW4uYzogKGZpbmRfbWVzc2FnZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIE9wdGltaXplIHRyaXZpYWwgaW50ZXJzZWN0aW9uIGNhc2UgYmV0d2VlbiBpZGVudGljYWwgY2FwcyBwb2ludGVycy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHNwZWxsaW5nIGFuZCBncmFtbWFyIG1pc3Rha2VzLgoKMjAwNy0wOC0wNSAxNDo0ODowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcG8vUE9URklMRVMuKjogVXBkYXRlIFBPVEZJTEVTLiBGaXhlcyAjNDYxNTk5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgKiBwby9QT1RGSUxFUy5za2lwOgoJICBVcGRhdGUgUE9URklMRVMuIEZpeGVzICM0NjE1OTkuCgoyMDA3LTA4LTAzIDE5OjI1OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0LmM6IEZpeCBjb25mdXNpbmcgdHlwbyBpbiBkZWJ1ZyBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IGNvbmZ1c2luZyB0eXBvIGluIGRlYnVnIG91dHB1dC4KCjIwMDctMDgtMDMgMTU6NDc6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBUEk6IEFkZCBHc3RMRk9Db250cm9sU291cmNlLCBhIGNvbnRyb2wgc291cmNlIHRoYXQgZ2l2ZXMgdmFsdWVzIGZvciBzcGVjaWZpYyB0aW1lc3RhbXBzIGJhc2VkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOiAoX2NhbGN1bGF0ZV9wb3MpLAoJICAoZ3N0X2xmb193YXZlZm9ybV9nZXRfdHlwZSksIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX3Jlc2V0KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfbmV3KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2Vfc2V0X3dhdmVmb3JtKSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfYmluZCksIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2luaXQpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2Rpc3Bvc2UpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgIEFQSTogQWRkIEdzdExGT0NvbnRyb2xTb3VyY2UsIGEgY29udHJvbCBzb3VyY2UgdGhhdCBnaXZlcyB2YWx1ZXMKCSAgZm9yIHNwZWNpZmljIHRpbWVzdGFtcHMgYmFzZWQgb24gc2V2ZXJhbCBwZXJpb2RpYyB3YXZlZm9ybXMuCgkgIEZpeGVzICM0NTk3MTcuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgQWRkIGRvY3VtZW50YXRpb24gYW5kIHVuaXQgdGVzdHMgZm9yIEdzdExGT0NvbnRyb2xTb3VyY2UuCgoyMDA3LTA4LTAzIDE0OjQwOjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNCA9PT0KCjIwMDctMDgtMDMgMTQ6Mzk6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE0CgoyMDA3LTA4LTAzIDEzOjIwOjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTA4LTAyIDExOjUxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuKjogTWFrZSBzdHJpbmdzIHBhc3NlZCB0byBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKSBjb25zdGFudCwgYXMgdGhleSBzaG91bGQgYmUgKCM0NjI3NTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNYWtlIHN0cmluZ3MgcGFzc2VkIHRvIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpCgkgIGNvbnN0YW50LCBhcyB0aGV5IHNob3VsZCBiZSAoIzQ2Mjc1MikuCgoyMDA3LTA4LTAyIDExOjE1OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBmb3JnZXQgYWJvdXQgdGhlIGZhY3QgdGhhdCBzb21lIGVsZW1lbnQgd2VudCBBU1lOQyBldmVuIGFmdGVyIGEgcmVzeW5jLiBUaGlzIG1ha2VzIHVzIHBvc3QgdGhlIEFTLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIERvbid0IGZvcmdldCBhYm91dCB0aGUgZmFjdCB0aGF0IHNvbWUgZWxlbWVudCB3ZW50IEFTWU5DIGV2ZW4gYWZ0ZXIgYQoJICByZXN5bmMuIFRoaXMgbWFrZXMgdXMgcG9zdCB0aGUgQVNZTkNfRE9ORSBtZXNzYWdlIGNvcnJlY3RseS4KCSAgRml4ZXMgIzQ2MjU1OC4KCjIwMDctMDctMzEgMTE6NTE6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIGZlYXR1cmUgaW4gdGhlIHJlZ2lzdHJ5LCBtYWtlIHN1cmUgdG8gY29udGludWUgaG9sZGluZyBhIHJlZmVyZW5jZSB1bnRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKToKCSAgV2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgZmVhdHVyZSBpbiB0aGUgcmVnaXN0cnksIG1ha2Ugc3VyZSB0bwoJICBjb250aW51ZSBob2xkaW5nIGEgcmVmZXJlbmNlIHVudGlsIHdlJ3ZlIHJlcGxhY2VkIHRoZSBuYW1lIHN0cmluZwoJICB3aXRoaW4gb3VyIGZlYXR1cmUgaGFzaCB0YWJsZS4gTWFrZSBzdXJlIHRvIHVzZSBnX2hhc2hfdGFibGVfcmVwbGFjZQoJICBpbnN0ZWFkIG9mIGdfaGFzaF90YWJsZV9pbnNlcnQgdG8gZW5zdXJlIHRoZSBuZXcgbmFtZSBzdHJpbmcgaXMgdXNlZAoJICBhcyBhIGtleSBpbnN0ZWFkIG9mIHRoZSBvbGQgb25lIHRoYXQgd2UncmUgYWJvdXQgdG8gZnJlZS4KCSAgRml4ZXM6ICM0NjIwODUKCjIwMDctMDctMzEgMTA6MTA6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogUmV2ZXJ0IHBhdGNoIGZyb20gIzQ1OTQ2NiB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZSBhbmQgd2UgY2FuIHdvcmsgb3V0IGV4YWN0bHkgd2hhdCB0aGUgcHJvYmxlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX3NldF9uYW1lKToKCSAgUmV2ZXJ0IHBhdGNoIGZyb20gIzQ1OTQ2NiB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZSBhbmQgd2UgY2FuIHdvcmsKCSAgb3V0IGV4YWN0bHkgd2hhdCB0aGUgcHJvYmxlbSBpcyAoaWYgYW55KS4KCjIwMDctMDctMjYgMTU6NDg6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0xJQ0VOU0VfVVJJIGFuZCBHU1RfVEFHX0NPUFlSSUdIVF9VUkkgKCM0NTE5MzkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19MSUNFTlNFX1VSSSBhbmQgR1NUX1RBR19DT1BZUklHSFRfVVJJICgjNDUxOTM5KS4KCjIwMDctMDctMjYgMTQ6MDU6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9saWJzL01ha2VmaWxlLmFtOiBJbmNsdWRlIG91ciBidWlsZC1wcmVmaXggbGlicyBhbmQgaW5jbHVkZXMgYmVmb3JlIHRoZSBnZW5lcmljIG9uZXMgdG8gYXZvaWQgbGlua2luZyBhZ2FpbnN0IHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgSW5jbHVkZSBvdXIgYnVpbGQtcHJlZml4IGxpYnMgYW5kIGluY2x1ZGVzIGJlZm9yZSB0aGUgZ2VuZXJpYyBvbmVzIHRvCgkgIGF2b2lkIGxpbmtpbmcgYWdhaW5zdCB0aGUgaW5zdGFsbGVkIGxpYnMgd2hlbiB3ZSB3YW50IHRoZSBidWlsZC10cmVlCgkgIG9uZXMuCgoyMDA3LTA3LTI2IDA4OjQ2OjQ2ICswMDAwICBTdGV2ZSBGaW5rIDxzcGhpbmtAZ21haWwuY29tPgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IE1lbnRpb24gdGhhdCBHU1RfUExVR0lOX1BBVEggb3IgLS1nc3QtcGx1Z2luLXBhdGggbWlnaHQgYmUgbmVlZGVkIGlmIHBlb3BsZSB0cnkgdG8gYnVpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RldmUgRmluayAgPHNwaGluayBnbWFpbCBjb20+CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIE1lbnRpb24gdGhhdCBHU1RfUExVR0lOX1BBVEggb3IgLS1nc3QtcGx1Z2luLXBhdGggbWlnaHQgYmUgbmVlZGVkCgkgIGlmIHBlb3BsZSB0cnkgdG8gYnVpbGQgb3IgaW5zdGFsbCB0aGUgZXhhbXBsZSBmcm9tIHRoZSBwbHVnaW4KCSAgdGVtcGxhdGUgYWdhaW5zdCBhIEdTdHJlYW1lciBmcm9tIHBhY2thZ2UgdXNpbmcgdGhlIGNvbmZpZ3VyZQoJICBkZWZhdWx0cy4KCjIwMDctMDctMjUgMjI6Mjk6NTcgKzAwMDAgIFN0ZXZlIEZpbmsgPHNwaGlua0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC4xLmluOiBEb2N1bWVudCAtLXByaW50LWFsbCBhbmQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gY29tbWFuZCBsaW5lIG9wdGlvbnMgaW4gbWFuIHBhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RldmUgRmluayAgPHNwaGluayBnbWFpbCBjb20+CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSAgRG9jdW1lbnQgLS1wcmludC1hbGwgYW5kIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIGNvbW1hbmQKCSAgbGluZSBvcHRpb25zIGluIG1hbiBwYWdlLgoKMjAwNy0wNy0yNSAxODo0Njo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBkb2NzIGZvciBuZXcgYXBpIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgbmV3IGFwaSBmdW5jdGlvbi4KCjIwMDctMDctMjUgMTg6Mzc6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuKjogQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2hhc19pbnRlcmZhY2UoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfaGFzX2ludGVyZmFjZSk6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9oYXNfaW50ZXJmYWNlKCkKCSAgQWRkZWQgbWV0aG9kIHRvIGNoZWNrIGlmIGFuIGVsZW1lbnQgZmFjdG9yeSBpbXBsZW1lbnRzIGEgbmFtZWQKCSAgaW50ZXJmYWNlLgoKMjAwNy0wNy0yNSAxMzowMDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQW5vdGhlciBjb25kaXRpb25hbCBkb2MgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIEFub3RoZXIgY29uZGl0aW9uYWwgZG9jIGNoZWNrLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHhtbC5oOgoJICBBUEktZG9jIGZpeGVzLgoKMjAwNy0wNy0yNCAxMzo0NDowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFByaW50IGVycm9yIGp1c3Qgb25jZSBhbmQgd2l0aCBhZGRpdGlvbmFsIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIFByaW50IGVycm9yIGp1c3Qgb25jZSBhbmQgd2l0aCBhZGRpdGlvbmFsIGluZm8uCgoyMDA3LTA3LTI0IDEzOjM4OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IENsZWFudXAgdGhlIHR5cGVmaW5kaGVscGVyIGNvZGUgYW5kIGFkZCBwcml2YXRlIGRvYyBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChoZWxwZXJfZmluZF9zdWdnZXN0KSwgKGhlbHBlcl9maW5kX2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKSwgKGJ1Zl9oZWxwZXJfZmluZF9zdWdnZXN0KSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIpOgoJICBDbGVhbnVwIHRoZSB0eXBlZmluZGhlbHBlciBjb2RlIGFuZCBhZGQgcHJpdmF0ZSBkb2MgY29tbWVudHMuCgoyMDA3LTA3LTI0IDEyOjMyOjMxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEZpeCBjYXBzZmlsdGVyIGZvciBjYXNlcyB3aGVyZSB0aGUgY2FwcyBzZXQgb24gY2Fwc2ZpbHRlciB3aWxsIHByb3ZpZGUgYWRkaXRpb25hbCBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1fc2l6ZSksIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIEZpeCBjYXBzZmlsdGVyIGZvciBjYXNlcyB3aGVyZSB0aGUgY2FwcyBzZXQgb24gY2Fwc2ZpbHRlciB3aWxsIHByb3ZpZGUKCSAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi4KCSAgRml4ZXMgIzQ0OTE5NwoKMjAwNy0wNy0yNCAxMTozMTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiBGaXggZG9jcyB0aGF0IHJlY29tbWVuZWQgd3JvbmcgZnVuY3Rpb24gdG8gdXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEZpeCBkb2NzIHRoYXQgcmVjb21tZW5lZCB3cm9uZyBmdW5jdGlvbiB0byB1c2UuCgoyMDA3LTA3LTIzIDEzOjAzOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBbHNvIGdpdmUgbWVkaWEtdHlwZSBmb3IgdHlwZWZpbmRlcnMgaW4gZWxlbWVudCBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5fZmVhdHVyZXMpOgoJICBBbHNvIGdpdmUgbWVkaWEtdHlwZSBmb3IgdHlwZWZpbmRlcnMgaW4gZWxlbWVudCBvdXRwdXQuCgoyMDA3LTA3LTIzIDExOjQyOjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuKjogU3BlZWQgdXAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCgpIGJ5IHVzaW5nIGEgaGFzaG1hcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfaW5pdCksIChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlc19mb3JfcGx1Z2luX3VubG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFNwZWVkIHVwIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQoKSBieSB1c2luZyBhIGhhc2htYXAuCgkgIEZpeGVzICM0NTk1MDEuCgoyMDA3LTA3LTIzIDEwOjM5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBBdm9pZCBkb3VibGUgbWVtb3J5IHVzYWdlIGZvciBwbHVnaW5mZWF0dXJlIG5hbWVzLiBGaXhlcyAjNDU5NDY2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9zZXRfbmFtZSk6CgkgIEF2b2lkIGRvdWJsZSBtZW1vcnkgdXNhZ2UgZm9yIHBsdWdpbmZlYXR1cmUgbmFtZXMuIEZpeGVzICM0NTk0NjYuCgoyMDA3LTA3LTIyIDE4OjI2OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5oOiBTbWFsbCBhZGRpdGlvbiB0byBHU1RfRkxPV19JU19GQVRBTCgpIGRvY3M6IG1lbnRpb24gdGhhdCBlbGVtZW50cyBkcml2aW5nIHRoZSBwaXBlbGluZSBtYXkgbmVlZCB0byBleHBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgU21hbGwgYWRkaXRpb24gdG8gR1NUX0ZMT1dfSVNfRkFUQUwoKSBkb2NzOiBtZW50aW9uIHRoYXQgZWxlbWVudHMKCSAgZHJpdmluZyB0aGUgcGlwZWxpbmUgbWF5IG5lZWQgdG8gZXhwbGljaXRseSBjaGVjayBmb3IgTk9UX0xJTktFRCBhcwoJICB3ZWxsLCBzaW5jZSBJU19GQVRBTCBkb2Vzbid0IGNvdmVyIHRoYXQuCgoyMDA3LTA3LTIyIDE4OjE2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBGaXggdHlwbyBhbmQgZHVwbGljYXRlIGVudHJ5IGluIHZpZGVvIGZvcm1hdHMgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBGaXggdHlwbyBhbmQgZHVwbGljYXRlIGVudHJ5IGluIHZpZGVvIGZvcm1hdHMgbGlzdC4KCjIwMDctMDctMjIgMTI6MTg6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBBbHNvIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludCB3aGVuIHVzaW5nIGN1YmljIGludGVycG9sYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBBbHNvIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludCB3aGVuIHVzaW5nIGN1YmljIGludGVycG9sYXRpb24uCgoyMDA3LTA3LTIxIDIxOjIwOjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBXaGVuIGxpbmVhcmx5IGludGVycG9sYXRpbmcgaW50ZWdlciB0eXBlcywgcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IGJ5IGFkZGluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgV2hlbiBsaW5lYXJseSBpbnRlcnBvbGF0aW5nIGludGVnZXIgdHlwZXMsIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludAoJICBieSBhZGRpbmcgMC41LiBEb24ndCBkbyBpdCBmb3IgZmxvYXQvZG91YmxlIHR5cGVzLgoJICBGaXhlcyB0aGUgZmFpbGluZyBjb250cm9sbGVyIHRlc3Qgb24gbXkgbWFjaGluZSwgd2hpY2ggaXMgc29tZWhvdwoJICByb3VuZGluZyBkaWZmZXJlbnRseSB0aGFuIG9uIHRoZSBidWlsZGJvdHMuCgoyMDA3LTA3LTIwIDA3OjM2OjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weTogQmV0dGVyIGxvZyBwYXJzaW5nIChjYXRlZ29yaWVzIGNhbiBoYXZlIC0pLiBBZGp1c3QgdGV4dCB2cy4gbGluZXMsIHNvIHRoYXQgdGhleSBzcGFuIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIEJldHRlciBsb2cgcGFyc2luZyAoY2F0ZWdvcmllcyBjYW4gaGF2ZSAtKS4gQWRqdXN0IHRleHQgdnMuIGxpbmVzLCBzbwoJICB0aGF0IHRoZXkgc3BhbiB0aGUgc2FtZSB5LXJhbmdlLgoKMjAwNy0wNy0yMCAwNzoyNjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IFNhdmUgbXkgdGhvdWdodHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvYXVkaW9iYXNlY2xhc3Nlcy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIFNhdmUgbXkgdGhvdWdodHMuCgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIEFkZCBub3RlIHRvIHVzZSBnX2Fzc2VydCB0eXBlIG1hY3Jvcy4KCjIwMDctMDctMjAgMDc6MDk6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBsaWJtIGNoZWNrIGFzIHdlIHVzZSBpbiBmb3IgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBBZGQgbGlibSBjaGVjayBhcyB3ZSB1c2UgaW4gZm9yIHBsdWdpbnMuCgoyMDA3LTA3LTE4IDE0OjMxOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2hlY2sgdGhhdCB0aGUgc3RhdGVfY29va2llIGhhc24ndCBjaGFuZ2VkIHNpbmNlIHRoZSBjb250aW51ZV9mdW5jIHdhcyBzY2hlZHVsZWQuIEF2b2lkcyBwcm9ibGVtcyB3aGVyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICBDaGVjayB0aGF0IHRoZSBzdGF0ZV9jb29raWUgaGFzbid0IGNoYW5nZWQgc2luY2UgdGhlIGNvbnRpbnVlX2Z1bmMKCSAgd2FzIHNjaGVkdWxlZC4gQXZvaWRzIHByb2JsZW1zIHdoZXJlIHRoZSBzdGF0ZSBjaGFuZ2VzIGJhY2sgdG8KCSAgc29tZXRoaW5nIGl0IHNob3VsZG4ndCBiZSBiZWNhdXNlIGl0IHdhcyBjaGFuZ2VkIGluIHRoZSBtZWFudGltZS4KCjIwMDctMDctMTcgMDk6NDQ6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBGaXggbWVtb3J5IGxlYWsuIEJlIGxlc3MgdmVyYm9zZSBpbiB0aGUgbG9nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9jb25zdF9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBGaXggbWVtb3J5IGxlYWsuIEJlIGxlc3MgdmVyYm9zZSBpbiB0aGUgbG9nLgoKMjAwNy0wNy0xNiAxNjo0NDozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBBZGQgZmlsZSB0byBjdnNpZ25vcmUgYXMgY29tbWFuZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBBZGQgZmlsZSB0byBjdnNpZ25vcmUgYXMgY29tbWFuZGVkLgoKMjAwNy0wNy0xNiAxNjowNDo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IFVzZSBhIEdTdGF0aWNNdXRleCB0byBwcm90ZWN0IGFsbCBjYXNlcyB3aGVyZSBsaWJjaGVjayBmYWlsX2lmL2ZhaWxfdW5sZXNzIG1hY3JvcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXFfZHVtbXlwYWRfY2hhaW4pLAoJICAobXFfZHVtbXlwYWRfZXZlbnQpLCAocnVuX291dHB1dF9vcmRlcl90ZXN0KToKCSAgVXNlIGEgR1N0YXRpY011dGV4IHRvIHByb3RlY3QgYWxsIGNhc2VzIHdoZXJlIGxpYmNoZWNrCgkgIGZhaWxfaWYvZmFpbF91bmxlc3MgbWFjcm9zIG1pZ2h0IGJlIGNhbGxlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMKCSAgc2ltdWx0YW5lb3VzbHkgdG8gYXZvaWQgZXJyb3JzIGxpa2U6CgkgICJjaGVja19wYWNrLmM6MTA3OiA6LTEwODE3MjU0MDA6QmFkIG1lc3NhZ2UgdHlwZSBhcmciCgoyMDA3LTA3LTE2IDE1OjE5OjA2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogTWFrZSBzdXJlIHdlIHNldCB0aGUgcGlwZWxpbmUgYmFjayB0byB0aGUgTlVMTCBzdGF0ZSBiZWZvcmUgZHJvcHBpbmcgb3VyIGZpbmFsIHJlZmVyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2Ugc3VyZSB3ZSBzZXQgdGhlIHBpcGVsaW5lIGJhY2sgdG8gdGhlIE5VTEwgc3RhdGUgYmVmb3JlCgkgIGRyb3BwaW5nIG91ciBmaW5hbCByZWZlcmVuY2UuCgoyMDA3LTA3LTE2IDE0OjU1OjI2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiBNYWtlIHRoZSB0ZWUgc3RyZXNzLXRlc3QgYSBsaXR0bGUgbGVzcyBzdHJlc3NmdWwgc28gaXQgZG9lc24ndCBqdXN0IHRpbWUgb3V0IG9uIHNsb3ctbWFjaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSB0aGUgdGVlIHN0cmVzcy10ZXN0IGEgbGl0dGxlIGxlc3Mgc3RyZXNzZnVsIHNvIGl0IGRvZXNuJ3QganVzdAoJICB0aW1lIG91dCBvbiBzbG93LW1hY2hpbmVzLCBhbmQgcmVtb3ZlIGEgc21hbGwgcmFjZSB3aGVuIGl0J3Mgc3RhcnRpbmcKCSAgdXAgYnkgYWRkaW5nIGEgZ2V0X3N0YXRlKCkgY2FsbC4KCjIwMDctMDctMTYgMTI6MzY6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuYzogQXZvaWQgcmVhZGluZyByZWdpc3RyeSB0d2ljZSBvbiBzdGFydHVwLiBGaXhlcyAjNDU3MzIyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEF2b2lkIHJlYWRpbmcgcmVnaXN0cnkgdHdpY2Ugb24gc3RhcnR1cC4gRml4ZXMgIzQ1NzMyMi4KCjIwMDctMDctMTMgMTQ6MTE6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGtnY29uZmlnLzogU3Vic3RpdHV0ZSB0aGUgQ0ZMQUdTIGZvciBsaWJjaGVjayBpbnRvIG91ciAucGMgZmlsZSB0b28gc28gdGhhdCBkZXBlbmRlbnQgbW9kdWxlcyB3aWxsIHBpY2sgaXQgdXAgcHJvcGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgU3Vic3RpdHV0ZSB0aGUgQ0ZMQUdTIGZvciBsaWJjaGVjayBpbnRvIG91ciAucGMgZmlsZSB0b28gc28gdGhhdAoJICBkZXBlbmRlbnQgbW9kdWxlcyB3aWxsIHBpY2sgaXQgdXAgcHJvcGVybHkgaWYgbGliY2hlY2sgaXMgaW5zdGFsbGVkCgkgIGludG8gc29tZSBvdGhlciBwcmVmaXguCgoyMDA3LTA3LTEzIDEzOjQ5OjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUmV2ZXJ0IHRoZSBwa2ctY29uZmlnIGNoZWNrIGZvciBsaWJjaGVjaywgc2luY2UgaXQgcHVsbHMgaW4gdGhlIHdyb25nIG5vbi1QSUMgbGliY2hlY2suYSBvbiBVYnVudHUgYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCB0aGUgcGtnLWNvbmZpZyBjaGVjayBmb3IgbGliY2hlY2ssIHNpbmNlIGl0IHB1bGxzIGluIHRoZQoJICB3cm9uZyBub24tUElDIGxpYmNoZWNrLmEgb24gVWJ1bnR1IGFuZCBwcm9iYWJseSBGZWRvcmEgdG9vLiBXZSBuZWVkCgkgIGEgcHJvcGVyIHNvbHV0aW9uLCBlaXRoZXIgZnJvbSB0aGUgY2hlY2sgcHJvamVjdCwgb3Igc29tZXRoaW5nIGVsc2UuCgoyMDA3LTA3LTEyIDExOjEwOjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgcGtnLWNvbmZpZyB0byBsb2NhdGUgY2hlY2suCgoyMDA3LTA3LTEwIDIwOjEwOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggZG9jIHN5bnRheC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgRml4IGRvYyBzeW50YXguCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBkZXByZWNhdGlvbiBndWFyZHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb24ndCBkb2N1bWVudCBvYmplY3QgKHRoaXMgaXMgaW1wbGljaXRseSBwcml2YXRlKS4KCjIwMDctMDctMDggMTQ6MTE6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IFdoZW4gZGVzZXJpYWxpc2luZyBmb289YmFyIHdpdGhvdXQgYSB0eXBlIGNhc3QsIGNoZWNrIGlmIGl0J3MgYSBib29sZWFuIGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8gYSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIFdoZW4gZGVzZXJpYWxpc2luZyBmb289YmFyIHdpdGhvdXQgYSB0eXBlIGNhc3QsIGNoZWNrIGlmIGl0J3MgYQoJICBib29sZWFuIGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8gYSBzdHJpbmcgdHlwZSwgb3RoZXJ3aXNlIHRoaW5ncyBsaWtlCgkgIGF1ZGlvdGVzdHNyYyAhIGF1ZGlvL3gtcmF3LWludCxzaWduZWQ9dHJ1ZSAhIGZha2VzaW5rIHdvbid0IHdvcmssCgkgIGJlY2F1c2UgdGhlIGZpbHRlcmNhcHMgZW5kIHVwIGhhdmluZyBhIHNpZ25lZD0oc3RyaW5nKXRydWUgZmllbGQsCgkgIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyBsYXRlciB3aGVuIGludGVyc2VjdGlvbiBjYXBzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzLgoKMjAwNy0wNy0wNiAyMTo1MDowMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFQSTogUmVmYWN0b3IgR3N0Q29udHJvbGxlciBpbnRvIHRoZSBjb3JlIGNvbnRyb2xsZXIgd2hpY2ggY2FuIHRha2UgYSBHc3RDb250cm9sU291cmNlIGZvciBwcm92Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9hZGRfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLCAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZnJlZSksCgkgIChnc3RfY29udHJvbGxlcl9maW5kX2NvbnRyb2xsZWRfcHJvcGVydHkpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXcpLCAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X3Byb3BlcnR5X2Rpc2FibGVkKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9kaXNhYmxlZCksIChnc3RfY29udHJvbGxlcl9zZXRfY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X2NvbnRyb2xfc291cmNlKSwgKGdzdF9jb250cm9sbGVyX2dldCksCgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksIChnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkpLAoJICAoX2dzdF9jb250cm9sbGVyX2Rpc3Bvc2UpLCAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlcl9zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldCksIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X2FsbCksIChnc3RfY29udHJvbGxlcl9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6CgkgIChnc3RfY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCksIChnc3RfY29udHJvbF9zb3VyY2VfaW5pdCksCgkgIChnc3RfY29udHJvbF9zb3VyY2VfZ2V0X3ZhbHVlKSwKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9nZXRfdmFsdWVfYXJyYXkpLCAoZ3N0X2NvbnRyb2xfc291cmNlX2JpbmQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9nZXRfZmlyc3RfdmFsdWUpLAoJICAoX2ludGVycG9sYXRlX25vbmVfZ2V0KSwgKGludGVycG9sYXRlX25vbmVfZ2V0KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X2Jvb2xlYW5fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpLAoJICAoX2ludGVycG9sYXRlX3RyaWdnZXJfZ2V0KSwgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2Jvb2xlYW5fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZyZWUpLCAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfcmVzZXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfbmV3KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfYmluZCksCgkgIChnc3RfY29udHJvbF9wb2ludF9jb21wYXJlKSwgKGdzdF9jb250cm9sX3BvaW50X2ZpbmQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVybmFsKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3Vuc2V0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3Vuc2V0X2FsbCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9nZXRfYWxsKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9jb3VudCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9pbml0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2Rpc3Bvc2UpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgIEFQSTogUmVmYWN0b3IgR3N0Q29udHJvbGxlciBpbnRvIHRoZSBjb3JlIGNvbnRyb2xsZXIgd2hpY2ggY2FuIHRha2UKCSAgYSBHc3RDb250cm9sU291cmNlIGZvciBwcm92aWRpbmcgYWN0dWFsIHZhbHVlcyBmb3IgdGltZXN0YW1wcy4KCSAgSW1wbGVtZW50IGEgaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZSBhbmQgdXNlIHRoaXMgZm9yIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHksIGRlcHJlY2F0ZSBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyB0aGF0IGFyZSBub3cgaGFuZGxlZAoJICBieSBHc3RDb250cm9sU291cmNlIG9yIEdzdEludGVycG9sYXRpb25Db250cm9sU291cmNlLgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGRpc2FibGUgdGhlIGNvbnRyb2xsZXIgY29tcGxldGVseSBvciBvbmx5IGZvcgoJICBzcGVjaWZpYyBwcm9wZXJ0aWVzLiBGaXhlcyAjNDUwNzExLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIEFkZCBuZXcgZnVuY3Rpb25zIGFuZCBjbGFzc2VzIHRvIHRoZSBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgIFBvcnQgdW5pdCB0ZXN0IGFuZCBleGFtcGxlIHRvIHRoZSBuZXcgQVBJIGFuZCBhZGQgc29tZSBuZXcKCSAgdW5pdCB0ZXN0cy4KCjIwMDctMDctMDUgMDk6MDY6MDIgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogSW1wbGVtZW50IG5vbi1kZWZhdWx0IEdzdFBhZEludExpbmtGdW5jdGlvbiBmb3IgbXVsdGlxdWV1ZSBwYWRzIHNvIHRoYXQgdGhlIHBpcGVsaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAoZ3N0X211bHRpX3F1ZXVlX2dldF9pbnRlcm5hbF9saW5rcyksIChhcHBseV9idWZmZXIpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBJbXBsZW1lbnQgbm9uLWRlZmF1bHQgR3N0UGFkSW50TGlua0Z1bmN0aW9uIGZvciBtdWx0aXF1ZXVlIHBhZHMgc28gdGhhdAoJICB0aGUgcGlwZWxpbmUgbGF5b3V0IGNhbiBiZSB0cmFja2VkIGNvcnJlY3RseS4gRml4ZXMgIzQ1MzczMi4KCjIwMDctMDctMDUgMDg6NDI6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBTaW1wbGl0eSAtLWV4dHJhLWRpciBhcyBndGtkb2Mgc2NhbnMgcmVjdXJzaXZlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIFNpbXBsaXR5IC0tZXh0cmEtZGlyIGFzIGd0a2RvYyBzY2FucyByZWN1cnNpdmVseS4KCjIwMDctMDctMDMgMTc6MDE6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFdoZW4gd2UgZ290IGFuIGVycm9yLCB0aGVyZSBpcyBubyBwb2ludCBpbiB3YWl0aW5nIGZvciBwcmVyb2xsIHdoZW4gc2h1dHRpbmcgZG93bi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFdoZW4gd2UgZ290IGFuIGVycm9yLCB0aGVyZSBpcyBubyBwb2ludCBpbiB3YWl0aW5nIGZvciBwcmVyb2xsIHdoZW4KCSAgc2h1dHRpbmcgZG93bi4KCjIwMDctMDctMDMgMTY6MjY6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBCZSBhIGxvdCBzbWFydGVyIHdoZW4gZGVjaWRpbmcgd2hhdCBzcmNwYWQgdG8gdXNlIGZvciBwcm94eWluZyB0aGUgYnVmZmVyX2FsbG9jLiBBbHNvIGhhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KSwKCSAgKGdzdF90ZWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF90ZWVfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X3RlZV9maW5kX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfdGVlX2RvX3B1c2gpLCAoY2xlYXJfcGFkcyksIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3RlZV9jaGFpbik6CgkgIEJlIGEgbG90IHNtYXJ0ZXIgd2hlbiBkZWNpZGluZyB3aGF0IHNyY3BhZCB0byB1c2UgZm9yIHByb3h5aW5nCgkgIHRoZSBidWZmZXJfYWxsb2MuIEFsc28gaGFuZGxlIHBhZCBhZGRlZC9yZW1vdmVkIHdoZW4gZG9pbmcgc28uCgkgIEZpeGVzICMzNTc5NTkuCgkgIEtlZXAgdHJhY2sgb2Ygd2hhdCBwYWRzIHdlIGFscmVhZHkgcHVzaGVkIG9uIGluIGNhc2Ugd2UgaGF2ZSBwYWRzCgkgIGFkZGVkL3JlbW92ZWQgd2hpbGUgcHVzaGluZy4gRml4ZXMgIzM3NDYzOQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoaGFuZG9mZiksIChHU1RfU1RBUlRfVEVTVCksCgkgICh0ZWVfc3VpdGUpOgoJICBBZGRlZCB1bml0IHRlc3QgZm9yIHBhZCByZXN5bmMuCgoyMDA3LTA3LTAxIDIxOjMxOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3N2LnBvOgoJICBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCjIwMDctMDctMDEgMjE6MzA6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBuZXcgRmlubmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0aW9uIGJ5OiBUb21taSBWYWluaWthaW5lbiA8VG9tbWkuVmFpbmlrYWluZW5AaWtpLmZpPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vZmkucG86CgkgIEFkZGVkIG5ldyBGaW5uaXNoIHRyYW5zbGF0aW9uLgoKMjAwNy0wNi0yOCAxMToyNToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBXaGVuIGZpZ3VyaW5nIG91dCB3aGVuIGEgcXVldWUgaXMgZmlsbGVkLCB1c2Ugb3VyIGludGVybmFsIHRpbWUgZXN0aW1hdGUgYmFzZWQgb24gcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYik6CgkgIFdoZW4gZmlndXJpbmcgb3V0IHdoZW4gYSBxdWV1ZSBpcyBmaWxsZWQsIHVzZSBvdXIgaW50ZXJuYWwgdGltZSBlc3RpbWF0ZQoJICBiYXNlZCBvbiBzZWdtZW50cywganVzdCBsaWtlIGNoZWNrX2Z1bGwgZG9lcy4KCjIwMDctMDYtMjcgMTE6NDc6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyA0MzA2ODIgY2xvc2VkIGJ5IHByZXZpb3VzIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnIDQzMDY4MiBjbG9zZWQgYnkgcHJldmlvdXMgY29tbWl0LgoKMjAwNy0wNi0yNyAxMTo0MzowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogUmVtb3ZlIDMgZG8tbm90aGluZyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKToKCSAgUmVtb3ZlIDMgZG8tbm90aGluZyBtZXRob2RzLgoKMjAwNy0wNi0yNyAxMToyNDowOCArMDAwMCAgVGltIEFuZ3VzIDx0aW1Abmd1cy5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgY29weSB3aGVuIHNldHRpbmcgImNhcHMiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRpbSBBbmd1cyA8dGltIGF0IG5ndXMgZG90IG5ldD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgY29weSB3aGVuIHNldHRpbmcgImNhcHMiLgoJICBGaXggZG9jdW1lbnRhdGlvbiB0byBjbGFyaWZ5IHRoaXMgYmVoYXZpb3VyLiBGaXhlcyAjNDQ5NDE0LgoKMjAwNy0wNi0yNyAxMDoxMjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogUmVtb3ZlIGVtcHR5IGluc3RhbmNlX2luaXQoKSBmdW5jdGlvbnMgdG8gc2F2ZSByZWxvY3MgYW5kIGxlc3NlbiB0aGUgbm9pc2UuIFJlbW92ZSBzb21lIG9mIHRoZSBmdW5jdGlvbiBwcm90b3R5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2luaXQpOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFuZGxlcl9iYXNlX2luaXQpOgoJICBSZW1vdmUgZW1wdHkgaW5zdGFuY2VfaW5pdCgpIGZ1bmN0aW9ucyB0byBzYXZlIHJlbG9jcyBhbmQgbGVzc2VuIHRoZQoJICBub2lzZS4gUmVtb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIHByb3RvdHlwZXMgdGhhdCBhcmUgZG91YmxlZCBieQoJICBHX0RFRklORV9UWVBFLgoKMjAwNy0wNi0yNyAwOTozNDowMSArMDAwMCAgw4l0aWVubmUgTm9yZWF1LUjDqWJlcnQgPGV0aWVubmVAZGVlcHVuZGVyLm9yZz4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBZGQgcGVlciBhbmQgZGlyZWN0aW9uIGluIHRoZSBYTUwgc2VyaWFsaXNhdGlvbiBvZiBnaG9zdHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogw4l0aWVubmUgTm9yZWF1LUjDqWJlcnQgPGV0aWVubmUgYXQgZGVlcHVuZGVyIGRvdCBvcmc+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NhdmVfdGh5c2VsZik6CgkgIEFkZCBwZWVyIGFuZCBkaXJlY3Rpb24gaW4gdGhlIFhNTCBzZXJpYWxpc2F0aW9uIG9mIGdob3N0cGFkcy4KCSAgRml4ZXMgIzQ0OTIyNi4KCjIwMDctMDYtMjYgMTY6MjQ6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUHJlc2VydmUgdXNlZnVsIGluZm9ybWF0aW9uLCB0aGFua3MgVGltLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFByZXNlcnZlIHVzZWZ1bCBpbmZvcm1hdGlvbiwgdGhhbmtzIFRpbS4KCjIwMDctMDYtMjYgMTQ6NDU6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IFRha2UgdGhlIG11bHRpcXVldWUgbG9jayB3aGVuIHVwZGF0aW5nIHRoZSBmaWxsIGxldmVsIHNvIHdlIGRvbid0IGdldCBjb25mdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfaW5pdCksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwgKGFwcGx5X3NlZ21lbnQpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAod2FrZV91cF9uZXh0X25vbl9saW5rZWQpLAoJICAoY29tcHV0ZV9oaWdoX2lkKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgVGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHdoZW4gdXBkYXRpbmcgdGhlIGZpbGwgbGV2ZWwgc28gd2UgZG9uJ3QgZ2V0CgkgIGNvbmZ1c2VkLgoJICBBZnRlciBhcHBseWluZyBhIGJ1ZmZlciBvciBldmVudCBvbiB0aGUgc3JjIHBhZCBzZWdtZW50LCBtYWtlIHN1cmUgdG8KCSAgY2FsbCBnc3RfZGF0YV9xdWV1ZV9saW1pdHNfY2hhbmdlZCgpIHRvIGdldCB0aGUgZGF0YSBxdWV1ZSB0byB1bmJsb2NrCgkgIGFuZCBjaGVjayB0aGUgZmlsbGVkIHN0YXRlIGFnYWluLgoJICBSZXdvcmsgdGhlIG5vdC1saW5rZWQgcGFkIGhhbmRsaW5nIHNvIHRoZSBsb2dpYyBpcyB0aGF0IG5vdC1saW5rZWQKCSAgcGFkcyBjYW4gcHVzaCBhcyBmYXN0IGFzIHRoZXkgbGlrZSwgYnV0IG9ubHkgc28gdGhleSBuZXZlciBnZXQKCSAgYWhlYWQgb2YgYW55IGxpbmtlZCBwYWRzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG1xX3NpbmtwYWRfdG9fc3JjcGFkKSwKCSAgKG1xX2R1bW15cGFkX2dldGNhcHMpLCAobXFfZHVtbXlwYWRfY2hhaW4pLCAobXFfZHVtbXlwYWRfZXZlbnQpLAoJICAocnVuX291dHB1dF9vcmRlcl90ZXN0KSwgKEdTVF9TVEFSVF9URVNUKSwgKG11bHRpcXVldWVfc3VpdGUpOgoJICBBZGQgYSB0ZXN0IHRvIGNoZWNrIHRoYXQgbm90LWxpbmtlZCBwYWRzIGFsd2F5cyBzdGF5IGJlaGluZAoJICBsaW5rZWQgcGFkcy4KCjIwMDctMDYtMjYgMTE6NTc6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogU29tZSB1cGRhdGVzIHRvIHRoZSByZWxlYXNlIHByb2NlZHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgU29tZSB1cGRhdGVzIHRvIHRoZSByZWxlYXNlIHByb2NlZHVyZS4KCjIwMDctMDYtMjYgMDg6MjY6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBNaWNyb29wdGltaXphdGlvbiB0aGF0IHNhdmVzIHN0dW5uaW5nIDgwIGJ5dGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKF9fZ3N0X2VsZW1lbnRfZGV0YWlsc19jbGVhcik6CgkgIE1pY3Jvb3B0aW1pemF0aW9uIHRoYXQgc2F2ZXMgc3R1bm5pbmcgODAgYnl0ZXMuCgoyMDA3LTA2LTI1IDEyOjM1OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvOiBVcGRhdGUgZG9jcyB3aXRoIGNhcHMgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIFVwZGF0ZSBkb2NzIHdpdGggY2FwcyBpbmZvLgoKMjAwNy0wNi0yMyAyMjo1NjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby9pdC5wbzogVXBkYXRlZCBJdGFsaWFuIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9pdC5wbzoKCSAgVXBkYXRlZCBJdGFsaWFuIHRyYW5zbGF0aW9uLgoKMjAwNy0wNi0yMyAxMToxOToxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGZpeCB3aW4zMiBhcmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggd2luMzIgYXJjaAoKMjAwNy0wNi0yMyAxMToxODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICA4MCBsaW5lIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgODAgbGluZSBmaXgKCjIwMDctMDYtMjMgMTE6MTU6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGUgVmlldG5hbWVzZSB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgKiBwby92aS5wbzoKCSAgVXBkYXRlIFZpZXRuYW1lc2UgdHJhbnNsYXRpb25zLgoKMjAwNy0wNi0yMSAyMjozNzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVtb3ZlIHVudXNlZCBzaWduYWwgZW51bS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBSZW1vdmUgdW51c2VkIHNpZ25hbCBlbnVtLgoKMjAwNy0wNi0yMSAxODowMDo1OCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogTUFJTlRBSU5FUlM6CgkgIHVwZGF0ZSBNQUlOVEFJTkVSUyBmaWxlIHRvIHJlZmxlY3QgY3VycmVudCByZWFsaXRpZXMgYmV0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgTUFJTlRBSU5FUlMgZmlsZSB0byByZWZsZWN0IGN1cnJlbnQgcmVhbGl0aWVzIGJldHRlcgoKMjAwNy0wNi0yMSAxNjozOTowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBCZWVmIHVwIGFuZCBpbmNsdWRlIHRoZSBkb2NzIGZvciBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCBhbmQgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIGFuZCBhZGQgdGhlIEEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwpOgoJICBCZWVmIHVwIGFuZCBpbmNsdWRlIHRoZSBkb2NzIGZvciBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCBhbmQKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIGFuZCBhZGQgdGhlIEFQSSBrZXl3b3JkCgkgIGluIHRoZSBDaGFuZ2VMb2cuCgoyMDA3LTA2LTIxIDE0OjM1OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEZpeCBzZXR0aW5nIG1heC0qIHByb3BlcnRpZXMgYWZ0ZXIgYWRkaW5nIHF1ZXVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCk6CgkgIEZpeCBzZXR0aW5nIG1heC0qIHByb3BlcnRpZXMgYWZ0ZXIgYWRkaW5nIHF1ZXVlcy4KCSAgVXNlIElTX0ZJTExFRCBmb3IgY2hlY2tpbmcgdmlzaWJsZSBpdGVtcy4KCSAgU2lnbmFsIG92ZXJydW4gaWYgbXVsdGlwbGUgcXVldWVzIG92ZXJydW4uCgkgIEFkZCBleHRyYSBkZWJ1ZyBvdXRwdXQuCgkgIFBhdGNoIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoKMjAwNy0wNi0yMSAxNDoyOTowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgU2F2aW5nIHJlbG9jYXRpb25zIGZvciBHVHlwZUluZm8gYW5kIEdzdEVsZW1lbnREZXRhaWxzLiBGaXhlcyAjNDM3NDU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYmFzZV9pbml0KSwKCSAgKGFwcGx5X2J1ZmZlciksIChnc3RfcXVldWVfY2hhaW4pOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICBTYXZpbmcgcmVsb2NhdGlvbnMgZm9yIEdUeXBlSW5mbyBhbmQgR3N0RWxlbWVudERldGFpbHMuIEZpeGVzICM0Mzc0NTcuCgoyMDA3LTA2LTIxIDA5OjQ2OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBGaXggdHlwbyBpbiBpYW5hLm9yZyBVUkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgRml4IHR5cG8gaW4gaWFuYS5vcmcgVVJJLgoKMjAwNy0wNi0xOSAyMTo1ODozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wNi0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgICh0ZXN0X3N0YXRlX2NoYW5nZV9yZXR1cm5zKTogRW5hYmxlIHB1bGwtbW9kZSB0ZXN0cyBub3cgdGhhdAoJICBiYXNlc2luayBoYXMgYmVlbiBmaXhlZC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCk6CgkgIENoYW5nZWQgZnJvbSBnc3RfYmFzZV9zaW5rX2lzX3ByZXJvbGxlZCwgcmV2ZXJzaW5nIHRoZSBzZW5zZSBvZgoJICB0aGUgcmV0dXJuIHZhbHVlLiBSZXR1cm5zIEZBTFNFIGFsc28gaWYgdGhlIHNpbmsgaXMgaW4gcHVsbCBtb2RlLAoJICBpbiB3aGljaCBjYXNlIGl0IG5lZWRzIG5vIHByZXJvbGwuCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5LCBnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IFVwZGF0ZSBmb3IKCSAgbmVlZHNfcHJlcm9sbCBjaGFuZ2UuCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IEFkZCBhIGNhc2UgZm9yIFJFQURZX1RPX1BBVVNFRCBhZnRlcgoJICBjaGFpbmluZyB1cCwgaW4gd2hpY2ggd2UgcmV0dXJuIFNVQ0NFU1MgZGlyZWN0bHkgaWYgd2UgYWN0aXZhdGVkCgkgIGluIHB1bGwgbW9kZSBpbnN0ZWFkIG9mIEFTWU5DLiBJbnZvbHZlcyBjb3VudGVyaW5nIGFuIGFzeW5jX3N0YXJ0CgkgIG1lc3NhZ2Ugc2VudCBiZWZvcmUgY2hhaW5pbmcgdXA7IG5vdCBzdXJlIGlmIHRoaXMgaXMgY29ycmVjdCwgaW4KCSAgYW4gaWRlYWwgd29ybGQgd2Ugb25seSBzZW5kIGFzeW5jLXN0YXJ0IHdoZW4gYWN0aXZhdGluZyBpbiBwdXNoCgkgIG1vZGUuCgoyMDA3LTA2LTE5IDIxOjI4OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wNi0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgICh0ZXN0X3N0YXRlX2NoYW5nZV9yZXR1cm5zKTogTmV3IHRlc3QsIHBhcnRpYWxseSBkaXNhYmxlZCB1bnRpbAoJICBiYXNlc2luayBpcyBmaXhlZC4KCjIwMDctMDYtMTkgMTY6MDU6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRml4IGV2ZW50IGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgRml4IGV2ZW50IGxlYWsuCgoyMDA3LTA2LTE5IDEwOjQxOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNb3ZlIHRoZSBjb21tb24gY29kZSBmb3IgcG9zdGluZyBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMgaW50byBvbmUgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9wdXNoX3N0YXRlX2NvbnRpbnVlKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoYmluX2hhbmRsZV9hc3luY19kb25lKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIE1vdmUgdGhlIGNvbW1vbiBjb2RlIGZvciBwb3N0aW5nIHN0YXRlLWNoYW5nZSBtZXNzYWdlcyBpbnRvCgkgIG9uZSBmdW5jdGlvbi4KCSAgQnJvYWRjYXN0IHRoZSBzdGF0ZSBzaWduYWwgYWZ0ZXIgd2UgcG9zdGVkIHRoZSBtZXNzYWdlcy4KCSAgTWFyayB0aGUgYmluIGFzIGJ1c3kgd2hlbiBpdCdzIGRvaW5nIGEgc3RhdGUtY2hhbmdlLgoJICBNYWtlIHN1cmUgYXN5bmMtc3RhcnQvZG9uZSBtZXNzYWdlcyBkb24ndCBpbnRlcmZlcmUgd2l0aCB0aGUgYmluJ3MKCSAgc3RhdGUgd2hlbiBpdCdzIGJ1c3kuCgkgIEFmdGVyIHRoZSBzdGF0ZSBjaGFuZ2UsIGxldCB0aGUgYmluIGNoZWNrIHdoaWNoIGVsZW1lbnRzIGNvbXBsZXRlZCB0aGUKCSAgc3RhdGUgY2hhbmdlIHdoaWxlIGl0IHdhcyBidXN5IHNvIHRoYXQgaXQgY2FuIHVwZGF0ZSBpdHMgc3RhdGUuCgoyMDA3LTA2LTE5IDEwOjM4OjM5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IEFkZCBhIG5vdGUgYWJvdXQgdXBkYXRpbmcgdGhlIGRvYXAgZmlsZSB0byB0aGUgcmVsZWFzZSBjaGVja2xpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgQWRkIGEgbm90ZSBhYm91dCB1cGRhdGluZyB0aGUgZG9hcCBmaWxlIHRvIHRoZSByZWxlYXNlIGNoZWNrbGlzdAoKMjAwNy0wNi0xOCAxNjo0NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBNYWtlIHN1cmUgd2UgZG9uJ3QgcmVmZXJlbmNlIHRoZSBidWZmZXIvZXZlbnQgYWZ0ZXIgd2UgaGF2ZSBnaXZlbiBhd2F5IG93bmVyc2hpcCBpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCByZWZlcmVuY2UgdGhlIGJ1ZmZlci9ldmVudCBhZnRlciB3ZSBoYXZlIGdpdmVuIGF3YXkKCSAgb3duZXJzaGlwIGluIHRoZSBxdWV1ZS4KCjIwMDctMDYtMTggMTU6MTU6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogVXBkYXRlIHF1ZXVlIHN0YXRlIF9hZnRlcl8gYWRkaW5nIHRoZSBpdGVtIGluIHRoZSBxdWV1ZSBiZWNhdXNlIGVsc2Ugd2UgY291bGQgZW5kIHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgIFVwZGF0ZSBxdWV1ZSBzdGF0ZSBfYWZ0ZXJfIGFkZGluZyB0aGUgaXRlbSBpbiB0aGUgcXVldWUgYmVjYXVzZSBlbHNlIHdlCgkgIGNvdWxkIGVuZCB1cCBiZWluZyBmdWxsIHdpdGhvdXQgdGhlIGVsZW1lbnQgYWRkZWQgeWV0LgoKMjAwNy0wNi0xOCAxNToxMjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogSW1tZWRpYXRseSBjb21taXQgdGhlIHRvcGxldmVsIGJpbiBzdGF0ZSB3aGVuIHJlY2VpdmluZyBhbiBhc3luYy1kb25lIG1lc3NhZ2UuIFRoaXMgZW5hYmxlcyB1cyB0byBhdm9pZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpLAoJICAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLCAoYmluX2hhbmRsZV9hc3luY19zdGFydCksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEltbWVkaWF0bHkgY29tbWl0IHRoZSB0b3BsZXZlbCBiaW4gc3RhdGUgd2hlbiByZWNlaXZpbmcgYW4gYXN5bmMtZG9uZQoJICBtZXNzYWdlLiBUaGlzIGVuYWJsZXMgdXMgdG8gYXZvaWQgc3Bhd25pbmcgYSB0aHJlYWQgdG8gY29tbWl0IHRoZSBzdGF0ZQoJICBpbiBzb21lIGNvbW1vbiBjYXNlcyBhbmQgaXQgYWxzbyBhdm9pZHMgc29tZSByYWNlcy4KCSAgQXZvaWQgc3Bhd25pbmcgYSBzdGF0ZSB0aHJlYWQgd2hlbiBhZGRpbmcvcmVtb3ZpbmcgYXN5bmMgZWxlbWVudHMgdG8gYQoJICB0b3BsZXZlbCBiaW4uIEluc3RlYWQgd2UgaW1tZWRpYXRseSB1cGRhdGUgdGhlIGJpbiBzdGF0ZS4KCSAgR2V0IHJpZCBvZiBpdGVyYXRpbmcgYWxsIHRoZSBjaGlsZHJlbiB3aGVuIGdldHRpbmcgdGhlIHN0YXRlIGluIHRoZSBiaW4KCSAgYmVjYXVzZSBpdCBpcyBub3cgYWx3YXlzIHVwLXRvLWRhdGUuCgkgIEZpeCBidWcgd2hlcmUgbG9ja2VkIGVsZW1lbnRzIHdvdWxkIGFsd2F5cyByZXR1cm4gX1NVQ0NFU1MgZXZlbiBpdCB0aGV5CgkgIHJldHVybmVkIE5PX1BSRVJPTEwgYmVmb3JlIGJlaW5nIGxvY2tlZC4KCSAgRml4IHRoZSBvcmRlciBvZiB0aGUgc3RhdGVfY2hhbmdlLCBhc3luYy1zdGFydC9kb25lIG1lc3NhZ2VzIHRoYXQgd2FzCgkgIHNvbWV0aW1lcyBpbmNvcnJlY3QuCgkgIE1hcmsgdGhlIHN0YXRlX2RpcnR5IGZpZWxkIGFzIGRlcHJlY2F0ZWQsIHdlIGRvbid0IG5lZWQgaXQgYW55bW9yZSBhcyB3ZQoJICBhcmUgYWx3YXlzIHVwLXRvLWRhdGUuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKToKCSAgU21hbGwgZGVidWcgaW5wcm92ZW1lbnRzLgoJICBSZXR1cm4gdGhlIHByZXZpb3VzIGVsZW1lbnQgc3RhdGUgcmV0dXJuIHdoZW4gbm90aGluZyBpcyBwZW5kaW5nIGluc3RlYWQKCSAgb2YgYmxpbmRseSByZXR1cm5pbmcgU1VDQ0VTUy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChwYWRfYmxvY2tlZF9jYiksCgkgIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgYSB3aG9sZSBidW5jaCBvZiBuZXcgdGVzdGNhc2VzLgoKMjAwNy0wNi0xNyAxNzoyNjo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZSB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL3VrLnBvOgoJICAqIHBvL3ZpLnBvOgoJICBVcGRhdGUgdHJhbnNsYXRpb25zLgoKMjAwNy0wNi0xNSAxNDozNzoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCB0eXBvIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0eXBvIGluIHRoZSBkb2NzLgoKMjAwNy0wNi0xNSAxMTo0OToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoKMjAwNy0wNi0xNSAxMTozNToyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCB1c2UgR1NsaWNlIGJlY2F1c2Ugd2UgZG9uJ3QgZGVwZW5kIG9uID49IDIuMTAgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX2Rlc3Ryb3kpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KToKCSAgRG9uJ3QgdXNlIEdTbGljZSBiZWNhdXNlIHdlIGRvbid0IGRlcGVuZCBvbiA+PSAyLjEwIHlldC4KCjIwMDctMDYtMTUgMTE6MDk6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogUmVtb3ZlIGRlYnVnIHByaW50Zi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwKCSAgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLCAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKToKCSAgUmVtb3ZlIGRlYnVnIHByaW50Zi4KCjIwMDctMDYtMTUgMTE6MDA6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS4qOiBWYXJpb3VzIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfY2xlYW51cCksCgkgIChnc3RfZGF0YV9xdWV1ZV9maW5hbGl6ZSksIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfaXNfZW1wdHkpLAoJICAoZ3N0X2RhdGFfcXVldWVfc2V0X2ZsdXNoaW5nKSwgKGdzdF9kYXRhX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2RhdGFfcXVldWVfcG9wKSwgKGdzdF9kYXRhX3F1ZXVlX2Ryb3BfaGVhZCksCgkgIChnc3RfZGF0YV9xdWV1ZV9saW1pdHNfY2hhbmdlZCksIChnc3RfZGF0YV9xdWV1ZV9nZXRfbGV2ZWwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIEFkZGVkIG1ldGhvZHMgdG8gZ2V0IHRoZSBjdXJyZW50IGxldmVscyBhbmQgdG8gaW5mb3JtIHRoZSBxdWV1ZSB0aGF0IHRoZQoJICAnZnVsbCcgbGltaXRzIGNoYW5nZWQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLCAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fc3RlYWxfb2JqZWN0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX2Rlc3Ryb3kpLCAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRjYXBzKSwgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX3F1ZXJ5KSwgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIEtlZXAgdHJhY2sgb2YgdGltZSBpbiB0aGUgcXVldWUgYnkgbWVhc3VyaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KCSAgcnVubmluZ190aW1lIG9uIGlucHV0IGFuZCBvdXRwdXQuIFRoaXMgZ2l2ZXMgbW9yZSBhY2N1cmF0ZSByZXN1bHRzIGFuZAoJICBjYW4gY29tcGVuc2F0ZSBmb3Igc2VnbWVudHMgY29ycmVjdGx5LgoJICBNYWtlIGEgcXVldWUgYnkgZGVmYXVsdCBvbmx5IDUgYnVmZmVycyBkZWVwLiBXZSB3aWxsIG5vdyBpbmNyZWFzZSB0aGUKCSAgYnVmZmVyIHNpemUgZGVwZW5kaW5nIG9uIHRoZSBmaWxsZWRuZXNzIG9mIHRoZSBvdGhlciBxdWV1ZXMuCgkgIEZhY3RvciBvdXQgY29tbW9uZyBmbHVzaCBjb2RlLgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgYWRkIGFkZGl0aW9uYWwgcmVmY291bnRzIHRvIGJ1ZmZlcnMgd2hlbiB3ZSBjYW4gYXZvaWQKCSAgaXQuCgkgIFByb3BhZ2F0ZSBHc3RGbG93UmV0dXJuIGRpZmZlcmVudGx5LgoJICBVc2UgR1NsaWNlIGZvciBpbnRlcm1lZGlhdGUgR3N0TXVsdGlRdWV1ZUl0ZW1zLgoJICBLZWVwIHRyYWNrIG9mIEVPUy4KCSAgUmVzaXplIHF1ZXVlcyBvbiBvdmVyIGFuZCB1bmRlcnJ1bnMgYmFzZWQgb24gZmlsbGVkIGxldmVsIG9mIG90aGVyCgkgIHF1ZXVlcy4KCSAgV2hlbiBjaGVja2luZyBpZiB0aGUgcXVldWUgaXMgZmlsbGVkLCBwcmVmZXIgdG8gbWVhc3VyZSBpbiB0aW1lIGlmIHdlCgkgIGNhbiBhbmQgZmFsbCBiYWNrIHRvIGJ5dGVzIHdoZW4gbm8gdGltZSBpcyBrbm93bi4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEZpeCByZXR1cm4gdmFsdWUuCgoyMDA3LTA2LTE1IDEwOjQ4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFdvcmsgYXJvdW5kIHRoZSBicm9rZW5uZXNzIG9mIHRoZSBldmVudCB2bWV0aG9kIGluIGJhc2V0cmFuc2Zvcm0uIFByZWZlciB0byByZXR1cm4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnQpOgoJICBXb3JrIGFyb3VuZCB0aGUgYnJva2VubmVzcyBvZiB0aGUgZXZlbnQgdm1ldGhvZCBpbiBiYXNldHJhbnNmb3JtLiBQcmVmZXIKCSAgdG8gcmV0dXJuIFRSVUUgd2hlbiB0aGUgc3ViY2xhc3MgcmV0dXJuZWQgRkFMU0UgKG1lYW5pbmcgZG9uJ3QgZm9yd2FyZAoJICB0aGUgZXZlbnQpLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzLgoKMjAwNy0wNi0xNSAxMDo0Mzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChzZXR1cF9waXBlbGluZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wNi0xNSAwNzoyNzowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBBZGRlZCBtb3JlIGZvcm1hdHMgdG8gY2FwcyB0YWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBBZGRlZCBtb3JlIGZvcm1hdHMgdG8gY2FwcyB0YWJsZS4KCjIwMDctMDYtMTUgMDc6MDI6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUmVtb3ZlIGNydWZ5IGNvZGUuIEdPcHRpb24gZG9lcyBub3QgbmVlZCB0aGlzIHdvcmthcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBSZW1vdmUgY3J1ZnkgY29kZS4gR09wdGlvbiBkb2VzIG5vdCBuZWVkIHRoaXMgd29ya2Fyb3VuZC4KCjIwMDctMDYtMTQgMjA6Mjk6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGaXggd3JvbmcgZ2V0dGVyIGZvciBlbnVtcyBpbiBjb250cm9sbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICBGaXggd3JvbmcgZ2V0dGVyIGZvciBlbnVtcyBpbiBjb250cm9sbGVyLgoKMjAwNy0wNi0xNCAxNzozNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IEludGVyY2VwdCBjcml0aWNhbHMgYW5kIHdhcm5pbmdzIGluIHRoZSBHc3QtUGhvbm9uIGxvZyBkb21haW4sIHNvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCk6CgkgIEludGVyY2VwdCBjcml0aWNhbHMgYW5kIHdhcm5pbmdzIGluIHRoZSBHc3QtUGhvbm9uIGxvZyBkb21haW4sIHNvCgkgIEFTU0VSVF9DUklUSUNBTCgpIGV0Yy4gY2FuIGJlIHVzZWQgaW4gZ3N0LXBob25vbidzIHVuaXQgdGVzdHMgYXMKCSAgd2VsbC4KCjIwMDctMDYtMTQgMTY6MDc6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFyYW1zcGVjcy5jOiBTaW5jZSB0aGlzIGZpbGUgZG9lc24ndCBpbmNsdWRlICJnc3QuaCIgaXQgd2lsbCBub3QgZ28gdGhyb3VnaCB0aGUgbWFjcm9zIHRoYXQgZGlzYWJsZSBHU1RfTE9HIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzogKF9nc3RfcGFyYW1fZnJhY3Rpb25fdmFsaWRhdGUpOgoJICBTaW5jZSB0aGlzIGZpbGUgZG9lc24ndCBpbmNsdWRlICJnc3QuaCIgaXQgd2lsbCBub3QgZ28gdGhyb3VnaCB0aGUKCSAgbWFjcm9zIHRoYXQgZGlzYWJsZSBHU1RfTE9HIGlmIGRlYnVnZ2luZyB3YXMgZGlzYWJsZWQuCgoyMDA3LTA2LTE0IDE1OjU2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVWdseSAnZml4JyBmb3IgdGhlIGNvbnRyb2xsZXIgdW5pdCB0ZXN0IG9uIHRoZSBwNSBib3Q6IGluIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgJ2FsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBVZ2x5ICdmaXgnIGZvciB0aGUgY29udHJvbGxlciB1bml0IHRlc3Qgb24gdGhlIHA1IGJvdDogaW4KCSAgZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgY2hlY2sgd2hldGhlciB0aGUgdmFsdWVzIGFyZSAnYWxtb3N0CgkgIGVxdWFsJyBieSBhbGxvd2luZyBhIHNtYWxsIGFic29sdXRlIGVycm9yLCB3aGljaCBzaG91bGQgYmUgZ29vZAoJICBlbm91Z2ggZm9yIG91ciB1c2UgY2FzZXMgKG5vcm1hbCBudW1iZXJzIGFuZCB2YWx1ZXMgY2xvc2UgdG8gMCkuCgkgIFByb3BlciBmaXhhZ2UgbGVmdCB0byBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIGFmaWNpb25hZG9zLgoKMjAwNy0wNi0xNCAxMjowMzo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgdHdvIGJyZWFrcyB0aGF0cyB3aGVyZSBtaXNzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBBZGQgdHdvIGJyZWFrcyB0aGF0cyB3aGVyZSBtaXNzaW5nLgoKMjAwNy0wNi0xNCAxMTo1Njo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGFuZCBhc3NlcnRfZXF1YWxzX2Zsb2F0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQVBJOiBhZGQgZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgYW5kIGFzc2VydF9lcXVhbHNfZmxvYXQoKS4KCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHNvbWUgb2YgdGhlIG1hY3Jvcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIG5ld2x5LWFkZGVkIGFzc2VydHMuCgoyMDA3LTA2LTE0IDEwOjMzOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IFNob3cgdGhlIGNhcHMgY2hhbmdlIGluIHRoZSBsb2cgdG8gaGVscCBzcG90dGluZyB0aGUgY2FzZSBvZiBub3QgZXhhY3RseSBtYXRjaGluZyBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwgKGdzdF9wYWRfcHVzaCk6CgkgIFNob3cgdGhlIGNhcHMgY2hhbmdlIGluIHRoZSBsb2cgdG8gaGVscCBzcG90dGluZyB0aGUgY2FzZSBvZiBub3QKCSAgZXhhY3RseSBtYXRjaGluZyBjYXBzLgoKMjAwNy0wNi0xNCAwODo1Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6IEZpeCB0eXBvcywgc3BvdHRlZCBieSBUaGlqcyBWZXJtZWlyICgjNDQ3MTkwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgRml4IHR5cG9zLCBzcG90dGVkIGJ5IFRoaWpzIFZlcm1laXIgKCM0NDcxOTApLgoKMjAwNy0wNi0xMyAxNjoxNToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOiBJZ25vcmUgZmlsZSB0byBrZWVwIHRoZSBidWlsZGJvdHMgaGFwcHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgSWdub3JlIGZpbGUgdG8ga2VlcCB0aGUgYnVpbGRib3RzIGhhcHB5CgoyMDA3LTA2LTEzIDE1OjM5OjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcGx1Z2lucy86IFB1bGwgZmRzaW5rIGludG8gdGhlIGRvY3MgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBQdWxsIGZkc2luayBpbnRvIHRoZSBkb2NzIHRvby4KCjIwMDctMDYtMTEgMDc6MTQ6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBBY3R1YWxseSB1c2UgdGhlIG5ldyBmdW5jdGlvbnMgd2l0aCBtaW4vbWF4IGNoZWNrcyBmb3IgdGhlIHRyaWdnZXIgYW5kIG5vbmUgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgQWN0dWFsbHkgdXNlIHRoZSBuZXcgZnVuY3Rpb25zIHdpdGggbWluL21heCBjaGVja3MgZm9yIHRoZSB0cmlnZ2VyIGFuZAoJICBub25lIGludGVycG9sYXRpb24gbW9kZXMgZm9yIGdldCgpIGFuZCBnZXRfdmFsdWVfYXJyYXkoKSBpbnN0ZWFkIG9mCgkgIGp1c3QgdGhlIGxhdHRlci4KCjIwMDctMDYtMTAgMTI6Mzg6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBVbnNldCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBHVmFsdWVzIHdoZW4gZnJlZWluZyB0aGUgY29ycmVzcG9uZGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZyZWUpOgoJICBVbnNldCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBHVmFsdWVzIHdoZW4gZnJlZWluZyB0aGUgY29ycmVzcG9uZGluZwoJICBHc3RDb250cm9sbGVyUHJvcGVydHkgc3RydWN0LgoKMjAwNy0wNi0wOSAxNjo1ODozMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFByb3RlY3QgYWdhaW5zdCB2YWx1ZXMgbGFyZ2VyIG9yIHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBvciBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgZm9yIHRoZSBwcm9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldCksIChpbnRlcnBvbGF0ZV9ub25lX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgIFByb3RlY3QgYWdhaW5zdCB2YWx1ZXMgbGFyZ2VyIG9yIHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBvciBtYXhpbXVtCgkgIGFsbG93ZWQgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eSB3aGVuIHVzaW5nIHZhbHVlcyB0aGF0IGNhbiBiZSBjb21wYXJlZC4KCSAgT3B0aW1pemUgdHJpZ2dlciBpbnRlcnBvbGF0b3IgYSBiaXQgYnkgdGFraW5nIHRoZSBsYXN0IHJlcXVlc3RlZCB2YWx1ZQoJICBpbnRvIGFjY291bnQgaW5zdGVhZCBvZiBhbHdheXMgbG9vcGluZyB0aHJvdWdoIHRoZSBjb21wbGV0ZSBsaXN0LgoJICBGaXggY29kaW5nIHN0eWxlIGEgYml0LCBldmVyeXdoZXJlIGVsc2Ugd2UgdXNlICJyZXR1cm4gZm9vIiBpbnN0ZWFkCgkgIG9mICJyZXR1cm4gKGZvbykiLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgcHJvdGVjdGlvbiBhZ2FpbnN0IHRvbyBsYXJnZSBvciB0b28gc21hbGwKCSAgdmFsdWVzLgoKMjAwNy0wNi0wOCAyMTowODoyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9yYW5kb20vc2xvbW8vY29udHJvbGxlci50eHQ6IEFkZCBzb21lIHRob3VnaHRzIGFib3V0IHRoZSBmdXR1cmUgb2YgdGhlIGNvbnRyb2xsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3Nsb21vL2NvbnRyb2xsZXIudHh0OgoJICBBZGQgc29tZSB0aG91Z2h0cyBhYm91dCB0aGUgZnV0dXJlIG9mIHRoZSBjb250cm9sbGVyLgoKMjAwNy0wNi0wOCAxMTowMDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9uJ3Qgb3ZlcmZsb3cgaW4gcmV0aW1lc3RhbXBpbmcgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIERvbid0IG92ZXJmbG93IGluIHJldGltZXN0YW1waW5nIGNvZGUuCgoyMDA3LTA2LTA3IDIwOjUxOjM1ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogVXNlIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiAoREVGSU5FX0NVQklDX0dFVCk6CgkgIFVzZSBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb25zLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDctMDYtMDcgMTc6MjI6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogU21hbGwgZG9jcyBhZGRpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNtYWxsIGRvY3MgYWRkaXRpb24uCgoyMDA3LTA2LTA3IDE0OjQ5OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSRUFETUU6IFJlbW92ZSB0aGF0IHRlc3QgbGluZSBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBSZW1vdmUgdGhhdCB0ZXN0IGxpbmUgYWdhaW4uCgoyMDA3LTA2LTA3IDE0OjM2OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSRUFETUU6IFRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBUZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgoyMDA3LTA2LTA3IDE0OjE3OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEZpeCB0eXBvIGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IHR5cG8gYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCjIwMDctMDYtMDcgMTQ6MTI6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiBJbXByb3ZlIGNvbW1lbnQgYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIEltcHJvdmUgY29tbWVudCBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoKMjAwNy0wNi0wNyAxMDoxMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChmaW5kX21lc3NhZ2UpLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksIChpc19lb3MpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoYmluX2hhbmRsZV9hc3luY19kb25lKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8gZmluZCBtZXNzYWdlcy4KCSAgR2VuZXJhdGUgdGhlIGFzeW5jLWRvbmUgbWVzc2FnZXMgdG9nZXRoZXIgd2l0aCB0aGUgc3RhdGUgY2hhbmdlCgkgIG1lc3NhZ2VzLgoJICBTbWFsbCBjbGVhbnVwcyBpbiBoYW5kbGluZyB0b3BsZXZlbCBiaW5zLgoKMjAwNy0wNi0wNiAxODoxMToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEZpeCBtdWx0aXF1ZXVlIGxlYWtpbmcgYnVmZmVycyBhbmQgZXZlbnRzIHdoZW4gZG93bnN0cmVhbSBvciB0aGUgcXVldWUgYXJlIGZsdXNoaW5nLiBNYWtlIHJlZmNvdW50aW5nIGFzc3VtcHRpb25zIGV4cC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG11bHRpcXVldWVfc3VpdGUpOgoJICBGaXggbXVsdGlxdWV1ZSBsZWFraW5nIGJ1ZmZlcnMgYW5kIGV2ZW50cyB3aGVuIGRvd25zdHJlYW0gb3IgdGhlCgkgIHF1ZXVlIGFyZSBmbHVzaGluZy4gTWFrZSByZWZjb3VudGluZyBhc3N1bXB0aW9ucyBleHBsaWNpdCBhbmQKCSAgZG9jdW1lbnQgdGhlbSAoc2hvdWxkbid0IGJyZWFrIGV4aXN0aW5nIGNvZGUgdGhhdCB1c2VzIGl0IG90aGVyIHRoYW4KCSAgbWF5YmUgbGVhayBtaW5pb2JqZWN0cywgYnV0IHRoYXQgYWxyZWFkeSBoYXBwZW5zIGFueXdheSkuIEFkZCB1bml0CgkgIHRlc3QgZm9yIHRoZSBtb3N0IGNvbW1vbiBmbHVzaGluZyBjYXNlLiBGaXhlcyAjNDIzNzAwLgoKMjAwNy0wNi0wNiAxNDoyMDowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IENsYXJpZnkgZG9jczogVGhlIGdldF9hbGwsIGdldF92YWx1ZV9hcnJheShzKSBmdW5jdGlvbnMgZG9uJ3QgbW9kaWZ5IHRoZSBHT2JqZWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBDbGFyaWZ5IGRvY3M6IFRoZSBnZXRfYWxsLCBnZXRfdmFsdWVfYXJyYXkocykgZnVuY3Rpb25zCgkgIGRvbid0IG1vZGlmeSB0aGUgR09iamVjdCBwcm9wZXJ0aWVzLgoKMjAwNy0wNi0wNiAxNDowMTo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEZhY3RvciBvdXQgdGhlICdzZXQnIGxvZ2ljIGludG8gZ3N0X2NvbnRyb2xsZXJfc2V0X3VubG9ja2VkIGZvciB0aGUgZ3N0X2NvbnRyb2xsZXJfc2V0IGFuZCBnc3RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9wcmVwZW5kX2RlZmF1bHQpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwgKGdzdF9jb250cm9sbGVyX3NldF91bmxvY2tlZCksCgkgIChnc3RfY29udHJvbGxlcl9zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldCksIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgRmFjdG9yIG91dCB0aGUgJ3NldCcgbG9naWMgaW50byBnc3RfY29udHJvbGxlcl9zZXRfdW5sb2NrZWQgZm9yIHRoZQoJICBnc3RfY29udHJvbGxlcl9zZXQgYW5kIGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QgZnVuY3Rpb25zLgoJICBUbyBtYWtlIGxpZmUgb2YgdGhlIGludGVycG9sYXRvcnMgZWFzaWVyIGFsd2F5cyBhZGQgYSBjb250cm9sIHBvaW50CgkgIGF0IHRpbWVzdGFtcCB6ZXJvIHdpdGggdGhlIGRlZmF1bHQgdmFsdWUuCgkgIEluIHRoZSBsaW5lYXIgaW50ZXJwb2xhdG9yIG1ha2UgdGhpbmdzIG1vcmUgb2J2aW91cyBieSBiZXR0ZXIgdmFyaWFibGUKCSAgbmFtaW5nIChzbG9wZSkuCgkgIEltcGxlbWVudCBjdWJpYyBpbnRlcnBvbGF0aW9uIG1vZGUgKGJ5IHVzaW5nIGEgbmF0dXJhbCBjdWJpYyBzcGxpbmUpCgkgIGFuZCBtYXAgdGhlIHF1YWRyYXRpYyBpbnRlcnBvbGF0aW9uIG1vZGUgdG8gdGhpcyB0b28gKGFzIHF1YWRyYXRpYwoJICBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSwgc2VlIGRpc2N1c3Npb24gb24gdGhlIGxpc3QpLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgY3ViaWMgaW50ZXJwb2xhdGlvbiBtb2RlIGFuZCBjaGVjayBldmVyeXdoZXJlCgkgIGlmIHRoZSBpbnRlcnBvbGF0aW9uIG1vZGUgY291bGQgYmUgc2V0IGFzIGV4cGVjdGVkLgoKMjAwNy0wNi0wNiAxMTozODoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYXJhbXNwZWNzLmM6IERvbid0IHVzZSBHTGliLTIuMTAgZnVuY3Rpb25zLCB3ZSBzdGlsbCBkZXBlbmQgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzogKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uX2dldF90eXBlKToKCSAgRG9uJ3QgdXNlIEdMaWItMi4xMCBmdW5jdGlvbnMsIHdlIHN0aWxsIGRlcGVuZCBvbgoJICBHTGliLWhvdy1vbGQtaXMtaXQtYWdhaW4tMi44LgoKMjAwNy0wNi0wNiAxMToxODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdzdFBhcmFtU3BlY0ZyYWN0aW9uLCBzbyBlbGVtZW50cyBjYW4gaGF2ZSBmcmFjdGlvbiBwcm9wZXJ0aWVzIHdpdGhvdXQgbG90cyBvZiBwYWluZnVsIHN0cmluZyBwYXJzaW5nICgjNDQ0Ni4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6IChfZ3N0X3BhcmFtX2ZyYWN0aW9uX2luaXQpLAoJICAoX2dzdF9wYXJhbV9mcmFjdGlvbl9zZXRfZGVmYXVsdCksIChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3ZhbGlkYXRlKSwKCSAgKF9nc3RfcGFyYW1fZnJhY3Rpb25fdmFsdWVzX2NtcCksCgkgIChnc3RfcGFyYW1fc3BlY19mcmFjdGlvbl9nZXRfdHlwZSksIChnc3RfcGFyYW1fc3BlY19mcmFjdGlvbik6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOiAoZ3N0X2R1bW15X29ial9iYXNlX2luaXQpLAoJICAoZ3N0X2R1bW15X29ial9jbGFzc19pbml0KSwgKGdzdF9kdW1teV9vYmpfaW5pdCksCgkgIChnc3RfZHVtbXlfb2JqX3NldF9wcm9wZXJ0eSksIChnc3RfZHVtbXlfb2JqX2dldF9wcm9wZXJ0eSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFyYW1fc3BlY19zdWl0ZSk6CgkgIEFQSTogYWRkIEdzdFBhcmFtU3BlY0ZyYWN0aW9uLCBzbyBlbGVtZW50cyBjYW4gaGF2ZSBmcmFjdGlvbgoJICBwcm9wZXJ0aWVzIHdpdGhvdXQgbG90cyBvZiBwYWluZnVsIHN0cmluZyBwYXJzaW5nICgjNDQ0NjQ4KS4KCjIwMDctMDYtMDUgMTY6MjU6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IEZpeCBzaWduYWwgc2lnbmF0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICBGaXggc2lnbmFsIHNpZ25hdHVyZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGQgc21hbGwgY2xhcmlmaWNhdGlvbiBpbiB0aGUgYXBpIGRvY3MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X2xvY2F0aW9uKToKCSAgU3RhdGVzIGFyZSBwcm90ZWN0ZWQgd2l0aCBvYmplY3QgbG9jay4KCjIwMDctMDYtMDUgMTQ6MTE6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQVVUSE9SUzogSSBzaG91bGQgcHJvYmFibHkgYmUgbGlzdGVkIGFzIGFuIGF1dGhvciBieSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIEFVVEhPUlM6CgkgIEkgc2hvdWxkIHByb2JhYmx5IGJlIGxpc3RlZCBhcyBhbiBhdXRob3IgYnkgbm93LgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFVwZGF0ZSB0aGUgcmVsZWFzZSBkb2MKCjIwMDctMDYtMDUgMTM6NDk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogTWFrZSBkb2NzIGZvciBnc3RfdmFsdWVfY29tcGFyZSgpIG1lbnRpb24gcmV0dXJuIGVudW1zIHRoYXQgYWN0dWFsbHkgZXhpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBNYWtlIGRvY3MgZm9yIGdzdF92YWx1ZV9jb21wYXJlKCkgbWVudGlvbiByZXR1cm4gZW51bXMgdGhhdAoJICBhY3R1YWxseSBleGlzdC4KCjIwMDctMDYtMDUgMTM6MjE6NDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjEzID09PQoKMjAwNy0wNi0wNSAxMjo0NzoyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdG5ldC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBSZWxlYXNlIDAuMTAuMTMgIldpdGggb3Igd2l0aG91dCB5b3UiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTMgIldpdGggb3Igd2l0aG91dCB5b3UiCgoyMDA3LTA2LTA1IDEyOjA2OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDUtMjkgMTU6NTA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0cmlnZ2VyIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIG1haWwKCjIwMDctMDUtMjkgMTQ6NDk6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0cmlnZ2VyIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIG1haWwKCjIwMDctMDUtMjkgMTQ6NDg6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0cmlnZ2VyIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIG1haWwKCjIwMDctMDUtMjkgMTQ6Mzc6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICBzZW5kIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2VuZCBhIG1haWwKCjIwMDctMDUtMjkgMTE6NTI6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTE6NDA6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTE6MDA6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6NDM6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6MzU6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6MzQ6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6MjA6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjUgMTU6MzY6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2Ugc3VyZSB0aGF0IHRoZSBjaGlsZCBiaW4gc3RvcHMgYWZ0ZXIgY29tcGxldGluZyB0aGUgYXN5bmMgc3RhdGUgY2hhbmdlIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gY29udGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2hhbmRsZV9hc3luY19kb25lKToKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIGNoaWxkIGJpbiBzdG9wcyBhZnRlciBjb21wbGV0aW5nIHRoZSBhc3luYyBzdGF0ZQoJICBjaGFuZ2Ugc28gdGhhdCB0aGUgcGFyZW50IGNhbiBjb250aW51ZSB0aGUgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcuCgkgIEZpeGVzICM0NDExNTkuCgoyMDA3LTA1LTI1IDA5OjI2OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVc2UgYWRkaXRpb25hbCByZWZjb3VudGluZyB0byBhdm9pZCBjcmFzaGVzIHdoZW4gZHluYW1pY2FsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBwYWRzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAodW5yZWZfZGF0YSksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKToKCSAgVXNlIGFkZGl0aW9uYWwgcmVmY291bnRpbmcgdG8gYXZvaWQgY3Jhc2hlcyB3aGVuIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQKCSAgcmVtb3ZpbmcgcGFkcy4gRml4ZXMgIzQyMDIwNi4KCjIwMDctMDUtMjQgMTU6MDA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFdoZW4gYnVmZmVyaW5nIGdvZXMgZnJvbSBhIHR3byBkaWdpdCB0byBhIHNpbmdsZSBkaWdpdCBudW1iZXIsIG1ha2Ugc3VyZSB0byByZW1vdmUgdGhlIG9sZCBzZWNvbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFdoZW4gYnVmZmVyaW5nIGdvZXMgZnJvbSBhIHR3byBkaWdpdCB0byBhIHNpbmdsZSBkaWdpdCBudW1iZXIsIG1ha2Ugc3VyZQoJICB0byByZW1vdmUgdGhlIG9sZCBzZWNvbmQgZGlnaXQgYnkgd3JpdGluZyBhIGJsYW5rIG92ZXIgaXQuCgoyMDA3LTA1LTI0IDEyOjE5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogRWxpbWluYXRlIHRhYnMgYW5kIHRyYWlsaW5nIGNvbW1hIGluIGVudW0gbGlzdDsgZml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIEVsaW1pbmF0ZSB0YWJzIGFuZCB0cmFpbGluZyBjb21tYSBpbiBlbnVtIGxpc3Q7IGZpeCBzb21lIHR5cG9zLgoKMjAwNy0wNS0yNCAxMTo1MDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogQWxsb3cgcmVmY291bnQgb2YgMyBhbmQgNCBiZWNhdXNlIHNvbWUgc3RhdGUgdGhyZWFkIG1pZ2h0IHN0aWxsIGJlIGJ1c3kgd2l0aCBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbGxvdyByZWZjb3VudCBvZiAzIGFuZCA0IGJlY2F1c2Ugc29tZSBzdGF0ZSB0aHJlYWQgbWlnaHQgc3RpbGwgYmUgYnVzeQoJICB3aXRoIGl0LgoKMjAwNy0wNS0yNCAwOTo0MTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBUaGVzZSBhcmUgbm90IGluc3RhbGxlZCBoZWFkZXJzLCBubyBuZWVkIGZvciBwYWRkaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgVGhlc2UgYXJlIG5vdCBpbnN0YWxsZWQgaGVhZGVycywgbm8gbmVlZCBmb3IgcGFkZGluZy4KCjIwMDctMDUtMjQgMDg6MzU6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEVuYWJsZSBsYXRlbmN5IGZvciBuZXh0IHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgIEVuYWJsZSBsYXRlbmN5IGZvciBuZXh0IHJlbGVhc2UuCgkgIFJlc3RvcmUgU1RBVEVfTE9DSyBhcm91bmQgcmVjYWxjX3N0YXRlIHRoYXQgd2FzIGxlZnQgb3V0IGR1cmluZyB0aGUKCSAgcmV3cml0ZSBhbmQgY291bGQgcmVzdWx0IGluIHJhY3kgYmVoYXZpb3VyIHdoZW4gX2dldF9zdGF0ZSBhbmQKCSAgcmVjYWxjX3N0YXRlIGFyZSBydW4gY29uY3VycmVudGx5LiBTZWUgIzQ0MDQ2My4KCjIwMDctMDUtMjMgMTM6NTY6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogSW1wcm92ZSB0ZXN0X2FzeW5jX29yZGVyIHRvIGFsc28gd29yayB3aGVuIGJvdGggdGltZXJzIGFyZSBhbHJlYWR5IGV4cGlyZWQgd2hlbiB3ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChzdG9yZV9jYWxsYmFjayksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgdGVzdF9hc3luY19vcmRlciB0byBhbHNvIHdvcmsgd2hlbiBib3RoIHRpbWVycyBhcmUgYWxyZWFkeQoJICBleHBpcmVkIHdoZW4gd2UgZ2V0IHNjaGVkdWxlZCB0byBjaGVjayBpdC4KCjIwMDctMDUtMjIgMTc6MTA6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLio6ICdwcml2YXRlJyBpcyBhIGMrKyBrZXl3b3JkLCBsZXQncyBub3QgdXNlIHRoYXQgaW4gaGVhZGVyIGZpbGVzLCBvdGhlcndpc2UgYysrIGNvbXBpbGVycyB3aWxsIHRocm93IGEgdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fZGlzcG9zZSksCgkgIChnc3RfYmluX3NldF9wcm9wZXJ0eSksIChnc3RfYmluX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAncHJpdmF0ZScgaXMgYSBjKysga2V5d29yZCwgbGV0J3Mgbm90IHVzZSB0aGF0IGluIGhlYWRlciBmaWxlcywKCSAgb3RoZXJ3aXNlIGMrKyBjb21waWxlcnMgd2lsbCB0aHJvdyBhIHRhbnRydW0uCgoyMDA3LTA1LTIyIDExOjU1OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy86IFVzZSAjaWZkZWYgZm9yIEhBVkVfWFlaIGZvciBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOiAocGx1Z2luX2luaXQpOgoJICBVc2UgI2lmZGVmIGZvciBIQVZFX1hZWiBmb3IgY29uc2lzdGVuY3kuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOiAoc2V0dXBfZmlsZXNpbmspLAoJICAoY2xlYW51cF9maWxlc2luayksIChHU1RfU1RBUlRfVEVTVCksIChmaWxlc2lua19zdWl0ZSk6CgkgIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIGZpbGVzaW5rLgoKMjAwNy0wNS0yMiAxMTo0MzowNyArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuKjogRml4IHBvc2l0aW9uIHJlcG9ydGluZzsgcmVuYW1lIGRhdGFfd3JpdHRlbiBtZW1iZXIgdG8gY3VycmVudF9wb3MgdG8gcmVmbGVjdCBpdHMgcmVhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19xdWVyeSksIChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgRml4IHBvc2l0aW9uIHJlcG9ydGluZzsgcmVuYW1lIGRhdGFfd3JpdHRlbiBtZW1iZXIgdG8gY3VycmVudF9wb3MgdG8KCSAgcmVmbGVjdCBpdHMgcmVhbCBtZWFuaW5nIChmaXhlcyAjNDEyNjQ4KS4KCjIwMDctMDUtMjIgMTE6MDk6NDUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBBZGQgYSBwcm9wZXJ0eSBmb3IgYmlucyB0aGF0IGhhbmRsZSB0aGUgc3RhdGUgY2hhbmdlIG9mIHRoZWlyIGNoaWxkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3NldF9wcm9wZXJ0eSksIChnc3RfYmluX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBBZGQgYSBwcm9wZXJ0eSBmb3IgYmlucyB0aGF0IGhhbmRsZSB0aGUgc3RhdGUgY2hhbmdlIG9mIHRoZWlyIGNoaWxkcy4KCSAgRml4ZXMgIzQzNTg4MAoKMjAwNy0wNS0yMiAxMDoyMTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBhZGQgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBxdW90ZQoKMjAwNy0wNS0yMiAwOTo1NjoyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IFVzZSBhbiBhcnJheSBvZiB0aGUgY29ycmVjdCB0eXBlIHdoZW4gdXNpbmcgX2dldF92YWx1ZV9hcnJheSB3aXRoIGxpbmVhciBpbnRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBVc2UgYW4gYXJyYXkgb2YgdGhlIGNvcnJlY3QgdHlwZSB3aGVuIHVzaW5nIF9nZXRfdmFsdWVfYXJyYXkgd2l0aAoJICBsaW5lYXIgaW50ZXJwb2xhdGlvbi4KCjIwMDctMDUtMjIgMDY6Mzc6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9yZXF1aXJlc19jbG9jaywgZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2ssIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkLCBnc3RfZWxlbWVudF9jbGFzc18uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcmVxdWlyZXNfY2xvY2ssCgkgIGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrLCBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCwKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMsIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSwKCSAgZ3N0X2VsZW1lbnRfZGVmYXVsdF9zZW5kX2V2ZW50LCBnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSwKCSAgZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUsIGdzdF9lbGVtZW50X3NldF9zdGF0ZSwKCSAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMsIGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsLCBnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uLAoJICBnc3RfcGFkX2ZpeGF0ZV9jYXBzLCBnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rLCBnc3RfcGFkX2NvbmZpZ3VyZV9zcmMsCgkgIGdzdF9wYWRfcXVlcnksIGdzdF9wYWRfc2F2ZV90aHlzZWxmLCBoYW5kbGVfcGFkX2Jsb2NrLCBnc3RfcGFkX3B1c2gsCgkgIGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9MSU5LX1NVQ0NFU1NGVUwsIEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTLAoJICBHU1RfRkxPV19OT1RfU1VQUE9SVEVELCBHU1RfRkxPV19JU19GQVRBTCwgR3N0UGFkQWN0aXZhdGVGdW5jdGlvbiwKCSAgR3N0UGFkQWN0aXZhdGVNb2RlRnVuY3Rpb24sIEdzdFBhZENoYWluRnVuY3Rpb24sCgkgIEdzdFBhZEdldENhcHNGdW5jdGlvbiwgR3N0UGFkQWNjZXB0Q2Fwc0Z1bmN0aW9uLAoJICBHc3RQYWRGaXhhdGVDYXBzRnVuY3Rpb24sIEdzdFBhZFRlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSwKCSAgZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUsIGdzdF9waXBlbGluZV91c2VfY2xvY2ssCgkgIGdzdF9waXBlbGluZV9zZXRfY2xvY2ssIGdzdF9waXBlbGluZV9hdXRvX2Nsb2NrLAoJICBnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5KToKCSAgV2hpdGVzcGFjZSBhbmQgZG9jcyBmaXhlcy4KCjIwMDctMDUtMjEgMjE6NDg6MDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBBZGQgc3VwcG9ydCBmb3IgcmV0cmlldmluZyB2YWx1ZSBhcnJheXMgd2hlbiB1c2luZyB0aGUgdHJpZ2dlciBpbnRlcnBvbGF0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgQWRkIHN1cHBvcnQgZm9yIHJldHJpZXZpbmcgdmFsdWUgYXJyYXlzIHdoZW4gdXNpbmcgdGhlIHRyaWdnZXIKCSAgaW50ZXJwb2xhdGlvbiBtb2RlLgoKMjAwNy0wNS0yMSAyMTozNDo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLio6IENsYXJpZnkgdGhlIGRvY3Mgb2YgZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KCk6IFRoZSBhcnJheSB3aGVyZSB0aGUgdmFsdWVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgQ2xhcmlmeSB0aGUgZG9jcyBvZiBnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkoKTogVGhlIGFycmF5IHdoZXJlCgkgIHRoZSB2YWx1ZXMgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbXVzdCBiZSBhbGxvY2F0ZWQgYXMgdGhlcmUgc2VlbXMgdG8gYmUKCSAgbm8gd2F5IHRvIGdldCB0aGUgc2l6ZSBvZiBhIHJhbmRvbSBHVHlwZS4gVGhpcyBkb2Vzbid0IGNoYW5nZSBhbnkKCSAgYmVoYXZpb3VyLiBBbHNvIGZpeCBzb21lIHR5cG9zIGFsbCBvdmVyIHRoZSBwbGFjZSBhbmQgcmVtb3ZlIGFuIHVudXNlZCwKCSAgY29tbWVudGVkIGZ1bmN0aW9uIHRoYXQgaXMgbm90IG5lY2Vzc2FyeSBhcyBnX29iamVjdF9zZXQoKSBjb3VsZCBiZQoJICB1c2VkIGluc3RlYWQuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSgpLgoKMjAwNy0wNS0yMSAxNDo1MDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IERpc2FibGUgcGFydCBvZiB0aGUgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyB0ZXN0LCBiZWNhdXNlIGl0IGNhbiBoYXBwaWx5IHN1Y2NlZWQgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEaXNhYmxlIHBhcnQgb2YgdGhlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MgdGVzdCwgYmVjYXVzZQoJICBpdCBjYW4gaGFwcGlseSBzdWNjZWVkIG9uIDY0LWJpdCBzeXN0ZW1zIHdoZXJlIHRoZXJlJ3MgbW9yZSBhZGRyZXNzCgkgIHNwYWNlIGF2YWlsYWJsZS4KCjIwMDctMDUtMjEgMTI6MDU6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcgZnJvbSBidWcgIzQyMTU0My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBpbXByb3ZlZCBjYXBzIGNoZWNraW5nIGZyb20gYnVnICM0MjE1NDMuCgoyMDA3LTA1LTIxIDEyOjA1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBTbWFsbCBhZGRpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBTbWFsbCBhZGRpdGlvbi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChhcHBseV9zZWdtZW50KToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgSW1wcm92ZSBkb2NzLgoKMjAwNy0wNS0yMSAxMjowMDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWRkZWQgc2ltcGxlIHZlcnNpb24gb2YgaW1wcm92ZWQgY2FwcyBjaGVja2luZy4gSXQgd2FzIHByZXZpb3VzbHkgYXNzdW1lZCB0aGF0IGEgc2V0Y2FwcyBmdW5jdGlvbiB3b3VsZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKToKCSAgQWRkZWQgc2ltcGxlIHZlcnNpb24gb2YgaW1wcm92ZWQgY2FwcyBjaGVja2luZy4gSXQgd2FzIHByZXZpb3VzbHkKCSAgYXNzdW1lZCB0aGF0IGEgc2V0Y2FwcyBmdW5jdGlvbiB3b3VsZCBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGNhcHMgYnV0CgkgIHBlb3BsZSBwcmVmZXIgdXMgdG8gY2hlY2sgY2FwcyBhZ2FpbnN0IHRoZSB0ZW1wbGF0ZSBhdXRvbWF0aWNhbGx5LgoJICBGaXhlcyAjNDIxNTQzLgoKMjAwNy0wNS0yMSAxMToyOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOiBGaXggbWFjcm8gZm9yIGxvY2tpbmcvdW5sb2NraW5nIHRoZSB0cmFuc2Zvcm0gbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEZpeCBtYWNybyBmb3IgbG9ja2luZy91bmxvY2tpbmcgdGhlIHRyYW5zZm9ybSBsb2NrLgoKMjAwNy0wNS0xOSAxMzo1MzoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6IElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDctMDUtMTggMTY6NTM6MTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEhlbGxvLCBJIGFtIE1yIFRheW1hbnMnIHBlcnNvbmFsIGRlYnVnZ2VyLiBUb2RheSBJIHdpbGwgaW50cm9kdWNlIGEgZml4IGZvciB0aGUgc3VidGxlIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBIZWxsbywgSSBhbSBNciBUYXltYW5zJyBwZXJzb25hbCBkZWJ1Z2dlci4gVG9kYXkgSSB3aWxsIGludHJvZHVjZSBhIGZpeAoJICBmb3IgdGhlIHN1YnRsZSBhcnQgb2Ygd2FybmluZyBhIHBvdGVudGlhbGx5IGJsb2NraW5nIHRocmVhZCB0aGF0IGl0CgkgIHNob3VsZCBjaGVjayB0aGUgc291cmNlIHBhZCByZXR1cm4gdmFsdWUsIGFuZCByZWxheSB0aGUgaW5mb3JtYXRpb24KCSAgdXBzdHJlYW0uCgoyMDA3LTA1LTE4IDExOjIwOjMzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBSZWxlYXNlIHRoZSBxdWV1ZSBsb2NrICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgUmVsZWFzZSB0aGUgcXVldWUgbG9jayAhCgoyMDA3LTA1LTE3IDE3OjU1OjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgdGhlIHR3byBuZXcgY29udHJvbGxlciBmdW5jdGlvbnMgdG8gdGhlIGFwcHJvcGlhdGUgcGxhY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgdGhlIHR3byBuZXcgY29udHJvbGxlciBmdW5jdGlvbnMgdG8gdGhlIGFwcHJvcGlhdGUgcGxhY2VzLgoKMjAwNy0wNS0xNyAxNzozNzo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFQSTogZ3N0X2NvbnRyb2xsZXJfc3VnZ2VzdF9uZXh0X3N5bmMoKSwgZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYygpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZXJfc3VnZ2VzdF9uZXh0X3N5bmMpLCAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoX2dzdF9jb250cm9sbGVyX2dldF9wcm9wZXJ0eSksIChfZ3N0X2NvbnRyb2xsZXJfc2V0X3Byb3BlcnR5KSwKCSAgKF9nc3RfY29udHJvbGxlcl9pbml0KSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYyksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3JhdGUpLCAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9yYXRlKToKCSAgQVBJOiBnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYygpLCBnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKCkKCSAgQWRkIEFQSSB0aGF0IHByb3ZpZGVzIHN5bmMgc3VnZ2VzdGlvbiB0aW1lc3RhbXBzIGZvciBlbGVtZW50cyB0aGF0CgkgIGNhbGwgZ3N0X29iamVjdF9zeW5jX3ZhbHVlcygpIGZyb20gd2hpY2ggdGhvc2UgZWxlbWVudHMgY2FuIHN1YmRpdmlkZQoJICB0aGVpciBwcm9jZXNzaW5nIGxvb3AgdG8gZ2V0IHRoZSBiZXN0IHJlc3VsdHMgZm9yIHRoZSBjb250cm9sbGVkCgkgIHByb3BlcnRpZXMuIEZvciBub3cgaXQganVzdCBzdWdnZXN0cyBsYXN0X3N5bmMgKyBjb250cm9sX3JhdGUgYXMKCSAgbmV3IHRpbWVzdGFtcCBidXQgdGhpcyB3aWxsIGJlIGltcHJvdmVkIGluIHRoZSBmdXR1cmUuCgkgIFdoaWxlIGRvaW5nIHRoYXQgY2hhbmdlIHRoZSBjb250cm9sLXJhdGUgcHJvcGVydHkgdG8gYSBHc3RDbG9ja1RpbWUKCSAgZnJvbSBndWludCBhbmQgY2hhbmdlIGl0J3MgbWVhbmluZyBmcm9tIHNhbXBsZXMgdG8gbmFub3NlY29uZHMgYXMKCSAgdGhlIEdzdENvbnRyb2xsZXIgZG9lc24ndCBrbm93IGFueXRoaW5nIGFib3V0IHNhbXBsaW5nIHJhdGUuIFN0cmljdGx5CgkgIHNwZWFraW5nIHRoaXMgYnJlYWtzIEFCSSBidXQgYXMgdGhlIGNvbnRyb2wtcmF0ZSBwcm9wZXJ0eSBkaWRuJ3QgZG8KCSAgYW55dGhpbmcgaW4gdGhlIHBhc3QgYW5kIGFzIHN1Y2ggY291bGRuJ3QgYmUgdXNlZCB0aGlzIHNob3VsZCBiZSBubwoJICBwcm9ibGVtLgoKMjAwNy0wNS0xNyAxNzoxNjowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFNhdmUgbGFzdCBzeW5jZWQgdmFsdWUgZnJvbSB0aGUgbGlzdCB0byBjb250aW51ZSBzZWFyY2hpbmcgZnJvbSB0aGVyZSBpbiBmdXR1cmUgc3luY3MuIFRoaXMgc3BlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSk6CgkgIFNhdmUgbGFzdCBzeW5jZWQgdmFsdWUgZnJvbSB0aGUgbGlzdCB0byBjb250aW51ZSBzZWFyY2hpbmcgZnJvbSB0aGVyZQoJICBpbiBmdXR1cmUgc3luY3MuIFRoaXMgc3BlZWRzIGV2ZXJ5dGhpbmcgdXAgYSBiaXQuCgoyMDA3LTA1LTE3IDE3OjA1OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQWRkIGEgbmV3IHByaXZhdGUgR3N0Q29udHJvbFBvaW50IHN0cnVjdCB3aGljaCAiaW5oZXJpdHMiIGZyb20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbF9wb2ludF9jb21wYXJlKSwKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZpbmQpLCAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZyZWUpLCAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZnJlZSksCgkgIChnc3RfY29udHJvbGxlcl9zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldCksIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0KSwgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0KToKCSAgQWRkIGEgbmV3IHByaXZhdGUgR3N0Q29udHJvbFBvaW50IHN0cnVjdCB3aGljaCAiaW5oZXJpdHMiIGZyb20KCSAgR3N0VGltZWRWYWx1ZSB0byBhbGxvdyBkaWZmZXJlbnQgaW50ZXJwb2xhdG9ycyB0byBzdG9yZSBpbnRlcm5hbAoJICB2YWx1ZXMgbmV4dCB0byBlYWNoIGNvbnRyb2wgcG9pbnQuIEZyb20gdGhlIG91dHNpZGUgZXZlcnl0aGluZyBpcwoJICBzdGlsbCBhIEdzdENvbnRyb2xQb2ludCBzbyB3ZSBkb24ndCBsb29zZSBiaW5hcnkgY29tcGF0aWJpbGl0eS4KCSAgQWxzbyBmaXh1cCBhbGwgdGhlIEdWYWx1ZSBoYW5kbGluZyB0byBub3QgbGVhayBHVmFsdWVzIG9yIGxpc3Qgbm9kZXMuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZyZWUgdGhlIGxpc3Qgbm9kZXMgYW5kIEdWYWx1ZXMgaW4gdGhlIGNvbnRyb2xsZXJfbWlzYyB0ZXN0LgoKMjAwNy0wNS0xNyAxMTowNToyMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFNtYWxsIGRvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFNtYWxsIGRvYyBmaXguCgoyMDA3LTA1LTE2IDE5OjM1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJZiB3ZSBmYWlsIHRvIGxvYWQgYSBwbHVnaW4gYmVjYXVzZSBvZiB1bnJlc29sdmVkIHN5bWJvbHMgb3IgbWlzc2luZyBsaWJyYXJpZXMgYW5kIHNwZXcgYSB3YXJuaW5nIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgSWYgd2UgZmFpbCB0byBsb2FkIGEgcGx1Z2luIGJlY2F1c2Ugb2YgdW5yZXNvbHZlZCBzeW1ib2xzIG9yIG1pc3NpbmcKCSAgbGlicmFyaWVzIGFuZCBzcGV3IGEgd2FybmluZyB0byBzdGRlcnIsIHdlIG1heSBqdXN0IGFzIHdlbGwgbWVudGlvbgoJICB3aGljaCBwbHVnaW4gaXQgd2FzIHRoYXQgZmFpbGVkIHRvIGxvYWQuCgoyMDA3LTA1LTEzIDIwOjI4OjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvTWFrZWZpbGUuYW06IHRoZSBndGstZG9jIG1ha2VmaWxlIHNuaXBwZXQgY29ycmVjdGx5IGhhbmRsZXMgdGhlIGNhc2Ugd2hlbiBFTkFCTEVfR1RLX0RPQyBpcyBmYWxzZSwgYW5kIGluc3RhbGxzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOiB0aGUgZ3RrLWRvYyBtYWtlZmlsZSBzbmlwcGV0IGNvcnJlY3RseQoJICBoYW5kbGVzIHRoZSBjYXNlIHdoZW4gRU5BQkxFX0dUS19ET0MgaXMgZmFsc2UsIGFuZCBpbnN0YWxscwoJICB0aGUgcHJlYnVpbHQgZG9jdW1lbnRhdGlvbi4gIFNvIGd0ay1kb2Mgc3ViZGlycyBhcmUKCSAgdW5jb25kaXRpb25hbGx5IGVuYWJsZWQuICBGaXhlczogIzM0OTA5OS4KCjIwMDctMDUtMTMgMjA6MTE6MjcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IFJld29yZCBzb21lIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOiBSZXdvcmQgc29tZSBkb2N1bWVudGF0aW9uLgoKMjAwNy0wNS0xMyAwMDoyMDozNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYygpIGRvZXNuJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgd2l0aCB0aGUgcGFzc2VkICJtb2R1bGUiIHBhcmFtZXRlciwgc28gcmVtb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiBnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMoKSBkb2Vzbid0IGFjdHVhbGx5CgkgIGRvIGFueXRoaW5nIHdpdGggdGhlIHBhc3NlZCAibW9kdWxlIiBwYXJhbWV0ZXIsIHNvIHJlbW92ZSBpdC4KCSAgQWxsb3dzIHJlbW92YWwgb2YgYWRkaXRpb25hbCB2ZXN0aWdhbCBjb2RlLgoKMjAwNy0wNS0xMyAwMDowOTowMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFVzaW5nIHNpZ2FjdGlvbiBzaG91bGQgZGVwZW5kIG9uIEhBVkVfU0lHQUNUSU9OLCBub3QgSEFWRV9XSU4zMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBVc2luZyBzaWdhY3Rpb24gc2hvdWxkIGRlcGVuZCBvbiBIQVZFX1NJR0FDVElPTiwgbm90IEhBVkVfV0lOMzIuCgkgIFN3aXRjaCB0byB1c2luZyBnX3N0YXQoKSBiZWNhdXNlIGl0J3MgbW9yZSBwb3J0YWJsZS4KCjIwMDctMDUtMTIgMjM6NTM6MDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdC5jOiBBZGQgR1NUX0RJU0FCTEVfT1BUSU9OX1BBUlNJTkcsIGluIG9yZGVyIHRvIGRpc2FibGUgb3B0aW9uIHBhcnNpbmcgZm9yIGVtYmVkZGVkIHN5c3RlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQWRkIEdTVF9ESVNBQkxFX09QVElPTl9QQVJTSU5HLCBpbiBvcmRlciB0byBkaXNhYmxlIG9wdGlvbgoJICBwYXJzaW5nIGZvciBlbWJlZGRlZCBzeXN0ZW1zLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBBbGxvdyBnc3RfZWxlbWVudF9yZWdpc3RlcigpIHRvIGJlIGNhbGxlZCB3aXRoIHBsdWdpbj09TlVMTC4KCSAgRGlkIG5vYm9keSBub3RpY2UgdGhhdCBzdGF0aWMgZWxlbWVudHMgd2VyZSBicm9rZW4/CgoyMDA3LTA1LTEyIDE1OjM4OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBHaXZlIG1vcmUgaW50ZXJlc3RpbmcgaW5mbyB3aGVuIGJ1ZmZlcmluZyBzdGFydHMgYW5kIHN0b3BzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgR2l2ZSBtb3JlIGludGVyZXN0aW5nIGluZm8gd2hlbiBidWZmZXJpbmcgc3RhcnRzIGFuZCBzdG9wcy4KCSAgRml4IGNhc2Ugd2hlcmUgYnVmZmVyaW5nIHN0YXJ0cyBidXQgd2UgZmFpbCB0byB1cGRhdGUgdGhlIGJ1ZmZlcmluZyBmbGFnCgkgIGJlY2F1c2UgdGhlIHRhcmdldCBzdGF0ZSBpcyBub3QgUExBWUlORy4KCjIwMDctMDUtMTIgMTU6MzU6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IFJlZmFjdG9yIGFuIGNsZWFudXAgcXVldWUgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9maW5hbGl6ZSksICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwKCSAgKGFwcGx5X2J1ZmZlciksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgUmVmYWN0b3IgYW4gY2xlYW51cCBxdWV1ZSBhIGJpdC4KCSAgRG8gYmV0dGVyIHRpbWUgbGV2ZWwgY2FsY3VsYXRpb25zIHRoYXQgYWxzbyB3b3JrIHdoZW4gdGhlIHNyY3BhZCBpcyBub3QKCSAgeWV0IHJ1bm5pbmcuCgkgIFJlbW92ZSBzb21lIHVubmVlZGVkIGRlYnVnIGxpbmVzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChxdWV1ZV9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RjYXNlIGZvciB0aW1lIGxldmVsIG1lYXN1cmVtZW50LgoJICBUcnkgdG8gbWFrZSBzb21lIHN0dWZmIG1vcmUgcmFjZWZyZWUuCgoyMDA3LTA1LTExIDE0OjQ2OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKToKCSAgRG9uJ3QgbGVhayBwbHVnaW4gZmVhdHVyZS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXJpX3N1aXRlKToKCSAgQWRkIGJyYWluLWRlYWQgdW5pdCB0ZXN0LgoKMjAwNy0wNS0xMSAxNDoyODo1NSArMDAwMCAgSmVyb2VuIFdvdXRlcnMgPHdvdXRlcnNqQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1cmkuYzogVHJlYXQgcHJvdG9jb2wgc3RyaW5ncyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgd2F5ICgjNDM3NTYzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKZXJvZW4gV291dGVycyA8d291dGVyc2ogYXQgZ21haWwgY29tPgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfZ2V0X3Byb3RvY29sKSwgKHNlYXJjaF9ieV9lbnRyeSk6CgkgIFRyZWF0IHByb3RvY29sIHN0cmluZ3MgaW4gYSBjYXNlLWluc2Vuc2l0aXZlIHdheSAoIzQzNzU2MykuCgoyMDA3LTA1LTExIDEwOjU2OjQ4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBEb24ndCBwcmludCBhIGdfd2FybmluZyBmb3IgYW55IGZhaWx1cmUgdG8gbG9hZCBhIHNoYXJlZCBvYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBEb24ndCBwcmludCBhIGdfd2FybmluZyBmb3IgYW55IGZhaWx1cmUgdG8gbG9hZCBhIHNoYXJlZCBvYmplY3QuCgkgIEluc3RlYWQsIHB1c2ggdGhpcyBkb3duIGludG8gZ3N0cGx1Z2luLmMsIGFuZCB3YXJuIF9vbmx5XyBpZiB3ZQoJICBmYWlsZWQgdG8gb3BlbiB0aGUgbW9kdWxlIChpLmUuIGZhaWx1cmUgdG8gbGluaykuCgkgIEF2b2lkcyB3YXJuaW5ncyBvbiBub3JtYWwsIHdvcmtpbmcsIG5vbi1wbHVnaW4gLnNvIGZpbGVzLgoKMjAwNy0wNS0xMSAwODoyOToxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6IGdzdC9nc3RyZWdpc3RyeS5jIChHU1RfQ0FUX0RFRkFVTFQsIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQsIGdzdF9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYyAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChHU1RfQ0FUX0RFRkFVTFQsCgkgIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQsIGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBQcmludCBhIGdfd2FybmluZyBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hlbiBsb2FkaW5nIGEgcGx1Z2lucyBkdXJpbmcKCSAgcmVnaXN0cnkgc2Nhbi4gVGhlIHNodWxkIGhlbHAgYmVnaW5uZXJzIHN0YXJ0aW5nIHdpdGggZ3N0LXBsdWdpbgoJICB0ZW1wbGF0ZS4KCjIwMDctMDUtMTAgMTU6MjE6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IEJlIHNtYXJ0ZXIgd2hlbiBjYWxjdWxhdGluZyB0aGUgY3VycmVudCBhbW91bnQgb2YgZGF0YSBpbiB0aGUgcXVldWUgYnkgbWVhc3VyaW5nIHRoZSBkaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBCZSBzbWFydGVyIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGN1cnJlbnQgYW1vdW50IG9mIGRhdGEgaW4gdGhlIHF1ZXVlIGJ5CgkgIG1lYXN1cmluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQgdGltZXN0YW1wcyAoaW4gcnVubmluZwoJICB0aW1lKSBpbnNpZGUgdGhlIHF1ZXVlLiBGaXhlcyAjNDMyODc2LgoJICBBUEk6IEdzdFF1ZXVlOjpwdXNoaW5nIHRvIG5vdGlmeSBlbGVtZW50cyB0aGF0IHdlIGFyZSBwdXNoaW5nIGRhdGEgYWdhaW4KCSAgc2luY2UgdGhlIHJ1bm5pbmcgc2lnbmFsIGlzIHJhdGhlciBicm9rZW4gZm9yIHRoaXMgcHVycG9zZS4KCjIwMDctMDUtMTAgMTI6NDA6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYyAoX2RvX2luaXQsIGdzdF9xdWV1ZV9zaWduYWxzLCBnc3RfcXVldWVfYmFzZV9pbml0LCBnc3RfcXVldWVfaW5pdCk6IHVzZSBHU1RfQk9JTEVSUExBVEUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChfZG9faW5pdCwgZ3N0X3F1ZXVlX3NpZ25hbHMsCgkgIGdzdF9xdWV1ZV9iYXNlX2luaXQsIGdzdF9xdWV1ZV9pbml0KToKCSAgdXNlIEdTVF9CT0lMRVJQTEFURQoKMjAwNy0wNS0wOSAyMTowNjowNiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICBVc2UgZ3JhbW1hciBwcmUtZ2VuZXJhdGVkIGZpbGVzLgoKMjAwNy0wNS0wOSAxNjozMjowNyArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvOiBNYWludGFpbiBBUEkgYW5kIEFCSSB3aGVuIC0tZGlzYWJsZS1wYXJzZSBpcyB1c2VkLiBOb3cgdGhhdCB3ZSBoYXZlIGFuIGFwcHJvcHJpYXRlIGVycm9yIGNvZGUsIHdlIGNhbiBqdXN0IHJldHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgIDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaHYpLCAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNYWludGFpbiBBUEkgYW5kIEFCSSB3aGVuIC0tZGlzYWJsZS1wYXJzZSBpcyB1c2VkLiBOb3cgdGhhdAoJICB3ZSBoYXZlIGFuIGFwcHJvcHJpYXRlIGVycm9yIGNvZGUsIHdlIGNhbiBqdXN0IHJldHVybiBOVUxMIGFuZCB0aGUKCSAgYXBwcm9wcmlhdGUgZXJyb3Igd2hlbiBnc3RfcGFyc2VfbGF1bmNoKCkgaXMgdXNlZCBkZXNwaXRlIGl0IGhhdmluZwoJICBiZWVuIGRpc2FibGVkICgjMzQyNTY0KS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtZGlzYWJsZWQuYzoKCSAgTWFrZSBzdXJlIHRoZXNlIGZ1bmN0aW9ucyBleGlzdCBhbmQgcmV0dXJuIE5VTEwgcGx1cyBhIEdFcnJvciB3aGVuCgkgIC0tZGlzYWJsZS1wYXJzZSBpcyB1c2VkLgoKMjAwNy0wNS0wOSAxMDowMTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBTZXQgYSBnb29kIGV4YW1wbGUgYW5kIGRvbid0IGxlYWsgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOiAobWFpbik6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6IChtYWluKToKCSAgU2V0IGEgZ29vZCBleGFtcGxlIGFuZCBkb24ndCBsZWFrIG1lc3NhZ2VzLgoKMjAwNy0wNS0wNiAxODoyNzoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IENvcnJlY3QgZml4eHJlZnMgb3B0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBDb3JyZWN0IGZpeHhyZWZzIG9wdGlvbnMuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jIChnc3RfY2Fwc2ZpbHRlcl9kZXRhaWxzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaCAoX19HU1RfQ0FQU0ZJTFRFUl9IX18sCgkgIEdTVF9UWVBFX0NBUFNGSUxURVIsIEdTVF9DQVBTRklMVEVSLCBHU1RfQ0FQU0ZJTFRFUl9DTEFTUywKCSAgR1NUX0lTX0NBUFNGSUxURVIsIEdTVF9JU19DQVBTRklMVEVSX0NMQVNTLCBHc3RDYXBzRmlsdGVyLAoJICBHc3RDYXBzRmlsdGVyQ2xhc3MsIF9Hc3RDYXBzRmlsdGVyLCB0cmFucywgZmlsdGVyX2NhcHMsCgkgIF9Hc3RDYXBzRmlsdGVyQ2xhc3MsIHRyYW5zX2NsYXNzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMgKG5hbWUsIHJhbmssIHR5cGUsIF9lbGVtZW50cyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X3RpbWVzdGFtcCwKCSAgZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpOgoJICBEb2N1bWVudCBjYXBzZmlsdGVyIGFuZCBhZGQgZG9jLWJsdXJiIHRvIGlkZW50aXR5LgoKMjAwNy0wNS0wNCAxMjozNzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBEb24ndCBjcmFzaCBpZiBzb21lb25lIHRyaWVzIHRvIHNldCBhbiBpbnRlcnBvbGF0aW9uIG1vZGUgdGhhdCBpcyBpbnZhbGlkIG9yIHRoYXQgaXNuJ3Qgc3VwcG9ydC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBEb24ndCBjcmFzaCBpZiBzb21lb25lIHRyaWVzIHRvIHNldCBhbiBpbnRlcnBvbGF0aW9uIG1vZGUgdGhhdAoJICBpcyBpbnZhbGlkIG9yIHRoYXQgaXNuJ3Qgc3VwcG9ydGVkIHlldC4gRml4ZXMgIzQyMjI5NS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIGEgdGVzdCBjYXNlIGZvciB0aGUgYWJvdmUuCgoyMDA3LTA1LTAzIDE2OjQ0OjM0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFByb3Blcmx5IHNldCB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIG9uIEdzdFNlZ21lbnQuIFRoaXMgd2lsbCBvbmx5IGhhcHBlbiBpZiB0aGVyZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgUHJvcGVybHkgc2V0IHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gb24gR3N0U2VnbWVudC4gVGhpcyB3aWxsIG9ubHkgaGFwcGVuCgkgIGlmIHRoZXJlIGlzIGEgYnVmZmVyIHRvIHB1c2ggb3V0LgoKMjAwNy0wNS0wMyAxNDo1ODowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBhbHdheXNfaW5fcGxhY2UgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSBzaW5rIGFuZCBzb3VyY2UgY2FwcyBhcmUgdGhlIHNhbWUhIE1ha2Ugc3VyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBhbHdheXNfaW5fcGxhY2UgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSBzaW5rIGFuZCBzb3VyY2UgY2FwcyBhcmUgdGhlCgkgIHNhbWUhIE1ha2Ugc3VyZSB3ZSBkb24ndCBibGluZGx5IHByb3h5IHRoZSBidWZmZXJfYWxsb2MgaW4gdGhpcyBjYXNlLgoKMjAwNy0wNS0wMyAxNDo1NDozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3koKS4gQWRkZWQgbWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gZWFzaWx5IGdldCB0aGUgbGF0ZW5jeSB2YWx1ZXMgb2YgdGhlIGJhc2Ugc291ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3koKS4gQWRkZWQgbWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4KCSAgZWFzaWx5IGdldCB0aGUgbGF0ZW5jeSB2YWx1ZXMgb2YgdGhlIGJhc2Ugc291cmNlIGNsYXNzLgoKMjAwNy0wNS0wMyAwOToyNDo1OCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2ltcGxlbWVudGF0aW9uX2luZm8pOiBSZW1vdmUgMC44IGNydWZ0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9pbXBsZW1lbnRhdGlvbl9pbmZvKToKCSAgUmVtb3ZlIDAuOCBjcnVmdC4KCjIwMDctMDUtMDIgMTc6MDk6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IERvbid0IGNyZWF0ZSBhIGN1c3RvbWlzZWQgbWFuIHBhZ2UgYmFzZWQgb24gdGhlIGhvc3QgYXJjaGl0ZWN0dXJlLCBkZXNjcmliZSB0aGUgZGVmYXVsdCByZWdpc3RyeSBwYXRoIGdlbmVyaWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBEb24ndCBjcmVhdGUgYSBjdXN0b21pc2VkIG1hbiBwYWdlIGJhc2VkIG9uIHRoZSBob3N0IGFyY2hpdGVjdHVyZSwKCSAgZGVzY3JpYmUgdGhlIGRlZmF1bHQgcmVnaXN0cnkgcGF0aCBnZW5lcmljYWxseS4gVGhhdCB3YXkgdGhlIG1hbgoJICBwYWdlIGlzIHRoZSBzYW1lIGZvciBhbGwgYXJjaGl0ZWN0dXJlcyBhbmQgcGFja2FnZXJzIGhhdmUgb25lCgkgIG11bHRpbGliIGlzc3VlIGxlc3MgdG8gZGVhbCB3aXRoLiBGaXhlcyAjNDM0OTI2LgoKMjAwNy0wNS0wMiAxNToxNDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGRvY3VtZW50YXRpb24gYXMgc3BvdHRlZCBieSByZyBvbiBJUkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IGRvY3VtZW50YXRpb24gYXMgc3BvdHRlZCBieSByZyBvbiBJUkMuCgoyMDA3LTA0LTI5IDE3OjM2OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogSW1wcm92ZSBkb2NzIGZvciBnc3RfZWxlbWVudF97bGluayx1bmxpbmt9LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgSW1wcm92ZSBkb2NzIGZvciBnc3RfZWxlbWVudF97bGluayx1bmxpbmt9LgoKMjAwNy0wNC0yOSAxNDowNDoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvUkVBRE1FOgoJICB1cGRhdGUgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgUkVBRE1FCgoyMDA3LTA0LTI4IDExOjI5OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVHlwbyBmaXhlczsgbWlub3IgZG9jcyBhZGRpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBUeXBvIGZpeGVzOyBtaW5vciBkb2NzIGFkZGl0aW9uLgoKMjAwNy0wNC0yNyAwODozMDo1OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZ3N0X3VyaV9wcm90b2NvbF9pc19zdXBwb3J0ZWQoKSwgd2hpY2ggY2hlY2tzIGlmIGFuIHNpbmsgb3Igc3JjIHRoYXQgc3VwcG9ydHMgYSBnaXZlbiBVUkkgcHJvdG9jb2wgZXhpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1cmkuYzogKGdldF9lbGVtZW50X2ZhY3Rvcmllc19mcm9tX3VyaV9wcm90b2NvbCksCgkgIChnc3RfdXJpX3Byb3RvY29sX2lzX3N1cHBvcnRlZCksIChnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKToKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIEFQSTogQWRkIGdzdF91cmlfcHJvdG9jb2xfaXNfc3VwcG9ydGVkKCksIHdoaWNoIGNoZWNrcyBpZiBhbiBzaW5rCgkgIG9yIHNyYyB0aGF0IHN1cHBvcnRzIGEgZ2l2ZW4gVVJJIHByb3RvY29sIGV4aXN0cy4KCjIwMDctMDQtMjcgMDc6MzQ6MTAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBTZXQgdGhlIGxvY2F0aW9uIHRvIE5VTEwgaWYgImZpbGU6Ly8iIGlzIHNldCBhcyBVUkkuIE90aGVyd2lzZSBzb21lIHJhbmRvbSBwcmV2aW91cyBVUkkgd291bGQgc3RpbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIFNldCB0aGUgbG9jYXRpb24gdG8gTlVMTCBpZiAiZmlsZTovLyIgaXMgc2V0IGFzIFVSSS4gT3RoZXJ3aXNlCgkgIHNvbWUgcmFuZG9tIHByZXZpb3VzIFVSSSB3b3VsZCBzdGlsbCBiZSBzZXQgaWYgImZpbGU6Ly8iIGlzCgkgIHNldCBvbiBhbiBhbHJlYWR5IHVzZWQgZmlsZXNpbmsvZmlsZXNyYy4KCjIwMDctMDQtMjcgMDc6Mjc6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBTcGVjaWFsIGNhc2UgdGhlICJmaWxlOi8vIiBVUkkgYXMgYXMgdGhpcyBpcyB1c2VkIGJ5IHNvbWUgYXBwbGljYXRpb25zIHRvIHRlc3Qgd2l0aCBnc3RfZWxlbWVudF9tYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIFNwZWNpYWwgY2FzZSB0aGUgImZpbGU6Ly8iIFVSSSBhcyBhcyB0aGlzIGlzIHVzZWQgYnkgc29tZQoJICBhcHBsaWNhdGlvbnMgdG8gdGVzdCB3aXRoIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkgaWYgdGhlcmUncwoJICBhbiBlbGVtZW50IHRoYXQgc3VwcG9ydHMgdGhlIFVSSSBwcm90b2NvbC4KCSAgQWxzbyBtb3ZlIHRoZSBnX3BhdGhfaXNfYWJzb2x1dGUoKSBjaGVjayBmb3IgdGhlIGxvY2F0aW9uIHBhcnQKCSAgb2YgdGhlIFVSSSB0byBhbHNvIGNoZWNrIHRoaXMgZm9yICJmaWxlOi8vbG9jYWxob3N0L2JsYSIgVVJJcy4KCjIwMDctMDQtMjYgMTA6MDA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgcGx1cyB1bml0IHRlc3QgKCM0MzE5NDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYnVmZmVyX3N1aXRlKToKCSAgQVBJOiBhZGQgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIHBsdXMgdW5pdCB0ZXN0ICgjNDMxOTQwKS4KCjIwMDctMDQtMjYgMDc6MzI6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBJbXBsZW1lbnQgbm8tbW1hcCBhbHRlcm5hdGl2ZSBmb3IgcmVnaXN0cnkgcmVhZGluZy4gRG8gY29kZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBJbXBsZW1lbnQgbm8tbW1hcCBhbHRlcm5hdGl2ZSBmb3IgcmVnaXN0cnkgcmVhZGluZy4gRG8gY29kZSBjbGVhbnVwcy4KCSAgQWRkIG1vcmUgY29tbWVudHMgYWJvdXQgYXZvaWRpbmcgc3RyZHVwcyBmb3IgYWxsIHRleHQgZGF0YS4gQ29tbWVudHMKCSAgd2VsY29tZS4KCjIwMDctMDQtMjUgMTI6MzA6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oIChHc3RCaW5hcnlQbHVnaW5FbGVtZW50LAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaCAoR3N0QmluYXJ5UGx1Z2luRWxlbWVudCwKCSAgR3N0QmluYXJ5UGx1Z2luRmVhdHVyZSwgX0dzdEJpbmFyeUVsZW1lbnRGYWN0b3J5LCBwbHVnaW5fZmVhdHVyZSwKCSAgR3N0QmluYXJ5RWxlbWVudEZhY3RvcnksIF9Hc3RCaW5hcnlUeXBlRmluZEZhY3RvcnksIHBsdWdpbl9mZWF0dXJlKToKCSAgQ29tbWVudCBzdHJ1Y3RzIGFuZCByZWZvcm1hdCB0byBmaXggdGhlIGJ1aWxkICh0aGF0IHN0dWZmIHNob3VsZCBnbwoJICBpbnRvIGEgcHJpdi4gaGVhZGVyKS4KCjIwMDctMDQtMjUgMTE6NDQ6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBSZWZhY3RvciBzbyB0aGF0IHdlIGNhbiBpbXBsZW1lbnQgbXVsdGlwbGUgZmVhdHVyZXMuIEFkZCBzdXBwb3J0IGZvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgUmVmYWN0b3Igc28gdGhhdCB3ZSBjYW4gaW1wbGVtZW50IG11bHRpcGxlIGZlYXR1cmVzLiBBZGQgc3VwcG9ydCBmb3IKCSAgVHlwZUZpbmRGYWN0b3J5IGZlYXR1cmVzLgoKMjAwNy0wNC0yNCAwNjoxNDozNSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxQZXRlci5LamVsbGVyc3RlZHRAYXhpcy5jb20+CgoJICBjb25maWd1cmUuYWM6IEZpeCBBTV9DT05ESVRJT05BTChHU1RfRElTQUJMRV9HU1RfREVCVUcsLi4uKSBhbmQgdXBkYXRlIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxQZXRlci5LamVsbGVyc3RlZHRAYXhpcy5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggQU1fQ09ORElUSU9OQUwoR1NUX0RJU0FCTEVfR1NUX0RFQlVHLC4uLikgYW5kIHVwZGF0ZSBjb21tZW50LgoKMjAwNy0wNC0yMyAwNzozMDozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggYnVpbGQgd2l0aCAtLWdzdC1kaXNhYmxlLWdzdC1kZWJ1ZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBGaXggYnVpbGQgd2l0aCAtLWdzdC1kaXNhYmxlLWdzdC1kZWJ1ZwoKMjAwNy0wNC0yMSAxMzoyNzoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIHN1cmUgc3RyZWFtaW5nIGhhcyBmaW5pc2hlZCBiZWZvcmUgY2FsbGluZyB0aGUgOjpzdG9wKCkgdmZ1bmMsIHNpbmNlIHRoYXQgdmZ1bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6CgkgIE1ha2Ugc3VyZSBzdHJlYW1pbmcgaGFzIGZpbmlzaGVkIGJlZm9yZSBjYWxsaW5nIHRoZSA6OnN0b3AoKSB2ZnVuYywKCSAgc2luY2UgdGhhdCB2ZnVuYyBtaWdodCBjbGVhciBzdGF0ZSB3aGljaCBpcyBiZWluZyB1c2VkIGluIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkLiBUaGlzIGZpeGVzIGEgcmFjZSB0aGF0IGNhdXNlZCBjcmFzaGVzIGluCgkgIGF1ZGlvcmVzYW1wbGUgd2hlbiBzaHV0dGluZyBkb3duIGEgcGlwZWxpbmUgKCM0MjAxMDYpLgoKMjAwNy0wNC0yMCAwODo1Mzo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVGhhdCB3YXMgb25lIGJ5dGUgbWlzc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgVGhhdCB3YXMgb25lIGJ5dGUgbWlzc2luZy4KCjIwMDctMDQtMjAgMDg6Mzk6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIDJuZCBhdHRlbXB0IHRvIGhhdmUgYSB4bWwtbGVzcyBidWlsZCBhcyBhIGpvaW5lZCBlZmZvcnQgb2YgIzQxMzEyMyBhbmQgIzQyMTQ4MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3NpZ25hbF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAybmQgYXR0ZW1wdCB0byBoYXZlIGEgeG1sLWxlc3MgYnVpbGQgYXMgYSBqb2luZWQgZWZmb3J0IG9mICM0MTMxMjMKCSAgYW5kICM0MjE0ODAuCgoyMDA3LTA0LTIwIDA4OjIxOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDogQWRkZWQgb3BlbiBpc3N1ZXMvdGhvdWdodHMgdG8gZHJhZnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBBZGRlZCBvcGVuIGlzc3Vlcy90aG91Z2h0cyB0byBkcmFmdC4KCjIwMDctMDQtMTkgMTQ6MzI6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS86IFVwZGF0ZSB0aGUgcHJlYnVpbGQgcGFyc2VyIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBVcGRhdGUgdGhlIHByZWJ1aWxkIHBhcnNlciBzb3VyY2VzLgoKMjAwNy0wNC0xOSAxNDoyMzoyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBBbmQgbm93IGZpeCB0aGUgYnVpbGRpbmcgb2YgdGhlIGZsZXggc291cmNlcy4gTm93IGV2ZXJ5dGhpbmcgc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgQW5kIG5vdyBmaXggdGhlIGJ1aWxkaW5nIG9mIHRoZSBmbGV4IHNvdXJjZXMuIE5vdyBldmVyeXRoaW5nIHNob3VsZAoJICB3b3JrIGFzIGV4cGVjdGVkLgoKMjAwNy0wNC0xOSAxNDowNjo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBOb3cgaG9wZWZ1bGx5IGZpeCB0aGUgYnVpbGQgZmFpbHVyZXMgYnkgc2V0dGluZyBwcm9wZXIgcnVsZSBkZXBlbmRlbmNpZXMgYW5kIG1vdmluZyBpbnN0ZWFkIG9mLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTm93IGhvcGVmdWxseSBmaXggdGhlIGJ1aWxkIGZhaWx1cmVzIGJ5IHNldHRpbmcgcHJvcGVyIHJ1bGUKCSAgZGVwZW5kZW5jaWVzIGFuZCBtb3ZpbmcgaW5zdGVhZCBvZiBjb3B5aW5nLgoKMjAwNy0wNC0xOSAxMDo0MzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IFRvdGFsIGxpY2Vuc2lmaWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmdudXBsb3Q6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LnNjbToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuZ251cGxvdDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuc2NtOgoJICBUb3RhbCBsaWNlbnNpZmljYXRpb24uCgoyMDA3LTA0LTE5IDEwOjIyOjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEZpeCB0aGUgYnVpbGQgYnkgY29ycmVjdGluZyB0aGUgcnVsZSB0aGF0IGdhdmUgd3JvbmcgZmlsZXMgdG8gZmxleC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBGaXggdGhlIGJ1aWxkIGJ5IGNvcnJlY3RpbmcgdGhlIHJ1bGUgdGhhdCBnYXZlIHdyb25nIGZpbGVzIHRvIGZsZXguCgoyMDA3LTA0LTE5IDA4OjQwOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogQ2hhbmdlIGxpY2VuY2UgdG8gTEdQTCBhcyBncmFudGVkIGJ5IEJlbmphbWluIGFuZCBBbmR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgQ2hhbmdlIGxpY2VuY2UgdG8gTEdQTCBhcyBncmFudGVkIGJ5IEJlbmphbWluIGFuZCBBbmR5LgoKMjAwNy0wNC0xOSAwNjoxODoyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBBZGQgY29ycmVjdCBncmFtbWFyLnRhYi5oIGRlcGVuZGVuY3kgaWYgY29tcGlsaW5nIHdpdGhvdXQgbmV3IGVub3VnaCBmbGV4LiBGaXhlcyAjNDMxMTUwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEFkZCBjb3JyZWN0IGdyYW1tYXIudGFiLmggZGVwZW5kZW5jeSBpZiBjb21waWxpbmcgd2l0aG91dCBuZXcgZW5vdWdoCgkgIGZsZXguIEZpeGVzICM0MzExNTAuCgoyMDA3LTA0LTE4IDEzOjM0OjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEZpeCB0eXBvIGFuZCB1c2Ugb3V0ZGF0ZWQgc291cmNlcyBpZiB0aGUgZmxleC9iaXNvbiBzb3VyY2VzIGFyZSBuZXdlciB0aGFuIHRoZSBwcmVnZW5lcmF0ZWQgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBGaXggdHlwbyBhbmQgdXNlIG91dGRhdGVkIHNvdXJjZXMgaWYgdGhlIGZsZXgvYmlzb24gc291cmNlcyBhcmUgbmV3ZXIKCSAgdGhhbiB0aGUgcHJlZ2VuZXJhdGVkIG9uZXMgYnV0IGZsZXggaXMgdG9vIG9sZC4gUHJpbnQgYSB3YXJuaW5nIGluCgkgIHRoYXQgY2FzZS4gVGhpcyBzaG91bGQgZml4IHRoZSBidWlsZCBvbiB0aGUgYnVpbGQgYm90LgoKMjAwNy0wNC0xOCAxMjozNDo1MSArMDAwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlLzogTWFrZSB0aGUgcGFyc2VyIHJlZW50cmFudCBhbmQgcmVjdXJzaXZlbHkgY2FsbGFibGUuIFRoaXMgcmVxdWlyZXMgZmxleCA+PSAyLjUuMzEsIGZvciBvbGRlciB2ZXJzaW9ucyBwcmVnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZSBkb3QgbHVyZWF1IGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIE1ha2UgdGhlIHBhcnNlciByZWVudHJhbnQgYW5kIHJlY3Vyc2l2ZWx5IGNhbGxhYmxlLiBUaGlzIHJlcXVpcmVzIGZsZXgKCSAgPj0gMi41LjMxLCBmb3Igb2xkZXIgdmVyc2lvbnMgcHJlZ2VuZXJhdGVkIHNvdXJjZXMgYXJlIHVzZWQgYXMgd2UKCSAgY2FuJ3QgYnVtcCB0aGUgYnVpbGQgZGVwZW5kZW5jeS4gRmluYWxseSBmaXhlcyAjMzQ5MTgwLgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIERyb3AgdGhlIEhBVkVfTVRfU0FWRV9GTEVYICNpZmRlZnMgYXMgd2UgYWx3YXlzIHVzZSBhIG5ldyBlbm91Z2ggZmxleAoJICBub3cgYW55d2F5LgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzogKF9fZ3N0X3BhcnNlX3N0cmR1cCksCgkgIChfX2dzdF9wYXJzZV9zdHJmcmVlKSwgKF9fZ3N0X3BhcnNlX2xpbmtfbmV3KSwKCSAgKF9fZ3N0X3BhcnNlX2xpbmtfZnJlZSksIChfX2dzdF9wYXJzZV9jaGFpbl9uZXcpLAoJICAoX19nc3RfcGFyc2VfY2hhaW5fZnJlZSksIChTRVRfRVJST1IpLCAoWVlQUklOVEYpLAoJICAoZ3N0X3BhcnNlX2VsZW1lbnRfc2V0KSwgKGdzdF9wYXJzZV9mcmVlX2xpbmspLAoJICAoZ3N0X3BhcnNlX2ZvdW5kX3BhZCksIChnc3RfcGFyc2VfcGVyZm9ybV9kZWxheWVkX2xpbmspLAoJICAoZ3N0X3BhcnNlX3BlcmZvcm1fbGluayksICh5eXRuYW1lcnIpLCAoeXlzeW50YXhfZXJyb3IpLCAoeXllcnJvciksCgkgIChfZ3N0X3BhcnNlX2xhdW5jaCk6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzogKFBSSU5UKSwgKHl5X2dldF9uZXh0X2J1ZmZlciksCgkgICh5eV9nZXRfcHJldmlvdXNfc3RhdGUpLCAoeXlfdHJ5X05VTF90cmFucyksIChpbnB1dCksCgkgIChfZ3N0X3BhcnNlX3l5cmVzdGFydCksIChfZ3N0X3BhcnNlX3l5X3N3aXRjaF90b19idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9sb2FkX2J1ZmZlcl9zdGF0ZSksIChfZ3N0X3BhcnNlX3l5X2NyZWF0ZV9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9kZWxldGVfYnVmZmVyKSwgKF9nc3RfcGFyc2VfeXlfaW5pdF9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9mbHVzaF9idWZmZXIpLCAoX2dzdF9wYXJzZV95eXB1c2hfYnVmZmVyX3N0YXRlKSwKCSAgKF9nc3RfcGFyc2VfeXlwb3BfYnVmZmVyX3N0YXRlKSwKCSAgKF9nc3RfcGFyc2VfeXllbnN1cmVfYnVmZmVyX3N0YWNrKSwgKF9nc3RfcGFyc2VfeXlfc2Nhbl9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9zY2FuX3N0cmluZyksIChfZ3N0X3BhcnNlX3l5X3NjYW5fYnl0ZXMpLAoJICAoeXlfZmF0YWxfZXJyb3IpLCAoX2dzdF9wYXJzZV95eWdldF9leHRyYSksCgkgIChfZ3N0X3BhcnNlX3l5Z2V0X2xpbmVubyksIChfZ3N0X3BhcnNlX3l5Z2V0X2NvbHVtbiksCgkgIChfZ3N0X3BhcnNlX3l5Z2V0X2luKSwgKF9nc3RfcGFyc2VfeXlnZXRfb3V0KSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfbGVuZyksIChfZ3N0X3BhcnNlX3l5Z2V0X3RleHQpLAoJICAoX2dzdF9wYXJzZV95eXNldF9leHRyYSksIChfZ3N0X3BhcnNlX3l5c2V0X2xpbmVubyksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2NvbHVtbiksIChfZ3N0X3BhcnNlX3l5c2V0X2luKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfb3V0KSwgKF9nc3RfcGFyc2VfeXlnZXRfZGVidWcpLAoJICAoX2dzdF9wYXJzZV95eXNldF9kZWJ1ZyksIChfZ3N0X3BhcnNlX3l5Z2V0X2x2YWwpLAoJICAoX2dzdF9wYXJzZV95eXNldF9sdmFsKSwgKF9nc3RfcGFyc2VfeXlsZXhfaW5pdCksCgkgICh5eV9pbml0X2dsb2JhbHMpLCAoX2dzdF9wYXJzZV95eWxleF9kZXN0cm95KSwgKHl5X2ZsZXhfc3RybmNweSksCgkgICh5eV9mbGV4X3N0cmxlbiksIChfZ3N0X3BhcnNlX3l5YWxsb2MpLCAoX2dzdF9wYXJzZV95eXJlYWxsb2MpLAoJICAoX2dzdF9wYXJzZV95eWZyZWUpOgoJICBJZiB0aGUgaW5zdGFsbGVkIGZsZXggdmVyc2lvbiBpcyB0b28gb2xkIHVzZSBwcmUtZ2VuZXJhdGVkIHBhcnNlcgoJICBzb3VyY2VzLiBUaGVzZSBwcmUtZ2VuZXJhdGVkIHBhcnNlciBzb3VyY2VzIGFyZSBhbHdheXMgdXBkYXRlZCB3aGVuCgkgIHRoZSBhY3R1YWwgZmxleC9iaXNvbiBzb3VyY2VzIGNoYW5nZSBidXQgcmVxdWlyZSBldmVyeWJvZHkgd2hvIHdhbnRzCgkgIHRvIGNoYW5nZSBzb21ldGhpbmcgaW4gdGhlIHBhcnNlciB0byBoYXZlIGZsZXggPj0gMi41LjMxIGluc3RhbGxlZC4KCjIwMDctMDQtMTggMTA6NTg6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1ha2UgLS1kaXNhYmxlLW5scyB0byB3b3JrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9tNC9nc3QtZ2V0dGV4dC5tNDoKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIE1ha2UgLS1kaXNhYmxlLW5scyB0byB3b3JrCgoyMDA3LTA0LTE3IDE2OjEyOjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNvbmZpZy5oLmluOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHRoYXQgYnJva2UgdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdGhhdCBicm9rZSB0aGUgYnVpbGQuCgoyMDA3LTA0LTE3IDE0OjM2OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgTUFOUEFUSCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1BTlBBVEggZml4CgoyMDA3LTA0LTE3IDEwOjQ2OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEcm9wIGxpYnhtbDIgZGVwZW5kZW5jeSB3aGVuIGJ1aWxkaW5nIHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIERyb3AgbGlieG1sMiBkZXBlbmRlbmN5IHdoZW4gYnVpbGRpbmcgd2l0aAoJICAtLWVuYWJsZS1iaW5hcnktcmVnaXN0cnkgLS1kaXNhYmxlLWxvYWRzYXZlCgoyMDA3LTA0LTE2IDIxOjQxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdHJlYW1lci5kb2FwOgoJICBmaXggdGhlIHJlbGVhc2UgZGF0ZSBpbiB0aGUgZG9hcCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdGhlIHJlbGVhc2UgZGF0ZSBpbiB0aGUgZG9hcCBmaWxlCgoyMDA3LTA0LTE2IDE5OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IFJlbW92ZSB1bm5lY2Vzc2FyeSA8c3lzL21tYW4uaD4gaW5jbHVkZSB3aGljaCBicm9rZSB0aGUgd2luMzIgYnVpbGQgd2l0aCBNaW5nVzsgbW92ZSBpbmNsdWRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgPHN5cy9tbWFuLmg+IGluY2x1ZGUgd2hpY2ggYnJva2UgdGhlIHdpbjMyIGJ1aWxkCgkgIHdpdGggTWluZ1c7IG1vdmUgaW5jbHVkZXMgZnJvbSBoZWFkZXIgZmlsZSB0byAuYyBmaWxlLCBldmVuIGlmIHRoZQoJICBoZWFkZXIgZmlsZSBpc24ndCBpbnN0YWxsZWQ7IHVzZSBnX3N0cmVycm9yKCkgd2hlcmUgVVRGLTggc3RyaW5ncwoJICBhcmUgZXhwZWN0ZWQsIHN1Y2ggYXMgaW4gR1NUX0RFQlVHIG1lc3NhZ2VzLgoKMjAwNy0wNC0xMyAxNToxNTo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBSZW1vdmUgYm9ndXMgYWRkaXRpb24gZm9yIEFQSSBJIGRpZG4ndCBlbmQgdXAga2VlcGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlIGJvZ3VzIGFkZGl0aW9uIGZvciBBUEkgSSBkaWRuJ3QgZW5kIHVwIGtlZXBpbmcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE1lbnRpb24gU2luY2U6IDAuMTAuMTMgaW4gdGhlIGRvY3VtZW50YXRpb24uCgkgIEFkZCB0aGUgQVBJIGtleXdvcmQgdG8gdGhlIHByZXZpb3VzIENoYW5nZUxvZyBlbnRyeS4KCjIwMDctMDQtMTMgMTQ6MTg6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQWxsb3cgYmFzZXNyYyBkZXJpdmVkIGNsYXNzZXMgdG8gZXhlY3V0ZSBzZWVrcyBpbiBvdGhlciBmb3JtYXRzIGJ5IHByb3ZpZGluZyBhIHByZXBhcmVfc2Vla19zZWdtZW50IHZtZXRob2QuIFN1Yi1jbGFzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9wcmVwYXJlX3NlZWtfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfcHJlcGFyZV9zZWVrX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFsbG93IGJhc2VzcmMgZGVyaXZlZCBjbGFzc2VzIHRvIGV4ZWN1dGUgc2Vla3MgaW4gb3RoZXIgZm9ybWF0cwoJICBieSBwcm92aWRpbmcgYSBwcmVwYXJlX3NlZWtfc2VnbWVudCB2bWV0aG9kLiBTdWItY2xhc3NlcyBjYW4gY2hvb3NlCgkgIHRvIHByZXBhcmUgdGhlIEdzdFNlZ21lbnQgaW4gYW55IGZvcm1hdCB0aGF0IHRoZWlyIHBlcmZvcm1fc2VlayBtZXRob2QKCSAgd2lsbCBiZSBhYmxlIHRvIHVuZGVyc3RhbmQuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIHRoZQoJICBvbGQgYmVoYXZpb3VyIG9mIGF0dGVtcHRpbmcgdG8gY29udmVydCB0aGUgc2VlayBvZmZzZXRzIHRvIHRoZQoJICBjb25maWd1cmVkIG5hdGl2ZSBmb3JtYXQuCgoyMDA3LTA0LTEzIDExOjUzOjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IERvbid0IG91dHB1dCB0aGUgc2FtZSBkZWJ1ZyBzdGF0ZW1lbnQgdHdpY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6CgkgIERvbid0IG91dHB1dCB0aGUgc2FtZSBkZWJ1ZyBzdGF0ZW1lbnQgdHdpY2UuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl90cnlfdG9fbWVyZ2VfdXApLAoJICAoZ3N0X2FkYXB0ZXJfcGVlayksIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIE9wdGltaXNlIHRoZSBjYXNlIHdoZXJlIHdlIGhhdmUgYnVmZmVycyBhdCB0aGUgaGVhZCBvZiB0aGUgcXVldWUgdGhhdAoJICBjYW4gYmUgam9pbmVkIHF1aWNrbHkgKGJlY2F1c2UgdGhleSdyZSBjb250aWd1b3VzIHN1Yi1idWZmZXJzKSBieQoJICBtZXJnaW5nIHRoZW0gdG9nZXRoZXIgcmF0aGVyIHRoYW4gY29weWluZyBkYXRhIG91dCBpbnRvIG5ldyBtZW1vcnkuCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEZpeCBhIGxlYWsgaW4gYW4gZXJyb3IgcGF0aCBmb3IgcGFyc2VfbGF1bmNoLCBhbmQgYWRkIGEgY2hlY2sKCSAgZm9yIGl0IHRvIHRoZSB0ZXN0c3VpdGUuCgoyMDA3LTA0LTEzIDExOjIwOjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCBkZWFkbG9jayB3aGVuIHJlbGVhc2luZyBhIHBhZCAtIGdzdF9wYWRfc2V0X2FjdGl2ZSBtYXkgdHJ5IGFuZCB0YWtlIHRoZSBtdWx0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9yZWxlYXNlX3BhZCk6CgkgIERvbid0IGRlYWRsb2NrIHdoZW4gcmVsZWFzaW5nIGEgcGFkIC0gZ3N0X3BhZF9zZXRfYWN0aXZlIG1heSB0cnkKCSAgYW5kIHRha2UgdGhlIG11bHRpcXVldWUgbG9jayB0b28uCgoyMDA3LTA0LTEyIDEyOjU5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLio6IEFQSTogYWRkIEdTVF9DT1JFX0VSUk9SX0RJU0FCTEVEICgjMzkyODA0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBUEk6IGFkZCBHU1RfQ09SRV9FUlJPUl9ESVNBQkxFRCAoIzM5MjgwNCkuCgoyMDA3LTA0LTEyIDEwOjMyOjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogZG9uJ3QgZ2V0IGVtcHR5IHBhdGhzIG9uIHRoZSBQQVRIIHZhcmlhYmxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGRvbid0IGdldCBlbXB0eSBwYXRocyBvbiB0aGUgUEFUSCB2YXJpYWJsZXMKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfaXNfYWN0aXZlLCBnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgRG9uJ3QgZm9ybWF0IGZvciB0aGUgdW5jb21tb24gdGVybWluYWwgd2lkdGggb2YgODQgY2hhcmFjdGVycy4KCjIwMDctMDQtMDkgMTE6NTk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKMjAwNy0wNC0wOSAwODoxNzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvbid0IGZvcm1hdCBmb3IgdGhlIHVuY29tbW9uIGVkaXRvciB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBmb3JtYXQgZm9yIHRoZSB1bmNvbW1vbiBlZGl0b3Igd2lkdGggb2YgODQgY2hhcmFjdGVycwoKMjAwNy0wNC0wNiAxMTo0ODoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBPbmx5IHRyeSB0byBzZWxlY3QgYSBkaWZmZXJlbnQgcGlwZWxpbmUgY2xvY2sgd2hlbiB3ZSB3ZW50IGJhY2sgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChyZXNldF9zdHJlYW1fdGltZSksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgT25seSB0cnkgdG8gc2VsZWN0IGEgZGlmZmVyZW50IHBpcGVsaW5lIGNsb2NrIHdoZW4gd2Ugd2VudCBiYWNrIHRvCgkgIFBBVVNFRCBhbmQgbm90IHdoZW4gd2UgbWVyZWx5IGdvdCBmbHVzaGVkLgoKMjAwNy0wNC0wNSAxNjoxNzoyNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBmcmFjdGlvbnMgYXJlIGJldHRlciBzdXBwb3J0ZWQgaW4gZ3N0cmVhbWVyIHRoYW4gcmFjdGlvbnMsIHNvIHN1Z2dlc3QgdXNpbmcgdGhvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZnJhY3Rpb25zIGFyZSBiZXR0ZXIgc3VwcG9ydGVkIGluIGdzdHJlYW1lciB0aGFuIHJhY3Rpb25zLCBzbwoJICBzdWdnZXN0IHVzaW5nIHRob3NlLgoKMjAwNy0wNC0wNSAxMzo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9ubC5wbzoKCSAgdXBkYXRlIGR1dGNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZHV0Y2gKCjIwMDctMDQtMDUgMTM6NDY6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTdWJtaXR0ZWQgYnk6IE1vZ2VucyBKYWVnZXIgPG1vZ2Vuc0BqYWVnZXIudGY+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9kYS5wbzoKCSAgQWRkZWQgRGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwNy0wNC0wNSAxMToxNjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IGxlYWsgY2F1c2VkIHdoZW4gcmVmdXNpbmcgbmV3c2VnbWVudCBhZnRlciBFT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICBGaXggbGVhayBjYXVzZWQgd2hlbiByZWZ1c2luZyBuZXdzZWdtZW50IGFmdGVyIEVPUy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19pbml0KSwgKGdzdF9mYWtlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlX3NpbmtfcHJlcm9sbCksCgkgIChnc3RfZmFrZV9zaW5rX3JlbmRlciksIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBBZGQgbnVtLWJ1ZmZlcnMgcHJvcGVydHkgdG8gbWFrZSB0aGUgZWxlbWVudCBnZW5lcmF0ZSBFT1MgYWZ0ZXIgYQoJICBjb25maWd1cmFibGUgYW1vdW50IG9mIGJ1ZmZlcnMuCgkgIEFQSTogZmFrZXNpbms6Om51bS1idWZmZXJzIHByb3BlcnR5LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIEZpeCBHc3RCdXMgbGVhayBpbiB0ZXN0LgoJICBUZXN0IGZvciBmYWtlc2luayBudW0tYnVmZmVycy4KCjIwMDctMDQtMDUgMTA6MTA6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGFjY2VwdCBhbnl0aGluZyBhZnRlciBhbiBFT1MsIHJldHVybiBVTkVYUEVDVEVEIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBhY2NlcHQgYW55dGhpbmcgYWZ0ZXIgYW4gRU9TLCByZXR1cm4gVU5FWFBFQ1RFRCBpbnN0ZWFkLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgbmV3IEVPUyBiZWhhdmlvdXIuCgoyMDA3LTA0LTA1IDEwOjA4OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTWFrZSBwYWR0ZW1wbGF0ZXMgYWxzbyB3b3JrIHdoZW4gdGhleSBkb24ndCBjb250YWluICVzIG9yICVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKToKCSAgTWFrZSBwYWR0ZW1wbGF0ZXMgYWxzbyB3b3JrIHdoZW4gdGhleSBkb24ndCBjb250YWluICVzIG9yICVkLgoKMjAwNy0wNC0wNSAxMDowNjoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcHJvdmUgX2FkanVzdF91bmxvY2tlZCgpIHNvIHRoYXQgaXQgb3ZlcmZsb3dzIGxlc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKSwKCSAgKGdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCksIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgSW1wcm92ZSBfYWRqdXN0X3VubG9ja2VkKCkgc28gdGhhdCBpdCBvdmVyZmxvd3MgbGVzcy4KCSAgQWRkIGdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCB0byBjb252ZXJ0IGZyb20gZXh0ZXJuYWwgdGltZSB0bwoJICBpbnRlcm5hbCB0aW1lIGJhc2VkIG9uIGNhbGlicmF0aW9uLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBBUEk6IEdzdENsb2NrOjpnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQoKQoKMjAwNy0wNC0wMyAxMTowMjo0MSArMDAwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuQG5va2lhLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEZWFjdGl2YXRlIHBhZHMgYW5kIGZyZWUgR3N0U2luZ2xlUXVldWUgd2l0aCBnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUoKSB3aGVuIHJlbGVhc2luZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taSBkb3QgbXlvaGFuZW4gYXQgbm9raWEgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9yZWxlYXNlX3BhZCk6CgkgIERlYWN0aXZhdGUgcGFkcyBhbmQgZnJlZSBHc3RTaW5nbGVRdWV1ZSB3aXRoIGdzdF9zaW5nbGVfcXVldWVfZnJlZSgpCgkgIHdoZW4gcmVsZWFzaW5nIHNpbmsgcGFkLiBGaXhlcyAjNDI1NDAwLgoKMjAwNy0wNC0wMiAxNDo0ODoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDogTW9yZSB3b3JrIG9uIHByb3Bvc2FsIGZvciBuZXcgY29yZSBhcGkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgIE1vcmUgd29yayBvbiBwcm9wb3NhbCBmb3IgbmV3IGNvcmUgYXBpLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFQSTogR1NUX0JBU0VfVFJBTlNGT1JNX0xPQ0svVU5MT0NLIGFkZGVkCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChvbl9vYmplY3RfY29udHJvbGxlZF9wcm9wZXJ0eV9jaGFuZ2VkKSwKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBMZXNzIHZlcmJvc2UgbG9nZ2luZyBhZGQgZG9jcyBmb3IgdW5pbXBsZW1lbnRlZCBwYXJ0cyBhbmQgY29ycmVjdGx5CgkgIHJldHVybiB3aGVuIHVzaW5nIHVuYXZhaWxhYmxlIHBhcnRzLgoKMjAwNy0wMy0yOSAxNjowNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogTW92ZSBhbGwgdGhlIGRlYnVnIHRvIHRoZSBDTE9DSyBjYXRlZ29yeSwgYW5kIGFzc29jaWF0ZSBpdCB3aXRoIHRoZSBjbG9jayBvYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOgoJICBNb3ZlIGFsbCB0aGUgZGVidWcgdG8gdGhlIENMT0NLIGNhdGVnb3J5LCBhbmQgYXNzb2NpYXRlIGl0IHdpdGgKCSAgdGhlIGNsb2NrIG9iamVjdC4KCjIwMDctMDMtMjkgMTU6NTM6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IE1ha2UgdGFrZV9idWZmZXIgYSBiaXQgcXVpY2tlciBieSByZW1vdmluZyByZWR1bmRhbnQgY2hlY2tzIGNhdXNlZCBieSBjYWxsaW5nIGdzdF9hZGFwdGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBNYWtlIHRha2VfYnVmZmVyIGEgYml0IHF1aWNrZXIgYnkgcmVtb3ZpbmcgcmVkdW5kYW50IGNoZWNrcwoJICBjYXVzZWQgYnkgY2FsbGluZyBnc3RfYWRhcHRlcl90YWtlLgoKMjAwNy0wMy0yOCAxODozODoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCBsZWFrIEdDb25kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZnJlZSk6CgkgIERvbid0IGxlYWsgR0NvbmQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChzZXR1cF9tdWx0aXF1ZXVlKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKG11bHRpcXVldWVfc3VpdGUpOgoJICBBZGQgc29tZSBkZWFkIHNpbXBsZSB1bml0IHRlc3RzIGZvciB0aGUgJ211bHRpcXVldWUnIGVsZW1lbnQKCSAgKHNvbWUgYml0cyBkb24ndCB3b3JrIHlldCBhbmQgYXJlIGRpc2FibGVkIGZvciBub3cpLgoKMjAwNy0wMy0yOCAxODoyNToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE1ha2UgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKCkgY3JlYXRlIHJlcXVlc3QgcGFkcyBvbmx5IGZvciByZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMgYW5kIG5vdCBmb3IsIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9lbGVtZW50X2NsYXNzX2dldF9yZXF1ZXN0X3BhZF90ZW1wbGF0ZSk6CgkgIE1ha2UgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKCkgY3JlYXRlIHJlcXVlc3QgcGFkcyBvbmx5IGZvcgoJICByZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMgYW5kIG5vdCBmb3IsIHNheSwgc29tZXRpbWVzIHBhZCB0ZW1wbGF0ZXMuCgoyMDA3LTAzLTI4IDEzOjQ0OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEFkZCBleGFtcGxlIHRoYXQgbmVlZHMgbW9yZSB0aGlua2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBBZGQgZXhhbXBsZSB0aGF0IG5lZWRzIG1vcmUgdGhpbmtpbmcuCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgTW9yZSB0aG91Z2h0cyBhYm91dCB3dHJhcHBlciBwbHVnaW5zLgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgTW9yZSBkZXNpZ24gd29yay4KCjIwMDctMDMtMjUgMTU6MzM6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogT25seSBwdXNoIHRoZSBzZWdtZW50IGV2ZW50cyBpbiB0aGUgUExBWUlORyBzdGF0ZSBmb3IgbGl2ZSBzb3VyY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBPbmx5IHB1c2ggdGhlIHNlZ21lbnQgZXZlbnRzIGluIHRoZSBQTEFZSU5HIHN0YXRlIGZvciBsaXZlIHNvdXJjZXMuCgoyMDA3LTAzLTIzIDE3OjUyOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBNb2RpZnkgdGhlIGNsb2NrIGRpc3RyaWJ1dGlvbiBwYXRoIGluIFBBVVNFRC0+UExBWUlORyBzbyB0aGF0IHdlIG5ldmVyIGF0dGVtcHQgdG8gY2hvb3NlIGEgbmV3IGNsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBNb2RpZnkgdGhlIGNsb2NrIGRpc3RyaWJ1dGlvbiBwYXRoIGluIFBBVVNFRC0+UExBWUlORyBzbyB0aGF0IHdlCgkgIG5ldmVyIGF0dGVtcHQgdG8gY2hvb3NlIGEgbmV3IGNsb2NrIHVubGVzcyB3ZSdyZSBhY3R1YWxseSBsZWF2aW5nCgkgIHRoZSBQQVVTRUQgc3RhdGUgZm9yIHRoZSBmaXJzdCB0aW1lLiBUaGlzIHByZXZlbnRzIGNob29zaW5nIGEKCSAgZGlmZmVyZW50IGNsb2NrIHdoZW4gdGhlIHN0YXRlX2NoYW5nZSBnZXRzIGNhbGxlZCBmb3IgYSAybmQgdGltZSBkdWUKCSAgdG8gc29tZSBlbGVtZW50IGRvaW5nIGFuIGFzeW5jIHN0YXRlIGNoYW5nZS4KCjIwMDctMDMtMjIgMTg6Mjg6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogUmV2ZXJ0IGxhc3QgY29tbWl0LiBUaGlzIG5lZWRzIHNvbWUgbW9yZSB0aG91Z2h0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfcHVzaCk6CgkgIFJldmVydCBsYXN0IGNvbW1pdC4gVGhpcyBuZWVkcyBzb21lIG1vcmUgdGhvdWdodHMuCgoyMDA3LTAzLTIyIDE3OjEyOjIzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IENoZWNrIGluIHNldF9jYXBzIGlmIHRoZSBjYXBzIGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIHBhZCBhbmQgcmVtb3ZlIHR3byBmdW5jdGlvbnMgdGhhdCBhcmUgcmVkdW5kYW50IG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfcHVzaCk6CgkgIENoZWNrIGluIHNldF9jYXBzIGlmIHRoZSBjYXBzIGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIHBhZCBhbmQgcmVtb3ZlCgkgIHR3byBmdW5jdGlvbnMgdGhhdCBhcmUgcmVkdW5kYW50IG5vdy4gRml4ZXMgIzQyMTU0My4KCjIwMDctMDMtMjIgMTI6MzE6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogVW5yZWYgc29tZSBtb3JlIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAobWl4ZWRfdGhyZWFkKSwgKG1peGVkX2FzeW5jX2NiKSwgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIFVucmVmIHNvbWUgbW9yZSB0byBtYWtlIHZhbGdyaW5kIGhhcHB5LgoKMjAwNy0wMy0yMiAxMTo1ODowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBGaXggYW5veWluZyByZWdyZXNzaW9uIHRoYXQgc3Vydml2ZWQgYSBmZXcgcmVsZWFzZXMuIFdoZW4gYWRkaW5nIGFuIGFzeW5jIGVudHJ5IHdoaWxlIGJsb2NraW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlciksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X3N5c3RlbV9jbG9ja19pZF91bnNjaGVkdWxlKToKCSAgRml4IGFub3lpbmcgcmVncmVzc2lvbiB0aGF0IHN1cnZpdmVkIGEgZmV3IHJlbGVhc2VzLiBXaGVuIGFkZGluZyBhbgoJICBhc3luYyBlbnRyeSB3aGlsZSBibG9ja2luZyBvbiBhIHN5bmMgZW50cnksIHRoZSBzeW5jIGVudHJ5IHdpbGwgdW5ibG9jawoJICBidXQgc3RpbGwgYmUgYnVzeSwgc28gaXQgc2hvdWxkIGNvbnRpbnVlIHRvIHdhaXQgaW5zdGVhZCBvZiByZXR1cm5pbmcKCSAgX0JVU1kgdG8gdGhlIGFwcC4KCSAgQWRkIHNvbWUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChtaXhlZF90aHJlYWQpLAoJICAobWl4ZWRfYXN5bmNfY2IpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgQWRkIHRlc3RjYXNlIGZvciB0aGlzLgoKMjAwNy0wMy0yMiAxMToxOTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBIYW5kbGUgZXJyb3JzIGZyb20gdGhlIGNsb2NrIHN5bmMgYmV0dGVyLCBvbmx5IFVOU0NIRURVTEVEIGluZGljYXRlcyBhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgY2xvY2sgc3luYyBiZXR0ZXIsIG9ubHkgVU5TQ0hFRFVMRUQgaW5kaWNhdGVzIGEKCSAgV1JPTkdfU1RBVEUgYW5kIGNhbiBzaWxlbnRseSBwYXVzZSB0aGUgdGFzay4gQWxsIG90aGVyIGNhc2VzIHNob3VsZAoJICBlcnJvciBvdXQuCgoyMDA3LTAzLTIyIDA4OjIzOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggcG9zc2libGUgZGVhZGxvY2sgaWYgcGFkIGV2ZW50ZnVuYyBpcyBub3Qgc3BlY2lmaWVkLiAgRml4ZXMgIzQyMTE3Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiA8c3lyamFsYSBhdCBzY2kgZG90IGZpPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgRml4IHBvc3NpYmxlIGRlYWRsb2NrIGlmIHBhZCBldmVudGZ1bmMgaXMgbm90IHNwZWNpZmllZC4gIEZpeGVzICM0MjExNzcuCgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMy0yMSAxODoxMzo0MCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBGaXggc29tZSBlcnJvcnMgaW4gdGhlIHR5cGVmaW5kaW5nIGRvY3MgcG9pbnRlZCBvdXQgb24gaXJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEZpeCBzb21lIGVycm9ycyBpbiB0aGUgdHlwZWZpbmRpbmcgZG9jcyBwb2ludGVkIG91dCBvbiBpcmMuCgoyMDA3LTAzLTIxIDE3OjUwOjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDbGFyaWZ5IEZJWE1FIGNvbW1lbnQgaW4gdGhlIGZhY2Ugb2YgaGF2aW5nIGFkZGVkIHVubG9ja19zdG9wKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIENsYXJpZnkgRklYTUUgY29tbWVudCBpbiB0aGUgZmFjZSBvZiBoYXZpbmcgYWRkZWQgdW5sb2NrX3N0b3AoKQoKMjAwNy0wMy0yMSAxMTo1MjowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUHJlcGFyZSBmb3IgcmVsZWFzZSB3aGVyZSB3ZSB3YXJuIGFnYWluc3QgcG9zc2libGUgYXBwIGJyZWFrYWdlIGluIHRoZSBjYXNlIG9mIGxpdmUgcGlwZWxpbmVzIGFsb25nIHdpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBQcmVwYXJlIGZvciByZWxlYXNlIHdoZXJlIHdlIHdhcm4gYWdhaW5zdCBwb3NzaWJsZSBhcHAgYnJlYWthZ2UgaW4gdGhlCgkgIGNhc2Ugb2YgbGl2ZSBwaXBlbGluZXMgYWxvbmcgd2l0aCBhbiBlbnYgdmFyIHRvIGVuYWJsZS9kaXNhYmxlIGxpdmUKCSAgcHJlcm9sbCBtb2RlIChHU1RfQ09NUEFUPVtuby1dbGl2ZS1wcmVyb2xsKS4KCjIwMDctMDMtMjAgMTQ6MjU6MTUgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KTogU28gd2Ugc2hvdWxkIHVzZSBjb3JyZWN0IGNvbnN0YW50cyBmb3IgY2hlY2tpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCk6CgkgIFNvIHdlIHNob3VsZCB1c2UgY29ycmVjdCBjb25zdGFudHMgZm9yIGNoZWNraW5nIGZvciBOb25lIG9mZnNldC4KCjIwMDctMDMtMjAgMTQ6MTc6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogTWVudGlvbiB0aGUgZmFjdCB0aGF0IHRoZSBuZXdseSBzd2l0Y2hlZCBlbGVtZW50IHNob3VsZCBiZSBzZXQgdG8gYXQgbGVhc3QgUEFVU0VELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgTWVudGlvbiB0aGUgZmFjdCB0aGF0IHRoZSBuZXdseSBzd2l0Y2hlZCBlbGVtZW50IHNob3VsZCBiZSBzZXQgdG8gYXQKCSAgbGVhc3QgUEFVU0VELgoKMjAwNy0wMy0yMCAxMDoyMzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3QuYzogRml4IGNvbXBpbGF0aW9uIHdpdGggcmVnaXN0cnkgZGlzYWJsZWQgYXMgc3BvdHRlZCBieSBTYXVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCBjb21waWxhdGlvbiB3aXRoIHJlZ2lzdHJ5IGRpc2FibGVkIGFzIHNwb3R0ZWQgYnkgU2F1ci4KCjIwMDctMDMtMjAgMDk6NDY6MTEgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBMb29rIGF0IHRoZSBwZW5kaW5nIHN0YXRlIHRvbyB3aGVuIHN5bmNpbmcgdGhlIGVsZW1lbnQgc3RhdGUgdG8gdGhlIHBhcmVudC4gRml4ZXMgIzQyMDEzMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCk6CgkgIExvb2sgYXQgdGhlIHBlbmRpbmcgc3RhdGUgdG9vIHdoZW4gc3luY2luZyB0aGUgZWxlbWVudCBzdGF0ZSB0byB0aGUKCSAgcGFyZW50LiBGaXhlcyAjNDIwMTMzLgoKMjAwNy0wMy0xOSAxNTowMTo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogQWRkIDo6dW5sb2NrX3N0b3AgdG8gYmFzZXNyYyBhbmQgYmFzZXNpbmsuIFRoaXMgYWxsb3dzIGFuIG9wcG9ydHVuaXR5IGZvciBzdWItY2xhc3NlcyB0byBjb3JyZWN0bHkgY2wuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX3VubG9ja19zdG9wKSwKCSAgKGdzdF9iYXNlX3NyY19kZWFjdGl2YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIDo6dW5sb2NrX3N0b3AgdG8gYmFzZXNyYyBhbmQgYmFzZXNpbmsuIFRoaXMgYWxsb3dzIGFuIG9wcG9ydHVuaXR5CgkgIGZvciBzdWItY2xhc3NlcyB0byBjb3JyZWN0bHkgY2xlYXIgYW55IHN0YXRlIHRoZXkgc2V0IHRyeWluZyB0bwoJICB1bmxvY2ssIHN1Y2ggYXMgY2xlYXJpbmcgb3V0IHVubG9jayBjb21tYW5kcyBmcm9tIGEgY29tbWFuZCBmZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc2lua19yZW5kZXIpLCAoZ3N0X2ZkX3NpbmtfdW5sb2NrKSwKCSAgKGdzdF9mZF9zaW5rX3VubG9ja19zdG9wKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19pbml0KSwgKGdzdF9mZF9zcmNfdW5sb2NrKSwgKGdzdF9mZF9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpLCAoZ3N0X2ZkX3NyY19nZXRfc2l6ZSksIChnc3RfZmRfc3JjX2RvX3NlZWspOgoJICBJbXBsZW1lbnQgdW5sb2NrX3N0b3AgaW4gZmRzcmMgYW5kIGZkc2luay4KCSAgSW1wbGVtZW50IHNlZWtpbmcgaW4gZmRzcmMgd2hlbiBhIHNlZWthYmxlIGZkIGlzIHBhc3NlZCwgYXMgaW4KCSAgZ3N0LWxhdW5jaC0wLjEwIGZkc3JjICEgLi4uICEgeHZpbWFnZXNpbmsgPCAvcGF0aC90by9maWxlCgoyMDA3LTAzLTE5IDEyOjA3OjMyICswMDAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLmRhc2guZ3JvdXAuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRml4IHBhZC1hZGRlZCBhbmQgcGFkLXJlbW92ZWQgc2lnbmFsIHNpZ25hdHVyZXMgc28gdGhhdCB0aGUgcGFkIHR5cGUgaXMgc3RhdGVkIGFzIEdTVF9UWVBFX1BBRCBpbnN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRXZhbiBOZW1lcnNvbiA8ZXZhbiBhdCBjb2V1cyBkYXNoIGdyb3VwIGRvdCBjb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICBGaXggcGFkLWFkZGVkIGFuZCBwYWQtcmVtb3ZlZCBzaWduYWwgc2lnbmF0dXJlcyBzbyB0aGF0IHRoZSBwYWQgdHlwZSBpcwoJICBzdGF0ZWQgYXMgR1NUX1RZUEVfUEFEIGluc3RlYWQgb2YgR19UWVBFX09CSkVDVC4gRml4ZXMgIzQxOTg1MS4KCjIwMDctMDMtMTkgMTA6NDc6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IGVsZW1lbnQgZmllbGQgYW5kIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBlbGVtZW50IGZpZWxkIGFuZCBtZXRob2QuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9wdXNoX3N0YXRlX2NvbnRpbnVlKSwgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIE1ha2UgYXN5bmMgc3RhdGUgY2hhbmdlcyBhIGJpdCBzbWFydGVyIGJ5IHVzaW5nIG5ldyBBU1lOQ19TVEFSVCBhbmQKCSAgQVNZTkNfRE9ORSBtZXNzYWdlcy4gVGhpcyByZWR1Y2VzIHRoZSBudW1iZXIgb2YgdGltZXMgd2UgcnVuIHRoZSBzdGF0ZQoJICByZWNhbGN1bGF0aW9uIHRocmVhZC4KCSAgRG9uJ3QgY2hhbmdlIHN0YXRlIG9mIGVsZW1lbnQgd2l0aCBhIHBlbmRpbmcgQVNZTkNfU1RBUlQgbWVzc2FnZS4KCSAgRGVwcmVjYXRlIFNUQVRFX0RJUlRZIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEtlZXAgdGhlIHN0YXRlIHRoYXQgd2FzIGxhc3Qgc2V0IGJ5IHRoZSBhcHAgaW4gYSBuZXcgZWxlbWVudCBmaWVsZC4KCSAgRG9uJ3QgYWxsb3cgc3RhdGUgY2hhbmdlcyB3aGVuIGhhbmRsaW5nIGFuIGVsZW1lbnQgZXZlbnQuCgkgIFBvc3QgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMuCgkgIENoYW5nZSBsb3N0X3N0YXRlIHNvIHRoYXQgd2UgZ28gdG8gUEFVU0VEIGFuZCB3YWl0IGZvciB0aGUgcGFyZW50IHRvIHNldAoJICB1cyB0byBQTEFZSU5HIGFnYWluIChzbyBsYXRlbmN5IGNhbGN1bGF0aW9uIGNhbiBiZSBwZXJmb3JtZWQpCgkgIEV4cG9ydCBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUoKSBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiB1c2UgaXQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKCkKCSAgQVBJOiBHU1RfU1RBVEVfVEFSR0VUCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChyZXNldF9zdHJlYW1fdGltZSksIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9oYW5kbGVfbWVzc2FnZSksIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgIFVzaW5nIHRoZSBuZXcgQVNZTkNfU1RBUlQgbWVzc2FnZSB3ZSBjYW4gcmVzZXQgdGhlIGJhc2VfdGltZSB3aGVuCgkgIG5lZWRlZC4gVGhpcyBjYW4gdGhlbiBiZSB1c2VkIHRvIGltcGxlbWVudCBiYXNlX3RpbWUgcmVkaXN0cmlidXRpb24gaW4KCSAgZmx1c2hpbmcgc2Vla3Mgc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZSBleHBsaWNpdCBzZWVrIGhhbmRsaW5nLgoJICBQZXJmb3JtIGxhdGVuY3kgcXVlcnkgYW5kIGNvbmZpZ3VyYXRpb24gd2hlbiBnb2luZyB0byBQTEFZSU5HLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBQb3N0IG5ldyBBU1lOQ19TVEFSVC9BU1lOQ19ET05FIG1lc3NhZ2VzLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHRlc3QgYmVjYXVzZSB0aGUgYmluIHdpbGwgbm90IHNldCB0aGUgYXN5bmMgZWxlbWVudCB0byBQTEFZSU5HIHJpZ2h0CgkgIGF3YXkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAocG9wX2FzeW5jX2RvbmUpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSBtZXNzYWdlIGNoZWNrIGEgbGl0dGxlIHN0cm9uZ2VyLgoJICBIYW5kbGUgQVNZTkMgbWVzc2FnZXMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFeHBlY3QgQVNZTkNfRE9ORSBtZXNzYWdlcy4KCjIwMDctMDMtMTkgMDk6NTU6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgdG8gcHJlcGFyZSBmb3IgbGF0ZW5jeSBzdXBwb3J0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYXN5bmNfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2FzeW5jX2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9hc3luY19zdGFydCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzIHRvIHByZXBhcmUgZm9yIGxhdGVuY3kKCSAgc3VwcG9ydC4KCjIwMDctMDMtMTUgMjI6MzM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHlwb3MKCjIwMDctMDMtMTUgMTI6Mzc6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBOb3cgdGhhdCB3ZSBkb24ndCBjaGVjayBmb3IgdGhlICdDb2RlYycga2V5d29yZCBhbnkgbG9uZ2VyIGluIHRoZSBrbGFzcywgd2Ugc2hvdWxkbid0IHNwZXcgYSB3YXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyk6CgkgIE5vdyB0aGF0IHdlIGRvbid0IGNoZWNrIGZvciB0aGUgJ0NvZGVjJyBrZXl3b3JkIGFueSBsb25nZXIgaW4gdGhlCgkgIGtsYXNzLCB3ZSBzaG91bGRuJ3Qgc3BldyBhIHdhcm5pbmcgaWYgdGhlIGtsYXNzIGlzbid0IGEgZGVjb2RlciBvcgoJICBlbmNvZGVyIChzaW5jZSBpdCBtaWdodCBiZSBhIFNvdXJjZS9OZXR3b3JrLCBmb3IgZXhhbXBsZSkuCgoyMDA3LTAzLTE0IDE3OjI0OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRG9uJ3QgcmVxdWlyZSBkZWNvZGVyL2RlbXV4ZXIvZGVwYXlsb2FkZXIgZWxlbWVudHMgb3IgZW5jb2Rlci9tdXhlci9wYXlsYWRlciBlbGVtZW50cyB0byBoYXZlICdDLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19jb2RlY3MpOgoJICBEb24ndCByZXF1aXJlIGRlY29kZXIvZGVtdXhlci9kZXBheWxvYWRlciBlbGVtZW50cyBvcgoJICBlbmNvZGVyL211eGVyL3BheWxhZGVyIGVsZW1lbnRzIHRvIGhhdmUgJ0NvZGVjJyBhcyBwYXJ0IG9mIHRoZWlyCgkgIGZhY3RvcnkgY2xhc3Mgc3RyaW5nIHdoZW4gaW50cm9zcGVjdGluZyBhIHBsdWdpbidzIGNhcGFiaWxpdGllcy4KCSAgZHJhZnQta2xhc3MudHh0IG1lbnRpb25zIHRoYXQgaXQgbWlnaHQgYmUgcmVtb3ZlZCBpbiBmdXR1cmUsIGFuZAoJICBmbHVtcDNkZWMgZG9lc24ndCBoYXZlIGl0IGFzIHBhcnQgb2YgaXRzIGNsYXNzIHN0cmluZywgc28gY2hhbmNlcwoJICBhcmUgb3RoZXJzIG1pZ2h0IGFsc28gbm90IGhhdmUgaXQuCgoyMDA3LTAzLTE0IDE1OjQyOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2kxOG46CgkgIHVwZGF0ZSBpMThuIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGkxOG4gZG9jCgoyMDA3LTAzLTE0IDE1OjE3OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcmVmb3JtYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlZm9ybWF0CgoyMDA3LTAzLTE0IDE1OjE1OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vYWYucG86CgkgICogcG8vYXoucG86CgkgICogcG8vYmcucG86CgkgICogcG8vY2EucG86CgkgICogcG8vY3MucG86CgkgICogcG8vZGUucG86CgkgICogcG8vZW5fR0IucG86CgkgICogcG8vZnIucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmIucG86CgkgICogcG8vbmwucG86CgkgICogcG8vcnUucG86CgkgICogcG8vc3EucG86CgkgICogcG8vc3IucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdHIucG86CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgICogcG8vemhfQ04ucG86CgkgICogcG8vemhfVFcucG86CgkgIFVwZGF0ZSB0cmFuc2xhdGlvbnMgZnJvbSB0cmFuc2xhdGlvbiBwcm9qZWN0CgoyMDA3LTAzLTE0IDEzOjQwOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBJbnZlcnQgcHJlY29uZGl0aW9uIGNoZWNrIHRvIGJlIGFsaWtlIHRoZSBvbmVzIGluIHRoZSBtaW1pY2VkIGdvYmplY3QgYXBpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfc2V0X3Byb3BlcnR5KToKCSAgSW52ZXJ0IHByZWNvbmRpdGlvbiBjaGVjayB0byBiZSBhbGlrZSB0aGUgb25lcyBpbiB0aGUgbWltaWNlZCBnb2JqZWN0CgkgIGFwaS4KCjIwMDctMDMtMTQgMTE6MjE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBmaXggbWlzbGVhZGluZyBsb2cgc3RhdGVtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbWlzbGVhZGluZyBsb2cgc3RhdGVtZW50CgoyMDA3LTAzLTEzIDE0OjUzOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogRG8gc29tZSBBcmNoaXRlY3Qgd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9hdWRpb2Jhc2VjbGFzc2VzLnR4dDoKCSAgRG8gc29tZSBBcmNoaXRlY3Qgd29yay4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9uYW1lKToKCSAgQWRkIGEgV0FSTklORy4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEFkZCBkb2NzIHRoYXQgcG9pbnQgZnJvbSBnc3RfcGFkX2dldF9yYW5nZSB0byBnc3RfcGFkX3B1bGxfcmFuZ2UKCjIwMDctMDMtMTIgMTU6Mjc6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IERlZmVyIHN0YXJ0aW5nIHRoZSBhc3luYyBzeXN0ZW0gY2xvY2sgdGhyZWFkIHVudGlsIHRoZSBmaXJzdCBhc3luYyB3YWl0IGlzIHNjaGVkdWxlZC4gRml4ZXMgIzQxLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfc3RhcnRfYXN5bmMpLCAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2FzeW5jKToKCSAgRGVmZXIgc3RhcnRpbmcgdGhlIGFzeW5jIHN5c3RlbSBjbG9jayB0aHJlYWQgdW50aWwgdGhlIGZpcnN0IGFzeW5jCgkgIHdhaXQgaXMgc2NoZWR1bGVkLiBGaXhlcyAjNDE0OTg2LgoKMjAwNy0wMy0xMiAxNDoyMzoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBGaXggc21hbGwgbGVhayAoZnJlZSBHc3RTaW5nbGVRdWV1ZSBzdHJ1Y3R1cmUgdG9vLCBub3Qgb25seSBjb250ZW50cykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZnJlZSk6CgkgIEZpeCBzbWFsbCBsZWFrIChmcmVlIEdzdFNpbmdsZVF1ZXVlIHN0cnVjdHVyZSB0b28sIG5vdCBvbmx5IGNvbnRlbnRzKS4KCjIwMDctMDMtMTAgMTU6NDQ6NDQgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIEdTVF9TVFJfTlVMTCB0byBwcmV2ZW50IE5VTEwgcG9pbnRlciB0byBiZSBwYXNzZWQgdG8gR1NUX0NBVF9ERUJVRy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOihnc3RfYmluX2FkZCk6CgkgIFVzZSBHU1RfU1RSX05VTEwgdG8gcHJldmVudCBOVUxMIHBvaW50ZXIgdG8gYmUgcGFzc2VkIHRvIEdTVF9DQVRfREVCVUcuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDctMDMtMDkgMTY6Mzk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OiBGaXggR3N0VGVlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIEZpeCBHc3RUZWUgZG9jcy4KCjIwMDctMDMtMDkgMTY6MzA6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0YWRhdGEgY29weSBmdW5jdGlvbnMuIEZpeGVzICMzOTMwOTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9jb3B5X21ldGFkYXRhKSwgKF9nc3RfYnVmZmVyX2NvcHkpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIG1ldGFkYXRhIGNvcHkgZnVuY3Rpb25zLiBGaXhlcyAjMzkzMDk5LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2J1ZmZlcl9zdGFtcCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgVXNlIG5ldyBtZXRhZGF0YSBjb3B5IGZ1bmN0aW9ucy4KCjIwMDctMDMtMDkgMTQ6MjA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS4qOiBTZXBhcmF0ZSBvdXQgY2hlY2staW1wZXJmZWN0LXRpbWVzdGFtcCBhbmQgY2hlY2staW1wZXJmZWN0LW9mZnNldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF90aW1lc3RhbXApLAoJICAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpLCAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCksCgkgIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgU2VwYXJhdGUgb3V0IGNoZWNrLWltcGVyZmVjdC10aW1lc3RhbXAgYW5kIGNoZWNrLWltcGVyZmVjdC1vZmZzZXQuCgkgIFB1dCBiYWNrIGNoZWNrLXBlcmZlY3QgYXMgaXQgd2FzIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4KCjIwMDctMDMtMDkgMTI6MzQ6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVGhlcmUncyBubyBuZWVkIHRvIHdhcm4gaWYgVk9JRF9QRU5ESU5HIGlzIG5vdCBOT05FIGhlcmUsIGFzIGxvbmcgYXMgdGhlIHN0YXRlIGlzIE5VTEwgaXQncyBvaywgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgVGhlcmUncyBubyBuZWVkIHRvIHdhcm4gaWYgVk9JRF9QRU5ESU5HIGlzIG5vdCBOT05FIGhlcmUsIGFzCgkgIGxvbmcgYXMgdGhlIHN0YXRlIGlzIE5VTEwgaXQncyBvaywgYW5kIHRoYXQncyBjaGVja2VkIGltbWVkaWF0ZWx5CgkgIGFib3ZlLgoKMjAwNy0wMy0wOCAxNzo1ODo1NyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRml4IGNoZWNrIGZvciBwZXJmZWN0IHN0cmVhbSB0byBpZ25vcmUgYnVmZmVycyB3aXRoIC0xIG9mZnNldHMvb2Zmc2V0IGVuZHMgd2hlbiBjaGVjay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wOCAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgRml4IGNoZWNrIGZvciBwZXJmZWN0IHN0cmVhbSB0byBpZ25vcmUgYnVmZmVycyB3aXRoIC0xCgkgIG9mZnNldHMvb2Zmc2V0IGVuZHMgd2hlbiBjaGVja2luZyBkYXRhIGNvbnRpZ3VpdHkuCgoyMDA3LTAzLTA4IDE2OjI2OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBQcmludCBJTkZPIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgSU5GTyBtZXNzYWdlcy4KCjIwMDctMDMtMDggMTE6NDA6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogQWRkIHN1cHBvcnQgZm9yIGRyb3BwaW5nIGJ1ZmZlcnMgd2l0aCBjdXN0b20gR3N0Rmxvd1JldHVybi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFkZCBzdXBwb3J0IGZvciBkcm9wcGluZyBidWZmZXJzIHdpdGggY3VzdG9tIEdzdEZsb3dSZXR1cm4uCgkgIFNldCBESVNDT05UIGZsYWdzIG9uIG91dGdvaW5nIGJ1ZmZlcnMgYmFzZWQgb24gUW9TLCBpbmNvbW1pbmcgRElTQ09OVAoJICBidWZmZXJzIG9yIGRyb3BwZWQgYnVmZmVycy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzIGZvciBuZXcgY3VzdG9tIHJldHVybiBjb2RlLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBVc2UgZHJvcCBzdXBwb3J0IGluIGJhc2UgY2xhc3MgdG8gaW1wbGVtZW50IGRyb3AtcHJvYmFiaWxpdHkuCgoyMDA3LTAzLTA3IDE3OjI2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUmVtb3ZlIG5ld2xpbmVzIGF0IGVuZCBvZiBkZWJ1ZyBsb2cgc3RyaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAobG9hZF9wbHVnaW5fZnVuYyk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2J5X25hbWUpLCAoZ3N0X3BsdWdpbl9sb2FkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHRyYWNlLmM6IChnc3RfdHJhY2VfbmV3KSwgKGdzdF9hbGxvY190cmFjZV9zZXRfZmxhZ3NfYWxsKToKCSAgUmVtb3ZlIG5ld2xpbmVzIGF0IGVuZCBvZiBkZWJ1ZyBsb2cgc3RyaW5ncy4KCjIwMDctMDMtMDcgMTc6MTQ6NTMgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IE9ubHkgcG9zdCBidXMgbWVzc2FnZSBhdCBtYXgsIG9uY2UgcGVyIGJ1ZmZlciByZWNlaXZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDcgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIE9ubHkgcG9zdCBidXMgbWVzc2FnZSBhdCBtYXgsIG9uY2UgcGVyIGJ1ZmZlciByZWNlaXZlZC4KCjIwMDctMDMtMDcgMTc6MTM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IEFkZCBkb2MgYWJvdXQgc3luY2hyb25pc2F0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgQWRkIGRvYyBhYm91dCBzeW5jaHJvbmlzYXRpb24KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNy0wMy0wNyAxNzowOTo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3RyZWFtZXIuZG9hcDogVXBkYXRlIHRoZSBkb2FwIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5kb2FwOgoJICBVcGRhdGUgdGhlIGRvYXAgZmlsZS4KCjIwMDctMDMtMDcgMTc6MDI6NTEgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFJlbmFtZSBub24tcGVyZmVjdCB0byBpbXBlcmZlY3QgZm9yIE1pa2UgYW5kIGZvciB0aGUgc2FuY3RpdHkgb2YgdGhlIGxhbmd1YWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgUmVuYW1lIG5vbi1wZXJmZWN0IHRvIGltcGVyZmVjdCBmb3IgTWlrZSBhbmQgZm9yIHRoZSBzYW5jdGl0eSBvZgoJICB0aGUgbGFuZ3VhZ2UuCgkgIEFsc28gbWFrZSBzdXJlIGJ1cyBtZXNzYWdlIGdldHMgZW1pdHRlZCBmb3IgZGF0YS1pbmNvbnRpZ3VpdGllcy4KCjIwMDctMDMtMDcgMTY6NTg6NDIgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lio6IEVtaXQgYnVzIG1lc3NhZ2UgaWYgY2hlY2stcGVyZmVjdCBpcyB0cnVlIGFuZCB3ZSBlbmNvdW50ZXIgYSBub24tcGVyZmVjdCBzdHJlYW0gYmV0d2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDcgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgRW1pdCBidXMgbWVzc2FnZSBpZiBjaGVjay1wZXJmZWN0IGlzIHRydWUgYW5kIHdlIGVuY291bnRlciBhCgkgIG5vbi1wZXJmZWN0IHN0cmVhbSBiZXR3ZWVuIDIgY29uc2VjdXRpdmUgYnVmZmVycy4KCSAgRml4ZXMgIzQxNTM5NC4KCjIwMDctMDMtMDcgMTY6NTU6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjEyID09PQoKMjAwNy0wMy0wNyAxNjo0NDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xMgoKMjAwNy0wMy0wNyAxNjozMTozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDMtMDcgMTI6NTE6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogY29tbW9uOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDMtMDEgMTg6NDY6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBWZXJzaW9uIDAuMTAuMTEuMiAoMC4xMC4xMiBwcmUtcmVsZWFzZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBWZXJzaW9uIDAuMTAuMTEuMiAoMC4xMC4xMiBwcmUtcmVsZWFzZSkKCSAgQnVtcCBsaWJ0b29sIHZlcnNpb25pbmcuCgoyMDA3LTAzLTAxIDE0OjQ5OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTG9nIGZsb3ctbmFtZXMgYW5kIG5vdCBudW1iZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgTG9nIGZsb3ctbmFtZXMgYW5kIG5vdCBudW1iZXJzLgoKMjAwNy0wMi0yOCAxOToyNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IENvbnZlcnQgdG8gbmV3IEFHX0dTVCBzdHlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBDb252ZXJ0IHRvIG5ldyBBR19HU1Qgc3R5bGUuCgoyMDA3LTAyLTI4IDE4OjUxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB1bnJlZiBxdWVyeSB0d2ljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KToKCSAgRG9uJ3QgdW5yZWYgcXVlcnkgdHdpY2UuCgoyMDA3LTAyLTI4IDE2OjU3OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEltcGxlbWVudCBHc3RPYmplY3QgLT4gc3RyaW5nIHRyYW5zZm9ybSBzbyB3ZSBwcmludCBvYmplY3QgbmFtZXMgd2hlbiBzZXJpYWxpemluZyBHVmFsdWVzIGNvbnRhaW5pbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9vYmplY3Rfc3RyaW5nKSwKCSAgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIEltcGxlbWVudCBHc3RPYmplY3QgLT4gc3RyaW5nIHRyYW5zZm9ybSBzbyB3ZSBwcmludCBvYmplY3QgbmFtZXMKCSAgd2hlbiBzZXJpYWxpemluZyBHVmFsdWVzIGNvbnRhaW5pbmcgR3N0T2JqZWN0cy4KCjIwMDctMDItMjggMTY6NTU6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IHN0dWZmIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgc3R1ZmYgdG8gZG9jcy4KCjIwMDctMDItMjggMTY6NDY6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgbGF0ZW5jeSBxdWVyeSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgSW1wcm92ZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuCgkgIERvbid0IGxlYWsgbGF0ZW5jeSBldmVudHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMjggMTY6NDM6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC4qOiBJbXByb3ZlIGRvY3MgYSBsaXR0bGUuIEFkZGVkIFNpbmNlOiBmb3IgbmV3IG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBJbXByb3ZlIGRvY3MgYSBsaXR0bGUuIEFkZGVkIFNpbmNlOiBmb3IgbmV3IG1hY3JvLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2luayk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYW5kIGRvY3MuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9jaGFuZ2VfcmV0dXJuX2dldF9uYW1lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAyLTI4IDE2OjQwOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogSGFuZGxlIElORk8gbWVzc2FnZXMgZnJvbSB0aGUgR1NUX0VMRU1FTlRfSU5GTyBtYWNybyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIElORk8gbWVzc2FnZXMgZnJvbSB0aGUgR1NUX0VMRU1FTlRfSU5GTyBtYWNybyBhcyB3ZWxsLgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIFNtYWxsIGNvZGUgY2xlYW51cHMuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2luZm8pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2luZm8oKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2luZm8oKQoJICBBZGQgSU5GTyBtZXNzYWdlIGNyZWF0ZSBhbmQgcGFyc2UgY29kZS4KCjIwMDctMDItMjggMTY6MzU6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFsc28gcmVwb3J0IHRoZSBsaXZlIHBhcmFtZXRlciBvZiBhIGxhdGVuY3kgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9taW5fbWF4X2luaXQpLCAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksCgkgIChiaW5fcXVlcnlfbGF0ZW5jeV9kb25lKToKCSAgQWxzbyByZXBvcnQgdGhlIGxpdmUgcGFyYW1ldGVyIG9mIGEgbGF0ZW5jeSBxdWVyeS4KCjIwMDctMDItMjggMTI6NTc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgcGx1ZyB0ZXN0IGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBsdWcgdGVzdCBsZWFrCgoyMDA3LTAyLTI4IDEyOjQzOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhY3R1YWxseSB1c2UgdGhlIGVudiB2YXIgZm9yIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhY3R1YWxseSB1c2UgdGhlIGVudiB2YXIgZm9yIHRlc3RzCgoyMDA3LTAyLTI4IDEyOjQwOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IENvcHkgdGhlIGN1cnJlbnQgZ2VuZXJpYy9zdGF0ZXMgZXhhbXBsZSBmcm9tIC1iYXNlIGFuZCBhZGFwdCBzbyB3ZSBjYW4gdXNlIHRoZSBleGFjdCBzYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoc3RhdGVzX3N1aXRlKToKCSAgQ29weSB0aGUgY3VycmVudCBnZW5lcmljL3N0YXRlcyBleGFtcGxlIGZyb20gLWJhc2UgYW5kIGFkYXB0IHNvCgkgIHdlIGNhbiB1c2UgdGhlIGV4YWN0IHNhbWUgY29kZSBldmVyeXdoZXJlLgoJICBDaGVjayBhIFNUQVRFU19JR05PUkVfRUxFTUVOVFMgZW52IHZhciB3aGljaCBjYW4gYmUgdXNlZAoJICB0byBpZ25vcmUgY2VydGFpbiBlbGVtZW50IGZhY3RvcmllcyBmb3IgdGhpcyB0ZXN0LCB3aGljaCBpcwoJICB3aGF0IGlzIGJlaW5nIGRvbmUgaW4gLWJhc2UKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgTWVudGlvbiB0aGlzIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAwNy0wMi0yNyAxNzoyMjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFQSTogZ3N0X2J1c190aW1lZF9wb3AoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaW5pdCksIChnc3RfYnVzX2Rpc3Bvc2UpLCAoZ3N0X2J1c19wb3N0KSwKCSAgKGdzdF9idXNfdGltZWRfcG9wKSwgKGdzdF9idXNfcG9wKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFQSTogZ3N0X2J1c190aW1lZF9wb3AoKQoJICBJbXBsZW1lbnQgZ3N0X2J1c190aW1lZF9wb3AoKSB0byBkbyBhIGJsb2NraW5nIHRpbWVkIHdhaXQgZm9yIGEKCSAgbWVzc2FnZSB0byBhcnJpdmUgb24gdGhlIGJ1cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChwb3BfdGhyZWFkKSwKCSAgKGdzdF9idXNfc3VpdGUpOgoJICBUd28gdW5pdCB0ZXN0cyBmb3IgbmV3IF90aW1lZF9wb3AoKSBmdW5jdGlvbi4KCjIwMDctMDItMjMgMTc6NDI6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRG9uJ3QgcmVmIGEgTlVMTCBjbG9jayBpbiBfcHJvdmlkZV9jbG9ja19mdW5jKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9waXBlbGluZV9zZXRfZGVsYXkpOgoJICBEb24ndCByZWYgYSBOVUxMIGNsb2NrIGluIF9wcm92aWRlX2Nsb2NrX2Z1bmMoKS4KCSAgRG9uJ3QgYWxsb3cgYW4gSU5WQUxJRCBkZWxheS4KCSAgRG9uJ3QgdHJ5IHRvIGNhbGN1bGF0ZSBiYXNlX3RpbWUgd2l0aCBhbiBpbnZhbGlkIHN0YXJ0X3RpbWUuCgkgIEFsc28gZGlzdHJpYnV0ZSBhbmQgbm90aWZ5IGEgTlVMTCBjbG9jayB3aGVuIGl0IHdhcyBzZWxlY3RlZC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiBhIE5VTEwgY2xvY2sgd2FzIHNlbGVjdGVkIGluIHRoZSBwaXBlbGluZS4KCjIwMDctMDItMjMgMTM6NDI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzLzogU29tZSBzbWFsbCB1cGRhdGVzOiB1cGRhdGUgcGx1Z2luIHN5c3RlbSBpZGVudGlmaWVyIHByZWZpeCBtZW50aW9uIG91ciBuZXcgaW5zdGFsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFNvbWUgc21hbGwgdXBkYXRlczogdXBkYXRlIHBsdWdpbiBzeXN0ZW0gaWRlbnRpZmllciBwcmVmaXgKCSAgKCdnc3RyZWFtZXIubmV0JyB0byAnZ3N0cmVhbWVyJyksIG1lbnRpb24gb3VyIG5ldyBpbnN0YWxsCgkgIEFQSSBpbiBsaWJnc3RiYXNldXRpbHMgcmF0aGVyIHRoYW4gbGliZ2ltbWUtY29kZWMsIGFkZAoJICByZWZlcmVuY2UgdG8gdGhlIG9ubGluZSBkb2NzLgoKMjAwNy0wMi0yMSAxNTozNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmg6IFByZXR0eSBzdXJlIEJpbGwgbmV2ZXIgbWFkZSBhIHBvd2VycGMgdmVyc2lvbi4gIFBvd2VycGMgaGFja2VycywgdXNlIG1vYXAgY2wgY2kgdG8gb25seSBjaGVjayAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBQcmV0dHkgc3VyZSBCaWxsIG5ldmVyIG1hZGUgYSBwb3dlcnBjIHZlcnNpb24uICBQb3dlcnBjIGhhY2tlcnMsCgkgIHVzZSBtb2FwIGNsIGNpIHRvIG9ubHkgY2hlY2sgaW4gd2hhdCBpcyBtZW50aW9uZWQgaW4gdGhlIENoYW5nZUxvZy4KCjIwMDctMDItMjEgMTU6MzQ6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRml4IHVwIGRvY3VtZW50YXRpb24gdG8gbGluayB0byB0aGUgY29ycmVjdCBHc3RHRXJyb3Igc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggdXAgZG9jdW1lbnRhdGlvbiB0byBsaW5rIHRvIHRoZSBjb3JyZWN0IEdzdEdFcnJvciBzZWN0aW9uLgoJICBBZGQgR1NUX0VMRU1FTlRfSU5GTyBtYWNybyBzaW5jZSBzb21lb25lIGVsc2UgYWRkZWQgYSBJbmZvIG1lc3NhZ2UuCgoyMDA3LTAyLTIxIDE1OjMwOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTWFrZSBzdXJlIHRoYXQgd2UgYWN0dWFsbHkgc2hvdyB0aGUgaW1wb3J0YW50IG1lc3NhZ2UgcGFydCBvZiBhIHdhcm5pbmcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1ha2Ugc3VyZSB0aGF0IHdlIGFjdHVhbGx5IHNob3cgdGhlIGltcG9ydGFudCBtZXNzYWdlIHBhcnQgb2YgYQoJICB3YXJuaW5nIG1lc3NhZ2UuCgkgIE5vIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGdlcnJvciBpcyBub3QgTlVMTCB0byBmcmVlOyBmaXJzdCBvZiBhbGwKCSAgZ19mcmVlIGFjY2VwdHMgTlVMTDsgYW5kIHNlY29uZCB0aGUgZGVmYXVsdCBlcnJvciBoYW5kbGVyIHdvdWxkCgkgIHNlZ2ZhdWx0IGlmIGdlcnJvciB3YXMgTlVMTC4KCjIwMDctMDItMjEgMTI6MTA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZW1vdmVkIGRvY3MgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlZCBkb2NzIGFzIHdlbGwuCgoyMDA3LTAyLTIxIDEyOjAxOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogUmVtb3ZlIG5ldyBtZXNzYWdlcyBmb3IgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBSZW1vdmUgbmV3IG1lc3NhZ2VzIGZvciByZWxlYXNlLgoKMjAwNy0wMi0yMCAxODowMjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgdGhlIGdob3N0cGFkIGEgcGFyZW50IG9mIHRoZSBpbnRlcm5hbCBwYWQgYWdhaW4gZm9yIGJldHRlciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBEb24ndCB3cml0ZSBjb2RlIHRoYXQgcmVsaWVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgTWFrZSB0aGUgZ2hvc3RwYWQgYSBwYXJlbnQgb2YgdGhlIGludGVybmFsIHBhZCBhZ2FpbiBmb3IgYmV0dGVyIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHkuIERvbid0IHdyaXRlIGNvZGUgdGhhdCByZWxpZXMgb24gdGhpcyBob3dldmVyLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSk6CgkgIFJlcXVpcmUgdGhhdCBwYXJlbnRzIHNob3VsZCBiZSBHc3RFbGVtZW50cyBpbiB0aGUgaGllcmFyY2h5IGNoZWNrLgoKMjAwNy0wMi0yMCAxMDo0NToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogSW1wcm92ZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcmVwbGFjZV9tZXNzYWdlKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fcXVlcnlfbWluX21heF9pbml0KSwKCSAgKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpLCAoYmluX3F1ZXJ5X2xhdGVuY3lfZG9uZSksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgSW1wcm92ZSBkZWJ1ZyBpbmZvLgoJICBJbXBsZW1lbnQgbGF0ZW5jeSBxdWVyeS4KCjIwMDctMDItMjAgMTA6MTY6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEbyBub3Qgc2V0IHRoZSBpbnRlcm5hbCBwYWQgYXMgYSBwYXJlbnQgYW55bW9yZSBzbyB3ZSBjYW4gYXZvaWQgaGllcmFyY2h5IGxpbmtpbmcgZXJyb3JzIHdoZW4gdGhlIGdob3N0cGFkIGhhcyBubyBwYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBEbyBub3Qgc2V0IHRoZSBpbnRlcm5hbCBwYWQgYXMgYSBwYXJlbnQgYW55bW9yZSBzbyB3ZSBjYW4gYXZvaWQKCSAgaGllcmFyY2h5IGxpbmtpbmcgZXJyb3JzIHdoZW4gdGhlIGdob3N0cGFkIGhhcyBubyBwYXJlbnQgeWV0LiBUaGlzIGFsc28KCSAgZml4ZXMgZmFpbGVkIGFjdGl2YXRpb24gYmVjYXVzZSBvZiB1bmxpbmtlZCBpbnRlcm5hbCBwYWRzLCB3aGljaCBpbgoJICB0dXJuIGZpeGVzIHRoZSBpbXBvc3NpYmxlIGNhc2Ugd2hlcmUgeW91IGhhdmUgdG8gYWN0aXZhdGUgYSBwYWQgYmVmb3JlCgkgIHlvdSBjYW4gYWRkIGl0IHRvIGEgcnVubmluZyBlbGVtZW50LgoJICBBbHNvIGZpeCB0aGUgZG9jcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChwcmVfYWN0aXZhdGUpLCAocG9zdF9hY3RpdmF0ZSksCgkgIChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE1hcmsgYWN0aXZhdGlvbiBtb2RlIGluIHByZV9hY3RpdmF0ZSBzbyB0aGF0IHdlIGRvbid0IHRyeSB0byBhY3RpdmF0ZSBpbgoJICBlbmRsZXNzIGxvb3BzLiBGaXhlcyAjMzg1MDg0LgoKMjAwNy0wMi0xOSAxODowODo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBJbXBsZW1lbnQgYSBjaGVja2dldHJhbmdlIGZ1bmN0aW9uIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdCBjb3JlIGJlaGF2aW91ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGVja19nZXRfcmFuZ2UpOgoJICBJbXBsZW1lbnQgYSBjaGVja2dldHJhbmdlIGZ1bmN0aW9uIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdAoJICBjb3JlIGJlaGF2aW91ciB0aGF0IGFzc3VtZXMgd2UgY2FuIG9wZXJhdGUgaW4gcHVsbCBtb2RlIGlmIHdlIGhhdmUgYQoJICBnZXRyYW5nZSBmdW5jdGlvbi4gRmlyc3Qgc3RlcCBhdCBmaXhpbmcgIzM4NTA4NC4KCjIwMDctMDItMTUgMTI6MDU6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgZG9jcyBjb3ZlcmFnZSBhbmQgc29tZSBDaGFuZ2VMb2cgc3VyZ2VyeSAoYWRkIG1pc3NpbmcgbmFtZXMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNb3JlIGRvY3MgY292ZXJhZ2UgYW5kIHNvbWUgQ2hhbmdlTG9nIHN1cmdlcnkgKGFkZCBtaXNzaW5nIG5hbWVzKQoKMjAwNy0wMi0xNSAxMTozMjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBkb2MgdXBkYXRlcy4gU3RhcnQgcmVuYW1pbmcgZnJvbSBzdHJlYW1fdGltZSB0byBydW5uaW5nX3RpbWUgd2hlcmUgaXQgd2FzIHVzZWQgd3JvbmdseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBTb21lIGRvYyB1cGRhdGVzLiBTdGFydCByZW5hbWluZyBmcm9tIHN0cmVhbV90aW1lIHRvIHJ1bm5pbmdfdGltZSB3aGVyZQoJICBpdCB3YXMgdXNlZCB3cm9uZ2x5LgoKMjAwNy0wMi0xNSAwOTowNzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbnN3ZXIgTEFURU5DWSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIEFuc3dlciBMQVRFTkNZIHF1ZXJ5LgoKMjAwNy0wMi0xNSAwODo0MDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSksICh0ZXN0X2V2ZW50KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAyLTE1IDA4OjM3OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXByb3ZlIGRlYnVnZ2luZyBvZiBkZWZhdWx0IHBhZCBkaXNwYXRjaGVyIGFuZCBxdWVyeSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9kaXNwYXRjaGVyKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZGVmYXVsdCBwYWQgZGlzcGF0Y2hlciBhbmQgcXVlcnkgZnVuY3Rpb25zLgoKMjAwNy0wMi0xNSAwODozMToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZSBvbGQgdW51c2VkIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlIG9sZCB1bnVzZWQgbWV0aG9kLgoKMjAwNy0wMi0xMyAxNTo1MTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IEZpeCBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggY2hlY2sKCjIwMDctMDItMTMgMTU6MzQ6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OiBTb21lIHNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU29tZSBzbWFsbCB1cGRhdGUuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgUmV2ZXJ0IG9sZCBib2d1cyBjaGFuZ2UgdGhhdCBzaG91bGQgbWFrZSBzZWVraW5nIHdvcmsgYWdhaW4uCgoyMDA3LTAyLTEzIDE0OjUyOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogUG9zc2libGUgZHluYW1pYyByZWNvbm5lY3Rpb24gYXBpLCBwbHVzIHNvbWUgdHlwZSBmaXhlcyB0aGUgb3RoZXIgdHdvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9pbnRlcmZhY2VzLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3JlY2VpcGllcy50eHQ6CgkgIFBvc3NpYmxlIGR5bmFtaWMgcmVjb25uZWN0aW9uIGFwaSwgcGx1cyBzb21lIHR5cGUgZml4ZXMgdGhlIG90aGVyIHR3bwoJICBkb2NzLgoKMjAwNy0wMi0xMyAxMzo0MDowNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFsc28gY2hlY2sgZm9yIGFuIGFic29sdXRlIHBhdGggZm9sbG93aW5nIGZpbGU6Ly8gaW4gdGhlIGZpbGVzcmMgZWxlbWVudC4gUmVtb3ZlIHJlZHVuZGFudCBjaGVjayBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgQWxzbyBjaGVjayBmb3IgYW4gYWJzb2x1dGUgcGF0aCBmb2xsb3dpbmcgZmlsZTovLyBpbiB0aGUgZmlsZXNyYwoJICBlbGVtZW50LiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrIGFuZCBjYWxsIGdfcGF0aF9pc19hYnNvbHV0ZSgpIG9uIHRoZQoJICB1bmVzY2FwZWQgbG9jYXRpb24uCgoyMDA3LTAyLTEzIDA5OjEwOjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEFkZCBleGlzdGluZyBjYXRlZ29yeSBhbmFseXNpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBBZGQgZXhpc3RpbmcgY2F0ZWdvcnkgYW5hbHlzaXMuCgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgRml4IGRvYyBleGFtcGxlLCBmcmFtZXJhdGUgaXMgYSBmcmFjdGlvbi4KCjIwMDctMDItMTIgMTk6NTU6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBjcm9zc3JlZmVyZW5jZXMgdG8gZ2xpYi9nb2JqZWN0IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBBZGQgY3Jvc3NyZWZlcmVuY2VzIHRvIGdsaWIvZ29iamVjdCBkb2NzLgoKMjAwNy0wMi0xMiAxMTozMjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBTbWFsbCB1cGRhdGUuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbGF0ZW5jeSksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KCkgdG8gbGV0IHN1YmNsYXNzZXMgcXVlcnkgdGhlIHVwc3RyZWFtCgkgIGxhdGVuY3kuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfbGF0ZW5jeSgpIHRvIGxldCBzdWJjbGFzc2VzIHF1ZXJ5IHRoZSBjb25maWd1cmVkCgkgIGxhdGVuY3kgaW4gdGhlIHNpbmsuCgkgIEltcGxlbWVudCBxdWVyeSBhbmQgc2V0IGxhdGVuY3kuCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgIEFzIHNwb3R0ZWQgYnkgV2lsbCBOZXd0b24gPHdpbGwgZG90IG5ld3RvbiBhdCBnbWFpbCBkb3QgY29tPjogTWFrZSBzdXJlIHdlCgkgIGRvbid0IGNvbnRpbnVlIHByZXJvbGwgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuIEZpeGVzICM0MDUyODQuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoY2hhbmdlX3N0YXRlX3RpbWVvdXQpLAoJICAocXVpdF90aW1lb3V0KSwgKEdTVF9TVEFSVF9URVNUKSwgKHN0cmVzc19zdWl0ZSk6CgkgIFRlc3QgZm9yICM0MDUyODQuCgoyMDA3LTAyLTEyIDEwOjUwOjIwICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgQVBJOiBhZGQgR1NUX1RBR19SRUZFUkVOQ0VfTEVWRUwgKCM0MDM1OTcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19SRUZFUkVOQ0VfTEVWRUwgKCM0MDM1OTcpLgoKMjAwNy0wMi0xMSAxOTo1OToxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL01ha2VmaWxlLmFtOiBGaXggcGF0aCB0byBjb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgRml4IHBhdGggdG8gY29yZSBkb2NzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgIFJlZml4IGRvY3MgYnkgYWxzbyByZW5hbWluZyAnaW50ZXJmYWNlJyB0byAnaWZhY2UnIGluIGltcGxlbWVudGF0aW9uLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2Jhc2VfaW5pdCk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIERvY3VtZW50IG1vcmUuCgoyMDA3LTAyLTEwIDE4OjMxOjEyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmg6IFJlcGxhY2UgaW50ZXJmYWNlIHBhcmFtZXRlciBuYW1lIGJ5IGlmYWNlIGFzIGludGVyZmFjZSBpcyBhIHJlc2VydmVkIGtleXdvcmQgaW4gVmlzdWFsIFN0dWRpbyBmb3IgQysrIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOihnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICBSZXBsYWNlIGludGVyZmFjZSBwYXJhbWV0ZXIgbmFtZSBieSBpZmFjZSBhcyBpbnRlcmZhY2UgaXMKCSAgYSByZXNlcnZlZCBrZXl3b3JkIGluIFZpc3VhbCBTdHVkaW8gZm9yIEMrKyBwcm9qZWN0cyBzbyBpdCByZW1vdmVzCgkgIGEgYnVpbGQgZXJyb3IgZm9yIGFwcGxpY2F0aW9uIGRldmVsb3BwZXJzIHVzaW5nIFZTLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOihnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBGaXggYSBidWcgb24gV2luZG93cyBpbiB1cmkgZm9ybWF0IGNoZWNrLiBOb3cgdGhlIHByZWZpeCBjaGVja2VkCgkgIGlzIGZpbGU6Ly8gYW5kIG5leHQgd2UgY2hlY2sgaWYgdGhlIHBhdGggYWZ0ZXIgZmlsZTovLyBpcyBhYnNvbHV0ZS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wMi0wOSAxNToyNTo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHNpbXBsZV9sYXVuY2hfbGluZXNfc3VpdGUsIHRlc3RfdGVlKTogRGlzYWJsZSB0ZWUgdGVzdCB1bnRpbCBJCgkgIGhhdmUgdGltZSB0byBmaXggaXQgOi0oCgoyMDA3LTAyLTA5IDEzOjU5OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBBQkkgY2hlY2tzIGZvciBQUEMzMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0gKG5vaW5zdF9IRUFERVJTKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOiBBZGQgQUJJIGNoZWNrcyBmb3IgUFBDMzIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDogQWRkIEFCSSBjaGVja3MgZm9yIFBQQzMyLgoKMjAwNy0wMi0wOSAxMzo0NToyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYyAodGVzdF90ZWUpOiBBZGQgdGVzdHMgZm9yIHB1c2ggYW5kIHB1bGwgdGVlIGJlaGF2aW9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jICh0ZXN0X3RlZSk6IEFkZAoJICB0ZXN0cyBmb3IgcHVzaCBhbmQgcHVsbCB0ZWUgYmVoYXZpb3IuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBEZXNjcmliZSBoYXMtc2luay1sb29wIGJldHRlciwgYW5kCgkgIG1hcmsgYXMgZGVwcmVjYXRlZCBhcyB3ZWxsIGFzIHVuaW1wbGVtZW50ZWQuIEl0IHdhcyBhIGNyYWNrIGlkZWEuCgkgIEFkZCBzdXBwb3J0IGZvciB0ZWUgb3BlcmF0aW5nIGluIHB1bGwgbW9kZSwgb2ZmIGJ5IGRlZmF1bHQuCgoyMDA3LTAyLTA5IDEzOjQxOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYyAobG9hZF9mZWF0dXJlLCBsb2FkX3BsdWdpbik6IERyb3Agc29tZSBub3JtYWwtY2FzZSBsb2dzIGRvd24gdG8gTE9HLCByYWlzZSBlcnJvcnMgdG8gV0FSTklORy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmMgKGxvYWRfZmVhdHVyZSwgbG9hZF9wbHVnaW4pOiBEcm9wIHNvbWUKCSAgbm9ybWFsLWNhc2UgbG9ncyBkb3duIHRvIExPRywgcmFpc2UgZXJyb3JzIHRvIFdBUk5JTkcuCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOiBEb24ndCBsb2cgYmVmb3JlIGNhbGxpbmcgYSBmdW5jdGlvbgoJICB0aGF0IGxvZ3MuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSk6IExlc3MgZGVidWcgb24gcHJvZ3JhbQoJICBleGl0IChyZWdpc3RyeSBmaW5hbGl6ZSkuCgkgIChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiwgZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKTogTm8gbmVlZCBmb3IgYQoJICBERUJVRyBsb2cgd2hlbiB3ZSBlbWl0IHNpZ25hbHMgdGhhdCBwZW9wbGUgZG9uJ3QgZXZlbiBoYXZlIHRoZQoJICBjaGFuY2UgdG8gY29ubmVjdCB0by4KCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOiBMZXNzIGxvZ2dpbmcgaW4gdGhlIG5vcm1hbCBjYXNlLgoKMjAwNy0wMi0wNSAxMzoxNTo0NCArMDAwMCAgTWljaGFsIEJlbmVzIDxtaWNoYWwuYmVuZXNAaXRvbmlzLnR2PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IENvcnJlY3RseSBnZW5lcmF0ZSBFT1MgZm9yIG5vbi1zZWVrYWJsZSBmaWxlcy4gV2UgZG9uJ3QgaGF2ZSBhIHRvdGFsIGxlbmd0aCBmb3IgdGhlbSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWljaGFsIEJlbmVzIDxtaWNoYWwgZG90IGJlbmVzIGF0IGl0b25pcyBkb3QgdHY+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBDb3JyZWN0bHkgZ2VuZXJhdGUgRU9TIGZvciBub24tc2Vla2FibGUgZmlsZXMuIFdlIGRvbid0IGhhdmUgYSB0b3RhbAoJICBsZW5ndGggZm9yIHRoZW0gYW5kIHdvdWxkIGdldCBhbiB1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIGlmIHdlIG9ubHkKCSAgc3BlY2lhbC1jYXNlZCBmb3IgcmVndWxhciBmaWxlcy4gKEZpeGVzOiAjNDA0NTY5KQoKMjAwNy0wMi0wNSAwODoxNToyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VVJJSGFuZGxlciBpbnRlcmZhY2UgaW4gZmlsZXNyYy4gVGhpcyBhbHNvIHRlc3RzIHRoZSBuZXdseSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZpbGVzcmNfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VVJJSGFuZGxlciBpbnRlcmZhY2UgaW4gZmlsZXNyYy4gVGhpcyBhbHNvCgkgIHRlc3RzIHRoZSBuZXdseSBhZGRlZCBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgc3VwcG9ydC4KCjIwMDctMDItMDQgMTY6MTQ6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDogVGhlIGtsYXNzIHN0cmluZyBpcyBub3QgYSBoaWVyYXJjaHkuIEFkZCByZWZlcmVuY2UgdG8gdGhlIGRlc2lnbiBkb2MgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIFRoZSBrbGFzcyBzdHJpbmcgaXMgbm90IGEgaGllcmFyY2h5LiBBZGQgcmVmZXJlbmNlIHRvIHRoZSBkZXNpZ24gZG9jCgkgIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBjb21tb24gdHlwZXMuCgoyMDA3LTAyLTAyIDE4OjA4OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IFJlbW92ZSBvbGQgc3RydWN0dXJlIGZpZWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfbGF0ZW5jeSk6CgkgIFJlbW92ZSBvbGQgc3RydWN0dXJlIGZpZWxkLgoKMjAwNy0wMi0wMiAxMjoyNzoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBHaXZlIGV4YW1wbGUgZm9yIG5ldHdvcmsgc3RyZWFtaW5nICgjMzUxOTk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEdpdmUgZXhhbXBsZSBmb3IgbmV0d29yayBzdHJlYW1pbmcgKCMzNTE5OTgpCgoyMDA3LTAyLTAyIDExOjQ4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2xhdGVuY3kpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2xhdGVuY3kpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgbmV3IExBVEVOQ1kgZXZlbnQgdG8gY29uZmlndXJlIGxhdGVuY3kgaW4gYSBwaXBlbGluZS4KCSAgQVBJOiBnc3RfZXZlbnRfbmV3X2xhdGVuY3kKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2VfbGF0ZW5jeQoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX25ld19sb3N0X3ByZXJvbGwpLCAoZ3N0X21lc3NhZ2VfbmV3X3ByZXJvbGxlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfbGF0ZW5jeSksIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfbG9zdF9wcmVyb2xsKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBtZXNzYWdlcyB1c2VkIGluIGRyYWZ0LWxhdGVuY3kuCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2xvc3RfcHJlcm9sbAoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2xvc3RfcHJlcm9sbAoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19wcmVyb2xsZWQKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfbGF0ZW5jeQoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19sYXRlbmN5KSwgKGdzdF9xdWVyeV9zZXRfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEltcGxlbWVudGVkIG5ldyBsYXRlbmN5IHF1ZXJ5IGFzIGluIGRlc2lnbiBkb2MuCgkgIEFQSTogZ3N0X3F1ZXJ5X25ld19sYXRlbmN5CgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9sYXRlbmN5CgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kKCjIwMDctMDItMDIgMTE6MzM6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogU2xpZ2h0IHJlZGVzaWduIHRvIGFsbG93IGZvciBkeW5hbWljIGxhdGVuY3kgYWRqdXN0bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBTbGlnaHQgcmVkZXNpZ24gdG8gYWxsb3cgZm9yIGR5bmFtaWMgbGF0ZW5jeSBhZGp1c3RtZW50cy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgRml4IHNvbWUgdHlwb3MuCgoyMDA3LTAyLTAyIDEwOjQxOjI5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWxsb3cgZmlsZTovL2xvY2FsaG9zdC9mb28vYmFyIFVSTHMgYW5kIGNvcnJlY3RseSBmYWlsIGZvciBldmVyeSBvdGhlciBob3N0bmFtZSB0aGF0IG9uZSBzZXRzLiBUaGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgQWxsb3cgZmlsZTovL2xvY2FsaG9zdC9mb28vYmFyIFVSTHMgYW5kIGNvcnJlY3RseSBmYWlsIGZvciBldmVyeSBvdGhlcgoJICBob3N0bmFtZSB0aGF0IG9uZSBzZXRzLiBUaGlzIHdhcyBnbm9tZXZmc3NyYyBpcyBsaW5rZWQgZm9yIHRob3NlIGlmCgkgIGluc3RhbGxlZCBhcyBpdCBjYW4gaGFuZGxlIGl0ICgjNDAzMTcyKQoKMjAwNy0wMi0wMSAxOTowMDo0OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBEb24ndCBwdXQgdGhlIHByZXZpb3VzbHkgYWRkZWQgZGVzdHJveSBub3RpZnkgaW4gdGhlIEdzdENvbGxlY3REYXRhIHN0cnVjdCBhcyBhbGwgaXQnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvbid0IHB1dCB0aGUgcHJldmlvdXNseSBhZGRlZCBkZXN0cm95IG5vdGlmeSBpbiB0aGUgR3N0Q29sbGVjdERhdGEKCSAgc3RydWN0IGFzIGFsbCBpdCdzIHBhZGRpbmcgaXMgYWxyZWFkeSB1c2VkIGFuZCB3ZSBkb24ndCB3YW50IHRvIGJyZWFrCgkgIEFCSS4gSW5zdGVhZCBwdXQgaW4gdGhlIHBhZCdzIEdPYmplY3QgZGF0YSBmb3Igbm93LiBUaGlzIHNob3VsZCBiZQoJICBjbGVhbmVkIHVwIGZvciAwLjExICgjNDAyMzkzKS4KCjIwMDctMDItMDEgMTc6NTI6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGZ1bmN0aW9uIHRvIHNwZWNpZnkgYSBkZXN0cm95IG5vdGlmaWNhdGlvbiBmb3IgY3VzdG9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAodW5yZWZfZGF0YSksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQVBJOiBBZGQgZnVuY3Rpb24gdG8gc3BlY2lmeSBhIGRlc3Ryb3kgbm90aWZpY2F0aW9uIGZvciBjdXN0b20KCSAgR3N0Q29sbGVjdERhdGEgd2hlbiBhZGRpbmcgbmV3IHBhZHMgaW4gR3N0Q29sbGVjdFBhZHMgKCM0MDIzOTMpLgoKMjAwNy0wMi0wMSAxNzoxMDoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBvL3N2LnBvOiBVcGRhdGUgU3dlZGlzaCB0cmFuc2xhdGlvbiAoIzM3ODI1NSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL3N2LnBvOgoJICBVcGRhdGUgU3dlZGlzaCB0cmFuc2xhdGlvbiAoIzM3ODI1NSkuCgoyMDA3LTAxLTMxIDExOjQyOjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEZpeCB0aGUgcHJldmlvdXMgY2hhbmdlLCB0aGlzIGlzIGEgbGlzdCBvZiBjYXRlZ29yaWVzIGFuZCBub3QgYSBoaWVyYXJjaHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgRml4IHRoZSBwcmV2aW91cyBjaGFuZ2UsIHRoaXMgaXMgYSBsaXN0IG9mIGNhdGVnb3JpZXMgYW5kIG5vdCBhIGhpZXJhcmNoeS4KCjIwMDctMDEtMzEgMTE6MDI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGluZm8gYWJvdXQgaG93IHRvIGdldCBhIGxpc3Qgb2YgdXNlZCBjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBpbmZvIGFib3V0IGhvdyB0byBnZXQgYSBsaXN0IG9mIHVzZWQgY2xhc3Nlcy4KCjIwMDctMDEtMzAgMTk6MTI6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEb24ndCBsZWFrIGZvdW5kIGNhcHMgaW4gY2hhaW4gZnVuY3Rpb24gKG5vIGlkZWEgd2h5IHRoYXQgbmV2ZXIgc2hvd2VkIHVwIGFzIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbl9kb190eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgbGVhayBmb3VuZCBjYXBzIGluIGNoYWluIGZ1bmN0aW9uIChubyBpZGVhIHdoeSB0aGF0IG5ldmVyCgkgIHNob3dlZCB1cCBhcyBhIGxlYWsgYW55d2hlcmUpLgoKMjAwNy0wMS0zMCAxNTowNDozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5oOiBGaXggYW5kIGV4cGFuZCBHc3RQbHVnaW5EZXNjIEFQSSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEZpeCBhbmQgZXhwYW5kIEdzdFBsdWdpbkRlc2MgQVBJIGRvY3MuCgoyMDA3LTAxLTI5IDE1OjU0OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IGNvbW1lbnQgYWJvdXQgcmVmaW5pbmcgdGhlIHhtbCBkZXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY29tbWVudCBhYm91dCByZWZpbmluZyB0aGUgeG1sIGRlcHMKCSAgKiBkb2NzL21hbnVhbHMubWFrOgoJICBjb21tZW50cyBhYm91dCBtb3ZpbmcgYXdheSBmcm9tIGphZGUgZm9yIGRvY3MKCSAgKiBnc3QvZ3N0LmM6CgkgIHJlY29tbWl0IHRoZSBpZmRlZnMgdG8gdXNlIHRoZSBiaW5hcnkgcmVnaXN0cnkKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgdGhpcyBicmVhayBpcyBvYnNvbGV0ZQoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBiZXR0ZXIgR1NUX0VMRU1FTlRfREVUQUlMUyBkb2NzLCBhZGQgY29tbWVudCBhYm91dCB0cmFuc2xhdGlvbgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIHJlbW92ZSBlb2wgc2xhc2gKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfc2lnbmFsX29iamVjdF9nZXRfdHlwZSk6CgkgIGFkZCBHX1VOTElLRUxZIGFzIHVzdWFsCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KToKCSAgYWRkIGZhbGwgdHJodSBjb21tZW50CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIGNvbW1lbnQgdHlwbyBhbmQgZm9ybWF0dGluZwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpLAoJICAoZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZSk6CgkgIHJlbW92ZSBvYnNvbGV0ZSBicmVha3MKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIGFkZCBGSVhNRSAwLjExIGFuZCByZW1vdmUgY3BwIGNvbW1lbnQKCjIwMDctMDEtMjkgMTU6MDI6MTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRml4IHByaW50IHN0YXRlbWVudCBpbiBhbiBldmVuIG1vcmUgcG9ydGFibGUgd2F5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEZpeCBwcmludCBzdGF0ZW1lbnQgaW4gYW4gZXZlbiBtb3JlIHBvcnRhYmxlIHdheS4KCjIwMDctMDEtMjkgMTM6NDA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfUk9VTkRfRE9XTl8qIG1hY3JvcyAoIzQwMTc4MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIEdTVF9ST1VORF9ET1dOXyogbWFjcm9zICgjNDAxNzgxKS4KCjIwMDctMDEtMjcgMTg6NDQ6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBEb2N1bWVudCByZWdpc3RyeSBzaWduYWxzIGFuZCBtYWtlIGd0ay1kb2MgcGljayB0aGVtIHVwICgjNDAxMzgxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2NsYXNzX2luaXQpOgoJICBEb2N1bWVudCByZWdpc3RyeSBzaWduYWxzIGFuZCBtYWtlIGd0ay1kb2MgcGljayB0aGVtIHVwICgjNDAxMzgxKS4KCjIwMDctMDEtMjYgMTg6MjQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogQWRkIHNvbWUgYXVkaW9jb252ZXJ0cyBhbmQgYXVkaW9yZXNhbXBsZSB0byB0aGUgcGlwZWxpbmUsIGFuZCBzb21lIG1vcmUgY29tbWVudHMgYW5kIGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIEFkZCBzb21lIGF1ZGlvY29udmVydHMgYW5kIGF1ZGlvcmVzYW1wbGUgdG8gdGhlIHBpcGVsaW5lLCBhbmQgc29tZQoJICBtb3JlIGNvbW1lbnRzIGFuZCBlcnJvciBoYW5kbGluZy4KCjIwMDctMDEtMjYgMTM6MDc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzLzogRml4IHR5cG8gKCM0MDA5ODcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIEZpeCB0eXBvICgjNDAwOTg3KS4KCjIwMDctMDEtMjYgMDk6Mzc6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBJbml0IGNhcHMgZmxhZ3MgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgIEluaXQgY2FwcyBmbGFncyB0b28uCgoyMDA3LTAxLTI1IDE3OjU0OjA3ICswMDAwICBKaW5kcmljaCBNYWtvdmlja2EgPGppbmRyaWNoLm1ha292aWNrQGl0b25pcy50dj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBJZiBub3QgdXNpbmcgbW1hcCdlZCBmaWxlcyB0cnkgdG8gc2VlayB0byB0aGUgZW5kIGluc3RlYWQgb2YgdGhlIHN0YXJ0IHRvIGRldGVybWluZSB3aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEppbmRyaWNoIE1ha292aWNrYSA8amluZHJpY2gubWFrb3ZpY2sgYXQgaXRvbmlzIGRvdCB0dj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zdGFydCk6CgkgIElmIG5vdCB1c2luZyBtbWFwJ2VkIGZpbGVzIHRyeSB0byBzZWVrIHRvIHRoZSBlbmQgaW5zdGVhZCBvZiB0aGUKCSAgc3RhcnQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgY2FuIHNlZWsgYXQgYWxsLiBUaGlzIGZpeGVzIHRoZSBjYXNlCgkgIG9mIDJHQisgZmlsZXMgb3ZlciBORlMsIHdoZXJlIHNlZWtzIGluIHRoZSBmaXJzdCAyR0IgY2FuIHN1Y2NlZWQgYnV0CgkgIHNlZWtzIGZvciBldmVyeXRoaW5nIGFmdGVyd2FyZHMgZmFpbC4gRml4ZXMgIzQwMDY1NgoKMjAwNy0wMS0yNSAxNzo0MTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEFkZCBzb21lIHJlZmNvdW50IGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKF9nc3RfY2Fwc19mcmVlKSwgKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICBBZGQgc29tZSByZWZjb3VudCBkZWJ1Z2dpbmcuCgkgIE1ha2UgZ3N0X3N0YXRpY19jYXBzX2dldCB0aHJlYWRzYWZlLCB3aGljaCBpcyBuZWVkZWQgd2hlbiBhdXRvcGx1Z2dpbmcKCSAgaW4gbXVsdGlwbGUgc3RyZWFtaW5nIHRocmVhZHMuCgoyMDA3LTAxLTI1IDEwOjUwOjAzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEFQSTogZ3N0X2FkYXB0ZXJfY29weSgpIHRoYXQgY2FuIHJlZHVjZSB0aGUgYW1vdW50IG9mIG1lbWNweSB3aGVuIGdldHRpbmcgZGF0YSBmcm9tIHRoZSBhZGFwdGVyLiBGaXhlcyAjMzg4MjAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhdmlkIFNjaGxlZWYgPGRzIGF0IHNjaGxlZWYgZG90IG9yZz4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfY29weSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIEFQSTogZ3N0X2FkYXB0ZXJfY29weSgpIHRoYXQgY2FuIHJlZHVjZSB0aGUgYW1vdW50IG9mIG1lbWNweSB3aGVuCgkgIGdldHRpbmcgZGF0YSBmcm9tIHRoZSBhZGFwdGVyLiBGaXhlcyAjMzg4MjAxLgoKMjAwNy0wMS0yNSAxMDoxNDowOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbiBwcmludCBzdGF0ZW1lbnRzLCAiJXgiIGlzIGZvciBndWludC4gRml4ZXMgYnVpbGQgb24gbWFjb3N4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEluIHByaW50IHN0YXRlbWVudHMsICIleCIgaXMgZm9yIGd1aW50LiBGaXhlcyBidWlsZCBvbiBtYWNvc3guCgoyMDA3LTAxLTI0IDExOjMyOjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFNtYWxsIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCk6CgkgIFNtYWxsIGZpeC4KCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIEltcGxlbWVudCBzaW5nbGUgcXVldWUgZ3Jvd3RoIHN5c3RlbS4KCSAgVGhpcyB1c2VzIHRoZSBleHRyYS1zaXplIHByb3BlcnRpZXMsIGFuZCB3aWxsIGdyb3cgc2luZ2xlIHF1ZXVlcyBieQoJICB0aGF0IG11Y2ggaWYgb25lIGdvZXMgZnVsbCB3aGVyZWFzIHRoZXJlIGFyZSBvdGhlcnMgZW1wdHkuIFRoaXMgaXMKCSAgY2FsbGVkIGV4dHJhLW1vZGUgaW4gdGhlIGNvZGUuCgkgIFdoZW4gYSBzaW5nbGUgcXVldWUncyBsZXZlbHMgZ28gYmFjayBiZWxvdyB0aGUgaW5pdGlhbCBtYXgtc2l6ZQoJICBsaW1pdHMsIGl0IGlzIG5vIGxvbmdlciBpbiBleHRyYS1tb2RlLiBUaGlzIGlzIHRvIGVuc3VyZSB3ZSBkb24ndAoJICBjb25zdW1lIHRvbyBtdWNoIG1lbW9yeS4KCSAgRml4ZXMgIzM5OTg3NQoKMjAwNy0wMS0yMyAxMzo1MDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogTWFrZSB3YXJuaW5nIGFib3V0IGxhdGUgZ190aHJlYWRfaW5pdCgpIGNhbGxzIGEgYml0IG1vcmUgZXhwbGljaXQsIHNvIHRoYXQgaXQncyBtb3JlIG9idmlvdXMgdG8gYXBwbGljYXRpby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKToKCSAgTWFrZSB3YXJuaW5nIGFib3V0IGxhdGUgZ190aHJlYWRfaW5pdCgpIGNhbGxzIGEgYml0IG1vcmUgZXhwbGljaXQsCgkgIHNvIHRoYXQgaXQncyBtb3JlIG9idmlvdXMgdG8gYXBwbGljYXRpb24gZGV2ZWxvcGVycyB3aGF0IHRoZXkgbmVlZAoJICB0byBkbyBpZiBhIHVzZXIgZmlsZXMgYSBidWcgYWdhaW5zdCB0aGVpciBhcHBsaWNhdGlvbi4KCjIwMDctMDEtMjIgMTY6MDA6MzkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogUmVtb3ZlIHByZXZpb3VzIGhhY2sgb2YgdW5zZXR0aW5nIHRoZSBmbHVzaGluZyBmbGFnIGZvciB0aGUgc291cmNlIHBhZCBpbnN0ZWFkIG9mIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBSZW1vdmUgcHJldmlvdXMgaGFjayBvZiB1bnNldHRpbmcgdGhlIGZsdXNoaW5nIGZsYWcgZm9yIHRoZSBzb3VyY2UgcGFkCgkgIGluc3RlYWQgb2YgYWN0aXZhdGluZyBpdC4gSW5zdGVhZCwgZml4IHRoZSBzb3VyY2UgcGFkIGFjdGl2YXRlIGZ1bmN0aW9uCgkgIHNvIHRoYXQgaXQgbm8gbG9uZ2VyIGRlcGVuZHMgb24gaGF2aW5nIGEgcGFyZW50IHNldCBvciBub3QuCgoyMDA3LTAxLTIyIDE0OjMwOjI3ICswMDAwICBDYXJsb3MgU2FubWFydGluIERvbWluZ3VleiA8Y3Nhbm1hcnRpbkBpZ2FsaWEuY29tPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IEZpeCBleGFtcGxlIGNvZGUsIGdzdF9lbGVtZW50X3VucmVmKCkgZG9lc24ndCBleGlzdCBhbnkgbG9uZ2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IENhcmxvcyBTYW5tYXJ0aW4gRG9taW5ndWV6IDxjc2FubWFydGluQGlnYWxpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIEZpeCBleGFtcGxlIGNvZGUsIGdzdF9lbGVtZW50X3VucmVmKCkgZG9lc24ndCBleGlzdCBhbnkgbG9uZ2VyLgoKMjAwNy0wMS0yMSAyMDoyNDoxMSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHR3byBkb2NzIHR5cG9lcyAoIzM5OTA5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0d28gZG9jcyB0eXBvZXMgKCMzOTkwOTQpLgoKMjAwNy0wMS0xOSAwOToxNToyMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGdzdC1wbHVnaW5zLWJhc2UvZ3N0L3V0aWxzLyB0byBMRF9MSUJSQVJZX1BBVEggc28gdGhhdCBwbHVnaW5zIGRlcGVuZGluZyBvbiBsaWJnc3RiYXNldS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBnc3QtcGx1Z2lucy1iYXNlL2dzdC91dGlscy8gdG8gTERfTElCUkFSWV9QQVRIIHNvIHRoYXQgcGx1Z2lucwoJICBkZXBlbmRpbmcgb24gbGliZ3N0YmFzZXV0aWxzIGNhbiB3b3JrIGluIHVuaW5zdGFsbGVkIGVudmlyb25tZW50LgoKMjAwNy0wMS0xOCAxMjowMDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogQWRkIG1vcmUgZG9jcyByZWdhcmRpbmcgdGFnIG1lcmdlLW1vZGVzIGFuZCB3aGVuIHRvIHNlbmQgdGFncy4gRml4ICdzaW5jZScgc3RhdGVtZW50IGZvciBuZXcgdGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgQWRkIG1vcmUgZG9jcyByZWdhcmRpbmcgdGFnIG1lcmdlLW1vZGVzIGFuZCB3aGVuIHRvIHNlbmQgdGFncy4gRml4ICdzaW5jZScKCSAgc3RhdGVtZW50IGZvciBuZXcgdGFnLgoKMjAwNy0wMS0xNyAxNDozMzozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBXaGVuIGR5bmFtaWNhbGx5IGNyZWF0aW5nIHNpbmdsZSBxdWV1ZXMsIGFjdGl2YXRlIHNpbmtwYWQgYmVmb3JlIGFkZGluZyBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIFdoZW4gZHluYW1pY2FsbHkgY3JlYXRpbmcgc2luZ2xlIHF1ZXVlcywgYWN0aXZhdGUgc2lua3BhZCBiZWZvcmUgYWRkaW5nCgkgIGl0LgoJICBXZSBzaG91bGQgYmUgZG9pbmcgdGhlIHNhbWUgdGhpbmcgZm9yIHRoZSBzb3VyY2UgcGFkLCBidXQgd2UgY2FuJ3QKCSAgc2luY2UgaXQgd291bGQgY2FsbCBhIG1ldGhvZCB3aGljaCBuZWVkcyB0aGUgcGFyZW50IHRvIGJlIHNldCBpbiBvcmRlcgoJICB0byB3b3JrIHByb3BlcnRseS4gSW5zdGVhZCBvZiBhY3RpdmF0aW5nIHRoZSBzb3VyY2UgcGFkLCB3ZSBqdXN0IHVuc2V0CgkgIHRoZSBmbHVzaGluZyBmbGFnLCB3aGljaCBpcyB0aGUgbWluaW1hbCByZXF1aXJlbWVudCBmb3IgYWRkaW5nIGEgcGFkCgkgIHRvIGFuIGVsZW1lbnQgaW4gYSBzdGF0ZSBncmVhdGVyIHRoYW4gUkVBRFkuCgoyMDA3LTAxLTE3IDE0OjI2OjQ2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgRFlMRF9MSUJSQVJZX1BBVEggZGVjbGFyYXRpb25zIHNvIHdlIGNhbiBhbHNvIHVzZSB0aGlzIHNjcmlwdCBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBEWUxEX0xJQlJBUllfUEFUSCBkZWNsYXJhdGlvbnMgc28gd2UgY2FuIGFsc28gdXNlIHRoaXMgc2NyaXB0IG9uCgkgIE1hYyBPUyBYLgoKMjAwNy0wMS0xNyAxMjozMTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIEFCSSBzdHJ1Y3RzIGZvciBIUFBBIChzZWUgIzM5Mzc5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkgIEFkZCBBQkkgc3RydWN0cyBmb3IgSFBQQSAoc2VlICMzOTM3OTYpLgoKMjAwNy0wMS0xNiAwOTo1Nzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IEFjdHVhbGx5IHdyaXRlIEFCSSBzdHJ1Y3RzIHRvIHRoZSBmaWxlIHNwZWNpZmllZCBpbiB0aGUgR1NUX0FCSSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2FiaV9saXN0KToKCSAgQWN0dWFsbHkgd3JpdGUgQUJJIHN0cnVjdHMgdG8gdGhlIGZpbGUgc3BlY2lmaWVkIGluIHRoZSBHU1RfQUJJCgkgIGVudmlyb25tZW50IHZhcmlhYmxlLCBhcyB0aGUgbWVzc2FnZSB3ZSBwcmludCBjbGFpbXMgd2Ugd291bGQuCgoyMDA3LTAxLTE1IDE0OjUxOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOiBGaXggaGVhZGVyIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIEZpeCBoZWFkZXIgY29tbWVudC4KCjIwMDctMDEtMTUgMTQ6Mzk6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IENoYW5nZSB0YWcgdHlwZSBmcm9tIFNUUklORyB0byBET1VCTEUuIEFwcGx5IENoYW5nZUxvZyBzdXJnZXJ5IGZvciBteSBwcmV2aW91cyB0d28gZW50cmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICBDaGFuZ2UgdGFnIHR5cGUgZnJvbSBTVFJJTkcgdG8gRE9VQkxFLiBBcHBseSBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgbXkKCSAgcHJldmlvdXMgdHdvIGVudHJpZXMuCgoyMDA3LTAxLTE1IDEzOjU3OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGQgdGFnIHN1cHBvcnQgZm9yIGJlYXQtcGVyLW1pbnV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBhZGQgdGFnIHN1cHBvcnQgZm9yIGJlYXQtcGVyLW1pbnV0ZQoKMjAwNy0wMS0xNSAxMjoxODo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IHVzZSBnbGliIHR5cGVzLCBjbGVhbnVwIGNvbW1lbnRzLCBpbXBlbWVudCBpbnRlcmZhY2VzIGFuZCB1cmktdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbWFrZV9kYXRhKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIHVzZSBnbGliIHR5cGVzLCBjbGVhbnVwIGNvbW1lbnRzLCBpbXBlbWVudCBpbnRlcmZhY2VzIGFuZCB1cmktdHlwZXMKCjIwMDctMDEtMTMgMTA6MzM6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IEFsbG93IGdldHJhbmdlKCkgdG8gcmV0dXJuIGJ1ZmZlcnMgd2l0aCBvdGhlciBjYXBzLCB3aGlsZSB3ZSBmaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBBbGxvdwoJICBnZXRyYW5nZSgpIHRvIHJldHVybiBidWZmZXJzIHdpdGggb3RoZXIgY2Fwcywgd2hpbGUgd2UgZml4CgkgIGRlbXV4ZXJzIGFuZCB0eXBlZmluZCwgb3Igb3RoZXJ3aXNlIGNoYW5nZSBwYXJ0LW5lZ290aWF0aW9uLnR4dC4KCjIwMDctMDEtMTIgMjE6MTM6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOiBGYWN0b3Igc3RhcnQvc3RvcCBpbnRvIHRoaXMgcHJpdmF0ZSBmdW5jdGlvbiBpbnN0ZWFkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgRmFjdG9yIHN0YXJ0L3N0b3AgaW50byB0aGlzIHByaXZhdGUgZnVuY3Rpb24gaW5zdGVhZCBvZiBwYXJ0aWFsbHkKCSAgaW4gYWN0aXZhdGUgZnVuY3Rpb25zIGFuZCBwYXJ0aWFsbHkgaW4gdGhlIGNoYW5nZV9zdGF0ZSBmdW5jdGlvbi4KCSAgRml4ZXMgc2V0dXAgYmVmb3JlIHRoZSBlbGVtZW50IGhhcyBjaGFuZ2VkIGZyb20gUkVBRFktPlBBVVNFRCwgYXMKCSAgaXMgdGhlIGNhc2UgaW4gcHVsbC1tb2RlIHBpcGVsaW5lcy4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlX3B1c2gpCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlX3B1bGwpOiBSZWZhY3RvciB0byB1c2UKCSAgZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKCkuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKTogUmVtb3ZlZCwgbm90IG5lZWRlZCBhbnkgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOgoJICBUcnVuY2F0ZSBiZWZvcmUgZml4YXRpbmcuCgoyMDA3LTAxLTEyIDE4OjA2OjI5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOiBEb24ndCBzZXRfY2FwcygpIGlmIHRoZSByZXN1bHQgb2YgZml4YXRpbmcgaXMgQU5ZLCBhcyBpdCcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKToKCSAgRG9uJ3Qgc2V0X2NhcHMoKSBpZiB0aGUgcmVzdWx0IG9mIGZpeGF0aW5nIGlzIEFOWSwgYXMgaXQncyBub3QKCSAgc3VwcG9ydGVkLCBhbmQgbm90IG5lY2Vzc2FyeSBpbiB0aGUgY2FzZSBvZiBhIGxpbmsgd2l0aCBubwoJICB0ZW1wbGF0ZSBjYXBzIG9uIGVpdGhlciBzaWRlLiBGaXhlcyB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMgaW4KCSAgc29tZSBwdWxsLW1vZGUgdGVzdHMuCgoyMDA3LTAxLTEyIDE1OjU2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoX0dzdEJhc2VUcmFuc2Zvcm1Qcml2YXRlKTogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0LCBnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKF9Hc3RCYXNlVHJhbnNmb3JtUHJpdmF0ZSk6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCwgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCkKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIFRyYWNrIHRoZSBhY3RpdmF0aW9uIG1vZGUuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IEluIHB1bGwgbW9kZSwgd2hlbiBhY3RpdmF0aW5nIHRoZQoJICBzcmMgcGFkLCBhZnRlciBhY3RpdmF0aW5nIHRoZSBzaW5rIHBhZCwgYWN0aXZhdGUgdGhlIHNpbmsgcGFkJ3MKCSAgcGVlciwgYXMgZGlzY3Vzc2VkIGluIHBhcnQtbmVnb3RpYXRpb24udHh0LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZml4YXRlKTogQWRkIGZpeGF0ZQoJICB2bWV0aG9kLCBhcyBpbiBiYXNlc2luay4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IFJlZm9ybWF0IGRvY3MsIGFkZCBmaXhhdGUgdm1ldGhvZC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpOiBJbiBwdWxsCgkgIG1vZGUsIGZpcnN0IHByb3h5IHRoZSBzZXRjYXBzIHRvIHRoZSBwZWVyIHBhZC4KCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2ZpeGF0ZSk6IEFkZCBhIGZpeGF0ZSBmdW5jdGlvbiB0aGF0IGNhbGxzIHRoZQoJICBuZXcgZml4YXRlIHZtZXRob2QuCgkgIChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfYWN0aXZhdGVfcHVsbCk6IFJlbmFtZSBmcm9tCgkgIGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbC4KCSAgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOiBOZXcgZnVuY3Rpb24sIHBlcmZvcm1zIG5lZ290aWF0aW9uCgkgIGluIHB1bGwgbW9kZSBiZWZvcmUgY2FsbGluZyA6OmFjdGl2YXRlX3B1bGwoKS4KCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpOiBBY3R1YWxseSBjYWxsIHRoZSBhY3RpdmF0ZV9wdWxsCgkgIHZtZXRob2QgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gSSBoYXZlIG5vIGlkZWEgaG93CgkgIHRoaXMgd29ya2VkIGJlZm9yZS4gTmVnb3RpYXRlIGJlZm9yZSBjYWxsaW5nIGFjdGl2YXRlX3B1bGwuCgoyMDA3LTAxLTEyIDE1OjQ4OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IFJlZnVzZSB0byBhY3RpdmF0ZSB1bmxpbmtlZCBzaW5rIHBhZHMgaW4gcHVsbCBtb2RlLiBJbiBhZGRpdGlvbiB0byBiZWluZyBjb3JyZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBSZWZ1c2UgdG8gYWN0aXZhdGUgdW5saW5rZWQKCSAgc2luayBwYWRzIGluIHB1bGwgbW9kZS4gSW4gYWRkaXRpb24gdG8gYmVpbmcgY29ycmVjdCwgZml4ZXMKCSAgZmlsZXNyYyAhIGRlY29kZWJpbiAhIGlkZW50aXR5ICEgZmFrZXNpbmsuCgkgIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogRG9uJ3QgY2FsbAoJICBnc3RfcGFkX3NldF9jYXBzKCkgaWYgdGhlIGNhcHMgY2hhbmdlczsgaW5zdGVhZCBlcnJvciBvdXQgd2l0aAoJICBHU1RfRkxPV19OT1RfTkVHT1RJQVRFRCwgYXMgZGlzY3Vzc2VkIGluIHBhcnQtbmVnb3RpYXRpb24udHh0LgoKMjAwNy0wMS0xMiAxNTozOTo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoIG1vcmUgcG9saWN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGggbW9yZSBwb2xpY3kuCgoyMDA3LTAxLTEyIDEyOjQ4OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svOiBBZGQgR19CRUdJTl9ERUNMUyBhbmQgR19FTkRfREVDTFMuIE1vdmUgR1NUX0NIRUNLX01BSU4gd2hlcmUgaXQgYmVsb25ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBZGQgR19CRUdJTl9ERUNMUyBhbmQgR19FTkRfREVDTFMuIE1vdmUgR1NUX0NIRUNLX01BSU4gd2hlcmUgaXQKCSAgYmVsb25ncy4KCjIwMDctMDEtMTIgMTA6NTM6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgYmVmb3JlbWVudGlvbmVkIEdzdFRhZ1NldHRlciBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF9kdW1teV9lbmNfYWRkX2ludGVyZmFjZXMpLAoJICAoZ3N0X2R1bW15X2VuY19iYXNlX2luaXQpLCAoZ3N0X2R1bW15X2VuY19jbGFzc19pbml0KSwKCSAgKGdzdF9kdW1teV9lbmNfaW5pdCksICh0YWdfbGlzdF9mb3JlYWNoKSwgKHRhZ19zZXR0ZXJfbGlzdF9sZW5ndGgpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zZXR0ZXJfc3VpdGUpOgoJICBBZGQgbWluaW1hbCB1bml0IHRlc3QgZm9yIGJlZm9yZW1lbnRpb25lZCBHc3RUYWdTZXR0ZXIgYnVnLgoKMjAwNy0wMS0xMiAxMDo0ODo0OSArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuYzogZ3N0X3RhZ19saXN0X21lcmdlKCkgcmV0dXJucyBhIG5ldyBsaXN0LCBzbyBpdCdzIG5vdCB0aGUgYmVzdCBpZGVhIHRvIGluZ29yZSBpdHMgcmV0dXJuIHZhbHVlLiBFZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpOgoJICBnc3RfdGFnX2xpc3RfbWVyZ2UoKSByZXR1cm5zIGEgbmV3IGxpc3QsIHNvIGl0J3Mgbm90IHRoZSBiZXN0IGlkZWEKCSAgdG8gaW5nb3JlIGl0cyByZXR1cm4gdmFsdWUuIEVmZmVjdGl2ZWx5IG1lYW50IHRoYXQgdGFncyBjb3VsZCBvbmx5CgkgIGJlIG1lcmdlZCBvbiBhIEdzdFRhZ1NldHRlciBvbmNlIHVzaW5nIF9tZXJnZV90YWdzKCkuIEZpeGVzICMzOTU1NTQuCgkgIEFsc28gYWRkIGZ1bmN0aW9uIGd1YXJkIHRvIHJlcXVpcmUgYSBub24tTlVMTCB0YWdsaXN0IGFzIGlucHV0IChoYXMKCSAgYWx3YXlzIGJlZW4gc28gZHVlIHRvIGdzdF90YWdfbGlzdF9jb3B5KCksIGp1c3QgbWFraW5nIGl0IGV4cGxpY2l0KS4KCjIwMDctMDEtMTEgMTU6MDM6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBTb21lIGFkZGl0aW9uczogbWVudGlvbiBuZXcgQVBJIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBhdCB0aGUgdmFyaW91cyBzdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBhZGRpdGlvbnM6IG1lbnRpb24gbmV3IEFQSSB0aGF0IGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgYXQgdGhlCgkgIHZhcmlvdXMgc3RhZ2VzOyBzaG9ydCBibG9iIGFib3V0IG5ldyBnc3QtaW5zcGVjdCBpbnRyb3NwZWN0aW9uCgkgIG9wdGlvbjsgbWVudGlvbiBwb3RlbnRpYWwgZnV0dXJlIHByb2JsZW0gd2l0aCBwbHVnaW5zIHRoYXQgaGF2ZQoJICBhIGR5bmFtaWMgbGlzdCBvZiBlbGVtZW50cyAoc3VjaCBhcyBsYWRzcGEsIHBpdGZkbGwsIGxpYnZpc3VhbCkuCgoyMDA3LTAxLTExIDE0OjE2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIG9wdGlvbiB0byBnc3QtaW5zcGVjdCwgc28gd2UgY2FuIGludHJvc3BlY3QgcGx1Z2luIGZpbGVzIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19jb2RlY3MpLAoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fcHJvdG9jb2xzKSwKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvKSwgKG1haW4pOgoJICBBZGQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gb3B0aW9uIHRvIGdzdC1pbnNwZWN0LCBzbyB3ZSBjYW4KCSAgaW50cm9zcGVjdCBwbHVnaW4gZmlsZXMgYW5kIGdldCBtYWNoaW5lLXBhcnNhYmxlIG91dHB1dCB0aGF0IGNvcnJlc3BvbmRzCgkgIHRvIHRoZSBsYXN0IGJpdCBvZiB0aGUgbWlzc2luZy1wbHVnaW4gaW5zdGFsbGVyIHN0cmluZyAoc21hbGwgZ290Y2hhOgoJICBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHJhbmtzKS4KCjIwMDctMDEtMTEgMTM6NDU6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbW1pdCBiaW5hcnkgcmVnaXN0cnkgKGRpc2FibGVkIGJ5IGRlZmF1bHQsIHNlZSAjMzU5NjUzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXBfbG9ja2VkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOgoJICBjb21taXQgYmluYXJ5IHJlZ2lzdHJ5IChkaXNhYmxlZCBieSBkZWZhdWx0LCBzZWUgIzM1OTY1MykKCjIwMDctMDEtMTEgMTA6NDg6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IEZpeCAnbWFrZSBjaGVjaycgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6ICh0ZXN0X2dldF9hbGxvd2VkX2NhcHMpOgoJICBGaXggJ21ha2UgY2hlY2snIHRvby4KCjIwMDctMDEtMTAgMjE6MjQ6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBGaXggYSB0eXBvLCBhZGQgYSBjb3VwbGUgbm90ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBGaXggYSB0eXBvLCBhZGQgYSBjb3VwbGUKCSAgbm90ZXMuCgoyMDA3LTAxLTEwIDIxOjE1OjA4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGgsIHVtLCBvbmUgd2F5IHRoYXQgcHVsbC1tb2RlIG5lZ290aWF0aW9uIG1pZ2h0IHdvcms/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCwgdW0sIG9uZSB3YXkgdGhhdAoJICBwdWxsLW1vZGUgbmVnb3RpYXRpb24gbWlnaHQgd29yaz8KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMpOiBSZW1vdmUgdGhlIHJlc3RyaWN0aW9uCgkgIHRoYXQgdGhlIHBhZCBtdXN0IGJlIGEgc3JjIHBhZDsgbWFrZXMgc2Vuc2UgdG8gY2FsbCBpdCB0aGUgb3RoZXIKCSAgd2F5IGluIHB1bGwgbW9kZSwgYW5kIHRoZSBsb2dpYyBpcyBzeW1tZXRyaWMgYW55d2F5LgoKMjAwNy0wMS0xMCAxOToyNTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogSW5jbHVkZSA8c3RkaW8uaD4gZm9yIGZzZWVrbygpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIEluY2x1ZGUgPHN0ZGlvLmg+IGZvciBmc2Vla28oKS4KCjIwMDctMDEtMTAgMTA6MjE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogUmVzZXJ2ZSBMQVRFTkNZIGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgUmVzZXJ2ZSBMQVRFTkNZIGV2ZW50LgoKMjAwNy0wMS0wOSAxODowOTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBVcGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgVXBkYXRlcy4KCjIwMDctMDEtMDkgMTU6Mzg6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogVXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFVwZGF0ZXMuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgIFNtYWxsIHR5cG8gZml4ZXMuCgoyMDA3LTAxLTA5IDE0OjM4OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svLmN2c2lnbm9yZTogSWdub3JlIHRlc3QtcmVnaXN0cnkueG1sIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrLy5jdnNpZ25vcmU6CgkgIElnbm9yZSB0ZXN0LXJlZ2lzdHJ5LnhtbCBhcyB3ZWxsLgoKMjAwNy0wMS0wOSAxMjozNDo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogdW5yZWYgZGF0YSBhdCB0aGUgZW5kIHdoZW4gd2UgYXJlIGRvbmUgd2l0aCB0aGUgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpOgoJICB1bnJlZiBkYXRhIGF0IHRoZSBlbmQgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIHRoZSBwYWQuCgoyMDA3LTAxLTA4IDIwOjMwOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3VwZGF0ZV9yZWdpc3RyeSgpICgjMzkxMjk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChsb2FkX3BsdWdpbl9mdW5jKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlaW5pdCksIChnc3RfdXBkYXRlX3JlZ2lzdHJ5KToKCSAgKiBnc3QvZ3N0Lmg6CgkgIEFQSTogYWRkIGdzdF91cGRhdGVfcmVnaXN0cnkoKSAoIzM5MTI5NikuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIFNpbXBsZSB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDctMDEtMDggMTY6MjM6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUGx1Z2luIGV4dGVuc2lvbiBvbiBIUC1VWCBpcyAuc2wsIGFkZCB0aGF0IHRvIHRoZSBsaXN0IG9mIGFwcHJvdmVkIHBsdWdpbiBleHRlbnNpb25zIChzZWUgIzM5Mzc5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFBsdWdpbiBleHRlbnNpb24gb24gSFAtVVggaXMgLnNsLCBhZGQgdGhhdCB0byB0aGUgbGlzdCBvZiBhcHByb3ZlZAoJICBwbHVnaW4gZXh0ZW5zaW9ucyAoc2VlICMzOTM3OTYpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgdWxvbmcgPT4gZ3Vsb25nLiBGaXhlcyBjb21waWxhdGlvbiB3aXRoIEhQLVVYIGNvbXBpbGVyLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGNvbXBpbGF0aW9uIGlmIHZhbGdyaW5kIGhlYWRlcnMgYXJlIG5vdCBhdmFpbGFibGUuCgoyMDA3LTAxLTA3IDEwOjIxOjMzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb24uCgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICBBZGQgZ3N0ZGF0YXF1ZXVlLmMgdG8gdGhlIGJ1aWxkLgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICBBZGQgZ3N0bXVsdGlxdWV1ZS5jIHRvIHRoZSBidWlsZC4KCjIwMDctMDEtMDYgMTc6MTg6MDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogTmV3IEdzdEJhc2VTaW5rQ2xhc3Mgdm1ldGhvZCwgYWN0aXZhdGVfcHVsbCgpLCBwcm92aWRpbmcgZm9yIGEgd2F5IHRvIHNwZWNpYWxpemUgdGhlIHByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IE5ldyBHc3RCYXNlU2lua0NsYXNzIHZtZXRob2QsCgkgIGFjdGl2YXRlX3B1bGwoKSwgcHJvdmlkaW5nIGZvciBhIHdheSB0byBzcGVjaWFsaXplIHRoZSBwcm9jZXNzIG9mCgkgIHNwYXduaW5nIGEgdGhyZWFkIHRvIHB1bGwgb24gdGhlIHNpbmsgcGFkLiBUaGVyZSBpcyBhIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24uCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKQoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVzaCwgZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGUpCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpOiBSZW5hbWVkIHBhZCBhY3RpdmF0aW9uIGZ1bmN0aW9ucyAoaW5zZXJ0aW5nCgkgICJfcGFkIiBpbiB0aGVpciBuYW1lcykuIFJlZmFjdG9yIHRvIHVzZSB0aGUgbmV3IGFjdGl2YXRlX3B1bGwKCSAgdm1ldGhvZCwgYXMgYXBwcm9wcmlhdGUuCgkgIChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQsIGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6IFNldCB0aGUKCSAgZGVmYXVsdCBhY3RpdmF0ZV9wdWxsIGZ1bmN0aW9uIHRvIHN0YXJ0IGEgdGFzayBwdWxsaW5nIGZyb20gdGhlCgkgIHNpbmsgcGFkLCBhcyBiZWZvcmUuCgoyMDA3LTAxLTA2IDE3OjA5OjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBTZXQgY2FwcyBvbiB0aGUgcGFkcyBpZiBuZWNlc3NhcnksIGFzIGluIHB1c2goKS9jaGFpbigpLiBVcGRhdGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogU2V0IGNhcHMKCSAgb24gdGhlIHBhZHMgaWYgbmVjZXNzYXJ5LCBhcyBpbiBwdXNoKCkvY2hhaW4oKS4gVXBkYXRlIGRvY3MuCgkgIFNob3VsZG4ndCBhZmZlY3QgZXhpc3RpbmcgcHVsbCgpIHVzYWdlIGFzIGl0IGlzIGN1cnJlbnRseSBvbmx5CgkgIGJlaW5nIHVzZWQgb24gYnVmZmVycyB3aXRob3V0IGNhcHMuCgoyMDA3LTAxLTA1IDE2OjM2OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDYWxsIGdfdGhyZWFkX2luaXQoKSBmaXJzdCB0aGluZyBpbiBnc3RfaW5pdCgpIC8gZ3N0X2NoZWNrX2luaXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChnc3RfaW5pdF9jaGVjayksCgkgIChpbml0X3ByZSk6CgkgIENhbGwgZ190aHJlYWRfaW5pdCgpIGZpcnN0IHRoaW5nIGluIGdzdF9pbml0KCkgLyBnc3RfY2hlY2tfaW5pdCgpLgoJICBXaGVuIGluaXRpYWxpc2F0aW9uIGlzIGRvbmUgdmlhIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSBhbmQKCSAgR09wdGlvbiBwYXJzaW5nLCBpc3N1ZSBhIHdhcm5pbmcgaWYgdGhlIEdMaWIgdGhyZWFkIHN5c3RlbSBoYXMgbm90CgkgIGJlZW4gaW5pdGlhbGlzZWQgeWV0IGJ5IHRoZSB0aW1lIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSBpcwoJICBjYWxsZWQsIGFzIGl0J3MgcXVpdGUgbGlrZWx5IG90aGVyIEdMaWIgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19vcHRpb25fY29udGV4dF9uZXcoKSBoYXZlIGJlZW4gY2FsbGVkIGFscmVhZHkgdGhlbiwgYW5kCgkgIGdfdGhyZWFkX2luaXQoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIEdMaWIgZnVuY3Rpb24uIFRoZQoJICBhcHBsaWNhdGlvbiBpbiBxdWVzdGlvbiBtdXN0IGJlIGZpeGVkIGluIHRoYXQgY2FzZSwgc2luY2UgbWVtb3J5CgkgIGNvcnJ1cHRpb24gbWlnaHQgaGFwcGVuIG90aGVyd2lzZS4KCSAgV2UgaXNzdWUgdGhlIHdhcm5pbmcgYmVjYXVzZSBldmVuIGlmIHRoZSBHTGliIGZvbGtzIGRlY2lkZSB0byB3b3JrCgkgIGFyb3VuZCB0aGUgcHJvYmxlbSBvbiB0aGVpciBlbmQgaW4gZnV0dXJlLCB0aGlzIGlzIHN0aWxsIGFuIGlzc3VlCgkgIHdpdGggYWxsIEdMaWIgdmVyc2lvbnMgPj0gMi4xMC4wLCBzbyB3ZSBzaG91bGQgd2FybiB1bnRpbCB3ZSBkZXBlbmQKCSAgb24gYSBHTGliIHZlcnNpb24gd2Uga25vdyB0byBiZSBzYWZlLgoJICBVcGRhdGUgZG9jdW1lbnRhdGlvbiBhcyB3ZWxsLgoJICBDbG9zZXMgYnVnICMzOTEyNzguCgoyMDA3LTAxLTA1IDE1OjU1OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBDYWxsIGdfdGhyZWFkX2luaXQoKSByZWFsbHkgcmVhbGx5IGVhcmx5LCBiZWZvcmUgYW55IG90aGVyIEdMaWIgZnVuY3Rpb24gKHNlZSAjMzQyNTY0IGFuZCByZWNlbnQgZGlzY3Vzc2lvbiBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgcmVhbGx5IHJlYWxseSBlYXJseSwgYmVmb3JlIGFueSBvdGhlciBHTGliCgkgIGZ1bmN0aW9uIChzZWUgIzM0MjU2NCBhbmQgcmVjZW50IGRpc2N1c3Npb24gb24gZ3RrLWRldmVsLWxpc3QpLgoKMjAwNy0wMS0wNSAxMzoyMzowMiArMDAwMCAgVmluY2VudCBUb3JyaSA8dnRvcnJpQHVuaXYtZXZyeS5mcj4KCgkgIGdzdC86IE9uIHdpbjMyLCBhbGwgdGhlIF9fZGVjbHNwZWMgc3R1ZmYgZm9yIHN5bWJvbCBleHBvcnRpbmcgaXMgYXBwYXJlbnRseSBvbmx5IG5lZWRlZCB3aXRoIE1TVkMsIGJ1dCBkb2Vzbid0IHdvcmsgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFZpbmNlbnQgVG9ycmkgIDx2dG9ycmkgYXQgdW5pdi1ldnJ5IGRvdCBmcj4KCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgT24gd2luMzIsIGFsbCB0aGUgX19kZWNsc3BlYyBzdHVmZiBmb3Igc3ltYm9sIGV4cG9ydGluZyBpcwoJICBhcHBhcmVudGx5IG9ubHkgbmVlZGVkIHdpdGggTVNWQywgYnV0IGRvZXNuJ3Qgd29yayB3aXRoIE1pbmdXLgoJICBGaXhlcyBjb21waWxhdGlvbiB3aXRoIE1pbmdXIGFuZCAjMzkxOTA5LgoKMjAwNy0wMS0wNSAxMTo1Nzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDaGFuZ2Ugc29tZSBHU1RfRVJST1JfT0JKRUNUIHRoYXQgYXJlbid0IHJlYWxseSBlcnJvcnMgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIENoYW5nZSBzb21lIEdTVF9FUlJPUl9PQkpFQ1QgdGhhdCBhcmVuJ3QgcmVhbGx5IGVycm9ycyB0bwoJICBHU1RfV0FSTklOR19PQkpFQ1QgaW4gb3JkZXIgdG8gcmVkdWNlIHRlcm1pbmFsIHNwYW0uCgoyMDA3LTAxLTA0IDEzOjU0OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogZGlzYWJsZSB0ZXN0IGFnYWluLCBhcyB0aGVyZSBzZWVtIHRvIGJlIHN0aWxsIHJhY2UgcHJvYmxlbXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgdGVzdCBhZ2FpbiwgYXMgdGhlcmUgc2VlbSB0byBiZSBzdGlsbCByYWNlIHByb2JsZW1zCgoyMDA3LTAxLTA0IDEzOjM3OjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IGVuYWJsZSBxdWV1ZSB0ZXN0IGFnYWluLCBhZGQgdGVzdHMgZm9yIHRoZSBsZWFreSBiZWhhdmlvdXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocXVldWVfc3VpdGUpOgoJICBlbmFibGUgcXVldWUgdGVzdCBhZ2FpbiwgYWRkIHRlc3RzIGZvciB0aGUgbGVha3kgYmVoYXZpb3VyCgoyMDA3LTAxLTAyIDE3OjAxOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQ29tcGlsZSBhZGFwdGVyIHRlc3QvZXhhbXBsZSBvbmx5IGlmIHRoZSByZXF1aXJlZCBoZWFkZXJzIGFyZSBhdmFpbGFibGUgKGZpeGVzICMzOTE5MTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIENvbXBpbGUgYWRhcHRlciB0ZXN0L2V4YW1wbGUgb25seSBpZiB0aGUgcmVxdWlyZWQgaGVhZGVycyBhcmUKCSAgYXZhaWxhYmxlIChmaXhlcyAjMzkxOTE1KS4KCjIwMDctMDEtMDIgMDk6MzE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHRlbGwgdXMgd2hhdCdzIG5vdCBpbXBsZW1lbnRlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVsbCB1cyB3aGF0J3Mgbm90IGltcGxlbWVudGVkCgoyMDA3LTAxLTAyIDA5OjMxOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYnVtcCB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJ1bXAgdG8gQ1ZTCgoyMDA3LTAxLTAyIDA2OjE0OjA2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogUmVzdG9yZSB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXIgZm9yIFNJR1NFR1YgaW5zdGVhZCBvZiBzZXR0aW5nIHRvIGRlZmF1bHQsIHNpbmNlIHdlIG1heSBoYXZlIHN0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIFJlc3RvcmUgdGhlIHByZXZpb3VzIHNpZ25hbCBoYW5kbGVyIGZvciBTSUdTRUdWIGluc3RlYWQgb2YKCSAgc2V0dGluZyB0byBkZWZhdWx0LCBzaW5jZSB3ZSBtYXkgaGF2ZSBzdG9sZW4gaXQgYXdheSBmcm9tCgkgIHNvbWVvbmUuICAoaS5lLiwgTW9ubykKCjIwMDYtMTItMjYgMTU6NTU6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBTb21lIHNtYWxsIGFkZGl0aW9ucyBhbmQgY2xhcmlmaWNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFNvbWUgc21hbGwgYWRkaXRpb25zIGFuZCBjbGFyaWZpY2F0aW9ucy4KCjIwMDYtMTItMjYgMTU6MDY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogTWFrZSBzdXJlIHdlIGRvbid0IHBhc3Mgbm9uLVVURi04IHN0cmluZ3MgdG8gZ19tYXJrdXBfZXNjYXBlKCksIHNpbmNlIHRoYXQgY2FuIGxlYWQgdG8gcmFuZG9tIG0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfc2F2ZV9lc2NhcGVkKToKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHBhc3Mgbm9uLVVURi04IHN0cmluZ3MgdG8gZ19tYXJrdXBfZXNjYXBlKCksCgkgIHNpbmNlIHRoYXQgY2FuIGxlYWQgdG8gcmFuZG9tIG1lbW9yeSBjb3JydXB0aW9ucyBhbmQgY3Jhc2hlcwoJICAobWF5IG9yIG1heSBub3QgYmUgcmVsYXRlZCB0byAjMzgzMjQ0LCAjMzg2NzExLCBhbmQgIzM4NjcxMSkuCgoyMDA2LTEyLTIxIDE1OjU0OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IHN5bmMgLmN2c2lnbm9tZSBhbmQgQ0xFQU5GSUxFUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBzeW5jIC5jdnNpZ25vbWUgYW5kIENMRUFORklMRVMKCjIwMDYtMTItMjEgMTU6MzI6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgoyMDA2LTEyLTIxIDE1OjAwOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IHR3byB0aW55IGFkZGl0aW9uYWwgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICB0d28gdGlueSBhZGRpdGlvbmFsIGNvbW1lbnRzCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2MgZml4aW5nCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBkaXNhYmxlIHRlc3QgZm9yIG5vdywgdW5sZXNzIGl0IGdldHMgZml4ZWQKCjIwMDYtMTItMjEgMTQ6MjQ6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IGZpeCByYWNlIGluIHVuZGVycnVuIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggcmFjZSBpbiB1bmRlcnJ1biB0ZXN0CgoyMDA2LTEyLTIxIDA5OjU4OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgdHJ5IHRvIG5hcnJvdyB0ZXN0IGZhaWx1cmUKCjIwMDYtMTItMjEgMDk6Mzc6NTYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IFVzZSBnX3JhbmRvbV9pbnRfcmFuZ2UoKSwgc2luY2UgaXQgcHJvZHVjZXMgYmV0dGVyIHJhbmRvbSBudW1iZXJzIGluIGEgcmFuZ2UgdGhhbiBhbG1vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBVc2UgZ19yYW5kb21faW50X3JhbmdlKCksIHNpbmNlIGl0IHByb2R1Y2VzIGJldHRlciByYW5kb20KCSAgbnVtYmVycyBpbiBhIHJhbmdlIHRoYW4gYWxtb3N0LWNvcnJlY3QgZmxvYXRpbmcgcG9pbnQgY29kZS4KCjIwMDYtMTItMjEgMDg6MTI6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IGRvIG5vdCBhdXRvbWF0aWNhbGx5IChkZSlhY3RpdmF0ZSBwYWRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKToKCSAgZG8gbm90IGF1dG9tYXRpY2FsbHkgKGRlKWFjdGl2YXRlIHBhZHMKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChzZXR1cF9xdWV1ZSksIChjbGVhbnVwX3F1ZXVlKSwgKEdTVF9TVEFSVF9URVNUKSwgKHF1ZXVlX3N1aXRlKToKCSAgYWRkIG5ldywgeWV0IHNpbXBsZSB0ZXN0cyBmb3IgcXVldWUKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChjbGVhbnVwX2Zha2VzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChjbGVhbnVwX2Zkc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChjbGVhbnVwX2ZpbGVzcmMpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChjbGVhbnVwX2lkZW50aXR5KToKCSAgY29uc2lzdGVudCBwYWQgKGRlKWFjdGl2YXRpb24KCjIwMDYtMTItMjAgMTk6MDY6MDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRml4IHR3byBkb2MgdHlwb3MgKCMzODc4NjYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcsO2Z2UgIDxzbG9tbyB1YnVudHUgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgRml4IHR3byBkb2MgdHlwb3MgKCMzODc4NjYpLgoKMjAwNi0xMi0xOSAxNTowNjo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOiBGaXggdHlwbyAoZ19vYmplY3RfY29udHJvbF9wcm9wZXJ0aWVzKCkgZG9lc24ndCBleGlzdCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBGaXggdHlwbyAoZ19vYmplY3RfY29udHJvbF9wcm9wZXJ0aWVzKCkgZG9lc24ndCBleGlzdCkuCgoyMDA2LTEyLTE5IDEyOjM4OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogRmluZSB0dW5lIHRoZSBjYXNlcyB3aGVyZSB0aGUgc2VnbWVudCBzdGFydC9zdG9wIHZhbHVlcyBhcmUgcmVhbGx5IHVwZGF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIEZpbmUgdHVuZSB0aGUgY2FzZXMgd2hlcmUgdGhlIHNlZ21lbnQgc3RhcnQvc3RvcCB2YWx1ZXMgYXJlIHJlYWxseQoJICB1cGRhdGVkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB0ZXN0cyBmb3IgdGhlIHJldHVybiB2YWx1ZXMgb2YgZ3N0X3NlZ21lbnRfc2V0X3NlZWsoKS4KCjIwMDYtMTItMTkgMTE6MDQ6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IERvY3MgdHlwbyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRG9jcyB0eXBvIGZpeC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksCgkgIChnc3RfcXVldWVfaW5pdCk6CgkgIEZpeCBpbmNvcnJlY3QgZG9jdW1lbnRhdGlvbiBhbmQgZmxlc2ggaXQgb3V0IGEgYml0IG1vcmUuCgkgIFNldCBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIG1heCBwcm9wZXJ0aWVzIG9uIHRoZSBHUGFyYW1TcGVjIGFzIHdlbGwsCgkgIHNvIGl0IHNob3dzIHVwIGNvcnJlY3RseSBpbiBnc3QtaW5zcGVjdC4KCjIwMDYtMTItMTggMTY6MDE6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQ29ycmVjdCBkb2NzIG9mIHF1ZXVlLCBhZGQgbW9yZSBkZXRhaWwgYW5kIGNyb3NzbGluayBpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChxdWV1ZV9sZWFreV9nZXRfdHlwZSk6CgkgIENvcnJlY3QgZG9jcyBvZiBxdWV1ZSwgYWRkIG1vcmUgZGV0YWlsIGFuZCBjcm9zc2xpbmsgaXQgbW9yZS4KCjIwMDYtMTItMTYgMTk6MzM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFByaW50IGFkZGl0aW9uYWwgZGVidWcgaW5mbyB3aGVuIHRoZSBzdHJlYW0gaXNuJ3QgcGVyZmVjdGx5IHRpbWVzdGFtcGVkOyBkb24ndCB0cnkgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBQcmludCBhZGRpdGlvbmFsIGRlYnVnIGluZm8gd2hlbiB0aGUgc3RyZWFtIGlzbid0IHBlcmZlY3RseQoJICB0aW1lc3RhbXBlZDsgZG9uJ3QgdHJ5IHRvIHVzZSBpbnZhbGlkIGR1cmF0aW9ucy4KCjIwMDYtMTItMTYgMTY6MTQ6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbTogRGlzdCBuZXcgZGVzaWduIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBEaXN0IG5ldyBkZXNpZ24gZG9jcy4KCjIwMDYtMTItMTYgMTU6MTc6NTQgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogQWRkIHJlZmNvdW50aW5nIHRvIHRoZSBjb2xsZWN0cGFkcyBkYXRhIHNvIHdlIGNhbiB0cmFjayB3aGVuIGl0J3Mgc2FmZSB0byBmcmVlIHRoZSBkYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAocmVmX2RhdGEpLCAodW5yZWZfZGF0YSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQWRkIHJlZmNvdW50aW5nIHRvIHRoZSBjb2xsZWN0cGFkcyBkYXRhIHNvIHdlIGNhbiB0cmFjayB3aGVuIGl0J3Mgc2FmZQoJICB0byBmcmVlIHRoZSBkYXRhLiBGaXhlcyAjMzgzMzgyLgoKMjAwNi0xMi0xNSAxNzowOTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQXV0b21hdGljYWxseSBhY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byBhIHN0YXJ0ZWQvc3RvcGVkIGNvbGxlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKToKCSAgQXV0b21hdGljYWxseSBhY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byBhCgkgIHN0YXJ0ZWQvc3RvcGVkIGNvbGxlY3RwYWRzLgoKMjAwNi0xMi0xNSAxNjowMTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNldCBwYWRzIHRvIEZMVVNISU5HIHdoZW4gdGhleSBhcmUgY3JlYXRlZC4gQ2hlY2ssIHdhcm4gYW5kIGZpeCB3aGVuIGEgZGVtdXhlciBhZGRzIGFuIGluYWN0aXZlIHBhZCB0byBpdHNlbGYgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBTZXQgcGFkcyB0byBGTFVTSElORyB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuIENoZWNrLCB3YXJuIGFuZCBmaXggd2hlbiBhCgkgIGRlbXV4ZXIgYWRkcyBhbiBpbmFjdGl2ZSBwYWQgdG8gaXRzZWxmIHdoZW4gcnVubmluZy4gRml4ZXMgIzMzOTMyNi4KCjIwMDYtMTItMTUgMTU6NDk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBFeHBvc2UgZGVmYXVsdCBlbGVtZW50IHNlbmRfZXZlbnQgYW5kIHF1ZXJ5IGhhbmRsaW5nIGFzIHZtZXRob2RzIHRoYXQgc3ViY2xhc3NlcyBjYW4gY2hhaW4gdXAgdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2RlZmF1bHRfc2VuZF9ldmVudCksIChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9lbGVtZW50X2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICBFeHBvc2UgZGVmYXVsdCBlbGVtZW50IHNlbmRfZXZlbnQgYW5kIHF1ZXJ5IGhhbmRsaW5nIGFzIHZtZXRob2RzIHRoYXQKCSAgc3ViY2xhc3NlcyBjYW4gY2hhaW4gdXAgdG8uCgoyMDA2LTEyLTE1IDE1OjM5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDYtMTItMTUgMTU6MjY6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogQ2hlY2tlZCBpbiBkcmFmdCBmb3IgaGFuZGxpbmcgbGF0ZW5jeSBpbiBwaXBlbGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBDaGVja2VkIGluIGRyYWZ0IGZvciBoYW5kbGluZyBsYXRlbmN5IGluIHBpcGVsaW5lcy4KCjIwMDYtMTItMTUgMDA6MTY6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkaW5nIC5kb2FwIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogZ3N0cmVhbWVyLmRvYXA6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZGluZyAuZG9hcCBmaWxlCgoyMDA2LTEyLTE0IDE0OjA2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBpbml0X3ByZSgpIGFuZCBpbml0X3Bvc3QoKSBtaWdodCBiZSBjYWxsZWQgdmlhIG91ciBHT3B0aW9uR3JvdXAgb3IgZnJvbSBnc3RfaW5pdCgpLCBhbmQgd2Ugc2hvdWxkIHNraXAgYm90Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKGluaXRfcG9zdCk6CgkgIGluaXRfcHJlKCkgYW5kIGluaXRfcG9zdCgpIG1pZ2h0IGJlIGNhbGxlZCB2aWEgb3VyIEdPcHRpb25Hcm91cCBvcgoJICBmcm9tIGdzdF9pbml0KCksIGFuZCB3ZSBzaG91bGQgc2tpcCBib3RoIG9mIHRoZW0gaWYgd2UndmUgYWxyZWFkeQoJICBiZWVuIGluaXRpYWxpc2VkLCBvdGhlcndpc2Ugd2Ugd2lsbCBpbml0IHNvbWUgdGhpbmdzIHR3aWNlIG9yIGFkZAoJICB0d28gZGVmYXVsdCBsb2cgZnVuY3Rpb25zLgoKMjAwNi0xMi0xMyAxMjo0NjoyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBObywgZ3N0X21haW5fbG9vcCBkb2VzIG5vdCBleGlzdC4gSXRzIGdfbWFpbl9sb29wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgTm8sIGdzdF9tYWluX2xvb3AgZG9lcyBub3QgZXhpc3QuIEl0cyBnX21haW5fbG9vcC4KCSAgRGlzY292ZXJlZCBieSBzb21lYm9keSB3aG8gYWJ1c2VkIHRoZSBjb3B5LXBhc3RlIHRlY2huaXF1ZSBvZiBjb2RpbmcgOikKCjIwMDYtMTItMTMgMTE6MDU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTG9nIGdob3N0cGFkIGRlYnVnIHN0dWZmIHRvIHRoZSBHU1RfUEFEUyBjYXRlZ29yeSBhcyB3ZWxsIHJhdGhlciB0aGFuIGp1c3QgdG8gdGhlIGRlZmF1bHQgY2F0ZWdvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBMb2cgZ2hvc3RwYWQgZGVidWcgc3R1ZmYgdG8gdGhlIEdTVF9QQURTIGNhdGVnb3J5IGFzIHdlbGwgcmF0aGVyCgkgIHRoYW4ganVzdCB0byB0aGUgZGVmYXVsdCBjYXRlZ29yeS4KCjIwMDYtMTItMTIgMTM6NTM6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgc29tZSBiYXNpYyBzeXN0ZW0gZGV0YWlscyBzdWNoIGFzIE9TIGFuZCBhcmNoaXRlY3R1cmUgdG8gdGhlIGRlYnVnIG91dHB1dCBpZiBwb3NzaWJsZSwgY291cnRlc3kgb2YgdW5hbWUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgQWRkIHNvbWUgYmFzaWMgc3lzdGVtIGRldGFpbHMgc3VjaCBhcyBPUyBhbmQgYXJjaGl0ZWN0dXJlCgkgIHRvIHRoZSBkZWJ1ZyBvdXRwdXQgaWYgcG9zc2libGUsIGNvdXJ0ZXN5IG9mIHVuYW1lKCkuCgoyMDA2LTEyLTExIDEzOjQwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvcnVubmluZy54bWw6IERvY3VtZW50IEdTVF9SRUdJU1RSWV9GT1JLIGFuZCBHU1RfREVCVUdfTk9fQ09MT1IgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgRG9jdW1lbnQgR1NUX1JFR0lTVFJZX0ZPUksgYW5kIEdTVF9ERUJVR19OT19DT0xPUgoJICBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgoyMDA2LTEyLTA5IDIwOjIzOjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogSXQgaXMgYWNjZXB0YWJsZSB0byBoYXZlIGEgcmVmY291bnQgb2YgMiBvciAzIGF0IHRoaXMgcG9pbnQgaW4gdGhlIHRlc3QsIGJlY2F1c2UgdGhlIHBpcGVsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEl0IGlzIGFjY2VwdGFibGUgdG8gaGF2ZSBhIHJlZmNvdW50IG9mIDIgb3IgMyBhdCB0aGlzIHBvaW50IGluIHRoZQoJICB0ZXN0LCBiZWNhdXNlIHRoZSBwaXBlbGluZSBtaWdodCBiZSBqdXN0IHBvc3RpbmcgaXRzIHN0YXRlX2NoYW5nZQoJICBtZXNzYWdlLiBUaGUgbmV4dCBsaW5lIHRoZW4gd2FpdHMgZm9yIHRoYXQgbWVzc2FnZSB0byBhcHBlYXIgdXNpbmcKCSAgYnVzX3BvbGwsIHNvIHRoYXQgc2hvdWxkIGJlIGZpbmUgdG9vLgoKMjAwNi0xMi0wOSAxODo0ODo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IElnbm9yZSBFSU5UUiB3aGVuIHJlYWRpbmcgZnJvbSB0aGUgY2hpbGQgcmVnaXN0cnkgcGlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIElnbm9yZSBFSU5UUiB3aGVuIHJlYWRpbmcgZnJvbSB0aGUgY2hpbGQgcmVnaXN0cnkgcGlwZS4KCSAgRXhwbGljaXRseSBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGNsb3NlLCBzaW5jZSBpdCBtYWtlcyBubwoJICBkaWZmZXJlbmNlLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVmKSwKCSAgKGdzdF9taW5pX29iamVjdF91bnJlZik6CgkgIFdoZW4gZGVidWdnaW5nIHJlZmNvdW50cywgY2hlY2sgR1NUX0lTX01JTklfT0JKRUNUIGFuZCB3YXJuLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKToKCSAgV2hlbiByZW1vdmluZyBjYWNoZWQgcGx1Z2lucywgcmVtb3ZlIHRoZWlyIGZlYXR1cmVzIHRvbywgc28gdGhleSdyZQoJICBub3QgdmlzaWJsZSBhZnRlciB0aGV5J3ZlIGRpc2FwcGVhcmVkLgoJICAqIGdzdC9nc3R1dGlscy5jOiAocHJlcGFyZV9saW5rX21heWJlX2dob3N0aW5nKToKCSAgSW4gdGhlIHVubGlrZWx5IGNhc2UgdGhhdCB3ZSBhcmUgbGlua2luZyBwYWRzIHdpdGggbm8gcGFyZW50cywgZG9uJ3QKCSAgY3Jhc2ggdHJ5aW5nIHRvIGdldCB0aGUgbm9uLWV4aXN0ZW50IHBhcmVudCBiaW4uCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgT3V0cHV0IGRlYnVnIGluIHRoZSBQSVBFTElORSBjYXRlZ29yeQoKMjAwNi0xMi0wOCAxNjoxMjo0NCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3RjbG9jay5jOiBSZWplY3QgaW52YWxpZCBjbG9jayB0aW1lcyBmb3IgaW50ZXJ2YWwgb2YgcGVyaW9kaWMgaWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX25ld19wZXJpb2RpY19pZCk6CgkgIFJlamVjdCBpbnZhbGlkIGNsb2NrIHRpbWVzIGZvciBpbnRlcnZhbCBvZiBwZXJpb2RpYyBpZHMuCgkgIEZpeGVzICMjMzgzNTA2LgoKMjAwNi0xMi0wNyAxMjoxMToxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggcmVmY291bnRpbmcgb2YgZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQgdG8gbWF0Y2ggdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggcmVmY291bnRpbmcgb2YgZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQgdG8gbWF0Y2ggdGhlIGRvY3MuCgkgIEZpeGVzOiAjMzgwMTI5CgoyMDA2LTEyLTA3IDEwOjU5OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIGRlYnVnZ2luZyBvZiBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiBldmVudHMuCgoyMDA2LTEyLTA3IDEwOjUxOjM2ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1ha2UgcGVyaW9kIGlkcyBhZGQgdGhlIGludGVydmFsIHRvIHRoZSBvcmlnaWFsIHJlcXVlc3RlZCB0aW1lIGluc3RlYWQgb2YgdGhlIHBvc3NpYmx5IHVwZGF0ZWQgdGltZSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfd2FpdCk6CgkgIE1ha2UgcGVyaW9kIGlkcyBhZGQgdGhlIGludGVydmFsIHRvIHRoZSBvcmlnaWFsIHJlcXVlc3RlZCB0aW1lIGluc3RlYWQKCSAgb2YgdGhlIHBvc3NpYmx5IHVwZGF0ZWQgdGltZSB3aGljaCBjYW4gYmUgd3Jvbmcgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUKCSAgd2FpdGVycyBmb3IgdGhlIHNhbWUgaWQuIEZpeGVzICMzODI1OTIuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIpOgoJICBGaXggcmVzdGFydCBpbiB0aGUgYXN5bmMgbm90aWZ5IHRocmVhZCB3aGVuIGFuIGFzeW5jIGVudHJ5IGlzIGFkZGVkIHRvCgkgIHRoZSBmcm9udCBvZiB0aGUgbGlzdC4gRml4ZXMgIzM4MTQ5Mi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKHN0b3JlX2NhbGxiYWNrKSwKCSAgKG5vdGlmeV9jYWxsYmFjayksIChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciBtdWx0aXBsZSBhc3luYyB3YWl0cy4KCSAgQWRkZWQgdGVzdCBmb3IgYXN5bmMgd2FpdCBvcmRlci4KCjIwMDYtMTItMDcgMTA6MDI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFkZCBzb21lIG1vcmUgZG9jcyBhYm91dCB0aGUgUE9TSVRJT04gcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgYWJvdXQgdGhlIFBPU0lUSU9OIHF1ZXJ5LgoKMjAwNi0xMi0wNyAwMjozNzoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgdmVyc2lvbiBuYW5vIC0gYmFjayB0byBDVlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCB2ZXJzaW9uIG5hbm8gLSBiYWNrIHRvIENWUy4KCj09PSByZWxlYXNlIDAuMTAuMTEgPT09CgoyMDA2LTEyLTA3IDAyOjMzOjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMTEsICJMb3ZlIG5ldmVyIHJ1bnMgb24gdGltZSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgID09PSByZWxlYXNlIDAuMTAuMTEgPT09CgkgIDIwMDYtMTItMDYgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMTEsICJMb3ZlIG5ldmVyIHJ1bnMgb24gdGltZSIKCjIwMDYtMTItMDEgMTA6MjM6MjYgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICB3aW4zMi86IEZpeCBjb21waWxhdGlvbiBvbiB3aW4zMiB1bmRlciBWUzgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RiYXNlLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y29yZWVsZW1lbnRzLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgRml4IGNvbXBpbGF0aW9uIG9uIHdpbjMyIHVuZGVyIFZTOAoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICBQYXJ0aWFsbHkgZml4ZXMgIzM4MTE3NQoKMjAwNi0xMS0zMCAyMjo1NTowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMTEtMjkgMTY6Mzk6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IElmIHNvbWVvbmUgaXMgZm9vbGlzaCBlbm91Z2ggdG8gY29tcGFyZSAyIGZyYWN0aW9ucyB3aXRoIGRlbm9taW5hdG9yID0gMCwgcmV0dXJuIFVOT1JERVJFRCByYXRoZXIgdGhhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb24pOgoJICBJZiBzb21lb25lIGlzIGZvb2xpc2ggZW5vdWdoIHRvIGNvbXBhcmUgMiBmcmFjdGlvbnMgd2l0aCBkZW5vbWluYXRvciA9CgkgIDAsIHJldHVybiBVTk9SREVSRUQgcmF0aGVyIHRoYW4gYWJvcnRpbmcuCgoyMDA2LTExLTI4IDEyOjA3OjA2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IE5ldyBHc3REYXRhUXVldWUgb2JqZWN0IGZvciB0aHJlYWRzYWZlIHF1ZXVlaW5nLiBNb3N0IHVzZWZ1bCBmb3IgZWxlbWVudHMgdGhhdCBuZWVkIHNvbWUgcXVldWVpbmcgZnVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2Jhc2VfaW5pdCksIChnc3RfZGF0YV9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2luaXQpLCAoZ3N0X2RhdGFfcXVldWVfbmV3KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2NsZWFudXApLCAoZ3N0X2RhdGFfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2ZsdXNoKSwgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19lbXB0eSksCgkgIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfaXNfZnVsbCksIChnc3RfZGF0YV9xdWV1ZV9mbHVzaCksCgkgIChnc3RfZGF0YV9xdWV1ZV9pc19lbXB0eSksIChnc3RfZGF0YV9xdWV1ZV9pc19mdWxsKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3NldF9mbHVzaGluZyksIChnc3RfZGF0YV9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3BvcCksIChnc3RfZGF0YV9xdWV1ZV9kcm9wX2hlYWQpLAoJICAoZ3N0X2RhdGFfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9kYXRhX3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgTmV3IEdzdERhdGFRdWV1ZSBvYmplY3QgZm9yIHRocmVhZHNhZmUgcXVldWVpbmcuIE1vc3QgdXNlZnVsIGZvcgoJICBlbGVtZW50cyB0aGF0IG5lZWQgc29tZSBxdWV1ZWluZyBmdW5jdGlvbm5hbGl0eS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEluc2VydCBkb2N1bWVudGF0aW9uIGZvciBHc3REYXRhUXVldWUKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X211bHRpX3F1ZXVlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldF9wcm9wZXJ0eSksIChnc3RfbXVsdGlfcXVldWVfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9yZWxlYXNlX3BhZCksIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX2Rlc3Ryb3kpLCAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRjYXBzKSwgKGdzdF9tdWx0aV9xdWV1ZV9idWZmZXJhbGxvYyksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX2FjY2VwdGNhcHMpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19ldmVudCksIChnc3RfbXVsdGlfcXVldWVfc3JjX3F1ZXJ5KSwKCSAgKHdha2VfdXBfbmV4dF9ub25fbGlua2VkKSwgKGNvbXB1dGVfbmV4dF9ub25fbGlua2VkKSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIE5ldyBtdWx0aXF1ZXVlIGVsZW1lbnQsIHVzaW5nIEdzdERhdGFRdWV1ZS4gVXNlZCBmb3IgcXVldWluZyBtdWx0aXBsZQoJICBzdHJlYW1zLgoJICBDbG9zZXMgIzM0NDYzOSBhbmQgIzM0Nzc4NQoKMjAwNi0xMS0yMiAxMjoyOTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBhZGQgbW9yZSBtaXNzaW5nIHR5cGUgZGV0YWlscwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGFkZCBtb3JlIG1pc3NpbmcgdHlwZSBkZXRhaWxzCgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMDYtMTEtMjEgMDg6MzA6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy86IGFkZCB0eXBlcyBvZiBiYXNlIGNsYXNzZXMgdG8gZW5hYmxlIGdvYmplY3Qgc3BlY2lmaWMgc3R1ZmYgaW4gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgYWRkIHR5cGVzIG9mIGJhc2UgY2xhc3NlcyB0byBlbmFibGUgZ29iamVjdCBzcGVjaWZpYyBzdHVmZiBpbiB0aGUgZG9jcwoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJICBtb3JlIGlkZWFzIGFib3V0IGlzb2xhdGluZyBwbGF0Zm9ybSBzcGVjaWZpYyB0aGluZ3MKCjIwMDYtMTEtMjAgMTE6MTE6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcm9lZ2UgPHNsb21vQHVidW50dS5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBGaXggY29tcGlsYXRpb24gYW5kIHJ1bm5pbmcgYWdhaW5zdCAwLjkuNC4gRml4ZXMgIzM3NzMzMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHJvZWdlIDxzbG9tbyBhdCB1YnVudHUgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBGaXggY29tcGlsYXRpb24gYW5kIHJ1bm5pbmcgYWdhaW5zdCAwLjkuNC4gRml4ZXMgIzM3NzMzMi4KCjIwMDYtMTEtMjAgMTA6Mjc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBGaXggYm91bmRhcnkgY2hlY2tpbmcgaW4gdG9fcnVubmluZ190aW1lKCkgYW5kIHRvX3N0cmVhbV90aW1lKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIEZpeCBib3VuZGFyeSBjaGVja2luZyBpbiB0b19ydW5uaW5nX3RpbWUoKSBhbmQgdG9fc3RyZWFtX3RpbWUoKS4KCSAgRml4ZXMgIzM3NzE4My4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBzdHJlYW0gYW5kIHJ1bm5pbmcgdGltZSBjYW4gbm93IGJlIGNhbGN1bGF0ZWQgZm9yIHRoZSBjb21wbGV0ZQoJICBjbGlwcGVkIHNlZ21lbnQuCgoyMDA2LTExLTE1IDE3OjM4OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBDYW4ndCBhY2Nlc3MgZXZlbnQgc3RydWN0dXJlIGFmdGVyIGdpdmluZyBhd2F5IG93bmVyc2hpcCBvZiB0aGUgZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIENhbid0IGFjY2VzcyBldmVudCBzdHJ1Y3R1cmUgYWZ0ZXIgZ2l2aW5nIGF3YXkgb3duZXJzaGlwIG9mCgkgIHRoZSBldmVudC4KCjIwMDYtMTEtMTUgMTM6MDA6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBtb3JlIHRoaW5raW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3JlY2VpcGllcy50eHQ6CgkgIG1vcmUgdGhpbmtpbmcKCjIwMDYtMTEtMTMgMTg6MDM6MzUgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBkb2N1bWVudGF0aW9uIGZvciBnc3RfcGFkX2Rpc3BhdGNoZXIuIEZpeGVzICMzNzQ0NzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3BhZF9kaXNwYXRjaGVyLiBGaXhlcyAjMzc0NDc1LgoKMjAwNi0xMS0xMyAxNzo1NDo1OCArMDAwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5Aa2FvbGluLndoOS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogU3RvcmUgbmV3IGxlbmd0aCBpbiBzZWdtZW50IGR1cmF0aW9uIHNvIHdlIGRvbid0IGtlZXAgb24gY2FsbGluZyB0aGUgcG90ZW50aWFsbHkgZXhwZW5zaXouLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbiBhdCBrYW9saW4gZG90IHdoOSBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICBTdG9yZSBuZXcgbGVuZ3RoIGluIHNlZ21lbnQgZHVyYXRpb24gc28gd2UgZG9uJ3Qga2VlcCBvbiBjYWxsaW5nIHRoZQoJICBwb3RlbnRpYWxseSBleHBlbnNpemUgZ2V0X3NpemUoKSBjYWxsLiBGaXhlcyAjMzcwODY1LgoKMjAwNi0xMS0xMCAxODo1Njo0NCArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdlcnkuc2NvYmljaEBnbWFpbC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIHR3byBtaXNzaW5nIHN5bWJvbHMgKCMzNjY0OTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoICA8c2VyZ2VyeS5zY29iaWNoIGF0IGdtYWlsIGNvbT4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHR3byBtaXNzaW5nIHN5bWJvbHMgKCMzNjY0OTIpLgoKMjAwNi0xMS0xMCAxMDo1MDoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogRml4IGZvcm1hdCBzdHJpbmcgdG8gdXNlIGFsbCBpdHMgYXJndW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2ZsdXNoKSwKCSAgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgRml4IGZvcm1hdCBzdHJpbmcgdG8gdXNlIGFsbCBpdHMgYXJndW1lbnRzLgoJICBSZW1vdmUgdXNlbGVzcyA+PSBjaGVjayBvbiBhIGd1aW50CgoyMDA2LTExLTA5IDE1OjI1OjM5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvLmN2c2lnbm9yZTogSWdub3JlIGJ1aWxkIGZpbGUgYXMgY29tbWFuZGVkIGJ5IHRoZSBidWlsZC1ib3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci8uY3ZzaWdub3JlOgoJICBJZ25vcmUgYnVpbGQgZmlsZSBhcyBjb21tYW5kZWQgYnkgdGhlIGJ1aWxkLWJvdAoKMjAwNi0xMS0wOSAxNDozODo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyLzogQWRkIG5ldyBmaWxlcyBmcm9tIHRoZSBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOiAocnVuX3Rlc3RfdGFrZSksCgkgIChydW5fdGVzdF90YWtlX2J1ZmZlciksIChydW5fdGVzdHMpLCAobWFpbik6CgkgIEFkZCBuZXcgZmlsZXMgZnJvbSB0aGUgcHJldmlvdXMgY29tbWl0CgoyMDA2LTExLTA5IDE0OjM3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIERvIHNvbWUgb3B0aW1pc2F0aW9uIHdvcmsgaW4gR3N0QWRhcHRlciB0byBhdm9pZCBjb3BpZXMgaW4gbW9yZSBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfY2xlYXIpLAoJICAoZ3N0X2FkYXB0ZXJfcHVzaCksIChnc3RfYWRhcHRlcl9wZWVrX2ludG8pLCAoZ3N0X2FkYXB0ZXJfcGVlayksCgkgIChnc3RfYWRhcHRlcl9mbHVzaCksIChnc3RfYWRhcHRlcl90YWtlKSwgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzogKGNyZWF0ZV9hbmRfZmlsbF9hZGFwdGVyKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9hZGFwdGVyX3N1aXRlKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgRG8gc29tZSBvcHRpbWlzYXRpb24gd29yayBpbiBHc3RBZGFwdGVyIHRvIGF2b2lkIGNvcGllcyBpbiBtb3JlIGNhc2VzLgoJICBJdCBjb3VsZCBzdGlsbCBkbyBzbGlnaHRseSBiZXR0ZXIgYnkgbWVyZ2luZyBidWZmZXJzIHdoZW4KCSAgZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QgaXMgdHJ1ZSwgYnV0IGlzIGFscmVhZHkgZmFzdGVyLgoJICBBbHNvLCBhdm9pZCB0cmF2ZXJzaW5nIGEgc2luZ2xlLWxpbmtlZCBsaXN0IHRvIGFwcGVuZCBlYWNoIGluY29taW5nCgkgIGJ1ZmZlciBpbnNpZGUgdGhlIGFkYXB0ZXIuCgkgIEFkZCBzaW1wbGUgdGVzdCBhcHAgdGhhdCB0aW1lcyB0aGUgYWRhcHRlciBiZWhhdmlvdXIgaW4gZGlmZmVyZW50CgkgIHNpdHVhdGlvbnMsIGFuZCBleHRlbmQgdGhlIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IGJ5dGVzIGVudGVyIGFuZAoJICBleGl0IHRoZSBhZGFwdGVyIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVyLgoKMjAwNi0xMS0wOCAxOToyNzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFVwZGF0ZTogdXNlIGVsZW1lbnQgbWVzc2FnZSBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBtZXNzYWdlIHR5cGUgdG8gdGhlIGNvcmU7IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBVcGRhdGU6IHVzZSBlbGVtZW50IG1lc3NhZ2UgaW5zdGVhZCBvZiBhZGRpbmcgYSBuZXcgbWVzc2FnZQoJICB0eXBlIHRvIHRoZSBjb3JlOyBkb24ndCBwcm92aWRlIEdTdHJlYW1lciBBUEkgdG8gaW5pdGlhdGUgdGhlCgkgIHBsdWdpbiBkb3dubG9hZCwganVzdCBwcm92aWRlIEFQSSB0byBjb21wb3NlIHRoZSBzdHJpbmdzIG5lZWRlZAoJICBhbmQgbGV0IGFuIGV4dGVybmFsIGxpYmdpbW1lc3R1ZmYgaGFuZGxlIHRoZSByZXN0LgoKMjAwNi0xMS0wOCAxMTo0MToxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcmludCBhIHN0cmluZyBpbnN0ZWFkIG9mICd1bmtub3duIHR5cGUnIGZvciBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIFByaW50IGEgc3RyaW5nIGluc3RlYWQgb2YgJ3Vua25vd24gdHlwZScgZm9yIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMKCjIwMDYtMTEtMDggMTA6MzU6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGaXggQ2hyaXN0aWFuJ3MgZW1haWwgYWRkcmVzcyBpbiBDaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBDaHJpc3RpYW4ncyBlbWFpbCBhZGRyZXNzIGluIENoYW5nZWxvZwoKMjAwNi0xMS0wOCAwMjowNDo1MiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogTW9yZSBzbWFsbCBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgTW9yZSBzbWFsbCBmaXhlcy4KCjIwMDYtMTEtMDggMDI6MDM6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiBNYWtlIHR5cGVmaW5kIGVsZW1lbnQgZXhhbXBsZSB3b3JrIGFnYWluICgjMzcxODk0KTsgYWRkIGEgbGljZW5zZSBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6ICh0eXBlX2ZvdW5kKSwgKG1haW4pOgoJICBNYWtlIHR5cGVmaW5kIGVsZW1lbnQgZXhhbXBsZSB3b3JrIGFnYWluICgjMzcxODk0KTsgYWRkIGEKCSAgbGljZW5zZSBoZWFkZXIuCgoyMDA2LTExLTA4IDAxOjQwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogQ29tbWl0IGluaXRpYWwgZHJhZnQgYWJvdXQgaG93IHRvIGRlYWwgd2l0aCBtaXNzaW5nIHBsdWdpbnMsIG5lZWRzIHdvcmsgKEFQSSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIENvbW1pdCBpbml0aWFsIGRyYWZ0IGFib3V0IGhvdyB0byBkZWFsIHdpdGggbWlzc2luZyBwbHVnaW5zLAoJICBuZWVkcyB3b3JrIChBUEkgdG9vKS4KCjIwMDYtMTEtMDcgMDc6MzQ6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogZG9jdW1lbnRzIHRoZSBuZXcgY2FwcyBlbGVtZW50cyAoc2VlICMzNjMxMTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZG9jdW1lbnRzIHRoZSBuZXcgY2FwcyBlbGVtZW50cyAoc2VlICMzNjMxMTgpCgoyMDA2LTExLTA2IDE3OjUzOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVXNlIGdfc3RyZXJyb3IoKSBpbnN0ZWFkIG9mIHN0cmVycm9yKCkgLSB3ZSB3YW50IFVURi04LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pLCAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICBVc2UgZ19zdHJlcnJvcigpIGluc3RlYWQgb2Ygc3RyZXJyb3IoKSAtIHdlIHdhbnQgVVRGLTguCgoyMDA2LTExLTA2IDE3OjI1OjAxICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQW5vdGhlciBwcmludGYgZml4ICgjMzcxNDkzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEFub3RoZXIgcHJpbnRmIGZpeCAoIzM3MTQ5MykuCgoyMDA2LTExLTA2IDE1OjIyOjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IHJlbGljZW5jZSAob2theSB3aXRoIGF1dGhvcj1jb21wYW55KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHJlbGljZW5jZSAob2theSB3aXRoIGF1dGhvcj1jb21wYW55KQoKMjAwNi0xMS0wNiAxNToxODo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBFbmhhbmNlIGRlYnVnIGFuZCBpbXByb3ZlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIEVuaGFuY2UgZGVidWcgYW5kIGltcHJvdmUgZG9jcwoJICAqIGdzdC9nc3R1cmkuYzoKCSAgRml4IGRvY3MKCjIwMDYtMTEtMDYgMTU6MTc6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBtb3JlIGlkZWFzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZGlzdHJpYnV0ZWQudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgbW9yZSBpZGVhcwoKMjAwNi0xMS0wNiAxNToxNDo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogYWRkIG5ldyBBUEkgYW5kIGZpeCB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG5ldyBBUEkgYW5kIGZpeCB0aGUgYnVpbGQKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY19zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgIHVzZSBuZXcgQVBJIGFuZCBpbXByb3ZlIGxvZ2dpbmcKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2NoYW5nZV9yZXR1cm5fZ2V0X25hbWUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBmdW5jdGlvbiB0byBnZXQgU3RhdGVDaGFuZ2VyZXR1cm4gbmFtZXMgdG8gaW1wcm92ZSBsb2dzCgoyMDA2LTExLTA2IDEyOjAxOjI3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZG9jcy9yYW5kb20vemFoZWVybS9kdmItaW50ZXJmYWNlLnR4dDoKCSAgTm90ZXMgdGFrZW4gd2hpbGUgZGlzY3Vzc2luZyBkdmIgY2hhbm5lbCBzZWxlY3Rpb24gd2l0aCBXaW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5vdGVzIHRha2VuIHdoaWxlIGRpc2N1c3NpbmcgZHZiIGNoYW5uZWwgc2VsZWN0aW9uIHdpdGggV2ltCgoyMDA2LTExLTA0IDEyOjU0OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBkb24ndCBwdXQgc3RyZXJyb3IgaW4gdHJhbnNsYXRhYmxlIG1lc3NhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHB1dCBzdHJlcnJvciBpbiB0cmFuc2xhdGFibGUgbWVzc2FnZQoKMjAwNi0xMS0wMyAxNTowNDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogR2V0IHRoZSB0eXBlIGFuZCBwcmludGYgY29udmVyc2lvbiBzcGVjaWZpZXJzIHJpZ2h0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEdldCB0aGUgdHlwZSBhbmQgcHJpbnRmIGNvbnZlcnNpb24gc3BlY2lmaWVycyByaWdodC4KCjIwMDYtMTEtMDMgMTM6NTc6MjggKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvZ3N0cGFkLmM6IFNvbWUgc21hbGwgY2xlYW51cHMuIEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChwcmVfYWN0aXZhdGUpLAoJICAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksIChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgU29tZSBzbWFsbCBjbGVhbnVwcy4gSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBhZC5oOgoJICBTaWduYWwgYWxsIHdhaXRpbmcgdGhyZWFkcyB3aXRoIGEgYnJvYWRjYXN0IGluc3RlYWQgb2YganVzdCBvbmUuCgkgIEZpeGVzICMzNjk5NDIuCgoyMDA2LTExLTAzIDA5OjQwOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPbmx5IHVwZGF0ZSBmZCB3aGVuIGl0J3MgZGlmZmVyZW50IGZyb20gdGhlIG9sZC4KCjIwMDYtMTEtMDIgMjA6NTI6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUHJpbnRmIGZpeGVzIGZvciBQUEMvT1NYLCB0YWtlIHR3byAoIzM2OTM2NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgUHJpbnRmIGZpeGVzIGZvciBQUEMvT1NYLCB0YWtlIHR3byAoIzM2OTM2NikuCgoyMDA2LTExLTAyIDEzOjAwOjM4ICswMDAwICBKYW4gRGF2aWQgTW9sIDxqLmouZC5tb2xAdHVkZWxmdC5ubD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBQcmludGYgZml4ZXMgZm9yIGdzaXplIHBhcmFtZXRlcnMgb24gUFBDL09TWCAoIzM2OTM2NikuIEFsc28sIGRvbid0IGNhc3QgdG8gbG9uZyBsb25nIGZvciBwb3J0YWJpbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEphbiBEYXZpZCBNb2wgIDxqLmouZC5tb2wgYXQgdHVkZWxmdCBubD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgUHJpbnRmIGZpeGVzIGZvciBnc2l6ZSBwYXJhbWV0ZXJzIG9uIFBQQy9PU1ggKCMzNjkzNjYpLiBBbHNvLAoJICBkb24ndCBjYXN0IHRvIGxvbmcgbG9uZyBmb3IgcG9ydGFiaWxpdHkgcmVhc29ucywgYnV0IHVzZQoJICBHTGliJ3MgdHlwZXMgaW5zdGVhZC4KCjIwMDYtMTAtMzAgMTg6NDM6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogR2V0IHRoZSBhcmd1bWVudHMgdG8gbHNlZWsoKSB0aGUgcmlnaHQgd2F5IGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICBHZXQgdGhlIGFyZ3VtZW50cyB0byBsc2VlaygpIHRoZSByaWdodCB3YXkgYXJvdW5kLgoJICBGaXhlcyAzNjc2NzcuCgoyMDA2LTEwLTMwIDA3OjUxOjEzICswMDAwICBnb3JzaGtvdiA8Z29yc2hrb3ZAb2dobWEub24uY2E+CgoJICBnc3QvZ3N0aW5mby5oOiBfZGVjbHNwZWMgc2hvdWxkIGJlIF9fZGVjbHNwZWMgKHR3byB1bmRlcnNjb3Jlcywgbm90IG9uZSkuIEZpeGVzIDM2NjU3Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBnb3JzaGtvdiA8Z29yc2hrb3YgYXQgb2dobWEgZG90IG9uIGRvdCBjYT4KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBfZGVjbHNwZWMgc2hvdWxkIGJlIF9fZGVjbHNwZWMgKHR3byB1bmRlcnNjb3Jlcywgbm90IG9uZSkuIEZpeGVzIDM2NjU3Mi4KCjIwMDYtMTAtMjggMTU6NDI6MjkgKzAwMDAgIEtqYXJ0YW4gTWFyYWFzIDxrbWFyYWFzQGdub21lLm9yZz4KCgkgIFR5cG8gZml4ZXMgKCMzNjYyMTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEtqYXJ0YW4gTWFyYWFzICA8a21hcmFhcyBhdCBnbm9tZSBvcmc+CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vd3RheS9jYXBzbmVnbzItZG9jczoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIFR5cG8gZml4ZXMgKCMzNjYyMTIpLgoKMjAwNi0xMC0yOCAxNToxMDoyNiArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIEFkZCBuZWVkZWQgZW50cmllcyBpbiAuZGVmIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0LmM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RiYXNlLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y29udHJvbGxlci52Y3Byb2o6CgkgIEFkZCBuZWVkZWQgZW50cmllcyBpbiAuZGVmIGZpbGVzLgoJICBVc2UgSEFWRV9VTklTVERfSC4KCSAgUmVhcnJhbmdlIGRlZiBmaWxlcyBpbiB2czggc29sdXRpb25zLiBGaXhlcyAjMzY2Mjg2LgoKMjAwNi0xMC0yOCAxNTowMzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogQWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCBhbmQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gdGhlIGhhbmQtbWFkZSB3aW4zMiBnc3Rjb25maWcuaC4gRi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIEFkZCBHU1RfU0VHTUVOVF9GT1JNQVQgYW5kIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIHRoZQoJICBoYW5kLW1hZGUgd2luMzIgZ3N0Y29uZmlnLmguIEZpeGVzICMzNjYzMjEuCgoyMDA2LTEwLTI3IDE2OjMxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IE1ha2UgYWNjZXB0Y2FwcyByZXR1cm4gVFJVRSB3aGVuIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQsIGp1c3QgbGlrZSBzZXRjYXBzIGRvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBNYWtlIGFjY2VwdGNhcHMgcmV0dXJuIFRSVUUgd2hlbiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0LCBqdXN0IGxpa2UKCSAgc2V0Y2FwcyBkb2VzLgoKMjAwNi0xMC0yNyAxMDoxMDoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZXZlcnQgcHJldmlvdXMgY29tbWl0LCAwIHNpemVkIGJ1ZmZlcnMgYXJlIGFsbG93ZWQuIFJlb3BlbnMgIzM2MzA5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0LCAwIHNpemVkIGJ1ZmZlcnMgYXJlIGFsbG93ZWQuIFJlb3BlbnMgIzM2MzA5NS4KCjIwMDYtMTAtMjYgMDg6NDk6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IElmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGEgbm9uLVVURjggc3RyaW5nIGZpZWxkIG9uIGEgc3RydWN0dXJlLCBkb24ndCBqdXN0IHByaW50IGEgd2FybmluZywgYnV0IGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsdWUpOgoJICBJZiBzb21lb25lIHRyaWVzIHRvIHNldCBhIG5vbi1VVEY4IHN0cmluZyBmaWVsZCBvbiBhIHN0cnVjdHVyZSwKCSAgZG9uJ3QganVzdCBwcmludCBhIHdhcm5pbmcsIGJ1dCBhbHNvIGlnbm9yZSB0aGUgcmVxdWVzdCBhbmQgZG8KCSAgbm90IGNoYW5nZS9hZGQgdGhhdCBmaWVsZCB0byB0aGUgc3RydWN0dXJlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90YWdfc3VpdGUpOgoJICBUZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTEwLTI2IDAwOjAwOjM0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RpbmZvLmM6IGdfaGFzaF90YWJsZV9pbnNlcnQoKSBuZWVkcyBhIGNhc3QgdG8gYSBub24tY29uc3QgcG9pbnRlciBkdWguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIGdfaGFzaF90YWJsZV9pbnNlcnQoKSBuZWVkcyBhIGNhc3QgdG8gYSBub24tY29uc3QgcG9pbnRlciBkdWguCgoyMDA2LTEwLTI1IDIzOjQ3OjQwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RpbmZvLio6IENoYW5nZSBuYW1lIHBhcmFtZXRlciBvZiBfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIgdG8gY29uc3QgdG8gcmVmbGVjdCB0aGUgY29uc3RuZXNzIG9mIGl0cyB1c2UgaW4gdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIENoYW5nZSBuYW1lIHBhcmFtZXRlciBvZiBfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIgdG8gY29uc3QKCSAgdG8gcmVmbGVjdCB0aGUgY29uc3RuZXNzIG9mIGl0cyB1c2UgaW4gdGhlIGZ1bmN0aW9uIGFzIHdlbGwKCSAgYXMgdG8gcXVpZXQgYSBnY2Mgd2FybmluZy4KCjIwMDYtMTAtMjUgMTM6NDE6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgcHVzaCB0aGUgYnVmZmVyIGlmIGl0J3MgZW1wdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgRG9uJ3QgcHVzaCB0aGUgYnVmZmVyIGlmIGl0J3MgZW1wdHkuCgkgIENsb3NlcyAjMzYzMDk1CgoyMDA2LTEwLTI0IDA4OjIyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IEFkZCBzbWFsbCBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIHNtYWxsIGNvbW1lbnQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOgoJICBEZWJ1ZyBzZWdtZW50IHZhbHVlcyAqYWZ0ZXIqIHVwZGF0aW5nIHRoZW0gYXMgdGhpcyBpcyBtb3JlCgkgIGludGVyZXN0aW5nLgoKMjAwNi0xMC0yMyAxNToyMToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaXNfYmxvY2tpbmcpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBSZXZlcnQgQkxPQ0tJTkcgcGF0Y2gsIGl0IHRyaWVzIHRvIGJlIHNtYXJ0IHdpdGhvdXQgcmVhbGx5IGhhdmluZyBhCgkgIGNsZWFyIGlkZWEgd2hhdCBvciBob3cuIFNvLCBub3cgd2UgZGlzY2FyZCBhbGwgRkxVU0hJTkcgZXZlbnRzIGFnYWluIG9uCgkgIGEgYmxvY2tpbmcgcGFkLiBTaG91bGQgZml4IGdub25saW4gYWdhaW4uCgoyMDA2LTEwLTIzIDE0OjUxOjMwICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2Ugc3VyZSBzaXplIGlzIGFsd2F5cyBpbml0aWFsaXplZC4gRml4ZXMgIzM2NDM4OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5IGRvdCBzY29iaWNoIGF0IGdtYWlsIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIE1ha2Ugc3VyZSBzaXplIGlzIGFsd2F5cyBpbml0aWFsaXplZC4gRml4ZXMgIzM2NDM4OC4KCjIwMDYtMTAtMjAgMTE6MzY6NTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZGlzdHJpYnV0ZWQudHh0OiBhZGQgc29tZSBpZGVhcyBhYm91dCBkb2luZyBkaXN0cmlidXRlZCBwcm9jZXNzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZGlzdHJpYnV0ZWQudHh0OgoJICBhZGQgc29tZSBpZGVhcyBhYm91dCBkb2luZyBkaXN0cmlidXRlZCBwcm9jZXNzaW5nCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBnZXRfcnVzYWdlIGxvb2sgcHJvbWlzaW5nCgoyMDA2LTEwLTE4IDE5OjQzOjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IEFkZCBhIGNhc3QgaW4gZXhhbXBsZSB0byBmaXggY29tcGlsZSB3YXJuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgQWRkIGEgY2FzdCBpbiBleGFtcGxlIHRvIGZpeCBjb21waWxlIHdhcm5pbmcKCjIwMDYtMTAtMTggMTU6Mjg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBSZWxheCBhcmcgY2hlY2tpbmcgYWdhaW4sIC0xIGlzIGFsbG93ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpOgoJICBSZWxheCBhcmcgY2hlY2tpbmcgYWdhaW4sIC0xIGlzIGFsbG93ZWQuCgoyMDA2LTEwLTE4IDEzOjI3OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogX3NldF9sYXN0X3N0b3AoKSBtdXN0IGJlIHdpdGggYSB2YWx1ZSAhPSAtMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKToKCSAgX3NldF9sYXN0X3N0b3AoKSBtdXN0IGJlIHdpdGggYSB2YWx1ZSAhPSAtMQoJICBBIF9UWVBFX1NFVCB0byAtMSBtZWFucyBzZWVrIHRvIDAuCgkgIENhbGMgbGFzdF9zdG9wIGNvcnJlY3RseSBmb3IgbmVnYXRpdmUgcmF0ZXMuCgkgIE1ha2Ugc3VyZSB3ZSB3b3JrIHdpdGggcG9zaXRpdmUgZHVyYXRpb25zIHdoZW4gdXBkYXRpbmcgYSBzZWdtZW50LgoKMjAwNi0xMC0xOCAxMzoyMTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBTbWFsbCBkb2NzIGZpeGVzLgoKMjAwNi0xMC0xOCAxMDowODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuaDogQWRkIGFuIGV4cGxpY2l0IGNhc3QgdG8gR3N0QnVmZmVyKiogdG8ga2VlcCBvbGQgY29kZSB0aGF0IGFkZGVkIGFuIGV4cGxpY2l0IGNhc3QgdG8gR3N0TWluaU9iamVjdCoqIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBhbiBleHBsaWNpdCBjYXN0IHRvIEdzdEJ1ZmZlcioqIHRvIGtlZXAgb2xkIGNvZGUgdGhhdCBhZGRlZCBhbgoJICBleHBsaWNpdCBjYXN0IHRvIEdzdE1pbmlPYmplY3QqKiBmb3IgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKQoJICBjb21waWxpbmcgd2l0aG91dCB3YXJuaW5nLgoKMjAwNi0xMC0xOCAwODo1NDozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IGNoZWNrIGZvciB2YWxpZGl0eSBvZiBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfZGF0ZSksIChnc3RfZGF0ZV9jb3B5KToKCSAgY2hlY2sgZm9yIHZhbGlkaXR5IG9mIGRhdGVzCgoyMDA2LTEwLTE3IDEyOjA5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRm9yZ290IHRoaXMgb25lLCBtYWtlcyBndGstZG9jIHNodXQgdXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZvcmdvdCB0aGlzIG9uZSwgbWFrZXMgZ3RrLWRvYyBzaHV0IHVwLgoKMjAwNi0xMC0xNyAxMTo1NzozMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvZ3N0b2JqZWN0Lmg6IERvbid0IGRlZmluZSB4bWxOb2RlUHRyIHRvIGdwb2ludGVyIGlmIHRoZSBjb3JlIHdhcyBidWlsdCB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb24ndCBkZWZpbmUgeG1sTm9kZVB0ciB0byBncG9pbnRlciBpZiB0aGUgY29yZSB3YXMgYnVpbHQgd2l0aAoJICAtLWRpc2FibGUtbG9hZHNhdmUgYW5kIC0tZGlzYWJsZS1yZWdpc3RyeSwgdGhpcyB3aWxsIGJyZWFrCgkgIGFwcGxpY2F0aW9ucyB0aGF0IHdhbnQgdG8gdXNlIGxpYnhtbDIgYnV0IGFyZSBidWlsZGxpbmcgYWdhaW5zdCBhCgkgIGNvcmUgdGhhdCBkb2Vzbid0IHVzZSBsaWJ4bWwyLiBVc2UgYW4gaW50ZXJtZWRpYXJ5IHR5cGUgR3N0WG1sTm9kZVB0cgoJICBpbnN0ZWFkIHNvIHdlIGRvbid0IGhhdmUgdG8gbWVzcyB3aXRoIHRoZSBsaWJ4bWwyIG5hbWVzcGFjZQoJICAoIzM2MTY3NSkuCgoyMDA2LTEwLTE3IDEwOjMwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBGaXggZ3N0X2J1ZmZlcl9yZXBsYWNlKCkgbWFjcm8gdG8gYXZvaWQgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKS1yZWxhdGVkIHR5cGUtcHVubmVkIHBvaW50ZXIgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRml4IGdzdF9idWZmZXJfcmVwbGFjZSgpIG1hY3JvIHRvIGF2b2lkIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCktcmVsYXRlZAoJICB0eXBlLXB1bm5lZCBwb2ludGVyIHdhcm5pbmdzLgoKMjAwNi0xMC0xNiAyMDowMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IEFkZCBjYXN0cyB0byB0aGUgY29ycmVjdCByZXR1cm4gdHlwZSB0byBzdGF0ZSA8PT4gc3RhdGUgdHJhbnNpdGlvbiBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEFkZCBjYXN0cyB0byB0aGUgY29ycmVjdCByZXR1cm4gdHlwZSB0byBzdGF0ZSA8PT4gc3RhdGUgdHJhbnNpdGlvbgoJICBtYWNyb3MuCgoyMDA2LTEwLTE2IDEzOjUzOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDogZGVzY3JpYmUgaG93dG8gaGFuZGxlIGxhdGVuY3kKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgIGRlc2NyaWJlIGhvd3RvIGhhbmRsZSBsYXRlbmN5CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBtb3JlIGlkZWFzCgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIGZpeCBsb2cgcGFyc2luZyBmb3Igc29sYXJpcywgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgoKMjAwNi0xMC0xNiAxMTo0NjowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVwZGF0ZSBzb21lIGRvY3MgcmVnYXJkaW5nIHJldmVyc2UgcGxheWJhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIFVwZGF0ZSBzb21lIGRvY3MgcmVnYXJkaW5nIHJldmVyc2UgcGxheWJhY2suCgoyMDA2LTEwLTE1IDEyOjQ3OjEzICswMDAwICBNYXJjdXMgR3JhbmFkbyA8bXJjLmdyYW5AZ21haWwuY29tPgoKCSAgd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOiBFcnJvciBvdXQgd2l0aCBhIHdhcm5pbmcgaWYgZ2xpYi1nZW5tYXJzaGFsLmV4ZSBpcyBub3QgaW4gcGF0aCwgaW5zdGVhZCBvZiBjcmVhdGluZyBib2d1cyBnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyY3VzIEdyYW5hZG8gIDxtcmMgZG90IGdyYW4gYXQgZ21haWwgY29tPgoJICAqIHdpbjMyL3ZzOC9ncmFtbWFyLnZjcHJvajoKCSAgRXJyb3Igb3V0IHdpdGggYSB3YXJuaW5nIGlmIGdsaWItZ2VubWFyc2hhbC5leGUgaXMgbm90IGluIHBhdGgsCgkgIGluc3RlYWQgb2YgY3JlYXRpbmcgYm9ndXMgZ3N0bWFyc2hhbC5bY2hdIGZpbGVzLiBGaXhlcyAjMzYxNzIwLgoKMjAwNi0xMC0xMyAxNjowOTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFdoZW4gc2Vla2luZyB0byBzdG9wIC0xLCBzZXQgbGFzdF9zdG9wIChjdXJyZW50IHBvc2l0aW9uKSB0byB0aGUgZHVyYXRpb24gb2YgdGhlIHNlZ21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIFdoZW4gc2Vla2luZyB0byBzdG9wIC0xLCBzZXQgbGFzdF9zdG9wIChjdXJyZW50IHBvc2l0aW9uKSB0byB0aGUKCSAgZHVyYXRpb24gb2YgdGhlIHNlZ21lbnQuCgoyMDA2LTEwLTEzIDEzOjI3OjQ2ICswMDAwICBZdmVzIExlZmVidnJlIDxpdmFub2hlQGFiYWNvbS5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBDbGFyaWZ5IF9OT19QUkVST0xMIGEgYml0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIENsYXJpZnkgX05PX1BSRVJPTEwgYSBiaXQgbW9yZS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRml4IGRvY3MuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwKCSAgKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFBhdGNoIGJ5OiBZdmVzIExlZmVidnJlIDxpdmFub2hlIGF0IGFiYWNvbSBkb3QgY29tPiBGaXggcG9zc2libGUgZGVhZGxvY2sKCSAgZHVlIHRvIHdyb25nIGxvY2tpbmcgb3JkZXIuIEZpeGVzICMzNjE3NjkuCgkgIFJlbW92ZSBzb21lIHJlZHVuZGFudC9taXNwbGFjZWQgY2hlY2tzIGluIHBhZF9ibG9jay4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEZvciBuZWdhdGl2ZSByYXRlcywgY291bnQgYmFja3dhcmRzIGZyb20gdGhlIGR1cmF0aW9uLgoKMjAwNi0xMC0xMyAwOTozNzo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5jOiBGaXggZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfU0VUVElOR1MgKGZlZWwgZnJlZSB0byBjb21lIHVwIHdpdGggc29tZXRoaW5nIGJldHRlcikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9saWJyYXJ5X2Vycm9yc19pbml0KToKCSAgRml4IGVycm9yIG1lc3NhZ2UgZm9yIEdTVF9MSUJSQVJZX0VSUk9SX1NFVFRJTkdTIChmZWVsIGZyZWUgdG8gY29tZQoJICB1cCB3aXRoIHNvbWV0aGluZyBiZXR0ZXIpLgoKMjAwNi0xMC0xMiAyMjozNTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyLzogRG9uJ3QgcmVmZXJlbmNlIGdsaWItY29tcGF0LmMgd2hpY2ggaXMgY3VycmVudGx5IG5vdCB1c2VkIGFuZCBub3QgZGlzdGVkOyBhZGQgZ3N0cXVhcmsuYyB3aGljaCB3YXMgcmVjZW50bHkgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgKiB3aW4zMi92czcvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgRG9uJ3QgcmVmZXJlbmNlIGdsaWItY29tcGF0LmMgd2hpY2ggaXMgY3VycmVudGx5IG5vdCB1c2VkIGFuZCBub3QKCSAgZGlzdGVkOyBhZGQgZ3N0cXVhcmsuYyB3aGljaCB3YXMgcmVjZW50bHkgYWRkZWQuIEZpeGVzICMzNjE3MzAuCgoyMDA2LTEwLTEyIDE2OjA5OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgcmVjZW50bHktYWRkZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgYSBidW5jaCBvZiBvdGhlciByZWNlbnRseS1hZGRlZCBmdW5jdGlvbnMuCgkgIEZpeGVzICMzNjE3MzIuCgoyMDA2LTEwLTExIDE2OjMwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zLzogVXBkYXRlIGVsZW1lbnQgYXJncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIFVwZGF0ZSBlbGVtZW50IGFyZ3MuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIFNtYWxsIGNvbW1lbnQgdXBkYXRlLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpLCAoZ3N0X3RlZV9pbml0KSwKCSAgKGdzdF90ZWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF90ZWVfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X3RlZV9idWZmZXJfYWxsb2MpLCAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFNvbWUgdGVlIGxvdmluZzoKCSAgQWRkIGRlZmF1bHQgcHJvcGVydHkgZGVmaW5lcy4KCSAgSW1wbGVtZW50IHJlbGVhc2UgcGFkIGZ1bmN0aW9uLgoJICBHaXZlIHByb3BlcnRpZXMgYmV0dGVyIGJsdWJzIGV0Yy4KCSAgQWN0aXZhdGUgcGFkcyBiZWZvcmUgYWRkaW5nIHRoZW0gdG8gYSBydW5uaW5nIHRlZS4KCSAgRG8gc2ltcGxlIGJ1ZmZlcl9hbGxvYyBvbiB0aGUgZmlyc3QgcmVxdWVzdGVkIHBhZC4KCSAgUG9zdCBlcnJvciB3aGVuIGFjdGl2YXRpb24gZmFpbHMuCgoyMDA2LTEwLTExIDEyOjE2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDaGVjayByZXR1cm4gdmFsdWUgb2Ygd3JpdGUoKSB0byBtYWtlIGNvbXBpbGVyIGhhcHB5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIHdyaXRlKCkgdG8gbWFrZSBjb21waWxlciBoYXBweS4KCjIwMDYtMTAtMTEgMTA6MTA6MzcgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogUmVjaGVjayBxdWV1ZSBmaWxsZWRuZXNzIGFmdGVyIHNpZ25hbGxpbmcgdGhlIG92ZXJydW4gd2hlbiB3ZSdyZSBhYm91dCB0byBsZWFrIGRvd25zdHJlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgUmVjaGVjayBxdWV1ZSBmaWxsZWRuZXNzIGFmdGVyIHNpZ25hbGxpbmcgdGhlIG92ZXJydW4gd2hlbiB3ZSdyZSBhYm91dAoJICB0byBsZWFrIGRvd25zdHJlYW0gYmVjYXVzZSB3ZSByZWxlYXNlZCB0aGUgbG9jayB3aGVuIGVtaXR0aW5nIHRoZSBzaWduYWwKCSAgYW5kIHRoZSBxdWV1ZSBjb3VsZCBiZSBlbXB0eSBhZ2Fpbi4gRml4ZXMgIzM1MjM0NS4KCjIwMDYtMTAtMTEgMDk6MTM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRml4IHJlZmNvdW50aW5nIGhlcmUgdG9vLCBqdXN0IGxpa2Ugd2UgZGlkIGZvciBfbmV3X3ZhbGlzdCgpIGEgZmV3IGRheXMgYWdvICgjMzUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgIEZpeCByZWZjb3VudGluZyBoZXJlIHRvbywganVzdCBsaWtlIHdlIGRpZCBmb3IgX25ld192YWxpc3QoKSBhIGZldwoJICBkYXlzIGFnbyAoIzM1NzE4MCkgKHRoYW5rcyB0byBSZW7DqSBTdGFkbGVyKS4gQWxzbyByZW1vdmUgYWxsIHRob3NlCgkgICdTaW5jZTogMC45JyBmcm9tIHRoZSBndGstZG9jIGJsb2JzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoY29udHJvbGxlcl9yZWZjb3VudF9uZXdfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0xMC0xMCAxNDo0Nzo0MCArMDAwMCAgU2ViYXN0aWVuIENvdGUgPHNlYmFzNjQyQHlhaG9vLmNhPgoKCSAgZ3N0L2dzdHBhZC5jOiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBDb3RlIDxzZWJhczY0MiBhdCB5YWhvbyBkb3QgY2E+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksCgkgIChnc3RfcGFkX3NhdmVfdGh5c2VsZik6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgIFdyaXRlIHBhZCBkaXJlY3Rpb24gaW4gWE1MIG91dHB1dC4gRml4ZXMgIzM0NTQ5Ni4KCjIwMDYtMTAtMTAgMTQ6MTM6MDggKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogVGFrZSByZWYgdG8gY29udHJvbGxlZCBvYmplY3Qgc28gdGhhdCBpdCBjYW5ub3QgZGlzYXBwZWFyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZmluYWxpemUpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICBUYWtlIHJlZiB0byBjb250cm9sbGVkIG9iamVjdCBzbyB0aGF0IGl0IGNhbm5vdCBkaXNhcHBlYXIuCgkgIEZpeGVzICMzNTc0MzIuCgoyMDA2LTEwLTEwIDE0OjA5OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogQWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIGluIHNldHVwL3RlYXJkb3duIHJlc3BlY3RpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICBBY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgaW4gc2V0dXAvdGVhcmRvd24gcmVzcGVjdGl2ZWx5LgoKMjAwNi0xMC0xMCAxMjoxMjo0NCArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogQ2FzdCB2YWx1ZXMgd2hlbiBtYWtpbmcgZ3N0ZW51bXR5cGVzLmguICBUaGlzIHBhY2lmaWVzIEZvcnRlIHNvIGl0IGRvZXNuJ3Qgd2FybiBhYm91dCB0aGUgfjAgYXMgR1NUXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0xMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIENhc3QgdmFsdWVzIHdoZW4gbWFraW5nIGdzdGVudW10eXBlcy5oLiAgVGhpcyBwYWNpZmllcyBGb3J0ZQoJICBzbyBpdCBkb2Vzbid0IHdhcm4gYWJvdXQgdGhlIH4wIGFzIEdTVF9NRVNTQUdFX0FOWSBub3QgZml0dGluZwoJICBpbiB0aGUgZW51bWVyYXRpb24uCgoyMDA2LTEwLTA5IDE3OjE1OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IFJlbmFtZSBzb21lIG1vcmUgQGN1ciB0byBAc3RhcnQgdG8gZml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19zZWVrKSwgKGdzdF9ldmVudF9wYXJzZV9zZWVrKToKCSAgUmVuYW1lIHNvbWUgbW9yZSBAY3VyIHRvIEBzdGFydCB0byBmaXggZG9jcy4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBGaXggdHlwby4KCSAgdGltZSBhbmQgc3RhcnQgbXVzdCBhbHdheXMgc3RheSBpbiBzeW5jIGFzIGRlZmluZWQgaW4gZGVzaWduIGRvYy4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19saXN0X2lzX2VtcHR5KToKCSAgUmVuYW1lIHBhcmFtIHRvIGZpeCBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIHRoYXQgc3RhcnQgYW5kIHRpbWUgYXJlIGluIHN5bmMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBBY3RpdmF0ZSBwYWQgYmVmb3JlIGFkZGluZyB0byB0aGUgZWxlbWVudC4KCjIwMDYtMTAtMDkgMTY6MzM6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBVcGRhdGUgc2VlayBldmVudCBkb2NzIHJlZ2FyZGluZyBuZWdhdGl2ZSByYXRlcy4KCSAgUmVuYW1lIEBjdXIgdG8gQHN0YXJ0LgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgVXBkYXRlIHNldF9zZWVrIGRvY3MgcmVnYXJkaW5nIG5lZ2F0aXZlIHJhdGVzLgoJICBDb3JyZWN0bHkgdXBkYXRlIGxhc3Rfc3RvcCB0byBAc3RvcCB3aGVuIGRlYWxpbmcgd2l0aCBuZWdhdGl2ZQoJICByYXRlcy4KCSAgUmVuYW1lIEBjdXIgdG8gQHN0YXJ0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWN0aXZhdGUgcGFkcyBiZWZvcmUgdHJ5aW5nIHRvIHVzZSB0aGVtLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgIEFkZCBzaW1wbGUgY2hlY2sgZm9yIHNlZ21lbnRzIGFuZCBuZWdhdGl2ZSByYXRlcy4KCjIwMDYtMTAtMDkgMTE6MjA6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfaXNfZW1wdHkoKSAoIzM2MDQ2NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfaXNfZW1wdHkpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X2lzX2VtcHR5KCkgKCMzNjA0NjcpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQW5kIGEgdGVzdCBjYXNlLgoKMjAwNi0xMC0wOSAxMTowNjo1MCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmg6IFJldmVydCBjaGFuZ2UgZnJvbSBlYXJsaWVyIHdydCBHU1RfTUVTU0FHRV9UWVBFX0FOWSBoYXZpbmcgYSB2YWx1ZSB0aGF0IGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFJldmVydCBjaGFuZ2UgZnJvbSBlYXJsaWVyIHdydCBHU1RfTUVTU0FHRV9UWVBFX0FOWSBoYXZpbmcKCSAgYSB2YWx1ZSB0aGF0IGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uLgoKMjAwNi0xMC0wOSAxMDoxNDoyOCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBSZW1vdmUgbG9jYWwgZGVidWdnaW5nIHN5c3RlbSBhbmQgdXNlIEdzdHJlYW1lcidzIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA5ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBSZW1vdmUgbG9jYWwgZGVidWdnaW5nIHN5c3RlbSBhbmQgdXNlIEdzdHJlYW1lcidzIGluc3RlYWQuCgoyMDA2LTEwLTA5IDA5OjMyOjI5ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgY29tbW9uL200L2dzdC1lcnJvci5tNDogRGlzYWJsZSB3YXJuaW5nIG9mIHN0YXRlbWVudCBub3QgcmVhY2hlZCBvbiBGb3J0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogY29tbW9uL200L2dzdC1lcnJvci5tNDoKCSAgRGlzYWJsZSB3YXJuaW5nIG9mIHN0YXRlbWVudCBub3QgcmVhY2hlZCBvbiBGb3J0ZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBGaXggd2FybmluZyBvbiBGb3J0ZSAodmFsdWUgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24pLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICBGaXggd2FybmluZyBvbiBGb3J0ZSAodmFsdWUgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24pLgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgREVCVUcgbWFjcm8gc2F5cyBpdCB0YWtlcyBtaW5pbXVtIG9mIDIgYXJncyBhbmQgc28gRm9ydGUKCSAgY29tcGxhaW5zIGFib3V0IHRoZSB1c2Ugd2l0aCBqdXN0IDEgYXJnLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgVXNlIGNvcnJlY3QgcmV0dXJuIHR5cGUgZm9yIHRoZSB1cmkgaGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuCgkgIEFsbCB0aGVzZSBmaXggd2FybmluZ3MgaW4gRm9ydGUuICBGaXhlcyBidWcgIzM2MDg2MC4KCjIwMDYtMTAtMDggMTM6Mjc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBnY2MgdmVyc2lvbnMgcHJpb3IgdG8gZ2NjIDMuMyBhcHBhcmVudGx5IGNvbXBsYWluIGFib3V0IGEgTlVMTCBwcmludGYgZm9ybWF0IHN0cmluZywgc28gZG9uJ3QgdXNlIEcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ2NjIHZlcnNpb25zIHByaW9yIHRvIGdjYyAzLjMgYXBwYXJlbnRseSBjb21wbGFpbiBhYm91dCBhIE5VTEwgcHJpbnRmCgkgIGZvcm1hdCBzdHJpbmcsIHNvIGRvbid0IHVzZSBHX0dOVUNfUFJJTlRGIGZvciB0aG9zZSB2ZXJzaW9ucy4KCjIwMDYtMTAtMDcgMTg6NDE6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBNaW5vciBmaXhlcyB0byBHU1RfSVNfVEFHX0xJU1QgYW5kIGdzdF9pc190YWdfbGlzdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X2lzX3RhZ19saXN0KToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBNaW5vciBmaXhlcyB0byBHU1RfSVNfVEFHX0xJU1QgYW5kIGdzdF9pc190YWdfbGlzdCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90YWdfc3VpdGUpOgoJICBTbWFsbCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTEwLTA3IDE4OjExOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogTGVzcyB0YWJzLCBtb3JlIHNwYWNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgTGVzcyB0YWJzLCBtb3JlIHNwYWNlcy4KCjIwMDYtMTAtMDYgMTc6MjE6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBUaG9zZSB0d28gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGRvIGFjdHVhbGx5IGJlbG9uZyB0aGVyZSwgcmV2ZXJ0IGNvbW1pdCBmcm9tIHllc3RlcmRheSB0aGF0IHR1cm5lZCB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgVGhvc2UgdHdvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBkbyBhY3R1YWxseSBiZWxvbmcgdGhlcmUsIHJldmVydAoJICBjb21taXQgZnJvbSB5ZXN0ZXJkYXkgdGhhdCB0dXJuZWQgdGhlbSBpbnRybyBtYWNyb3MuCgoyMDA2LTEwLTA2IDE0OjQ2OjA0ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgZ3N0L2dzdC5jOiBGaXggZW1wdHkgZGVjbGFyYXRpb24gYW5kIHR5cGUgbWlzbWF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApOgoJICBGaXggZW1wdHkgZGVjbGFyYXRpb24gYW5kIHR5cGUgbWlzbWF0Y2guCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBGaXggdHlwZSBtaXNtYXRjaGVzLgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfY29tcGFyZV9sb2dfZnVuY3Rpb25fYnlfZnVuYyksCgkgIChnc3RfZGVidWdfcmVtb3ZlX2xvZ19mdW5jdGlvbiksIChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKToKCSAgQ2FzdCBhcyBhcHByb3ByaWF0ZS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3RfY2xhc3Nfc2lnbmFsX2Nvbm5lY3QpOgoJICBDYXN0IGFzIGFwcHJvcHJpYXRlLiAgVGhlIGZ1bmN0aW9uIHBvaW50ZXIgcGFyYW1ldGVyIHJlYWxseQoJICBoYXMgdGhlIHdyb25nIHR5cGUgYnV0IHdvdWxkIGJyZWFrIEFQSSBpZiB3ZSBjaGFuZ2UgaXQuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEZpeCByZWRlZmluaXRpb24gb2YgX0ZJTEVfT0ZGU0VUX0JJVFMgY2F1c2VkIG9uIFNvbGFyaXMgd3J0CgkgIG9yZGVyIG9mIGluY2x1ZGluZyBzdHJpbmcuaC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKToKCSAgUmVtb3ZlIHVucmVhY2hhYmxlIGxpbmUuCgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9wYXJzZV9kb2MpOgoJICBGaXggdHlwZSBtaXNtYXRjaC4KCSAgQWxsIHRoZXNlIGNhdWdodCBieSBGb3J0ZS4KCjIwMDYtMTAtMDYgMTQ6MDA6NDkgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBjb21tb24vbTQvZ3N0LWVycm9yLm00OiBGaXhlZCBidWcgIzM2MDE1MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDYgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogY29tbW9uL200L2dzdC1lcnJvci5tNDoKCSAgRml4ZWQgYnVnICMzNjAxNTEuCgkgIFdlIG5lZWQgdG8gZGlzYWJsZSB3YXJuaW5ncyBvbiBGb3J0ZSBmb3IgZW1wdHkgZGVjbGFyYXRpb25zCgkgIGR1ZSB0byBnc3QtaW5kZW50IGFkZGluZyA7cyB0byBsaW5lcyB0aGF0IGp1c3QgdXNlIG1hY3JvcwoJICB3aGVyZSB0aGUgbWFjcm8gYWN0dWFsbHkgZG9lc24ndCBuZWVkIGEgOyBhdCBlbmQgdG8gZW5kCgkgIHN0YXRlbWVudC4KCjIwMDYtMTAtMDYgMTM6MDE6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEFkZCBzb21lIEZJWE1FIGZvciB0aGUgTkVXU0VHTUVOVCBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKSwgKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBBZGQgc29tZSBGSVhNRSBmb3IgdGhlIE5FV1NFR01FTlQgaGFuZGxpbmcuCgoyMDA2LTEwLTA1IDE1OjQ3OjQ0ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIHN0YXRpYyBmdW5jdGlvbiBnc3RfcGFyc2VfZWxlbWVudF9sb2NrIGFzIGFsbCBpdCBkb2VzIGlzIHJldHVybi4gIExvb2tzIGxpa2UgY3J1ZnQgZnJvbSAwLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA1ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIHN0YXRpYyBmdW5jdGlvbiBnc3RfcGFyc2VfZWxlbWVudF9sb2NrIGFzIGFsbCBpdCBkb2VzCgkgIGlzIHJldHVybi4gIExvb2tzIGxpa2UgY3J1ZnQgZnJvbSAwLjguCgoyMDA2LTEwLTA1IDE1OjMxOjE2ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgRml4IGEgY29tcGlsYXRpb24gaXNzdWUgd2l0aCBGb3J0ZSBvbiBTb2xhcmlzLiAgaW5ldF9hdG9uIGlzIGluIGxpYnJlc29sdi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogY29tbW9uL200L2dzdC1lcnJvci5tNDoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBGaXggYSBjb21waWxhdGlvbiBpc3N1ZSB3aXRoIEZvcnRlIG9uIFNvbGFyaXMuICBpbmV0X2F0b24gaXMgaW4KCSAgbGlicmVzb2x2LgoKMjAwNi0xMC0wNSAxNDoyNjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFByaW50ZiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAocHJlX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIFByaW50ZiBmaXhlcy4KCjIwMDYtMTAtMDUgMTI6MzE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gZ3N0Y29uZmlnLmggc28gdGhhdCB3ZSBrbm93IHdoZXRoZXIgd2UgY2FuIHVzZSBHX0dOVUNfUFJJTlRGIGluIG90aGVyIGhlYWRlciBmaWxlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQWRkIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIGdzdGNvbmZpZy5oIHNvIHRoYXQgd2Uga25vdwoJICB3aGV0aGVyIHdlIGNhbiB1c2UgR19HTlVDX1BSSU5URiBpbiBvdGhlciBoZWFkZXIgZmlsZXMgYW5kIGF0CgkgIGxlYXN0IGNoZWNrIHRoZSBwcmludGYgZm9ybWF0L2FyZ3VtZW50cyBvZiBkZWJ1ZyBtZXNzYWdlcyBhbmQKCSAgR1NUX0VMRU1FTlRfRVJST1IgbWVzc2FnZXMgd2hlbiB0aGUgcHJpbnRmIGV4dGVuc2lvbiBpcyBub3QKCSAgYmVpbmcgdXNlZC4KCSAgUmVwbGFjZSBtb3JlIHRhYnMgd2l0aCBzcGFjZXMgaW4gZ3N0aW5mby5oIGFuZCByZW1vdmUgdHdvIHNwdXJpb3VzCgkgIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbiBHU1RfRElTQUJMRV9ERUJVRyBwYXJ0IHdpdGggbWFjcm9zLgoKMjAwNi0xMC0wMyAxOToxMzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogTW9yZSBkb2NzIGZvciB0aGUgc3luYy1tZXNzYWdlIHNpZ25hbCAobWVudGlvbiB0aGF0IGl0IGlzIG5vdCBlbWl0dGVkIGJ5IGRlZmF1bHQpOyBsb2cgbWVzc2FnZSBzdHJ1Y3R1ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpLCAoZ3N0X2J1c19wb3N0KToKCSAgTW9yZSBkb2NzIGZvciB0aGUgc3luYy1tZXNzYWdlIHNpZ25hbCAobWVudGlvbiB0aGF0IGl0IGlzIG5vdAoJICBlbWl0dGVkIGJ5IGRlZmF1bHQpOyBsb2cgbWVzc2FnZSBzdHJ1Y3R1cmVzIG9mIG1lc3NhZ2VzIHBvc3RlZCBvbgoJICB0aGUgYnVzIGFzIHdlbGwuCgoyMDA2LTEwLTAzIDE1OjEwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogVXNlIGEgcGlwZSBwYWlyIHRvIHJlY2VpdmUgc3RhdHVzIHJlc3VsdHMgZnJvbSB0aGUgZm9ya2VkIGNoaWxkLCBhbmQgaWdub3JlIHRoZSByZXN1bHQgZnJvbSB3YWl0cGlkLiBGaXhlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgVXNlIGEgcGlwZSBwYWlyIHRvIHJlY2VpdmUgc3RhdHVzIHJlc3VsdHMgZnJvbSB0aGUgZm9ya2VkIGNoaWxkLCBhbmQKCSAgaWdub3JlIHRoZSByZXN1bHQgZnJvbSB3YWl0cGlkLiBGaXhlcyAjMzU1NDk5CgoyMDA2LTEwLTAyIDE2OjQ2OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEZpeCBsZWFrIGluIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBGaXggbGVhayBpbiBjaGVjay4KCjIwMDYtMTAtMDIgMTY6Mzc6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCAnU2luY2U6IDAuMTAuMTEnIHRvIGdzdF9wYWRfaXNfYmxvY2tpbmcoKSBndGstZG9jIGJsdXJiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEFkZCAnU2luY2U6IDAuMTAuMTEnIHRvIGdzdF9wYWRfaXNfYmxvY2tpbmcoKSBndGstZG9jIGJsdXJiLgoKMjAwNi0xMC0wMiAxNjowMTo1NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBGdXJ0aGVyIGV4cGxhaW4gdGhlIHVzZSBvZiBmbHVzaGluZyBvbiBibG9ja2VkIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBGdXJ0aGVyIGV4cGxhaW4gdGhlIHVzZSBvZiBmbHVzaGluZyBvbiBibG9ja2VkIHBhZHMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2lzX2Jsb2NraW5nKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIG5ldyBHc3RQYWRGbGFnIDogR1NUX1BBRF9CTE9DS0lORy4KCSAgQWRkcyB0aGUgbm90aW9uIG9mIHBhZHMgcmVhbGx5IGJsb2NraW5nLCB3aGljaCBlbmFibGVzIHRvIHByb3Blcmx5CgkgIGhhbmRsZSBGTFVTSF9TVEFSVC9GTFVTSF9TVE9QIGV2ZW50cyBvbiBibG9ja2VkIHBhZHMuCgkgIEZpeGVzICMzNTg5OTkKCSAgQVBJOiBnc3RfcGFkX2lzX2Jsb2NraW5nKCkKCSAgQVBJOiBHU1RfUEFEX0lTX0JMT0NLSU5HKCkgbWFjcm8KCSAgQVBJOiBHU1RfUEFEX0JMT0NLSU5HIEdzdFBhZEZsYWcKCjIwMDYtMTAtMDIgMTA6MDY6MTcgKzAwMDAgIG1yY2dyYW4gPG1yYy5ncmFuQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBGaWx0ZXIgdGhlIHByb3hpZWQgY2FwcyBhZ2FpbnN0IHRoZSBwYWR0ZW1wbGF0ZSBpZiB3ZSBoYXZlIG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBtcmNncmFuIDxtcmMuZ3JhbiBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKToKCSAgRmlsdGVyIHRoZSBwcm94aWVkIGNhcHMgYWdhaW5zdCB0aGUgcGFkdGVtcGxhdGUgaWYgd2UgaGF2ZSBvbmUuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpOgoJICBBZGQgaW5jbHVkZSBmb3IgZ3N0aW5mby5oIHNvIHRoYXQgY29tcGlsYXRpb24gd2l0aAoJICAtREdTVF9ESVNBQkxFX0dTVF9ERUJVRyB3b3JrcyBhZ2Fpbi4gRml4ZXMgIzM1ODQzNi4KCjIwMDYtMTAtMDIgMDk6NDQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEdpdmUgY3JlZGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHaXZlIGNyZWRpdAoKMjAwNi0xMC0wMiAwOTo0MTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogU2V0IGZpbGUgdG8gTlVMTCB3aGVuIGNsb3NpbmcgZmlsZXNpbmsgc28gdGhhdCB3ZSBjYW4gc2V0IGEgbmV3IGZpbGVuYW1lIGluIFJFQURZLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pLCAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKSwgKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBTZXQgZmlsZSB0byBOVUxMIHdoZW4gY2xvc2luZyBmaWxlc2luayBzbyB0aGF0IHdlIGNhbiBzZXQgYSBuZXcgZmlsZW5hbWUKCSAgaW4gUkVBRFkuIEZpeGVzICMzNTg2MTMuCgoyMDA2LTEwLTAyIDA4OjM3OjI0ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC9nc3RldmVudC5jOiBGaXggZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUoKSBhbmQgZ3N0X2V2ZW50X2NvcHkoKSBmb3IgZXZlbnRzIHdpdGggZXZlbnQgc3RydWN0dXJlcyBieSBzZXR0aW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hICA8YWxlc3NhbmRybyBhdCBubnZhIG9yZz4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfY29weSk6CgkgIEZpeCBnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSgpIGFuZCBnc3RfZXZlbnRfY29weSgpIGZvciBldmVudHMKCSAgd2l0aCBldmVudCBzdHJ1Y3R1cmVzIGJ5IHNldHRpbmcgdGhlIHBhcmVudCByZWZjb3VudCBhZGRyZXNzIG9mIHRoZQoJICBjb3BpZWQgc3RydWN0dXJlIHRvIHRoZSBhZGRyZXNzIG9mIHRoZSByZWZjb3VudCBtZW1iZXIgb2YgdGhlIG5ld2x5CgkgIGNvcGllZCBldmVudCByYXRoZXIgdGhhbiB0aGUgYWRkcmVzcyBvZiB0aGUgcmVmY291bnQgbWVtYmVyIG9mIHRoZQoJICBvcmlnaW5hbCBldmVudC4gRml4ZXMgIzM1ODczNy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTA5LTI5IDIwOjI5OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbTogRGlzdCBzb21lIG1vcmUgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBEaXN0IHNvbWUgbW9yZSBmaWxlcy4KCjIwMDYtMDktMjkgMTI6MzE6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogQWRkIHRlc3QgZm9yIHRoZSBwcmV2aW91cyBmaXg7IGFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIGNvcnJlY3QgcmVmY291bnRpbmcgYmVoYXZpb3VyOyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB0ZXN0IGZvciB0aGUgcHJldmlvdXMgZml4OyBhZGQgc29tZSBtb3JlIHRlc3RzCgkgIGZvciBjb3JyZWN0IHJlZmNvdW50aW5nIGJlaGF2aW91cjsgZml4IGEgZmV3IGxlYWtzCgkgIGluIHRlc3QgY2FzZXM7IGNhbGwgZ3N0X2NvbnRyb2xsZXJfaW5pdCgpIGF0IHN0YXJ0CgkgIG9mIGFsbCB0ZXN0cy4KCjIwMDYtMDktMjkgMTI6MjQ6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRG9uJ3QgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBvbiB0aW1lZCB2YWx1ZXMgd2l0aCBpbnZhbGlkIHRpbWVzdGFtcHMgaW5zaWRlIGEgY3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpOgoJICBEb24ndCBnX3JldHVybl92YWxfaWZfZmFpbCgpIG9uIHRpbWVkIHZhbHVlcyB3aXRoIGludmFsaWQgdGltZXN0YW1wcwoJICBpbnNpZGUgYSBjcml0aWNhbCBzZWN0aW9uIHdpdGhvdXQgdW5sb2NraW5nIHRoZSBtdXRleC4gU3BvdHRlZCBieQoJICBSZW7DqSBTdGFkbGVyLiAoIzM1NzYxNykKCSAgQWxzbywgZml4IHVwIHJlZmNvdW50aW5nIHByb3Blcmx5OiB3aGVuIHJldHVybmluZyBhbiBleGlzdGluZwoJICBjb250cm9sbGVyLCB3ZSBzaG91bGQgaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBvbmx5IG9uY2UgYW5kIG5vdAoJICBvbmNlIHBlciBwcm9wZXJ0eSBhbmQgd2hlbiB0cnlpbmcgdG8gY29udHJvbCBhIHByb3BlcnR5IGFnYWluCgkgIHdlIHNob3VsZCBhbHNvIGluY3JlYXNlIHRoZSByZWZjb3VudC4KCjIwMDYtMDktMjkgMDg6MjI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9uZXQvOiBTdG9wIHJlYWRpbmcgY29tbWFuZHMgd2hlbiBFT0YgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpOgoJICBTdG9wIHJlYWRpbmcgY29tbWFuZHMgd2hlbiBFT0YgYXMgd2VsbC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgVW5pZnkgZGVzY3JpcHRpb24gb2YgdGhlIGR1bXAgcHJvcGVydHkuCgoyMDA2LTA5LTI4IDE3OjIwOjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgbnVtYmVyIGluIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgbnVtYmVyIGluIHByZXZpb3VzIGNvbW1pdAoKMjAwNi0wOS0yOCAxNTo1MjowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZTogT0ssIHNvIGl0J3MgYWN0dWFsbHkgY3ZzaWdub3JlIHRoYXQgbmVlZHMgY2hhbmdpbmcuIFN0b3AgbGF1Z2hpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOgoJICBPSywgc28gaXQncyBhY3R1YWxseSBjdnNpZ25vcmUgdGhhdCBuZWVkcyBjaGFuZ2luZy4gU3RvcCBsYXVnaGluZy4KCjIwMDYtMDktMjggMTU6Mjc6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOiBHYWgsIGRlY2xhcmUgdmFycyAqYmVmb3JlKiB1c2luZyB0aGVtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgR2FoLCBkZWNsYXJlIHZhcnMgKmJlZm9yZSogdXNpbmcgdGhlbQoKMjAwNi0wOS0yOCAxNDowMDo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZS1jb21taXQgdGhlIHJlZ2lzdHJ5IGNoYW5nZXMsIGFsb25nIHdpdGggYW4gZXh0cmEgZml4OgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVidWdfaGVscCksIChnc3RfZGVpbml0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJlLWNvbW1pdCB0aGUgcmVnaXN0cnkgY2hhbmdlcywgYWxvbmcgd2l0aCBhbiBleHRyYSBmaXg6CgkgIFdoZW4gYSBjYWNoZWQgcGx1Z2luIGlzIGVuY291bnRlcmVkIGF0IGEgZGlmZmVyZW50IGZpbGUgcGF0aCwKCSAgdXBkYXRlIHRoZSBzdG9yZWQgcGF0aCBpbiB0aGUgcmVnaXN0cnkgY2FjaGUgc28gdGhhdCB0aGUgcGFyZW50CgkgIHByb2Nlc3Mga25vd3Mgd2hlcmUgaXQgYWN0dWFsbHkgaXMgbm93IHdoZW4gaXQgcmUtcmVhZHMgdGhlIHJlZ2lzdHJ5CgkgIGNhY2hlLiBGaXhlcyB0aGUgdGhpbmcgdGhhdCBicm9rZSBkaXN0Y2hlY2sgd2l0aCB0aGUgcHJldmlvdXMgY29tbWl0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBDbGVhbiB1cCBmaWxlcyBuYW1lZCAnY29yZScgdG9vIHdoZW4gcnVubmluZyBtYWtlIGNsZWFuLgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgU2V0IHVwIGEgcmVnaXN0cnkgcGF0aCBmb3IgcnVubmluZyB0aGVzZSB0ZXN0cywgYW5kIGNsZWFuIGl0IHByb3Blcmx5CgkgIGZvciBkaXN0Y2hlY2suCgoyMDA2LTA5LTI4IDExOjExOjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgcHVsbCBpbiBnbW9kdWxlLTIuMC5wYyBhcyBhIGRlcGVuZGVuY3kgaW4gb3VyIC5wYyBmaWxlcyAtIHdlIHdhbnQgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjIGluc3RlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IHB1bGwgaW4gZ21vZHVsZS0yLjAucGMgYXMgYSBkZXBlbmRlbmN5IGluIG91ciAucGMgZmlsZXMgLSB3ZQoJICB3YW50IGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYyBpbnN0ZWFkIHNvIHRoYXQgd2UgZG9uJ3QgZHJhZyBpbgoJICAtLWV4cG9ydC1keW5hbWljIG9uIGV2ZXJ5IHByb2plY3QgdGhhdCBsaW5rcyB0byBHU3RyZWFtZXIuCgkgIEFsc28sIG1ha2Ugb3VyIGV4cG9ydCByZWdleCBvbmx5IG1hdGNoIHRoZSBzdGFydCBvZiBzeW1ib2xzLCByYXRoZXIKCSAgdGhhbiBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgJ19nc3QnIHNvbWV3aGVyZS4KCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgVGhlIGxpYmdzdGNoZWNrIHdlIGJ1aWxkIGRvZXMgaG93ZXZlciBuZWVkIGV4cG9ydC1keW5hbWljLCBhcyBpdAoJICBwcm9kdWNlcyBzb21lIHN5bWJvbHMgdGhhdCBkb24ndCBtYXRjaCBvdXIgX2dzdC4uLiBzdHlsZSByZWdleC4KCjIwMDYtMDktMjcgMTc6NDI6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB1bnRpbCBJIGZpZ3VyZSBvdXQgd2h5IGl0IGJyZWFrcyBkaXN0Y2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWJ1Z19oZWxwKSwgKGdzdF9kZWluaXQpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCksIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKSwKCSAgKF9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdW50aWwgSSBmaWd1cmUgb3V0IHdoeSBpdCBicmVha3MgZGlzdGNoZWNrLgoKMjAwNi0wOS0yNyAxNjo1Mjo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IE1ha2UgaW5pdF9wcmUgYW5kIGluaXRfcG9zdCB0YWtlIHRoZSBmdWxsIGNvbXBsZW1lbnQgb2YgR09wdGlvbkZ1bmMgYXJncyBzbyB0aGV5IGNhbiByZXR1cm4gdXNlZnVsIEdFcnJvcnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlYnVnX2hlbHApLCAoZ3N0X2RlaW5pdCk6CgkgIE1ha2UgaW5pdF9wcmUgYW5kIGluaXRfcG9zdCB0YWtlIHRoZSBmdWxsIGNvbXBsZW1lbnQgb2YgR09wdGlvbkZ1bmMKCSAgYXJncyBzbyB0aGV5IGNhbiByZXR1cm4gdXNlZnVsIEdFcnJvcnMuIE1ha2UgdGhlIHJlZ2lzdHJ5IHVwZGF0aW5nCgkgIGZ1bmN0aW9ucyBkbyBzby4KCSAgQ2FsbCBfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMgYWZ0ZXIgc2Nhbm5pbmcgZmlsZXMgdG8KCSAgZW5zdXJlIHRoYXQgdGhlIHJlZ2lzdHJ5IHdlJ3JlIGFib3V0IHRvIHdyaXRlIG91dCBkb2Vzbid0IGNvbnRhaW4KCSAgc3RhbGUgaW5mb3JtYXRpb24gYWJvdXQgb2xkLWRlbGV0ZWQgcGx1Z2luIGZpbGVzLgoJICBNYWtlIF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyByZXR1cm4gYSBib29sZWFuIHNvCgkgIHRoYXQgZGVsZXRpb24gb2YgcGx1Z2luIGZpbGVzIGlzIGNvbnNpZGVyZWQgYSByZWdpc3RyeSBjaGFuZ2UuCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlc19mb3JfcGx1Z2luX3VubG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZW5hbWUgX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyBhbmQgX2dzdF9yZWdpc3RyeV9jbGVhbnVwCgkgIGJ5IGFkZGluZyBfcHJpdiBwcmVmaXgsIHNvIHRoYXQgdGhleSB3b24ndCBhcHBlYXIgaW4gdGhlIGdsb2JhbAoJICBzeW1ib2wgdGFibGUuIFRoZXkgc3RpbGwgZG8gYXRtIHRob3VnaCBiZWNhdXNlIG9mICMzMTgwMzEuIE1vdmUgdGhlCgkgIHByb3RvdHlwZXMgdG8gZ3N0X3ByaXZhdGUuaAoJICBXaGVuIHJlbW92aW5nIGEgcGx1Z2luLCByZW1vdmUgYWxsIGZlYXR1cmVzIGZvciB0aGF0IHBsdWdpbiB0b28uCgkgIEZpeGVzICMzNDA4NzguCgoyMDA2LTA5LTI3IDEzOjE5OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6IE1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgImNvbXBpbGVkLWluIGRlc2NyaXB0aW9ucyIgcmVhbGx5IG1lYW4gdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIE1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgImNvbXBpbGVkLWluIGRlc2NyaXB0aW9ucyIgcmVhbGx5IG1lYW4KCSAgdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCk6CgkgIFVwZGF0ZSBkb2NzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGRlZCBmdW5jdGlvbiB0byBibG9jayB3aGlsZSB3YWl0aW5nIGZvciBQTEFZSU5HLCB0aGlzIGZ1bmN0aW9uCgkgIGlzIHVzZWQgYnkgbGl2ZSBzb3VyY2VzIHRoYXQgYmxvY2sgb24gdGhlIGNsb2NrLgoJICBBUEk6IGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcoKQoKMjAwNi0wOS0yNyAxMDoxMzoxMyArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBNYWtlZmlsZS5hbTogZ3N0LWVsZW1lbnQtY2hlY2subTQgaXMgZ2VuZXJhdGVkIGFuZCBzaG91bGQgdGhlcmVmb3JlIGJlIGNvcGllZCBmcm9tIHRoZSBidWlsZCBkaXIgcmF0aGVyIHRoYW4gdGhlIHNvdXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBNYWtlZmlsZS5hbToKCSAgZ3N0LWVsZW1lbnQtY2hlY2subTQgaXMgZ2VuZXJhdGVkIGFuZCBzaG91bGQgdGhlcmVmb3JlIGJlCgkgIGNvcGllZCBmcm9tIHRoZSBidWlsZCBkaXIgcmF0aGVyIHRoYW4gdGhlIHNvdXJjZSBkaXIgKCMzNTc1OTMpLgoJICAnbWFrZSBkaXN0Y2hlY2snIGhhc24ndCBub3RpY2VkIHRoaXMgYmVjYXVzZSB3ZSB3ZXJlIGRpc3RpbmcKCSAgdGhlIGZpbGUgYXMgd2VsbCwgc28gc3RvcCBkb2luZyB0aGF0LgoKMjAwNi0wOS0yNyAwOToyMzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IEFkZCBzb21lIHRlc3RzIGZvciBnc3RfY2Fwc19pbnRlcnNlY3QoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkIHNvbWUgdGVzdHMgZm9yIGdzdF9jYXBzX2ludGVyc2VjdCgpLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCBhbGwgYnVmZmVyaW5nIHBlcmNlbnRhZ2VzIHdlIGdldCwgZXZlbiB0aGUgMTAwJSBvbmUuCgoyMDA2LTA5LTI2IDEyOjM5OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IHByaW50aW5nIG9mIGZsYWdzIHRvIG1hdGNoIHRoZSBsb29rIG9mIGVudW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBGaXggcHJpbnRpbmcgb2YgZmxhZ3MgdG8gbWF0Y2ggdGhlIGxvb2sgb2YgZW51bXMuCgoyMDA2LTA5LTI1IDEzOjA4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IEZpeCB0eXBvIGluIGRvY3MgYmx1cmIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBGaXggdHlwbyBpbiBkb2NzIGJsdXJiLgoKMjAwNi0wOS0yNSAxMToxNjozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRG9uJ3QgYXNzZXJ0L2NyYXNoIGhlcmUgaWYgYSB1cmkgaGFuZGxlciBkb2Vzbid0IHJldHVybiBhbnkgc3VwcG9ydGVkIHByb3RvY29scy4gVGhlIGxpc3Qgb2YgcHJvdG9jb2xzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChzZWFyY2hfYnlfZW50cnkpOgoJICBEb24ndCBhc3NlcnQvY3Jhc2ggaGVyZSBpZiBhIHVyaSBoYW5kbGVyIGRvZXNuJ3QgcmV0dXJuIGFueQoJICBzdXBwb3J0ZWQgcHJvdG9jb2xzLiBUaGUgbGlzdCBvZiBwcm90b2NvbHMgY291bGQgYmUgZ2VuZXJhdGVkCgkgIGR5bmFtaWNhbGx5IGF0IHJ1bnRpbWUgb3IgYXQgcGx1Z2luIHJlZ2lzdHJhdGlvbiwgYW5kIGFuIGVycm9yCgkgIGluIHRoZSB1bmRlcmx5aW5nIGxpYnJhcnkgc2hvdWxkbid0IGJlIGZhdGFsICgjMzUzMzAxKS4KCjIwMDYtMDktMjUgMTA6MzY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggd2FybmluZyBpZiBIQVZFX1BSSU5URl9FWFRFTlNJT04gaXMgdW5kZWZpbmVkIChzcG90dGVkIGJ5IFBldGVyIEtqZWxsZXJzdGVkdCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCB3YXJuaW5nIGlmIEhBVkVfUFJJTlRGX0VYVEVOU0lPTiBpcyB1bmRlZmluZWQKCSAgKHNwb3R0ZWQgYnkgUGV0ZXIgS2plbGxlcnN0ZWR0KS4KCjIwMDYtMDktMjMgMDk6MzA6NDAgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWF0Y2ggX3N0YXJ0L19zdG9wIGNhbGxzIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMuIFJlbW92ZSByZWR1bmRhbnQgX3N0b3AgY2FsbCBmcm9tIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1hdGNoIF9zdGFydC9fc3RvcCBjYWxscyBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb25zLiBSZW1vdmUgcmVkdW5kYW50CgkgIF9zdG9wIGNhbGwgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLiBGaXhlcyAjMzU2OTEwLgoJICBUdXJuIGZhaWx1cmUgREVCVUcgaW50byBFUlJPUi4KCjIwMDYtMDktMjIgMTU6Mjk6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVcGRhdGUgZG9jcyBhYm91dCBidWZmZXJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpOgoJICBVcGRhdGUgZG9jcyBhYm91dCBidWZmZXJpbmcuCgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgRml4IHR5cG8uCgoyMDA2LTA5LTIyIDE0OjMwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIGF1ZGlvdGVzdHNyYyBpcyBub3QgcGFydCBvZiBjb3JlLCBmYWtlc3JjIGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdWRpb3Rlc3RzcmMgaXMgbm90IHBhcnQgb2YgY29yZSwgZmFrZXNyYyBpcwoKMjAwNi0wOS0yMiAxMzozMjo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFJlZiBpbnN0YW5jZXMgd2hlbiByZXR1cm5pbmcgdGhlbSBhZ2FpbiAoZml4ZXMgIzM1NzE4MCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgUmVmIGluc3RhbmNlcyB3aGVuIHJldHVybmluZyB0aGVtIGFnYWluIChmaXhlcyAjMzU3MTgwKQoKMjAwNi0wOS0yMiAxMDoxNzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBEb24ndCBmb3JnZXQgdG8gcmVsZWFzZSBwcm94eSBsb2NrIHdoZW4gdGhlcmUncyBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBEb24ndCBmb3JnZXQgdG8gcmVsZWFzZSBwcm94eSBsb2NrIHdoZW4gdGhlcmUncyBhbiBlcnJvci4KCjIwMDYtMDktMjAgMTY6MTc6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGNhcHMuaDogQWRkIGV4dHJhIGluaXRpYWxpc2VycyBmb3IgQ2FwcyB0aGluZ3MsIHRvIGZpeCBzb21lIHBsdWdpbiB3YXJuaW5ncyB3aGVuIHVzaW5nIC1XZXh0cmEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgQWRkIGV4dHJhIGluaXRpYWxpc2VycyBmb3IgQ2FwcyB0aGluZ3MsIHRvIGZpeCBzb21lIHBsdWdpbiB3YXJuaW5ncwoJICB3aGVuIHVzaW5nIC1XZXh0cmEKCjIwMDYtMDktMTggMTM6NTY6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWxzbyBzZXQgdGVtcGxhdGUgb24gdGhlIGludGVybmFsIHBhZCBzbyB0aGF0IGEgZ2V0Y2FwcyBmcm9tIHRoZSB0YXJnZXQgcGFkIHJldHVybnMgdGhlIHRlbXBsYXRlIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgQWxzbyBzZXQgdGVtcGxhdGUgb24gdGhlIGludGVybmFsIHBhZCBzbyB0aGF0IGEgZ2V0Y2FwcyBmcm9tIHRoZSB0YXJnZXQKCSAgcGFkIHJldHVybnMgdGhlIHRlbXBsYXRlIGNhcHMuCgoyMDA2LTA5LTE4IDEzOjQ0OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVXNlIF9ERUJVR19PQkpFQ1Qgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKSwKCSAgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBVc2UgX0RFQlVHX09CSkVDVCBzb21lIG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIEF2b2lkIHR5cGVjaGVja3MuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIElmIHRoZSB0b3BsZXZlbCBlbGVtZW50IGlzIG5vdCBhIEdzdFBpcGVsaW5lLCBpdCBtdXN0IGJlIHB1dCBpbiBhCgkgIHBpcGVsaW5lIHNvIHRoYXQgYSBidXMgYW5kIGNsb2NrIGlzIHNlbGVjdGVkLgoKMjAwNi0wOS0xNyAxOTozMToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBKSVRURVIsIFJBVEUsIGFuZCBMQVRFTkNZIHF1ZXJ5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBkZWZhdWx0IGNhc2UgYW5kIG5vdCBieSB0aGUgQ09OVi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgSklUVEVSLCBSQVRFLCBhbmQgTEFURU5DWSBxdWVyeSBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUKCSAgZGVmYXVsdCBjYXNlIGFuZCBub3QgYnkgdGhlIENPTlZFUlQgcXVlcnkgY29kZS4KCjIwMDYtMDktMTcgMTk6MjY6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Zm9ybWF0LmM6IEZpeCBsb2NraW5nIG9yZGVyIChtdXN0IHRha2UgbG9jayBiZWZvcmUgdXNpbmcgbl92YWx1ZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChnc3RfZm9ybWF0X3JlZ2lzdGVyKToKCSAgRml4IGxvY2tpbmcgb3JkZXIgKG11c3QgdGFrZSBsb2NrIGJlZm9yZSB1c2luZyBuX3ZhbHVlcykuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2VudW0pLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2VudW1faXRlcl9jbXApLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2VudW0pOgoJICBGaXggc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gb2YgY3VzdG9tIHJlZ2lzdGVyZWQgR3N0Rm9ybWF0cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgY3VzdG9tIGZvcm1hdCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbi4KCjIwMDYtMDktMTYgMjE6Mzg6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgR19PQkpFQ1QgbWFjcm8gZml4aW5nLiBBbHNvIEZpeCBzb21lIGRldGFpbHMgb24gdGhlIHBsdWdpbi1zdGFtcCBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBNb3JlIEdfT0JKRUNUIG1hY3JvIGZpeGluZy4gQWxzbyBGaXggc29tZSBkZXRhaWxzIG9uIHRoZSBwbHVnaW4tc3RhbXAKCSAgc2VjdGlvbi4KCjIwMDYtMDktMTYgMTI6NDk6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2hlY2sgaWYgcmVxdWVzdGVkIGNhcHMgYXJlIHRoZSBzYW1lIGFzIHRoZSBzaW5rcyBjYXBzIElGCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIENoZWNrIGlmIHJlcXVlc3RlZCBjYXBzIGFyZSB0aGUgc2FtZSBhcyB0aGUgc2lua3MgY2FwcyBJRgoJICAtPmhhdmVfc2FtZV9jYXBzIGlzIFRSVUUuIElmIHRoZXkgYXJlIG5vdCwgYWN0IGFzIGlmIGhhdmVfc2FtZV9jYXBzCgkgIGlzIEZBTFNFLgoJICBUaGlzIGZpeGVzIHRoZSByZW5lZ290aWF0aW9uIGlzc3VlcyBzdGF0ZWQgaW4gIzM1MjgyNy4KCjIwMDYtMDktMTYgMTA6NDk6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRXh0cmFjdCB0aGUgbWFudWFsIGV4YW1wbGVzIGFnYWluIGxpa2Ugd2UgdXNlZCB0byBkby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBFeHRyYWN0IHRoZSBtYW51YWwgZXhhbXBsZXMgYWdhaW4gbGlrZSB3ZSB1c2VkIHRvIGRvLgoJICBGaXggb25lIG9mIHRoZW0uCgoyMDA2LTA5LTE2IDEwOjQ3OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaDogdXBkYXRlIGZvciB2ZXJzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGZvciB2ZXJzaW9uCgoyMDA2LTA5LTE1IDIxOjMwOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuYzogRG9jdW1lbnRzIGhvdyB0byByZWNlaXZlIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgIERvY3VtZW50cyBob3cgdG8gcmVjZWl2ZSBlcnJvcnMuCgoyMDA2LTA5LTE1IDEwOjQzOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBBZGRlZCBzb21lIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChzaWdpbnRfaGFuZGxlcl9zaWdoYW5kbGVyKSwgKGNoZWNrX2ludHIpLAoJICAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgQWRkZWQgc29tZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZS4KCSAgUG9zdCBhbiBhcHBsaWNhdGlvbiBtZXNzYWdlIHdoZW4gYW4gaW50ZXJydXB0IGlzIGNhdWdodCBpbnN0ZWFkIG9mIGRvaW5nCgkgIGFuIHVuY29udHJvbGxlZCBzdGF0ZSBjaGFuZ2UuCgkgIENsZWFuIHVwIHRoZSBldmVudCBsb29wLgoJICBIYW5kbGUgYnVmZmVyaW5nIG1lc3NhZ2VzLCBwYXVzZS9yZXN1bWUgdGhlIHBpcGVsaW5lLgoJICBNYWtlIHNodXRkb3duIGJlY2F1c2Ugb2YgYW4gaW50ZXJydXB0IG1vcmUgcmVsaWFibGUuCgoyMDA2LTA5LTE1IDA5OjQ5OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN1cmUgdGhhdCBvdXIgaW50ZXJuYWwgc3RhdGUgaXMgY29ycmVjdCB3aGVuIHdlIGNvbW1pdCBvdXIgc3RhdGUgYXN5bmNocm9ub3VzbHkuIFRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KToKCSAgTWFrZSBzdXJlIHRoYXQgb3VyIGludGVybmFsIHN0YXRlIGlzIGNvcnJlY3Qgd2hlbiB3ZSBjb21taXQgb3VyIHN0YXRlCgkgIGFzeW5jaHJvbm91c2x5LiBUaGlzIHNvbHZlcyBhIHJhY2Ugd2hlcmUgYSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORwoJICBjb3VsZCBjYXVzZSB0aGUgc2luayB0byByZW1haW4gYmxvY2tlZCBpbiBwcmVyb2xsIGluIHNvbWUgc2l0dWF0aW9ucy4KCjIwMDYtMDktMTUgMDg6NTA6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBMaXN0IGZsYWdzIGFzIGhleCBzbyBpdCdzIGVhc2llciB0byBkZWFsIHdpdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyk6CgkgIExpc3QgZmxhZ3MgYXMgaGV4IHNvIGl0J3MgZWFzaWVyIHRvIGRlYWwgd2l0aC4KCjIwMDYtMDktMTUgMDg6NDc6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBFeHBvc2UgbG9naWMgdG8gd2FpdCBmb3IgcHJlcm9sbCBzbyB0aGF0IHN1YmNsYXNzZXMgc3VjaCBhcyBhdWRpb3NpbmsgY2FuIGFsc28gdXNlIHRoaXMgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBFeHBvc2UgbG9naWMgdG8gd2FpdCBmb3IgcHJlcm9sbCBzbyB0aGF0IHN1YmNsYXNzZXMgc3VjaCBhcyBhdWRpb3NpbmsKCSAgY2FuIGFsc28gdXNlIHRoaXMgbWV0aG9kLgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKCkKCjIwMDYtMDktMTUgMDg6NDM6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBjbGVhbnVwcyBpbiBkb2NzIGFuZCBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZG9fcGlwZWxpbmVfc2Vlayk6CgkgIFNtYWxsIGNsZWFudXBzIGluIGRvY3MgYW5kIGNvZGUuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGlmIHN0b3AgPT0gc3RhcnQgYW5kIHN0YXJ0IGlzIGluIHRoZSBzZWdtZW50LCBubyBjbGlwcGluZyBzaG91bGQgYmUKCSAgZG9uZS4gQWxzbyBhZGQgYSB0ZXN0IGZvciB0aGlzLgoKMjAwNi0wOS0xNSAwODozOTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIG1ldGhvZHMgdG8gY3JlYXRlIGFuZCBwYXJzZSBCVUZGRVJJTkcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgbWV0aG9kcyB0byBjcmVhdGUgYW5kIHBhcnNlIEJVRkZFUklORyBtZXNzYWdlcy4KCSAgQWRkZWQgcHJlbGltaW5hcnkgZG9jcyBhYm91dCBidWZmZXJpbmcuCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZwoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZwoKMjAwNi0wOS0xNSAwODozMjo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgVXBkYXRlIGRvY3VtZW50YXRpb24uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfcmVsZWFzZV9yZXF1ZXN0X3BhZCksIChnc3RfZWxlbWVudF9zZXRfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X2luZGV4KSwgKGdzdF9lbGVtZW50X2FkZF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCksIChnc3RfZWxlbWVudF9nZXRfcmFuZG9tX3BhZCksCgkgIChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwgKGdzdF9lbGVtZW50X2dldF9xdWVyeV90eXBlcyksCgkgIChnc3RfZWxlbWVudF9xdWVyeSksIChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwgKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9lbGVtZW50X3Jlc3RvcmVfdGh5c2VsZik6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgUmVuYW1lIGxhc3QgYml0IG9mIHRoZSBuZXctcGFkIC0+IHBhZC1hZGRlZCBzaWduYWwgcmVuYW1lLgoJICBGaXggdGhlIGNhc2Ugd2hlcmUgYW4gZWxlbWVudCBxdWVyeSB3b3VsZCBvbmx5IHdvcmsgaWYgdGhlIHNvdXJjZQoJICBwYWQgd2FzIGxpbmtlZC4KCSAgQXZvaWQgc29tZSB1c2VsZXNzIHR5cGUgY2hlY2tpbmcgaW4gbWVzc2FnZSBoYW5kbGluZy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNi0wOS0xNCAyMDoxMjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgYWRkIGFuIElORk8gbGluZSBmb3Igd2hlbiB3ZSBhY3R1YWxseSB1cGRhdGUgdGhlIGZkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW4gSU5GTyBsaW5lIGZvciB3aGVuIHdlIGFjdHVhbGx5IHVwZGF0ZSB0aGUgZmQKCjIwMDYtMDktMTQgMjA6MTE6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gdHJ1bmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gdHJ1bmsKCj09PSByZWxlYXNlIDAuMTAuMTAgPT09CgoyMDA2LTA5LTE0IDIwOjA4OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMTAKCjIwMDYtMDktMDkgMTY6MDg6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGZpcnN0IHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpcnN0IHByZXJlbGVhc2UKCjIwMDYtMDktMDkgMTY6MDc6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB0cmFuc2xhdGlvbiB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGlvbiB1cGRhdGVzCgoyMDA2LTA5LTA1IDE0OjExOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOiBGaXggdHlwbyBpbiBzYW1wbGUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICBGaXggdHlwbyBpbiBzYW1wbGUgY29kZS4KCjIwMDYtMDktMDUgMDg6MzU6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9uZXQvOiBNYWtlIHN0dWZmIGNvbXBpbGUgb24gd2luZG93cy4gRml4ZXMgIzM0NTI5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChpbmV0X2F0b24pLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGluZXRfYXRvbiksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIE1ha2Ugc3R1ZmYgY29tcGlsZSBvbiB3aW5kb3dzLiBGaXhlcyAjMzQ1Mjk1LgoKMjAwNi0wOS0wMyAxMToxNjo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogUHJpbnQgYmV0dGVyIGRldGFpbHMgd2hlbiBjaGlsZCB3YXMgdGVybWluYXRlZCBieSBzaWduYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBQcmludCBiZXR0ZXIgZGV0YWlscyB3aGVuIGNoaWxkIHdhcyB0ZXJtaW5hdGVkIGJ5IHNpZ25hbC4KCjIwMDYtMDktMDMgMTE6MDY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogUHJpbnQgYSB3YXJuaW5nIHJhdGhlciB0aGFuIGdfYXNzZXJ0KCkgaWYgYSBwbHVnaW4gZmVhdHVyZSBpcyBhIFVSSSBoYW5kbGVyIGJ1dCByZXR1cm5zIG5vIHByb3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSk6CgkgIFByaW50IGEgd2FybmluZyByYXRoZXIgdGhhbiBnX2Fzc2VydCgpIGlmIGEgcGx1Z2luIGZlYXR1cmUKCSAgaXMgYSBVUkkgaGFuZGxlciBidXQgcmV0dXJucyBubyBwcm90b2NvbHMgKCMzNTM5NzYpLgoKMjAwNi0wOS0wMiAxOToxMDo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6IEZpeCB0d28gdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBGaXggdHdvIHR5cG9zLgoKMjAwNi0wOS0wMiAxOTowMzo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgoyMDA2LTA5LTAyIDEzOjQwOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBjbGFyaWZ5IGVycm9yIG1lc3NhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsYXJpZnkgZXJyb3IgbWVzc2FnZQoKMjAwNi0wOS0wMiAxMzozNjo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgoyMDA2LTA5LTAxIDE2OjAzOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZml4IHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBmaXggdHlwbwoKMjAwNi0wOS0wMSAxNTo1NToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCBsb2NraW5nIG9yZGVyLCBoYW5kbGUgTlVMTCBmdW5jdGlvbiB2YWx1ZXMgcHJvcGVybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKToKCSAgRml4IGxvY2tpbmcgb3JkZXIsIGhhbmRsZSBOVUxMIGZ1bmN0aW9uIHZhbHVlcyBwcm9wZXJseS4KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2J1ZmZlcl9hbGxvY191bmNoZWNrZWQpOgoJICBJbml0aWFsaXNlZCB2YXJpYWJsZSBiZWZvcmUgdXNpbmcgaXQgYW5kIGZpeCBkZWJ1ZyBzdGF0ZW1lbnQgdG8KCSAgcHJpbnQgdGhlIGFkZHJlc3Mgb2YgdGhlIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBhZGRyZXNzIG9mIHRoZQoJICB2YXJpYWJsZSBvbiB0aGUgc3RhY2sgaG9sZGluZyB0aGUgYWRkcmVzcyBvZiB0aGUgZnVuY3Rpb24uCgoyMDA2LTA5LTAxIDEwOjMzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IE1vcmUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19ldmVudCksCgkgIChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwgKGdzdF9naG9zdF9wYWRfcGFyZW50X3NldCksCgkgIChnc3RfZ2hvc3RfcGFkX3BhcmVudF91bnNldCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfaW5pdCksIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXcpLCAoZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSksCgkgIChnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgTW9yZSBjbGVhbnVwcy4KCSAgQXZvaWQgbmVlZGxlc3MgdHlwZWNoZWNraW5nIGluIG1hY3Jvcy4KCSAgU2luY2UgdGhlIGludGVybmFsIHBhZCBpcyBhbHdheXMgcHJlc2VudCBhbmQgbmV2ZXIgY2hhbmdlcywgdGhlcmUgaXMKCSAgbm8gbmVlZCB0byBsb2NraW5nIG9yIHJlZiB3aGVuIHJldHJpZXZpbmcgaXQuCgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0LgoJICBIYW5kbGUgbGluayBlcnJvcnMgd2hlbiBzZXR0aW5nIHRoZSB0YXJnZXQuIEZpeGVzICMzNDEwMjkuCgoyMDA2LTA5LTAxIDEwOjI2OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy86IEZpeCBkb2NzIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBGaXggZG9jcyBzb21lIG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBGcmVlIHF1ZXVlZCBidWZmZXIgd2hlbiByZW1vdmluZyBhIHBhZC4KCjIwMDYtMDgtMzEgMTc6MTM6MzQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBFbnN1cmUgdGhhdCB3ZSBzZXQgYSBjYXBzZmlsdGVyIHRvIE5VTEwgaWYgd2UgZmFpbGVkIHRvIGxpbmsgaXQgd2hlbiBkb2luZyBmaWx0ZXJlZCBsaW5raW5nLCB0byBhdm9pZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyksCgkgIChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICBFbnN1cmUgdGhhdCB3ZSBzZXQgYSBjYXBzZmlsdGVyIHRvIE5VTEwgaWYgd2UgZmFpbGVkIHRvIGxpbmsgaXQKCSAgd2hlbiBkb2luZyBmaWx0ZXJlZCBsaW5raW5nLCB0byBhdm9pZCBjcml0aWNhbHMuCgkgIE5vIG5lZWQgdG8gY2hlY2sgZm9yIHVucmVmZmluZyBzcmNwYWQsIHdoaWNoIGlzIGV4cGxpY2x5IE5VTExlZAoJICBhYm92ZSAoYSB0cml2aWFsIGNvZGUgY2xlYW51cCkuCgoyMDA2LTA4LTMxIDE1OjE5OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IFVwZGF0ZSBhc2NpaSBhcnQgaW4gZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgIFVwZGF0ZSBhc2NpaSBhcnQgaW4gZG9jdW1lbnRhdGlvbi4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9faW50ZXJuYWxfbGluayksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLCAoZ3N0X3Byb3h5X3BhZF9pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3NldCksIChnc3RfZ2hvc3RfcGFkX3BhcmVudF91bnNldCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIFNtYWxsIGNsZWFudXBzIGFuZCBsZWFrIGZpeGVzLgoJICBSZW1vdmUgc29tZSBjaGVja3Mgbm93IHRoYXQgdGhlIGludGVybmFsIHBhZCBpcyBuZXZlciBOVUxMLgoJICBGaXggdGhlIGNhc2Ugd2hlcmUgbGlua2luZyBwYWRzIHdpdGhvdXQgYSB0YXJnZXQgd291bGQgY3JlYXRlIG5hc3R5CgkgIGNyaXRpY2Fscy4gRml4ZXMgIzM0MTAyOS4KCSAgRG9uJ3QgYXNzaWduIGEgR3N0UGFkTGlua1JldHVybiB0byBhIGdib29sZWFuIGFuZCBtZXNzIHVwIHRoZSByZXR1cm4KCSAgdmFsdWUgb2YgX3NldF90YXJnZXQoKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBTb21lIG1vcmUgdGVzdHMgZm9yIGNyZWF0aW5nIGFuZCBsaW5raW5nIHVudGFyZ2V0ZWQgZ2hvc3RwYWRzLgoKMjAwNi0wOC0zMSAxMDo1OToxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFJlZmFjdG9yZWQgKl9uZXcoKSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9uZXcpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIFJlZmFjdG9yZWQgKl9uZXcoKSBmdW5jdGlvbnMuCgkgIFRlbXBsYXRlcyBhcmUgbm93IHVzZWQgYXMgYSBnX29iamVjdF9uZXcoKSBwYXJhbWV0ZXIuCgkgIFVzZSB0ZW1wbGF0ZSBpbiBfZG9fZ2V0Y2FwcygpIGlmIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQuCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gY2xlYW51cHMuCgkgIEFkZGVkIHR3byBuZXcgY29uc3RydWN0b3JzOgoJICBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKCkKCSAgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUoKQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RzIGZvciBuZXcgZ2hvc3RwYWQgaW5zdGFuY2lhdGlvbiBmdW5jdGlvbnMuCgkgIEFQSSBhZGRpdGlvbnM6IGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUsCgkgIGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlCgoyMDA2LTA4LTMwIDEyOjI4OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6IElkZWFzIGFib3V0IHFvcyBwcm9maWxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgSWRlYXMgYWJvdXQgcW9zIHByb2ZpbGluZy4KCjIwMDYtMDgtMjkgMTQ6Mzk6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDb2RlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCk6CgkgIENvZGUgY2xlYW51cHMuCgkgIEZpeCBtZW1sZWFrLgoKMjAwNi0wOC0yOSAxMDo0OTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R4bWwuYzogSW1wcm92ZSBhbmQgZGV0eXBvZnkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBJbXByb3ZlIGFuZCBkZXR5cG9meSBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R4bWwuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF94bWxfc3VpdGUpOgoJICBBZGQgYSBiYXNpYyB0ZXN0IHN1aXRlIGZvciBHc3RYTUwuCgoyMDA2LTA4LTI5IDA5OjU2OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQ2xlYXIgdGhlIHBhZCBjYXBzIHdoZW4gdGhlIGVsZW1lbnQgc2h1dCBkb3duIGFsbCBvZiB0aGUgcGFkcyBhbmQgaXMgbm90IHN0cmVhbWluZyBkYXRhIHRoYXQgY291bGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChhY3RpdmF0ZV9wYWRzKSwgKGNsZWFyX2NhcHMpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgQ2xlYXIgdGhlIHBhZCBjYXBzIHdoZW4gdGhlIGVsZW1lbnQgc2h1dCBkb3duIGFsbCBvZiB0aGUgcGFkcyBhbmQKCSAgaXMgbm90IHN0cmVhbWluZyBkYXRhIHRoYXQgY291bGQgbW9kaWZ5IHRoZSBjYXBzLgoJICBGaXhlcyAjMzUyOTU4LgoKMjAwNi0wOC0yOSAwODowMjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEkgZG9uJ3QgZXZlbiBrbm93IHdoaWNoIGFyY2ggdGhhdCBpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSSBkb24ndCBldmVuIGtub3cgd2hpY2ggYXJjaCB0aGF0IGlzCgoyMDA2LTA4LTI4IDIzOjE2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgbW9yZSBsb2dpY2FsIHRvIGxvZyB0aGUgc2VuZGluZyBwYWQsIGFuZCB0aGUgcGFkIGl0IGlzIHNlbmRpbmcgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgbG9naWNhbCB0byBsb2cgdGhlIHNlbmRpbmcgcGFkLCBhbmQgdGhlIHBhZCBpdCBpcyBzZW5kaW5nIHRvCgoyMDA2LTA4LTI4IDE4OjIwOjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFJldmVydCBwcmV2aW91cyBjaGFuZ2U7IEkgbWlzdW5kZXJzdG9vZCBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZTsgSSBtaXN1bmRlcnN0b29kIHNpbmdsZS1zZWdtZW50IG1vZGUuCgoyMDA2LTA4LTI4IDE4OjA4OjA5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFVuc2V0IERJU0NPTlQgb24gYnVmZmVycyB3aGVuIHVzaW5nIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBVbnNldCBESVNDT05UIG9uIGJ1ZmZlcnMgd2hlbiB1c2luZyBzaW5nbGUtc2VnbWVudCBtb2RlLgoKMjAwNi0wOC0yOCAxNjozOToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLio6IEZpeCBkb2NzIGFuZCBpbmRlbnRhdGlvbiBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX21lcmdlX3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgRml4IGRvY3MgYW5kIGluZGVudGF0aW9uIGFnYWluLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVhayBpbiB0ZXN0cyBhbmQgYWRkIHNvbWUgbW9yZSB0ZXN0cy4KCjIwMDYtMDgtMjggMTU6NTc6MzkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEluZm9ybSBHc3RTZWdtZW50IG9mIHRoZSBsYXN0IHN0b3AgcG9zaXRpb24gaW4gb3JkZXIgZm9yIHRoZSBjdXJyZW50IHNlZ21lbnQgdG8gaGF2ZSBhIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIEluZm9ybSBHc3RTZWdtZW50IG9mIHRoZSBsYXN0IHN0b3AgcG9zaXRpb24gaW4gb3JkZXIgZm9yIHRoZSBjdXJyZW50CgkgIHNlZ21lbnQgdG8gaGF2ZSBhIHByb3BlciBkdXJhdGlvbiBpZiBpdCBkb2Vzbid0IGhhdmUgYSBzcGVjaWZpYyBzdG9wCgkgIHBvc2l0aW9uIGZyb20gd2hpY2ggYSBkdXJhdGlvbiBjb3VsZCBiZSBjYWxjdWxhdGVkLgoJICBUaGlzIGJ1ZyB3YXMgbm90aWNlYWJsZSB3aGVuIGEgbm9uLWZsdXNoaW5nLCBub24tdXBkYXRlIG5ldyBzZWdtZW50IHdhcwoJICBmb2xsb3dlZCBieSBhbm90aGVyIHNlZ21lbnQgKGFsbCBidWZmZXJzIGZyb20gdGhlIG5ldyBzZWdtZW50IHdlcmUgYmVpbmcKCSAgZHJvcHBlZCkuCgoyMDA2LTA4LTI4IDE1OjQ4OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNtYWxsIGNvbW1lbnQgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBTbWFsbCBjb21tZW50IHVwZGF0ZS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgRHJvcC1wcm9iYWJpbGl0eSBpcyBicm9rZW4sIG1lbnRpb24gdGhpcyBpbiB0aGUgY29kZSB3aXRoIGEKCSAgRklYTUUgYW5kIGFsc28gaW4gdGhlIHByb3BlcnR5IGRlc2NyaXB0aW9uLgoJICBNYWtlIHNpbGVudCBhbHNvIGJlIHNpbGVudCBhYm91dCB0aGUgZHJvcCBtZXNzYWdlcy4KCjIwMDYtMDgtMjggMTE6MDY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC13aW4zMi54bWw6IFJlbW92ZSBtZW50aW9uIG9mIHBvcHQsIHdlIGRvbid0IGRlcGVuZCBvbiB0aGF0IGFueSBsb25nZXIgKCMzNTMxMzYpLiBBZGQgc29tZSBjb21tZW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtd2luMzIueG1sOgoJICBSZW1vdmUgbWVudGlvbiBvZiBwb3B0LCB3ZSBkb24ndCBkZXBlbmQgb24gdGhhdCBhbnkKCSAgbG9uZ2VyICgjMzUzMTM2KS4gQWRkIHNvbWUgY29tbWVudHMgcG9pbnRpbmcgb3V0IHRoYXQKCSAgdGhpcyBzZWN0aW9uIGlzIHNsaWdodGx5IG91dGRhdGVkLgoKMjAwNi0wOC0yOCAwODo0NDoyOSArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBJbml0aWFsaXplIHZhcmlhYmxlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IHNlZ21lbnQgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBhdCBnbXggZG90IGRlPgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSW5pdGlhbGl6ZSB2YXJpYWJsZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBzZWdtZW50IHF1ZXJ5LgoJICBGaXhlcyAjMzUzMTIxLgoKMjAwNi0wOC0yOCAwODozNTozMSArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBDaGVjayBmb3IgTlVMTCBiZWZvcmUgX3JlZmZpbmcgdGhlIGJ1cy4gRml4ZXMgIzM1MzEyMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteCBkb3QgZGU+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9idXMpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIGZvciBOVUxMIGJlZm9yZSBfcmVmZmluZyB0aGUgYnVzLiBGaXhlcyAjMzUzMTIyLgoKMjAwNi0wOC0yNSAxNjo0NjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBEb2NzIHVwZGF0ZTogZml4IHdyb25nIGNhbGxiYWNrIHJldHVybiB2YWx1ZSBleHBsYW5hdGlvbjsgYWRkIHNvbWUgbGluZXMgYWJvdXQgdGhlIGltcGxpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgRG9jcyB1cGRhdGU6IGZpeCB3cm9uZyBjYWxsYmFjayByZXR1cm4gdmFsdWUgZXhwbGFuYXRpb247IGFkZAoJICBzb21lIGxpbmVzIGFib3V0IHRoZSBpbXBsaWNpdCByZWxhdGlvbnNoaXAgYmV0d2VlbiBtYWluIGxvb3AKCSAgYW5kIG1haW4gY29udGV4dDsgcmVtb3ZlIGR1cGxpY2F0ZSBtYWluIGxvb3AgdmFyaWFibGUgZGVjbGFyYXRpb24uCgoyMDA2LTA4LTI0IDEyOjMwOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogRG9uJ3QgbGVhayBjYXBzIGluIHVuaXQgdGVzdDsgYWRkIGEgZmV3IG1vcmUgc2ltcGxlIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgbGVhayBjYXBzIGluIHVuaXQgdGVzdDsgYWRkIGEgZmV3IG1vcmUgc2ltcGxlCgkgIGNoZWNrcy4KCjIwMDYtMDgtMjQgMTA6NDA6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGltcGxlbWVudCBjYXBzIG1lcmdpbmcgKGZpeGVzICMzNTI1ODApCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXRfZmllbGQpLAoJICAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldCksIChnc3RfY2Fwc19tZXJnZSksCgkgIChnc3RfY2Fwc19tZXJnZV9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIGltcGxlbWVudCBjYXBzIG1lcmdpbmcgKGZpeGVzICMzNTI1ODApCgoyMDA2LTA4LTIzIDE4OjUzOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy86IGFkZCBkZWJ1Zy1sb2cgcGxvdHRpbmcgZGV2ZWxvcGVyIHRvb2wgKCMzNDA2NzQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBhZGQgZGVidWctbG9nIHBsb3R0aW5nIGRldmVsb3BlciB0b29sICgjMzQwNjc0KQoKMjAwNi0wOC0yMyAxNjo1MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgZm9yIHRhc2sgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgZm9yIHRhc2sgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19mdW5jKSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKSwgKGdzdF90YXNrX2pvaW4pOgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgdGFzayBmdW5jdGlvbiBzdGFydGVkIGFuZCBmaW5pc2hlZCBhZnRlciBhCgkgIGpvaW4oKS4KCSAgRG9uJ3QgdHJ5IHRvIHB1c2ggdGhlIHRhc2sgZnVuY3Rpb24gb24gdGhlIHRocmVhZHBvb2wgbXVsdGlwbGUKCSAgdGltZXMuCgkgIEltcHJvdmUgdGhlIGdfd2FybmluZyBtZXNzYWdlIHdpdGggc29tZSB1c2VmdWwgc3VnZ2VzdGlvbnMKCSAgYWJvdXQgaG93IHRvIGZpeCB0aGUgcHJvYmxlbS4KCjIwMDYtMDgtMjMgMTA6NTk6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogSGFuZGxlIFJFU1lOQyBjb3JyZWN0bHkgaW4gX3Byb3h5X2dldGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKToKCSAgSGFuZGxlIFJFU1lOQyBjb3JyZWN0bHkgaW4gX3Byb3h5X2dldGNhcHMuCgoyMDA2LTA4LTIzIDA5OjQ3OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgd29yZCByZWZjb3VudGluZyBtb3JlIHByZWNpc2VseSBmb3IgZ3N0X3ZhbHVlXypfYnVmZmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JkIHJlZmNvdW50aW5nIG1vcmUgcHJlY2lzZWx5IGZvciBnc3RfdmFsdWVfKl9idWZmZXIKCjIwMDYtMDgtMjEgMTU6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0eG1sLmM6IENoYWluIHVwIHRvIHBhcmVudCBjbGFzcyBpbiBkaXNwb3NlIGZ1bmN0aW9uIGFuZCBhbHNvIHVucmVmIHRoZSBlbGVtZW50cyBpbiB0aGUgdG9wbGV2ZWxfZWxlbWVudHMgR0xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfZGlzcG9zZSksIChnc3RfeG1sX3BhcnNlX2ZpbGUpLAoJICAoZ3N0X3htbF9wYXJzZV9tZW1vcnkpLCAoZ3N0X3htbF9nZXRfZWxlbWVudCk6CgkgIENoYWluIHVwIHRvIHBhcmVudCBjbGFzcyBpbiBkaXNwb3NlIGZ1bmN0aW9uIGFuZCBhbHNvCgkgIHVucmVmIHRoZSBlbGVtZW50cyBpbiB0aGUgdG9wbGV2ZWxfZWxlbWVudHMgR0xpc3QuCgkgIERvbid0IGxlYWsgWG1sRG9jUHRyIGluIF9wYXJzZV9maWxlKCkgYW5kIF9wYXJzZV9tZW1vcnkoKS4KCSAgQWx3YXlzIHJldHVybiBhIHJlZmVyZW5jZSBpbiBnc3RfeG1sX2dldF9lbGVtZW50KCkgcmF0aGVyCgkgIHRoYW4gb25seSBzb21ldGltZXMuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoeG1sbGF1bmNoX3BhcnNlX2NtZGxpbmUpOgoJICBEb24ndCBsZWFrIEdzdFhtbCBvYmplY3QuCgoyMDA2LTA4LTIxIDE0OjU0OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBUEk6IEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCB1c2UgaXQgaW4gYmFzZXRyYW5zZm9ybSwgZml4ZXMgIzM0NTQ0NCBpbiBhIGJldHRlciB3YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0cnVjdHVyZV9pc19lcXVhbF9mb3JlYWNoKSwKCSAgKGdzdF9jYXBzX21lcmdlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgQVBJOiBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgdXNlIGl0IGluIGJhc2V0cmFuc2Zvcm0sIGZpeGVzICMzNDU0NDQKCSAgaW4gYSBiZXR0ZXIgd2F5CgoyMDA2LTA4LTIxIDE0OjAzOjMzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHhtbC5jOiBJbXBsZW1lbnQgR09iamVjdDo6ZGlzcG9zZSB2aXJ0dWFsIG1ldGhvZCBpbiBHc3RYTUwgc28gd2UgY2FuIGZyZWUgdGhlIHRvcF9lbGVtZW50cyBHTGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9jbGFzc19pbml0KSwgKGdzdF94bWxfZGlzcG9zZSk6CgkgIEltcGxlbWVudCBHT2JqZWN0OjpkaXNwb3NlIHZpcnR1YWwgbWV0aG9kIGluIEdzdFhNTCBzbyB3ZSBjYW4gZnJlZSB0aGUKCSAgdG9wX2VsZW1lbnRzIEdMaXN0LgoKMjAwNi0wOC0yMSAwOTozMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQ29weSBkdXJhdGlvbi9vZmZzZXRfZW5kL2NhcHMgd2hlbiBjcmVhdGluZyBhIHN1YmJ1ZmZlciBvZiB0aGUgY29tcGxldGUgcGFyZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKToKCSAgQ29weSBkdXJhdGlvbi9vZmZzZXRfZW5kL2NhcHMgd2hlbiBjcmVhdGluZyBhIHN1YmJ1ZmZlciBvZiB0aGUKCSAgY29tcGxldGUgcGFyZW50LgoJICBNYWtlIHRoZSBzdWJidWZmZXIgcmVhZC1vbmx5IHdoZW4gd2UgbWFrZSB0aGUgbWV0YWRhdGEgd3JpdGFibGUgZm9yCgkgIG5vdy4gRml4ZXMgIzM1MTc2OC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZGVkIGNoZWNrIGZvciBtZXRhZGF0YSBjb3B5IHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycy4KCjIwMDYtMDgtMjEgMDk6MjA6NDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogT25seSBjYWxsIGRvd25zdHJlYW0gYnVmZmVyX2FsbG9jIGlmIHRyYW5zZm9ybSBlbGVtZW50IGlzIHBhc3N0aHJvdWdoIG9yIGFsd2F5c19pbl8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgT25seSBjYWxsIGRvd25zdHJlYW0gYnVmZmVyX2FsbG9jIGlmIHRyYW5zZm9ybSBlbGVtZW50IGlzIHBhc3N0aHJvdWdoCgkgIG9yIGFsd2F5c19pbl9wbGFjZS4gQ2xvc2VzICMzNTA0NDkuCgoyMDA2LTA4LTIwIDE5OjM2OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBjb21tZW50cyB0byBwcmV2aW91cyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGNvbW1lbnRzIHRvIHByZXZpb3VzIGNoYW5nZXMKCjIwMDYtMDgtMjAgMTk6MzA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFNpbXBsaWZ5IGNhcHMgdG8gZ2V0IHJpZCBvZiBkdXBsaWNhdGVzLCBmaXhlcyAjMzQ1NDQ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgU2ltcGxpZnkgY2FwcyB0byBnZXQgcmlkIG9mIGR1cGxpY2F0ZXMsIGZpeGVzICMzNDU0NDQKCjIwMDYtMDgtMjAgMTU6NTU6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBVc2UgdGhlc2Ugb3B0aW1pemF0aW9ucyBvbmx5IGludGVybmFseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSB0aGVzZSBvcHRpbWl6YXRpb25zIG9ubHkgaW50ZXJuYWx5LgoKMjAwNi0wOC0yMCAxNDozMDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFNhdmVzIHRoZSBleHBlbnNpdmUgbG9va3VwIG9mIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGluIG1hbnkgY2FzZXMgKCMzNDU0NDQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdCksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZ2V0X2NvbXBhcmVfZnVuYyksIChnc3RfdmFsdWVfY29tcGFyZSksCgkgIChnc3RfdmFsdWVfY29tcGFyZV93aXRoX2Z1bmMpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBTYXZlcyB0aGUgZXhwZW5zaXZlIGxvb2t1cCBvZiB0aGUgY29tcGFyZSBmdW5jdGlvbiBpbiBtYW55IGNhc2VzCgkgICgjMzQ1NDQ0KQoKMjAwNi0wOC0xOCAxMzo0MTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IERpc2FibGUgdGVzdCB0aGF0IHJlcXVpcmUgZ3N0ZGVidWcgaWYgaXQgd2Fzbid0IGJ1aWx0IGluIGNvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChnc3RfaW5mb19zdWl0ZSk6CgkgIERpc2FibGUgdGVzdCB0aGF0IHJlcXVpcmUgZ3N0ZGVidWcgaWYgaXQgd2Fzbid0IGJ1aWx0IGluIGNvcmUuCgoyMDA2LTA4LTE4IDEwOjUyOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OiB1cGRhdGUgaWRlYXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDoKCSAgdXBkYXRlIGlkZWFzCgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIHJlb3JkZXIgZmllbGRzLCBzYXZlIHNvbWUgY29sdW1ucywgYWRkIG9wdGluYWwgY29sb3IgY29kZXMgZm9yIGxvZy0KCSAgbGV2ZWxzCgoyMDA2LTA4LTE4IDA4OjA3OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OiBhZGQgaWRlYXMgYWJvdXQgbWFraW5nIHRoZSBsb2dzIGFiaXQgbW9yZSB1c2VmdWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDoKCSAgYWRkIGlkZWFzIGFib3V0IG1ha2luZyB0aGUgbG9ncyBhYml0IG1vcmUgdXNlZnVsCgoyMDA2LTA4LTE3IDE4OjExOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBVcGRhdGUgZm9yIDAuMTAgQVBJICgjMzQwNjI3KS4gQWRkIG15c2VsZiB0byBhdXRob3JzIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkgICogZG9jcy9wd2cvdGl0bGVwYWdlLnhtbDoKCSAgVXBkYXRlIGZvciAwLjEwIEFQSSAoIzM0MDYyNykuIEFkZCBteXNlbGYKCSAgdG8gYXV0aG9ycyBsaXN0LgoKMjAwNi0wOC0xNyAxMDo0NjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2UgZ3N0Y2hlY2sgc3R1ZmYgc2hvdyB1cCBpbiBkb2NzIChzdGlsbCBuZWVkcyB0byBiZSBkb2N1bWVudGVkIHByb3Blcmx5IHRob3VnaCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJICBNYWtlIGdzdGNoZWNrIHN0dWZmIHNob3cgdXAgaW4gZG9jcyAoc3RpbGwgbmVlZHMgdG8KCSAgYmUgZG9jdW1lbnRlZCBwcm9wZXJseSB0aG91Z2gpLgoKMjAwNi0wOC0xNiAxMTo0Nzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBZGQgaW50ZXJuYWwgaGVscGVycyBmb3IgcHJlLXJlZ2lzdGVyaW5nIHF1YXJrcyBmcm9tIHN0YXRpYyBzdHJpbmdzIGFuZCB1c2luZyB0aGUgcXVhcmsgdmFsdWVzIGRpcmVjdGx5IGluc3RlYWQgb2YgbG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9uZXdfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KSwKCSAgKGdzdF9xdWVyeV9zZXRfY29udmVydCksIChnc3RfcXVlcnlfcGFyc2VfY29udmVydCksCgkgIChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KSwgKGdzdF9xdWVyeV9uZXdfc2Vla2luZyksCgkgIChnc3RfcXVlcnlfc2V0X3NlZWtpbmcpLCAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcpOgoJICBBZGQgaW50ZXJuYWwgaGVscGVycyBmb3IgcHJlLXJlZ2lzdGVyaW5nIHF1YXJrcyBmcm9tIHN0YXRpYyBzdHJpbmdzCgkgIGFuZCB1c2luZyB0aGUgcXVhcmsgdmFsdWVzIGRpcmVjdGx5IGluc3RlYWQgb2YgbG9va2luZyB0aGVtIHVwIHdoZW4KCSAgY3JlYXRpbmcgYW5kIHBhcnNpbmcgcXVlcmllcy4gQ2FuIGJlIHVzZWQgZm9yIGV2ZW50IGNvbnN0cnVjdGlvbiB0b28uCgkgIENsb3NlcyAjMzUwNDMyLgoKMjAwNi0wOC0xNiAwODo1NDo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGJvZ3VzIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRml4IGJvZ3VzIGRvY3MuCgoyMDA2LTA4LTE1IDE4OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBtZW1sZWFrICgjMzUxNTAyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcpOgoJICBGaXggbWVtbGVhayAoIzM1MTUwMikuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBtb3N0IG9mIGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZygpCgkgIChub3QgdGhhdCBvbmUgd291bGQgd2FudCB0byBlbmNvdXJhZ2UgdXNlIG9mIHRoaXMgZnVuY3Rpb24pLgoKMjAwNi0wOC0xNSAxODoyOToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IFVzZSBjb25zdCBnY2hhciAqIHZhcmlhYmxlcyBpbiBmYWlsX3VubGVzc19lcXVhbHNfc3RyaW5nIG1hY3JvIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBVc2UgY29uc3QgZ2NoYXIgKiB2YXJpYWJsZXMgaW4gZmFpbF91bmxlc3NfZXF1YWxzX3N0cmluZwoJICBtYWNybyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyAoYW5kIGRvbid0IHVzZSB0YWJzIGZvcgoJICBpbmRlbnRpbmcpLgoKMjAwNi0wOC0xNSAxMDowODozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTW9yZSBzcGFjZSBvbiB0aGUgbGVmdCBmb3IgdGhlIHRhZyBuYW1lcywgdG8gY2F0ZXIgZm9yIHRoZSAnZXh0ZW5kZWQgY29tbWVudCcgdGFnIChub3QgdG91Y2hpbmcgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChwcmludF90YWcpOgoJICBNb3JlIHNwYWNlIG9uIHRoZSBsZWZ0IGZvciB0aGUgdGFnIG5hbWVzLCB0byBjYXRlcgoJICBmb3IgdGhlICdleHRlbmRlZCBjb21tZW50JyB0YWcgKG5vdCB0b3VjaGluZyB0aGUKCSAgc3RyaW5nIGZvciB0aGUgZmlyc3QgbGluZSBzaW5jZSBpdCdzIHRyYW5zbGF0ZWQpLgoKMjAwNi0wOC0xNSAwOTo0NDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGRvbid0IGZvcmdldCB0byBtZW50aW9uIHRoZSBvdGhlciBjaGFuZ2UgaW4gdGhlIENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGRvbid0IGZvcmdldCB0byBtZW50aW9uIHRoZSBvdGhlciBjaGFuZ2UgaW4gdGhlIENoYW5nZUxvZwoKMjAwNi0wOC0xNSAwOTozMzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEZpeCBBU1NFUlRfQ1JJVElDQUwgYW5kIEFTU0VSVF9XQVJOSU5HIG1hY3JvcyB0byBhY3R1YWxseSBwcmludCBzb21ldGhpbmcgd2hlbiB0aGV5IGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCBBU1NFUlRfQ1JJVElDQUwgYW5kIEFTU0VSVF9XQVJOSU5HIG1hY3JvcyB0byBhY3R1YWxseQoJICBwcmludCBzb21ldGhpbmcgd2hlbiB0aGV5IGZhaWwuCgoyMDA2LTA4LTE0IDE5OjA0OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19FWFRFTkRFRF9DT01NRU5UICgjMzUwOTM1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19FWFRFTkRFRF9DT01NRU5UICgjMzUwOTM1KS4KCjIwMDYtMDgtMTQgMTc6Mjk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBNYWtlIEdTVF9QVFJfRk9STUFUIHByaW50IG1lc3NhZ2VzIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfcHJpbnRfb2JqZWN0KToKCSAgTWFrZSBHU1RfUFRSX0ZPUk1BVCBwcmludCBtZXNzYWdlcyBhcyB3ZWxsLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChwcmludGZfZXh0ZW5zaW9uX2xvZ19mdW5jKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9pbmZvX3N1aXRlKToKCSAgTW9yZSB0ZXN0cy4KCjIwMDYtMDgtMTQgMTU6MzM6MTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogSWYgdGhlIEdzdEVsZW1lbnRDbGFzcyBkb2Vzbid0IGhhdmUgYSBHc3RFbGVtZW50RGV0YWlscyB3aXRoIGFsbCBmaWVsZHMgdGhlbiBlcnJvciBvdXQgbmljZWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3Rlcik6CgkgIElmIHRoZSBHc3RFbGVtZW50Q2xhc3MgZG9lc24ndCBoYXZlIGEgR3N0RWxlbWVudERldGFpbHMgd2l0aCBhbGwgZmllbGRzCgkgIGZpbGxlZCB1cCBjb3JyZWN0bHkgKGxvbmduYW1lLCBkZXNjcmlwdGlvbiBBTkQgYXV0aG9yKSwgdGhlbiBlcnJvciBvdXQKCSAgbmljZWx5IGluc3RlYWQgb2YgY3Jhc2hpbmcuCgoyMDA2LTA4LTE0IDEyOjM1OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBGaXggdHlwbyBpbiBkb2NzIGFuZCByZS13cmFwIGRvY3MgYmx1cmIgdG8gbm90IGV4Y2VlZCA4MCBjaGFycy9saW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MgYW5kIHJlLXdyYXAgZG9jcyBibHVyYiB0byBub3QgZXhjZWVkIDgwIGNoYXJzL2xpbmUuCgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEV4cGFuZCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFycmF5cyBhbmQgbGlzdHMgYXMgd2UgdXNlIHRoZW0uCgoyMDA2LTA4LTE0IDA3OjQ0OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IElmIHRoZSBwYXJlbnQgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGZhaWxlZCwgZG9uJ3QgYXNzdW1lIHdlIGNhbiBzYWZlbHkgc3RvcCB0aGUgc291cmNlLCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIElmIHRoZSBwYXJlbnQgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGZhaWxlZCwgZG9uJ3QgYXNzdW1lIHdlIGNhbiBzYWZlbHkKCSAgc3RvcCB0aGUgc291cmNlLCB0aGlzIHdpbGwgYmUgZG9uZSB3aGVuIHRoZSBwYWRzIGFyZSBkZWFjdGl2YXRlZC4KCjIwMDYtMDgtMTQgMDc6MzU6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19qb2luKToKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgIFdoZW4gcGFkIChkZSlhY3RpdmF0aW9uIGZhaWxlZCBmb3Igc29tZSByZWFzb24sIHJlc3RvcmUgdGhlIG9sZAoJICBhY3RpdmF0aW9uIG1vZGUgYW5kIHNldCB0aGUgcGFkIHRvIGZsdXNoaW5nIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlCgkgIHBhZCBpcyBkZWFjdGl2YXRlZC4KCSAgSWYgdGhlIF90YXNrX2pvaW4oKSBmYWlsZWQsIHJlaW5zdGFsbCB0aGUgdGFzayBvbiB0aGUgcGFkIHNvIHRoYXQgaXQgY2FuCgkgIGJlIHN0b3BwZWQgbGF0ZXIgYW5kIHJldHVybiBhbiBlcnJvci4KCjIwMDYtMDgtMTEgMTU6MjY6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMgb25seSBmb3IgdXNlcnMgb2YgQVBJIHRoYXQgZG9uJ3Qgd2FudCB0byBzZWUgZGVwcmVjYXRlZCBmdW5jdGlvbnMgaW4gdGhlIGhlYWRlcnM7IHBlb3BsZSB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wOC0xMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldGl6ZXJfbmV3KToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKTogR1NUX0RJU0FCTEVfREVQUkVDQVRFRAoJICBpcyBvbmx5IGZvciB1c2VycyBvZiBBUEkgdGhhdCBkb24ndCB3YW50IHRvIHNlZSBkZXByZWNhdGVkCgkgIGZ1bmN0aW9ucyBpbiB0aGUgaGVhZGVyczsgcGVvcGxlIHRoYXQgd2FudCB0byBjb21waWxlIG91dAoJICBkZXByZWNhdGVkIGNvZGUgc2hvdWxkIHBhc3MgLURHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgaW50byB0aGUKCSAgQ0ZMQUdTLiBGaXhlcyB0aGUgYnVpbGQgb2YgbXVsdGlmZHNpbmssIG9yIHdpbGwgc29vbi4uCgoyMDA2LTA4LTExIDE1OjI0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdzdENsb2NrQ2xhc3Mgdm1ldGhvZCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgR3N0Q2xvY2tDbGFzcyB2bWV0aG9kIGRvY3MuCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgTWFyayAjZW5kaWYgd2l0aCBjb21tZW50IGZvciBhc3NvY2lhdGVkICNpZgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3dhaXQpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBBZGQgdm1ldGhvZCB3YWl0X2ppdHRlciB0byBhdm9pZCBhbiB1bm5lZWRlZCBfZ2V0X3RpbWUoKSBmb3IKCSAgbW9zdCBjbG9jayBpbXBsZW1lbnRhdGlvbnMuCgkgIERvY3VtZW50IHZtZXRob2RzLgoJICBGbGVzaCBvdXQgZG9jcyBhYm91dCByZXNvbHV0aW9uIG1ldGhvZHMuCgkgIEFQSTogR3N0Q2xvY2tDbGFzczo6d2FpdF9qaXR0ZXIKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIpOgoJICBVc2UgYmFzZSBjbGFzcyB3YWl0X2ppdHRlciB2YXJpYW50IGZvciBpbXByb3ZlZCBwZXJmb3JtYW5jZQoJICBkdWUgdG8gbGVzcyBjbG9jayBwb2xsaW5nLgoKMjAwNi0wOC0xMSAxNTowNzo1OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogU2V0IGdzdCBhcyBiZWluZyBpbml0aWFsaXplZCBiZWZvcmUgc2Nhbm5pbmcvdXBkYXRpbmcgdGhlIHJlZ2lzdHJ5LCBzaW5jZSB0aGVyZSBtaWdodCBiZSBzb21lIHBsdWdpbnMgdGhhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9jaGVjayksIChpbml0X3Bvc3QpOgoJICBTZXQgZ3N0IGFzIGJlaW5nIGluaXRpYWxpemVkIGJlZm9yZSBzY2FubmluZy91cGRhdGluZyB0aGUgcmVnaXN0cnksCgkgIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcGx1Z2lucyB0aGF0IGNhbGwgZ3N0X2luaXQoKSBhbmQgd2UgZG9uJ3QKCSAgd2FudCB0byBsb29wIGJhY2sgaW4uCgkgIENsb3NlcyAjMzUwODc5CgoyMDA2LTA4LTExIDEzOjEzOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIHRoYXQgd2UgZml4ZWQgYnVnICMzNDk5NDMgd2l0aCB0aGUgbGFzdCBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIHRoYXQgd2UgZml4ZWQgYnVnICMzNDk5NDMgd2l0aCB0aGUgbGFzdCBjb21taXQuCgoyMDA2LTA4LTExIDEzOjA1OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBCcmluZyBkb2NzIGluIGxpbmUgd2l0aCB0aGUgY29kZS4gTW9zdGx5IHRoZSBzaWduIG9mIHRoZSBqaXR0ZXIgd2FzIHdyb25nIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEJyaW5nIGRvY3MgaW4gbGluZSB3aXRoIHRoZSBjb2RlLiBNb3N0bHkgdGhlIHNpZ24gb2YgdGhlIGppdHRlciB3YXMKCSAgd3JvbmcgaW4gdGhlIGRvY3MuCgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgIEZpeCB0aGUgZG9jcyBmb3IgdGhlIGppdHRlci4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwgKGdzdF9ldmVudF9uZXdfdGFnKSwKCSAgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUpLCAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksCgkgIChnc3RfZXZlbnRfbmV3X3NlZWspLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLAoJICAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgTWFrZSBzdXJlIHRoZSBHc3RTdHJ1Y3R1cmUgaGFzIG5vIHBhcmVudCB3aGVuIGNyZWF0aW5nIGN1c3RvbQoJICBldmVudHMuCgkgIEFkZCBzb21lIG1vcmUgYXJndW1lbnQgY2hlY2tpbmcgc28gdGhhdCB3ZSBhdm9pZCAwLjAgcmF0ZXMuCgkgIEZsZXNoIG91dCB0aGUgZG9jcyBmb3IgdGhlIFFvUyBldmVudCBzb21lIG1vcmUuCgoyMDA2LTA4LTExIDEwOjIxOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdG8gbWVudGlvbiBmaXhlZCBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdG8gbWVudGlvbiBmaXhlZCBidWcuCgoyMDA2LTA4LTExIDEwOjE5OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChnc3RfaW5pdF9jaGVjayksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKHBhcnNlX29uZV9vcHRpb24pLCAocGFyc2VfZ29wdGlvbl9hcmcpLCAoZ3N0X2RlaW5pdCksCgkgIChnc3RfcmVnaXN0cnlfZm9ya19pc19lbmFibGVkKSwgKGdzdF9yZWdpc3RyeV9mb3JrX3NldF9lbmFibGVkKToKCSAgKiBnc3QvZ3N0Lmg6CgkgIERvYyB1cGRhdGVzLgoJICBBZGRlZCBBUEkgYW5kIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gZGlzYWJsZSByZWdpc3RyeSBmb3JraW5nIGluCgkgIGFkZGl0aW9uIHRvIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgQ29uc3RpZnkgc29tZSBzdGF0aWMgYXJyYXlzLgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWcuCgkgIERvbid0IGRlaW5pdCB0d2ljZS4KCSAgQVBJOiBnc3RfcmVnaXN0cnlfZm9ya19pc19lbmFibGVkKCkKCSAgQVBJOiBnc3RfcmVnaXN0cnlfZm9ya19zZXRfZW5hYmxlZCgpCgkgIEFQSTogLS1nc3QtZGlzYWJsZS1yZWdpc3RyeS1mb3JrIGNvbW1hbmQgbGluZSBvcHRpb24KCjIwMDYtMDgtMTEgMDk6NTk6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IEZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0KToKCSAgRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4KCjIwMDYtMDgtMTAgMjA6MDU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOiBmaXggQUJJIHNpemUtY29ycmVjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgZml4IEFCSSBzaXplLWNvcnJlY3Rpb24KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgbWFrZSB0ZXN0cyB0aGF0IHVzZSBkZXByZWNhdGVkIEFQSSBjb25kaXRpb25hbAoKMjAwNi0wOC0xMCAxOTo0NjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X29iamVjdF97cyxnfWV0X2NvbnRyb2xfcmF0ZSgpLCBhZGQgcHJpdmF0ZSBkYXRhIHNlY3Rpb24sIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChfZ3N0X2NvbnRyb2xsZXJfZ2V0X3Byb3BlcnR5KSwgKF9nc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHkpLAoJICAoX2dzdF9jb250cm9sbGVyX2luaXQpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3JhdGUpLAoJICAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9yYXRlKToKCSAgQVBJOiBhZGQgZ3N0X29iamVjdF97cyxnfWV0X2NvbnRyb2xfcmF0ZSgpLCBhZGQgcHJpdmF0ZSBkYXRhIHNlY3Rpb24sCgkgIGZpeCBkb2NzCgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldGl6ZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIGFkZCBkZXByZWNhdGlvbiBndWFyZHMgdG8gbWFrZSBndGstZG9jIGhhcHB5IGFuZCBhbGxvdyBkaXNhYmxpbmcgY3J1ZnQKCjIwMDYtMDgtMDkgMTU6MjY6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IExldCdzIGVuYWJsZSB0aGUgbmV3IHVuaXQgdGVzdCBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgTGV0J3MgZW5hYmxlIHRoZSBuZXcgdW5pdCB0ZXN0IGFzIHdlbGwuCgoyMDA2LTA4LTA5IDE1OjEzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1NFR01FTlRfRk9STUFULCB3aGljaCBpcyBhIHByaW50ZiBleHRlbnNpb24gd2UgcmVnaXN0ZXIgdGhhdCBsZXRzIHVzIGVhc2lseSBkdW1wIEdzdFNlZ21lbnRzIGludG8gZGVidWcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KSwgKGdzdF9kZWJ1Z19wcmludF9zZWdtZW50KSwKCSAgKF9nc3RfaW5mb19wcmludGZfZXh0ZW5zaW9uX3B0ciksCgkgIChfZ3N0X2luZm9fcHJpbnRmX2V4dGVuc2lvbl9zZWdtZW50KToKCSAgQVBJOiBhZGQgR1NUX1NFR01FTlRfRk9STUFULCB3aGljaCBpcyBhIHByaW50ZiBleHRlbnNpb24gd2UKCSAgcmVnaXN0ZXIgdGhhdCBsZXRzIHVzIGVhc2lseSBkdW1wIEdzdFNlZ21lbnRzIGludG8gZGVidWcKCSAgbG9ncyAoIzM1MDQxOSkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKHNlZ21lbnRfcHJpbnRmX2V4dGVuc2lvbl9sb2dfZnVuYyksCgkgIChpbmZvX3NlZ21lbnRfZm9ybWF0X3ByaW50Zl9leHRlbnNpb24pLCAoZ3N0X2luZm9fc3VpdGUpOgoJICBBZGQgc2ltcGxlIHVuaXQgdGVzdCB0aGF0IGxvZ3MgYSBidW5jaCBvZiBkaWZmZXJlbnQgc2VnbWVudHMgKG5vdAoJICB2YWxncmluZGVkIGF0IHRoZSBtb21lbnQgYmVjYXVzZSBvZiBsZWFrcyBpbiBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbikuCgoyMDA2LTA4LTA5IDExOjAxOjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEV2ZW4gaWYgd2UgY2FuJ3QgZmlndXJlIG91dCB0aGUgcHJvcGVyIGZvcm1hdCB0byByZXF1ZXN0IGRvd25zdHJlYW0sIGNhbGwgYnVmZmVyX2FsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEV2ZW4gaWYgd2UgY2FuJ3QgZmlndXJlIG91dCB0aGUgcHJvcGVyIGZvcm1hdCB0byByZXF1ZXN0IGRvd25zdHJlYW0sCgkgIGNhbGwgYnVmZmVyX2FsbG9jKCkgZG93bnN0cmVhbSB3aXRoIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIHdpdGhvdXQgc2V0dGluZwoJICB0aGUgY2FwcyBvbiB0aGUgc3JjcGFkLiBUaGlzIHdpbGwgZm9yY2UgbmVnb3RpYXRpb24gaW4gdGhlIGNoYWluCgkgIGZ1bmN0aW9uLgoJICBDbG9zZXMgIzM1MDQ0OQoKMjAwNi0wOC0wOCAxNjoyNDo1OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBVbmxpbmtpbmcgZnJvbSBhIHBhZCB3aXRob3V0IGEgdGFyZ2V0IGlzIG5vdyBhIHBlcmZlY3RseSB2YWxpZCBjYXNlIHdoaWNoIHNob3VsZCBOT1QgcmFpc2UgYW4gYXNzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKToKCSAgVW5saW5raW5nIGZyb20gYSBwYWQgd2l0aG91dCBhIHRhcmdldCBpcyBub3cgYSBwZXJmZWN0bHkgdmFsaWQgY2FzZQoJICB3aGljaCBzaG91bGQgTk9UIHJhaXNlIGFuIGFzc2VydGlvbi4KCSAgVGhpcyBjYXNlIHdvdWxkIGhhcHBlbiBpZiBhIGxpbmtlZCBnaG9zdHBhZCBpdHMgdGFyZ2V0IHNldCB0byBOVUxMIGFmdGVyCgkgIGl0IHdhcyBwcmV2aW91c2x5IGxpbmtlZC4KCjIwMDYtMDgtMDggMDk6NTY6NDUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiBBbHNvIGNvbW1lbnQgb3V0IHRoZSB0ZXN0IChzZWUgYmVsb3cpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBBbHNvIGNvbW1lbnQgb3V0IHRoZSB0ZXN0IChzZWUgYmVsb3cpLgoKMjAwNi0wOC0wOCAwOTowNzozNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IFVzZSB0aGUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGZyb20gY29uZmlnLmggYW5kIG5vdCBnY2MgbWFjcm9zIGluIG9yZGVyIHRvIHByb3Blcmx5IGRpc2FibC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgVXNlIHRoZSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gZnJvbSBjb25maWcuaCBhbmQgbm90IGdjYyBtYWNyb3MKCSAgaW4gb3JkZXIgdG8gcHJvcGVybHkgZGlzYWJsZSBhIHRlc3QgdGhhdCBmYWlscyBvbiBQUEM2NC4KCjIwMDYtMDgtMDQgMTU6MTU6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBEb24ndCBjcmFzaCBwcmludGluZyB0aGUgd2FybmluZyBpZiB0aGUgcGFkIGhhcyBubyBwYXJlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKToKCSAgRG9uJ3QgY3Jhc2ggcHJpbnRpbmcgdGhlIHdhcm5pbmcgaWYgdGhlIHBhZCBoYXMgbm8gcGFyZW50LgoKMjAwNi0wOC0wMiAxNToxOTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogTWFrZSBkZWJ1ZyBjYXRlZ29yeSBzdGF0aWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcl9hbnkpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHNfYW55KSwKCSAgKGdzdF9kcF9jcmMpLCAoZ3N0X2RwX2hlYWRlcl9wYXlsb2FkX2xlbmd0aCksCgkgIChnc3RfZHBfaGVhZGVyX3BheWxvYWRfdHlwZSksIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCksIChnc3RfZHBfYnVmZmVyX2Zyb21faGVhZGVyKSwKCSAgKGdzdF9kcF9jYXBzX2Zyb21fcGFja2V0KSwgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8wXzIpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KSwgKGdzdF9kcF92YWxpZGF0ZV9oZWFkZXIpLAoJICAoZ3N0X2RwX3ZhbGlkYXRlX3BheWxvYWQpOgoJICBNYWtlIGRlYnVnIGNhdGVnb3J5IHN0YXRpYwoJICBDb25zdGlmeSB0aGUgY3JjIHRhYmxlLgoJICBEbyBzb21lIG1vcmUgYXJnIGNoZWNraW5nIGluIHB1YmxpYyBmdW5jdGlvbnMuCgkgIEZpeCBzb21lIGRvY3MgYW5kIGRvIHNvbWUgc21hbGwgY2xlYW51cHMuCgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9kcF9zdWl0ZSk6CgkgIEFkZCBzb21lIG1vcmUgY2hlY2tzIHRvIHNlZSBpZiBHRFAgZGVhbHMgd2l0aCBib2d1cyBpbnB1dC4KCjIwMDYtMDctMzEgMTY6MzQ6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IEdzdFZhbHVlTGlzdCBjb21wYXJpc29uIGNvZGUuIEZpeGVzICMzNDcyOTMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdCk6CgkgIEZpeCBHc3RWYWx1ZUxpc3QgY29tcGFyaXNvbiBjb2RlLiBGaXhlcyAjMzQ3MjkzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGVjayB0byB0ZXN0IEdzdFZhbHVlTGlzdCBjb21wYXJpc29uLgoKMjAwNi0wNy0zMSAxNToxMjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBVc2UgT0JKRUNUX0xPQ0sgYW5kIHJlZmNvdW50aW5nIHRvIGdldCB0aGUgcGFkIGNhcHMgaW4gdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBiZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBVc2UgT0JKRUNUX0xPQ0sgYW5kIHJlZmNvdW50aW5nIHRvIGdldCB0aGUgcGFkIGNhcHMgaW4gdGhlCgkgIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBiZWNhdXNlIHRoZSBjYXBzIGNvdWxkIGNoYW5nZSB3aGlsZSB3ZSBhcmUKCSAgYnVzeSB3aXRoIHRoZW0uIEZpeGVzICMzNDkxMDUKCjIwMDYtMDctMzEgMTU6MTI6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBNYWtlIHN1cmUgdG8gZnJlZSB0aGUgcGFyc2UgYnVmZmVyIG9uIGFsbCBjb2RlIHBhdGhzLgoJICBNb3ZlIGEgZ19mcmVlIHVwIHRvIHRoZSBlcnJvciBoYW5kbGVyIHdoZXJlIGl0J3MgZWFzaWVyIHRvIHNlZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpOgoJICBFeHRlbmRpbmcgdGltZW91dCBmb3IgZG93bnN0cmVhbSB0cmF2ZWxsaW5nIGV2ZW50cyB0byAxMCBzZWNvbmRzIHRvCgkgIGhvcGVmdWxseSBhdm9pZCBpbnRlcm1pdHRlbnQgZmFpbHVyZSBvbiB0aGUgYnVpbGRib3RzLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHJ1bl9kZWxheWVkX3Rlc3QpOgoJICBEb24ndCBtYW51YWxseSBzZXQgdGhlIHN0YXRlIG9mIHRoZSBzcmMgZWxlbWVudCAtIGl0IHdpbGwgaGFwcGVuIGFzIGEKCSAgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgcGlwZWxpbmUgY2hhbmdpbmcgc3RhdGUsIGFuZCB0aGF0IHdheSBpdAoJICB3aWxsIGRvIGl0IGluIHRoZSByaWdodCBvcmRlciB0b28uCgoyMDA2LTA3LTMxIDE1OjA3OjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE1ha2Ugc3VyZSB0byBmcmVlIHRoZSBwYXJzZSBidWZmZXIgb24gYWxsIGNvZGUgcGF0aHMuCgkgIE1vdmUgYSBnX2ZyZWUgdXAgdG8gdGhlIGVycm9yIGhhbmRsZXIgd2hlcmUgaXQncyBlYXNpZXIgdG8gc2VlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCk6CgkgIEV4dGVuZGluZyB0aW1lb3V0IGZvciBkb3duc3RyZWFtIHRyYXZlbGxpbmcgZXZlbnRzIHRvIDEwIHNlY29uZHMgdG8KCSAgaG9wZWZ1bGx5IGF2b2lkIGludGVybWl0dGVudCBmYWlsdXJlIG9uIHRoZSBidWlsZGJvdHMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAocnVuX2RlbGF5ZWRfdGVzdCk6CgkgIERvbid0IG1hbnVhbGx5IHNldCB0aGUgc3RhdGUgb2YgdGhlIHNyYyBlbGVtZW50IC0gaXQgd2lsbCBoYXBwZW4gYXMgYQoJICBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRoZSBwaXBlbGluZSBjaGFuZ2luZyBzdGF0ZSwgYW5kIHRoYXQgd2F5IGl0CgkgIHdpbGwgZG8gaXQgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvby4KCjIwMDYtMDctMzEgMTQ6MjM6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogUHJvdGVjdCBfUEFEX0NBUFMgd2l0aCBPQkpFQ1RfTE9DSy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2dldF9maXhlZF9jYXBzX2Z1bmMpOgoJICBQcm90ZWN0IF9QQURfQ0FQUyB3aXRoIE9CSkVDVF9MT0NLLgoKMjAwNi0wNy0zMSAxNDoyMToxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIF9ERUJVR19PQkpFQ1Qgd2hlbiBpdCBtYWtlcyBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfcGFkX2dldF9wcm9wZXJ0eSksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdWxsX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVzaF9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9jaGFpbl9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9nZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2V2ZW50X2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3F1ZXJ5X3R5cGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfaW50ZXJuYWxfbGlua19mdW5jdGlvbiksIChnc3RfcGFkX3NldF9saW5rX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3VubGlua19mdW5jdGlvbiksIChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2FjY2VwdGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZml4YXRlY2Fwc19mdW5jdGlvbiksIChnc3RfcGFkX3NldF9zZXRjYXBzX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2J1ZmZlcmFsbG9jX2Z1bmN0aW9uKSwgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfcGVlcl9nZXRfY2FwcyksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfcGVlcl9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLCAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwKCSAgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2FwcyksIChnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMpLAoJICAoZ3N0X3BhZF9idWZmZXJfYWxsb2NfdW5jaGVja2VkKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX2xvYWRfYW5kX2xpbmspLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgVXNlIF9ERUJVR19PQkpFQ1Qgd2hlbiBpdCBtYWtlcyBzZW5zZS4KCSAgUHJvdGVjdCBHU1RfUEFEX0NBUFMgd2l0aCB0aGUgT0JKRUNUX0xPQ0suCgkgIFNtYWxsIGNsZWFudXBzIGFuZCBjb2RlIHJlZmxvd3MuCgkgIEF2b2lkIGNhcHMgcmVmY291bnRpbmcgaW4gX2FjY2VwdF9jYXBzLgoJICBSZWZhY3RvciBhbGxvY19idWZmZXIgc28gdGhhdCB0aGUgY29kZSBwZXJmb3JtZWQgb24gdGhlIHBlZXIgaXMgaW4gYQoJICBzZXBhcmF0ZSBmdW5jdGlvbi4gQWxzbyBpZiB0aGUgcGFkIGRvZXMgbm90IGltcGxlbWVudCBhIGJ1ZmZlciBhbGxvYwoJICBmdW5jdGlvbiwgd2Ugc2hvdWxkIHN0aWxsIGNoZWNrIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcgYmVmb3JlIGZhbGxpbmcKCSAgYmFjayB0byB0aGUgZGVmYXVsdCBhbGxvY2F0b3IuCgoyMDA2LTA3LTMwIDIyOjIwOjQyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogTWFrZSBhbGwgdXNlcyBvZiBpZGVudGl0eSBhbmQgZmFrZXNpbmsgaGF2ZSBzaWxlbnQ9dHJ1ZSB0byBhdm9pZCBzZXJpYWxpc2luZyBldi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgYWxsIHVzZXMgb2YgaWRlbnRpdHkgYW5kIGZha2VzaW5rIGhhdmUgc2lsZW50PXRydWUgdG8gYXZvaWQKCSAgc2VyaWFsaXNpbmcgZXZlcnkgcGFzc2luZyBkYXRhIHN0cnVjdHVyZSwgd2hpY2ggaXMgYnJlYWtpbmcgdGVzdHMKCSAgb24gRkM0IGZvciBzb21lIHVua25vd24gcmVhc29uLgoKMjAwNi0wNy0zMCAxODo1ODoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BhcnNlLzogUmV2ZXJ0ZWQgcHJldmlvdXMgcGF0Y2ggYXMgaXQgcmVxdWlyZWQgdG8gYnVtcCB0aGUgZmxleCBkZXBlbmRlbmN5IHRvIDIuNS4zMSwgd2hlcmUgZmM0LzUgc2VlbSB0byBzaGlwIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBSZXZlcnRlZCBwcmV2aW91cyBwYXRjaCBhcyBpdCByZXF1aXJlZCB0byBidW1wIHRoZSBmbGV4IGRlcGVuZGVuY3kgdG8KCSAgMi41LjMxLCB3aGVyZSBmYzQvNSBzZWVtIHRvIHNoaXAgb25seSB0aGUgYW5jaWVudCAyLjUuNGEgOigKCjIwMDYtMDctMzAgMTg6MzI6NDkgKzAwMDAgIE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCgkgIGdzdC9wYXJzZS86IHB1c2ggJiBwb3AgdGhlIHN0YXRlIG9mIHRoZSBsZXhlciBmb3IgcmVlbnRyYW50IHVzZSBjYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBwdXNoICYgcG9wIHRoZSBzdGF0ZSBvZiB0aGUgbGV4ZXIgZm9yIHJlZW50cmFudCB1c2UgY2FzZQoJICBGaXhlcyAjMzQ5MTgwCgoyMDA2LTA3LTI5IDEzOjQ1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6IE5vdGUgaW4gdGhlIGRvY3MgdGhhdCB0aGUgOjpuZXdzZWdtZW50IHZmdW5jIGlzIG5vdCBhY3R1YWxseSB1c2VkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBOb3RlIGluIHRoZSBkb2NzIHRoYXQgdGhlIDo6bmV3c2VnbWVudCB2ZnVuYyBpcyBub3QgYWN0dWFsbHkgdXNlZCBieQoJICBHc3RCYXNlU3JjLgoKMjAwNi0wNy0yOCAxNDowOToxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogV2hlbiBmbHVzaGluZyBhIHBhZCwgYWxzbyBjbGVhciB0aGUgcXVldWVkIGJ1ZmZlciBzbyB0aGF0IHdlIGRvbid0IGFjY2lkZW50YWxseSB1c2UgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZ191bmxvY2tlZCksIChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NsZWFyKSwgKGdzdF9jb2xsZWN0X3BhZHNfZmx1c2gpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgV2hlbiBmbHVzaGluZyBhIHBhZCwgYWxzbyBjbGVhciB0aGUgcXVldWVkIGJ1ZmZlciBzbyB0aGF0IHdlIGRvbid0CgkgIGFjY2lkZW50YWxseSB1c2UgaXQgd2hlbiB3ZSBzaG91bGRuJ3QuCgkgIEZpeCBsZWFrcyBieSBpbnJlZmZpbmcgaW5jb21taW5nIGJ1ZmZlci4KCSAgRmx1c2ggb3V0IHF1ZXVlZCBidWZmZXJzIGluIGNhc2Ugb2YgZXJyb3JzLgoJICBGaXhlcyAjMzQ3NDUyLgoKMjAwNi0wNy0yOCAxMDoxNzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3Bob25vbi1nc3Q6IFJhbmRvbSBub3RlcyBhYm91dCBhIFBob25vbiBiYWNrZW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9waG9ub24tZ3N0OgoJICBSYW5kb20gbm90ZXMgYWJvdXQgYSBQaG9ub24gYmFja2VuZC4KCjIwMDYtMDctMjcgMTQ6MzI6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEV4dHJhIGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgRXh0cmEgZGVidWcgb3V0cHV0CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIFRha2UgYSB3aGFjayBhdCBmaXhpbmcgdGhlIHBwYyBjb21waWxlIHVzaW5nIGEgZGlmZmVyZW50IGRlZmluZSB0bwoJICBkaXNhYmxlIHRoZSBicm9rZW4gdGVzdC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJlbW92ZSBleGNlc3MgZ19wcmludCgpCgoyMDA2LTA3LTI3IDEzOjQ0OjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogT29wcywgbWVhbnQgdG8gdW5jb21tZW50IHRoaXMgbGluZSB0b28gdG8gZGFtcGVuIHRoZSBub2lzZSBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKToKCSAgT29wcywgbWVhbnQgdG8gdW5jb21tZW50IHRoaXMgbGluZSB0b28gdG8gZGFtcGVuIHRoZSBub2lzZSBhIGJpdC4KCjIwMDYtMDctMjcgMTM6MjY6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IHNvbWUgb2YgdGhlIGxlYWtzIGV4cG9zZWQgYnkgZXh0ZW5kaW5nIHRoZSBwYXJzZS1sYXVuY2ggdGVzdHN1aXRlLCBhbmQgbW92ZSB0aGUgMyBJIGNhbid0IGZpZ3VyZSBvdXQgaW50byBhIHNlcGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHBhcnNlX3N1aXRlKToKCSAgRml4IHNvbWUgb2YgdGhlIGxlYWtzIGV4cG9zZWQgYnkgZXh0ZW5kaW5nIHRoZSBwYXJzZS1sYXVuY2ggdGVzdHN1aXRlLAoJICBhbmQgbW92ZSB0aGUgMyBJIGNhbid0IGZpZ3VyZSBvdXQgaW50byBhIHNlcGFyYXRlIHRlc3QgdGhhdCB3b24ndCBydW4KCSAgdGhlIHBpcGVsaW5lcyB1bmxlc3MgdGhlIGFwcHJvcHJpYXRlIGxpbmUgaXMgdW5jb21tZW50ZWQuCgoyMDA2LTA3LTI3IDEyOjM5OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFJlcXVlc3RpbmcgMCBieXRlcyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgZmlsZSBzaG91bGQgcmVzdWx0IGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgUmVxdWVzdGluZyAwIGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBmaWxlIHNob3VsZCByZXN1bHQgaW4KCSAgRkxPV19PSyBhbmQgYW4gZW1wdHkgYnVmZmVyLCBub3QgRkxPV19VTkVYUEVDVEVELiBUaGFuayB5b3UKCSAgdW5pdCB0ZXN0LgoKMjAwNi0wNy0yNyAxMTowMDoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCB1c2VsZXNzIGFzc2VydCwgYSB1aW50IGlzIGFsd2F5cyBwb3NpdGl2ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpLCAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSk6CgkgIEZpeCB1c2VsZXNzIGFzc2VydCwgYSB1aW50IGlzIGFsd2F5cyBwb3NpdGl2ZS4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX250aF9maWVsZF9uYW1lKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZm9yZWFjaCksIChnc3Rfc3RydWN0dXJlX21hcF9pbl9wbGFjZSk6CgkgIENoZWNrIGlucHV0IGFyZ3VtZW50cyBmb3IgcHVibGljIGZ1bmN0aW9ucyB0byBhdm9pZCBvYnZpb3VzIGNyYXNoZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgRG8gbGVzcyB1c2VsZXNzIHR5cGVjaGVja2luZy4KCjIwMDYtMDctMjcgMTA6NTQ6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogRG8gbm90IHVzZSBtbWFwKCkgYnkgZGVmYXVsdCBzaW5jZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgZXJyb3IgY29uZGl0aW9ucyB0aGF0IHdlIHdvdWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgIERvIG5vdCB1c2UgbW1hcCgpIGJ5IGRlZmF1bHQgc2luY2UgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIGVycm9yCgkgIGNvbmRpdGlvbnMgdGhhdCB3ZSB3b3VsZCBsaWtlIHRvIGhhbmRsZSBpbiBhIG5vbi1mYXRhbCB3YXkgdGhhdAoJICB3aWxsIHJlc3VsdCBpbiBhIFNJR0JVUyBpZiB3ZSB1c2UgbW1hcCgpLiBFeGFtcGxlczogZXh0ZXJuYWwKCSAgZGV2aWNlcyAoVVNCIGhhcmRkcml2ZSwgcG9ydGFibGUgbXVzaWMgcGxheWVyKSBiZWluZyB1bnBsdWdnZWQKCSAgd2hpbGUgaW4gdXNlOyBmaWxlIG9uIG1vdW50ZWQgQ0QvRFZEIHRoYXQgY2FuJ3QgYmUgcmVhZCBiZWNhdXNlCgkgIHRoZSBtZWRpdW0gaXMgcGFydGx5IGRhbWFnZWQuIEZpeGVzICMzNDg0NTUgYW5kICMzNDg0NzUuCgoyMDA2LTA3LTI2IDIyOjU5OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5oOiBEZWxldGUgdW51c2VkIGFuZCBtaXNsZWFkaW5nIGRlZmluZSBvZiBHU1RfUVVFUllfVFlQRV9SQVRFX0RFTiAtIHJhdGVzIGFyZSBhIGdkb3VibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIERlbGV0ZSB1bnVzZWQgYW5kIG1pc2xlYWRpbmcgZGVmaW5lIG9mIEdTVF9RVUVSWV9UWVBFX1JBVEVfREVOIC0KCSAgcmF0ZXMgYXJlIGEgZ2RvdWJsZQoKMjAwNi0wNy0yNiAyMDozMDo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IE1vdmUgYmlnIGRvY3VtZW50YXRpb24gY29tbWVudCBpbnRvIGNsYXNzIHNlY3Rpb24gaGVhZGVyLCBzbyB0aGF0IGl0IGFwcGVhcnMgaW4gdGhlIEFQSSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgTW92ZSBiaWcgZG9jdW1lbnRhdGlvbiBjb21tZW50IGludG8gY2xhc3Mgc2VjdGlvbiBoZWFkZXIsIHNvIHRoYXQgaXQKCSAgYXBwZWFycyBpbiB0aGUgQVBJIGRvY3MuCgoyMDA2LTA3LTI2IDE3OjE4OjI1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE9vcHMuIENvbW1pdCB0aGUgZG9jcyBhZGRpdGlvbnMgdG9vIGZvciBuZXcgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBPb3BzLiBDb21taXQgdGhlIGRvY3MgYWRkaXRpb25zIHRvbyBmb3IgbmV3IEFQSS4KCSAgQWxzbywgcmVtb3ZlIHRoZSBtZW50aW9uIG9mIHRoZSBub24tZXhpc3RlbnQgR1NUX1FVRVJZX1RZUEVfUkFURV9ERU4KCjIwMDYtMDctMjYgMTc6MDQ6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS4qOiBBZGQgQVBJIGZvciBzZXR0aW5nIHZhbHVlcyBpbnRvIHN0cnVjdHVyZXMgd2l0aG91dCBwZXJmb3JtaW5nIGEgcXVhcmsgbG9va3VwLCBpZiB0aGUgYXBwcm9wcmlhdGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbGlzdCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBBZGQgQVBJIGZvciBzZXR0aW5nIHZhbHVlcyBpbnRvIHN0cnVjdHVyZXMgd2l0aG91dCBwZXJmb3JtaW5nCgkgIGEgcXVhcmsgbG9va3VwLCBpZiB0aGUgYXBwcm9wcmlhdGUgcXVhcmsgaXMgYWxyZWFkeSBrbm93bi4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX3NldAoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbGlzdAoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFJlbW92ZSBzb21lIGRlYWQgY29kZSBzaG93biBieSB0aGUgY292ZXJhZ2UgaW5mb3JtYXRpb24uCgkgIERvbid0IHRocm93IGEgY3JpdGljYWwgZ193YXJuaW5nIHdoZW4gZW5jb3VudGVyaW5nIGEgc3ludGF4IGVycm9yLAoJICBqdXN0IHdhcm4gYW5kIGxldCB0aGUgbm9ybWFsIGVycm9yIHBhdGggaGFuZGxlIGl0LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgQnVtcCB0aGUgcmFuayBvZiBmaWxlc2luayB1cCB0byBQUklNQVJZIHNvIHRoYXQgaXQgaXMgcHJlZmVycmVkIG92ZXIKCSAgZ25vbWV2ZnNzaW5rIGZvciBmaWxlOi8vIHNpbmsgdXJpJ3MKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocnVuX2RlbGF5ZWRfdGVzdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NsYXNzX2luaXQpLCAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9yZWdpc3Rlcl9wYXJzZV9lbGVtZW50KSwgKHBhcnNlX3N1aXRlKToKCSAgQmVlZiB1cCB0aGUgdGVzdHMgZm9yIHBhcnNlIHN5bnRheCB0byBjaGVjayB0aGF0IG1vcmUgZXJyb3IgY2FzZXMKCSAgZmFpbCBhcyB0aGV5IGFyZSBzdXBwb3NlZCB0by4gSW5jcmVhc2VzIHRoZSB0ZXN0IGNvdmVyYWdlIGEgYml0LgoKMjAwNi0wNy0yNiAxMTo0MzoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6IEZpeCBnc3RfZWxlbWVudF9saW5rKCkgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgRml4IGdzdF9lbGVtZW50X2xpbmsoKSBleGFtcGxlLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNZW50aW9uIGluIEFQSSBkb2NzIHRoYXQgb25lIHNob3VsZCB1c3VhbGx5IGdzdF9iaW5fYWRkKCkKCSAgZWxlbWVudHMgdG8gYSBiaW4gb3IgcGlwZWxpbmUgYmVmb3JlIGRvaW5nIHRoZSBsaW5raW5nLgoKMjAwNi0wNy0yNiAxMDo0NzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gMzIgYml0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIDMyIGJpdAoKMjAwNi0wNy0yNiAxMDozOTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQXZvaWQgZnVuY3Rpb24gY2FsbCBmb3Iga25vd24gdHlwZXMgYnkga2VlcGluZyB0aGUgYnVmZmVyIGFuZCBzdWJidWZmZXIgR1R5cGUgZ2xvYmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2dldF90eXBlKSwgKGdzdF9idWZmZXJfbmV3KSwKCSAgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKToKCSAgQXZvaWQgZnVuY3Rpb24gY2FsbCBmb3Iga25vd24gdHlwZXMgYnkga2VlcGluZyB0aGUgYnVmZmVyIGFuZAoJICBzdWJidWZmZXIgR1R5cGUgZ2xvYmFsLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgUmFuZG9tIHNpbGx5IG9wdGltaXNhdGlvbnMgaW4gcmVhZCgpIHBhdGguCgoyMDA2LTA3LTI2IDA2OjE4OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogSWYgdGhlIHRvcC1sZXZlbCBvZiB0aGUgcGFyc2UgaXMgYSBub3JtYWwgYmluLCBpdCBkb2Vzbid0IGRvIHRoZSByaWdodCBsb2dpYyB0byBydW4gYXMgYSB0b3AtbGV2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgSWYgdGhlIHRvcC1sZXZlbCBvZiB0aGUgcGFyc2UgaXMgYSBub3JtYWwgYmluLCBpdCBkb2Vzbid0IGRvIHRoZQoJICByaWdodCBsb2dpYyB0byBydW4gYXMgYSB0b3AtbGV2ZWwgZWxlbWVudCwgc28gcGxhY2UgaXQgaW5zaWRlIGEKCSAgcGlwZWxpbmUuCgoyMDA2LTA3LTI1IDE5OjM3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFJlbW92ZSBzdXBlcmZsdW91cyBnX29iamVjdF9ub3RpZnkoKSBjYWxscywgR09iamVjdCBkb2VzIHRoYXQgZm9yIHVzIGF1dG9tYXRpY2FsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3NldF9wcm9wZXJ0eSk6CgkgIFJlbW92ZSBzdXBlcmZsdW91cyBnX29iamVjdF9ub3RpZnkoKSBjYWxscywgR09iamVjdCBkb2VzCgkgIHRoYXQgZm9yIHVzIGF1dG9tYXRpY2FsbHkuCgoyMDA2LTA3LTI1IDE1OjA3OjU4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIGxhdGVzdCAuaCBhZGRpdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxhdGVzdCAuaCBhZGRpdGlvbgoKMjAwNi0wNy0yNSAxMzowNjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogTW92ZSB0aGUgV2luMzIgdmVyc2lvbiBmcm9tIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L2F2aS9hdmlkZW11eC5jIHRvIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIE1vdmUgdGhlIFdpbjMyIHZlcnNpb24gZnJvbSBnc3QtcGx1Z2lucy1nb29kL2dzdC9hdmkvYXZpZGVtdXguYyB0bwoJICBoZXJlLgoKMjAwNi0wNy0yNCAxNjozMzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEFsbG93IG1vcmUgdGhhbiBvbmUgR1NUX1RBR19JTUFHRSBwZXIgdGFnbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICBBbGxvdyBtb3JlIHRoYW4gb25lIEdTVF9UQUdfSU1BR0UgcGVyIHRhZ2xpc3QuCgoyMDA2LTA3LTI0IDA3OjQwOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IHVwZGF0ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHVwZGF0ZSBkb2NzCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBsb2cgcmVjdXJyaW5nIGV2ZW50cyBhdCBMT0cgbGV2ZWwKCSAgYWRkIG1vcmUgZGVidWcgZm9yIHdoZW4gdGhlIGZkIGdldHMgc2V0CgoyMDA2LTA3LTI0IDA3OjM3OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgcmVtb3ZlIC0tZW5hYmxlLWRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSAtLWVuYWJsZS1kb2NzCgoyMDA2LTA3LTIzIDA5OjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgYnVnIHJlZmVyZW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBidWcgcmVmZXJlbmNlCgoyMDA2LTA3LTIxIDE4OjUyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFyc2UuYzogQWxzbyByZW1vdmUgcmVlbnRyYW5jZSBjaGVja3MgaWYgZmxleCBpcyBNVCBzYXZlICgjMzQ4MTc5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBBbHNvIHJlbW92ZSByZWVudHJhbmNlIGNoZWNrcyBpZiBmbGV4IGlzIE1UIHNhdmUgKCMzNDgxNzkpCgkgIEZpeCBteSBlbXB0eSBDaGFuZ2VMb2cgZW50cnkgYmVsb3cKCjIwMDYtMDctMjEgMTY6MDE6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEF0dGVtcHQgdG8gcGFjaWZ5IGJ1aWxkYm90LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBdHRlbXB0IHRvIHBhY2lmeSBidWlsZGJvdC4KCjIwMDYtMDctMjEgMTU6NDg6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtIChsaWJnc3RjaGVja19AR1NUX01BSk9STUlOT1JAaW5jbHVkZV9IRUFERVJTKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbQoJICAobGliZ3N0Y2hlY2tfQEdTVF9NQUpPUk1JTk9SQGluY2x1ZGVfSEVBREVSUykKCSAgKGxpYmdzdGNoZWNrX0BHU1RfTUFKT1JNSU5PUkBfbGFfU09VUkNFUyk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOiBBZGQgc29tZSBuZXcgaHlwZSB0ZXN0aW5nCgkgIGZ1bmN0aW9ucywgdGh1cyBwcm92aW5nIEkgYW0gc3RpbGwgYSBHU3RyZWFtZXIgaGF4b3IuIE9LIEkgd3JvdGUKCSAgdGhlbSBhIGxvbmcgdGltZSBhZ28sIGJ1dCBhbnl3YXlzLgoKMjAwNi0wNy0yMSAxMzoxMTozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOiAqIGNvbmZpZ3VyZS5hYzogKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoKMjAwNi0wNy0yMSAxMDo0MDoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYXJzZS5jOiBQcm90ZWN0IHJlY3Vyc2l2ZSBjYWxscyB0byBfcGFyc2Ugd2l0aCBhIHJlY3Vyc2l2ZSBtdXRleCBhbmQgYnVzeSBmbGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBQcm90ZWN0IHJlY3Vyc2l2ZSBjYWxscyB0byBfcGFyc2Ugd2l0aCBhIHJlY3Vyc2l2ZSBtdXRleAoJICBhbmQgYnVzeSBmbGFnLgoKMjAwNi0wNy0yMSAxMDozODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogRml4IGxlYWsgaW4gdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVhayBpbiB0ZXN0LgoKMjAwNi0wNy0yMCAyMDowMjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhcnNlLmM6IERvIG5vdCBoYW5nZSBvbiByZWN1cnNpdmUgdWFzZ2Ugb2YgZ3N0X3BhcnNlX2xhdW5jaCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIERvIG5vdCBoYW5nZSBvbiByZWN1cnNpdmUgdWFzZ2Ugb2YgZ3N0X3BhcnNlX2xhdW5jaCgpCgoyMDA2LTA3LTIwIDE2OjEwOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQWRkIHNvbWUgbW9yZSBkb2NzLCBjb21tZW50cyBhbmQgRklYTUUgMC4xMXMgaGVyZSBhbmQgdGhlcmUgYW5kICBhbHNvIGZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBBZGQgc29tZSBtb3JlIGRvY3MsIGNvbW1lbnRzIGFuZCBGSVhNRSAwLjExcyBoZXJlIGFuZCB0aGVyZQoJICBhbmQgIGFsc28gZml4IHNvbWUgdHlwb3MuCgoyMDA2LTA3LTIwIDEwOjUwOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHNlZ21lbnQuaDogQ29udmVydCB0YWJzIHRvIHNwYWNlcyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBDb252ZXJ0IHRhYnMgdG8gc3BhY2VzIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDA2LTA3LTIwIDEwOjI1OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogdGhlIHRlc3RfYnVmZmVyIHRlc3QgZmFpbHMgYXQgbGluZSAxNDAgb24gcHBjNjQgYXQgdGhlIGZvbGxvd2luZyBjaGVjazogIkdTVF9CVUZGRVJfSU5fQ0FQUyBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICB0aGUgdGVzdF9idWZmZXIgdGVzdCBmYWlscyBhdCBsaW5lIDE0MCBvbiBwcGM2NCBhdCB0aGUgZm9sbG93aW5nCgkgIGNoZWNrOgoJICBmYWlsX3VubGVzcyAoR1NUX0JVRkZFUl9GTEFHX0lTX1NFVCAobmV3YnVmZmVyLCBHU1RfQlVGRkVSX0ZMQUdfSU5fQ0FQUyksCgkgICJHU1RfQlVGRkVSX0lOX0NBUFMgZmxhZyBzaG91bGQgaGF2ZSBiZWVuIGNvcGllZCAhIik7CgkgIFNlZSBidWcgIzM0ODExNCBmb3IgbW9yZSBkZXRhaWxzLgoKMjAwNi0wNy0xOSAxMjo0MDo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEZpeCB0eXBvcyAoIzM0ODAwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR5cG9zICgjMzQ4MDAwKS4KCjIwMDYtMDctMTggMjA6Mzg6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOiBGaXggd3JvbmcgbGlua3MgKCMzNDc5MjcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBGaXggd3JvbmcgbGlua3MgKCMzNDc5MjcpLgoKMjAwNi0wNy0xOCAxOTowMToyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWFrZSAtLWRpc2FibGUtaW5kZXggd29yayAoIzM0MjU2NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIG1ha2UgLS1kaXNhYmxlLWluZGV4IHdvcmsgKCMzNDI1NjQpCgoyMDA2LTA3LTE4IDA5OjQyOjMxICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IFRoZSBhdHRhY2hlZCBwYXRjaCBhZGRzIHR3byBtaXNzaW5nIGRlZmluZXMgdG8gZ3N0dHJhY2UuaCB3aGVuIHRyYWNpbmcgaXMgZGlzYWJsZWQuICBJdCBhbHNvIGNvcnJlY3RzIG9uZSBleGlzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHRyYWNlLmg6CgkgIFRoZSBhdHRhY2hlZCBwYXRjaCBhZGRzIHR3byBtaXNzaW5nIGRlZmluZXMgdG8gZ3N0dHJhY2UuaCB3aGVuIHRyYWNpbmcKCSAgaXMgZGlzYWJsZWQuICBJdCBhbHNvIGNvcnJlY3RzIG9uZSBleGlzdGluZyBkZWZpbmUuCgkgIEZpeGVzICMzNDc3NTYuCgoyMDA2LTA3LTE3IDE3OjQwOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIHR3byBmdW5jdGlvbnMgdG8gY2hlY2sgYW5kIGNoYW5nZSB0aGUgU0lHU0VHViBiZWhhdmlvdXIgd2hlbiBsb2FkaW5nIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCksIChnc3Rfc2VndHJhcF9zZXRfZW5hYmxlZCk6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX2ZhdWx0X2hhbmRsZXJfcmVzdG9yZSk6CgkgIEFkZCB0d28gZnVuY3Rpb25zIHRvIGNoZWNrIGFuZCBjaGFuZ2UgdGhlIFNJR1NFR1YgYmVoYXZpb3VyCgkgIHdoZW4gbG9hZGluZyBwbHVnaW5zLgoJICBEb24ndCBtZXNzIHdpdGggdGhlIFNJR1NFR1YgaGFuZGxlciB3aGVuIHdlIHdlcmUgdG9sZCBub3QgdG8uCgkgIEZpeGVzICMzNDc3OTQuCgkgIEFQSTogZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZAoJICBBUEk6IGdzdF9zZWd0cmFwX3NldF9lbmFibGVkCgoyMDA2LTA3LTE0IDE2OjQyOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmV2ZXJ0IGZpeCBmb3IgcmVncmVzc2lvbiBpbiAjMzQ3NDA4IGFmdGVyIHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmV2ZXJ0IGZpeCBmb3IgcmVncmVzc2lvbiBpbiAjMzQ3NDA4IGFmdGVyIHJlbGVhc2UuCgoyMDA2LTA3LTE0IDE2OjIwOjE4ICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZyZWUgaXRlcmF0b3Igd2hlbiBkb25lICgjMzQ3MzExKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgY29tPgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKToKCSAgRnJlZSBpdGVyYXRvciB3aGVuIGRvbmUgKCMzNDczMTEpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQW5kIGFkZCBhIHRlc3QgY2FzZSBmb3IgdGhpcy4KCjIwMDYtMDctMTQgMTU6NTI6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIG5hbm8gYmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIG5hbm8gYmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuOSA9PT0KCjIwMDYtMDctMTQgMTU6NTA6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC45LCAiT24gdGhlIHJvYWQgYWdhaW4iCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTEzICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjksICJPbiB0aGUgcm9hZCBhZ2FpbiIKCjIwMDYtMDctMTMgMTk6NDc6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTA3LTEzIDE1OjUxOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmV2ZXJ0IHB1bGwtMCBmaXggZm9yIHJlbGVhc2UuIERpc2FibGUgY2hlY2suIEZpeGVzICMzNDc0MDguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmV2ZXJ0IHB1bGwtMCBmaXggZm9yIHJlbGVhc2UuIERpc2FibGUgY2hlY2suIEZpeGVzICMzNDc0MDguCgoyMDA2LTA3LTEzIDE0OjAyOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4ZXMgIzM0NzMzNzogZmFpbHVyZSB0byBkZXNlcmlhbGl6ZSBldmVudCBwYWNrZXRzIHdpdGggZW1wdHkgcGF5bG9hZCAob25seSBldi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMV8wKToKCSAgRml4ZXMgIzM0NzMzNzogZmFpbHVyZSB0byBkZXNlcmlhbGl6ZSBldmVudCBwYWNrZXRzIHdpdGgKCSAgZW1wdHkgcGF5bG9hZCAob25seSBldmVudCB0eXBlKQoKMjAwNi0wNy0xMyAxMzo1NzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IGRvIG5vdCBpbnN0YWxsIGEgLmMgZmlsZSBpbiB0aGUgaGVhZGVyIGRpcmVjdG9yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIGRvIG5vdCBpbnN0YWxsIGEgLmMgZmlsZSBpbiB0aGUgaGVhZGVyIGRpcmVjdG9yeQoKMjAwNi0wNy0xMyAxMDo0NzowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBHaG9zdFBhZCBubyBsb25nZXIgaW1wbGljaXRlbHkgdXNlIHRoZSBwYWR0ZW1wbGF0ZXMgb2YgdGhlIHRhcmdldHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKToKCSAgR2hvc3RQYWQgbm8gbG9uZ2VyIGltcGxpY2l0ZWx5IHVzZSB0aGUgcGFkdGVtcGxhdGVzIG9mIHRoZSB0YXJnZXRzLgoJICBGaXhlcyAjMzQ3Mzg0CgoyMDA2LTA3LTExIDIyOjU1OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wNy0xMSAyMDo0NDo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnICMzNDEwMjkgZml4ZWQgYnkgYmlsYm9lZCdzIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgIzM0MTAyOSBmaXhlZCBieSBiaWxib2VkJ3MgcHJldmlvdXMgY29tbWl0CgoyMDA2LTA3LTExIDIwOjE0OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIE1ha2UgR3N0VmFsdWVBcnJheSBjb21wYXJpc29uIGJlIG9yZGVyIGRlcGVuZGVudCBhcyBkZXNpZ25lZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2FycmF5KSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgR3N0VmFsdWVBcnJheSBjb21wYXJpc29uIGJlIG9yZGVyIGRlcGVuZGVudCBhcyBkZXNpZ25lZC4KCSAgQWRkIGNoZWNrcyBmb3IgdmFsdWUgbGlzdHMgYW5kIHZhbHVlIGFycmF5IGNvbXBhcmlzb25zLgoJICBGaXhlcyAjMzQ3MjIxCgoyMDA2LTA3LTExIDE2OjIwOjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiAoZGUpYWN0aXZhdGUgc3JjIHBhZHMgYmVmb3JlIGNhbGxpbmcgc3RhdGVfY2hhbmdlIG9uIHRoZSBjaGlsZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGFjdGl2YXRlX3BhZHMpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfYmluX3NyY19wYWRzX2FjdGl2YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAoZGUpYWN0aXZhdGUgc3JjIHBhZHMgYmVmb3JlIGNhbGxpbmcgc3RhdGVfY2hhbmdlIG9uIHRoZSBjaGlsZHMuCgkgIFRoaXMgaXMgdG8gYXZvaWQgdGhlIGNhc2Ugd2hlcmUgYSBzcmMgZ2hvc3RwYWQgaXMgYmxvY2tlZCAoaG9sZGluZyB0aGUKCSAgc3RyZWFtIGxvY2spLCB3aGljaCB3b3VsZCBibG9jayB0aGUgZGVhY3RpdmF0aW9uIG9mIHRoZSBnaG9zdHBhZCdzCgkgIHRhcmdldCBwYWQuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5X3R5cGUpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19ldmVudCksIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9faW50ZXJuYWxfbGluayksIChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLCAoZ3N0X3Byb3h5X3BhZF9nZXRfaW50ZXJuYWwpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9wcm94eV9wYWRfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX3BhcmVudF9zZXQpLCAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX25ldyksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBHaG9zdFBhZHMgbm93IGNyZWF0ZSB0aGVpciBpbnRlcm5hbCBHc3RQcm94eVBhZCBhdCBjcmVhdGlvbiAoYW5kIG5vdAoJICB3aGVuIHRoZXkncmUgbGlua2VkLCBhcyBpdCB3YXMgYmVpbmcgZG9uZSBwcmV2aW91c2x5KS4KCSAgVGhlIGludGVybmFsIGFuZCB0YXJnZXQgcGFkcyBhcmUgbGlua2VkIHN0cmFpZ2h0IGF3YXkuCgkgIFRoZSBkYXRhIHdpbGwgYWxzbyB0cmF2ZWwgdGhyb3VnaCB0aGUgb3RoZXIgcGFkIGluIG9yZGVyIHRvIG1ha2UKCSAgcGFkIGJsb2NraW5nIGFuZCBwcm9iZXMgbm9uLWhhY2tpc2ggKHRoZSBwcm9iZS9ibG9jayBub3cgcmVhbGx5IGhhcHBlbnMKCSAgb24gdGhlIEdob3N0UGFkIGFuZCBub3Qgb24gdGhlIHRhcmdldCkuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBSZW1vdmUgcHJldmlvdXMgZ2hvc3RwYWQgY3J1ZnQuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgIFJlbW92ZSBwcmV2aW91cyBnaG9zdCBwYWQgY3J1ZnQuCgkgIEFkZGVkIG1vcmUgZGV0YWlsZWQgZGVidWcgc3RhdGVtZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHRoZSB0ZXN0c3VpdGUgZm9yIHJlZmNvdW50aW5nIGNoYW5nZXMuCgkgIFRoZSBjb21tZW50cyBhYm91dCB3aG8gaGFzIHJlZmVyZW5jZXMgd2VyZSBjb3JyZWN0LCBidXQgdGhlIHJlZmNvdW50CgkgIGJlaW5nIGNoZWNrZWQgd2Fzbid0IHRoZSBzYW1lICghPyEpLgoKMjAwNi0wNy0xMCAxOTozNTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBkb2NzIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFkZCBkb2NzIHRvIGd0ay1kb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBNb3JlIGRvY3MgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYWRkIGRvY3MgdG8gZ3RrLWRvYy4KCjIwMDYtMDctMTAgMTg6Mjc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCBidWlsZCB3aGVuIGRpc2FibGluZyB0cmFjaW5nIChmaXhlcyAjMzQ0MDE2KS4gQWxzbyBzdGFydCB0byBkb2N1bWVudCB0aGUgZGVmaW5lcyB0aGF0IGRpc2FibGUgdGhlIHN1Yi1zeXN0ZW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgRml4IGJ1aWxkIHdoZW4gZGlzYWJsaW5nIHRyYWNpbmcgKGZpeGVzICMzNDQwMTYpLiBBbHNvIHN0YXJ0IHRvIGRvY3VtZW50CgkgIHRoZSBkZWZpbmVzIHRoYXQgZGlzYWJsZSB0aGUgc3ViLXN5c3RlbXMuCgoyMDA2LTA3LTEwIDA5OjQyOjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBsZXQncyBtYWtlIHZhbGdyaW5kIGhhcHB5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBsZXQncyBtYWtlIHZhbGdyaW5kIGhhcHB5Li4uCgoyMDA2LTA3LTA5IDE2OjU2OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQmV0dGVyIHBhZCBhY3RpdmF0aW9uIGNvZGU6IFJlc2V0IHRoZSBjb2xsZWN0IHZhbHVlIHRvbyBvbiByZXN5bmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChhY3RpdmF0ZV9wYWRzKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIEJldHRlciBwYWQgYWN0aXZhdGlvbiBjb2RlOiBSZXNldCB0aGUgY29sbGVjdCB2YWx1ZSB0b28gb24gcmVzeW5jLgoJICBBZGQgc29tZSBjb21tZW50cy4KCjIwMDYtMDctMDkgMTM6MjY6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSBzb21lIG1vcmUgbWFjcm9zIHdoZXJlIGl0IG1ha2VzIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6CgkgIFVzZSBzb21lIG1vcmUgbWFjcm9zIHdoZXJlIGl0IG1ha2VzIHNlbnNlLgoJICBBbGxvdyBwYWQgbW9kZSBzd2l0Y2hpbmcgaW5zdGVhZCBvZiBhc3NlcnRpbmcuIFdoZW4gYSBwYWQKCSAgaXMgYWN0aXZhdGVkIGluIG9uZSBtb2RlIGFuZCB3ZSBhY3RpdmF0ZSBpdCBpbiBhbm90aGVyLAoJICBkZWFjdGl2YXRlIGl0IGZpcnN0IGJlZm9yZSBhY3RpdmF0aW5nIGl0IGluIGEgZGlmZmVyZW50IG1vZGUuCgkgIEZpeGVzICMzMjkxOTguCgoyMDA2LTA3LTA4IDEzOjIyOjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmMgKG1haW4pOiBIYW5kbGUgZXJyID09IE5VTEwuIGdzdC9nc3QuYyAoaW5pdF9wb3N0LCBlbnN1cmVfY3VycmVudF9yZWdpc3RyeSkgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jIChtYWluKTogSGFuZGxlIGVyciA9PSBOVUxMLgoJICAqIGdzdC9nc3QuYyAoaW5pdF9wb3N0LCBlbnN1cmVfY3VycmVudF9yZWdpc3RyeSkKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKTogUmVkdWNlICNpZmRlZiByYXRuZXN0IGJ5CgkgIGZhY3RvcmluZyBvdXQgdGhlIHJlZ2lzdHJ5IHNjYW5uaW5nIGludG8gc2VwYXJhdGUgZnVuY3Rpb25zLiBEb24ndAoJICBmb3JrIGZvciB0aGUgcmVzY2FuIGlzIEdTVF9SRUdJU1RSWV9GT1JLPW5vOyB1c2VmdWwgaW4gZGVidWdnaW5nLgoJICBCZXR0ZXIgZW52aXJvbm1lbnQgdmFyIG5hbWUvaW50ZXJmYWNlIHN1Z2dlc3Rpb25zIGFjY2VwdGVkLgoKMjAwNi0wNy0wNyAxNzoxNjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogUmFuZG9tIG1pY3JvLW9wdGltaXNhdGlvbjogZG9uJ3QgdXNlIGEgaGFzaCB0YWJsZSB3aXRoIHN0cmluZ3MgYXMga2V5cyBhbmQgdGhlIHVzdWFsIHN0cmR1cC9zdHJjbXAgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9uYW1lX2RlZmF1bHQpLAoJICAoZ3N0X29iamVjdF9zZXRfbmFtZSk6CgkgIFJhbmRvbSBtaWNyby1vcHRpbWlzYXRpb246IGRvbid0IHVzZSBhIGhhc2ggdGFibGUKCSAgd2l0aCBzdHJpbmdzIGFzIGtleXMgYW5kIHRoZSB1c3VhbCBzdHJkdXAvc3RyY21wCgkgIGludm9sdmVkLCBidXQgcmF0aGVyIGp1c3QgdXNlIHRoZSBHUXVhcmsgb2YgdGhlCgkgIHR5cGUgbmFtZSBhcyBrZXksIHNpbmNlIGl0IG5lZWRzIHRvIGJlIGxvb2tlZCB1cAoJICBhbnl3YXkgdG8gZ2V0IHRoZSB0eXBlIG5hbWUgc3RyaW5nLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHZhcmlvdXMgbGVha3MuCgoyMDA2LTA3LTA3IDE1OjQyOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBDYW4ndCB1c2UgR1BPSU5URVJfVE9fSU5UIGFuZCBHSU5UX1RPX1BPSU5URVIgd2l0aCBHVHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGNvbXBhcmVfaW50ZXJmYWNlKSwgKGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgIENhbid0IHVzZSBHUE9JTlRFUl9UT19JTlQgYW5kIEdJTlRfVE9fUE9JTlRFUiB3aXRoIEdUeXBlcy4KCSAgR1R5cGVzIGFyZSBndWxvbmdzIGFuZCB0aHVzIHRoZSB0b3AgNCBieXRlcyBtaWdodCBiZSBjdXQKCSAgb2ZmIG9uIHNvbWUgcGxhdGZvcm1zIHdoZW4gZG9pbmcgR1BPSU5URVJfVE9fSU5ULCBsZWFkaW5nCgkgIHRvIGludmFsaWQgR1R5cGVzIGFuZCBiYWQgdGhpbmdzIGhhcHBlbmluZy4KCSAgQWxzbyBhZGQgYSBjaGVjayB0byBtYWtlIHN1cmUgdGhlIHR5cGUgcGFzc2VkIGluIGlzIHJlYWxseQoJICBhbiBpbnRlcmZhY2UgdHlwZS4KCjIwMDYtMDctMDcgMDk6NDc6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICAuY3ZzaWdub3JlOiBJZ25vcmUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA2LTA3LTA3IDA5OjA5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZSBnc3QtZWxlbWVudC1jaGVjay0kVkVSU0lPTi5tNCBjYWxsIGdzdC1pbnNwZWN0LSRWRVJTSU9OIGluc3RlYWQgb2YgdGhlIHVudmVyc2lvbmVkIGdzdC1pbnNwZWN0ICgjMzI0MTc2LCAjMTY4NjU5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC1lbGVtZW50LWNoZWNrLm00OgoJICAqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJICBNYWtlIGdzdC1lbGVtZW50LWNoZWNrLSRWRVJTSU9OLm00IGNhbGwgZ3N0LWluc3BlY3QtJFZFUlNJT04KCSAgaW5zdGVhZCBvZiB0aGUgdW52ZXJzaW9uZWQgZ3N0LWluc3BlY3QgKCMzMjQxNzYsICMxNjg2NTkpLgoKMjAwNi0wNy0wNiAxNjoxNzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmg6IFVzZSBhIHZhbGlkIGludCBmb3IgdGhlIF9NRVNTQUdFX0FOWSBlbnVtIHZhbHVlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBVc2UgYSB2YWxpZCBpbnQgZm9yIHRoZSBfTUVTU0FHRV9BTlkgZW51bSB2YWx1ZSB0byBhdm9pZCBjb21waWxlcgoJICB3YXJuaW5ncy4KCjIwMDYtMDctMDYgMTU6NDY6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGRvY3MuIGJsb2Nrc2l6ZSA9PSAwIG5vdyBtZWFucyB0aGUgZGVmYXVsdCBibG9ja3NpemUgd2hlbiB3b3JraW5nIGluIHB1c2ggYmFzZWQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfd2FpdCksIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIFVwZGF0ZSBkb2NzLgoJICBibG9ja3NpemUgPT0gMCBub3cgbWVhbnMgdGhlIGRlZmF1bHQgYmxvY2tzaXplIHdoZW4gd29ya2luZyBpbiBwdXNoCgkgIGJhc2VkIG1vZGUuCgkgIFJlbW92ZSBzb21lIHBvaW50bGVzcyBhc3NlcnRzIGluIF93YWl0IGZ1bmN0aW9uLgoJICBGaXggb2Zmc2V0L2xlbmd0aCBjYWxjdWxhdGlvbnMgYW5kIEVPUyBoYW5kbGluZy4gV2UgY2FuIG5vdyBwdWxsIDAKCSAgYnl0ZXMgYXMgd2VsbCwgd2hpY2ggaXMgYWxsb3dlZC4KCSAgdXNlIF9jaGVja19nZXRfcmFuZ2UoKSB0byBkZWNpZGUgaWYgd2UgY2FuIG9wZXJhdGUgaW4gX3B1bGwgYmFzZWQKCSAgbW9kZS4KCSAgRml4IHJlZmNvdW50aW5nIGxlYWsgd2hlbiBjaGVja19nZXRfcmFuZ2UgZnVuY3Rpb24gd2FzIG5vdAoJICBpbXBsZW1lbnRlZC4KCSAgQVBJIEdzdEJhc2VTcmM6OmJsb2Nrc2l6ZSByYW5nZSBjYW4gYmUgMCB0b28gbm93IChkZWZhdWx0KQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZpbGVzcmNfc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0byB0ZXN0IF9nZXRfcmFuZ2UoKSBiZWhhdmlvdXIuCgoyMDA2LTA3LTA2IDE1OjIxOjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBMb3RzIG9mIGNvbW1lbnRzIGFuZCBkb2NzIGFkZGVkIHRvIHRoZSBwYWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIExvdHMgb2YgY29tbWVudHMgYW5kIGRvY3MgYWRkZWQgdG8gdGhlIHBhZCBmdW5jdGlvbnMuCgkgIEZsZXNoIG91dCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VyIG9mIHRoZSBnZXRfcmFuZ2UoKSBmdW5jdGlvbnMuCgoyMDA2LTA3LTA2IDA5OjIxOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIGNvbW1hIGF0IGVuZCBvZiBlbnVtZXJhdG9yIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFJlbW92ZSBjb21tYSBhdCBlbmQgb2YgZW51bWVyYXRvciBsaXN0LgoKMjAwNi0wNy0wNSAxOTo1NjowOCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uLzogQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGlic2d0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA2LTA3LTA1IDE4OjIwOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IEFkZCBzb21lIG1vcmUgZG9jcyBoZXJlIGFuZCB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IChnc3RfcHVzaF9zcmNfY2hlY2tfZ2V0X3JhbmdlKToKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGhlcmUgYW5kIHRoZXJlLgoKMjAwNi0wNy0wNSAxODoxODo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlIHVwZGF0ZSB0aGUgb2Zmc2V0IHNvIHRoYXQgd2UgcmVhZCBzZXF1ZW50aWFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgV2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlIHVwZGF0ZSB0aGUgb2Zmc2V0IHNvIHRoYXQgd2UKCSAgcmVhZCBzZXF1ZW50aWFsbHkuCgoyMDA2LTA3LTA1IDE4OjE3OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEF2b2lkIHN0cmR1cC4gKHdpbGwgaGFwcGVuIGluIGxpYnhtbCwgYnV0IGhleSEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAocmVhZF9zdHJpbmcpOgoJICBBdm9pZCBzdHJkdXAuICh3aWxsIGhhcHBlbiBpbiBsaWJ4bWwsIGJ1dCBoZXkhKQoJICAqIGdzdC9nc3R1cmkuYzoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoKMjAwNi0wNy0wNSAxNzowOToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE5vIHBvaW50IGluIGNoZWNraW5nIGlmIHRoZSBzaXplIG9mIHRoZSBzdWJidWZmZXIgPiAwLCB0aGUgY29kZSBoYW5kbGVzIGl0IGNvcnJlY2x0eSBhcyBkZW1vbnN0cmF0ZWQgYnkgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9jb3B5KSwgKGdzdF9idWZmZXJfY3JlYXRlX3N1Yik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2J1ZmZlcl9zdWl0ZSk6CgkgIE5vIHBvaW50IGluIGNoZWNraW5nIGlmIHRoZSBzaXplIG9mIHRoZSBzdWJidWZmZXIgPiAwLCB0aGUKCSAgY29kZSBoYW5kbGVzIGl0IGNvcnJlY2x0eSBhcyBkZW1vbnN0cmF0ZWQgYnkgdW5pdCB0ZXN0LgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIHplcm8gc2l6ZWQgX25ld19hbmRfYWxsb2MgYW5kCgkgIF9jb3B5LiBGaXhlcyAjMzQ2NjYzLgoKMjAwNi0wNy0wNSAwODoxNjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIHN1cmUgdGhlIGJ1ZmZlciB3ZSBwYXNzIHRvIHRyYW5zZm9ybV9pcCBoYXMgYSByZWZjb3VudCBvZiAxIGFuZCB0aHVzIGlzIHdyaXRhYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIE1ha2Ugc3VyZSB0aGUgYnVmZmVyIHdlIHBhc3MgdG8gdHJhbnNmb3JtX2lwIGhhcyBhIHJlZmNvdW50IG9mCgkgIDEgYW5kIHRodXMgaXMgd3JpdGFibGUuIEZpeGVzICMzNDMxOTYKCjIwMDYtMDctMDQgMDk6MDE6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLio6IEFkZCAic2VxdWVudGlhbCIgcHJvcGVydHksIG9mZiBieSBkZWZhdWx0LCB0byB1c2UgbWFkdmlzZSBhbmQgaGludCB0byB0aGUga2VybmVsIHRoYXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2luaXQpLCAoZ3N0X2ZpbGVfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgQWRkICJzZXF1ZW50aWFsIiBwcm9wZXJ0eSwgb2ZmIGJ5IGRlZmF1bHQsIHRvIHVzZSBtYWR2aXNlIGFuZCBoaW50CgkgIHRvIHRoZSBrZXJuZWwgdGhhdCBzZXF1ZW50aWFsIGFjY2VzcyBpcyBkZXNpcmVkLgoJICBUb3VjaCBhbGwgcmV0cmlldmVkIHBhZ2VzIGJ5IGRlZmF1bHQgdG8gZW5zdXJlIHRoZXkgYXJlIHB1bGxlZAoJICBpbnRvIG1lbW9yeS4gKENsb3NlcyAjMzQ1NzIwKQoKMjAwNi0wNy0wMyAxNzo0NDowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgoyMDA2LTA3LTAzIDE2OjU3OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVXNlIEdTbGljZSB3aGVuIHRoZSBnbGliIHdlIGJ1aWxkIGFnYWluc3QgaXMgPj0gMi4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfbmV3X2VtcHR5KSwgKF9nc3RfY2Fwc19mcmVlKSwKCSAgKGdzdF9jYXBzX3VucmVmKSwgKGdzdF9zdGF0aWNfY2Fwc19nZXQpLAoJICAoZ3N0X2NhcHNfYXBwZW5kX3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKF9nc3RfY2xvY2tfaWRfZnJlZSk6CgkgIFVzZSBHU2xpY2Ugd2hlbiB0aGUgZ2xpYiB3ZSBidWlsZCBhZ2FpbnN0IGlzID49IDIuMTAKCjIwMDYtMDctMDMgMTY6NDY6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCBjbGVhbnVwIGluIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgU21hbGwgY2xlYW51cCBpbiBwYWQgYWN0aXZhdGlvbiBjb2RlLgoKMjAwNi0wNy0wMyAxNDoxNDo0OCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBUaGUgYXR0YWNoZWQgcGF0Y2ggd2lsbCBtYWtlIHRoZSBpbmNsdXNpb24gb2YgZ2V0dGV4dC5oIHVuY29uZGl0aW9uYWwgaW4gZ3N0L2dzdC1pMThuLWFwcC5oIGFuZCBnc3QvZ3N0LWkxOG4tbGliLmgsIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L2dzdC1pMThuLWFwcC5oOgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBUaGUgYXR0YWNoZWQgcGF0Y2ggd2lsbCBtYWtlIHRoZSBpbmNsdXNpb24gb2YgZ2V0dGV4dC5oIHVuY29uZGl0aW9uYWwgaW4KCSAgZ3N0L2dzdC1pMThuLWFwcC5oIGFuZCBnc3QvZ3N0LWkxOG4tbGliLmgsIGFuZCBpdCB3aWxsIHJlbW92ZSB0aGUgaW5jbHVzaW9uIG9mCgkgIGxpYmludGwuaCBpbiB0b29scy9nc3QtaW5zcGVjdC5jLgoJICBUaGlzIGFsbG93cyB1c2Ugb2YgLS1kaXNhYmxlLW5scyBhZ2FpbiBhbmQgZml4ZXMgIzM0NDY0Mi4KCjIwMDYtMDctMDMgMTE6MTA6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBmaXggbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGxlYWsKCjIwMDYtMDctMDMgMTA6MzA6NDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCBwYWQgYmxvY2tpbmcgb24gZXZlbnRzIGFjY29yZGluZyB0byBwYXJ0LWJsb2NrLnR4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBJbXBsZW1lbnQgcGFkIGJsb2NraW5nIG9uIGV2ZW50cyBhY2NvcmRpbmcgdG8gcGFydC1ibG9jay50eHQuCgkgIE1vcmUgY29tbWVudHMgb24gYmVoYXZpb3VyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCk6CgkgIFNlbmQgZXZlbnQgdG8gcGVlciBwYWQgb2YgYmxvY2tlZCBwYWQgKGVsc2UgaXQgd2lsbCBibG9jaykuCgoyMDA2LTA3LTAyIDIzOjIyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IGlmIHdlIGdldCB0aGUgd3JvbmcgbWVzc2FnZSwgZ2l2ZSB1cyB0aGUgdHlwZXMgYXMgc3RyaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbWVzc2FnZV9lcnJvciksCgkgIChnc3RfY2hlY2tfcnVuX3N1aXRlKToKCSAgaWYgd2UgZ2V0IHRoZSB3cm9uZyBtZXNzYWdlLCBnaXZlIHVzIHRoZSB0eXBlcyBhcyBzdHJpbmcKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zdGFydCk6CgkgIEZpeCBhIHRyYW5zbGF0YWJsZQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIGEgdGVzdCBmb3IgdHJ5aW5nIHRvIG9wZW4gYSBub24tZXhpc3RpbmcgZmlsZQoKMjAwNi0wNy0wMiAyMjo0NDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWFjcm9zCgoyMDA2LTA3LTAyIDIyOjI4OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICByZW1vdmUgZG91YmxlIHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRvdWJsZSB2YXIKCjIwMDYtMDctMDIgMjI6Mjc6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgY2xlYW4gbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gbW9yZQoKMjAwNi0wNy0wMiAyMjoyMDoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC8uZ2l0aWdub3JlOgoJICBtb2FwIGlnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9hcCBpZ25vcmUKCjIwMDYtMDctMDIgMjI6MTc6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBhZGQgYSB0ZXN0IGZvciBhZGRpbmcgc2VsZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgYWRkaW5nIHNlbGYKCjIwMDYtMDctMDIgMjI6MDU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogYWRkIHNvbWUgYXNzZXJ0XyBhcyBhbGlhcyBmb3IgZmFpbF91bmxlc3NfKgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgc29tZSBhc3NlcnRfIGFzIGFsaWFzIGZvciBmYWlsX3VubGVzc18qCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3N1aXRlKToKCSAgaW5jcmVhc2UgdGVzdCBjb3ZlcmFnZQoKMjAwNi0wNy0wMiAyMTo1NDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogaW5jbHVkZSBsY292Lm1hayBmb3IgbGNvdiBjb3ZlcmFnZSBnZW5lcmF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBpbmNsdWRlIGxjb3YubWFrIGZvciBsY292IGNvdmVyYWdlIGdlbmVyYXRpb24KCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYWRkIHRvIENMRUFORklMRVMKCjIwMDYtMDctMDIgMjE6NTI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UvZG9jIGZpeGVzCgoyMDA2LTA3LTAyIDE2OjI3OjE0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogbW9hcGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBtb2FwaW5nCgoyMDA2LTA3LTAyIDE0OjM5OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogZG9uJ3Qgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyBmb3IgZ2NvdiwgZG9uZSBmcm9tIEdTVF9HQ09WIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGRvbid0IHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgZm9yIGdjb3YsIGRvbmUgZnJvbSBHU1RfR0NPViBub3cKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2xlYW4gdXAgZ2NvdiBmaWxlcwoKMjAwNi0wNy0wMiAxNDozNzoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiByZW1vdmUgZ3N0X2NhcHNfc2ltcGxpZnk7IGl0IHdhcyBub3QgZGVjbGFyZWQgYW5kIG5vdCB1c2VkIGFuZCBkZXByZWNhdGVkIGluIDAuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVtb3ZlX2FuZF9nZXRfc3RydWN0dXJlKToKCSAgcmVtb3ZlIGdzdF9jYXBzX3NpbXBsaWZ5OyBpdCB3YXMgbm90IGRlY2xhcmVkIGFuZCBub3QgdXNlZAoJICBhbmQgZGVwcmVjYXRlZCBpbiAwLjgKCjIwMDYtMDctMDIgMTQ6MDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBkb24ndCBwdXQgZW1wdHkgcGF0aHMgb24gUFlUSE9OUEFUSAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGRvbid0IHB1dCBlbXB0eSBwYXRocyBvbiBQWVRIT05QQVRICgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIHNvbWUgc3ltYm9scyB0aGF0IGFyZSBub3QgdGhlcmUKCjIwMDYtMDctMDIgMTI6NTc6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdW5icmVhayB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bmJyZWFrIHRlc3QKCjIwMDYtMDctMDIgMTI6NTQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfY29tcGFyZV9zdHJ1Y3R1cmVzKToKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBhZGQgbW9yZSB0ZXN0cwoKMjAwNi0wNy0wMiAxMjo1MjowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA2LTA3LTAyIDA5OjA0OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbTogYnVpbGQgZGF0YXByb3RvY29sIHRlc3QgYnkgbGlua2luZyB0byB0aGUgbGliLCBpbnN0ZWFkIG9mIGNvbXBpbGluZyB0aGUgc291cmNlLCBzby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgIGJ1aWxkIGRhdGFwcm90b2NvbCB0ZXN0IGJ5IGxpbmtpbmcgdG8gdGhlIGxpYiwgaW5zdGVhZCBvZgoJICBjb21waWxpbmcgdGhlIHNvdXJjZSwgc28gd2UgZ2V0IGNvdmVyYWdlCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoZXZlbnRfZnVuYyksIChzZXR1cF9maWxlc3JjKSwKCSAgKGNsZWFudXBfZmlsZXNyYyksIChHU1RfU1RBUlRfVEVTVCksIChmaWxlc3JjX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgZmlsZXNyYwoKMjAwNi0wNy0wMiAwODoyNjo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoKMjAwNi0wNy0wMiAwMDo0MDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoKMjAwNi0wNy0wMiAwMDozOToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJICBtb2FwIGlnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9hcCBpZ25vcmUKCjIwMDYtMDctMDIgMDA6Mzg6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJICBtb2FwIGlnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9hcCBpZ25vcmUKCjIwMDYtMDctMDIgMDA6MzM6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGdzdC1pbnNwZWN0IGV2ZXJ5IGVsZW1lbnQ7IHRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGFsc28gZ2V0IGNvdmVyYWdlIG9uIGVsZW1lbnQncyBnZXQvc2V0IGZ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBnc3QtaW5zcGVjdCBldmVyeSBlbGVtZW50OyB0aGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBhbHNvIGdldAoJICBjb3ZlcmFnZSBvbiBlbGVtZW50J3MgZ2V0L3NldCBmdW5jdGlvbnMKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCjIwMDYtMDctMDEgMjM6MjY6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIHRvIC1PMCBpZiBnY292IGlzIGJlaW5nIHVzZWQgYWRkIEdDT1YgTElCUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgdG8gLU8wIGlmIGdjb3YgaXMgYmVpbmcgdXNlZAoJICBhZGQgR0NPViBMSUJTCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgYWRkIG1ha2VmaWxlIHJ1bGVzIHRvIGdlbmVyYXRlIGdjb3YgZGF0YSBhbmQgY2xlYW4gdXAKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGEgY292ZXJhZ2UgdGFyZ2V0IHRoYXQgZ2VuZXJhdGVzIGFuIGh0bWwgb3ZlcnZpZXcKCSAgb2YgY292ZXJhZ2UgZGF0YQoKMjAwNi0wNy0wMSAyMzoxOToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBmaXggZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MgYnVpbGQKCjIwMDYtMDctMDEgMjA6NTY6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiB1c2UgdGhlIG5ldyBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKGdzdF9idXNfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3Jfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6IChnc3RfdGFza19zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAobGlic2FiaV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoc3RyZXNzX3N1aXRlKToKCSAgdXNlIHRoZSBuZXcgbWFjcm8KCjIwMDYtMDctMDEgMjA6NTQ6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogY3JlYXRlIGEgbWFjcm8gYW5kIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIHNpbXBsZSB1bml0IHRlc3QgY2FzZSBjYW4gYmUganVzdCBvbmUgbWFjcm8gdG8gY3JlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfcnVuX3N1aXRlKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjcmVhdGUgYSBtYWNybyBhbmQgZnVuY3Rpb24gc28gdGhhdCB0aGUgc2ltcGxlIHVuaXQgdGVzdAoJICBjYXNlIGNhbiBiZSBqdXN0IG9uZSBtYWNybyB0byBjcmVhdGUgbWFpbigpCgoyMDA2LTA2LTMwIDEzOjE3OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRml4IGRlc2VyaWFsaXNhdGlvbiBmcm9tIFhNTC4gU2V0IHBhcmVudCBtYW51YWxseSBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9iaW5fYWRkKCksIHNpbmNlIGdzdF9iaW5fYWRkKCkgd2lsbCB1bmxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX21ha2VfZWxlbWVudCk6CgkgIEZpeCBkZXNlcmlhbGlzYXRpb24gZnJvbSBYTUwuIFNldCBwYXJlbnQgbWFudWFsbHkKCSAgaW5zdGVhZCBvZiB1c2luZyBnc3RfYmluX2FkZCgpLCBzaW5jZSBnc3RfYmluX2FkZCgpCgkgIHdpbGwgdW5saW5rIGFsbCBwYWRzIG9mIHRoZSBlbGVtZW50IGJlaW5nIGFkZGVkLgoJICBGaXhlcyAjMzQxNjY3LgoKMjAwNi0wNi0yOCAxNToxOTowOCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvZ3N0LmM6IEZpeCBtaXNzaW5nIGdfc3RyZHVwKCkgYW5kIGRvdWJsZSBmcmVlIHdoZW4gdXNpbmcgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L2dzdC5jOiAocHJlcGFyZV9mb3JfbG9hZF9wbHVnaW5fZnVuYyksIChzcGxpdF9hbmRfaXRlcmF0ZSk6CgkgIEZpeCBtaXNzaW5nIGdfc3RyZHVwKCkgYW5kIGRvdWJsZSBmcmVlIHdoZW4gdXNpbmcgdGhlCgkgIC0tZ3N0LXBsdWdpbi1sb2FkIGNvbW1hbmQgbGluZSBvcHRpb24gKCMzNDYwOTcpLgoKMjAwNi0wNi0yMyAxMzoxNjo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IFByb21vdGUgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyBpbiBleGFtcGxlIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIFByb21vdGUgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyBpbiBleGFtcGxlIGluIGRvY3MuCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBVc2UgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyBoZXJlIHRvbyAoIzM0MjUwMykuCgoyMDA2LTA2LTIzIDEwOjMwOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCBidWZmZXIgcHJvYmUgZXhhbXBsZSBjb21waWxhdGlvbiBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4IGJ1ZmZlciBwcm9iZSBleGFtcGxlIGNvbXBpbGF0aW9uIGluCgkgIEFETSAoIzM0NTcwOCkuCgoyMDA2LTA2LTIyIDE3OjA5OjEzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogV2UgbmVlZCB0byBkZWFjdGl2YXRlIHNyYyBwYWRzIGZpcnN0IGFuZCB0aGVuIHNpbmsgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBXZSBuZWVkIHRvIGRlYWN0aXZhdGUgc3JjIHBhZHMgZmlyc3QgYW5kIHRoZW4gc2luayBwYWRzLgoJICBUaGUgcmVhc29uIGlzIHRoZSBzcmMgcGFkcyBtaWdodCBiZSBibG9ja2luZyB3aGlsZSBob2xkaW5nIHRoZSBzdHJlYW1pbmcKCSAgbG9jaywgc28gd2UgbmVlZCB0byBkZWFjdGl2YXRlIHRoZW0gZmlyc3Qgc28gdGhhdCBkZWFjdGl2YXRpbmcgdGhlIHNpbmsKCSAgcGFkcyBkb2Vzbid0IGJsb2NrIChzaW5jZSBpdCB3aWxsIHJlcXVpcmUgdGhlIHN0cmVhbWluZyBsb2NrKS4KCjIwMDYtMDYtMjIgMTU6MTI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRm9yZ290IHRvIHJlbW92ZSB0d28gdW5uZWVkZWQgdW5yZWZzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBGb3Jnb3QgdG8gcmVtb3ZlIHR3byB1bm5lZWRlZCB1bnJlZnMuCgkgIFNpbXBsaWZ5IGEgY2hlY2sgX2lzX2VxdWFsIGFsbHJlYWR5IGNoZWNrcyB0aGUgb2J2aW91cyBjYXNlLgoKMjAwNi0wNi0yMiAxNDowOTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBTb21lIGRvY3MgYWJvdXQgd2hhdCBwYWRfYmxvY2sgc2hvdWxkIGRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgU29tZSBkb2NzIGFib3V0IHdoYXQgcGFkX2Jsb2NrIHNob3VsZCBkby4KCjIwMDYtMDYtMjIgMTM6NTE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggY3Jhc2hlciB3aGVuIHBhc3NlZCBOVUxMLiBEb2MgY2xhcmlmaWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlcGxhY2UpOgoJICBGaXggY3Jhc2hlciB3aGVuIHBhc3NlZCBOVUxMLiBEb2MgY2xhcmlmaWNhdGlvbi4KCSAgT3B0aW1pemUgZm9yIHRoZSB0cml2aWFsIGNhc2UuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gY2xlYW51cC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBEb24ndCB1c2Ugc2lsbHkgZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzLCBHU1RfUEFEX0NBUFMKCSAgaXMgd2hhdCB3ZSBuZWVkIGFuZCBpdCBhdm9pZHMgYSB3aG9sZSBsb3Qgb2YgcmVkdW5kYW50CgkgIHJlZmNvdW50IG9wZXJhdGlvbnMuCgoyMDA2LTA2LTIyIDA4OjUzOjQwICswMDAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcEBseXNhdG9yLmxpdS5zZT4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggJ0VtYmVkZGluZyBzdGF0aWMgZWxlbWVudHMnIHNlY3Rpb24gdG8gdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGhpbGlwIErDpGdlbnN0ZWR0ICA8cGhpbGlwIGF0IGx5c2F0b3IgbGl1IHNlPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggJ0VtYmVkZGluZyBzdGF0aWMgZWxlbWVudHMnIHNlY3Rpb24gdG8gdXNlCgkgIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyAoIzM0NTYwNykuCgoyMDA2LTA2LTIxIDExOjEyOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogQXR0ZW1wdCB0byAnZml4JyBzcHVyaW91c2x5IGZhaWxpbmcgdGVzdCBjYXNlOiBpdCBzZWVtcyBsaWtlIHRoZSB0aW1lb3V0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6ICh0ZXN0X3N0b3BfZnJvbV9hcHApOgoJICBBdHRlbXB0IHRvICdmaXgnIHNwdXJpb3VzbHkgZmFpbGluZyB0ZXN0IGNhc2U6IGl0IHNlZW1zIGxpa2UgdGhlCgkgIHRpbWVvdXQgb2YgaGFsZiBhIHNlY29uZCBpcyBzaW1wbHkgdG9vIHNtYWxsIHdoZW4gdGhlIHN5c3RlbSBpcyB1bmRlcgoJICBsb2FkIG90aGVyd2lzZSwgYW5kIHRoZSB0aW1lb3V0IGRvZXNuJ3QgcmVhbGx5IHNlZW0gdG8gc2VydmUgYW55CgkgIHBhcnRpY3VsYXIgcHVycG9zZSBoZXJlLiBHaXZlIHRoZSBwaXBlbGluZSBhIGZldyBzZWNvbmRzIHRvIHByZXJvbGwKCSAgZmlyc3QsIGFuZCB0aGVuIGdpdmUgaXQgYW5vdGhlciBoYWxmIGEgc2Vjb25kIHRvIGdvIGZyb20gUEFVU0VEIHRvCgkgIFBMQVlJTkcgYW5kIG1hcnNoYWwgdGhlIG1lc3NhZ2UgaW50byB0aGUgbWFpbiB0aHJlYWQuCgoyMDA2LTA2LTIxIDEwOjE0OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubTogRG9uJ3Qgb25seSB1c2UgdW52ZXJzaW9uZWQgdG9vbHMsIHRyeSB2ZXJzaW9uZWQgdG9vbHMgYXMgd2VsbCAoIzM0NTA4NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkgIERvbid0IG9ubHkgdXNlIHVudmVyc2lvbmVkIHRvb2xzLCB0cnkgdmVyc2lvbmVkIHRvb2xzIGFzIHdlbGwKCSAgKCMzNDUwODYpLgoKMjAwNi0wNi0yMSAxMDowMTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRml4IHNvbWUgdHlwb3MsIG1ha2UgZG9jcyBtb3JlIGV4cGxpY2l0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICBGaXggc29tZSB0eXBvcywgbWFrZSBkb2NzIG1vcmUgZXhwbGljaXQuCgoyMDA2LTA2LTIwIDA4OjQwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHNvbWUgbW9yZSBnaG9zdHBhZCB0ZXN0cywgbWFpbmx5IGJsb2NraW5nIGFuZCBwcm9iZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoYmxvY2tfY2FsbGJhY2spLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSBnaG9zdHBhZCB0ZXN0cywgbWFpbmx5IGJsb2NraW5nCgkgIGFuZCBwcm9iZXMuCgoyMDA2LTA2LTE5IDA4OjU2OjQ4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgbGF0ZXN0IHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxhdGVzdCB1cGRhdGVzCgoyMDA2LTA2LTE2IDE2OjI4OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay4qOiBDaGVjayBpZiB3ZSBjYW4gc2VlayBpbiB0aGUgZmlsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHdlIGFsd2F5cyBjYW4uIFBvc3QgYW4gZXJyb3Igd2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSksIChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19ldmVudCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBDaGVjayBpZiB3ZSBjYW4gc2VlayBpbiB0aGUgZmlsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nCgkgIHdlIGFsd2F5cyBjYW4uIFBvc3QgYW4gZXJyb3Igd2hlbiB3ZSBhcmUgYXNrZWQgdG8gc2VlayBpbiBhCgkgIG5vbi1zZWVrYWJsZSBmaWxlIChsaWtlIGEgZmlmbykuIEZpeGVzICMzNDMzMTIuCgkgIFNvbWUgY2xlYW51cHMuCgoyMDA2LTA2LTE2IDE0OjMxOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBVbi1nYXJibGUgKGZvdXJjYykgYml0IGluIGZpbHRlcmVkIGNhcHMgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBVbi1nYXJibGUgKGZvdXJjYykgYml0IGluIGZpbHRlcmVkIGNhcHMgc2VjdGlvbi4KCjIwMDYtMDYtMTYgMDk6Mzk6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IERvbid0IGxlYWsgYnVzIHJlZmVyZW5jZSBpbiBzYW1wbGUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBEb24ndCBsZWFrIGJ1cyByZWZlcmVuY2UgaW4gc2FtcGxlIGNvZGUuCgoyMDA2LTA2LTE2IDA4OjMwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgYXV0b2dlbi5zaDogQWRkIGRlZmF1bHQgZm9yIG5ldyAtLWVuYWJsZS1wbHVnaW4tZG9jcyBzd2l0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIEFkZCBkZWZhdWx0IGZvciBuZXcgLS1lbmFibGUtcGx1Z2luLWRvY3Mgc3dpdGNoLgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIG5ldyBHU1RfUExVR0lOX0RPQ1MgbWFjcm8gdG8gY2hlY2sgZm9yIHB5eG1sIGV0Yy4KCSAgRml4ZXMgIzM0NDAzOS4KCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBVc2UgbmV3IEVOQUJMRV9QTFVHSU5fRE9DUyBjb25kaXRpb25hbC4KCjIwMDYtMDYtMTQgMTA6MzQ6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2UgaXQgY2xlYXIgd2l0aCBhIEZJWE1FIGFuZCBhIHJlYWwgZGVmaW5lIHdoYXQgdGhlICNpZiAwIHByZXZpb3VzbHkgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGdzdF9iaW5fcXVlcnkpOgoJICBNYWtlIGl0IGNsZWFyIHdpdGggYSBGSVhNRSBhbmQgYSByZWFsIGRlZmluZSB3aGF0IHRoZSAjaWYgMAoJICBwcmV2aW91c2x5IGRpc2FibGVkLgoKMjAwNi0wNi0xNCAxMDozMTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBEb24ndCByYW5kb21seSBhbmQgc2lsZW50bHkgcmVzZXQgYSBzZWdtZW50IHdoZW4gdGhlIGZvcm1hdCBjaGFuZ2VzIGFzIHRoaXMgaXMgYSBidWcgc29tZXdoZXJlIHVwc3RyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgRG9uJ3QgcmFuZG9tbHkgYW5kIHNpbGVudGx5IHJlc2V0IGEgc2VnbWVudCB3aGVuIHRoZSBmb3JtYXQKCSAgY2hhbmdlcyBhcyB0aGlzIGlzIGEgYnVnIHNvbWV3aGVyZSB1cHN0cmVhbS4gRml4ZXMgIzMzMDM3OS4KCjIwMDYtMDYtMTQgMDg6MjY6NTMgKzAwMDAgIFdvdXRlciBQYWVzZW4gPHdvdXRlckBrYW5nYXJvb3QubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZpeCBjb250cm9sbGluZyBvZiBmbG9hdCBwcm9wZXJ0aWVzICgjMzQ0ODQ5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgUGFlc2VuICA8d291dGVyIGF0IGthbmdhcm9vdCBuZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICBGaXggY29udHJvbGxpbmcgb2YgZmxvYXQgcHJvcGVydGllcyAoIzM0NDg0OSkuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX2NsYXNzX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBXaGlsZSB3ZSdyZSBhdCBpdCwgYWRkIHNvbWUgZmxvYXQgc3R1ZmYgdG8gdW5pdCB0ZXN0LgoKMjAwNi0wNi0xMyAxOToyNDozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGEgZ2RwIGltYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGRvY3MvaW1hZ2VzL2dkcC1oZWFkZXIuc3ZnOgoJICBhZGQgYSBnZHAgaW1hZ2UKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL2dkcC1oZWFkZXIucG5nOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgYWRkIGl0IHRvIHRoZSBBUEkgZG9jcwoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJICBmaXggdHlwbwoKMjAwNi0wNi0xMyAxNjo0MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogSWYgdGhlIGZvcmsoKSdlZCBjaGlsZCBwcm9jZXNzIGNhbid0IHdyaXRlIHRoZSB1cGRhdGVkIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgdG8gZGlzayBmb3Igc29tZSByZWFzb24sIG1ha2UgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLCAoaW5pdF9wb3N0KToKCSAgSWYgdGhlIGZvcmsoKSdlZCBjaGlsZCBwcm9jZXNzIGNhbid0IHdyaXRlIHRoZSB1cGRhdGVkIHJlZ2lzdHJ5IGNhY2hlCgkgIGZpbGUgdG8gZGlzayBmb3Igc29tZSByZWFzb24sIG1ha2UgaXQgZXhpdCB3aXRoIGEgZmFpbHVyZSBleGl0IGNvZGUsCgkgIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gdGhlbiByZS1zY2FuIHRoZSBwbHVnaW5zIGl0c2VsZiBhbmQgdXBkYXRlIHRoZQoJICByZWdpc3RyeSBzdHJ1Y3R1cmVzIGluIG1lbW9yeSBhbmQgd29yayB3aXRoIHRoYXQgKHJhdGhlciB0aGFuIGZhaWxpbmcKCSAgd2hlbiBjcmVhdGluZyBlbGVtZW50cyBiZWNhdXNlIHNlZW1pbmdseSBubyBwbHVnaW5zIGFyZSBhdmFpbGFibGUpLgoJICBSZWZhY3RvciByZWdpc3RyeSBzY2FubmluZyBjb2RlIGludG8gc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHRoaXMgYW5kCgkgIGFsc28gc2VwYXJhdGUgZm9yaygpIGFuZCBub24tZm9yaygpIGNvZGUgcGF0aHMuIEZpeGVzICMzNDQ3NDguCgoyMDA2LTA2LTEzIDE2OjI0OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCB3cm9uZyBQbHVnaW5EZXNjLiBGaXhlcyAjMzQ0NzU1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4IHdyb25nIFBsdWdpbkRlc2MuIEZpeGVzICMzNDQ3NTUuCgoyMDA2LTA2LTEzIDEzOjMwOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEZpeCBzaWxseSBidWcgdGhhdCBwcmV2ZW50ZWQgdXMgZnJvbSBjcmVhdGluZyB+Ly5nc3RyZWFtZXItMC4xMCBhbmQgd3JpdGluZyB0aGUgcmVnaXN0cnkgaW4gb25lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIEZpeCBzaWxseSBidWcgdGhhdCBwcmV2ZW50ZWQgdXMgZnJvbSBjcmVhdGluZwoJICB+Ly5nc3RyZWFtZXItMC4xMCBhbmQgd3JpdGluZyB0aGUgcmVnaXN0cnkgaW4gb25lCgkgIGdvICh0aGUgZmlyc3QgY2FsbCB0byBnX21rc3RlbXAoKSB3b3VsZCBvdmVyd3JpdGUgdGhlCgkgIHBsYWNlaG9sZGVyIGluIHRoZSB0ZW1wbGF0ZSBzdHJpbmcsIHNvIHRoZSBzZWNvbmQgY2FsbAoJICB0byBnX21rc3RlbXAoKSBhZnRlciBjcmVhdGluZyB0aGUgbWlzc2luZyBkaXJlY3RvcnkKCSAgd291bGQgdGhlbiBlcnJvciBvdXQgd2l0aCAnaW52YWxpZCBhcmd1bWVudCcpLgoKMjAwNi0wNi0xMyAxMToxNzowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogRnJlZSBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIEZyZWUgc3RyaW5nLgoKMjAwNi0wNi0xMyAwODoyMDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiByZW1vdmUgR0xpYiAyLjYgY29tcGF0aWJpbGl0eSBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgcmVtb3ZlIEdMaWIgMi42IGNvbXBhdGliaWxpdHkgY29kZQoKMjAwNi0wNi0xMiAxNjo1MDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IGJ1aWxkIHdpdGggJ21ha2UgLWogTicgZXZlbiBtb3JlICgjMzQwMDE2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGQgd2l0aCAnbWFrZSAtaiBOJyBldmVuIG1vcmUgKCMzNDAwMTYpLgoKMjAwNi0wNi0xMiAwOTozNzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGaXggZG9jcy4KCjIwMDYtMDYtMTIgMDk6Mjk6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBVc2UgR19VTkxJS0VMWSB0byBoZWxwIHRoZSBjb21waWxlciBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwgKGdzdF9zZWdtZW50X2NsaXApOgoJICBVc2UgR19VTkxJS0VMWSB0byBoZWxwIHRoZSBjb21waWxlciBhIGJpdC4KCjIwMDYtMDYtMTIgMDk6Mjg6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHNvbmljcHVsc2UuZGU+CgoJICBnc3QvOiBjb25zdGlmeSBxdWFyayByZWdpc3RyYXRpb24gc3RyaW5ncy4gRml4ZXMgIzM0NDExNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljIGF0IHNvbmljcHVsc2UgZG90IGRlPgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKToKCSAgY29uc3RpZnkgcXVhcmsgcmVnaXN0cmF0aW9uIHN0cmluZ3MuIEZpeGVzICMzNDQxMTUKCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZyBpcyBfcGFkX3B1c2goKSBieSBpbnRlcm5hbGx5CgkgIGNhbGxpbmcgZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQoKS4KCjIwMDYtMDYtMTIgMDk6MjM6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEluaXQgX3R5cGUgZm9yIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2dldF90eXBlKSwgKGdzdF9idWZmZXJfZmluYWxpemUpLAoJICAoX2dzdF9idWZmZXJfY29weSksIChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLCAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKSwKCSAgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KSwgKGdzdF9idWZmZXJfc3Bhbik6CgkgIEluaXQgX3R5cGUgZm9yIGNvbnNpc3RlbmN5LgoJICBVc2UgX0ZMQUdTIG1hY3JvIHRvIGF2b2lkIHR5cGUgY2hlY2suCgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tzIGluIHN1YmJ1ZmVyIGNvZGUuCgoyMDA2LTA2LTEyIDA5OjE3OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVXNlIF9DQVNUIG1hY3JvcyB0byBhdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfZGVidWdfaGVscCk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksIChnc3RfcGx1Z2luX2xpc3RfZnJlZSk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfcGx1Z2luX2ZpbHRlciksCgkgIChnc3RfcmVnaXN0cnlfZmVhdHVyZV9maWx0ZXIpLCAoZ3N0X3JlZ2lzdHJ5X2ZpbmRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9maW5kX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X2dldF9wbHVnaW5fbGlzdCksCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKSwgKGdzdF9yZWdpc3RyeV9sb29rdXBfbG9ja2VkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF91bnJlZiksCgkgIChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSksIChnc3RfdmFsdWVfbWluaV9vYmplY3RfZnJlZSksCgkgIChnc3RfdmFsdWVfbWluaV9vYmplY3RfY29weSk6CgkgIFVzZSBfQ0FTVCBtYWNyb3MgdG8gYXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgQWRkZWQgc29tZSBtb3JlIEdfVU5MSUtFTFkuCgoyMDA2LTA2LTEyIDA5OjExOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIEFQSTogR1NUX0JVRkZFUl9JU19ESVNDT05UCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgQXZvaWQgdHlwZSBjaGVjayBpbiBmbGFnIGFjY2Vzc29yLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBBZGQgX0NBU1QgbWFjcm9zLgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfQ0FTVAoJICBBUEk6IEdTVF9QTFVHSU5fQ0FTVAoJICBBUEk6IEdTVF9QTFVHSU5fRkVBVFVSRV9DQVNUCgoyMDA2LTA2LTEyIDA5OjA2OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9nZXRfdHlwZSksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKToKCSAgQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgkgIEF2b2lkIHR5cGUgY2hlY2sgaW4gX3JlZi9fdW5yZWYgc2luY2UgdGhhdCBpcyBhbHNvCgkgIGRvbmUgaW4gZ2xpYi4KCjIwMDYtMDYtMTIgMDg6NTU6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChnc3RfZ19lcnJvcl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2dldF90eXBlKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19saXN0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhbmRsZXJfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3R5cGUpOgoJICBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCjIwMDYtMDYtMTIgMDg6NTE6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcm9wZXJseSBwcmludCBlbnVtIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3NpZ25hbF9pbmZvKToKCSAgUHJvcGVybHkgcHJpbnQgZW51bSB2YWx1ZXMuCgoyMDA2LTA2LTEyIDA4OjQ3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGluZm8uKjogQWRkIHNvbWUgR19bVU5dTElLRUxZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX3NldF9hY3RpdmUpLAoJICAoZ3N0X2RlYnVnX2NhdGVnb3J5X3NldF90aHJlc2hvbGQpLCAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0cik6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQWRkIHNvbWUgR19bVU5dTElLRUxZLgoJICBNYWludGFpbiBfX2dzdF9kZWJ1Z19taW4gdG8gYXZvaWQgZm9ybWF0dGluZyB0aGUgYXJndW1lbnRzIG9mCgkgIGRlYnVnIG1lc3NhZ2VzIHRoYXQgd2lsbCBiZSBkcm9wcGVkIGFueXdheSB0byBhdm9pZCBhIGxvdCBvZgoJICBvdmVyaGVhZCBmcm9tIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtLgoKMjAwNi0wNi0xMSAyMDozNzo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcG8vUE9URklMRVMuKjogYWRkIG1pc3NpbmcgZmlsZXMgY29udGFpbmluZyB0cmFuc2xhdGFibGUgc3RyaW5ncywgdGVsbCBpbnRsdG9vbCBhYm91dCBvbmUgZXhjZXB0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICAqIHBvL1BPVEZJTEVTLnNraXA6CgkgIGFkZCBtaXNzaW5nIGZpbGVzIGNvbnRhaW5pbmcgdHJhbnNsYXRhYmxlIHN0cmluZ3MsIHRlbGwgaW50bHRvb2wgYWJvdXQKCSAgb25lIGV4Y2VwdGlvbgoKMjAwNi0wNi0xMSAxNzoyODoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOiBhZGQgdGVzdC1iaW5hcnkgdG8gaWdub3JlIGxpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICBhZGQgdGVzdC1iaW5hcnkgdG8gaWdub3JlIGxpc3QKCjIwMDYtMDYtMTEgMTc6MDM6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6IHJlb3JkZXIgKHB1dCBkcCBpbnRvIGEgY2hhcHRlcikgYW5kIGluZGVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICByZW9yZGVyIChwdXQgZHAgaW50byBhIGNoYXB0ZXIpIGFuZCBpbmRlbnQKCjIwMDYtMDYtMTEgMTE6NTY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL3JhbmRvbS9hdXRvdG9vbHM6CgkgIGFkZCBub3RlcyBvbiBvdXIgYXV0b3Rvb2xzIHNldHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbm90ZXMgb24gb3VyIGF1dG90b29scyBzZXR1cAoKMjAwNi0wNi0xMCAxNzozMjo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC44ID09PQoKMjAwNi0wNi0xMCAxNzowNjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuOAoKMjAwNi0wNi0xMCAxMTo1MTo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IG1vdmUgcGlkIGRlY2xhcmF0aW9uIHRvIGRlY2xhcmF0aW9uIGJsb2NrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIG1vdmUgcGlkIGRlY2xhcmF0aW9uIHRvIGRlY2xhcmF0aW9uIGJsb2NrCgoyMDA2LTA2LTEwIDExOjQ3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogdXNlIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkgaW4gb3VyIGZvcmtlZCBjaGlsZDsgdGhpcyBlbnN1cmVzIHRoYXQgbm9uZSBvZiB0aGUgcmVnaXN0ZXJlZCBleGl0IGhhbmRsZXJzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICB1c2UgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSBpbiBvdXIgZm9ya2VkIGNoaWxkOyB0aGlzIGVuc3VyZXMKCSAgdGhhdCBub25lIG9mIHRoZSByZWdpc3RlcmVkIGV4aXQgaGFuZGxlcnMgZnJvbSB3aGF0ZXZlciBpcyB1c2luZwoJICBHU3RyZWFtZXIgZ2V0IGV4ZWN1dGVkLiAgVGhpcyBmaXhlcyBnbm9tZS1taXhlci1hcHBsZXQgZmFpbGluZwoJICB0byBsb2FkLCBiZWNhdXNlIE9SQml0IHdvdWxkIHNodXQgZG93bi4KCSAgU3BvdHRlZCBieTogRWR3YXJkIEhlcnZleSAgPGVkd2FyZEBmbHVlbmRvLmNvbT4KCSAgRml4IHN1Z2dlc3RlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICBGaXhlcyAjMzQ0NDc0CgoyMDA2LTA2LTA5IDE4OjUyOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogYmFjayB0byBUUlVOSwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNi0wOSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gVFJVTksKCj09PSByZWxlYXNlIDAuMTAuNyA9PT0KCjIwMDYtMDYtMDkgMTg6NDk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjcKCjIwMDYtMDYtMDcgMTA6NDY6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgMC4xMC42LjIgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogcG8vYWYucG86CgkgICogcG8vYXoucG86CgkgICogcG8vYmcucG86CgkgICogcG8vY2EucG86CgkgICogcG8vY3MucG86CgkgICogcG8vZGUucG86CgkgICogcG8vZW5fR0IucG86CgkgICogcG8vZnIucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmIucG86CgkgICogcG8vbmwucG86CgkgICogcG8vcnUucG86CgkgICogcG8vc3EucG86CgkgICogcG8vc3IucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdHIucG86CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgICogcG8vemhfQ04ucG86CgkgICogcG8vemhfVFcucG86CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjYuMiBwcmVyZWxlYXNlCgoyMDA2LTA2LTA3IDA4OjM4OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IGxlYWsgc3BvdHRlZCBieSBjb3Zlcml0eSBjaGVja2VyLiBGaXhlcyAjMzQzODI3CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2d0eXBlX3Jlc29sdmVyKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2luZm8pOgoJICBGaXggbGVhayBzcG90dGVkIGJ5IGNvdmVyaXR5IGNoZWNrZXIuIEZpeGVzICMzNDM4MjcKCSAgRml4IGFub3RoZXIgb3RoZXIgbGVhayBmb3VuZCBieSBwYW9sbyBib3JlbGxpLgoKMjAwNi0wNi0wNiAxNjo1Mjo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGlmZGVmIExPQURTQVZFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZmRlZiBMT0FEU0FWRQoKMjAwNi0wNi0wNiAxNToxODoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3Rjb250cm9sLnNnbWw6CgkgIHJlbW92ZSBvbGQgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBkb2NzCgoyMDA2LTA2LTA2IDE0OjUxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICB0ZXJtaW5hdGUgaWZkZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlcm1pbmF0ZSBpZmRlZgoKMjAwNi0wNi0wNiAxNDozMjo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RieXRlc3RyZWFtLnNnbWw6CgkgIHJlbW92ZSB1bnVzZWQgdG1wbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHVudXNlZCB0bXBsCgoyMDA2LTA2LTA2IDE0OjI5OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGFkZCBub3RlIHRvIGRvY3MgYWJvdXQgR0RQIHZlcnNpb25pbmc7IHJlbW92ZSB0bXBsIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBub3RlIHRvIGRvY3MgYWJvdXQgR0RQIHZlcnNpb25pbmc7IHJlbW92ZSB0bXBsIGZpbGUKCjIwMDYtMDYtMDYgMTQ6MjQ6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC4qOiBBUEk6IGFkZCBhIEdzdERQUGFja2V0aXplciBvYmplY3QsIGFuZCBjcmVhdGUvZnJlZSBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcl9hbnkpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHNfYW55KSwKCSAgKGdzdF9kcF92ZXJzaW9uX2dldF90eXBlKSwgKGdzdF9kcF9pbml0KSwKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcl8xXzApLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHNfMV8wKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8wXzIpLCAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzFfMCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX3BhY2tldGl6ZXJfbmV3KSwKCSAgKGdzdF9kcF9wYWNrZXRpemVyX2ZyZWUpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgQVBJOiBhZGQgYSBHc3REUFBhY2tldGl6ZXIgb2JqZWN0LCBhbmQgY3JlYXRlL2ZyZWUgZnVuY3Rpb25zCgkgIEFQSTogYWRkIEdzdERQVmVyc2lvbiBlbnVtCgkgIEFkZCAxLjAgZXZlbnQgZnVuY3Rpb24gdGhhdCB1c2VzIHRoZSBzdHJpbmcgc2VyaWFsaXphdGlvbgoJICBTZXJpYWxpemUgbW9yZSB1c2VmdWwgYnVmZmVyIGZsYWdzCgkgIEZpeGVzICMzNDM5ODgKCjIwMDYtMDYtMDYgMTQ6MjE6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgIGFkZCBzeW1ib2wKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzeW1ib2wKCjIwMDYtMDYtMDYgMTQ6MTY6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3aWR0aCByZXNwZWN0YXRpb25pemluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2lkdGggcmVzcGVjdGF0aW9uaXppbmcKCjIwMDYtMDYtMDYgMTQ6MTA6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBhZGQgcHBjNjQgc3RydWN0dXJlIHNpemVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSAgYWRkIHBwYzY0IHN0cnVjdHVyZSBzaXplcwoKMjAwNi0wNi0wNiAxMzo1OToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IGdlbmVyYXRlIGFuZCBhZGQgc3RydWN0dXJlIHNpemUgbGlzdHMgZm9yIHg4Nl82NAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgZ2VuZXJhdGUgYW5kIGFkZCBzdHJ1Y3R1cmUgc2l6ZSBsaXN0cyBmb3IgeDg2XzY0CgoyMDA2LTA2LTA2IDEzOjUzOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNvc21ldGljcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWNzCgoyMDA2LTA2LTA2IDEzOjQ4OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IGZhY3RvciBvdXQgdGhlIG1ldGhvZCBmcm9tIHRlc3RzIHRoYXQgY2hlY2tzIHNpemUgb2Ygc3RydWN0dXJlcywgYW5kIGFkZCBjb2RlIHRvIGdlbmVyYXRlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2FiaV9saXN0KToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBmYWN0b3Igb3V0IHRoZSBtZXRob2QgZnJvbSB0ZXN0cyB0aGF0IGNoZWNrcyBzaXplIG9mIHN0cnVjdHVyZXMsCgkgIGFuZCBhZGQgY29kZSB0byBnZW5lcmF0ZSB0aGUgaGVhZGVyIGNvbnRhaW5pbmcgdGhlc2Ugc2l6ZXMKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICB1c2UgaXQKCjIwMDYtMDYtMDYgMTM6MTE6MDMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RzZWdtZW50Lmg6IERvbid0IHVzZSBjKystc3R5bGUgY29tbWVudHMsIGZpeGVzICMzNDM5MjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgRG9uJ3QgdXNlIGMrKy1zdHlsZSBjb21tZW50cywgZml4ZXMgIzM0MzkyOQoKMjAwNi0wNi0wNiAwOTo0Nzo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICB3aGl0ZXNwYWNlL3dpZHRoIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlL3dpZHRoIGZpeGVzCgoyMDA2LTA2LTA2IDA4OjUwOjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNi0wNiAwODo1MDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RlcnJvci5jOgoJICByZW1vdmUgYW4gZXh0cmEgc3BhY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbiBleHRyYSBzcGFjZQoKMjAwNi0wNi0wNSAxMzowNTozNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogcGx1Z2luX3BhdGhzIGlzIG5vdCB1c2VkIGlmIHdlIGJ1aWxkIHdpdGhvdXQgcmVnaXN0cnkgc3VwcG9ydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBwbHVnaW5fcGF0aHMgaXMgbm90IHVzZWQgaWYgd2UgYnVpbGQgd2l0aG91dCByZWdpc3RyeSBzdXBwb3J0LgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jb3B5KToKCSAgX2NvcHkoKSB3YXMgYWx3YXlzIHJldHVybmluZyBOVUxMLi4uCgoyMDA2LTA2LTA1IDEyOjU1OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogX2NvcHkoKSB3YXMgYWx3YXlzIHJldHVybmluZyBOVUxMLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jb3B5KToKCSAgX2NvcHkoKSB3YXMgYWx3YXlzIHJldHVybmluZyBOVUxMLi4uCgoyMDA2LTA2LTAyIDE2OjQ2OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogZmFjdG9yIG91dCBDUkMgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCk6CgkgIGZhY3RvciBvdXQgQ1JDIGNvZGUKCjIwMDYtMDYtMDIgMTY6NDU6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogbWFrZSBzdXJlIHdlIHVuc2V0IGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKToKCSAgbWFrZSBzdXJlIHdlIHVuc2V0IGNhcHMKCjIwMDYtMDYtMDIgMTY6NDE6MDIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IEFkZCBhIGNvbmQvbXV0ZXggdG8gdGhlIGNoZWNrIHN1cHBvcnQgbGliLCBzaWduYWwgdGhpcyB3aGVuZXZlciB3ZSBhZGQgdG8gdGhlIGJ1ZmZlcnMgbGlzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2luaXQpLAoJICAoZ3N0X2NoZWNrX2NoYWluX2Z1bmMpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFkZCBhIGNvbmQvbXV0ZXggdG8gdGhlIGNoZWNrIHN1cHBvcnQgbGliLCBzaWduYWwgdGhpcyB3aGVuZXZlciB3ZQoJICBhZGQgdG8gdGhlIGJ1ZmZlcnMgbGlzdC4gVGhpcyB3aWxsIGFsbG93IHRlc3RzIHRvIG5vdCBidXN5LXdhaXQgb24KCSAgdGhlIGJ1ZmZlci1saXN0LgoKMjAwNi0wNi0wMiAxMDo1ODo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IGZhY3RvciBvdXQgc29tZSBjb21tb24gaGVhZGVyIGluaXQgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCk6CgkgIGZhY3RvciBvdXQgc29tZSBjb21tb24gaGVhZGVyIGluaXQgY29kZQoKMjAwNi0wNi0wMiAxMDowODozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBBUEk6IG1ha2UgZ3N0X2RwX2NyYygpIHB1YmxpYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9jcmMpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgQVBJOiBtYWtlIGdzdF9kcF9jcmMoKSBwdWJsaWMKCjIwMDYtMDYtMDIgMDk6MTM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRlYnVnIGNoYW5nZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgY2hhbmdlCgoyMDA2LTA2LTAxIDE4OjMwOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IGNvbmRpdGlvbmFsbHkgcmVnaXN0ZXIgZmlsZWluZGV4ZXIgKGZpeGVzICMzNDM1OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogKHBsdWdpbl9pbml0KToKCSAgY29uZGl0aW9uYWxseSByZWdpc3RlciBmaWxlaW5kZXhlciAoZml4ZXMgIzM0MzU5OCkKCjIwMDYtMDYtMDEgMTg6MjI6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuaDogQ2FuJ3QgY2FzdCBpZmFjZXMgdG8gYSBjbGFzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIENhbid0IGNhc3QgaWZhY2VzIHRvIGEgY2xhc3MKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJICBGaXggbW9yZSBnb2JqZWN0IG1hY3Jvczogb2JqPC0+a2xhc3MsIEdzdFhYWDwtPkdzdFhYWENsYXNzCgoyMDA2LTA2LTAxIDExOjEzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogbWFrZSBzdXJlIHdlIHplcm8gdGhlIHdob2xlIEFCSS1jb21wYXRpYmxlIGFyZWEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcik6CgkgIG1ha2Ugc3VyZSB3ZSB6ZXJvIHRoZSB3aG9sZSBBQkktY29tcGF0aWJsZSBhcmVhCgoyMDA2LTA2LTAxIDA5OjAyOjIzICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogTWFrZSBzdXJlIHRoZSBFT1MgZmxhZyBpcyBjbGVhcmVkIGZyb20gcGFkcyBhZnRlciBhIGZsdXNoIG9yIHN0b3AuIEZpeGVzICMzNDM1MzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8gYXQgbm52YSBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCk6CgkgIE1ha2Ugc3VyZSB0aGUgRU9TIGZsYWcgaXMgY2xlYXJlZCBmcm9tIHBhZHMgYWZ0ZXIgYSBmbHVzaAoJICBvciBzdG9wLiBGaXhlcyAjMzQzNTM4LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciBjb2xsZWN0cGFkcyByZXVzYWdlIGFmdGVyIEVPUy4KCjIwMDYtMDUtMzAgMjA6MjU6MDMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3QuYzogc2V0ICNpbmNsdWRlIDxzeXMvd2FpdC5oPiBpbiBhICNpZmRlZiAjaWZkZWYgSEFWRV9GT1JLCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgc2V0ICNpbmNsdWRlIDxzeXMvd2FpdC5oPiBpbiBhICNpZmRlZiAjaWZkZWYgSEFWRV9GT1JLCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBleHBvcnQgZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IGdzdF9wYWRfc2V0X2FjY2VwdGNhcHNfZnVuY3Rpb24sIGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3LAoJICBnc3RfdmFsdWVfZnJhY3Rpb25fbXVsdGlwbHkKCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICBhZGQgYSBsaW5rIHRvIGludGwubGliCgoyMDA2LTA1LTMwIDE1OjU1OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBwYWQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBjb2xsZWN0aW9uIHRoYXQgY291bGQgY2F1c2UgdGhlIG90aGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgcGFkIGlzIHJlbW92ZWQgZnJvbSB0aGUgY29sbGVjdGlvbgoJICB0aGF0IGNvdWxkIGNhdXNlIHRoZSBvdGhlciBwYWRzIHRvIGJlY29tZSBjb2xsZWN0YWJsZS4KCjIwMDYtMDUtMzAgMTU6NTM6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGFyaWZ5IHRoZSB1c2Ugb2YgX3JlbGVhc2VfcmVxdWVzdF9wYWQoKSBhbmQgX2dldF9yZXF1ZXN0X3BhZCgpIGEgYml0IGJldHRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgQ2xhcmlmeSB0aGUgdXNlIG9mIF9yZWxlYXNlX3JlcXVlc3RfcGFkKCkgYW5kCgkgIF9nZXRfcmVxdWVzdF9wYWQoKSBhIGJpdCBiZXR0ZXIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wZWVrKSwKCSAgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgRml4IHNvbWUgZG9jIGFuZCBjb21tZW50IHR5cG9zLgoKMjAwNi0wNS0zMCAxNDo0MzozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGRlY2xhcmVkIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgZGVjbGFyZWQgc3ltYm9scwoKMjAwNi0wNS0zMCAxNDo0MToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZSBwbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHBvIGZpbGVzCgoyMDA2LTA1LTMwIDE0OjQwOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBidWlsZAoKMjAwNi0wNS0zMCAxNDowMzo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGFkZGVkIEhBVkVfRk9SSwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgSEFWRV9GT1JLCgoyMDA2LTA1LTMwIDEyOjA0OjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBBZGQgZGVidWcgdGhhdCBjYW4gYmUgZW5hYmxlZCB1c2luZyBhICNkZWZpbmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwgZm9yIGR1bXBpbmcgc3RhdHMgYWJvdXQgaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF91bmxvY2tlZCk6CgkgIEFkZCBkZWJ1ZyB0aGF0IGNhbiBiZSBlbmFibGVkIHVzaW5nIGEgI2RlZmluZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLAoJICBmb3IgZHVtcGluZyBzdGF0cyBhYm91dCBob3cgbGF0ZS9lYXJseSB3ZSB3ZXJlIHdoZW4gd2FraW5nIHVwIGZyb20KCSAgd2FpdGluZyBvbiB0aGUgY2xvY2suCgoyMDA2LTA1LTMwIDExOjQzOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBXaGVuIHJlYnVpbGRpbmcgdGhlIHBhZCBsaXN0LCBkb24ndCBsZWFrIHRoZSBwcmV2aW91cyBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpOgoJICBXaGVuIHJlYnVpbGRpbmcgdGhlIHBhZCBsaXN0LCBkb24ndCBsZWFrIHRoZSBwcmV2aW91cyBsaXN0LgoKMjAwNi0wNS0zMCAxMDo1Nzo0NCArMDAwMCAgTHV0eiBNdWVsbGVyIDxsdXR6QHRvcGZyb3NlLmRlPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFB1Ymxpc2ggc3VwcG9ydGVkIHF1ZXJ5IHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEx1dHogTXVlbGxlciA8bHV0eiBhdCB0b3Bmcm9zZSBkb3QgZGU+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgUHVibGlzaCBzdXBwb3J0ZWQgcXVlcnkgdHlwZXMuCgkgIFVwZGF0ZSBsYXN0X3N0b3AgZmllbGQgaW4gZ2V0X3JhbmdlIG1vZGUgc28gdGhlIHBvc2l0aW9uCgkgIHF1ZXJ5IHdvcmtzLiBGaXhlcyAjMzQyMzIxLgoKMjAwNi0wNS0zMCAxMDoxMjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfUFJFVklFV19JTUFHRSAoIzM0MzM0MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfUFJFVklFV19JTUFHRSAoIzM0MzM0MSkuCgoyMDA2LTA1LTMwIDA5OjQyOjA5ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVW5sb2NrIG11dGV4IHdoZW4gcmVtb3ZpbmcgYW4gdW5rbm93biBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8gYXQgbm52YSBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCk6CgkgIFVubG9jayBtdXRleCB3aGVuIHJlbW92aW5nIGFuIHVua25vd24gcGFkLgoJICBGaXhlcyAjMzQzMzM0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzogKGNvbGxlY3RlZF9jYiksIChwdXNoX2J1ZmZlciksCgkgIChwdXNoX2V2ZW50KSwgKHNldHVwKSwgKHRlYXJkb3duKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIGNvbGxlY3BhZHMgY2hlY2ssIGRpc2FibGVkIGZvciBub3cgYXMgY2hlY2sgY3Jhc2hlcyBmb3IKCSAgc29tZSByZWFzb24uCgoyMDA2LTA1LTI5IDE3OjIwOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBEb24ndCBsZWFrIHBhZHMgbGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpOgoJICBEb24ndCBsZWFrIHBhZHMgbGlzdHMuCgoyMDA2LTA1LTI5IDE2OjAwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nX3VubG9ja2VkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcKCSAgQWRkZWQgYXBpIHRvIHNldCB0aGUgcGFkcyB0byBmbHVzaGluZywgdXNlZnVsbCBmb3Igc2Vla2luZwoJICBjb2RlIGluIGVsZW1lbnRzIHVzaW5nIGNvbGxlY3RwYWRzLgoJICBDbGVhciBzZWdtZW50IHdoZW4gcmVjZWl2aW5nIGEgZmx1c2guCgoyMDA2LTA1LTI5IDExOjUyOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBEb24ndCBzY2FuIHJlZ2lzdHJ5IHBhdGhzIHBhc3NlZCB2aWEgLS1nc3QtcGx1Z2luLS1wYXRoIGltbWVkaWF0ZWx5ICh3aWxsIGNyYXNoLCBiZWNhdXNlIGFic29sdXRlbHkgbm90aGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGFkZF9wYXRoX2Z1bmMpLCAoaW5pdF9wb3N0KToKCSAgRG9uJ3Qgc2NhbiByZWdpc3RyeSBwYXRocyBwYXNzZWQgdmlhIC0tZ3N0LXBsdWdpbi0tcGF0aCBpbW1lZGlhdGVseQoJICAod2lsbCBjcmFzaCwgYmVjYXVzZSBhYnNvbHV0ZWx5IG5vdGhpbmcgaXMgc2V0IHVwIGFuZCBubyB0eXBlcyBhcmUKCSAgcmVnaXN0ZXJlZCBldGMuKTsgZG8gdGhpcyBsYXRlciBpbiBpbml0X3Bvc3QoKS4gRml4ZXMgIzM0MzA1Ny4KCjIwMDYtMDUtMjggMDk6MDk6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBpZiB3ZSBoYXZlIGZvcmssIGZvcmsgd2hpbGUgcmVhZGluZy9yZWJ1aWxkaW5nIHRoZSByZWdpc3RyeSBzbyB0aGUgcGFyZW50IGRvZXNuJ3QgdGFrZSB0aGUgaGl0IG9mIGhhdmluZyBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIGlmIHdlIGhhdmUgZm9yaywgZm9yayB3aGlsZSByZWFkaW5nL3JlYnVpbGRpbmcgdGhlIHJlZ2lzdHJ5CgkgIHNvIHRoZSBwYXJlbnQgZG9lc24ndCB0YWtlIHRoZSBoaXQgb2YgaGF2aW5nIGFsbCBwbHVnaW5zIGxvYWRlZAoJICBpbiBtZW1vcnkuICBGaXhlcyAjMzQyNzc3LgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ2hlY2sgaWYgd2UgaGF2ZSBmb3JrKCkKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIG5vIGZvcmsoKSBvbiB3aW4zMgoKMjAwNi0wNS0yNiAxMzo1MjowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWRkIGEgdXNlLW1tYXAgcHJvcGVydHkgdG8gZW5hYmxlIGVhc2llciB0ZXN0aW5nIG9mIGFsbCBjb2RlIHBhdGhzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfaW5pdCksIChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgQWRkIGEgdXNlLW1tYXAgcHJvcGVydHkgdG8gZW5hYmxlIGVhc2llciB0ZXN0aW5nIG9mIGFsbCBjb2RlIHBhdGhzLgoJICBCdW1wIHJhbmsgdG8gUFJJTUFSWSwgc28gZmlsZXNyYyBpcyB0aGUgcHJlZmVycmVkIGZpbGUgcmVhZGVyIGFuZCB1c2VkCgkgIGluIHRoZSBhYnNlbmNlIG9mIGdub21ldmZzc3JjLiAoQ2xvc2VzICMzNDA1MDEpCgoyMDA2LTA1LTI2IDEwOjM1OjM0ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIG1pc3NpbmcgaW5jbHVkZSwgcmVtb3ZlcyB3YXJuaW5nIG9mIG5nZXR0ZXh0IG5vdCBiZWluZyBkZWZpbmVkIG9uIHNvbWUgYXJjaGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0yNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEFkZCBtaXNzaW5nIGluY2x1ZGUsIHJlbW92ZXMgd2FybmluZyBvZiBuZ2V0dGV4dCBub3QgYmVpbmcgZGVmaW5lZCBvbgoJICBzb21lIGFyY2hlcy4KCjIwMDYtMDUtMjYgMDk6MTk6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEhhbmRsZSBOVUxMIGlucHV0IGFuZCBvdXRwdXQgcG9pbnRlcnMgc2lsZW50bHkgYXMgYSBmYWlsZWQgY29udmVyc2lvbiwgcmF0aGVyIHRoYW4gZ193YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICBIYW5kbGUgTlVMTCBpbnB1dCBhbmQgb3V0cHV0IHBvaW50ZXJzIHNpbGVudGx5IGFzIGEgZmFpbGVkIGNvbnZlcnNpb24sCgkgIHJhdGhlciB0aGFuIGdfd2FybmluZ3MuCgoyMDA2LTA1LTI1IDE1OjUyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEluaXRpYWxpemUgdmFyaWFibGUgYmVmb3JlIHVzaW5nLiBGaXhlcyAjMzQyODIwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0YXJ0KToKCSAgSW5pdGlhbGl6ZSB2YXJpYWJsZSBiZWZvcmUgdXNpbmcuIEZpeGVzICMzNDI4MjAuCgoyMDA2LTA1LTI0IDE3OjExOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBGaXggb2ZmLWJ5LW9uZSBidWcgdGhhdCB3b3VsZCBvbmx5IGFsbG93IHBlZWtzIG9mIE4tMSBieXRlcyBmcm9tIHRoZSBzdGFydCBldmVuIGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGJ1Zl9oZWxwZXJfZmluZF9wZWVrKToKCSAgRml4IG9mZi1ieS1vbmUgYnVnIHRoYXQgd291bGQgb25seSBhbGxvdyBwZWVrcyBvZiBOLTEgYnl0ZXMKCSAgZnJvbSB0aGUgc3RhcnQgZXZlbiBpZiB0aGUgYnVmZmVyIHRvIHR5cGVmaW5kIG9uIGNvbnRhaW5zCgkgIGluIGZhY3QgTiBieXRlcyBvZiBkYXRhIChtYWtlcyB2b3JiaXMgdHlwZWZpbmRpbmcgZnJvbSBhCgkgIHZvcmJpcyBpZGVudGlmaWNhdGlvbiBoZWFkZXIgYnVmZmVyIHdvcmspLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfdHlwZWZpbmRoZWxwZXJfc3VpdGUpLCAobWFpbiksIChmb29iYXJfdHlwZWZpbmQpLAoJICAocGx1Z2luX2luaXQpOgoJICBBZGQgdmVyeSBiYXNpYyB1bml0IHRlc3QgZm9yIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKQoJICB0aGF0IGNoZWNrcyBmb3IgdGhlIHByb2JsZW0gZml4ZWQgYWJvdmUuCgoyMDA2LTA1LTI0IDA5OjAwOjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBkb2MgaW5kZW50IGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGluZGVudCBmaXgKCjIwMDYtMDUtMjQgMDk6MDA6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBtYXJrIG1vcmUgc3RyaW5ncyBmb3IgdHJhbnNsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1hcmsgbW9yZSBzdHJpbmdzIGZvciB0cmFuc2xhdGlvbgoKMjAwNi0wNS0yMyAxNDoyMzo0OSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBNYWtlIG5ldyBHU1RfRkxPV19JU19TVUNDRVNTIG1hY3JvIHZpc2libGUgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKdWxpZW4gTW91dHRlICA8anVsaWVuIGF0IG1vdXR0ZSBuZXQ+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTWFrZSBuZXcgR1NUX0ZMT1dfSVNfU1VDQ0VTUyBtYWNybyB2aXNpYmxlIGluIGRvY3MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfcHJlcm9sbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBBZGQgbmV3IDo6cHJlcm9sbC1oYW5kb2ZmIHNpZ25hbCAoIzMzNzEwMCkuCgoyMDA2LTA1LTIzIDExOjEzOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBBZGRlZCBfQ1VTVE9NIGVycm9yIGFuZCBzdWNjZXNzIEdzdEZsb3dSZXR1cm4gdGhhdCBjYW4gYmUgdXNlZCBiZSBlbGVtZW50cyBpbnRlcm5hbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfZmxvd19nZXRfbmFtZSksIChnc3RfZmxvd190b19xdWFyayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGRlZCBfQ1VTVE9NIGVycm9yIGFuZCBzdWNjZXNzIEdzdEZsb3dSZXR1cm4gdGhhdCBjYW4gYmUKCSAgdXNlZCBiZSBlbGVtZW50cyBpbnRlcm5hbGx5LgoJICBBZGRlZCBtYWNybyB0byBjaGVjayBmb3IgU1VDQ0VTUyBmbG93cmV0dXJucy4KCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fU1VDQ0VTUwoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9FUlJPUgoJICBBUEk6IEdTVF9GTE9XX0lTX1NVQ0NFU1MKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIEdzdEZsb3dSZXR1cm4gc2FuaXR5LgoKMjAwNi0wNS0yMyAwOTo0MDoxNCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogY2xlYXIvcmVzZXQgc2VnbWVudCBpbmZvIGluIEZMVVNIX1NUT1AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBjbGVhci9yZXNldCBzZWdtZW50IGluZm8gaW4gRkxVU0hfU1RPUC4KCSAgRml4ZXMgIzMzNjkyOS4KCjIwMDYtMDUtMjIgMTY6MzA6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRmx1c2ggcXVldWVkIGJ1ZmZlciBvbiBfc3RvcCgpLCBmaXhlcyBwbGF5aW5nIGFnYWluICgjMzQyNDU0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19jb2xsZWN0ZWQpOgoJICBGbHVzaCBxdWV1ZWQgYnVmZmVyIG9uIF9zdG9wKCksIGZpeGVzIHBsYXlpbmcgYWdhaW4gKCMzNDI0NTQpCgoyMDA2LTA1LTIyIDEzOjM0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogYWRkIGEgdGVzdCBmb3IgYSBjb21wbGV0ZSBzdHJ1Y3R1cmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIGEgY29tcGxldGUgc3RydWN0dXJlCgoyMDA2LTA1LTIyIDEzOjMxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGRlYnVnZ2luZyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1Z2dpbmcgY2hhbmdlcwoKMjAwNi0wNS0xOSAxNTozNTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxLzogU29tZSBtaW5vciBGQVEgdXBkYXRlcyB0aGF0IHdvbid0IGNoYW5nZSB0aGUgZmFjdCB0aGF0IG91ciBGQVEgaXMgYmFkbHkgc3RydWN0dXJlZCwgZnVsbCBvZiBpbmZvcm1hdGlvbiBoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS9mYXEueG1sOgoJICAqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBTb21lIG1pbm9yIEZBUSB1cGRhdGVzIHRoYXQgd29uJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQKCSAgb3VyIEZBUSBpcyBiYWRseSBzdHJ1Y3R1cmVkLCBmdWxsIG9mIGluZm9ybWF0aW9uIGhhcmRseQoJICBhbnlvbmUgbmV3IHRvIEdTdHJlYW1lciBuZWVkcyB0byBrbm93IGFuZCBsYWNraW5nIGxvdHMKCSAgb2YgaW5mb3JtYXRpb24gcGVvcGxlIGNvbnN0YW50bHkgYXNrIGZvci4KCjIwMDYtMDUtMTkgMTM6NDY6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBTaG9ydC1jaXJjdWl0IGdzdF9wYWRfc2V0X2NhcHMgaWYgc2V0dGluZyB0aGUgZXhpc3RpbmcgY2FwcyBwb2ludGVyIGFnYWluLCBhbmQgYXZvaWQgcHJpbnRpbmcgZGVidWcgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBTaG9ydC1jaXJjdWl0IGdzdF9wYWRfc2V0X2NhcHMgaWYgc2V0dGluZyB0aGUgZXhpc3RpbmcKCSAgY2FwcyBwb2ludGVyIGFnYWluLCBhbmQgYXZvaWQgcHJpbnRpbmcgZGVidWcgYW5kCgkgIHJlZmZpbmcvdW5yZWZmaW5nIHRoZSBjYXBzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFRoZXJlJ3MgYWN0dWFsbHkgbm8gbmVlZCB0byBzZXQgdGhlIGNhcHMgYmVmb3JlIHB1c2hpbmcgLQoJICB0aGUgYWNjZXB0Y2FwcyBtZXRob2Qgd2lsbCBoYW5kbGUgaXQgYW55d2F5LgoKMjAwNi0wNS0xOSAxMDoyOTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X3NlZWtfc2ltcGxlKCkgKCMzNDIyMzgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc2Vla19zaW1wbGUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBnc3RfZWxlbWVudF9zZWVrX3NpbXBsZSgpICgjMzQyMjM4KS4KCjIwMDYtMDUtMTggMTQ6MjU6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dHlwZWZpbmQuKjogQWRkZWQgR1NUX1RZUEVfVFlQRV9GSU5EIGFuZCBnc3RfdHlwZV9maW5kX2dldF90eXBlKCkgc28gYSBHVHlwZSBnZXRzIHJlZ2lzdGVyZWQgZm9yIEdzdFR5cGVGaW5kIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgQWRkZWQgR1NUX1RZUEVfVFlQRV9GSU5EIGFuZCBnc3RfdHlwZV9maW5kX2dldF90eXBlKCkgc28gYSBHVHlwZSBnZXRzCgkgIHJlZ2lzdGVyZWQgZm9yIEdzdFR5cGVGaW5kIHBvaW50ZXJzLiBUaGlzIGFsbG93cyB3cmFwcGluZyB0aGUgc3RydWN0dXJlCgkgIGluIGJpbmRpbmdzIChpLmUuIGdzdC1weXRob24pLgoKMjAwNi0wNS0xOCAxNDowMTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuYzogRG9jcyBhZGRpdGlvbnMgYW5kIGZpeGVzIChzZWUgIzMzOTkxOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgRG9jcyBhZGRpdGlvbnMgYW5kIGZpeGVzIChzZWUgIzMzOTkxOCkuCgoyMDA2LTA1LTE4IDA5OjA3OjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBUaGUgY2FwcyBpbnRlcnNlY3Rpb24gYWxnb3JpdGhtIGNhbiBwcm9kdWNlIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgY2Fwcy4gVW50aWwgdGhhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVGhlIGNhcHMgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSBjYW4gcHJvZHVjZSBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlCgkgIGNhcHMuIFVudGlsIHRoYXQgaXMgZml4ZWQsIHdlIG5lZWQgdG8gc2ltcGxpZnkgdGhlIHJlc3VsdCB0byBiZQoJICBzdXJlIHdoZXRoZXIgdGhlIGFsbG93ZWQgY2FwcyBhcmUgZml4ZWQgb3Igbm90LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksIChnc3RfcXVldWVfYWNjZXB0Y2FwcyksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBQcm94aWVkIGJ1ZmZlciBhbGxvYyBzaG91bGQgbm90IHNldCB0aGUgY2FwcyBvbiB0aGUgc291cmNlIHBhZC4KCSAgV2hlbiBwdXNoaW5nIGJ1ZmZlcnMsIHdlIGFsd2F5cyBhY2NlcHQgdGhlIGNhcHMgY2hhbmdlIHRoYXQgdHJpZ2dlcnMuCgkgIFRoaXMgcHJldmVudHMgbmVnb3RpYXRpb24gZXJyb3JzIGNhdXNlZCBieSBjYXBzIGNoYW5naW5nIG1pZC1zdHJlYW0KCSAgYW5kIHRoZW4gYmVpbmcgcmVmdXNlZCBvbiBvdXIgc291cmNlIHBhZCAoYmVjYXVzZSB1cHN0cmVhbSBpcyBub3cKCSAgcmVmdXNpbmcgdGhvc2UgY2FwcykuCgoyMDA2LTA1LTE4IDA4OjQ4OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IE11c3QgcGx1ZyBhdWRpb2NvbnZlcnQgYW5kIGF1ZGlvcmVzYW1wbGUgYmV0d2VlbiBkZWNvZGVyIGFuZCBhdWRpbyBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKG1haW4pOgoJICBNdXN0IHBsdWcgYXVkaW9jb252ZXJ0IGFuZCBhdWRpb3Jlc2FtcGxlIGJldHdlZW4gZGVjb2RlcgoJICBhbmQgYXVkaW8gc2luay4KCjIwMDYtMDUtMTcgMTQ6MTg6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyBmaXhlZCBieSBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnIGZpeGVkIGJ5IHByZXZpb3VzIGNvbW1pdAoKMjAwNi0wNS0xNyAxNDowMTozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQWxsb3cgZW1wdHkgc3RyaW5ncyBmb3Igc29tZSBvZiB0aGUgcGx1Z2luIGZpZWxkcyBzbyB3ZSBkb24ndCBkcm9wIHZhbGlkIHBsdWdpbiBlbnRyaWVzIHRoYXQgd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyksIChsb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChsb2FkX2ZlYXR1cmUpLCAobG9hZF9wbHVnaW4pOgoJICBBbGxvdyBlbXB0eSBzdHJpbmdzIGZvciBzb21lIG9mIHRoZSBwbHVnaW4gZmllbGRzIHNvIHdlIGRvbid0CgkgIGRyb3AgdmFsaWQgcGx1Z2luIGVudHJpZXMgdGhhdCB3ZXJlIHdyaXR0ZW4gb3V0IGNvcnJlY3RseS4KCjIwMDYtMDUtMTcgMTM6NDA6MjAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBVc2UgZ19yZW1vdmUgYW5kIGdfcmVuYW1lIGluc3RlYWQgb2YgcmVtb3ZlIGFuZCByZW5hbWUgdGhhdCBkb24ndCBoYW5kbGUgdXRmOCBjaGFyYWN0ZXJzLiByZW5hbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBVc2UgZ19yZW1vdmUgYW5kIGdfcmVuYW1lIGluc3RlYWQgb2YgcmVtb3ZlIGFuZCByZW5hbWUgdGhhdCBkb24ndAoJICBoYW5kbGUgdXRmOCBjaGFyYWN0ZXJzLiByZW5hbWUgd2FzIGZhaWxpbmcgZm9yIHVzZXJzIHdobyBoYWQgc3BlY2lmaWMKCSAgY2hhcmFjdGVycyBpbiB0aGVpciBuYW1lIHRoZW4gdGhlIHJlZ2lzdHJ5IHdhcyBidWlsdCBhdCBlYWNoIGdzdHJlYW1lciBpbml0LgoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVXNlIGEgZGVidWcgdmVyc2lvbiBvZiBsaWJ4bWwyIChsaWJ4bWwyRC5saWIsbGlieG1sMkQuZGxsKSBmb3IgREVCVUcgYnVpbGQKCSAgb2YgbGliZ3N0cmVhbWVyIGFuZCBjbGVhbiB1bnVzZWQgbGlicmFyaWVzIGluIHByb2plY3QgbGlua3Mgc2V0dGluZ3MuCgoyMDA2LTA1LTE3IDA5OjI0OjM0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBUaGUgcXVldWUgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIGFuIEVPUyB3aGVuIHJlY2VpdmluZyBhIGZhdGFsIGZsb3cgZXJyb3IuIEl0J3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFRoZSBxdWV1ZSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHB1c2hpbmcgYW4gRU9TIHdoZW4gcmVjZWl2aW5nIGEgZmF0YWwKCSAgZmxvdyBlcnJvci4gSXQncyB1cCB0byB0aGUgcmVhbCBlbGVtZW50IGRyaXZpbmcgdGhlIHBpcGVsaW5lIHRvIGRvIHRoYXQuCgoyMDA2LTA1LTE2IDE3OjE1OjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBUaGUgcXVldWUgd2FzIHBvc3RpbmcgYSBub24tbmVlZGVkIEdTVF9NRVNTQUdFX0VSUk9SIHdoZW4gcHVzaGluZyBhIGJ1ZmZlciByZXR1cm5lZCBhIGZhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFRoZSBxdWV1ZSB3YXMgcG9zdGluZyBhIG5vbi1uZWVkZWQgR1NUX01FU1NBR0VfRVJST1Igd2hlbiBwdXNoaW5nIGEKCSAgYnVmZmVyIHJldHVybmVkIGEgZmF0YWwgZXJyb3IuIEl0IHNob3VsZCBqdXN0IHNlbmQgYW4gRU9TIGFuZCBzdG9wCgkgIGl0J3MgdGFzay4KCSAgVXBzdHJlYW0gZWxlbWVudHMgd2lsbCB0aGVuIHByb3Blcmx5IHJlY2VpdmUgdGhlIEdTVF9GTE9XX1VORVhQRUNURUQKCSAgd2hlbiBwdXNoaW5nIGJ1ZmZlcnMgb24gdGhlIHF1ZXVlIGFuZCB3aWxsIGJlIGFibGUgdG8gaGFuZGxlIHRoZSBldmVudC4KCjIwMDYtMDUtMTYgMTY6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCB0eXBvcyBhbmQgbWlub3IgZXJyb3JzIGluIHNhbXBsZSBjb2RlICgjMzQxODU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSAgRml4IHR5cG9zIGFuZCBtaW5vciBlcnJvcnMgaW4gc2FtcGxlIGNvZGUgKCMzNDE4NTYpLgoKMjAwNi0wNS0xNiAxMzozMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRml4IGluZGV4ZXMgaW4gZm9ybXVsYXMgdG8gbWFrZSBtb3JlIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEZpeCBpbmRleGVzIGluIGZvcm11bGFzIHRvIG1ha2UgbW9yZSBzZW5zZS4KCjIwMDYtMDUtMTUgMTE6NTQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHJlcG9ydCBQT1NJVElPTiBiYXNlZCBvbiBjbG9jayB0aW1lIGlmIHN5bmMgaXMgZGlzYWJsZWQgaW4gYSBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIERvbid0IHJlcG9ydCBQT1NJVElPTiBiYXNlZCBvbiBjbG9jayB0aW1lIGlmIHN5bmMgaXMKCSAgZGlzYWJsZWQgaW4gYSBzaW5rLgoKMjAwNi0wNS0xNSAwODoxNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuaDogQWRkIGNhc3QgdG8gbWFrZSBjb21waWxlciBoYXBweSAtIHJlZmNvdW50IHZhcmlhYmxlIHdhcyBhIGdpbnQgaW4gR3N0T2JqZWN0IGJ1dCBpcyBhIGd1aW50IGluIEdPYmplYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIEFkZCBjYXN0IHRvIG1ha2UgY29tcGlsZXIgaGFwcHkgLSByZWZjb3VudCB2YXJpYWJsZSB3YXMgYSBnaW50CgkgIGluIEdzdE9iamVjdCBidXQgaXMgYSBndWludCBpbiBHT2JqZWN0IGFuZCBnX2F0b21pY19pbnRfZ2V0KCkKCSAgd2FudHMgYSBnaW50ICouCgoyMDA2LTA1LTE0IDIzOjIzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBmaXggcGFyYWxsZWwgbWFrZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHBhcmFsbGVsIG1ha2UKCjIwMDYtMDUtMTQgMjE6MTg6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBjb25maWcuaAoKMjAwNi0wNS0xNCAyMToxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDYtMDUtMTQgMjE6MTY6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vc3RyZWFtaGVhZGVyOgoJICBzb21lIHN0cmVhbWhlYWRlciB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIHN0cmVhbWhlYWRlciB1cGRhdGVzCgoyMDA2LTA1LTE0IDE5OjI1OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWlub3IgZG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNaW5vciBkb2NzIGZpeGVzLgoKMjAwNi0wNS0xNCAxNjowMzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjYgPT09CgoyMDA2LTA1LTE0IDE1OjIwOjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuNiwgIlRha2UgdGhlIGNhbm5vbGkiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTE0ICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjYsICJUYWtlIHRoZSBjYW5ub2xpIgoKMjAwNi0wNS0xNCAxNToxODowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDUtMTMgMTc6NTA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpbiB0aGUgaHlwb3RoZXRpY2FsIGNhc2UgdGhhdCBzb21lIGJyb2tlbiBwbHVnaW4gY3JlYXRlcyBhIEdTVF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAocHJpbnRfdGFnKToKCSAgRml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGluIHRoZSBoeXBvdGhldGljYWwKCSAgY2FzZSB0aGF0IHNvbWUgYnJva2VuIHBsdWdpbiBjcmVhdGVzIGEgR1NUX1RBR19JTUFHRQoJICB0YWcgY29udGFpbmluZyBhIE5VTEwgYnVmZmVyICgjMzQxNjY3KS4KCjIwMDYtMDUtMTIgMTY6NTA6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZSBmb3IgaW1hZ2UgdGFncyB3aGVuIHVzaW5nIHRoZSAtdCBzd2l0Y2ggKCMzNDE1NTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChwcmludF90YWcpOgoJICBQcmludCBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUgZm9yIGltYWdlIHRhZ3Mgd2hlbgoJICB1c2luZyB0aGUgLXQgc3dpdGNoICgjMzQxNTU2KS4KCjIwMDYtMDUtMTIgMTQ6NTM6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHVwZGF0ZXMgZm9yIHdpbjMyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICB1cGRhdGVzIGZvciB3aW4zMgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZGVmaW5lIEdTVF9NQUpPUk1JTk9SIHNvIHdlIGhhdmUgaXQgYXZhaWxhYmxlIGluIHdpbjMyL2NvbW1vbi9jb25maWcuaAoJICBQb3NzaWJseSByZW1vdmUgaXQgZnJvbSBvdXIgTWFrZWZpbGUuYW0gZmlsZXMgbGF0ZXIKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGRlZCBHU1RfTUFKT1JNSU5PUgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzogKHJlZ2lzdGVyX2dzdF9yZXNvdXJjZV9lcnJvcik6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlZAoKMjAwNi0wNS0xMiAxMzo0Mjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9zdHJlYW1oZWFkZXI6CgkgIGFkZGluZyBub3RlcyBhYm91dCBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFuZCBpZGVhcyBhYm91dCBzdHJlYW1oZWFkZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBub3RlcyBhYm91dCBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFuZCBpZGVhcyBhYm91dCBzdHJlYW1oZWFkZXIKCjIwMDYtMDUtMTIgMTA6NTA6NDIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBVcGRhdGUgd2luMzIgZmlsZXMgbGlzdGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgIFVwZGF0ZSB3aW4zMiBmaWxlcyBsaXN0aW5nLgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEFkZCBHU1RfTUFKT1JNSU5PUiBkZWZpbml0aW9uLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDYtMDUtMTIgMDk6Mjg6MjIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSWYgYW4gc28gZmlsZSBoYXMgbm8gcGx1Z2luIGVudHJ5IHBvaW50LCB1bmxvYWQgdGhlIG1vZHVsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBJZiBhbiBzbyBmaWxlIGhhcyBubyBwbHVnaW4gZW50cnkgcG9pbnQsIHVubG9hZCB0aGUgbW9kdWxlLgoKMjAwNi0wNS0xMSAxOTowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRG9uJ3QgZm9yZ2V0IHRvIHNpZ25hbCB0aGUgX2NoYWluIG9yIF9sb29wIGZ1bmN0aW9uIHdoZW4gdGhlIHF1ZXVlIHNpemUgb3IgdGhyZXNob2xkcyBjaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIERvbid0IGZvcmdldCB0byBzaWduYWwgdGhlIF9jaGFpbiBvciBfbG9vcCBmdW5jdGlvbgoJICB3aGVuIHRoZSBxdWV1ZSBzaXplIG9yIHRocmVzaG9sZHMgY2hhbmdlIHNpbmNlIHRoYXQgbWlnaHQKCSAgY2F1c2UgdGhlbSB0byBtYWtlIHByb2dyZXMgYWdhaW4uCgoyMDA2LTA1LTExIDE4OjEwOjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBHX09CSkVDVF9DTEFTUyBtYWNybyB1c2FnZSBiYXRjaCBjbGVhbnVwLCBmaXhlcyAjMzM3NzQ3IGZvciBjb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6IChnc3RfZXhhbXBsZV9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOiAoZ3N0X3Rlc3RfY2xhc3NfaW5pdCk6CgkgIEdfT0JKRUNUX0NMQVNTIG1hY3JvIHVzYWdlIGJhdGNoIGNsZWFudXAsIGZpeGVzICMzMzc3NDcgZm9yIGNvcmUKCjIwMDYtMDUtMTEgMTA6MzU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFJlZ2lzdGVyIHN1YmJ1ZmVyIGFsb25nIHdpdGggdGhlIGJ1ZmZlciB0eXBlIHNvIHRoYXQgaXQgZG9lcyBub3QgYWNjaWRlbnRhbGx5IGdldHMgcmVnaXN0ZXJlZCBmcm9tIE4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6CgkgIFJlZ2lzdGVyIHN1YmJ1ZmVyIGFsb25nIHdpdGggdGhlIGJ1ZmZlciB0eXBlIHNvIHRoYXQKCSAgaXQgZG9lcyBub3QgYWNjaWRlbnRhbGx5IGdldHMgcmVnaXN0ZXJlZCBmcm9tIE4KCSAgZGlmZmVyZW50IHN0cmVhbWluZyB0aHJlYWRzIGluIGEgbm9uIHRocmVhZHNhZmUgd2F5LgoKMjAwNi0wNS0xMCAxNjo0NDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1ha2UgZ3RrLWRvYyBnZW5lcmF0ZSBkb2NzIGZvciBvdXIgaW5saW5lZCBnc3RfYnVmZmVyX3JlZigpLCBnc3RfZXZlbnRfcmVmKCkgYW5kIGdzdF9tZXNzYWdlX3JlZigpIGZ1bmN0aW9ucyBhZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWFrZSBndGstZG9jIGdlbmVyYXRlIGRvY3MgZm9yIG91ciBpbmxpbmVkIGdzdF9idWZmZXJfcmVmKCksCgkgIGdzdF9ldmVudF9yZWYoKSBhbmQgZ3N0X21lc3NhZ2VfcmVmKCkgZnVuY3Rpb25zIGFnYWluCgkgICh1Z2x5IGhhY2ssIHBsZWFzZSBkbyBmaXggaWYgdGhlcmUncyBhIGJldHRlciB3YXkgYmVzaWRlcwoJICBvdmVycmlkZXMudHh0LCB3aGljaCBkb2Vzbid0IHNlZW0gdG8gd29yaykuCgoyMDA2LTA1LTEwIDE1OjQ5OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IGFkZCBhbiBhc3NlcnQgZm9yIHNldHRpbmcgc3RhdGUgdG8gYXZvaWQgbG90cyBvZiByZXBldGl0aXZlIGNvZGUgaW4gdGhlIGZ1dHVyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0xMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYW4gYXNzZXJ0IGZvciBzZXR0aW5nIHN0YXRlIHRvIGF2b2lkIGxvdHMgb2YgcmVwZXRpdGl2ZSBjb2RlCgkgIGluIHRoZSBmdXR1cmUKCjIwMDYtMDUtMTAgMTU6Mzg6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IGZpeCBhIGxlYWsgaWYgbm8gZmxhZ3MgYXJlIHNldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBmaXggYSBsZWFrIGlmIG5vIGZsYWdzIGFyZSBzZXQKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgZml4IGxlYWsgaW4gdGVzdHMKCjIwMDYtMDUtMTAgMTU6MDA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6IEV4cGFuZCBhIGJpdCBvbiBjYXBzIGFuZCBmaWx0ZXJlZCBsaW5rcyBhbmQgdXBkYXRlIGV4YW1wbGVzIHRoYXQgd2VyZSBzdGlsbCB1c2luZyB0aGUgbm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBFeHBhbmQgYSBiaXQgb24gY2FwcyBhbmQgZmlsdGVyZWQgbGlua3MgYW5kIHVwZGF0ZQoJICBleGFtcGxlcyB0aGF0IHdlcmUgc3RpbGwgdXNpbmcgdGhlIG5vIGxvbmdlciBleGlzdGluZwoJICBnc3RfcGFkX2xpbmtfZmlsdGVyZWQoKSAoIzMzODIwNikuCgoyMDA2LTA1LTEwIDE0OjUxOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBObyBuZWVkIHRvIGNhbGwgX3N0b3AgaW4gX2ZpbmFsaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgTm8gbmVlZCB0byBjYWxsIF9zdG9wIGluIF9maW5hbGl6ZS4KCSAgSXRlcmF0ZSB0aGUgbWFpbiBwYWQgbGlzdCBpbiBfZmluYWxpemUuCgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgRnJlZSBsaXN0cyBhbmQgZGF0YSBpbiB0aGUgcmlnaHQgb3JkZXIuCgkgIEFsc28gZnJlZSBkYXRhIHdoZW0gZG9pbmcgX3JlbW92ZV9wYWQgd2hlbiBzdG9wcGVkIGZvcgoJICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHByb3RlY3QgOjpzdGFydGVkIHdpdGggUEFEX0xPQ0sgYXMKCSAgd2VsbC4KCjIwMDYtMDUtMTAgMTQ6MTI6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBhZGQgc29tZSBjb21tZW50cyByZW5hbWUgYSBtZXRob2Qgc28gdGhhdCBpdCBhY3R1YWxseSBzYXlzIHdoYXQgaXQgZG9lcyBiZXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9ndHlwZV9mcm9tX2FiYnIpLAoJICAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIGFkZCBzb21lIGNvbW1lbnRzCgkgIHJlbmFtZSBhIG1ldGhvZCBzbyB0aGF0IGl0IGFjdHVhbGx5IHNheXMgd2hhdCBpdCBkb2VzIGJldHRlcgoKMjAwNi0wNS0xMCAxNDowNTo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBtYWtlIHN1cmUgc29tZSBlc3NlbnRpYWwgdHlwZXMgdXNlZCBieSBldmVudHMgYXJlIHJlZ2lzdGVyZWQgYXMgcGFydCBvZiBnc3RfaW5pdCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKToKCSAgbWFrZSBzdXJlIHNvbWUgZXNzZW50aWFsIHR5cGVzIHVzZWQgYnkgZXZlbnRzIGFyZSByZWdpc3RlcmVkCgkgIGFzIHBhcnQgb2YgZ3N0X2luaXQoKQoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIGlmIG5vIGZsYWdzIGFyZSBzZXQsIHNlcmlhbGl6ZSB0aGVtIHRvIGEgdmFsdWUgdGhhdCByZXByZXNlbnRzIE5PTkUKCSAgc28gdGhhdCBkZXNlcmlhbGl6aW5nIHRoZW0gd29ya3MKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIGFkZCB0ZXN0cyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uIG9mIGZsYWdzCgoyMDA2LTA1LTEwIDEzOjUzOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIGxpbWl0IHRvIDgwIGNoYXJzIGFkZCBub3RlIGFib3V0IGNoYW5naW5nIGRpdmlkZXIgZm9yIGZsYWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsaW1pdCB0byA4MCBjaGFycwoJICBhZGQgbm90ZSBhYm91dCBjaGFuZ2luZyBkaXZpZGVyIGZvciBmbGFncwoKMjAwNi0wNS0xMCAxMToyNDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfY29sbGVjdGVkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgIFVwZGF0ZSBkb2NzLgoJICBCZXR0ZXIgZGVidWcgaW5mby4KCSAgQ2F0Y2ggYW5kIHJldHVybiBlcnJvcnMgZnJvbSB0aGUgY29sbGVjdCBmdW5jdGlvbgoJICBSZWZ1c2UgZGF0YSBvbiBlb3MgcGFkcy4KCjIwMDYtMDUtMTAgMTA6MjY6NTUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0aW50ZXJmYWNlLmg6IEdTVF9JTVBMRU1FTlRTX0lOVEVSRkFDRSBhbmQgR1NUX0lTX0lNUExFTUVOVFNfSU5URVJGQUNFIHVzZSB0aGUgbm9ybWFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSAgR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFIGFuZCBHU1RfSVNfSU1QTEVNRU5UU19JTlRFUkZBQ0UgdXNlIHRoZSBub3JtYWwKCSAgR0ludGVyZmFjZSB0eXBlIGNoZWNraW5nLgoJICBUaGV5IHdlcmUgcHJldmlvdXNseSB1c2luZyBub24tZGVmaW5lZCBtYWNyb3MuCgoyMDA2LTA1LTA5IDIwOjQ3OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBDbGVhbiB1cCB0aGUgbWVzcyB0aGF0IGlzIGNvbGxlY3RwYWRzLCBhZGQgY29tbWVudHMgYW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19wZWVrKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZsdXNoKSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyksCgkgIChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQ2xlYW4gdXAgdGhlIG1lc3MgdGhhdCBpcyBjb2xsZWN0cGFkcywgYWRkIGNvbW1lbnRzIGFuZAoJICBGSVhNRXMgd2hlcmUgbmVlZGVkLgoJICBNYWludGFpbiBhIHNlcGFyYXRlIHBhZCBsaXN0IHNvIHdlIGNhbiBhZGQgcGFkcyB3aGlsZQoJICBjb2xsZWN0aW5nIHRoZSBvdGhlciBvbmVzLiBGb3IgdGhpcyB3ZSBuZWVkIGEgbmV3IHNlcGFyYXRlCgkgIGxvY2sgKHNlZSBjb21pY3MpLgoJICBGaXggbWVtb3J5IGxlYWsgaW4gZmluYWxpemUuCgkgIFJlZmFjdG9yIHNvbWUgd2VpcmQgY29kZSB0byBzZXQvdW5zZXQgcGFkIGZsdXNoaW5nIGZsYWdzLCBtYXJrCgkgIHdpdGggY29tbWVudHMuCgkgIERvbid0IGNyYXNoIGluIF9hdmFpbGFibGUsIF9yZWFkLCBfZmx1c2ggd2hlbiB3ZSdyZSBFT1MuCgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgYWRhcHRlciBjaGVjayBiaW5hcnkuCgoyMDA2LTA1LTA5IDE5OjE0OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2Mgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDYtMDUtMDkgMTc6NTg6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBDb25zdC1pZnkgR0VudW1WYWx1ZSBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X3Jlc29sdmVyX2dldF90eXBlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIChnc3RfZmFrZV9zaW5rX3N0YXRlX2Vycm9yX2dldF90eXBlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19kYXRhX2dldF90eXBlKSwKCSAgKGdzdF9mYWtlX3NyY19zaXpldHlwZV9nZXRfdHlwZSksIChnc3RfZmFrZV9zcmNfZmlsbHR5cGVfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgQ29uc3QtaWZ5IEdFbnVtVmFsdWUgYXJyYXlzLgoKMjAwNi0wNS0wOSAxMzoyMzowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogQWRkIHRlc3QgY2FzZSBmb3IgZmxhZ3MgKyBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBmbGFncyArIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpLgoKMjAwNi0wNS0wOSAxMjowMTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgc2hvdWxkIG1haW50YWluIHRoZSBidWZmZXIgZmxhZ3MgKHRob3NlIHRoYXQgbWFrZSBzZW5zZSBhdCBsZWFzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBzaG91bGQgbWFpbnRhaW4gdGhlCgkgIGJ1ZmZlciBmbGFncyAodGhvc2UgdGhhdCBtYWtlIHNlbnNlIGF0IGxlYXN0KSAoc2VlICMzNDA4NTkpLgoKMjAwNi0wNS0wOSAxMDo1MzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogRml4IHVwIGluY2x1ZGVzOiBuZWVkIHRvIGluY2x1ZGUgc3RkbGliLmggaW4gdG9vbHMuaCBmb3IgZXhpdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICAqIHRvb2xzL3Rvb2xzLmg6CgkgIEZpeCB1cCBpbmNsdWRlczogbmVlZCB0byBpbmNsdWRlIHN0ZGxpYi5oIGluIHRvb2xzLmggZm9yIGV4aXQoKS4KCjIwMDYtMDUtMDkgMTA6MDI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBBUEk6IGFkZCBHU1RfVEFHX0lNQUdFIHRhZyAoIzM0MDcyMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0lNQUdFIHRhZyAoIzM0MDcyMSkuCgoyMDA2LTA1LTA4IDE3OjEyOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IEFkZGVkIHNvbWUgZG9jcyBmb3IgdGhlIHNlZ21lbnQgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICBBZGRlZCBzb21lIGRvY3MgZm9yIHRoZSBzZWdtZW50IHF1ZXJ5LgoKMjAwNi0wNS0wOCAxNzowMzoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbHdheXMgcHVzaCBub24tZmx1c2hpbmcgc2VyaWFsaXplZCBldmVudHMgaW4gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQWx3YXlzIHB1c2ggbm9uLWZsdXNoaW5nIHNlcmlhbGl6ZWQgZXZlbnRzIGluIHRoZSBzdHJlYW1pbmcKCSAgdGhyZWFkLgoKMjAwNi0wNS0wOCAxNTo1MzoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIHdoaXRlc3BhY2UsIGNvbW1lbnQsIGRvYyBmaXh1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSwgY29tbWVudCwgZG9jIGZpeHVwCgoyMDA2LTA1LTA4IDE1OjUyOjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlcnJvci5jOiBBZGQgYSBtaXNzaW5nIGVycm9yIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEFkZCBhIG1pc3NpbmcgZXJyb3Igc3RyaW5nLgoKMjAwNi0wNS0wOCAxNDo1NToyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBhcHBsaWVkX3JhdGUgdG8gdGhlIGRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpOgoJICBBZGQgYXBwbGllZF9yYXRlIHRvIHRoZSBkZWJ1ZwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIENvcHkgYXBwbGllZF9yYXRlIGludG8gdGhlIG91dGdvaW5nIE5FV1NFR01FTlQgZXZlbnQKCjIwMDYtMDUtMDggMTE6NDk6NDMgKzAwMDAgIFBoaWxpcHBlIFJvdXF1aWVyIDxwaGlsaXBwZXJvQGxpYmVydHlzdXJmLmZyPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBjYWxsIDo6dW5sb2NrIGJlZm9yZSB0YWtpbmcgdGhlIFBSRVJPTExfTE9DSyBzbyB3ZSBjYW4gc2FmZWx5IGhhbmRsZSBlbGVtZW50cyB0aGF0IGxvY2sgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGhpbGlwcGUgUm91cXVpZXIgPHBoaWxpcHBlcm8gYXQgbGliZXJ0eXN1cmYgZG90IGZyPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgY2FsbCA6OnVubG9jayBiZWZvcmUgdGFraW5nIHRoZSBQUkVST0xMX0xPQ0sgc28gd2UgY2FuIHNhZmVseQoJICBoYW5kbGUgZWxlbWVudHMgdGhhdCBsb2NrIGluIDo6cmVuZGVyLgoJICBGaXhlcyAjMzQwMTc0LgoKMjAwNi0wNS0wOCAxMTo0MzoxOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGF1dG9nZW4uc2g6IERhcndpbidzIGxpYnRvb2xpemUgaXMgaW4gZmFjdCBjYWxsZWQgZ2xpYnRvb2xpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6IChDT05GSUdVUkVfREVGX09QVCk6CgkgIERhcndpbidzIGxpYnRvb2xpemUgaXMgaW4gZmFjdCBjYWxsZWQgZ2xpYnRvb2xpemUuCgkgIEFkZGluZyBnbGlidG9vbGl6ZSB0byB0aGUgbGlzdCBvZiBhY2NlcHRlZCBuYW1lcyBmb3IgbGlidG9vbGl6ZS4KCjIwMDYtMDUtMDggMTE6MzU6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVW5pZnkgZXJyb3IgaGFuZGxpbmcsIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGEgcHVzaCgpIHJldHVybnMgRU9TIGJ1dCBwZXJmb3JtIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFVuaWZ5IGVycm9yIGhhbmRsaW5nLCBkb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2UKCSAgd2hlbiBhIHB1c2goKSByZXR1cm5zIEVPUyBidXQgcGVyZm9ybSBvdXIgbm9ybWFsIEVPUwoJICBoYW5kbGluZyBjb2RlLiBGaXhlcyAjMzQwNzcyLgoKMjAwNi0wNS0wOCAwOTo1MjozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OiBNYWtlIHVwc3RlYW0vZG93bnN0cmVhbSBjb25jZXB0cyBtb3JlIGNsZWFyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgTWFrZSB1cHN0ZWFtL2Rvd25zdHJlYW0gY29uY2VwdHMgbW9yZSBjbGVhci4KCSAgR2l2ZSBhbiBleGFtcGxlIG9mIHNlcmlhbGl6ZWQvbm9uLXNlcmlhbGl6ZWQgZXZlbnRzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBNZW50aW9uIGFwcGxpZWRfcmF0ZS4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBNZW50aW9uIGFwcGxpZWQgcmF0ZSwgZmxlc2ggb3V0IHNvbWUgbW9yZSB1c2UgY2FzZXMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCksIChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50X2Z1bGwpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50X2Z1bGwpLCAoZ3N0X2V2ZW50X25ld190YWcpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwKCSAgKGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbik6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBhcHBsaWVkX3JhdGUgZmllbGQgdG8gTkVXU0VHTUVOVCBldmVudC4KCSAgQVBJOiBnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50X2Z1bGwoKQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudF9mdWxsKCkKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQWRkIGFwcGxpZWRfcmF0ZSB0byBHc3RTZWdtZW50IHN0cnVjdHVyZS4KCSAgTWFrZSBjYWxjdWxhdGlvbiBvZiBzdHJlYW1fdGltZSBhbmQgcnVubmluZ190aW1lIG1vcmUgY29ycmVjdAoJICB3cnQgcmF0ZS9hcHBsaWVkX3JhdGUuCgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCSAgQVBJOiBHc3RTZWdtZW50OjphcHBsaWVkX3JhdGUgZmllbGQKCSAgQVBJOiBnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKCk7CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIFBhcnNlIGFuZCB1c2UgYXBwbGllZF9yYXRlIGluIHRoZSBHc3RTZWdtZW50IGZpZWxkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgY2hlY2sgZm9yIGFwcGxpZWRfcmF0ZSBmaWVsZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0c2VnbWVudHNfc3VpdGUpOgoJICBBZGQgbW9yZSBjaGVja3MgZm9yIHZhcmlvdXMgR3N0U2VnbWVudCBvcGVyYXRpb25zLgoKMjAwNi0wNS0wOCAwOToxNjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU3RvcmUgdGhlIHN5bmMgdGltZSBvZiB0aGUgYnVmZmVyIGVuZCBwb3NpdGlvbiBzZXBhcmF0bHkgaW4gYSBuZXcgdmFyaWFibGUgZW9zX3J0aW1lIHNvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU3RvcmUgdGhlIHN5bmMgdGltZSBvZiB0aGUgYnVmZmVyIGVuZCBwb3NpdGlvbiBzZXBhcmF0bHkgaW4gYQoJICBuZXcgdmFyaWFibGUgZW9zX3J0aW1lIHNvIHdlIGNhbiBwcm9wZXJseSBzeW5jIHRoZSBFT1MgZXZlbnQuCgkgIEZpeGVzICMzNDA2OTcuCgkgIEZpeCB0aGUgZG9jcyBmb3IgZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQoKS4KCSAgRG9uJ3Qgc2V0IHNlZ21lbnQgc3RhcnQgdG8gaW52YWxpZCB2YWx1ZSB3aGVuIHdlIHJlY2VpdmUgYQoJICBub24gVElNRSBuZXdzZWdtZW50LgoJICBnZXQgY2xvc2VyIHRvIGhhbmRsaW5nIHBvc2l0aW9uIHJlcG9ydGluZyBmb3IgbmVnYXRpdmUgcmF0ZXMKCSAgY29ycmVjdGx5LgoKMjAwNi0wNS0wNyAxOTo1Nzo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogRG9jcyBhYm91dCBob3cgdG8gcHJpbnQgY2FwcyBmb3IgZGVidWcgcHVycG9zZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIERvY3MgYWJvdXQgaG93IHRvIHByaW50IGNhcHMgZm9yIGRlYnVnIHB1cnBvc2VzLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KToKCSAgdXNlIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUgaW5zdGVhZCBvZiBnc3RfY2Fwc19jb3B5LCBGaXhlcyAjMzQwNjA4CgoyMDA2LTA1LTA2IDIxOjQ1OjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiB1c2UgZnVsbCBlbnVtIG5hbWVzIGFuZCBwcmVwcmVuZCBhICclJyBpbiBkb2NzIHN0cmluZ3MgdG8gbWFrZSByZWNlbnQgZ3RrLWRvYyB0dXJuIHRoYXQgaW50byBhIGxpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgdXNlIGZ1bGwgZW51bSBuYW1lcyBhbmQgcHJlcHJlbmQgYSAnJScgaW4gZG9jcyBzdHJpbmdzIHRvIG1ha2UgcmVjZW50CgkgIGd0ay1kb2MgdHVybiB0aGF0IGludG8gYSBsaW5rCgoyMDA2LTA1LTA1IDIxOjQ0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIHR5cG8gZml4ZXMsIHNvbWUgYWRkaXRpb25zLCBzb21lIGNsYXJpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBTb21lIHR5cG8gZml4ZXMsIHNvbWUgYWRkaXRpb25zLCBzb21lIGNsYXJpZmljYXRpb25zLgoKMjAwNi0wNS0wNSAxNzo0NTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogVXNlIHRoZSBzdHJpbmcgcGFzc2VkIHRvIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgZm9yIHdoYXQgaXQncyBpbnRlbmRlZCBmb3IgLSB0aGUgcHJvZ3JhbSBuYW1lIGlzIGFscmVhZHkgcHJpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIFVzZSB0aGUgc3RyaW5nIHBhc3NlZCB0byBnX29wdGlvbl9jb250ZXh0X25ldygpIGZvcgoJICB3aGF0IGl0J3MgaW50ZW5kZWQgZm9yIC0gdGhlIHByb2dyYW0gbmFtZSBpcyBhbHJlYWR5CgkgIHByaW50ZWQgZWxzZXdoZXJlLgoKMjAwNi0wNS0wNSAxNzowNzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogQWRkIGJhY2sgLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb24gKCMzNDA0NjApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL3Rvb2xzLmg6CgkgIEFkZCBiYWNrIC0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9uICgjMzQwNDYwKS4KCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKGhhdmVfdHlwZV9oYW5kbGVyKSwgKHR5cGVmaW5kX2ZpbGUpLCAobWFpbik6CgkgIEFkZCAtLXZlcnNpb24gb3B0aW9uIGFuZCB1c2UgR09wdGlvbiBmb3IgYXJndW1lbnQgcGFyc2luZzsgcmVmYWN0b3IgYQoJICBiaXQ7IGFjY2VwdCBkaXJlY3RvcmllcyBhcyBhcmd1bWVudHMgYW5kIHJlY3Vyc2UgaW50byB0aGVtOyBsYXN0bHksCgkgIHByaW50IGEgZGVjZW50IGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGluZ3MgZ28gd3JvbmcuCgoyMDA2LTA1LTA1IDE0OjM4OjAxICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgRG9uJ3QgbWVudGlvbiBHc3RUaHJlYWQgKCMzNDA2MTEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb24ndCBtZW50aW9uIEdzdFRocmVhZCAoIzM0MDYxMSkKCSAgVXBkYXRlIGxpbmsgdG8gR09iamVjdCB0dXRvcmlhbCAoIzM0MDYwNykKCjIwMDYtMDUtMDUgMTQ6Mjc6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGQgbm90ZSBhYm91dCByZWZjb3VudGluZyBhbmQgbWluaW9iamVjdC9idWZmZXIgd3JpdGVhYmlsaXR5IHRvIGRvY3MuIEZpeGVzICMzNDA2MDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIEFkZCBub3RlIGFib3V0IHJlZmNvdW50aW5nIGFuZCBtaW5pb2JqZWN0L2J1ZmZlciB3cml0ZWFiaWxpdHkKCSAgdG8gZG9jcy4gRml4ZXMgIzM0MDYwNAoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBBZGRlZCBzb21lIGV4cGxhbmF0aW9uIGFib3V0IEBrbGFzcy4KCjIwMDYtMDUtMDUgMTQ6MDk6MjEgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIEF2b2lkIENPUkJBICYgQm9ub2JvIHJlZmVyZW5jZXMgKCMzNDA1OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBdm9pZCBDT1JCQSAmIEJvbm9ibyByZWZlcmVuY2VzICgjMzQwNTk4KQoKMjAwNi0wNS0wNSAxMzo1MzoyOCArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBGaXggdXAgc29tZSBpbmFjY3VyYWNpZXMgYW5kIG9taXNzaW9ucyBpbiBBRE0gKCMzNDA2MDkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdXAgc29tZSBpbmFjY3VyYWNpZXMgYW5kIG9taXNzaW9ucyBpbiBBRE0gKCMzNDA2MDkpCgoyMDA2LTA1LTA1IDEyOjUzOjMzICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBTbWFsbCB0eXBvIGluIGRvY3MgKCMzNDA2MjUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTbWFsbCB0eXBvIGluIGRvY3MgKCMzNDA2MjUpCgoyMDA2LTA1LTA1IDA5OjAxOjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBNYWtlICdtYWtlIC1qJyBwcm9vZiAoc2VlICMzNDA2OTgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE1ha2UgJ21ha2UgLWonIHByb29mIChzZWUgIzM0MDY5OCkuCgoyMDA2LTA1LTA1IDA4OjU2OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWItMi44IGhlcmUgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWItMi44IGhlcmUgYXMgd2VsbC4KCjIwMDYtMDUtMDUgMDg6MTc6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgcHJlIGdsaWIyLjggY29tcGF0aWJpbGl0eSwgZml4ZXMgIzM0MDUwOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpLCAoZ3N0X29iamVjdF9yZXBsYWNlKSwgKGdzdF9vYmplY3RfZGlzcG9zZSksCgkgIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgUmVtb3ZlIHByZSBnbGliMi44IGNvbXBhdGliaWxpdHksIGZpeGVzICMzNDA1MDgKCjIwMDYtMDUtMDQgMTg6MTQ6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBNZW50aW9uIHR5cGUgb2YgdGFncyBpbiBkb2MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBNZW50aW9uIHR5cGUgb2YgdGFncyBpbiBkb2MgYmx1cmJzLgoKMjAwNi0wNS0wNCAxNjozNDoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlc3RvcmUgYWNjZXB0Y2FwcyBjaGVja2luZyBiZWhhdmlvdXIgbm93IHRoYXQgZ29vZCBwbHVnaW5zIGhhdmUgYmVlbiByZWxlYXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfcHVzaCk6CgkgIFJlc3RvcmUgYWNjZXB0Y2FwcyBjaGVja2luZyBiZWhhdmlvdXIgbm93IHRoYXQgZ29vZCBwbHVnaW5zIGhhdmUKCSAgYmVlbiByZWxlYXNlZC4KCjIwMDYtMDUtMDQgMTU6MjA6MTQgKzAwMDAgIEphbWVzIEFuZHJld2FydGhhIDx0cnM4MEB0YXJ0YXJ1cy51d2EuZWR1LmF1PgoKCSAgTWFrZSBzdXJlIGdzdHByaXZhdGUuaCBhbmQvb3IgY29uZmlnLmggYXJlIGFsd2F5cyBpbmNsdWRlZCBmaXJzdCwgb3RoZXJ3aXNlIHNvbWUgb2Ygb3VyIGRlZmluZXMgKGxpa2UgX0ZJTEVfT0ZGU0VUX0JJLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmFtZXMgQW5kcmV3YXJ0aGEgPHRyczgwIGF0IHRhcnRhcnVzIHV3YSBlZHUgYXU+CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgTWFrZSBzdXJlIGdzdHByaXZhdGUuaCBhbmQvb3IgY29uZmlnLmggYXJlCgkgIGFsd2F5cyBpbmNsdWRlZCBmaXJzdCwgb3RoZXJ3aXNlIHNvbWUgb2Ygb3VyCgkgIGRlZmluZXMgKGxpa2UgX0ZJTEVfT0ZGU0VUX0JJVFMpIG1pZ2h0IGJlCgkgIHJlZGVmaW5lZCBpbiB0aGUgc3lzdGVtIGhlYWRlcnMuIEZpeGVzIGJ1aWxkCgkgIG9uIG9wZW5zb2xhcmlzICgjMzQwMDE2KS4KCjIwMDYtMDUtMDQgMTQ6MTk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBUEk6IGFkZGl0aW9uOiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFQSTogYWRkaXRpb246IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3B1c2gpLAoJICAoZ3N0X2FkYXB0ZXJfcGVlayksIChnc3RfYWRhcHRlcl90YWtlKSwgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKSwKCSAgKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgUHJlcGFyZSBmb3Igb3B0aW1pemluZyB0aGUgaGVsbCBvdXQgb2YgdGhpcyBodWdlbHkgaW5lZmZpY2llbnQKCSAgcGllY2Ugb2YgY29kZS4KCSAgQWRkZWQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKSBzbyB3ZSBjYW4gYXQgbGVhc3Qgc3RhcnQgdGhpbmtpbmcKCSAgYWJvdXQgc3ViYnVmZmVyaW5nIGFuZCBtZXJnaW5nLgoJICBBZGRlZCBzb21lIGNvbW1lbnRzLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2FkYXB0ZXJfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIEdzdEFkYXB0ZXIgY2hlY2suCgoyMDA2LTA1LTA0IDEzOjMwOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6IEZpeCBzb21lIHR5cG9zLCBhZGQgYmx1cmIgYWJvdXQgYnVmZmVyIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgRml4IHNvbWUgdHlwb3MsIGFkZCBibHVyYiBhYm91dCBidWZmZXIgZmxhZ3MuCgoyMDA2LTA1LTAzIDE2OjQ1OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IG1ha2Ugc3VyZSBHc3RCYXNlVHJhbnNmb3JtQ2xhc3Mgc2hvd3MgdXAgaW4gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgbWFrZSBzdXJlIEdzdEJhc2VUcmFuc2Zvcm1DbGFzcyBzaG93cyB1cCBpbiB0aGUgZG9jcwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBtb3ZlIGRvY3Mgc28gZ3RrLWRvYyBwaWNrcyBpdCB1cCBub3cKCjIwMDYtMDUtMDMgMTY6NDI6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIHdoaXRlc3BhY2UgcmVtb3ZhbCBhbmQgd2lkdGggY29lcmNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgcmVtb3ZhbCBhbmQgd2lkdGggY29lcmNpb24KCjIwMDYtMDUtMDMgMTY6NDA6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkgIHdoaXRlc3BhY2UgbW92aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIG1vdmluZwoKMjAwNi0wNS0wMiAxNzoyOTowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogYWRkIG1pc3Npbmcgc3ltYm9scyB0byBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBtaXNzaW5nIHN5bWJvbHMgdG8gZG9jcwoKMjAwNi0wNS0wMiAxNzoxNzoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBiYWNrIG91dCB0aGUgbmV3c2VnbWVudCBoYW5kbGluZyBjaGFuZ2UsIHNlZSAjMzQwMDYwIGZvciBvbmdvaW5nIGRpc2N1c3Npb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIGJhY2sgb3V0IHRoZSBuZXdzZWdtZW50IGhhbmRsaW5nIGNoYW5nZSwgc2VlICMzNDAwNjAgZm9yIG9uZ29pbmcKCSAgZGlzY3Vzc2lvbgoKMjAwNi0wNC0yOSAyMzoxNTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1ydW4uYzogRml4IHdyb25nIGdfZmlsZV90ZXN0KCkgdXNhZ2UgKHNlZSBnbGliIGRvY3MgZm9yIHdoeSBpdCBkb2Vzbid0IHdvcmspOyBmaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcnVuLmM6IChnZXRfY2FuZGlkYXRlcyksIChtYWluKToKCSAgRml4IHdyb25nIGdfZmlsZV90ZXN0KCkgdXNhZ2UgKHNlZSBnbGliIGRvY3MgZm9yIHdoeSBpdCBkb2Vzbid0CgkgIHdvcmspOyBmaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLiBGaXhlcyAjMzQwMDc5LgoKMjAwNi0wNC0yOSAwMDozODowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvdG1wbC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDYtMDQtMjkgMDA6MzY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSB1cGxvYWQubWFrIHRvIGNvbW1vbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vTWFrZWZpbGUuYW06CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJICAqIGRvY3Mvc2xpZGVzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvdXBsb2FkLm1hazoKCSAgKiBjb21tb24vdXBsb2FkLm1hazoKCSAgbW92ZSB1cGxvYWQubWFrIHRvIGNvbW1vbgoKMjAwNi0wNC0yOSAwMDozNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgYWRkIG1vcmUgbm90ZXMgb24gbW92aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBub3RlcyBvbiBtb3ZpbmcKCjIwMDYtMDQtMjkgMDA6MzM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IGFkZCBtb3JlIGFzc2VydHMgb24gcmVmY291bnRzIGRvIG1vcmUgY2xlYW51cCBhdCBlbmQgb2YgdGVzdHMgZml4IHRlc3QgbGVha3Mgc2hvd2luZyBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTI5ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgbW9yZSBhc3NlcnRzIG9uIHJlZmNvdW50cwoJICBkbyBtb3JlIGNsZWFudXAgYXQgZW5kIG9mIHRlc3RzCgkgIGZpeCB0ZXN0IGxlYWtzIHNob3dpbmcgaW4gRkM1CgoyMDA2LTA0LTI4IDIyOjU2OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiByZXZlcnRlZCB3cm9uZyBjaGFuZ2UgYW5kIHJlZmxvd2VkIGNvZGUgdG8gYXZvaWQgb3RoZXJzIGZhbGxpbmcgaW50byB0aGlzIHRyYXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICByZXZlcnRlZCB3cm9uZyBjaGFuZ2UgYW5kIHJlZmxvd2VkIGNvZGUgdG8gYXZvaWQgb3RoZXJzIGZhbGxpbmcgaW50bwoJICB0aGlzIHRyYXAKCjIwMDYtMDQtMjggMjA6NTU6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogZml4IGNoYW5nZWxvZyBlbnRyeSBhYm91dCBsYXN0IGNvbGxlY3RwYWRzIGNoYW5nZSwgYWRkIG5vdGVzIGFib3V0IHByb3BlciBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIGZpeCBjaGFuZ2Vsb2cgZW50cnkgYWJvdXQgbGFzdCBjb2xsZWN0cGFkcyBjaGFuZ2UsCgkgIGFkZCBub3RlcyBhYm91dCBwcm9wZXIgZml4CgoyMDA2LTA0LTI4IDIwOjQ3OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoKMjAwNi0wNC0yOCAyMDo0NDoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0Lzogb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCjIwMDYtMDQtMjggMTg6NTU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1ha2UgR3N0RWxlbWVudERldGFpbHMgY29uc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgbWFrZSBHc3RFbGVtZW50RGV0YWlscyBjb25zdAoKMjAwNi0wNC0yOCAxODo0ODozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IG1vcmUgZGV0YWlsZWQgZGVidWcgYW5kIGZvcm1hdHRpbmcgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgbW9yZSBkZXRhaWxlZCBkZWJ1ZyBhbmQgZm9ybWF0dGluZyBjbGVhbnVwCgoyMDA2LTA0LTI4IDE3OjUyOjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogY2xlYW51cCBkb3VibGUgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6CgkgIGNsZWFudXAgZG91YmxlIGNvZGUKCjIwMDYtMDQtMjggMTc6MzM6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBzb21lIGxpdHRsZSB0dW5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyk6CgkgIHNvbWUgbGl0dGxlIHR1bmluZwoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBhIG5ldyB0ZXN0IGZvciBsaXZlIHZhbHVlIGhhbmRsaW5nCgoyMDA2LTA0LTI4IDE1OjUxOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBHaXZlIGNyZWRpdCB0byBUYXBpIFBhYXZvbGEgZm9yIGxhc3QgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdpdmUgY3JlZGl0IHRvIFRhcGkgUGFhdm9sYSBmb3IgbGFzdCBwYXRjaAoKMjAwNi0wNC0yOCAxNTo0ODo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChwdXNoX2FuZF9yZWYpOgoJICBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgRml4IHJlZmNvdW50IGlzc3VlIHdoaXRoIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKSBoZWxwZXIKCSAgZnVuY3Rpb24uIEZpeGVzICMzMzgzMzUKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3RzdWl0ZSBmb3IgZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpLgoKMjAwNi0wNC0yOCAxMzo1MTowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEF2b2lkIE5VTEwgZGVyZWZlcmVuY2Ugd2hlbiB0cnlpbmcgdG8gc2VyaWFsaXplIGZsYWdzIGNvbnRhaW5pbmcgaW52YWxpZCB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIEF2b2lkIE5VTEwgZGVyZWZlcmVuY2Ugd2hlbiB0cnlpbmcgdG8gc2VyaWFsaXplIGZsYWdzIGNvbnRhaW5pbmcKCSAgaW52YWxpZCB2YWx1ZXMuCgoyMDA2LTA0LTI4IDEzOjQ0OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgc21hbGwgZG9jIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZG9jIGZpeAoKMjAwNi0wNC0yOCAxMzo0MzowMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogSWYgd2UgZ2V0IEVPUyBiZWZvcmUgYW55IGRhdGEgaXMgYWNjdW11bGF0ZWQsIGRvbid0IHVzZSB1bmluaXRpYWxpc2VkIGxvY2FsIHZhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgSWYgd2UgZ2V0IEVPUyBiZWZvcmUgYW55IGRhdGEgaXMgYWNjdW11bGF0ZWQsIGRvbid0IHVzZQoJICB1bmluaXRpYWxpc2VkIGxvY2FsIHZhcmlhYmxlcy4KCjIwMDYtMDQtMjggMTM6NDA6MTUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4ZXMgaW4gcmVhZGluZy93cml0aW5nIGV2ZW50cyBvdmVyIEdEUCAobm90IGN1cnJlbnRseSB1c2VkPykgLSBkZXJlZmVyZW5jaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KToKCSAgRml4ZXMgaW4gcmVhZGluZy93cml0aW5nIGV2ZW50cyBvdmVyIEdEUCAobm90IGN1cnJlbnRseSB1c2VkPykgLQoJICBkZXJlZmVyZW5jaW5nIE5VTEwgZXZlbnRzIGZvciB1bmtub3duL2ludmFsaWQgZXZlbnQgdHlwZXMsIG1lbW9yeQoJICBsZWFrLCBhbmQgY2hhbmdlIGdfd2FybmluZyB0byBHU1RfV0FSTklORy4KCjIwMDYtMDQtMjggMTM6MjU6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gZnJhbWUgZHJvcHBpbmcgaXMgZW5hYmxlZCwgd2Ugc2hvdWxkIG5vdCBpZ25vcmUgZnJhbWVzIHdpdGhvdXQgYSBkdXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3JlbmRlcl9zdGF0cyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBXaGVuIGZyYW1lIGRyb3BwaW5nIGlzIGVuYWJsZWQsIHdlIHNob3VsZCBub3QgaWdub3JlIGZyYW1lcwoJICB3aXRob3V0IGEgZHVyYXRpb24uCgkgIFVwZGF0ZSBzb21lIGRvY3VtZW50YXRpb24uCgoyMDA2LTA0LTI4IDEzOjE4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA2LTA0LTI4IDEzOjE2OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogaGFuZGxlIEVBR0FJTiwgRUlOVFIgYW5kIHNob3J0IHdyaXRlcyBjb3JyZWN0bHkuIEFsc28gY2xlYW4gdXAgc29tZSBlcnJvciBjYXNlcywgYXZvaWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpLAoJICAoZ3N0X2ZkX3NpbmtfY2hlY2tfZmQpLCAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgaGFuZGxlIEVBR0FJTiwgRUlOVFIgYW5kIHNob3J0IHdyaXRlcyBjb3JyZWN0bHkuIEFsc28gY2xlYW4KCSAgdXAgc29tZSBlcnJvciBjYXNlcywgYXZvaWQgYSBkZWFkbG9jayBvbiBiYWQgZmlsZSBkZXNjcmlwdG9ycyBhbmQKCSAgdXNlIEdTVF9ERUJVR19PQkpFQ1QuCgkgIEZpeGVzICMzMzk4NDMKCjIwMDYtMDQtMjggMTM6MTM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogRG9uJ3QgdHJ5IHRvIHNlcmlhbGl6ZSBhIEdWYWx1ZSB3aXRoIGEgTlVMTCBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlcik6CgkgIERvbid0IHRyeSB0byBzZXJpYWxpemUgYSBHVmFsdWUgd2l0aCBhIE5VTEwgYnVmZmVyLgoJICBGaXhlcyAjMzM5ODIxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIHNlcmlhbGlzYXRpb24gb2YgTlVMTCBidWZmZXJzLgoKMjAwNi0wNC0yOCAxMzoxMDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFRha2luZyBhIE5VTEwgbWluaW9iamVjdCBpcyB2YWxpZCwgZml4IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byB1bnJlZiB0aGUgTlVMTCBtaW5pb2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpOgoJICBUYWtpbmcgYSBOVUxMIG1pbmlvYmplY3QgaXMgdmFsaWQsIGZpeCB0aGUgY2FzZSB3aGVyZQoJICB3ZSB0cnkgdG8gdW5yZWYgdGhlIE5VTEwgbWluaW9iamVjdC4KCjIwMDYtMDQtMjggMTM6MDU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgd2luMzIgY29uZmlnLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBjb25maWcuaAoKMjAwNi0wNC0yOCAxMzowNDowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAc29uaWNwdWxzZS5kZT4KCgkgIGdzdC9nc3RiaW4uYzogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWMgYXQgc29uaWNwdWxzZSBkb3QgZGU+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgVXBkYXRlIGRvY3MuCgkgIERvbid0IGxlYWsgYmluIHJlZmNvdW50IHdoZW4gYSBzdGF0ZSByZWNhbGMgaXMKCSAgaW4gcHJvZ3Jlc3MgYW5kIHdlIGRlbGF5IGFub3RoZXIgb25lICMzMzk4MDguCgoyMDA2LTA0LTI4IDEyOjU4OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogTWVudGlvbiBRb1MgYXMgYW4gb25nb2luZyB3b3JrIGl0ZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIE1lbnRpb24gUW9TIGFzIGFuIG9uZ29pbmcgd29yayBpdGVtLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgTmV3IGRvYyBhYm91dCBidWZmZXJpbmcgdGhhdCBuZWVkcyB0byBiZSBmbGVzaGVkIG91dAoJICBhdCBzb21lIHBvaW50LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgTW9yZSBRb1MgcG9saWN5IGZvciBkZWNvZGVycy9kZW11eGVycy90cmFuc2Zvcm1zCgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoKMjAwNi0wNC0yOCAxMDo1NjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuNSA9PT0KCjIwMDYtMDQtMjggMTA6NTM6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNQoKMjAwNi0wNC0yOCAwOTo0ODowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkgIGZpeCB1cGxvYWQubWFrOyBzaG91bGQgbW92ZSB0byBjb21tb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cGxvYWQubWFrOyBzaG91bGQgbW92ZSB0byBjb21tb24KCjIwMDYtMDQtMjggMDk6MjA6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIGFkZGluZyBtaXNzaW5nIGRzcCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG1pc3NpbmcgZHNwIGZpbGVzCgoyMDA2LTA0LTI2IDEzOjU0OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTA0LTIyIDIxOjM0OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGludGVybmFsIGRhdGEgZmxvdyBlcnJvcnMuICBGaXhlcyAjMzM4NzExLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFdpbSBUYXltYW5zCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfcHVzaCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCk6CgkgIEZpeCBpbnRlcm5hbCBkYXRhIGZsb3cgZXJyb3JzLiAgRml4ZXMgIzMzODcxMS4KCjIwMDYtMDQtMTIgMTE6NTg6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiBEb24ndCBsZWFrIHRoZSBmYWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIHRoZSBmYWN0b3J5LgoKMjAwNi0wNC0xMiAxMTowNjo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9iZy5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCjIwMDYtMDQtMTIgMTE6MDQ6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcKCjIwMDYtMDQtMTIgMTA6NTc6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzZQoKMjAwNi0wNC0xMiAxMDoyODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGcmVlIGFsbG9jYXRlZCBHc3RUaW1lZFZhbHVlcyB3aGVuIGZyZWVpbmcgbGlzdCBub2Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl91bnNldCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICBGcmVlIGFsbG9jYXRlZCBHc3RUaW1lZFZhbHVlcyB3aGVuIGZyZWVpbmcgbGlzdCBub2Rlcy4KCSAgU2hvdWxkIGZpeCBsZWFrcyAnbWFrZSBjaGVjay12YWxncmluZCcgY29tcGxhaW5zIGFib3V0LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgQWRkIGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbC4KCjIwMDYtMDQtMTIgMTA6MTU6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBmaXggQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggQ2hhbmdlTG9nCgoyMDA2LTA0LTExIDIxOjA3OjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGRlZCBuZXcgbWV0aG9kIF91bnNldF9hbGwoKSBhbmQgZml4ZWQgX3Vuc2V0KCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIEFkZGVkIG5ldyBtZXRob2QgX3Vuc2V0X2FsbCgpIGFuZCBmaXhlZCBfdW5zZXQoKQoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGRlZCB0d28gdGVzdGNhc2VzIGZvciBuZXcgYW5kIGZpeGVkIG1ldGhvZAoKMjAwNi0wNC0xMSAxODo0MzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IE1TR19ET05UV0FJVCBpcyBub3QgZGVmaW5lZCBvbiBDeWd3aW4sIHNvIHdvcmsgYXJvdW5kIHRoYXQgKGZpeGVzICMzMTcwNDgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKToKCSAgTVNHX0RPTlRXQUlUIGlzIG5vdCBkZWZpbmVkIG9uIEN5Z3dpbiwgc28gd29yawoJICBhcm91bmQgdGhhdCAoZml4ZXMgIzMxNzA0OCkuCgoyMDA2LTA0LTExIDE0OjQ4OjM0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHZlcnNpb25pbmcgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB2ZXJzaW9uaW5nIG1hY3JvCgoyMDA2LTA0LTExIDExOjQ3OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpLCAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKToKCSAgU29tZSBjbGVhbnVwcy4KCSAgRml4ZWQgYSBGSVhNRS4KCSAgVXBkYXRlZCBkb2NzIChGaXhlcyAjMTMxMDc5KQoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RjYXNlIGZvciBlbGVtZW50ZmFjdG9yeSBjbGFzcyBmaWVsZC4KCjIwMDYtMDQtMTAgMTA6NDY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3Fvcyk6CgkgIENhbGN1bGF0ZSBtb3JlIGFjY3VyYXRlIHJhdGUgdmFsdWVzLgoKMjAwNi0wNC0wOSAxNjo1NzozNCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IGFkZCBhIG5ldyAjaWZkZWYgdG8gdXNlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBvbmx5IGZvciBvdGhlciBtb2R1bGVzIGFuZCBub3QgZm9yIGdzdHJlYW1lciBjb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBhZGQgYSBuZXcgI2lmZGVmIHRvIHVzZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgb25seSBmb3IKCSAgb3RoZXIgbW9kdWxlcyBhbmQgbm90IGZvciBnc3RyZWFtZXIgY29yZQoJICAqIGdzdC9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3Fvcyk6CgkgIHVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zCgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0bmV0LmRzcDoKCSAgdXBkYXRlIHByb2plY3QgZmlsZXMKCjIwMDYtMDQtMDggMjA6NTc6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCAjMzM3MzY1IChnX3R5cGVfY2xhc3NfcmVmIDwtPiBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2lnbmFsX29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzogKGdzdF9tZW1faW5kZXhfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOiAoZ3N0X2V4YW1wbGVfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzogKGdzdF90ZXN0X2NsYXNzX2luaXQpOgoJICBGaXggIzMzNzM2NSAoZ190eXBlX2NsYXNzX3JlZiA8LT4gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50KQoKMjAwNi0wNC0wOCAxODoxMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogTXVzdCBzZXQgcGVlciBwYWRzIGJlZm9yZSBjYWxsaW5nIHRoZSBsaW5rIGZ1bmN0aW9uLCBvdGhlcndpc2UgYSB0YXNrIHN0YXJ0ZWQgZnJvbSBhIGxpbmsgZnVuY3Rpb24gbWlnaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmspOgoJICBNdXN0IHNldCBwZWVyIHBhZHMgYmVmb3JlIGNhbGxpbmcgdGhlIGxpbmsgZnVuY3Rpb24sIG90aGVyd2lzZQoJICBhIHRhc2sgc3RhcnRlZCBmcm9tIGEgbGluayBmdW5jdGlvbiBtaWdodCBnZXQgYSBmbG93LW5vdC1saW5rZWQKCSAgcmVzdWx0IHdoZW4gdHJ5aW5nIHRvIHB1c2ggYmVjYXVzZSB0aGUgb3RoZXIgdGhyZWFkIHdoZXJlIHRoZQoJICBsaW5raW5nIGhhcHBlbnMgaGFzbid0IGhhZCBhIGNoYW5jZSB0byBzZXQgdGhlIHBlZXJzIHlldC4gVGhpcwoJICBtaWdodCBoYXBwZW4gZm9yIGV4YW1wbGUgd2hlbiBhIHF1ZXVlIGdldHMgbGlua2VkIHRvIGEgZG93bnN0cmVhbQoJICBlbGVtZW50LCBhcyBxdWV1ZSBzdGFydHMgYSBzdHJlYW1pbmcgdGFzayB3aGVuIGl0cyBzb3VyY2UgcGFkCgkgIGdldHMgbGlua2VkLiBIYXBwZW5zIGluIHJlYWwgbGlmZSB3aGVuIHBsYXlpbmcgYmFjayBmbGFjL211c2VwYWNrCgkgIGZpbGVzIGluIHBsYXliaW4gKCMzMzIzOTApLgoKMjAwNi0wNC0wOCAxODowNToxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4IGJyb2tlbiBHT2JqZWN0IG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgRml4IGJyb2tlbiBHT2JqZWN0IG1hY3JvcwoKMjAwNi0wNC0wNyAxNToxOTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW5pdGlhbGl6ZSBzdGFydCBhbmQgc3RvcCB0aW1lcywgdGhhbmtzIHZhbGdyaW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgSW5pdGlhbGl6ZSBzdGFydCBhbmQgc3RvcCB0aW1lcywgdGhhbmtzIHZhbGdyaW5kLgoKMjAwNi0wNC0wNyAxNDo1MDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmUgYSBiaXQgbmljZXIgdG8gYmFkbHkgYmVoYXZpbmcgdXBzdHJlYW0gZWxlbWVudHMgdGhhdCBleHBlY3QgdXMgdG8gZGVhbCB3aXRoIG5vbiBUSU1FIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgQmUgYSBiaXQgbmljZXIgdG8gYmFkbHkgYmVoYXZpbmcgdXBzdHJlYW0gZWxlbWVudHMgdGhhdCBleHBlY3QKCSAgdXMgdG8gZGVhbCB3aXRoIG5vbiBUSU1FIHNlZ21lbnRzIGFuZCB0aW1lc3RhbXBzIChzdWNoIGFzIGZha2VzcmMKCSAgaW4gdGhlIHRlc3RzdWl0ZSkuCgoyMDA2LTA0LTA3IDE0OjAyOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBTbWFsbCBkb2N1bWVudGF0aW9uIGNsYXJpZmljYXRpb24gYWJvdXQgdGhlIHNpZ25hbCB3YXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGNsYXJpZmljYXRpb24gYWJvdXQgdGhlIHNpZ25hbCB3YXRjaC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3JlbmRlcl9zdGF0cyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBDb252ZXJ0IGFuZCBzdG9yZSB0aW1lc3RhbXBzIGluIHN0cmVhbSB0aW1lIGFuZCBydW5uaW5nIHRpbWUsIHRoZQoJICByYXcgdGltZXN0YW1wcyBhcmUgbm90IHVzZWZ1bGwsIGFsc28gZG9jdW1lbnQgdGhpcyBiZXR0ZXIuCgkgIFVzZSBkaWZmZXJlbnQgd2luZG93IHNpemVzIGZvciBnb29kIGFuZCBiYWQgUW9TIG9ic2VydmF0aW9ucyBzbwoJICB3ZSByZWFjdCB0byBiYWRuZXNzIGEgbGl0dGxlIHF1aWNrZXIuCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGFtb3VudCBvZiByZW5kZXJlZCBhbmQgZHJvcHBlZCBidWZmZXJzLgoJICBTZW5kIFFvUyB0aW1lc3RhbXBzIGluIHJ1bm5pbmcgdGltZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIENvbXBhcmUgUW9TIHRpbWVzdGFtcHMgYWdhaW5zdCBydW5uaW5nIHRpbWUuCgoyMDA2LTA0LTA2IDE3OjM2OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdub25saW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnbm9ubGluCgoyMDA2LTA0LTA2IDE1OjQ2OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBUeXBvIGZpeGVzIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgVHlwbyBmaXhlcyBpbiBkb2NzLgoKMjAwNi0wNC0wNiAxNTowNzoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgZ192YWx1ZV9nZXRfb2JqZWN0KCkgaW5zdGVhZCBvZiBnX3ZhbHVlX2R1cF9nc3Rfb2JqZWN0KCksIHRvIGF2b2lkIGRvdWJsZS1yZWZmaW5nIHRoZSBwYWQgdGVtcGxhdGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3Byb3BlcnR5KToKCSAgVXNlIGdfdmFsdWVfZ2V0X29iamVjdCgpIGluc3RlYWQgb2YgZ192YWx1ZV9kdXBfZ3N0X29iamVjdCgpLAoJICB0byBhdm9pZCBkb3VibGUtcmVmZmluZyB0aGUgcGFkIHRlbXBsYXRlICh3aGljaCB3ZSB0aGVuIHNpbmssCgkgIHNvIHRoaXMgd29ya2VkIHByZXZpb3VzbHkgaWYgKGFuZCBvbmx5IGlmKSB0aGUgcGFkIHRlbXBsYXRlCgkgIHdhcyBmbG9hdGluZy4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfaW5pdCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3BhZF9jcmVhdGVkKToKCSAgTmV2ZXIgcmV0dXJuIGZsb2F0aW5nIHJlZmVyZW5jZXMgdG8gcGFkIHRlbXBsYXRlcywgY3JlYXRlCgkgIHRoZW0gYXMgaW5pdGlhbGx5LXN1bmtlbi4KCSAgRG9jdW1lbnQgYW4gZXh0cmEgZnVuY3Rpb24gKGFuZCBtYWtlIHRoaXMgc3RvcCBzaW5raW5nIG91cgoJICBwYWQgdGVtcGxhdGUsIHNpbmNlIHRoYXQgaXMgbm93IGd1YXJhbnRlZWQgdG8gZG8gbm90aGluZywKCSAgc2luY2Ugd2UgY3JlYXRlZCBpdCBzdW5rZW4pLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBGaXggZG9jcyB0eXBvLgoKMjAwNi0wNC0wNiAxMToyNzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEFkZCBzb21lIG5ld2xpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX19nc3RfaW5fdmFsZ3JpbmQpOgoJICBBZGQgc29tZSBuZXdsaW5lcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRG9uJ3QgbGVhayBidWZmZXIgY2Fwcy4KCjIwMDYtMDQtMDYgMTA6Mzg6NTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IEZpeCBhIGxlYWsgaW4gcGFyc2UtbGF1bmNoIGZvciBhbnkgc291cmNlLW9yLXNpbmsgbmFtZWQgZWxlbWVudCByZWZlcmVuY2VzIHVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIEZpeCBhIGxlYWsgaW4gcGFyc2UtbGF1bmNoIGZvciBhbnkgc291cmNlLW9yLXNpbmsgbmFtZWQgZWxlbWVudAoJICByZWZlcmVuY2VzIHVzZWQuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKToKCSAgVW5yZWYgdGhlIHBpcGVsaW5lIGlmIGl0IGV4aXN0cyBhZnRlciB3ZSd2ZSBmYWlsZWQgcGFyc2luZy4KCjIwMDYtMDQtMDUgMTU6NDY6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBXaGVuIHdlIGNyZWF0ZSBhIHBpcGVsaW5lIGJ1cywgaW5pdGlhbGx5IGNyZWF0ZSBpdCBpbiBmbHVzaGluZyBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KToKCSAgV2hlbiB3ZSBjcmVhdGUgYSBwaXBlbGluZSBidXMsIGluaXRpYWxseSBjcmVhdGUgaXQgaW4gZmx1c2hpbmcgbW9kZS4KCSAgRml4ZXMgbGVha3MgaW4gYXQgbGVhc3Qgb25lIHRlc3QsIGFuZCBtYWtlcyBhIG5ldyBwaXBlbGluZSB3b3JrIHRoZQoJICBzYW1lIGFzIG9uZSB0aGF0IGhhcyBnb25lIHRvIFJFQURZIGFuZCB0aGVuIGJhY2sgdG8gTlVMTC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBUeXBvIGZpeCBpbiBkb2NzLgoKMjAwNi0wNC0wNSAxNToxMjozOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IFVucmVmIGEgcGFkIHdlIHJlZmZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVucmVmIGEgcGFkIHdlIHJlZmZlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5yZWYgYmlucwoKMjAwNi0wNC0wNSAxMzoxODoyOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IEZpeCBsZWFraW5nIEdWYWx1ZXMgaW4gcXVlcmllcywgYXMgc2hvd24gYnkgdmFsZ3JpbmQvdGVzdHN1aXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zZXRfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KToKCSAgRml4IGxlYWtpbmcgR1ZhbHVlcyBpbiBxdWVyaWVzLCBhcyBzaG93biBieSB2YWxncmluZC90ZXN0c3VpdGUuCgoyMDA2LTA0LTA1IDEyOjExOjIwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IEZpeCBhIHZhcmlldHkgb2YgbWVtbGVha3MgaW4gc2lua3MgY2hlY2ssIHdoaWNoIGFyZSBvbmx5IHNvbWV0aW1lcyBzaG93biBieSBydW5uaW5nIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggYSB2YXJpZXR5IG9mIG1lbWxlYWtzIGluIHNpbmtzIGNoZWNrLCB3aGljaCBhcmUgb25seSBzb21ldGltZXMKCSAgc2hvd24gYnkgcnVubmluZyB0aGUgdGVzdHMgdW5kZXIgdmFsZ3JpbmQgKHdlaXJkPykuCgoyMDA2LTA0LTA1IDExOjA0OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjogRml4IHRoZSBzdWJzdGl0dXRlZCBlbnRpdHkgbmFtZSBhZnRlciB0aG9tYXMnIGNoYW5nZXMgb24gdGhlIHdlZWtlbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjoKCSAgRml4IHRoZSBzdWJzdGl0dXRlZCBlbnRpdHkgbmFtZSBhZnRlciB0aG9tYXMnIGNoYW5nZXMgb24gdGhlCgkgIHdlZWtlbmQuCgoyMDA2LTA0LTA1IDEwOjMxOjIwICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L2dzdGluZm8uYzogVXNlIHByaW50ZiBpbnN0ZWFkIG9mCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTA1ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L2dzdGluZm8uYzogKF9fZ3N0X2luX3ZhbGdyaW5kKTogVXNlIHByaW50ZiBpbnN0ZWFkIG9mCgkgIFZBTEdSSU5EX1BSSU5URgoKMjAwNi0wNC0wNSAxMDoyNjoyOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKTogTW9yZSBkZWJ1Zy4gbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKTogTW9yZSBkZWJ1Zy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKTogV2hlbiByZXNldHRpbmcgb3VyIHNlZ21lbnQgb24KCSAgRkxVU0hfU1RPUCwgYWxzbyB1cGRhdGUgdGhlIGZsYWcgc2F5aW5nIHdlIGhhdmVuJ3Qgc2VlbiBhCgkgIG5ld3NlZ21lbnQuCgoyMDA2LTA0LTA0IDE4OjAyOjA3ICswMDAwICBQYW9sbyBCb3JlbGxpIDxwYm9yZWxsaUBrYXRhbWFpbC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IG1pbm9yIGNsZWFuLXVwczogR19ERUZJTkVfVFlQRSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgdGhlIHBhcmVudF9jbGFzcyBzdHVmZiwgbm8gbmVlZCB0byBkbyBpdCB0d2ljZS4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQYW9sbyBCb3JlbGxpICA8cGJvcmVsbGkgYXQga2F0YW1haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2ZpbmFsaXplKSwgKGdzdF9wbHVnaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfcGx1Z2luX2NoZWNrX2xpY2Vuc2UpOgoJICBtaW5vciBjbGVhbi11cHM6IEdfREVGSU5FX1RZUEUgYWxyZWFkeSB0YWtlcyBjYXJlIG9mIHRoZQoJICBwYXJlbnRfY2xhc3Mgc3R1ZmYsIG5vIG5lZWQgdG8gZG8gaXQgdHdpY2UuIE1hcmsgYXJyYXkgb2YKCSAgbGljZW5zZSBzdHJpbmdzIGFzIGNvbnN0YW50LiAoIzMzNzEwMykKCjIwMDYtMDQtMDQgMTc6NTQ6MzAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZyZWUgdGhlIHJpZ2h0IHBsdWdpbiBsaXN0OyBmaXhlcyBhIG1lbW9yeSBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9saXN0KToKCSAgRnJlZSB0aGUgcmlnaHQgcGx1Z2luIGxpc3Q7IGZpeGVzIGEgbWVtb3J5IGxlYWsuCgoyMDA2LTA0LTA0IDE1OjQ1OjM2ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBEb24ndCBlcnJvciBvdXQgb24gZW1wdHkgYnVmZmVycyAoIzMzNjk0NSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyAgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgRG9uJ3QgZXJyb3Igb3V0IG9uIGVtcHR5IGJ1ZmZlcnMgKCMzMzY5NDUpLgoKMjAwNi0wNC0wNCAxNDo1ODo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuIE1ha2UgQmFzZVNpbmsgYW5kIEJhc2VTcmMgZG9jcyBjb250YWluIHRoZSBjbGFzcyBzdHJ1Y3R1cmUgc28gdGhhdCBwZW9wbGUgY2FuIGFjdHVhbGx5IHNlZSB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4gTWFrZSBCYXNlU2luayBhbmQgQmFzZVNyYyBkb2NzIGNvbnRhaW4gdGhlCgkgIGNsYXNzIHN0cnVjdHVyZSBzbyB0aGF0IHBlb3BsZSBjYW4gYWN0dWFsbHkgc2VlIHRoZSBwcm90b3R5cGVzIGZvcgoJICB2aXJ0dWFsIGZ1bmN0aW9ucyB0aGV5J3JlIHN1cHBvc2VkIHRvIGJlIG92ZXJyaWRpbmcuCgoyMDA2LTA0LTA0IDA4OjU1OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogTW9yZSBkZWJ1ZyBpbmZvOyB3aGVuIHNraXBwaW5nIHR5cGVmaW5kaW5nLCBzZW5kIGNhY2hlZCBldmVudHMgaW4gYWxsIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTW9yZSBkZWJ1ZyBpbmZvOyB3aGVuIHNraXBwaW5nIHR5cGVmaW5kaW5nLCBzZW5kIGNhY2hlZAoJICBldmVudHMgaW4gYWxsIGNhc2VzLgoKMjAwNi0wNC0wMyAxNzowNTozMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHlwbyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDYtMDQtMDMgMDg6NTk6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIHdpbjMyIGNvbW1vbiBkaXI7IHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBjb21tb24gZGlyOyB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgoyMDA2LTA0LTAxIDE1OjMwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBkaXNhYmxlIHVzZSBvZiBBU19MSUJUT09MX1RBR1MsIGl0IGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgdXNlIG9mIEFTX0xJQlRPT0xfVEFHUywgaXQgZG9lc24ndCB3b3JrIGNvcnJlY3RseQoKMjAwNi0wNC0wMSAwOTo0MTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSBuZXcgQVNfVkVSU0lPTiBhbmQgQVNfTkFOTyBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgbmV3IEFTX1ZFUlNJT04gYW5kIEFTX05BTk8gbWFjcm9zCgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHVwZGF0ZSBhY2NvcmRpbmdseQoKMjAwNi0wMy0zMSAxNToyNjowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRG8gbm90IHR5cGVmaW5kIGNvbnRlbnQgaWYgdGhlIGJ1ZmZlcnMgYWxyZWFkeSBoYXZlIGNhcHMuIGFuZCB0aGUgcmlnaHQgdGhpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBEbyBub3QgdHlwZWZpbmQgY29udGVudCBpZiB0aGUgYnVmZmVycyBhbHJlYWR5IGhhdmUgY2Fwcy4KCSAgTmVjY2VzYXJ5IGZvciBpY3lkZW11eCAoIzMzMzY1NyksIGFuZCB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gYW55d2F5LgoKMjAwNi0wMy0zMCAxNjozNjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTW9yZSBRb1MgbWVhc3VyZW1lbnRzIGFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZmluYWxpemUpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZWNvcmRfcW9zX29ic2VydmF0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBNb3JlIFFvUyBtZWFzdXJlbWVudHMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLgoJICBHZXQgcmlkIG9mIHJpbmdidWZmZXIgd2l0aCBvYnNlcnZhdGlvbnMsIHJ1bm5pbmcgYXZlcmFnZSBpcwoJICBtb3JlIHNpbXBsZSBhbmQgZXF1YWxseSBnb29kLgoJICBDYWxjdWxhdGVzIHZhbGlkIHByb3BvcnRpb24gbm93LgoJICBBZGRlZCBiZWdpbm5pbmcgb2YgZmxvb2QgbWVhc3VyZW1lbnQuCgoyMDA2LTAzLTI5IDEzOjQ1OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCBhZGRpdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCBhZGRpdGlvbnMuCgoyMDA2LTAzLTI5IDEzOjM5OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFBlcmZvcm0gdGhlIEVPUyBsb2dpYyB3aGVuIHdlIHJlYWNoIHRoZSBzZWdtZW50IHN0b3AgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBQZXJmb3JtIHRoZSBFT1MgbG9naWMgd2hlbiB3ZSByZWFjaCB0aGUgc2VnbWVudCBzdG9wIHBvc2l0aW9uLgoJICBGaXggY29tcGlsYXRpb24gb24gZ2NjNC4xCgoyMDA2LTAzLTI5IDExOjAyOjMzICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBJbiBxdWV1ZSwgd2hlbiBFT1MgaXMgcmVjZWl2ZWQsIGlmIG1pbmltdW0gdGhyZXNob2xkID4gbWF4X3NpemUgLSBjdXJyZW50X2xldmVsLCB0aGVyZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieSBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBJbiBxdWV1ZSwgd2hlbiBFT1MgaXMgcmVjZWl2ZWQsIGlmIG1pbmltdW0gdGhyZXNob2xkID4gbWF4X3NpemUgLQoJICBjdXJyZW50X2xldmVsLCB0aGVyZSBpcyBjaGFuY2UgdGhhdCBxdWV1ZSBibG9ja3MgZm9yZXZlciBpbiBjb25kaXRpb25hbCBpdGVtCgkgIGRlbCB3YWl0LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHF1ZXVlIGlzIG5vdCBlbXB0aWVkIGNvbXBsZXRlbHkgZHVlIHRvIG1pbmltdW0KCSAgdGhyZXNob2xkLgoJICBIZXJlIGlzIGFub3RoZXIgYXBwcm9hY2guIEluc3RlYWQgb2Ygc2V0dGluZyBjdXJfbGV2ZWxzIHRvIG1heCBpbiBFT1MsIGp1c3QKCSAgemVybyBhbGwgbWluaW11bSB0aHJlc2hvbGQgbGV2ZWxzLiBUaGlzIHNob3VsZCBtYWtlIHN1cmUgdGhhdCBxdWV1ZSBnaXZlcyBvdXQKCSAgYWxsIGRhdGEuIFdoZW4gZ29pbmcgdG8gUkVBRFkgKHN0b3ApIHN0YXRlLCBqdXN0IHJlc2V0IHRoZSBvcmlnaW5hbCBtaW5pbXVtCgkgIHRocmVzaG9sZCBsZXZlbHMuCgkgIEZpeGVzICMzMzYzMzYuCgoyMDA2LTAzLTI5IDEwOjMzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogV2hlbiB0eXBlZmluZGluZyBpcyBkb25lIGluIHB1c2ggbW9kZSwgd2Ugc2hvdWxkIGNhY2hlIGV2ZW50cyB3ZSByZWNlaXZlIGR1cmluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NlbmRfY2FjaGVkX2V2ZW50cyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBXaGVuIHR5cGVmaW5kaW5nIGlzIGRvbmUgaW4gcHVzaCBtb2RlLCB3ZSBzaG91bGQgY2FjaGUKCSAgZXZlbnRzIHdlIHJlY2VpdmUgZHVyaW5nIHR5cGVmaW5kaW5nIGluc3RlYWQgb2YganVzdAoJICBkcm9wcGluZyB0aGVtIChlLmcuIG5ld3NlZ21lbnQsIGN1c3RvbSBldmVudHMgZnJvbQoJICBkdmRyZWFkc3JjIGV0Yy4pIGFuZCB0aGVuIHNlbmQgdGhlbSBvdXQgb25jZSB3ZSd2ZQoJICBkZXRlcm1pbmVkIHRoZSB0eXBlIG9mIHRoZSBzdHJlYW0gKGFuZCBkZWNvZGViaW4KCSAgaGFzIGhhZCBhIGNoYW5jZSB0byBwbHVnIGluIGEgZGVjb2Rlci9kZW11eGVyKS4KCjIwMDYtMDMtMjcgMTg6Mzg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEZpcnN0IFFvUyBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBGaXJzdCBRb1MgaWRlYXMuCgoyMDA2LTAzLTI3IDExOjQ4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEhhbmRsZSBlbGVtZW50IHNlZWsgY29ycmVjdGx5IHdoZW4gd2UgYXJlIHN0cmVhbWluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEluc3BpcmVkIGJ5IGEgcGF0Y2ggb2Y6IEx1dHogTXVlbGxlciA8bHV0eiBhdCB0b3Bmcm9zZSBkb3QgZGU+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBlbGVtZW50IHNlZWsgY29ycmVjdGx5IHdoZW4gd2UgYXJlIHN0cmVhbWluZy4KCSAgRml4ZXMgIzMyNjk5OC4KCjIwMDYtMDMtMjQgMTg6Mzg6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogU2V0IHVwIExEX0xJQlJBUllfUEFUSCB0byBwb2ludCBhdCBhbGwgdGhlIGdzdHJlYW1lciBsaWJzLiBUaGlzIHdpbGwgYWxsb3cgeW91IHRvIGNvcnJlY3RseS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIFNldCB1cCBMRF9MSUJSQVJZX1BBVEggdG8gcG9pbnQgYXQgYWxsIHRoZSBnc3RyZWFtZXIgbGlicy4gVGhpcyB3aWxsCgkgIGFsbG93IHlvdSB0byBjb3JyZWN0bHkgcnVuIGludGFsbGVkIGFwcGxpY2F0aW9ucyBidWlsdCBhZ2FpbnN0IG9sZCAgICAgICAgICAgY29yZSwgdXNpbmcgcGx1Z2lucyB0aGF0IHJlcXVpcmUgdXBkYXRlZCBjb3JlIChlLmcuIHJ1bm5pbmcKCSAgaW5zdGFsbGVkIHRvdGVtIGFnYWluc3QgYSBmdWxsIHVuaW5zdGFsbGVkIGdzdHJlYW1lciBzdGFjaykKCjIwMDYtMDMtMjQgMTc6Mjk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBhZGQgQVBJOiBtYXJrZXIgaW4gQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgQVBJOiBtYXJrZXIgaW4gQ2hhbmdlTG9nCgoyMDA2LTAzLTI0IDE3OjEwOjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IG1vcmUgZGVidWcgZGV0YWlscwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCk6CgkgIG1vcmUgZGVidWcgZGV0YWlscwoKMjAwNi0wMy0yNCAxMTowMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlYXJyYW5nZSB0aGUgb3JkZXIgb2YgdGhlIG1ldGhvZHMgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMgYXJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZWFycmFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBtZXRob2RzIHNvIHRoYXQgcmVsYXRlZCBtZXRob2RzCgkgIGFyZSBncm91cGVkIHRvZ2V0aGVyIGluIHNlY3Rpb25zLgoKMjAwNi0wMy0yNCAxMDo0NDoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTGl0dGxlIGNsYXJpZmljYXRpb24gaW4gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgTGl0dGxlIGNsYXJpZmljYXRpb24gaW4gdGhlIGRvY3MKCjIwMDYtMDMtMjQgMTA6Mzg6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBmb3JtYXR0aW5nIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgZm9ybWF0dGluZyBmaXgKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgR1NUX0VMRU1FTlRfREVUQUlMUyBmb3JtYXR0aW5nCgoyMDA2LTAzLTI0IDA5OjQ4OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBPbmx5IGFkZCBmaWVsZHMsIG5vdCBpbnNlcnQgb3Igd2UgYnJlYWsgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE9ubHkgYWRkIGZpZWxkcywgbm90IGluc2VydCBvciB3ZSBicmVhayBBQkkuCgoyMDA2LTAzLTIzIDE4OjUxOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogVXBkYXRlLCBhZGQgcmVjZW50bHkgYWRkZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVwZGF0ZSwgYWRkIHJlY2VudGx5IGFkZGVkIGZ1bmN0aW9ucy4KCjIwMDYtMDMtMjMgMTg6NDU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBzb21lIG5ldyB1dGlsaXR5IGZ1bmN0aW9uczoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcXVlcnlfcGVlcl9wb3NpdGlvbiksCgkgIChnc3RfcGFkX3F1ZXJ5X3BlZXJfZHVyYXRpb24pLCAoZ3N0X3BhZF9xdWVyeV9wZWVyX2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBzb21lIG5ldyB1dGlsaXR5IGZ1bmN0aW9uczoKCSAgLSBnc3RfcGFkX3F1ZXJ5X3BlZXJfcG9zaXRpb24KCSAgLSBnc3RfcGFkX3F1ZXJ5X3BlZXJfZHVyYXRpb24KCSAgLSBnc3RfcGFkX3F1ZXJ5X3BlZXJfY29udmVydAoKMjAwNi0wMy0yMyAxNjozMjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRvIG1lbnRpb24gdGhlIHByZXZpb3VzIGNvbW1pdCBmaXhlZCAjMzI2MzExCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdG8gbWVudGlvbiB0aGUgcHJldmlvdXMgY29tbWl0IGZpeGVkICMzMjYzMTEKCjIwMDYtMDMtMjMgMTY6MjA6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERlY291cGxlIG1heC1sYXRlbmVzcyBhbmQgdGhlIGZhY3QgdGhhdCBRb1MgbWVzc2FnZXMgYXJlIGdlbmVyYXRlZCB3aXRoIGEgbmV3IHByb3BlcnR5ICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKSwgKGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWRkX3Fvc19vYnNlcnZhdGlvbiksIChnc3RfYmFzZV9zaW5rX3NlbmRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERlY291cGxlIG1heC1sYXRlbmVzcyBhbmQgdGhlIGZhY3QgdGhhdCBRb1MgbWVzc2FnZXMgYXJlIGdlbmVyYXRlZAoJICB3aXRoIGEgbmV3IHByb3BlcnR5IChxb3MpLgoJICBBZGQgdm1ldGhvZCBzbyBzdWJjbGFzc2VzIGNhbiBiZSBub3RpZmllZCBvZiBBU1lOQyBwbGF5aW5nCgkgIHN0YXRlIGNoYW5nZXMuCgkgIENvbGxlY3QgdGltZXN0YW1wIHN0YXJ0IGFuZCBzdG9wIHRvIHJlcG9ydCBiZXR0ZXIgY3VycmVudAoJICBwb3NpdGlvbiBpbiBFT1MvUExBWUlORy9QQVVTRUQvUkVBRFkvTlVMTC4KCSAgUmVmYWN0b3IgUW9TL2ZyYW1lIGRyb3BwaW5nIGFuZCBvdGhlciBtZWFzdXJlbWVudHMuCgkgIEFQSTogR3N0QmFzZVNyYzo6cW9zCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGRlZCBQcml2YXRlIHN0cnVjdC4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZAoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQKCjIwMDYtMDMtMjMgMTE6NTQ6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogSWYgY29tcGlsaW5nIGFnYWluc3QgR0xpYi0yLjggb3IgbmV3ZXIsIHRyeSB0byByZWFkIHRoZSByZWdpc3RyeSBmaWxlIHVzaW5nIEdNYXBwZWRGaWxlIGZpcnN0IGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOgoJICBJZiBjb21waWxpbmcgYWdhaW5zdCBHTGliLTIuOCBvciBuZXdlciwgdHJ5IHRvIHJlYWQgdGhlCgkgIHJlZ2lzdHJ5IGZpbGUgdXNpbmcgR01hcHBlZEZpbGUgZmlyc3QgYmVmb3JlIGZhbGxpbmcgYmFjawoJICB0byBmb3BlbigpICsgZnJlYWQoKSAoIzMzMjE1MSkuCgoyMDA2LTAzLTIyIDE4OjI1OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGluZm8uYzogRGlzYWJsZSBkZWJ1Z2dpbmcgdW5sZXNzIGV4cGxpY2l0bHkgYWN0aXZhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX3NldF9hY3RpdmUpLAoJICAoZ3N0X2RlYnVnX2NhdGVnb3J5X3NldF90aHJlc2hvbGQpOgoJICBEaXNhYmxlIGRlYnVnZ2luZyB1bmxlc3MgZXhwbGljaXRseSBhY3RpdmF0ZWQuCgkgIEZpeGVzICMzMzU0ODAuCgoyMDA2LTAzLTIyIDEzOjEwOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQ2xlYW51cCB0aGUgZXJyb3IgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIENsZWFudXAgdGhlIGVycm9yIGNhc2UuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwb3NlKToKCSAgcHJpbnQgYSBjcml0aWNhbCB3aGVuIHNvbWUgb2JqZWN0IHdhcyBkaXNwb3NlZCB3aXRoCgkgIGEgcGFyZW50LCBhbHNvIHJldml2ZSB0aGUgb2JqZWN0IHNpbmNlIGl0IG1pZ2h0CgkgIGNyYXNoIHRoZSBwYXJlbnQuCgoyMDA2LTAzLTIyIDA5OjAzOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBGaXggYW5vdGhlciB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEZpeCBhbm90aGVyIHR5cG8uCgoyMDA2LTAzLTIxIDE5OjI3OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRpc2FibGUgc29tZSB0ZXN0cyB3aGVuIHdlIGRvbid0IGhhdmUgYSByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgc29tZSB0ZXN0cyB3aGVuIHdlIGRvbid0IGhhdmUgYSByZWdpc3RyeQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgZG9uJ3QgYnVpbGQgdGhlIHBhcnQgdGhhdCBuZWVkcyBwYXJzaW5nCgoyMDA2LTAzLTIxIDE3OjI1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW0KCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgZml4IC0tZGlzYWJsZS1wYXJzZSBidWlsZAoKMjAwNi0wMy0yMSAxNzoyNDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIHRoZSAuaW4gZmlsZSBpcyBpbiBjdnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZSAuaW4gZmlsZSBpcyBpbiBjdnMKCjIwMDYtMDMtMjEgMTU6NDI6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtZmVlZGJhY2suMS5pbjogRml4IHR5cG86IHMvZmVlYmFjay9mZWVkYmFjay8gKCMxMzM0OTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtZmVlZGJhY2suMS5pbjoKCSAgRml4IHR5cG86IHMvZmVlYmFjay9mZWVkYmFjay8gKCMxMzM0OTQpLgoKMjAwNi0wMy0yMSAxNTowNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogQWRkIEZJTEVTIHNlY3Rpb24gYW5kIGNvcnJlY3QgZW50cnkgYWJvdXQgR1NUX1JFR0lTVFJZX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgKCMxMzM0OTU7ICMxMzM0OTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEFkZCBGSUxFUyBzZWN0aW9uIGFuZCBjb3JyZWN0IGVudHJ5IGFib3V0IEdTVF9SRUdJU1RSWV9QQVRICgkgIGVudmlyb25tZW50IHZhcmlhYmxlICgjMTMzNDk1OyAjMTMzNDk0KS4KCjIwMDYtMDMtMjEgMTQ6NDE6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IFJlbW92ZSBnc3QtbWQ1c3VtIGFuZCBtYW4gcGFnZSAodGhlIG1kNXNpbmsgZWxlbWVudCByZXF1aXJlZCB3YXMgcmVtb3ZlZCBhZ2VzIGFnbykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LW1kNXN1bS4xLmluOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzoKCSAgUmVtb3ZlIGdzdC1tZDVzdW0gYW5kIG1hbiBwYWdlICh0aGUgbWQ1c2luayBlbGVtZW50CgkgIHJlcXVpcmVkIHdhcyByZW1vdmVkIGFnZXMgYWdvKQoKMjAwNi0wMy0yMSAxNDoyNDo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogTWFrZSBzdXJlIHRoYXQgc3RyaW5nIGZpZWxkcyBpbiBzdHJ1Y3R1cmVzL3RhZ2xpc3RzIGNvbnRhaW4gdmFsaWQgVVRGLTggLSB3ZSBkb24ndCB3YW50IHRvIHBhc3Mgci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIE1ha2Ugc3VyZSB0aGF0IHN0cmluZyBmaWVsZHMgaW4gc3RydWN0dXJlcy90YWdsaXN0cwoJICBjb250YWluIHZhbGlkIFVURi04IC0gd2UgZG9uJ3Qgd2FudCB0byBwYXNzIHJ1YmJpc2ggdG8KCSAgYXBwbGljYXRpb25zIGJlY2F1c2Ugb2YgYSBidWdneSBwbHVnaW4gKGNwLiAjMzM0MTY3KS4KCjIwMDYtMDMtMjEgMTQ6MTQ6NDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBTZXJpZXMgb2YgZml4ZXMgZm9yIGRlcmVmZXJlbmNlZCBwb2ludGVycyB0aGF0IGdjYyA0LjEgY29tcGxhaW5zIGFib3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IDxkZWxldGUgaWYgbm90IHVzaW5nIGEgYnVkZHk+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZGlzcG9zZSksIChnc3RfY2xvY2tfc2V0X21hc3Rlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9jbG9jayksIChnc3RfZWxlbWVudF9kaXNwb3NlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9idXNfZnVuYyk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0KSwKCSAgKGdzdF92YWx1ZV90YWtlX21pbmlfb2JqZWN0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpLAoJICAoZ3N0X3BpcGVsaW5lX3VzZV9jbG9jayksIChnc3RfcGlwZWxpbmVfYXV0b19jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3NldF9wcm9wZXJ0eSk6CgkgIFNlcmllcyBvZiBmaXhlcyBmb3IgZGVyZWZlcmVuY2VkIHBvaW50ZXJzIHRoYXQgZ2NjIDQuMSBjb21wbGFpbnMgYWJvdXQuCgkgIEl0J3MgaW4gZmFjdCBhbGwgaXNzdWVzIHdpdGggZ3N0XypvYmplY3RfcmVwbGFjZSgpLgoKMjAwNi0wMy0yMSAxMzo1NTo0NCArMDAwMCAgTG/Dr2MgTWluaWVyIDxsb29sLmdub21lQHZpYS5lY3AuZnI+CgoJICBwa2djb25maWcvOiBVc2UgQENIRUNLX0xJQlNAIGhlcmUgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyAtbGNoZWNrICgjMzM0MTA5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMb8OvYyBNaW5pZXIgIDxsb29sICsgZ25vbWUgYXQgdmlhIGRvdCBlY3AgZG90IGZyPgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgVXNlIEBDSEVDS19MSUJTQCBoZXJlIGluc3RlYWQgb2YgaGFyZC1jb2RpbmcgLWxjaGVjayAoIzMzNDEwOSkuCgoyMDA2LTAzLTIxIDEzOjUwOjUyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogZ3N0X1tidWZmZXJ8ZXZlbnR8bWVzc2FnZV1fcmVmKCkgbWFjcm9zIGFyZSByZXBsYWNlZCBieSBhIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGJlY2F1c2UgZ2NjLTQuMSB3aWxsIGFib3V0IGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBnc3RfW2J1ZmZlcnxldmVudHxtZXNzYWdlXV9yZWYoKSBtYWNyb3MgYXJlIHJlcGxhY2VkIGJ5IGEgc3RhdGljCgkgIGlubGluZSBmdW5jdGlvbnMgYmVjYXVzZSBnY2MtNC4xIHdpbGwgYWJvdXQgaWYgdGhlIHJldHVybiB2YWx1ZQoJICBpc24ndCB1c2VkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpOgoJICBnc3RfZXZlbnRfcmVmIG5vdyBoYXMgdG8gYmUgZ2l2ZW4gYSBHc3RFdmVudCogLCBmaXggY2hlY2sgYWNjb3JkaW5nbHkuCgoyMDA2LTAzLTIwIDE2OjQ3OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIFJlbW92ZSBpcnJpdGF0aW5nIGZpbGUgdGhhdCBrZWVwcyBicmVha2luZyBteSBjaGVja291dHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBpcnJpdGF0aW5nIGZpbGUgdGhhdCBrZWVwcyBicmVha2luZyBteSBjaGVja291dHMKCjIwMDYtMDMtMjAgMTY6NDU6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEFkZCBHX1VOTElLRUxZIHRvIG91ciBib2lsZXJwbGF0ZSB0byBvcHRpbWlzZSB0aGUgJ2FscmVhZHkgcmVnaXN0ZXJlZCB0aGUgdHlwZScgY2FzZS4gKENsb3NlczogIzMzNTE5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgR19VTkxJS0VMWSB0byBvdXIgYm9pbGVycGxhdGUgdG8gb3B0aW1pc2UgdGhlICdhbHJlYWR5IHJlZ2lzdGVyZWQKCSAgdGhlIHR5cGUnIGNhc2UuIChDbG9zZXM6ICMzMzUxOTUgZm9yIG5vdykuIEluIHRoZSBmdXR1cmUsIHdoZW4gd2UKCSAgZGVwZW5kIG9uIEdMaWIgMi4xMCwgd2UgY291bGQgYWxzbyBpbnRlcm4gdGhlIHR5cGUgbmFtZSB1c2luZwoJICBnX2ludGVybl9zdGF0aWNfc3RyaW5nKCkKCjIwMDYtMDMtMjAgMTA6NTY6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFBvc2l0aW9uIHF1ZXJ5IHNob3VsZCBhbHNvIHRha2UgbWF4IG9mIGFsbCBzdHJlYW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpLAoJICAoYmluX3F1ZXJ5X21heF9pbml0KSwgKGJpbl9xdWVyeV9wb3NpdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9wb3NpdGlvbl9kb25lKSwgKGdzdF9iaW5fcXVlcnkpOgoJICBQb3NpdGlvbiBxdWVyeSBzaG91bGQgYWxzbyB0YWtlIG1heCBvZiBhbGwgc3RyZWFtcy4KCjIwMDYtMDMtMjAgMDk6Mjg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogRml4IGxlYWtzIGluIGZha2VzcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2ZpbmFsaXplKToKCSAgRml4IGxlYWtzIGluIGZha2VzcmMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVha3MgaW4gdGhlIHRlc3RjYXNlLgoKMjAwNi0wMy0xOSAyMTozOToyMSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IGFkZCB3aW4zMiBzcGVjaWZpYyBpbXBvcnQgZGVjb3JhdGlvbihfX2RlY2xzcGVjKGRsbGltcG9ydCkpIGZvciBhbGwgZXh0ZXJuIEdzdERlYnVnQ2F0ZWdvcnkgKiB2YXJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBhZGQgd2luMzIgc3BlY2lmaWMgaW1wb3J0IGRlY29yYXRpb24oX19kZWNsc3BlYyhkbGxpbXBvcnQpKQoJICBmb3IgYWxsIGV4dGVybiBHc3REZWJ1Z0NhdGVnb3J5ICogdmFyaWFibGVzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHNvbWUgZXhwb3J0cywgcmVtb3ZlIGVtcHR5IGxpbmVzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kc3A6CgkgIG5ldyBwcm9qZWN0IGZpbGVzIGFuZCBleHBvcnRhdGlvbiBmaWxlcyBhZGRlZAoKMjAwNi0wMy0xOSAxNjowNToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiBVc2UgcHJvcGVyIHJldHVybiB2YWx1ZSBmb3IgcHJvYmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoZW9zX2V2ZW50X2NvdW50ZXIpOgoJICBVc2UgcHJvcGVyIHJldHVybiB2YWx1ZSBmb3IgcHJvYmUuCgoyMDA2LTAzLTE3IDE5OjI3OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBsZWFrIGJ1ZmZlcnMsIGNhcHMgYW5kIHBhZHMgb24gbmVnb3RpYXRpb24gZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9wdXNoKToKCSAgRG9uJ3QgbGVhayBidWZmZXJzLCBjYXBzIGFuZCBwYWRzIG9uIG5lZ290aWF0aW9uIGVycm9ycy4KCjIwMDYtMDMtMTYgMTU6MzM6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZmFxLzogRmFxIHJldmlldyBhbmQgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICAqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkgICogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgICogZG9jcy9mYXEvZmFxLnhtbDoKCSAgKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS9sZWdhbC54bWw6CgkgICogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEZhcSByZXZpZXcgYW5kIHVwZGF0ZS4KCjIwMDYtMDMtMTYgMTA6MTg6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBwb3VuZCB0aGUgY3B1IHRvIHBpZWNlcyBieSBjaGVja2luZyBnZXRfY2FwcyB3aGVuIGFjY2VwdF9jYXBzIGlzIGNhbGxlZCB3aXRoIHRoZSBzYW1lIGNhcHMgYXMgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBEb24ndCBwb3VuZCB0aGUgY3B1IHRvIHBpZWNlcyBieSBjaGVja2luZyBnZXRfY2FwcyB3aGVuIGFjY2VwdF9jYXBzCgkgIGlzIGNhbGxlZCB3aXRoIHRoZSBzYW1lIGNhcHMgYXMgdGhlIHBhZCBhbHJlYWR5IGhhcy4KCSAgVXNlIEdTVF9ERUJVR19PQkpFQ1Qgd2hlbiBvdXRwdXR0aW5nIGNhcHMgY2hhbmdlIGluZm9ybWF0aW9uLgoKMjAwNi0wMy0xNSAyMDoxNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgIEZpeCBkb2NzLgoKMjAwNi0wMy0xNSAxNjoyOTowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IERvY3VtZW50YXRpb24gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIERvY3VtZW50YXRpb24gZml4LgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKToKCSAgTWFrZSB0aGUgZGVmYXVsdCBhY2NlcHRjYXBzIGJlaGF2aW91ciBiZSB0byBjaGVjayB0aGUgcmVxdWVzdGVkCgkgIGNhcHMgYWdhaW5zdCB0aGUgZ3N0X3BhZF9nZXRfY2FwcyBvdXRwdXQuCgkgIEVuc3VyZSB0aGF0IGdzdF9wYWRfYWNjZXB0X2NhcHMgaXMgdXNlZCB0byBjaGVjayBjYXBzIHdoZW4gYSBwYWQKCSAgZG9lc24ndCBoYXZlIGEgc2V0Y2FwcyBmdW5jdGlvbiwgc28gdGhhdCBwYWRzIGF1dG9tYXRpY2FsbHkgcmVmdXNlCgkgIGNhcHMgdGhhdCB0aGV5IGRvbid0IGFsbG93IGluIHRoZWlyIHBhZCB0ZW1wbGF0ZS4gKEZpeGVzICMzMzI5ODYpCgkgIFdoZW4gYSBidWZmZXIgd2l0aCBhdHRhY2hlZCBjYXBzIGlzIHB1c2hlZCwgZW5zdXJlIHRoYXQgdGhlIHNvdXJjZQoJICBwYWQgcmVjZWl2ZXMgdGhvc2UgY2FwcyBldmVuIGlmIHRoZSBlbGVtZW50IGRpZG4ndCBjYWxsCgkgIGdzdF9wYWRfc2V0X2NhcHMgZmlyc3QuCgoyMDA2LTAzLTE1IDE2OjIyOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IEFkZCBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBBZGQgc29tZSBkb2NzLgoKMjAwNi0wMy0xNSAxNTo1Nzo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBhIHdob2xlIGJ1bmNoIG9mIG1pc3NpbmcgZnVuY3Rpb25zICgjMzM0NDM0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGEgd2hvbGUgYnVuY2ggb2YgbWlzc2luZyBmdW5jdGlvbnMgKCMzMzQ0MzQpLgoKMjAwNi0wMy0xNCAxOTozNjowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmV0dGVyIGRlYnVnIGluZm8gd2hlbiB3ZSByZWNlaXZlIGEgc2VnbWVudCBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19kb19xb3MpOgoJICBCZXR0ZXIgZGVidWcgaW5mbyB3aGVuIHdlIHJlY2VpdmUgYSBzZWdtZW50IGV2ZW50LgoJICBSZW9yZ2FuaXplIGEgYml0IHNvIHdlIGNhbiBwYXNzIHRoZSBnZXRfdGltZXMoKSByZXN1bHRzIGFyb3VuZC4KCSAgVXNlIHRoZSBzZWdtZW50IGZvcm1hdCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBydW5uaW5nIHRpbWUuCgkgIERvbid0IGRvIFFvUyBpcyBzeW5jIGlzIGRpc2FibGVkIG9yIHdlIGhhdmUgbm8gY2xvY2sgb3IgdGhlCgkgIGVsZW1lbnQgZG9lcyBub3Qgd2FudCB1cyB0byBzeW5jIHRvIHRoZSBjbG9jay4KCSAgRG9uJ3QgZHJvcCBidWZmZXJzIGlmIFFvUyBpcyBkaXNhYmxlZCBmb3Igbm93LgoKMjAwNi0wMy0xNCAxOToyODoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBNYXJrZWQgdGhlIHN0YXRzIHByb3BlcnR5IGFzIHVuaW1wbGVtZW50ZWQgc28gcGVvcGxlIGRvbid0IGdldCB3aWxkIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKToKCSAgTWFya2VkIHRoZSBzdGF0cyBwcm9wZXJ0eSBhcyB1bmltcGxlbWVudGVkIHNvIHBlb3BsZSBkb24ndCBnZXQKCSAgd2lsZCBpZGVhcy4KCSAgQWRkIGRlYnVnIG1lc3NhZ2Ugd2hlbiByZWdyZXNzaW9uIGdvZXMgd3JvbmcuCgkgIEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoKMjAwNi0wMy0xNCAxOToyNjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFJldHVybiBjb3JyZWN0IHJldHVybiB0eXBlIGluIGNhc2Ugb2YgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpOgoJICBSZXR1cm4gY29ycmVjdCByZXR1cm4gdHlwZSBpbiBjYXNlIG9mIGVycm9ycy4KCjIwMDYtMDMtMTQgMTk6MTY6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Zm9ybWF0LmM6IERvbid0IHNlZ2ZhdWx0IG9uIGludmFsaWQgZm9ybWF0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoZ3N0X2Zvcm1hdF9nZXRfbmFtZSksIChnc3RfZm9ybWF0X3RvX3F1YXJrKToKCSAgRG9uJ3Qgc2VnZmF1bHQgb24gaW52YWxpZCBmb3JtYXRzLgoKMjAwNi0wMy0xNCAxODoyNTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQ2FuJ3QgdXNlIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIHdoZW4gdGhlIHNlZ21lbnQgaXMgbm90IGluIEdTVF9USU1FX0ZPUk1BVCAobGlrZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgQ2FuJ3QgdXNlIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIHdoZW4gdGhlIHNlZ21lbnQKCSAgaXMgbm90IGluIEdTVF9USU1FX0ZPUk1BVCAobGlrZSB3aXRoIGZpbGVzaW5rLCBmb3IgZXhhbXBsZSkuCgkgIFN0b3BzIGZsYWMgZW5jb2RpbmcgcGlwZWxpbmVzIGZyb20gc3Bld2luZyBjcml0aWNhbCB3YXJuaW5ncwoJICBhdCBFT1MgKCMzMzEyNDgpLgoKMjAwNi0wMy0xNCAxNjozMjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBBZGQgJ1NpbmNlOiAwLjEwLjUnIHRvIGd0ay1kb2MgYmx1cmIgZm9yIGFkZGVkIHByb3BlcnR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgQWRkICdTaW5jZTogMC4xMC41JyB0byBndGstZG9jIGJsdXJiIGZvciBhZGRlZCBwcm9wZXJ0eS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIERvbid0IHRyeSB0byB0eXBlZmluZCBlbXB0eSBzdHJlYW1zLgoKMjAwNi0wMy0xNCAxMToxODowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2VwYXJhdGUgUW9TIGNhbGN1bGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19xb3MpOgoJICBTZXBhcmF0ZSBRb1MgY2FsY3VsYXRpb24uCgkgIE9ubHkgZHJvcCBidWZmZXJzIHdoZW4gbGF0ZW5lc3MgaXMgYmlnZ2VyIHRoYW4gdGhlCgkgIGR1cmF0aW9uIG9mIHRoZSBidWZmZXIuCgoyMDA2LTAzLTEzIDE1OjE3OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IERvbid0IGRlYWRsb2NrIHdoZW4gcmVhZGluZyBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5KToKCSAgRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuCgoyMDA2LTAzLTEzIDExOjI3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IE1ha2UgYmFzZXRyYW5zZm9ybSB2aXJ0dWFsIG1ldGhvZCBmb3Igc3JjIGV2ZW50cyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfcW9zKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFrZSBiYXNldHJhbnNmb3JtIHZpcnR1YWwgbWV0aG9kIGZvciBzcmMgZXZlbnRzIHRvby4KCSAgSGFuZGxlIFFPUyBpbiBiYXNldHJhbnNmb3JtLgoJICBBUEk6IGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfcW9zCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9xb3NfZW5hYmxlZAoJICBBUEk6IGdzdF9iYXNlX3RyYW5zZm9ybV9pc19xb3NfZW5hYmxlZAoKMjAwNi0wMy0xMyAxMToxNjo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgVXNlIFFPUyBkZWJ1ZyBjYXRlZ29yeS4KCjIwMDYtMDMtMTMgMTE6MTE6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFZlcnkgc21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBWZXJ5IHNtYWxsIGRvYyB1cGRhdGUuCgoyMDA2LTAzLTEzIDExOjA4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgUU9TIGRlYnVnIGNhdGVnb3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICBBZGRlZCBRT1MgZGVidWcgY2F0ZWdvcnkKCjIwMDYtMDMtMTMgMTE6MDQ6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpLCAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpLCAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9waXBlbGluZV9zZXRfZGVsYXkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9kZWxheSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEFkZGVkIG1ldGhvZHMgZm9yIHNldHRpbmcgdGhlIGRlbGF5LgoJICBBUEk6IGdzdF9waXBlbGluZV9zZXRfZGVsYXkKCSAgQVBJOiBnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5CgkgIEFkZCBwaXBlbGluZSBkZWJ1ZyBjYXRlZ29yeQoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBVcGRhdGVkIGRvY3MuCgkgIERvbid0IHJlc2V0IHN0cmVhbSB0aW1lIHdoZW4gc2VlayBmYWlsZWQuCgoyMDA2LTAzLTEzIDEwOjMyOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDMtMTIgMjA6NDQ6NDYgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogRml4IHJ1YmJpc2ggZG9jcyB0aGF0IGFyZSBlbmNvdXJhZ2luZyB1cyB0byBsZWFrIHN0cmluZ3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDMtMTIgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggcnViYmlzaCBkb2NzIHRoYXQgYXJlIGVuY291cmFnaW5nCgkgIHVzIHRvIGxlYWsgc3RyaW5ncy4uLgoKMjAwNi0wMy0xMiAyMDo0MDoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgZml4IGRvY3MKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZQoKMjAwNi0wMy0xMiAxNDozMjozNyArMDAwMCAgSnVsaW8gTS4gTWVyaW5vIFZpZGFsIDxqbW12QG5ldGJzZC5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IGNoZWNrIGZvciBsaWJnbm9tZXVpIChsZWZ0b3ZlciBmcm9tIG9sZCBleGFtcGxlcyB0aGF0IGFyZW4ndCBidWlsdCBvciBkaXN0ZWQgYW55IGxvbmdlcikgKCMzMzQzMDMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEp1bGlvIE0uIE1lcmlubyBWaWRhbCA8am1tdiBhdCBuZXRic2Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgY2hlY2sgZm9yIGxpYmdub21ldWkgKGxlZnRvdmVyIGZyb20gb2xkIGV4YW1wbGVzCgkgIHRoYXQgYXJlbid0IGJ1aWx0IG9yIGRpc3RlZCBhbnkgbG9uZ2VyKSAoIzMzNDMwMykuCgoyMDA2LTAzLTExIDEzOjAyOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEVtaXQgUkVTT1VSQ0VfTk9fU1BBQ0VfTEVGVCBlcnJvciBoZXJlIGFzIHdlbGwgd2hlbiB0aGVyZSdzIG5vIHNwYWNlIGxlZnQgb24gdGhlIGRldmljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBFbWl0IFJFU09VUkNFX05PX1NQQUNFX0xFRlQgZXJyb3IgaGVyZSBhcyB3ZWxsIHdoZW4KCSAgdGhlcmUncyBubyBzcGFjZSBsZWZ0IG9uIHRoZSBkZXZpY2UuCgoyMDA2LTAzLTEwIDIzOjQ0OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNsb2NrLmg6IEZpeCBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCBzaWduZWRuZXNzIGlzc3VlcyAtIHdlIG5lZWQgdG8gY2FzdCB0aGUgaW5wdXQgdG8gR3N0Q2xvY2tUaW1lIGJlZm9yZSBjb21wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBGaXggR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgc2lnbmVkbmVzcyBpc3N1ZXMgLSB3ZSBuZWVkCgkgIHRvIGNhc3QgdGhlIGlucHV0IHRvIEdzdENsb2NrVGltZSBiZWZvcmUgY29tcGFyaW5nIHdpdGgKCSAgYW5vdGhlciBHc3RDbG9ja1RpbWUgdmFsdWUuCgoyMDA2LTAzLTEwIDE5OjEyOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBsb2cgd2hhdCB3ZSdyZSB3YWl0aW5nIG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2cgd2hhdCB3ZSdyZSB3YWl0aW5nIG9uCgoyMDA2LTAzLTEwIDE5OjExOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuMTAuNCA9PT0KCjIwMDYtMDMtMTAgMTk6MDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbWFudWFsL1JFQURNRToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy91cGxvYWQubWFrOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjQKCjIwMDYtMDMtMTAgMTU6MzA6MjcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IGRvY3MgZm9yIGRhdGFwcm9jb3RvbCB0byBub3QgZ2V0IHRoZSByZXR1cm4gdHlwZXMgY29tcGxldGVseSB3cm9uZyBmb3IgYSBmZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIEZpeCBkb2NzIGZvciBkYXRhcHJvY290b2wgdG8gbm90IGdldCB0aGUgcmV0dXJuIHR5cGVzIGNvbXBsZXRlbHkKCSAgd3JvbmcgZm9yIGEgZmV3IGZ1bmN0aW9ucy4KCjIwMDYtMDMtMDkgMTk6MDA6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNpbmcKCjIwMDYtMDMtMDkgMTY6NTM6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSTogZ3N0X3BpcGVsaW5lX3NldF9hdXRvX2ZsdXNoX2J1cygpIGFuZCBnc3RfcGlwZWxpbmVfZ2V0X2F1dG9fZmx1c2hfYnVzKCkgdG8gZGlzYWJsZSBhdXRvbWF0aWMgZmx1c2hpbmcgb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfYXV0b19mbHVzaF9idXMpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9hdXRvX2ZsdXNoX2J1cyk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEFkZCBuZXcgQVBJOiBnc3RfcGlwZWxpbmVfc2V0X2F1dG9fZmx1c2hfYnVzKCkgYW5kCgkgIGdzdF9waXBlbGluZV9nZXRfYXV0b19mbHVzaF9idXMoKSB0byBkaXNhYmxlIGF1dG9tYXRpYwoJICBmbHVzaGluZyBvZiB0aGUgcGlwZWxpbmUncyBHc3RCdXMgd2hlbiBnb2luZyBmcm9tIFJFQURZCgkgIHRvIE5VTEwgc3RhdGUgKCMzMzIwNDUpLgoKMjAwNi0wMy0wOSAxMjowODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJOiBnc3RfdXJpX2hhc19wcm90b2NvbCgpICgjMzMzNzc5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhc19wcm90b2NvbCk6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBBZGQgbmV3IEFQSTogZ3N0X3VyaV9oYXNfcHJvdG9jb2woKSAoIzMzMzc3OSkuCgoyMDA2LTAzLTA5IDExOjQ1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLio6IFJldmlldyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLAoJICAoZ3N0X2Nsb2NrX2lkX2NvbXBhcmVfZnVuYyksIChnc3RfY2xvY2tfaWRfd2FpdCksCgkgIChnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3RfY2xvY2tfaWRfdW5zY2hlZHVsZSksCgkgIChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfZ2V0X2ludGVybmFsX3RpbWUpLAoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLAoJICAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbiksIChnc3RfY2xvY2tfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgUmV2aWV3IGRvY3MuCgkgIFNtYWxsIGNsZWFudXBzLgoJICBGaXggYSBwb3NzaWJsZSBzZWdmYXVsdCB3aGVuIHRoZSB3aW5kb3ctc2l6ZSBpcyBtYWRlIHNtYWxsZXIuCgkgIENhbGN1bGF0ZSBqaXR0ZXIgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGNsb2NrIHdhaXQuIElkZWFsbHkKCSAgdGhlIGNsb2NrIGltcGxlbWVudGF0aW9uIHNob3VsZCBjYWxjdWxhdGUgaml0dGVyIGJ1dCB3ZSBuZWVkCgkgIEFQSSBicmVha2FnZSBmb3IgdGhhdC4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6CgkgIERvY3MgcmV2aWV3LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFJlbW92ZSBsZWZ0b3ZlciBlbHNlCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0byB0ZXN0IEdTVF9DTE9DS19ESUZGLgoKMjAwNi0wMy0wOSAxMDo0NjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogSWYgd2UgYXJlIHByb3ZpZGVkIHdpdGggdGhlIHNpemUsIHdlIHNob3VsZCBpbXBsZW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpOgoJICBJZiB3ZSBhcmUgcHJvdmlkZWQgd2l0aCB0aGUgc2l6ZSwgd2Ugc2hvdWxkIGltcGxlbWVudAoJICBHc3RUeXBlRmluZDo6Z2V0X2xlbmd0aCwgc28gdGhhdCB0eXBlZmluZCBmdW5jdGlvbnMgd2hvCgkgIHdhbnQgdG8gY2FuIGFjdHVhbGx5IHBlZWsgYXQgdGhlIG1pZGRsZSBvZiBhIGZpbGUuCgoyMDA2LTAzLTA4IDE0OjMwOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEFkZCBzb21lIHZlcnkgdmVyeSBiYXNpYyBlcnJvciBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEFkZCBzb21lIHZlcnkgdmVyeSBiYXNpYyBlcnJvciBjaGVja2luZy4KCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICBTb21lIHVwZGF0ZXMgdG8gdGhlIGxpc3Qgb2YgdGhpbmdzIHRvIGNoZWNrIHdoZW4gd3JpdGluZyBhbiBlbGVtZW50LgoKMjAwNi0wMy0wOCAxMzo0NDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OiBBZGRlZCBzb21lIGRvY3MgYWJvdXQgdGhlIGRlc2lnbiBvZiB0cmFuZm9ybSBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIEFkZGVkIHNvbWUgZG9jcyBhYm91dCB0aGUgZGVzaWduIG9mIHRyYW5mb3JtIGVsZW1lbnRzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWFyayBidWZmZXJzIHdpdGggdGhlIERJU0NPTlQgZmxhZy4KCjIwMDYtMDMtMDggMTI6NTc6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IFJld3JpdGUgcmVnaXN0cnktc2F2aW5nIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyBhbmQgY2hlY2sgZm9yIGZhaWxlZCB3cml0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3NhdmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NhdmVfZXNjYXBlZCksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfY2FwcyksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIFJld3JpdGUgcmVnaXN0cnktc2F2aW5nIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyBhbmQgY2hlY2sgZm9yCgkgIGZhaWxlZCB3cml0ZXMuCgoyMDA2LTAzLTA4IDEwOjE3OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENsZWFudXBzLCBzZXBhcmF0ZSBub3JtYWwgZmxvdyBmcm9tIGVycm9ycywgYWRkIHNlbnNpYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFudXBzLCBzZXBhcmF0ZSBub3JtYWwgZmxvdyBmcm9tIGVycm9ycywgYWRkIHNlbnNpYmxlCgkgIERFQlVHIGxpbmVzLgoJICBEb24ndCB0cnkgdG8gcmVuZWdvdGlhdGUgd2hlbiBhbGxvY2F0aW5nIGFuIG91dHB1dCBidWZmZXIuCgkgIEFsc28gY29weSBESVNDT05UIGJ1ZmZlciBmbGFnIHdoZW4gY29weWluZyBhIGJ1ZmZlci4KCSAgUmVzZXQgdGhlIHRyYW5zZm9ybSBhZnRlciB3ZSBmaW5pc2ggc3RyZWFtaW5nLCBub3QgZHVyaW5nLgoKMjAwNi0wMy0wOCAwOTo0Njo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVXNlIGxhc3QgYnVmZmVyIHRpbWVzdGFtcCBpbiBxb3MgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgVXNlIGxhc3QgYnVmZmVyIHRpbWVzdGFtcCBpbiBxb3MgbWVzc2FnZS4KCjIwMDYtMDMtMDcgMTc6MDY6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3B3Zy86IEFwcGxpZWQgcGF0Y2ggZnJvbSBDaHJpc3RvcGhlIEZlcmdlYXUsIGZpeGVzICMzMzM0MTYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgIEFwcGxpZWQgcGF0Y2ggZnJvbSBDaHJpc3RvcGhlIEZlcmdlYXUsIGZpeGVzICMzMzM0MTYKCjIwMDYtMDMtMDcgMTY6MjE6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGRlZCBiYXNlc2luayBuZXcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgYmFzZXNpbmsgbmV3IG1ldGhvZHMuCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIERvY3MgdXBkYXRlcy4gRmxlc2ggb3V0IHRoZSBRb1MgZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgU21hbGwgZG9jIGNsYXJpZmljYXRpb24gYWJvdXQgb3duZXJzaGlwIGFuZCBmbHVzaGluZy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfbWF4X2xhdGVuZXNzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X21heF9sYXRlbmVzcyksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkZWQgbmV3IG1ldGhvZHMgdG8gYWxsb3cgc3ViY2xhc3MgdG8gY29udHJvbCBtYXgtbGF0ZW5lc3MKCSAgYW5kIHN5bmMuCgkgIEdlbmVyYXRlIHZlcnkgYmFzaWMgUW9TIGV2ZW50cyBiYXNlZCBvbiBsYXN0IHN5bmMgb2JzZXJ2YXRpb24uCgkgIFVwZGF0ZWQgZG9jcywgZml4IHR5cG8sIGFkZGVkIHNvbWUgUW9TIGJsdXJiLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZW1vdmUgb2Jzb2xldGUgX2dldF9zdGF0ZSgpIGNhbGxzIGZyb20gZG9jcy4KCjIwMDYtMDMtMDcgMTU6MTQ6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggIzMzMzY2OSwgQWRkIHBhZCBhY2Nlc3NvciBkZWZpbmVzIGZvciBHc3RCYXNlVHJhbnNmb3JtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEZpeCAjMzMzNjY5LCBBZGQgcGFkIGFjY2Vzc29yIGRlZmluZXMgZm9yIEdzdEJhc2VUcmFuc2Zvcm0KCSAgRml4IGRvY3MgZm9yIEdzdEJhc2VTcmMuCgoyMDA2LTAzLTA3IDE1OjA4OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgoyMDA2LTAzLTA3IDExOjQ3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IERvY3VtZW50IHRocmVhZC11bnNhZmV0eSBvZiBnc3RfdmFsdWVfcmVnaXN0ZXJfZm9vX2Z1bmMoKSB3aGVuIHVzZWQgYXQgdGhlIHNhbWUgdGltZSBhcyBnc3RfdmFsdWVfZm9vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb2N1bWVudCB0aHJlYWQtdW5zYWZldHkgb2YgZ3N0X3ZhbHVlX3JlZ2lzdGVyX2Zvb19mdW5jKCkKCSAgd2hlbiB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgYXMgZ3N0X3ZhbHVlX2ZvbygpICgjMzIyNjI4KS4KCjIwMDYtMDMtMDcgMTA6MTk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB1cGRhdGUgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgUkVBRE1FCgoyMDA2LTAzLTA3IDA5OjI4OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IFB1c2ggc291cmNlcyBkb24ndCBzdXBwb3J0IHB1bGwgbW9kZSBieSBkZWZhdWx0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9wdXNoX3NyY19jaGVja19nZXRfcmFuZ2UpOgoJICBQdXNoIHNvdXJjZXMgZG9uJ3Qgc3VwcG9ydCBwdWxsIG1vZGUgYnkgZGVmYXVsdC4KCjIwMDYtMDMtMDYgMTk6NTU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogQWRkIDo6Y2hlY2tfZ2V0X3JhbmdlKCkgdmZ1bmMgdG8gR3N0QmFzZVNyYyAoIzMzMjYxMSksIHByb3ZpZGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcGFkX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9jaGVja19nZXRfcmFuZ2UpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgOjpjaGVja19nZXRfcmFuZ2UoKSB2ZnVuYyB0byBHc3RCYXNlU3JjICgjMzMyNjExKSwKCSAgcHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhbmQgcmVuYW1lCgkgIGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UoKSB0bwoJICBnc3RfYmFzZV9zcmNfcGFkX2NoZWNrX2dldF9yYW5nZSgpIGZvciBjbGFyaXR5LgoKMjAwNi0wMy0wNiAxNjoyNDozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9zdHlsZWd1aWRlOgoJICBzdHlsZSBndWlkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3R5bGUgZ3VpZGUKCjIwMDYtMDMtMDYgMTY6MTA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2UgcHJvcGVydHkgb3ZlcnJpZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgIE1ha2UgcHJvcGVydHkgb3ZlcnJpZGFibGUuCgoyMDA2LTAzLTA2IDE2OjAyOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBNYWtlIG1heC1sYXRlbmVzcyBhIHByb3BlcnR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBNYWtlIG1heC1sYXRlbmVzcyBhIHByb3BlcnR5LgoKMjAwNi0wMy0wNiAxNToxNjoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgZXZlciBkcmF3IGEgZnJhbWUgdGhhdCBpcyA+MTBtcyBsYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCk6CgkgIERvbid0IGV2ZXIgZHJhdyBhIGZyYW1lIHRoYXQgaXMgPjEwbXMgbGF0ZS4KCjIwMDYtMDMtMDYgMTQ6NTE6MzYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IFdoZW4gY29weWluZyBhIG1lc3NhZ2UsIHNldCB0aGUgcGFyZW50X3JlZmNvdW50IG9mIHRoZSBlbmNsb3NlZCBzdHJ1Y3R1cmUgdG8gcG9pbnQgYXQgdGhlIGNvcHksIG5vdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2NvcHkpOgoJICBXaGVuIGNvcHlpbmcgYSBtZXNzYWdlLCBzZXQgdGhlIHBhcmVudF9yZWZjb3VudCBvZiB0aGUgZW5jbG9zZWQKCSAgc3RydWN0dXJlIHRvIHBvaW50IGF0IHRoZSBjb3B5LCBub3QgdGhlIG9yaWdpbmFsIG1lc3NhZ2UuCgoyMDA2LTAzLTA2IDE0OjQ2OjMxICswMDAwICBDaHJpc3RvcGhlIEZlcmdlYXUgPHRldWZAZ25vbWUub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IERvIHByb3BlciBjYXN0IGhlcmUgdG8gbWFrZSBHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIERvIHByb3BlciBjYXN0IGhlcmUgdG8gbWFrZSBHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UKCSAgdXNhYmxlIGluIGMrKyBjb2RlICgjMzMzNDE3OyBwYXRjaCBieTogQ2hyaXN0b3BoZSBGZXJnZWF1KQoKMjAwNi0wMy0wNiAxNDozNDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suaDogU2hvdyBHU1RfQ0xPQ0tfVElNRV9OT05FIGFzIDk5Ojk5Ojk5Ljk5OTk5OTk5OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgU2hvdyBHU1RfQ0xPQ0tfVElNRV9OT05FIGFzIDk5Ojk5Ojk5Ljk5OTk5OTk5OQoKMjAwNi0wMy0wNiAxNDoyMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgYW5vdGhlciBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGFub3RoZXIgcXVvdGUKCjIwMDYtMDMtMDUgMjA6NTY6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBzdXJlIGNhcHMgYXJlIHdyaXRhYmxlIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gZ3N0X2NhcHNfYXBwZW5kKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgTWFrZSBzdXJlIGNhcHMgYXJlIHdyaXRhYmxlIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8KCSAgZ3N0X2NhcHNfYXBwZW5kKCkuCgoyMDA2LTAzLTA0IDE0OjQ1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmg6IEZpeCBzb21lIG1pbm9yIGRvY3MgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgRml4IHNvbWUgbWlub3IgZG9jcyBlcnJvcnMuCgoyMDA2LTAzLTA0IDEzOjU0OjI2ICswMDAwICBSb3NzIEJ1cnRvbiA8cm9zc0BidXJ0b25pbmkuY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IEFkZCBHU1RfUkVTT1VSQ0VfRVJST1JfTk9fU1BBQ0VfTEVGVCAoZm9yICMzMzMzNTI7CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9yZXNvdXJjZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCBHU1RfUkVTT1VSQ0VfRVJST1JfTk9fU1BBQ0VfTEVGVCAoZm9yICMzMzMzNTI7CgkgIHBhdGNoIGJ5OiBSb3NzIEJ1cnRvbiA8cm9zcyBhdCBidXJ0b25pbmkgZG90IGNvbT4pLgoKMjAwNi0wMy0wMyAxNjo1ODo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IEFkZCBhIGNoZWNrIGFuZCBvdXRwdXQgYSBnX3dhcm5pbmcgd2hlbiBHU3RyZWFtZXIgaXMgYnVpbHQgYWdhaW5zdCBHTGliIDIuNiBidXQgcnVubmluZyBhZ2FpbnN0IDIuOCBvciBoaWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBBZGQgYSBjaGVjayBhbmQgb3V0cHV0IGEgZ193YXJuaW5nIHdoZW4gR1N0cmVhbWVyIGlzIGJ1aWx0CgkgIGFnYWluc3QgR0xpYiAyLjYgYnV0IHJ1bm5pbmcgYWdhaW5zdCAyLjggb3IgaGlnaGVyLCBhbmQgdmljZQoJICB2ZXJzYS4gKENsb3NlczogIzMyMzU0MikKCjIwMDYtMDMtMDMgMTU6MzI6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L3BhcnNlL3BhcnNlLmw6IENvbW1pdCBwYXRjaCBmb3IgcGFyc2VfbGF1bmNoIHN5bnRheCBmcm9tICMzMzEyNTUuIFJlbW92ZXMgc3VwcG9ydCBmb3IgcXVvdGVkIHN0cmluZ3MgYW5kIG1pbWV0eXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBDb21taXQgcGF0Y2ggZm9yIHBhcnNlX2xhdW5jaCBzeW50YXggZnJvbSAjMzMxMjU1LiBSZW1vdmVzCgkgIHN1cHBvcnQgZm9yIHF1b3RlZCBzdHJpbmdzIGFuZCBtaW1ldHlwZXMgd2hlbiB3cml0aW5nIGZpbHRlcmVkCgkgIGNhcHMuIFNlZSB0aGUgYnVnIHJlcG9ydCBmb3IgbW9yZSBkZXRhaWxzIC0gSSdtIHByZXR0eSBzdXJlIHRoaXMKCSAgb2JzY3VyZSBmZWF0dXJlIGlzIG5vdCBpbiB1c2UgYnkgX2FueW9uZV8gYW55d2hlcmUuCgkgIFdpdGggdGhpcyBzaW1wbGUgY2hhbmdlLCB0aGUgc2l6ZSBvZiB0aGUgZ3N0cmVhbWVyLnNvIGhlcmUKCSAgZHJvcHMgZnJvbSAyMTkzS0IgdG8gMTU2NUtCLgoKMjAwNi0wMy0wMyAxNDoxODowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgZm9yIGNoYWluLWJhc2VkIHR5cGVmaW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KSwgKHN0YXJ0X3R5cGVmaW5kaW5nKSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluX2RvX3R5cGVmaW5kaW5nKToKCSAgVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSBmb3IgY2hhaW4tYmFzZWQKCSAgdHlwZWZpbmRpbmcuCgoyMDA2LTAzLTAzIDExOjQyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRGVwcmVjYXRlICJtYXhpbXVtIiBwcm9wZXJ0eSAobm90IG9ubHkgd2FzIGl0IG9ubHkgdGFrZW4gaW50byBhY2NvdW50IGZvciB0eXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRfcHJvcGVydHkpOgoJICBEZXByZWNhdGUgIm1heGltdW0iIHByb3BlcnR5IChub3Qgb25seSB3YXMgaXQgb25seSB0YWtlbiBpbnRvCgkgIGFjY291bnQgZm9yIHR5cGVmaW5kaW5nIGluIHB1c2gtbW9kZSBhbnl3YXksIGl0IGFsc28gd2FzIG5ldmVyCgkgIGFjdHVhbGx5IHBvc3NpYmxlIHRvIHNldCBpdCBpbiB0aGUgZmlyc3QgcGxhY2UgYmVjYXVzZSB0aGUKCSAgcHJvcGVydHkgd2FzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgbnVtZXJpYyBwcm9wZXJ0eSBJRCBmb3IgdGhlCgkgICJtaW5pbXVtIiBwcm9wZXJ0eSkuIFJlZ2lzdGVyICJtYXhpbXVtIiBwcm9wZXJ0eSBjb3JyZWN0bHksCgkgIGZvciB0aGUgc2FrZSBvZiBmdXR1cmUgY29weSduJ3Bhc3RlcnMuIFJlbW92ZSBzb21lIGNydWZ0CgkgIGZyb20gcHJvcGVydHkgZ2V0L3NldCBmdW5jdGlvbnMuCgoyMDA2LTAzLTAzIDExOjI3OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpIGhlcmUsIHNvIHdlIGNhbiBob25vdXIgdGhlIG1pbi1wcm9iYWJpbGl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgaGVyZSwgc28gd2UKCSAgY2FuIGhvbm91ciB0aGUgbWluLXByb2JhYmlsaXR5IHByb3BlcnR5IGFuZCBhbHNvIGVtaXQKCSAgdGhlIHNpZ25hbCB3aXRoIHRoZSBjb3JyZWN0IHByb2JhYmlsaXR5IG9mIHRoZSBmb3VuZCBjYXBzLgoKMjAwNi0wMy0wMiAxMzo0NTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpICgjMzMzMDQyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGhlbHBlcl9maW5kX3N1Z2dlc3QpLCAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpICgjMzMzMDQyKS4KCjIwMDYtMDMtMDIgMTE6MDQ6NTggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBc3NlcnRpbmcgb24gYSBmYWlsdXJlIHRvIHJlYWQgcGFydCBvZiB0aGUgcmVnaXN0cnkgaXMgTm90IENvb2wuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKToKCSAgQXNzZXJ0aW5nIG9uIGEgZmFpbHVyZSB0byByZWFkIHBhcnQgb2YgdGhlIHJlZ2lzdHJ5IGlzIE5vdCBDb29sLgoJICBKdXN0IGxvZyBhIHdhcm5pbmcgYW5kIHJldHVybiBOVUxMICh3aGljaCBpcyBhbHJlYWR5IGhhbmRsZWQpCgoyMDA2LTAyLTI4IDIwOjU3OjEwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IGFkZGVkIGV4cG9ydCBvZiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRkZWQgZXhwb3J0IG9mIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkZGVkIHNvbWUgZXhwb3J0cyA6IGdzdF9iaW5faXRlcmF0ZV9lbGVtZW50cywgZ3N0X2l0ZXJhdG9yX3Jlc3luYywKCSAgZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0CgoyMDA2LTAyLTI4IDE3OjI0OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBXZSB1c2UgRmlsdGVyIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBXZSB1c2UgRmlsdGVyIG5vdy4KCSAgQWRkZWQgQ29ubmVjdG9yIHRvIG1hcmsgZWxlbWVudHMgdGhhdCBhcmUgb25seSB1c2VkIHRvCgkgIGFsbG93IHBpcGVsaW5lIGNvbm5lY3Rpb25zLgoJICBNb3ZlZCBEZWJ1ZyB0byBleHRyYSBmZWF0dXJlIHNpbmNlIG1vc3Qgb2YgdGhlbSBhcmUKCSAgZnVuY3Rpb25hbGx5IHNvbWV0aGluZyBlbHNlLgoKMjAwNi0wMi0yOCAxNzowMzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogU29tZSB1cGRhdGVzIGFuZCBjbGFyaWZpY2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBTb21lIHVwZGF0ZXMgYW5kIGNsYXJpZmljYXRpb25zLgoKMjAwNi0wMi0yOCAxNTo1NDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogUHJvcG9zYWwgZm9yIGtsYXNzIGZpZWxkIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBQcm9wb3NhbCBmb3Iga2xhc3MgZmllbGQgdmFsdWVzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIFN0YXJ0IG9mIGEgZG9jIGRlc2NyaWJpbmcgc3RyZWFtIGFuYXRvbXkuCgoyMDA2LTAyLTI4IDEwOjUyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBIZWxwIHRoZSBjb21waWxlciBhIGJpdCB3aXRoIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEhlbHAgdGhlIGNvbXBpbGVyIGEgYml0IHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgIFVzZSBleGlzdGluZyBmb3J3YXJkIGNvZCBwYXRoIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQgd2hlbgoJICBoYW5kbGluZyBhIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2dldF90eXBlKSwgKGdzdF9zdGF0aWNfY2Fwc19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfdHlwZSksCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19qb2luKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgSGVscCBjb21waWxlciB3aXRoIHR5cGUgcmVnaXN0cmF0aW9uLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA2LTAyLTI3IDIwOjAxOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogV2hlbiB3ZSBnZXQgYW4gRU9TIGV2ZW50IGFuZCBoYXZlIG5vdCBmb3VuZCBhIHR5cGUgeWV0IChtb3N0IGxpa2VseSBiZWNhdXNlIHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgV2hlbiB3ZSBnZXQgYW4gRU9TIGV2ZW50IGFuZCBoYXZlIG5vdCBmb3VuZCBhIHR5cGUgeWV0CgkgIChtb3N0IGxpa2VseSBiZWNhdXNlIHdlIGhhZCBub3QgeWV0IGFjY3VtdWxhdGVkCgkgIFRZUEVfRklORF9NSU5fU0laRSBvZiBkYXRhIHlldCksIHRyeSB0byBkZXRlcm1pbmUgdGhlCgkgIHR5cGUgZ2l2ZW4gdGhlIGRhdGEgd2UgaGF2ZSBzbyBmYXIuIEZpeGVzIHR5cGVmaW5kaW5nCgkgIGZvciB2ZXJ5IHNob3J0IHN0cmVhbXMgYWdhaW4sIG1vc3Qgbm90YWJseSBxdWlja3RpbWUKCSAgcmVkaXJlY3Rpb25zIGFzIHVzZWQgb24gQXBwbGUncyB0cmFpbGVyIHNpdGUgKCMzMzE3MDEpLgoKMjAwNi0wMi0yNyAxOTo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogVHJ5IHR5cGVmaW5kaW5nIGZhY3RvcmllcyB3aXRoIHRoZSBoaWdoZXN0IHJhbmsgZmlyc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKHR5cGVfZmluZF9mYWN0b3J5X3JhbmtfY21wKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgVHJ5IHR5cGVmaW5kaW5nIGZhY3RvcmllcyB3aXRoIHRoZSBoaWdoZXN0IHJhbmsgZmlyc3QuCgoyMDA2LTAyLTI3IDE5OjE5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIHNlY3Rpb24gZm9yIHR5cGVmaW5kIGhlbHBlciBhbmQgYWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIEFkZCBzZWN0aW9uIGZvciB0eXBlZmluZCBoZWxwZXIgYW5kIGFkZCBkb2N1bWVudGF0aW9uCgkgIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGZ1bmN0aW9uLgoKMjAwNi0wMi0yNyAxODo0MzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuKjogTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpICgjMzMyNzIzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoYnVmX2hlbHBlcl9maW5kX3BlZWspLAoJICAoYnVmX2hlbHBlcl9maW5kX3N1Z2dlc3QpLCAodHlwZV9maW5kX2ZhY3RvcnlfcmFua19jbXApLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcik6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgKCMzMzI3MjMpLgoKMjAwNi0wMi0yNyAxNTo0MzoxMCArMDAwMCAgTG/Dr2MgTWluaWVyIDxsb29sLmdub21lQHZpYS5lY3AuZnI+CgoJICBQYXRjaCBmcm9tIExvw69jIE1pbmllciB0byBwcmV2ZW50IENWUyBkaXJlY3RvcmllcyBnZXR0aW5nIGRpc3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9zbGlkZXMvTWFrZWZpbGUuYW06CgkgIFBhdGNoIGZyb20gTG/Dr2MgTWluaWVyIHRvIHByZXZlbnQgQ1ZTIGRpcmVjdG9yaWVzIGdldHRpbmcgZGlzdGVkLgoKMjAwNi0wMi0yNyAxMjoxMDo0NyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA2LTAyLTI3IDExOjAxOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogVXNlIHRoZSBSRUZDT1VOVElORyBjYXRlZ29yeSBmb3IgY2FwcyByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlZiksIChnc3RfY2Fwc191bnJlZik6CgkgIFVzZSB0aGUgUkVGQ09VTlRJTkcgY2F0ZWdvcnkgZm9yIGNhcHMgcmVmY291bnRpbmcuCgoyMDA2LTAyLTI2IDE5OjIwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVGhpcyBzaG91bGQgYmUgMCBub3QgR1NUX0NMT0NLX1RJTUVfTk9ORSAoc2VlICMzMzE3MDEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyk6CgkgIFRoaXMgc2hvdWxkIGJlIDAgbm90IEdTVF9DTE9DS19USU1FX05PTkUgKHNlZSAjMzMxNzAxKS4KCjIwMDYtMDItMjYgMTQ6NDI6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKCkgYmVmb3JlIF9hY3RpdmF0ZV9wdWxsKCkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVzZSBnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UoKSBiZWZvcmUgX2FjdGl2YXRlX3B1bGwoKQoJICB0byBhdm9pZCB1bm5lY2Vzc2FyeSBvcGVuL2Nsb3NlIChzZWUgIzMzMTY5MCkuCgoyMDA2LTAyLTI0IDE2OjU0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IERvY3MgZW5oYW5jZW1lbnQ6IG1ha2UgaXQgY3J5c3RhbCBjbGVhciB3aGF0IHRoZSBnc3RfcGFkX2FkZF8qX3Byb2JlKCkgY2FsbGJhY2tzIHNob3VsZCBsb29rIGxpa2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBEb2NzIGVuaGFuY2VtZW50OiBtYWtlIGl0IGNyeXN0YWwgY2xlYXIgd2hhdCB0aGUKCSAgZ3N0X3BhZF9hZGRfKl9wcm9iZSgpIGNhbGxiYWNrcyBzaG91bGQgbG9vayBsaWtlLgoKMjAwNi0wMi0yNCAxMDo1Nzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb2N1bWVudCBob3cgYXBwbGljYXRpb25zIGNhbiBzdG9wIHJlY29yZGluZyBmcm9tIGxpdmUgc291cmNlcyAoc2VlICMzMzA5OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgRG9jdW1lbnQgaG93IGFwcGxpY2F0aW9ucyBjYW4gc3RvcCByZWNvcmRpbmcgZnJvbQoJICBsaXZlIHNvdXJjZXMgKHNlZSAjMzMwOTk2KS4KCjIwMDYtMDItMjMgMTg6MDY6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBJZ25vcmUgbW9yZSBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZSBzdHVmZi4KCjIwMDYtMDItMjMgMTc6Mzk6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IC4uLiBhbmQgYWRkIHNvbWUgdGVzdHMgZm9yIHRoZSBiYXNlIHNvdXJjZSBFT1Mgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoZW9zX2V2ZW50X2NvdW50ZXIpLAoJICAoYmFzZXNyY19lb3NfZXZlbnRzX3B1bGwpLCAoYmFzZXNyY19lb3NfZXZlbnRzX3B1c2gpLAoJICAoYmFzZXNyY19lb3NfZXZlbnRzX3B1c2hfbGl2ZV9vcCksIChiYXNlc3JjX2Vvc19ldmVudHNfcHVsbF9saXZlX29wKSwKCSAgKGdzdF9iYXNlc3JjX3N1aXRlKSwgKG1haW4pOgoJICAuLi4gYW5kIGFkZCBzb21lIHRlc3RzIGZvciB0aGUgYmFzZSBzb3VyY2UgRU9TIHN0dWZmLgoKMjAwNi0wMi0yMyAxNjo1NjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBUZXN0IGNhc2Ugb3JpZ2luYWxseSBzaG93ZWQgdGhlIHByb2JsZW0gZml4ZWQgYmVsb3csIGJ1dCB3YXMgdGhlbiBhbWVuZGVkLiBBZGQgY2hlY2tzIGJhYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOgoJICBUZXN0IGNhc2Ugb3JpZ2luYWxseSBzaG93ZWQgdGhlIHByb2JsZW0gZml4ZWQgYmVsb3csCgkgIGJ1dCB3YXMgdGhlbiBhbWVuZGVkLiBBZGQgY2hlY2tzIGJhY2sgYXQgdGhlIHBsYWNlCgkgIHdoZXJlIHRoZXkgdXNlZCB0byBiZS4KCjIwMDYtMDItMjMgMTY6MjQ6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogRG9uJ3QgdW5jb25kaXRpb25hbGx5IHNlbmQgRU9TIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgRG9uJ3QgdW5jb25kaXRpb25hbGx5IHNlbmQgRU9TIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8KCSAgUkVBRFkgc3RhdGUsIGVzcC4gbWFrZSBzdXJlIHdlIGRvbid0IHNlbmQgdHdvIEVPUyBldmVudHMKCSAgaW4gc29tZSBjYXNlcyAoZS5nLiBvbmUgd2hlbiByZWFjaGluZyBFT1MgYW5kIG9uZSB3aGVuCgkgIGdvaW5nIGZyb20gUEFVU0VEIHRvIFJFQURZKS4gQWxzbywgd2UgZG9uJ3Qgd2FudCB0byBzZW5kCgkgIEVPUyBldmVudHMgd2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLiBIb3dldmVyLCB3ZSBkbwoJICB3YW50IHRvIHNlbmQgYW4gRU9TIGV2ZW50IHdoZW4gc2h1dHRpbmcgZG93biBhIGxpdmUKCSAgc291cmNlIGV4cGxpY2l0bHksIGZvciBleGFtcGxlIChmaXhlcyAjMzMwOTk2KS4KCjIwMDYtMDItMjMgMTA6MjQ6MTMgKzAwMDAgIFJlbmNoaSBSYWp1IDxyZW5jaGlAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFVwZGF0ZSBzcmMtPnJlYWRfcG9zaXRpb24gYWZ0ZXIgYSBzZWVrIHdoZW4gbm90IHVzaW5nIG1tYXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgVXBkYXRlIHNyYy0+cmVhZF9wb3NpdGlvbiBhZnRlciBhIHNlZWsgd2hlbiBub3QgdXNpbmcgbW1hcC4KCSAgRml4ZXMgIzMzMjI3NywgcGF0Y2ggYnk6IFJlbmNoaSBSYWp1IDxyZW5jaGkgZ21haWwgY29tPgoKMjAwNi0wMi0yMCAyMzozNDo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBNYWtlIHRoaW5ncyB3b3JrIHdpdGggLS1kaXNhYmxlLXBhcnNlIGFzIHRoZXkgZG8gd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1ha2UgdGhpbmdzIHdvcmsgd2l0aCAtLWRpc2FibGUtcGFyc2UgYXMgdGhleSBkbyB3aXRoCgkgIC0tZGlzYWJsZS1sb2FkLXNhdmUgLSB0aGUgc3ltYm9scyBpbnZvbHZlZCBkaXNhcHBlYXIsIGJ1dCB0aGUKCSAgaGVhZGVyIGlzIHN0aWxsIGluc3RhbGxlZCBhbmQgR1NUX0RJU0FCTEVfUEFSU0UgaXMgaW5jbHVkZWQgdmlhCgkgIGdzdGNvbmZpZy5oCgoyMDA2LTAyLTIwIDE2OjA3OjQyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggYSBzdHVwaWQgYnVnLiBJIHdhcyBzdXJlIGkgY29tcGlsZWQgdGhhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKTogRml4IGEgc3R1cGlkIGJ1Zy4gSSB3YXMKCSAgc3VyZSBpIGNvbXBpbGVkIHRoYXQuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMjAwNi0wMi0yMCAxNTowNzozMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvOiBNYWtlIHRob3NlIGZ1bmN0aW9uIGFjdCBvbiB0aGUgZ2hvc3RwYWQgdGFyZ2V0IHdoZW4gaXQncyBhIGdob3N0cGFkLiAoQ2xvc2VzICMzMzE3MjcpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOiBNYWtlIHRob3NlIGZ1bmN0aW9uIGFjdCBvbiB0aGUKCSAgZ2hvc3RwYWQgdGFyZ2V0IHdoZW4gaXQncyBhIGdob3N0cGFkLiAoQ2xvc2VzICMzMzE3MjcpCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMjAwNi0wMi0yMCAxNTowMToxNCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBiYXNldHJhbnNmb3JtIHJldXNhYmxlLiAoQ2xvc2VzICMzMzE4OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6IE1ha2UgYmFzZXRyYW5zZm9ybSByZXVzYWJsZS4KCSAgKENsb3NlcyAjMzMxODk4KQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCjIwMDYtMDItMjAgMTI6MjY6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogTW92ZSB0aGUgY3VycmVudCBkb2N1bWVudGF0aW9uIG9mIGhvdyB0byBkbyBhIHJlbGVhc2UgdG8gdGhlIHRvcCBvZiB0aGUgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgTW92ZSB0aGUgY3VycmVudCBkb2N1bWVudGF0aW9uIG9mIGhvdyB0byBkbyBhIHJlbGVhc2UgdG8gdGhlIHRvcAoJICBvZiB0aGUgZmlsZS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgQWxsb3cgbXVsdGlwbGUgc3RhdGUtcmVjYWxjdWxhdGlvbiB0aHJlYWRzLiAoQ2xvc2VzICMzMjg4NzMpCgoyMDA2LTAyLTE5IDEyOjI1OjAxICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IEFkZCBHU1RfU1RSX05VTEwgdG8gdGhlIHNlY29uZCBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGluZm8uaDogQWRkIEdTVF9TVFJfTlVMTCB0byB0aGUgc2Vjb25kIHN0cmluZy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ldmVudF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9xdWVyeV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9xdWVyeV90eXBlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pOiBHU1RfREVCVUdfUEFEX05BTUUgZXZhbHVhdGVzIHRvCgkgIDIgc3RyaW5ncy4gWW91IGNhbid0IHVzZSB0aGUgU1RSX05VTEwgbWFjcm8gb24gdGhhdC4KCjIwMDYtMDItMTkgMTI6MDA6MzggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2V2ZW50X2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3F1ZXJ5X3R5cGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbikKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OiAoZ3N0X3BhcnNlX2ZvdW5kX3BhZCksIChnc3RfcGFyc2VfcGVyZm9ybV9kZWxheWVkX2xpbmspCgkgIEZpeGVkIE5VTEwgcG9pbnRlciB1c2VkIGluIEdTVF9DQVRfREVCVUcgdXNpbmcgR1NUX1NUUl9OVUxMIG1hY3JvCgkgIFNvIG5vdywgd2UgY2FuIHVzZSAtLWdzdC1kZWJ1Zy1sZXZlbD01IG9uIFdpbmRvd3MKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIEFkZGVkIGV4cG9ydCBvZiBnc3RfY29udHJvbGxlcl9pbml0CgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBGaXhlZCBSZWxlYXNlIHBvc3QgYnVpbGQgY29uZmlndXJhdGlvbgoKMjAwNi0wMi0xNyAxNToyNTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiBBZGRlZCBhbm90aGVyIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgYW5vdGhlciBjaGVjay4KCjIwMDYtMDItMTUgMTI6MTc6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBXZSBjYW4gZG8gcGVla3MgYXQgbm9uLXplcm8gb2Zmc2V0cywgYXMgbG9uZyBhcyB0aGV5IGZhbGwgd2l0aGluIHRoZSBidWZmZXIgd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfcGVlayk6CgkgIFdlIGNhbiBkbyBwZWVrcyBhdCBub24temVybyBvZmZzZXRzLCBhcyBsb25nIGFzIHRoZXkKCSAgZmFsbCB3aXRoaW4gdGhlIGJ1ZmZlciB3ZSBoYXZlLgoKMjAwNi0wMi0xNSAwMTowMjoxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCB0ZXN0c3VpdGUgZm9yIHBhcnNlIGxhdW5jaCBzeW50YXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoc2V0dXBfcGlwZWxpbmUpLAoJICAoZXhwZWN0ZWRfZmFpbF9waXBlKSwgKGNoZWNrX3BpcGVsaW5lX3J1bnMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAocGFyc2Vfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB0ZXN0c3VpdGUgZm9yIHBhcnNlIGxhdW5jaCBzeW50YXgKCjIwMDYtMDItMTQgMjA6NTc6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBXaGVuIHR5cGVmaW5kaW5nIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgY2hhaW4gZnVuY3Rpb24sIGRvbid0IGVycm9yIG91dCBpbW1lZGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIFdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBjaGFpbiBmdW5jdGlvbiwgZG9uJ3QKCSAgZXJyb3Igb3V0IGltbWVkaWF0ZWx5LiBPbmx5IGVycm9yIG91dCB3aXRoIE5PX0NBUFNfRk9VTkQgaWYKCSAgdGhlIGFtb3VudCBvZiBkYXRhIGlzIGF0IGxlYXN0IE1BWF9UWVBFRklORF9TSVpFIGJ5dGVzLAoJICBvdGhlcndpc2Ugc2ltcGx5IHdhaXQgZm9yIG1vcmUgZGF0YSBzbyB3ZSBjYW4gdHJ5IHR5cGVmaW5kaW5nCgkgIGFnYWluIHdpdGggbW9yZSBkYXRhIGxhdGVyLiBBbHNvLCBkb24ndCBhdHRlbXB0IHRvIHR5cGVmaW5kCgkgIGlmIHdlIGhhdmUgbGVzcyB0aGFuIE1JTl9UWVBFRklORF9TSVpFIGRhdGEgYXZhaWxhYmxlLiBPdmVyYWxsLAoJICB0aGlzIHNob3VsZCBpbXByb3ZlIHR5cGVmaW5kaW5nIGZyb20gbmV0d29yayBzb3VyY2VzIHdoZXJlIHRoZQoJICBzaXplIG9mIHRoZSBmaXJzdCBidWZmZXIgY2FuIGJlIHNvbWV3aGF0IHJhbmRvbS4KCjIwMDYtMDItMTQgMTg6MjY6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggcGFkdGVtcGxhdGUgZG9jcywgZml4ZXMgIzMyODgwNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgRml4IHBhZHRlbXBsYXRlIGRvY3MsIGZpeGVzICMzMjg4MDUuCgoyMDA2LTAyLTE0IDE3OjI1OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBOT19QUkVST0xMIGlzIG5vdCBhbiBFUlJPUiBzbyBkb24ndCBzZW5kIGNvbmZ1c2luZyBtZXNzYWdlcyB0byB0aGUgdXNlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIE5PX1BSRVJPTEwgaXMgbm90IGFuIEVSUk9SIHNvIGRvbid0IHNlbmQgY29uZnVzaW5nIG1lc3NhZ2VzCgkgIHRvIHRoZSB1c2VyLgoKMjAwNi0wMi0xNCAxNjoxNTowNSArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUHJvdGVjdCBkZWZhdWx0IHJlZ2lzdHJ5IHdpdGggbG9jayBhbmQgcmVmL3NpbmsgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2dldF9kZWZhdWx0KSwKCSAgKF9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgIFByb3RlY3QgZGVmYXVsdCByZWdpc3RyeSB3aXRoIGxvY2sgYW5kIHJlZi9zaW5rIGl0LgoJICBGaXhlcyAjMzI0ODE4LCBwYXRjaCBieSBUb3JzdGVuIFNjaG9lbmZlbGQuCgoyMDA2LTAyLTE0IDEzOjA3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X2xpc3RfYWRkX2Zvcm1hdCksCgkgIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KSwgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX2xlbmd0aCksCgkgIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19udGgpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBEb2NzIGZpeGVzLgoKMjAwNi0wMi0xNCAxMjowNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJld29ya2VkIHF1ZXJ5IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJld29ya2VkIHF1ZXJ5IGRvY3MuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2Zvcm1hdHMpLAoJICAoZ3N0X3F1ZXJ5X2xpc3RfYWRkX2Zvcm1hdCksIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHMpLAoJICAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdiksIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19sZW5ndGgpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbnRoKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRmxlc2ggb3V0IGZvcm1hdHMgcXVlcnksIGFkZGVkIHNvbWUgbmV3IG1ldGhvZHMuCgkgIEZpeCBwYXJ0IG9mICMzMjQzOTguCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RxdWVyeV9zdWl0ZSk6CgkgIEFkZGVkIHF1ZXJ5IGNyZWF0aW9uIHRlc3RzLgoKMjAwNi0wMi0xNCAxMTozODo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBhIGRlZmF1bHQgZml4YXRpb24gZm9yIGZyYWN0aW9uIGxpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChmaXhhdGVfdmFsdWUpOgoJICBBZGQgYSBkZWZhdWx0IGZpeGF0aW9uIGZvciBmcmFjdGlvbiBsaXN0cy4KCjIwMDYtMDItMTMgMTc6MDM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dGFzay4qOiBEZXRlY3QgYW5kIHdhcm4gZm9yIG9idmlvdXMgZGVhZGxvY2tzLiBmaXhlcyAjMzIwMzQwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19pbml0KSwgKGdzdF90YXNrX2Z1bmMpLAoJICAoZ3N0X3Rhc2tfc2V0X2xvY2spLCAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpLAoJICAoZ3N0X3Rhc2tfam9pbik6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgRGV0ZWN0IGFuZCB3YXJuIGZvciBvYnZpb3VzIGRlYWRsb2Nrcy4gZml4ZXMgIzMyMDM0MAoJICBGaXggZXJyb3IgY2FzZSB3aGVyZSBsb2NrIHdhcyBub3QgcmVsZWFzZWQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzogKHRhc2tfZnVuYzIpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAodGFza19mdW5jKSwgKGdzdF9lbGVtZW50X3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdGFzayBjaGVjay4KCjIwMDYtMDItMTMgMTQ6MDA6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cKCjIwMDYtMDItMTMgMTM6NTc6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gZG9jcy4KCjIwMDYtMDItMTMgMTE6NTI6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGVkIFRPRE8gbGlzdCwgYmFzZXNyYyBzdXBwb3J0cyBzZWVraW5nIHRvIG5vbi1ieXRlcyBmb3JtYXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIFRPRE8gbGlzdCwgYmFzZXNyYyBzdXBwb3J0cyBzZWVraW5nIHRvIG5vbi1ieXRlcwoJICBmb3JtYXRzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgVXBkYXRlIGRvY3MuCgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3BvcCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZmluYWxpemUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVc2Ugc2hpbnkgbmV3IF9UWVBFX05BTUUgbWFjcm9zLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIE1vdmUgZGVidWcgc3RhdGVtZW50IHVwLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKToKCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoKMjAwNi0wMi0xMyAxMToxOTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5ldyBBUEk6IGFkZCBHU1RfTUVTU0FHRV9UWVBFX05BTUUgYW5kIEdTVF9RVUVSWV9UWVBFX05BTUUgbWFjcm9zICgjMzMwOTA2KS4gQWxzbywgZG9jdW1lbnQgdGhlIGFscmVhZHkgZXhpc3RpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBOZXcgQVBJOiBhZGQgR1NUX01FU1NBR0VfVFlQRV9OQU1FIGFuZCBHU1RfUVVFUllfVFlQRV9OQU1FCgkgIG1hY3JvcyAoIzMzMDkwNikuIEFsc28sIGRvY3VtZW50IHRoZSBhbHJlYWR5IGV4aXN0aW5nCgkgIEdTVF9RVUVSWV9UWVBFIG1hY3JvLgoKMjAwNi0wMi0xMyAxMDo1NDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBPbmx5IGV2ZW50cyB1cCB0byB0aGUgcGlwZWxpbmUgRU9TIGFyZSBjb3VudGVkLCB0aGVyZSBhcmUgc29tZSBtb3JlIHdoZW4gZ29pbmcgdG8gTlVMTCBjdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKGRhdGFfcHJvYmUpLCAoYnVmZmVyX3Byb2JlKSwKCSAgKGV2ZW50X3Byb2JlKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgT25seSBldmVudHMgdXAgdG8gdGhlIHBpcGVsaW5lIEVPUyBhcmUgY291bnRlZCwgdGhlcmUgYXJlCgkgIHNvbWUgbW9yZSB3aGVuIGdvaW5nIHRvIE5VTEwgY3VycmVudGx5IHdoaWNoIHdlIGRvbid0IGNhcmUKCSAgYWJvdXQgZm9yIG5vdy4KCjIwMDYtMDItMTMgMDk6NTk6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IENvcnJlY3RseSBjaGVjayBmbHVzaGluZyBhbmQgZW1pdCBwcm9iZXMuIGZpeGVzICMzMzAxMjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQ29ycmVjdGx5IGNoZWNrIGZsdXNoaW5nIGFuZCBlbWl0IHByb2Jlcy4gZml4ZXMgIzMzMDEyNQoKMjAwNi0wMi0xMiAxMzoxMTo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJldmVydCB3cm9uZyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCB3cm9uZyBjb21taXQKCjIwMDYtMDItMTAgMTY6MDQ6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19jbGFzc19pbml0KTogRGVjbGFyZSBvdXIgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2NsYXNzX2luaXQpOiBEZWNsYXJlIG91ciBwcml2YXRlIGRhdGEKCSAgc3RydWN0dXJlLgoJICAoZ3N0X2J1c19pbml0KTogQ2FjaGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBwcml2YXRlIGRhdGEgaW4gdGhlCgkgIGluc3RhbmNlIHN0cnVjdHVyZS4KCSAgKGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbikKCSAgKGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pOiBJbXBsZW1lbnQgbmV3IHB1YmxpYwoJICBmdW5jdGlvbnMuCgkgIChnc3RfYnVzX3Bvc3QpOiBFbWl0IHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIGlmIHRoZSB1c2VyIGFza2VkIGZvcgoJICBpdC4gRml4ZXMgIzMzMDY4NC4KCSAgKiBnc3QvZ3N0YnVzLmggKEdzdEJ1cyk6IFVzZSBhIHBhZGRpbmcgcG9pbnRlciB0byBjYWNoZSB0aGUKCSAgbG9jYXRpb24gb2YgdGhlIGJ1cy1wcml2YXRlIHN0cnVjdHV1cmUuCgkgIChnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pCgkgIChnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKTogTmV3IHB1YmxpYyBmdW5jdGlvbnMuCgoyMDA2LTAyLTA5IDIzOjQwOjQzICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgUFdHIHBhdGNoIGZyb20gIzMyNjgwMCAoUGF0Y2ggYnkgVmluY2VudCBUb3JyaSkKCjIwMDYtMDItMDkgMTg6MzA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSBhbmQgYWRkIG1pc3NpbmcgbmV3IGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IGFuZCBhZGQgbWlzc2luZyBuZXcgZmlsZQoKMjAwNi0wMi0wOSAxODoyODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtCgkgIERpc3QgZGVzaWduIGRvY3MuCgoyMDA2LTAyLTA4IDE3OjM0OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogYmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4zID09PQoKMjAwNi0wMi0wOCAxNzozMTozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjMsICJMaWtlIGEgdmlyZ2luIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC4zID09PQoJICAyMDA2LTAyLTA4ICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjMsICJMaWtlIGEgdmlyZ2luIgoKMjAwNi0wMi0wOCAxMToxMjowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDJuZCBwcmVyZWxlYXNlIG9mIDAuMTAuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wOCAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMm5kIHByZXJlbGVhc2Ugb2YgMC4xMC4zCgkgIEJ1bXAgbGlidG9vbCB2ZXJzaW9uaW5nLgoKMjAwNi0wMi0wNyAxNTo0OTo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogT25seSB1cGRhdGUgbGFzdF9zdG9wIGlmIHdlJ3JlIGluIFRJTUUgZm9ybWF0IGFuZCB0aGUgdGltZXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6IE9ubHkKCSAgdXBkYXRlIGxhc3Rfc3RvcCBpZiB3ZSdyZSBpbiBUSU1FIGZvcm1hdCBhbmQgdGhlIHRpbWVzdGFtcCBpcwoJICB2YWxpZC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudGZ1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCk6CgkgIElmIHdlIGdldCBhIG5ldyBuZXdzZWdtZW50IHdpdGggYSBkaWZmZXJlbnQgZm9ybWF0LCBhZGFwdAoJICBhY2NvcmRpbmdseS4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6IEFjY2VwdCBhIG51bWVyYXRvcgoJICBvZiAwLiBOb3QgYSBwcm9ibGVtLCByZWFsbHkuCgoyMDA2LTAyLTA3IDEzOjIwOjE2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOiBPbmx5IHdhcm4gaWYgc3luYz10cnVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOiBPbmx5CgkgIHdhcm4gaWYgc3luYz10cnVlLgoKMjAwNi0wMi0wNyAxMDo1MToyNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDYtMDItMDYgMjI6MDE6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBQcmVsZWFzZSBvZiAwLjEwLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBQcmVsZWFzZSBvZiAwLjEwLjMKCjIwMDYtMDItMDYgMjE6NTM6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTAyLTA2IDIxOjI5OjA0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czc6IHByb2plY3QgZmlsZXMgdXBkYXRlZCB0byB0aGUgZGVmYXVsdCB2czcgY29uZmlndXJhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czc6CgkgIHByb2plY3QgZmlsZXMgdXBkYXRlZCB0byB0aGUgZGVmYXVsdCB2czcgY29uZmlndXJhdGlvbgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkZWQgbmV3IHN5bWJvbHMsCgkgIHJlbW92ZWQgZW1wdHkgbGluZXMsCgkgIHNvcnRlZCBhbGwgZXhwb3J0ZWQgc3ltYm9scyBhbHBoYWJldGljYWxseQoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzoKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2djaGFyLmg6CgkgIHVzZSB3aW5kb3dzIGxpbmUgZW5kLgoKMjAwNi0wMi0wNiAxNToyNToyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2Mgc3ViODAgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBzdWI4MCBmaXhlcwoKMjAwNi0wMi0wNiAxNDo1Nzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZW5kIEVPUyBldmVudCB3aGVuIHN0b3BwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBTZW5kIEVPUyBldmVudCB3aGVuIHN0b3BwaW5nLgoKMjAwNi0wMi0wNiAxMDo0MjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBUZWxsIGZvbGtzIHdoYXQgdG8gZG8gaWYgdGhlIHBsdWdpbi1mb29iYXIueG1sIGZpbGUgaGFzbid0IGJlZW4gZ2VuZXJhdGVkIGZvciBhIG5ld2x5LWFkZGVkIHBsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIFRlbGwgZm9sa3Mgd2hhdCB0byBkbyBpZiB0aGUgcGx1Z2luLWZvb2Jhci54bWwgZmlsZQoJICBoYXNuJ3QgYmVlbiBnZW5lcmF0ZWQgZm9yIGEgbmV3bHktYWRkZWQgcGx1Z2luLgoKMjAwNi0wMi0wNSAxODoxMzoyOCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IENvbGxlY3RwYWRzIG5vdyBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgR3N0UGFkIHRoYXQgd2FzIGFkZGVkLiBJbmRlZWQgd2UgZG9uJ3Qgd2FudCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6IENvbGxlY3RwYWRzIG5vdyBob2xkcyBhIHJlZmVyZW5jZQoJICB0byB0aGUgR3N0UGFkIHRoYXQgd2FzIGFkZGVkLiBJbmRlZWQgd2UgZG9uJ3Qgd2FudCB0byBsb29rCgkgIGF0IHBhZHMgdGhhdCBtaWdodCBqdXN0IGdvIGF3YXkgd2l0aCBubyB3YXJuaW5nLi4uCgoyMDA2LTAyLTA1IDE2OjE4OjM3ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogSGFuZGxlIGZsdXNoLiBBZGFwdGVkIGZyb20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6IEhhbmRsZSBmbHVzaC4gQWRhcHRlZCBmcm9tCgkgIE1hcmsgTmF1d2VsYWVydHMncyBwYXRjaCBvbiBidWcgIzMyODQ5MS4KCjIwMDYtMDItMDQgMTI6NDk6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6ICh0ZXN0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKSwKCSAgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kCgkgIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzMyOTA2OSkuCgoyMDA2LTAyLTA0IDExOjU2OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBDYXRjaCBlcnJvcnMgZHVyaW5nIHByZXJvbGwgKCMzMjAwODQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICBDYXRjaCBlcnJvcnMgZHVyaW5nIHByZXJvbGwgKCMzMjAwODQpLgoKMjAwNi0wMi0wMyAyMToxNDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFBvc3QgVFlQRV9OT1RfRk9VTkQgZXJyb3IgbWVzc2FnZSB3aGVuIHR5cGVmaW5kaW5nIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgYWN0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgUG9zdCBUWVBFX05PVF9GT1VORCBlcnJvciBtZXNzYWdlIHdoZW4gdHlwZWZpbmRpbmcKCSAgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbiBhcyB3ZWxsLgoKMjAwNi0wMi0wMiAxNjoxNToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDogVXBkYXRlZCBkb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgVXBkYXRlZCBkb2MuCgoyMDA2LTAyLTAyIDE2OjEyOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBPbmx5IGtlZXAgdHJhY2sgb2YgcHJlcm9sbGFibGUgaXRlbXMgd2hlbiB3ZSBhcmUgcHJlcm9sbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCk6CgkgIE9ubHkga2VlcCB0cmFjayBvZiBwcmVyb2xsYWJsZSBpdGVtcyB3aGVuIHdlIGFyZQoJICBwcmVyb2xsaW5nLgoJICBCZWZvcmUgcmVuZGVyaW5nIGFmdGVyIHByZXJvbGwsIGFsd2F5cyBjaGVjayBpZiB3ZQoJICBoYXZlIHF1ZXVlZCBpdGVtcy4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnZ2luZy4KCjIwMDYtMDItMDIgMTM6NTg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBGaXhlZCAjMzI2NTc2LCBiZWVuIHJ1bm5pbmcgdGhpcyBmb3IgcXVpdGUgc29tZSB0aW1lIHdpdGggbm8gcmVncmVzc2lvbnMgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRml4ZWQgIzMyNjU3NiwgYmVlbiBydW5uaW5nIHRoaXMgZm9yIHF1aXRlIHNvbWUgdGltZSB3aXRoCgkgIG5vIHJlZ3Jlc3Npb25zIGF0IGFsbC4KCjIwMDYtMDItMDIgMTM6NDQ6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb21tb24vZ3N0LnN1cHA6IEFkZGVkIG1vcmUgc3VwcHJlc3Npb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgQWRkZWQgbW9yZSBzdXBwcmVzc2lvbnMKCjIwMDYtMDItMDIgMTI6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6IFVwZGF0ZWQgZG9jdW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgVXBkYXRlZCBkb2N1bWVudC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19maW5hbGl6ZSksIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW4pLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBUb3RhbGx5IHJlZmFjdG9yZWQgbWF0Y2hpbmcgdGhlIGRlc2lnbiBkb2MuCgkgIFVzZSB0d28gc2VnbWVudHMsIG9uZSB0byBjbGlwIGluY29tbWluZyBidWZmZXJzIGFuZCBhbm90aGVyIHRvCgkgIHBlcmZvcm0gc3luYy4KCSAgSGFuZGxlIHF1ZXVlaW5nIGNvcnJlY3RseSwgYnlwYXNzIHRoZSBxdWV1ZSB3aGVuIHBsYXlpbmcuCgkgIE1ha2UgRU9TIGNhbmNlbGFibGUuCgkgIEhhbmRsZSBlcnJvcnMgY29ycmVjdGx5IHdoZW4gb3BlcmF0aW5nIGluIHB1bGwgYmFzZWQgbW9kZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBBZGRlZCBuZXcgY2hlY2sgZm9yIHNpbmtzLgoKMjAwNi0wMi0wMiAxMTo1OToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IE5vIHJlYXNvbiB0byByZWZ1c2UgdG8gY2xpcCB3aGVuIHN0YXJ0ID09IC0xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jbGlwKToKCSAgTm8gcmVhc29uIHRvIHJlZnVzZSB0byBjbGlwIHdoZW4gc3RhcnQgPT0gLTEKCjIwMDYtMDItMDIgMTE6MjQ6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBkZXNjcmliZSBkcGFyYW1zIChjb250cm9sbGVyKSBmb3IgcGx1Z2lucyB1bmlmeSBkb2NzIGEgbGl0dGxlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZGVzY3JpYmUgZHBhcmFtcyAoY29udHJvbGxlcikgZm9yIHBsdWdpbnMKCSAgdW5pZnkgZG9jcyBhIGxpdHRsZSBtb3JlCgoyMDA2LTAyLTAyIDA5OjUxOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEk6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZCBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCMzMjkwNjkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZWxlbWVudF9maW5kX3VuY29ubmVjdGVkX3BhZCksCgkgIChnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBuZXcgQVBJOiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQKCSAgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjMzI5MDY5KS4KCjIwMDYtMDItMDEgMjI6NDM6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL1JFQURNRTogdW5jb3ZlciBhIG5hc3R5IGRldGFpbCBvZiB0aGUgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9SRUFETUU6CgkgIHVuY292ZXIgYSBuYXN0eSBkZXRhaWwgb2YgdGhlIGRvY3MgYnVpbGQKCjIwMDYtMDItMDEgMDg6Mjc6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9SRUFETUU6CgkgIHVwZGF0ZXMgZm9yIHBsdWdpbiBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVzIGZvciBwbHVnaW4gZG9jcwoKMjAwNi0wMS0zMSAxODo0NjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3QgY2FjaGUgZHVyYXRpb24gbWVzc2FnZXMgaWYgd2UncmUgbm90IGdvaW5nIHRvIHVzZSBvciBmcmVlIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpOgoJICBEb24ndCBjYWNoZSBkdXJhdGlvbiBtZXNzYWdlcyBpZiB3ZSdyZSBub3QgZ29pbmcgdG8gdXNlIG9yCgkgIGZyZWUgdGhlbS4KCjIwMDYtMDEtMzEgMTY6NTY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBtb3JlIGRwYXJhbSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtb3JlIGRwYXJhbSBkb2NzCgkgICogZ3N0L2dzdGluZGV4LmM6CgkgIGZpeCBkb2NzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzogKGdzdF9jb250cm9sbGVyX2luaXQpOgoJICBpbml0IGp1c3Qgb25jZQoKMjAwNi0wMS0zMSAxMDoxNjo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBhbHNvIHNob3cgZmlsZS9saW5lL2Z1bmMgaWYgbm8gYWRkaXRpb25hbCBkZWJ1ZyB3YXMgZ2l2ZW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCk6CgkgIGFsc28gc2hvdyBmaWxlL2xpbmUvZnVuYyBpZiBubyBhZGRpdGlvbmFsIGRlYnVnIHdhcyBnaXZlbgoKMjAwNi0wMS0zMCAyMzo1Mjo1MiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3L2dyYW1tYXIudmNwcm9qOiBhY3RpdmF0ZSBjb3B5IG9mIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czcvZ3JhbW1hci52Y3Byb2o6CgkgIGFjdGl2YXRlIGNvcHkgb2YgYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTMwIDIyOjI5OjAzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogZXhwb3J0IGdzdF92YWx1ZV9jb21wYXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X3ZhbHVlX2NvbXBhcmUKCjIwMDYtMDEtMzAgMjE6NTc6MDAgKzAwMDAgIFBoaWxpcHBlIFJvdXF1aWVyIDxib25maXJlLWFwcEB3YW5hZG9vLmZyPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChfZG9faW5pdCksCgkgIChnc3RfZmRfc2lua19iYXNlX2luaXQpLCAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc2lua19pbml0KSwgKGdzdF9mZF9zaW5rX2Rpc3Bvc2UpLCAoZ3N0X2ZkX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwgKGdzdF9mZF9zaW5rX2NoZWNrX2ZkKSwgKGdzdF9mZF9zaW5rX3N0YXJ0KSwKCSAgKGdzdF9mZF9zaW5rX3N0b3ApLCAoZ3N0X2ZkX3NpbmtfdW5sb2NrKSwgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NpbmtfdXJpX2dldF90eXBlKSwKCSAgKGdzdF9mZF9zaW5rX3VyaV9nZXRfcHJvdG9jb2xzKSwgKGdzdF9mZF9zaW5rX3VyaV9nZXRfdXJpKSwKCSAgKGdzdF9mZF9zaW5rX3VyaV9zZXRfdXJpKSwgKGdzdF9mZF9zaW5rX3VyaV9oYW5kbGVyX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIFBvcnQgZmRzaW5rIHRvIDAuMTAgKHBhdGNoIGJ5IFBoaWxpcHBlIFJvdXF1aWVyKSAoRml4ZXMgIzMyNTQ5MCkKCjIwMDYtMDEtMzAgMjE6MTE6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOiBkZXNjcmliZSBjb250cm9sbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBkZXNjcmliZSBjb250cm9sbGVyCgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvbWFudWFsL3RpdGxlcGFnZS54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBjbGVhbnVwIHhtbCAobW9yZSB0byBjb21lKQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBmaXggdHlwbwoKMjAwNi0wMS0zMCAyMDozNjo1MSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM2L2dyYW1tYXIuZHNwOiBhZGQgYXV0b2dlbiBvZiBnc3RtYXJzaGFsLmMsaCBmb3IgUmVsZWFzZSBtb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgYWRkIGF1dG9nZW4gb2YgZ3N0bWFyc2hhbC5jLGggZm9yIFJlbGVhc2UgbW9kZQoKMjAwNi0wMS0zMCAxNjowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmFzZXNpbmsgY2xlYW51cHMsIHJlbW92ZSBzb21lIG9sZCBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfcHJlcm9sbGVkKSwgKGdzdF9iYXNlX3Npbmtfd2FpdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfZGVhY3RpdmF0ZSksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQmFzZXNpbmsgY2xlYW51cHMsIHJlbW92ZSBzb21lIG9sZCBjb2RlLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBzdWJjbGFzcyBjYW4gcHJlcm9sbCBpbiB0aGUgcmVuZGVyCgkgIG1ldGhvZCAobW9zdGx5IGF1ZGlvc2lua3MpLgoJICBIYW5kbGUgbW9yZSBldmVudHMuCgkgIFJlbW92ZSBzb21lIGxvY2tzIGFyb3VuZCB2YXJpYWJsZXMgdGhhdCBhcmUgbm93IHByb3RlY3RlZAoJICB3aXRoIHRoZSBQUkVST0xMX0xPQ0sgKGNsb2NrX2lkLCBmbHVzaGluZywgLi4pLgoJICBPcHRpbWl6ZSBwb3NpdGlvbiBxdWVyeSBzb21lIG1vcmUsIGRvIGNvcnJlY3QgbG9ja2luZy4KCSAgUmVtb3ZlIG9sZCBjb2RlIHRvIHB1c2ggcXVldWUgaW4gc3RhdGUgY2hhbmdlLCB0aGlzIGlzIG5vdAoJICBuZWVkZWQgYW55bW9yZSBzaW5jZSBwcmVyb2xsIGJsb2NrcyBvbiBhbGwgcHJlcm9sbGFibGUgaXRlbXMKCSAgbm93LgoJICBBbG1vc3QgaW1wbGVtZW50ZWQgYXMgZGVzY3JpYmVkIGluIGRlc2lnbiBkb2MuCgoyMDA2LTAxLTMwIDE1OjU3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBXYWl0IGZvciByZWZjb3VudCB0byBzZXR0bGUgZG93biBiZWZvcmUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgV2FpdCBmb3IgcmVmY291bnQgdG8gc2V0dGxlIGRvd24gYmVmb3JlIGNoZWNraW5nLgoKMjAwNi0wMS0zMCAxNToxNTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDogUHNldWRvIGNvZGUgb3ZlcnZpZXcgb2YgZGVzaXJlZCBzaW5rIGJlaGF2aW91ciByZWdhcmRpbmcgcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBQc2V1ZG8gY29kZSBvdmVydmlldyBvZiBkZXNpcmVkIHNpbmsgYmVoYXZpb3VyIHJlZ2FyZGluZwoJICBwcmVyb2xsLgoKMjAwNi0wMS0zMCAxNDoyODowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEJsZWgsIGZvcmdvdCB0byBjb21taXQgdGhlIGNoYW5nZWxvZyBlbnRyeSBvbiBTYXR1cmRheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJsZWgsIGZvcmdvdCB0byBjb21taXQgdGhlIGNoYW5nZWxvZyBlbnRyeSBvbiBTYXR1cmRheS4KCjIwMDYtMDEtMjkgMjE6NTY6MDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDogZml4IHNvbWUgYnVncyBpbiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICBmaXggc29tZSBidWdzIGluIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoKMjAwNi0wMS0yOSAxOToyNDoxOCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uLzogZXhwb3J0IHNvbWUgbmV3IHN5bWJvbHM6IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0LCBnc3RfaXRlcmF0b3JfbmV4dCwgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IHNvbWUgbmV3IHN5bWJvbHM6IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0LAoJICBnc3RfaXRlcmF0b3JfbmV4dCwgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0CgoyMDA2LTAxLTI5IDE3OjM3OjA4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBTZXQgcGFkIGZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkuIEZpeGVzICMzMjkxMDUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTI5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpOgoJICBTZXQgcGFkIGZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkuIEZpeGVzICMzMjkxMDUuCgoyMDA2LTAxLTI5IDE2OjU0OjQwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czg6IGFkZCB2czggcHJvamVjdCBmaWxlcyBjcmVhdGVkIGJ5IFNlcmdleSBTY29iaWNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzODoKCSAgYWRkIHZzOCBwcm9qZWN0IGZpbGVzIGNyZWF0ZWQgYnkgU2VyZ2V5IFNjb2JpY2gKCjIwMDYtMDEtMjggMDA6NTk6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IERvbid0IGxlYWsgcGFkIHJlZmVyZW5jZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rX3BhZHMpOgoJICBEb24ndCBsZWFrIHBhZCByZWZlcmVuY2VzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGEgYnVuY2ggb2YgbGVha3MuIE1ha2UgZ2VuZXJpYy9zaW5rcy5jCgkgIHVzZSBhIGJpdCBsZXNzIGNwdSBieSBzbG93aW5nIHRoZSBidWZmZXIgcmF0ZQoJICBiZXR3ZWVuIGZha2VzcmMgYW5kIGZha2VzaW5rLgoKMjAwNi0wMS0yNyAyMjozNDo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jIGZpeGVzLCB0byBsaW5rIHRvIGZ1bmN0aW9uLCBqdXN0IHdyaXRlIGdzdF9jb29sX2Z1bmN0aW9uKCksIGRvbid0IHByZWZpeCB3aXRoICcjJwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jIGZpeGVzLCB0byBsaW5rIHRvIGZ1bmN0aW9uLCBqdXN0IHdyaXRlIGdzdF9jb29sX2Z1bmN0aW9uKCksIGRvbid0CgkgIHByZWZpeCB3aXRoICcjJwoKMjAwNi0wMS0yNyAxNjo1OTo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBBbHdheXMgcHJlZmVyIGFuIGFjdHVhbCByZXR1cm4gdmFsdWUgZnJvbSBhIHNyYyBwYWQgaW4gcGxhY2Ugb2YgTk9UX0xJTktFRC4gVGhpcyBtZWFucyB3ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksCgkgIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBBbHdheXMgcHJlZmVyIGFuIGFjdHVhbCByZXR1cm4gdmFsdWUgZnJvbSBhIHNyYwoJICBwYWQgaW4gcGxhY2Ugb2YgTk9UX0xJTktFRC4gVGhpcyBtZWFucyB3ZSByZXR1cm4KCSAgV1JPTkdfU1RBVEUgd2hlbiBhbGwgc3JjIHBhZHMgYXJlIFdST05HX1NUQVRFCgkgIGluc3RlYWQgb2YgTk9UX0xJTktFRC4KCSAgTG9jayB3aGVuIHJlcGxhY2luZyB0aGUgbGFzdCBtZXNzYWdlIHRvIHByZXZlbnQKCSAgcmFjaW5nIHdpdGggdGhlIGdldF9wcm9wZXJ0eSBtZXRob2QuCgkgIEFkZCBkZWJ1ZyBvdXRwdXQKCjIwMDYtMDEtMjcgMTE6NTM6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgYSB2ZXJ5IHNpbXBsZSBjaGVjayB0aGF0IHNob3VsZCBoYXZlIGNhdWdodCB0aGUgbWVtbGVhayBJIGZpeGVkIGxhc3QgbmlnaHQgKGlmIG5vdCBmb3IgdGhlIHNsaWNlIGFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0cXVlcnlfc3VpdGUpLAoJICAobWFpbik6CgkgIEFkZCBhIHZlcnkgc2ltcGxlIGNoZWNrIHRoYXQgc2hvdWxkIGhhdmUgY2F1Z2h0IHRoZSBtZW1sZWFrIEkgZml4ZWQKCSAgbGFzdCBuaWdodCAoaWYgbm90IGZvciB0aGUgc2xpY2UgYWxsb2NhdG9yIGhpZGluZyBpdCkKCjIwMDYtMDEtMjcgMDE6NDg6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDbGVhbiB1cCByZWZlcmVuY2VzIHRvIHRoZSBjbG9jayBwcm92aWRlciB3aGVuIGRpc3Bvc2VkIG9yIHdoZW4gaGFuZGxpbmcgYSBjbG9jay1sb3N0IG1lc3NhZ2UgZnJvbSBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpOgoJICBDbGVhbiB1cCByZWZlcmVuY2VzIHRvIHRoZSBjbG9jayBwcm92aWRlciB3aGVuIGRpc3Bvc2VkIG9yIHdoZW4KCSAgaGFuZGxpbmcgYSBjbG9jay1sb3N0IG1lc3NhZ2UgZnJvbSBpdC4KCSAgVW5yZWYgc2lua3Mgd2hlbiBwZXJmb3JtaW5nIGEgcXVlcnkgdmlhIGdzdF9pdGVyYXRvcl9mb2xkLCBhcyB0aGUKCSAgZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzIGl0ZXJhdG9yIHJlZnMgZWFjaCBpdGVtLiAoRml4ZXMgIzMyMzg3NCkKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KSwgKGdzdF9jbG9ja19kaXNwb3NlKSwKCSAgKGdzdF9jbG9ja19zZXRfbWFzdGVyKToKCSAgRHJvcCBvdXIgcmVmZXJlbmNlIHRvIHRoZSBtYXN0ZXIgY2xvY2ssIGlmIGFueSwgd2hlbiB3ZSBhcmUgZGlzcG9zZWQuCgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2Rpc3Bvc2UpOgoJICBDaGFpbiB1cCBpbiBkaXNwb3NlLgoKMjAwNi0wMS0yNyAwMToxMzoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9pMThuOgoJICBhZGQgbm90ZXMgb24gaTE4bgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5vdGVzIG9uIGkxOG4KCjIwMDYtMDEtMjYgMTI6NTk6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgoyMDA2LTAxLTI2IDEyOjQwOjE3ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEFwcGx5IHBhdGNoIGZyb20gIzMyODcxNS4gVGVlIG5vdyBoYW5kbGVzIHBhZCBiZWluZyBOT1RfTElOS0VEIG9yIGluIFdST05HX1NUQVRFLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0yNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2RvX3B1c2gpLAoJICAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKTogQXBwbHkgcGF0Y2ggZnJvbSAjMzI4NzE1LiBUZWUgbm93CgkgIGhhbmRsZXMgcGFkIGJlaW5nIE5PVF9MSU5LRUQgb3IgaW4gV1JPTkdfU1RBVEUuCgoyMDA2LTAxLTI2IDA4OjU3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogbW9yZSB1cGRhdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgbW9yZSB1cGRhdGluZwoKMjAwNi0wMS0yNiAwODozOToyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvTUFOSUZFU1Q6IHJlbW92ZSBvYnNvbGV0ZSBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgcmVtb3ZlIG9ic29sZXRlIGVudHJ5CgoyMDA2LTAxLTI2IDA2OjU3OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBjb2RlIGZvciBkb3duc3RyZWFtIGV2ZW50cywgcmV2aWV3ZWQgZG9jcyBpbiBnc3RldmVudC5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc3JjKSwgKHNyY19pdGVyYXRvcl9maWx0ZXIpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvdXJjZXMpLCAoZ3N0X2Jpbl9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIGFkZGVkIGNvZGUgZm9yIGRvd25zdHJlYW0gZXZlbnRzLCByZXZpZXdlZCBkb2NzIGluIGdzdGV2ZW50LmMKCjIwMDYtMDEtMjUgMTg6MDc6MDIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXZSBvbmx5IHF1ZXJ5IHBvc2l0aW9uIHVzaW5nIHRoZSBjbG9jayBpbiB0aGUgcGxheWluZyBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFdlIG9ubHkgcXVlcnkgcG9zaXRpb24gdXNpbmcgdGhlIGNsb2NrIGluIHRoZSBwbGF5aW5nIHN0YXRlLgoJICBRdWVyeSBwZWVyIGluIHRoZSBvdGhlciBjYXNlcy4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6IFVwZGF0ZXMuCgoyMDA2LTAxLTI0IDE2OjIzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEEgY2xvY2sgZW50cnkgdGhhdCBpcyBzY2hlZHVsZWQgZm9yIHRoZSBleGFjdCB0aW1lIG9mIHRoZSBjbG9jayBpcyBzdGlsbCBpbiB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF91bmxvY2tlZCk6CgkgIEEgY2xvY2sgZW50cnkgdGhhdCBpcyBzY2hlZHVsZWQgZm9yIHRoZSBleGFjdCB0aW1lIG9mIHRoZQoJICBjbG9jayBpcyBzdGlsbCBpbiB0aW1lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgoyMDA2LTAxLTIzIDEyOjM3OjMzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czc6IEFkZCBuZXcgdnM3IHByb2plY3QgZmlsZXMgYW5kIHNvbHV0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czcgOgoJICBBZGQgbmV3IHZzNyBwcm9qZWN0IGZpbGVzIGFuZCBzb2x1dGlvbi4KCjIwMDYtMDEtMjMgMTI6MjM6MDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogYWxsIGZpbGVzIHJlbW92ZWQgYXMgdGhleSB3ZXJlIG91dC1kYXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3OgoJICBhbGwgZmlsZXMgcmVtb3ZlZCBhcyB0aGV5IHdlcmUgb3V0LWRhdGVkLgoKMjAwNi0wMS0yMCAxOTowMTo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiB1cGRhdGUgbm90ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgdXBkYXRlIG5vdGVzCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX25ldyk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpOgoJICB1c2UgZ3N0X2J1c19uZXcoKSwgaW1wcm92ZSBsb2dnaW5nLCBmaXggZG9jcwoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGZvciBjdnMgYnVpbGQKCjIwMDYtMDEtMjAgMTg6NTk6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYXV0b2dlbi5zaDogdXAgcmVxdWlyZWQgdmVyc2lvbiBvZiBhdXRvbWFrZSB0byAxLjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDoKCSAgdXAgcmVxdWlyZWQgdmVyc2lvbiBvZiBhdXRvbWFrZSB0byAxLjcKCjIwMDYtMDEtMjAgMTI6NTM6NDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBleHBvcnQgZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUKCjIwMDYtMDEtMjAgMTE6NDY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgZ3N0X2V2ZW50X3JlcGxhY2UoKSAoIzMyNzAwMSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIGdzdF9ldmVudF9yZXBsYWNlKCkgKCMzMjcwMDEpCgoyMDA2LTAxLTIwIDA5OjU2OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBNYWtlIGl0IGFjdHVhbGx5IGNvbXBpbGUgdG9vLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOgoJICBNYWtlIGl0IGFjdHVhbGx5IGNvbXBpbGUgdG9vLi4KCjIwMDYtMDEtMjAgMDk6NTM6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDbGFyaWZ5IGJlaGF2aW91ciBvZiBfaXNfZXF1YWwoKSB3aGVuIHBhc3NpbmcgTlVMTCBwYXJhbWV0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBDbGFyaWZ5IGJlaGF2aW91ciBvZiBfaXNfZXF1YWwoKSB3aGVuIHBhc3NpbmcgTlVMTCBwYXJhbWV0ZXJzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBDbGVhbnVwcy4gRG9uJ3QgdW5yZWYgTlVMTCBjYXBzLgoJICBXaGVuIHNldHRpbmcgdGhlIHNhbWUgY2FwcywgcHJvdGVjdCBjYXBzIG9mIHRoZSBwYWQgd2l0aAoJICBwcm9wZXIgbG9jay4KCSAgVXNlIGZ1bGwgZnVuY3Rpb25hbGl0eSBvZiBfaXNfZXF1YWwoKSB3aGVuIGNvbXBhcmluZyBjYXBzLgoKMjAwNi0wMS0yMCAwOToyNjowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IERvbid0IGxvb3AgaW5maW5pdGVseSBpZiB0aGVyZSBhcmUgbm8gYnVmZmVycyB0byBwcmVzZW50LiBQYXJ0aWFsbHkgZml4ZXMgIzMyNzE5NywgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpOgoJICBEb24ndCBsb29wIGluZmluaXRlbHkgaWYgdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgdG8gcHJlc2VudC4gUGFydGlhbGx5CgkgIGZpeGVzICMzMjcxOTcsIGJ1dCBjb2xsZWN0cGFkcyBpcyBqdXN0IGJyb2tlbiBmb3IgcmV1c2luZyBlbGVtZW50cwoJICB0byBkbyBtdWx0aXBsZSBlbmNvZGVzIGF0bS4KCjIwMDYtMDEtMjAgMDk6MTI6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvOiBVUkxfSEFORExFUiBpcyBub3QgYSBwbHVnaW4gZmVhdHVyZSB3ZSBjYW4gc2VhcmNoIGZvciBpbiB0aGUgcmVnaXN0cnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2ZlYXR1cmVzKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIFVSTF9IQU5ETEVSIGlzIG5vdCBhIHBsdWdpbiBmZWF0dXJlIHdlIGNhbiBzZWFyY2ggZm9yIGluCgkgIHRoZSByZWdpc3RyeS4KCjIwMDYtMDEtMTkgMTg6MDY6MTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXaGVuIGFjdGl2YXRpbmcsIGRvIHNyYyBwYWRzIGZpcnN0LCB0aGVuIHNpbmsgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBXaGVuIGFjdGl2YXRpbmcsIGRvIHNyYyBwYWRzIGZpcnN0LCB0aGVuIHNpbmsgcGFkcy4KCSAgV2hlbiBkZS1hY3RpdmF0aW5nLCBkbyBzaW5rIHBhZHMgZmlyc3QsIHRoZW4gc3JjIHBhZHMuCgoyMDA2LTAxLTE5IDE0OjAyOjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udiB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYgdG8gdGhlIGRvY3MKCjIwMDYtMDEtMTkgMTM6MzA6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IEZpeCBkb2NzIHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIEZpeCBkb2NzIHR5cG8KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCk6CgkgIERvIHNvbWUgcmVmYWN0b3JpbmcuIERvZXNuJ3QgYWN0dWFsbHkgY2hhbmdlIGZ1bmN0aW9uYWxpdHksCgkgIGJ1dCBtYWtlcyBsYW5kaW5nIHRoZSBEUkFJTiBldmVudCBlYXNpZXIgbGF0ZXIuCgoyMDA2LTAxLTE5IDEwOjM5OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6IFVwZGF0ZSBmcm9tIDAuOS54IHRvIDAuMTAgQVBJIGFuZCBtYWtlIGV4YW1wbGUgYSBiaXQgY2xlYXJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgIFVwZGF0ZSBmcm9tIDAuOS54IHRvIDAuMTAgQVBJIGFuZCBtYWtlIGV4YW1wbGUgYSBiaXQKCSAgY2xlYXJlci4KCjIwMDYtMDEtMTkgMDk6MjQ6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBtZXRob2RzLgoKMjAwNi0wMS0xOSAwOTowODoxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OiBVcGRhdGUgc3BhcnNlIHN0cmVhbXMgZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIFVwZGF0ZSBzcGFyc2Ugc3RyZWFtcyBkb2MKCjIwMDYtMDEtMTkgMDk6MDI6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIEFkZCBEUkFJTiBldmVudC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBXcml0ZSBzb21lIHRoaW5ncyBhYm91dCB1c2luZyBORVdTRUdNRU5UIHRvIGtlZXAgc3BhcnNlIHN0cmVhbXMKCSAgZmxvd2luZy4KCjIwMDYtMDEtMTggMTg6NTY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEd1YXJkIGdzdF9vYmplY3RfdW5yZWYgY2FsbCBhZ2FpbnN0IGEgTlVMTCBvYmplY3QgKGRpc3Bvc2UgY2FuIHRoZW9yZXRpY2FsbHkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgR3VhcmQgZ3N0X29iamVjdF91bnJlZiBjYWxsIGFnYWluc3QgYSBOVUxMIG9iamVjdCAoZGlzcG9zZQoJICBjYW4gdGhlb3JldGljYWxseSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMpLgoKMjAwNi0wMS0xOCAxODowNTo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgQWRkIERSQUlOIGV2ZW50LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIFdyaXRlIHNvbWUgdGhpbmdzIGFib3V0IHVzaW5nIE5FV1NFR01FTlQgdG8ga2VlcCBzcGFyc2Ugc3RyZWFtcwoJICBmbG93aW5nLgoKMjAwNi0wMS0xOCAxODowMTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF93YWl0KToKCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEFkZGVkIG1vcmUgZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW4pOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzLgoKMjAwNi0wMS0xOCAxNzo1OTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIElnbm9yZSBmYWtlc2luayB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSWdub3JlIGZha2VzaW5rIHRlc3QuCgoyMDA2LTAxLTE4IDE3OjU3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBmYWtlc2luayB0ZXN0IHRoYXQgY2hlY2tzIHByZXJvbGxpbmcgYW5kIGNsaXBwaW5nIGJlaGF2aW91ci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKGNoYWluX2FzeW5jX2J1ZmZlciksCgkgIChjaGFpbl9hc3luYyksIChjaGFpbl9hc3luY19yZXR1cm4pLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIGZha2VzaW5rIHRlc3QgdGhhdCBjaGVja3MgcHJlcm9sbGluZyBhbmQgY2xpcHBpbmcKCSAgYmVoYXZpb3VyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGNoZWNrIHJ1biBmYXN0ZXIgc28gdGhhdCBidWlsZGJvdHMgZG9uJ3QgdGltZW91dC4KCjIwMDYtMDEtMTggMTc6MTg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBTb21lIGNsZWFudXBzLgoJICBXaGVuIHRoZSBzaW5rIGZpbmlzaGVzIGJsb2NraW5nIG9uIHRoZSBwcmVyb2xsIGJ1ZmZlciwgaXQgY2FuCgkgIGltbWVkaWF0bHkgcmVuZGVyIGl0IGluc3RlYWQgb2YgcmVuZGVyaW5nIHdoZW4gdGhlIG5leHQgYnVmZmVyCgkgIGFycml2ZXMuCgoyMDA2LTAxLTE4IDE2OjQwOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4pOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgR1NUX0VMRU1FTlRfQ0xPQ0sgYW5kIHN5bmMgYXJlIHByb3RlY3RlZCB3aXRoIExPQ0suCgkgIERvbid0IHN0b3JlIF9sYXN0X3N0b3AgaWYgdGhlIGJ1ZmZlciBpcyBkcm9wcGVkLgoKMjAwNi0wMS0xOCAxNjozMTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6ICdoYXZlLXR5cGUnIHNpZ25hbCBuZWVkcyB0byBiZSBHX1NJR05BTF9SVU5fRklSU1QsIGFzIGl0IGlzIHRoZSBvYmplY3QgbWV0aG9kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAnaGF2ZS10eXBlJyBzaWduYWwgbmVlZHMgdG8gYmUgR19TSUdOQUxfUlVOX0ZJUlNULCBhcyBpdCBpcyB0aGUKCSAgb2JqZWN0IG1ldGhvZCBoYW5kbGVyIHRoYXQgc2V0cyB0aGUgY2FwcyBvbiB0aGUgcGFkIGFuZCB3ZSB3YW50CgkgIHRoYXQgdG8gaGFwcGVuIGJlZm9yZSB3ZSBlbWl0IHRoZSBzaWduYWwgKGZpeGVzIGUuZy4gZmVlZGluZyBhCgkgIHBsYWluIHRleHQgZmlsZSB0byBkZWNvZGViaW4pLgoKMjAwNi0wMS0xOCAxMTo0NDo1NSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGFkZCBNUEwgYW5kIFByb3BlcmlldGFydCB0byBsaXN0IG9mIGxpY2Vuc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgTVBMIGFuZCBQcm9wZXJpZXRhcnQgdG8gbGlzdCBvZiBsaWNlbnNlcwoKMjAwNi0wMS0xOCAwOTo0MjoxMiArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBnc3QvZ3N0aW5kZXguaCAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBBZGQgdG8gaGVhZGVyLiBUaGUgc3ltYm9sIHdhcyBleHBvcnRlZCBiZWZvcmUsIGl0IGFwcGVhcnMgdGhpcyB3YXMganVzdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmggKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252KTogQWRkIHRvIGhlYWRlci4gVGhlCgkgIHN5bWJvbCB3YXMgZXhwb3J0ZWQgYmVmb3JlLCBpdCBhcHBlYXJzIHRoaXMgd2FzIGp1c3QgYW4gb3ZlcnNpZ2h0LgoJICBGaXhlcyAjMTY4NzAzLgoJICBQYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBhdCBnbXguZGU+CgkgICogZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252KTogQ2hhbmdlZCBpbnQgaW4KCSAgcHJvdG90eXBlIHRvIGdpbnQuIE9LIHNpbmNlIHRoaXMgcHJvdG90eXBlIHdhcyBub3QgaW4gdGhlIGhlYWRlci4KCjIwMDYtMDEtMTcgMTY6Mzk6MjMgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWxpY2Vuc2luZy54bWw6CgkgIHNtYWxsIGZpeCB0byB0aGUgcHJvcG9zZWQgbGljZW5zZSBjbGF1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNtYWxsIGZpeCB0byB0aGUgcHJvcG9zZWQgbGljZW5zZSBjbGF1c2UKCjIwMDYtMDEtMTcgMTI6NTM6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKTogTG9jayB0aGUgcmVnaXN0cnkgd2hpbGUgd2UgcmVtb3ZlIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKTogTG9jayB0aGUKCSAgcmVnaXN0cnkgd2hpbGUgd2UgcmVtb3ZlIHBsdWdpbnMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfZWxlbWVudF9pbmZvKTogRG9uJ3QgdW5yZWYgdGhlCgkgIGZhY3RvcnkgYXJnLCB0aGF0IHNob3VsZCBiZSB0aGUgcmVzcG9uc2liaWxpdHkgb2Ygd2hhdGV2ZXIgY29kZQoJICByZWNlaXZlZCB0aGUgcmVmLiBGaXhlcyBhIGRvdWJsZS1mcmVlIHdoZW4gY2FsbGVkIGZyb20KCSAgcHJpbnRfZWxlbWVudF9saXN0IHZpYSBnc3QtaW5zcGVjdC0wLjEwIC1hLiBGaXhlcyAjMzI3MzI0LgoJICAobWFpbik6IFVucmVmIHRoZSBmYWN0b3J5IGlmIHdlIGhhdmUgb25lLgoJICAocHJpbnRfZWxlbWVudF9saXN0KTogTm8gY2hhbmdlIC0tIHJlbGllcyBvbiB0aGUKCSAgcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlIHRvIGZyZWUgdGhlIGxpc3Qgb2YgZmVhdHVyZXMuCgoyMDA2LTAxLTE3IDEyOjE0OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlcGxhY2UgZ3N0X2J1ZmZlcl8obWFrZXxpcylfbWV0YWRhdGFfd3JpdGFibGUgcGF0Y2ggbm93IHRoYXQgdGhlIHJlbGVhc2UgaXMgb3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBSZXBsYWNlIGdzdF9idWZmZXJfKG1ha2V8aXMpX21ldGFkYXRhX3dyaXRhYmxlIHBhdGNoIG5vdwoJICB0aGF0IHRoZSByZWxlYXNlIGlzIG91dC4KCjIwMDYtMDEtMTcgMTI6MDg6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBSZWZsb3cgZGVzaWduIGNvbW1lbnQuIFVwZGF0ZSBzbyBhcyB0byBzcGVhayBpbiB0aGUgcHJlc2VudCB0ZW5zZSB3aXRob3V0IHJlZmVyZW5jZSB0byB2ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJlZmxvdyBkZXNpZ24gY29tbWVudC4gVXBkYXRlIHNvIGFzIHRvIHNwZWFrCgkgIGluIHRoZSBwcmVzZW50IHRlbnNlIHdpdGhvdXQgcmVmZXJlbmNlIHRvIHZlcnNpb25zLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbikKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luLCBnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmUpCgkgIChnc3RfcmVnaXN0cnlfZmluZF9mZWF0dXJlLCBnc3RfcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdCkKCSAgKGdzdF9yZWdpc3RyeV9nZXRfcGx1Z2luX2xpc3QsIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZSkKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXAsIGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpCgkgIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKQoJICAoZ3N0X3JlZ2lzdHJ5X2dldF9mZWF0dXJlX2xpc3RfYnlfcGx1Z2luKTogQWRkIGFyZ3VtZW50CgkgIHZhbGlkYXRpb24uCgoyMDA2LTAxLTE2IDIxOjAwOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuMiA9PT0KCjIwMDYtMDEtMTYgMjA6NTk6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4yCgoyMDA2LTAxLTE2IDE1OjQyOjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEJhY2sgb3V0IHBhdGNoIHVudGlsIGFmdGVyIHRoZSByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBCYWNrIG91dCBwYXRjaCB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZS4KCjIwMDYtMDEtMTYgMTQ6Mzc6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogU3BlbGxpbmcgZml4IGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIFNwZWxsaW5nIGZpeCBpbiBkb2NzLgoJICAqIENoYW5nZUxvZyAtIHJlbW92ZSBjb25mbGljdCBpbmRpY2F0b3IKCjIwMDYtMDEtMTYgMTQ6Mzc6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgKE1pc3NlZCBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYyBpbiBwcmV2aW91cyBjb21taXQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAoTWlzc2VkIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jIGluIHByZXZpb3VzIGNvbW1pdCkKCSAgUmV2aWV3ZWQgQnk6IEFuZHkgV2luZ28KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgYXMgYW5hbG9ndWVzIG9mCgkgIGdzdF9idWZmZXJfKGlzfG1ha2UpX3dyaXRhYmxlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFVzZSBuYW1lIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGZ1bmN0aW9ucy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIFRlc3QgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUKCSAgKENsb3NlczogIzMyNDE2MikKCjIwMDYtMDEtMTYgMTQ6MzI6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgYXMgYW5hbG9ndWVzIG9mIGdzdF9idWZmZXJfKGlzfG1ha2UpX3dyaXRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgQnk6IEFuZHkgV2luZ28KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgYXMgYW5hbG9ndWVzIG9mCgkgIGdzdF9idWZmZXJfKGlzfG1ha2UpX3dyaXRhYmxlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFVzZSBuYW1lIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGZ1bmN0aW9ucy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIFRlc3QgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUKCSAgKENsb3NlczogIzMyNDE2MikKCjIwMDYtMDEtMTQgMjI6NTk6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzZQoKMjAwNi0wMS0xNCAxNDoxMjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGFkZCB1bmxpbmsgYW5kIHNvbWUgYXNzZXJ0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHVubGluayBhbmQgc29tZSBhc3NlcnRzCgoyMDA2LTAxLTE0IDExOjIwOjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOiBkb24ndCBkbyBwYXJhbGxlbCBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICBkb24ndCBkbyBwYXJhbGxlbCBtYWtlCgkgICogY29uZmlndXJlLmFjOgoJICBBQ19TVUJTVCBIT1NUX0NQVQoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgYWRkIGdlbmVyYXRpb25zIGZvciBIT1NUX0NQVSBhbmQgR1NUX01BSk9STUlOT1IKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6ICAgICAgICAgICBjb21taXQgZ2VuZXJhdGVkIHJlc3VsdAoKMjAwNi0wMS0xMyAxOTo1MTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICB1cGRhdGVzIHRvIHJlbGVhc2UgZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVzIHRvIHJlbGVhc2UgZG9jCgoyMDA2LTAxLTEzIDE5OjE3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOiBVcGRhdGUgR05PTUUgaW50ZWdyYXRpb24gc2VjdGlvbiB0byB1c2UgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGluc3RlYWQgb2YgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgVXBkYXRlIEdOT01FIGludGVncmF0aW9uIHNlY3Rpb24gdG8gdXNlIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKQoJICBpbnN0ZWFkIG9mIHRoZSBvbGQgcG9wdCBzdHVmZiAoIzMyMjkxMSkuIEFsc28sIEdOT01FIGFwcGxpY2F0aW9ucwoJICBzaG91bGQgIG5vdyB1c2UgZ2NvbmYqc2luayBhbmQgZ2NvbmYqc3JjIGluc3RlYWQgb2YgdGhlIG9sZCBnY29uZgoJICBoZWxwZXIgbGliIHdlIGhhZC4KCjIwMDYtMDEtMTMgMTY6MTY6MjQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICByZW1vdmluZyAwMTAgc3VmZml4aW5nIG9mIHBhY2thZ2UgbmFtZSBhcyBGZWRvcmEgb25seSB1c2UgaXQgZm9yIDAuOCwgd2FudCB0byBoYXZlIHRoZSBwYWNrYWdlcyBiZSBpbnRlcmNoYW5nZWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92aW5nIDAxMCBzdWZmaXhpbmcgb2YgcGFja2FnZSBuYW1lIGFzIEZlZG9yYSBvbmx5IHVzZSBpdCBmb3IgMC44LCB3YW50CgkgIHRvIGhhdmUgdGhlIHBhY2thZ2VzIGJlIGludGVyY2hhbmdlYWJsZQoKMjAwNi0wMS0xMyAxNDo1OTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL0xJTkdVQVM6CgkgIHJlYWRkIHpoX1RXIGFuZCBmb3JjZSBhbiBhdXRvZ2VuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWFkZCB6aF9UVyBhbmQgZm9yY2UgYW4gYXV0b2dlbgoKMjAwNi0wMS0xMyAxNDoyMTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IGFkZCBuZXcgQVBJIGVudHJpZXMgdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBuZXcgQVBJIGVudHJpZXMgdG8gdGhlIGRvY3MKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBtb3ZlIHByaXZhdGUgc3RydWN0cyB0byBwcml2YXRlIGhlYWRlcgoJICAqIHBvL1JFQURNRToKCSAgZ3N0cmVhbWVyLTAuNyAtPiBnc3RyZWFtZXItMC4xMAoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgcmVtb3ZlIHByaXZhdGUgc3RydWN0cwoKMjAwNi0wMS0xMyAxNDoxOTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgoyMDA2LTAxLTEzIDE0OjE5OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL0xJTkdVQVM6CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoKMjAwNi0wMS0xMyAxNDoxMjo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOiBGaXhlcyBhcyBwYXJ0IG9mICMzMTcwNDgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgRml4ZXMgYXMgcGFydCBvZiAjMzE3MDQ4CgoyMDA2LTAxLTEzIDEzOjQxOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06IGZpeCAjMzE2MDg2IC0gY29tcGlsYXRpb24gd2hlbiBtbWFwIGlzIG1pc3NpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgZml4ICMzMTYwODYgLSBjb21waWxhdGlvbiB3aGVuIG1tYXAgaXMgbWlzc2luZwoKMjAwNi0wMS0xMiAyMjowNDo1OCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAqY3VyID0gKG5vdyAtIGJhc2UpICogYmFzZXNpbmstPnNlZ21lbnQuYWJzX3JhdGUgKyB0aW1lOyByZXBsYWNlZCBieQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICpjdXIgPSAobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IHJlcGxhY2VkIGJ5CgkgICpjdXIgPSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlKG5vdyAtIGJhc2UpICogYmFzZXNpbmstPnNlZ21lbnQuYWJzX3JhdGUgKyB0aW1lOyBmb3IgdnM2CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBhZGRlZCBzb21lIGRlZmluZXMgR1NUX01BSk9STUlOT1IgYW5kIEhPU1RfQ1BVCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGRlZCBzb21lIGV4cG9ydGVkIGZ1bmN0aW9ucwoKMjAwNi0wMS0xMiAyMTo1NTo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IG1ha2UgR19UWVBFX1NUUklORyBjb250cm9sYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgIG1ha2UgR19UWVBFX1NUUklORyBjb250cm9sYWJsZQoKMjAwNi0wMS0xMiAxNjozMTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvOiBjbGVhbnVwIG1hbi1wYWdlcywgcmVtb3ZlIHJlZmVyZW5jZSB0byBnc3QtcmVnaXN0ZXIsIGRvY3VtZW50IGVudi12YXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL1JFQURNRToKCSAgKiB0b29scy9nc3QtZmVlZGJhY2suMS5pbjoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgKiB0b29scy9nc3QtbWQ1c3VtLjEuaW46CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLjEuaW46CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuMS5pbjoKCSAgKiB0b29scy9nc3QteG1sbGF1bmNoLjEuaW46CgkgIGNsZWFudXAgbWFuLXBhZ2VzLCByZW1vdmUgcmVmZXJlbmNlIHRvIGdzdC1yZWdpc3RlciwgZG9jdW1lbnQgZW52LXZhcnMKCjIwMDYtMDEtMTIgMTY6MDc6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBnc3RfYnVmZmVyX3NwYW4gc2hvdWxkIGNvcHkgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZmlyc3QgYnVmZmVyIGlmIHRoZXkgd2VyZSBib3RoIG9yaWdpbmFsbHkgb3ZlcmxhcHBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfc3Bhbik6CgkgIGdzdF9idWZmZXJfc3BhbiBzaG91bGQgY29weSB0aGUgdGltZXN0YW1wIG9mIHRoZSBmaXJzdCBidWZmZXIKCSAgaWYgdGhleSB3ZXJlIGJvdGggb3JpZ2luYWxseSBvdmVybGFwcGluZyBzdWJidWZmZXJzIG9mIHRoZQoJICBzYW1lIHBhcmVudCwgdXNpbmcgdGhlIHNhbWUgbG9naWMgYXMgdGhlICdzbG93IGNvcHknIGNhc2UuCgoyMDA2LTAxLTExIDIxOjMyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogTmVlZCB0byBhd2FrZW4gQUxMIHRoZSBwYWRzIHdoZW4gd2UgcG9wIGEgYnVmZmVyLCBvdGhlcndpc2UgY29sbGVjdHBhZHMgb25seSB3b3JrcyB3aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3BvcCk6CgkgIE5lZWQgdG8gYXdha2VuIEFMTCB0aGUgcGFkcyB3aGVuIHdlIHBvcCBhIGJ1ZmZlciwgb3RoZXJ3aXNlCgkgIGNvbGxlY3RwYWRzIG9ubHkgd29ya3Mgd2hlbiB0aGVyZSBpcyAyIGlucHV0IHN0cmVhbXMuCgoyMDA2LTAxLTExIDE5OjE4OjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OiBtb3JlIGlkZWFzIChkYnVzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJICBtb3JlIGlkZWFzIChkYnVzKQoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgZml4IGRvYyBleGFtcGxlLCBhZGQgY2xhcmlmaWNhdGlvbgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgYWRkIGluaXRpYWwgaW5mbyBhYm91dCBHU1RfUExVR0lOX1BBVEgsIG5lZWRzIG1vcmUgd29yawoKMjAwNi0wMS0xMSAxMDozODo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogU29tZSBtb3JlIG1pbm9yIGRvY3MgYWRkaXRpb25zIGFuZCB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBTb21lIG1vcmUgbWlub3IgZG9jcyBhZGRpdGlvbnMgYW5kIHVwZGF0ZXMuCgoyMDA2LTAxLTExIDEwOjIwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIHNtYWxsIGZpeGVzIGFzIHBvaW50ZWQgb3V0IGJ5IFNlci12ZXIgb24gSVJDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgU29tZSBzbWFsbCBmaXhlcyBhcyBwb2ludGVkIG91dCBieSBTZXItdmVyIG9uIElSQy4KCjIwMDYtMDEtMTAgMTU6NDI6MjkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFNldCB0aGUgYnVmZmVyIG9mZnNldC9vZmZzZXRfZW5kIHRvIEdTVF9DTE9DS19USU1FX05PTkUgd2hlbiB1c2luZyB0aGUgc2luZ2xlLXNlZ21lbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFNldCB0aGUgYnVmZmVyIG9mZnNldC9vZmZzZXRfZW5kIHRvIEdTVF9DTE9DS19USU1FX05PTkUgd2hlbiB1c2luZwoJICB0aGUgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCjIwMDYtMDEtMTAgMDk6MjM6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogTmFtZSAocHJpdmF0ZSkgdW5pb247IG1ha2VzIFN1bidzIEZvcnRlIGNvbXBpbGVyIGhhcHB5ICgjMzI0OTAwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBOYW1lIChwcml2YXRlKSB1bmlvbjsgbWFrZXMgU3VuJ3MgRm9ydGUgY29tcGlsZXIgaGFwcHkgKCMzMjQ5MDApLgoKMjAwNi0wMS0wOSAxMDo0NzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJFQURNRTogZ3N0LXJlZ2lzdGVyIGlzIGdvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFJFQURNRToKCSAgZ3N0LXJlZ2lzdGVyIGlzIGdvbmUuCgoyMDA2LTAxLTA3IDExOjA3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL0xJTkdVQVM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCjIwMDYtMDEtMDcgMTE6MDc6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBwby9MSU5HVUFTOgoJICByZW1vdmUgYW5kIHJlYWRkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW5kIHJlYWRkCgoyMDA2LTAxLTA3IDEwOjA0OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBtYWtlIHRoZSBHX1RZUEVfREFURSBpbnN0YW50aWF0aW9uIHdvcmsgaWYgZGVidWcgaXMgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBtYWtlIHRoZSBHX1RZUEVfREFURSBpbnN0YW50aWF0aW9uIHdvcmsgaWYgZGVidWcgaXMgZGlzYWJsZWQKCjIwMDYtMDEtMDcgMDk6NTY6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA2LTAxLTA2IDE3OjE2OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogRG9uJ3QgY3Jhc2ggd2hlbiByZXR1cm4gbG9jYXRpb24gZm9yIGVycm9yL3dhcm5pbmcgZGVidWcgc3RyaW5nIGlzIE5VTEw7IGFkZCBmYWN0IHRoYXQgcmV0dXJuIGxvY2F0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV90YWcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyk6CgkgIERvbid0IGNyYXNoIHdoZW4gcmV0dXJuIGxvY2F0aW9uIGZvciBlcnJvci93YXJuaW5nIGRlYnVnCgkgIHN0cmluZyBpcyBOVUxMOyBhZGQgZmFjdCB0aGF0IHJldHVybiBsb2NhdGlvbnMgY2FuIGJlCgkgIE5VTEwgdG8gZG9jcyB3aGVyZSBhcHByb3ByaWF0ZS4KCjIwMDYtMDEtMDUgMTA6NDM6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFJlcGxhY2Ugc3RyZHVwIGJ5IGdfc3RyZHVwIGFzIHN1Z2dlc3RlZCBieSBTZXItdmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFJlcGxhY2Ugc3RyZHVwIGJ5IGdfc3RyZHVwIGFzIHN1Z2dlc3RlZCBieSBTZXItdmVyLgoKMjAwNi0wMS0wNCAyMzo1MzowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBjb25maWcgZm9yIC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgY29uZmlnIGZvciAuMQoKMjAwNi0wMS0wNCAyMzo1MjozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IGZpeCBkb2MgYm9ya2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGZpeCBkb2MgYm9ya2FnZQoKMjAwNi0wMS0wNCAyMzo1MDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBzdWJtaXR0ZWQgYnk6IEFiZWwgQ2hldW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdWJtaXR0ZWQgYnk6IEFiZWwgQ2hldW5nCgkgICogcG8vTElOR1VBUzoKCSAgKiBwby96aF9UVy5wbzoKCSAgQWRkZWQgQ2hpbmVzZSAodHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgoyMDA2LTAxLTA0IDEyOjQxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgdXBkYXRlcyB0byB2YXJpb3VzIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFNtYWxsIHVwZGF0ZXMgdG8gdmFyaW91cyBkb2NzLgoJICBBZGRlZCBjb3JlIHBsdWdpbnMgdG8gZG9jcy4KCjIwMDYtMDEtMDMgMTg6MDg6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBhZGQgYSBzdXBwcmVzc2lvbiBmb3IgbGlib2lsJ3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIGFkZCBhIHN1cHByZXNzaW9uIGZvciBsaWJvaWwncyB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgoyMDA2LTAxLTAyIDIwOjI2OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEFkZCBwcm90b3R5cGUgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIHRvIEdTVF9CT0lMRVJQTEFURV9GVUxMIG1hY3JvLCBzbyB0aGF0IGdjYyBkb2Vzbid0IGNvbXBsYWluIGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgcHJvdG90eXBlIGZvciBfZ2V0X3R5cGUoKSBmdW5jdGlvbiB0byBHU1RfQk9JTEVSUExBVEVfRlVMTAoJICBtYWNybywgc28gdGhhdCBnY2MgZG9lc24ndCBjb21wbGFpbiBpZiB0aGUgLVdtaXNzaW5nLXByb3RvdHlwZXMKCSAgY29tcGlsZXIgc3dpdGNoIGlzIGJlaW5nIHVzZWQgKCMzMjU0MjkpLgoKMjAwNS0xMi0yOSAxNjo0NzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRGlzYWJsZSBkdXJhdGlvbiBxdWVyeSBjYWNoaW5nIGluIGJpbnMgdW50aWwgaXQgZ2V0cyBmaXhlZCAoc2VlICMzMjQ4MDcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3F1ZXJ5KToKCSAgRGlzYWJsZSBkdXJhdGlvbiBxdWVyeSBjYWNoaW5nIGluIGJpbnMgdW50aWwgaXQgZ2V0cwoJICBmaXhlZCAoc2VlICMzMjQ4MDcpLgoKMjAwNS0xMi0yNyAxODowNDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEhhbmRsZSBwcm9wZXJ0aWVzIG9mIFBPSU5URVIgYW5kIEJPWEVEIHR5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEhhbmRsZSBwcm9wZXJ0aWVzIG9mIFBPSU5URVIgYW5kIEJPWEVEIHR5cGUuCgoyMDA1LTEyLTI3IDEyOjExOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBJbml0IHRhZ3Mgc3R1ZmYgYW5kIHNvbWUgb3RoZXIgdGhpbmdzIGJlZm9yZSBsb2FkaW5nIGFueSBzdGF0aWMgcGx1Z2lucyAodGhlcmUgbWF5IGJlIG90aGVyIHN0YXRpYyBwbHVnaW5zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIEluaXQgdGFncyBzdHVmZiBhbmQgc29tZSBvdGhlciB0aGluZ3MgYmVmb3JlIGxvYWRpbmcKCSAgYW55IHN0YXRpYyBwbHVnaW5zICh0aGVyZSBtYXkgYmUgb3RoZXIgc3RhdGljIHBsdWdpbnMKCSAgdGhhbiBqdXN0IHRoZSBHU3RyZWFtZXIgb25lcywgYW5kIHRoZXkgbWF5IHdhbnQgdG8KCSAgcmVnaXN0ZXIgdGhlaXIgb3duIHRhZ3Mgb3IgZm9ybWF0cyBvciB3aGF0ZXZlciwgYW5kCgkgIHByZWZlcmFibHkgd2l0aG91dCBzZWdmYXVsdGluZykuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBQcmludCBhdCBsZWFzdCBhIHdhcm5pbmcgaW4gdGhlIGRlYnVnIGxvZ3MgaWYgd2UgZHJvcCBhCgkgIHF1ZXJ5IGp1c3QgYmVjYXVzZSB3ZSBkb24ndCBrbm93IGhvdyB0byBhZGp1c3QgdGhlIHZhbHVlCgkgIGluIHRoZSBwYXJ0aWN1bGFyIGZvcm1hdC4KCjIwMDUtMTItMjUgMDM6NDU6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IFJlcGxhY2VtZW50IGZvciBnc3QtY29tcGxldGUgd3JpdHRlbiBpbiBzaCBhbmQgc2VkLiAgT25seSBjb21wbGV0ZXMgbmFtZXMgb2YgZmVhdHVyZXMsIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICBSZXBsYWNlbWVudCBmb3IgZ3N0LWNvbXBsZXRlIHdyaXR0ZW4gaW4gc2ggYW5kIHNlZC4gIE9ubHkKCSAgY29tcGxldGVzIG5hbWVzIG9mIGZlYXR1cmVzLCBidXQgdGhhdCdzIDkwJSBvZiB3aGF0IEkgd2FudAoJICBpdCBmb3IuICBQcm9wZXJ0aWVzIGFyZSBub3QgYXZhaWxhYmxlIGluIHJlZ2lzdHJ5LnhtbC4gIChNYXliZQoJICB0aGV5IHNob3VsZCBiZS4uLikKCjIwMDUtMTItMjMgMTg6MTU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4xID09PQoKMjAwNS0xMi0yMyAxODowNDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4xCgoyMDA1LTEyLTIzIDE0OjUzOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTEyLTIzIDEzOjQ1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTEyLTIyIDE0OjQ4OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvY3ZzLnhtbDogQWRkIG1pc3NpbmcgcXVvdGUsIHNob3VsZCBiZSBtYWtlIEVSUk9SX0NGTEFHUz0iIi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgQWRkIG1pc3NpbmcgcXVvdGUsIHNob3VsZCBiZSBtYWtlIEVSUk9SX0NGTEFHUz0iIi4KCjIwMDUtMTItMjAgMTY6MDE6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzaW5nCgoyMDA1LTEyLTIwIDEyOjUwOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDogTW9yZSBkb2N1bWVudGF0aW9uIG9uIHRyaWNrbW9kZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIE1vcmUgZG9jdW1lbnRhdGlvbiBvbiB0cmlja21vZGVzLgoKMjAwNS0xMi0yMCAxMToxMjo1MyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RjYXBzLio6IEFkZGVkIGdwb2ludGVyIEdUeXBlIGZvciBHc3RTdGF0aWNDYXBzIHNvIHdlIGNhbiB3cmFwIHRoZW0gaW4gYmluZGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIEFkZGVkIGdwb2ludGVyIEdUeXBlIGZvciBHc3RTdGF0aWNDYXBzIHNvIHdlIGNhbiB3cmFwIHRoZW0gaW4gYmluZGluZ3MuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIEFkZGVkIGdwb2ludGVyIEdUeXBlIGZvciBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzbyB3ZSBjYW4gd3JhcCB0aGVtIGluCgkgIGJpbmRpbmdzLgoKMjAwNS0xMi0xOCAxNjowNDo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0LzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA1LTEyLTE4IDE0OjI4OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2xvc2luZyBicmFja2V0IGluIGhlbGxvd29ybGQgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBSZW1vdmUgc3VwZXJmbHVvdXMgY2xvc2luZyBicmFja2V0IGluIGhlbGxvd29ybGQgZXhhbXBsZS4KCjIwMDUtMTItMTcgMTQ6MTk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IFVwZGF0ZSBnc3QtbGF1bmNoIG1hbiBwYWdlOyBhZGQgYSBzZWN0aW9uIHdpdGggdXNlZnVsIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRml4ZXMgIzMyMzg4Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBVcGRhdGUgZ3N0LWxhdW5jaCBtYW4gcGFnZTsgYWRkIGEgc2VjdGlvbiB3aXRoIHVzZWZ1bAoJICBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIEZpeGVzICMzMjM4ODIuCgoyMDA1LTEyLTE2IDIxOjU5OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBjaGFuZ2Ugc29tZSBjaGFyKiBpbnRvIGNoYXJbXQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGNoYW5nZSBzb21lIGNoYXIqIGludG8gY2hhcltdCgoyMDA1LTEyLTE2IDE5OjI0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IENsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSk6CgkgIENsZWFudXBzLgoJICBEb24ndCB1c2UgZ19vYmplY3RfdW5yZWYgb24gR3N0T2JqZWN0cyBzbyB0aGF0IHdlIGF2b2lkCgkgIGxlYWtzIG9uIHVuc2FmZSBnbGlicy4KCjIwMDUtMTItMTYgMTg6MjA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY19zdGF0ZSk6CgkgIFNtYWxsIGRvYyB1cGRhdGVzLgoKMjAwNS0xMi0xNiAxODoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbW1vbi9jaGVjay5tYWs6IEFkZGVkIG1ha2UgZm9yZXZlciB0YXJnZXQgZm9yIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICBBZGRlZCBtYWtlIGZvcmV2ZXIgdGFyZ2V0IGZvciBjaGVjay4KCjIwMDUtMTItMTYgMTc6MzQ6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBtYWtlIHRoZSByZWdpc3RyeSBjYWNoZSBmaWxlIEhPU1RfQ1BVLWRlcGVuZGVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBtYWtlIHRoZSByZWdpc3RyeSBjYWNoZSBmaWxlIEhPU1RfQ1BVLWRlcGVuZGVudAoKMjAwNS0xMi0xNiAxNDo0NDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYwoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9jbGVhcmVkX2Z1bmMpOiBQYXkgYXR0ZW50aW9uIHRvIGdfbGlzdF9hcHBlbmQKCSAgcmV0dXJuIHZhbHVlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYwoJICAodGVzdF9mYWtlX29iamVjdF9uYW1lX3RocmVhZGVkX3VuaXF1ZSk6IFBheSBhdHRlbnRpb24gdG8KCSAgZ19saXN0X3NvcnQgcmV0dXJuIHZhbHVlLgoKMjAwNS0xMi0xNiAxMTo1MjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06IFVwZGF0ZSBmb3IgMC45LzAuMTAgKGZpeGVzICMzMjM4NzApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJICBVcGRhdGUgZm9yIDAuOS8wLjEwIChmaXhlcyAjMzIzODcwKS4KCjIwMDUtMTItMTUgMTI6MjI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBGaXggbGNvcHkgZm9yIG1pbmkgb2JqZWN0cywgdGhlIG1pbmkgb2JqZWN0IG5lZWRzIHRvIGJlIHJlZidlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9taW5pX29iamVjdF9sY29weSk6CgkgIEZpeCBsY29weSBmb3IgbWluaSBvYmplY3RzLCB0aGUgbWluaSBvYmplY3QgbmVlZHMgdG8gYmUgcmVmJ2VkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6IChteV9mb29faW5pdCksCgkgIChteV9mb29fZ2V0X3Byb3BlcnR5KSwgKG15X2Zvb19zZXRfcHJvcGVydHkpLCAobXlfZm9vX2NsYXNzX2luaXQpLAoJICAodGVzdF92YWx1ZV9jb2xsZWN0aW9uKSwgKGdzdF9taW5pX29iamVjdF9zdWl0ZSk6CgkgIEFkZCB0ZXN0IHRvIGVuc3VyZSByZWZjb3VudHMgZW5kIHVwIGFzIGV4cGVjdGVkIHdoZW4gcGFzc2luZwoJICBHc3RNaW5pT2JqZWN0cyB0aHJvdWdoIGdfb2JqZWN0X2dldCgpIGFuZCBnX29iamVjdF9zZXQoKS4KCjIwMDUtMTItMTQgMTc6MDg6MzYgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBSZWZhY3RvcmluZyBvZiBjb2xsZWN0cGFkcy4gVGhpcyB2ZXJzaW9uIHJlbW92ZXMgYSBsb3Qgb2YgcmFjZXMgd2l0aG91dCB0b3VjaGluZyBBUEkvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTE0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6IFJlZmFjdG9yaW5nCgkgIG9mIGNvbGxlY3RwYWRzLiBUaGlzIHZlcnNpb24gcmVtb3ZlcyBhIGxvdCBvZiByYWNlcyB3aXRob3V0CgkgIHRvdWNoaW5nIEFQSS9BQkkuIFlheSAhCgoyMDA1LTEyLTE0IDEwOjA5OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgYWxsb3cgYWN0aXZhdGlvbiBvZiBhIHNyY3BhZCBpbiBwdWxsX3JhbmdlIGlmIGl0IGhhcyBubyBnZXRyYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKToKCSAgRG9uJ3QgYWxsb3cgYWN0aXZhdGlvbiBvZiBhIHNyY3BhZCBpbiBwdWxsX3JhbmdlIGlmIGl0IGhhcyBubwoJICBnZXRyYW5nZSBmdW5jdGlvbi4KCSAgQ2hhbmdlIHNvbWUgZGVidWcgc3RhdGVtZW50cyB0byBiZSBhIGxpdHRsZSBjbGVhcmVyCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSk6CgkgIENoZWNrIHRoYXQgd2UgaGF2ZSBhIHBlZXIgYmVmb3JlIGV4ZWN1dGluZyBxdWVyaWVzIHRoZXJldXBvbi4KCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApOgoJICBVc2UgZ3N0X2J1c19wb3AgaW5zdGVhZCBvZiBnc3RfYnVzX3BvbGwgd2hlbiB3ZSBqdXN0IHdhbnQgaXQgdG8KCSAgaW1tZWRpYXRlbHkgcmV0dXJuIHVzIGFueSBhdmFpbGFibGUgbWVzc2FnZSB3aXRoIDAgdGltZW91dC4KCjIwMDUtMTItMTIgMTk6MDk6NDkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogRG9uJ3QgdW5yZWYgZmFjdG9yaWVzIGFmdGVyIGNhbGxpbmcgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICBEb24ndCB1bnJlZiBmYWN0b3JpZXMgYWZ0ZXIgY2FsbGluZyB0aGVtLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRnJlZSBsaXN0cyBvZiBmYWN0b3JpZXMgYWZ0ZXIgdXNpbmcgdGhlbS4gRml4aW5nIHR5cGVmaW5kaW5nIG1lbW9yeQoJICBsZWFrcy4KCjIwMDUtMTItMTIgMTg6MTI6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IG1vcmUgbWVhbmluZ2Z1bCBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgIG1vcmUgbWVhbmluZ2Z1bCBkZWJ1ZyBvdXRwdXQKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBtYWtlIG1ha2UgZGlzdGNoZWNrIGhhcHB5IGFnYWluCgoyMDA1LTEyLTEyIDE3OjM3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlIGFsbCB0ZXN0cy9vbGQgTWFrZWZpbGVzIGZyb20gdGhlIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYWxsIHRlc3RzL29sZCBNYWtlZmlsZXMgZnJvbSB0aGUgYnVpbGQKCjIwMDUtMTItMTIgMTc6MDk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBDYXRjaCB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHdlIGFyZSBvcGVyYXRpbmcgY2hhaW4tYmFzZWQsIGJ1dCB0aGUgZG93bnN0cmVhbSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpOgoJICBDYXRjaCB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHdlIGFyZSBvcGVyYXRpbmcgY2hhaW4tYmFzZWQsCgkgIGJ1dCB0aGUgZG93bnN0cmVhbSBwZWVyIHBhZCBoYXMgbm8gY2hhaW4gZnVuY3Rpb24uIEVtaXQgYQoJICBjdXN0b20gZXJyb3IgbWVzc2FnZSBpbiB0aGlzIGNhc2UgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZQoJICBjb3JlIGdlbmVyYXRlIG9uZSBpbXBseWluZyB0aGF0IHRoaXMgaXMgc29tZSBzb3J0IG9mIGNvcmUKCSAgYnVnLiBJdCdzIG5vdCwgaXQganVzdCBtZWFucyB0aGF0IHdoYXRldmVyIGdvdCBwbHVnZ2VkCgkgIGludG8gdGhlIHBpcGVsaW5lIGRvd25zdHJlYW0gd2hlbiB3ZSBhbm5vdW5jZWQgdGhlIHR5cGUKCSAgY2FuIG9ubHkgb3BlcmF0ZSBwdWxsLWJhc2VkLCB3aGlsZSBvdXIgc291cmNlIGNhbiBvbmx5CgkgIG9wZXJhdGUgcHVzaC1iYXNlZCAoZS5nLiBodHRwOi8vZm9vL2Jhci5tb3YgISBxdGRlbXV4ICEgLi4uKQoJICBFcnJvciBzdHJpbmcgaGFzIG5vdCBiZWVuIG1hcmtlZCBmb3IgdHJhbnNsYXRpb24geWV0LCBhcwoJICBpdCBwcm9iYWJseSBuZWVkcyBzb21lIG1vcmUgd29yayBmaXJzdC4KCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRfYmVzdF9wb3NzaWJpbGl0eSk6CgkgIEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8gZmluZCB0aGUgYmVzdCBvZiBhbGwgYXZhaWxhYmxlCgkgIGZvdW5kIHBvc3NpYmlsaXRpZXMgdGhhdCBxdWFsaWZ5IGdpdmVuIHRoZSBtaW4uIHRocmVzaG9sZC4KCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBGaXggdGhlIGNhc2Ugd2hlcmUgd2UgZ2V0IGFuIEVPUyB3aGlsZSBzdGlsbCBpbiBUWVBFRklORAoJICBtb2RlICh3ZSB3YW50IHRvIGNob3NlIHRoZSBiZXN0IG9mIGFsbCBwb3NzaWJsZSB0eXBlcywKCSAgbm90IGp1c3QgdGhlIGZpcnN0IHR5cGUgdGhhdCBoYXBwZW5zIHRvIGJlIGluIG91ciB1bnNvcnRlZAoJICBsaXN0IG9mIHBvc3NpYmxlIHR5cGVzKS4KCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE1ha2Ugc3VyZSB3ZSByZXR1cm4gR1NUX0ZMT1dfRVJST1Igd2hlbiB3ZSBlcnJvcmVkIG91dAoJICBpbiBzdG9wX3R5cGVmaW5kaW5nKCk7IGFsc28sIGRvbid0IGp1c3QgZmluZCB0aGUgYmVzdCBvZgoJICBhbGwgZm91bmQgdHlwZSBlbnRyaWVzIGFuZCB0aGVuIHVzZSB0aGUgbGFzdCBleGFtaW5lZAoJICB0eXBlIGVudHJ5LCBidXQgYWN0dWFsbHkgdXNlIHRoZSBiZXN0IGVudHJ5LgoKMjAwNS0xMi0xMiAxNzowNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzLzogTW9yZSBnY2M0IGZpeGVzIGFuZCBhIG1lbSBsZWFrIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogKHR5cGVfZm91bmQpOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzogKHhtbF9sb2FkZWQpOgoJICBNb3JlIGdjYzQgZml4ZXMgYW5kIGEgbWVtIGxlYWsgZml4LgoKMjAwNS0xMi0xMiAxNjoyMDo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICBtb3JlIGdjYyA0IHdhcm5pbmcgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZ2NjIDQgd2FybmluZyBmaXhlcwoKMjAwNS0xMi0xMiAxNjowNDo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICBhbm90aGVyIGdjYzQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGdjYzQgZml4CgoyMDA1LTEyLTEyIDE1OjU5OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6IGdjYyA0IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzogKG9iamVjdF9zYXZlZCk6CgkgIGdjYyA0IGZpeGVzCgoyMDA1LTEyLTEyIDE1OjQ2OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9NYWtlZmlsZS5hbTogZW5hYmxlIHRoZSBleGFtcGxlcyBldmVuIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgIGVuYWJsZSB0aGUgZXhhbXBsZXMgZXZlbiBtb3JlCgoyMDA1LTEyLTEyIDE1OjAyOjAyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmMgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0LCBnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCkgKGdzdF9uZXRfdGltZV9wcm92aWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCwgZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc2V0X3Byb3BlcnR5KQoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2dldF9wcm9wZXJ0eSk6IEV4cG9ydCAiYWN0aXZlIiBhcyBhIEdPYmplY3QKCSAgcHJvcGVydHkuCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKTogT25seSByZXNwb25kIHRvIHRpbWUgcXVlcmllcyBpZgoJICB0aGUgdGltZSBwcm92aWRlciBpcyBhY3RpdmUuCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOiBBZGQgYW4gImFjdGl2ZSIgYm9vbGVhbiB0bwoJICBOZXRUaW1lUHJvdmlkZXIsIHByZXNlcnZpbmcgYmluYXJ5IGNvbXBhdC4KCjIwMDUtMTItMTIgMTQ6NDY6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzLzogY29udmVydCBjb21tZW50cyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSAgY29udmVydCBjb21tZW50cyBhZ2FpbgoKMjAwNS0xMi0xMiAxNDo0Mzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIEZpeCB0eXBvLgoKMjAwNS0xMi0xMiAxNDo0MjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRoZSBDaGFuZ2Vsb2cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0aGUgQ2hhbmdlbG9nLi4uCgoyMDA1LTEyLTEyIDE0OjQxOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5bWJvbCB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGRlZCBuZXcgc3ltYm9sIHRvIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwgKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zcmNfd2FpdCksIChnc3RfYmFzZV9zcmNfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgSW1wbGVtZW50IHNlZWtpbmcgdG8gb3RoZXIgZm9ybWF0cyB0aGFuIF9CWVRFUy4KCSAgSW1wbGVtZW50IG1vcmUgc2Vla2luZyBtZXRob2RzIGNvcnJlY3RseS4KCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIHF1ZXJ5IHZtZXRob2QuCgkgIEFkZGVkIGRvX3NlZWsgdm1ldGhvZCB0byBtYWtlIGxpZmUgZWFzaWVyIGZvciBzdWJjbGFzc2VzCgkgIHdoZW4gc2Vla2luZy4KCSAgQVBJIGFkZGl0aW9uOiBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCgpCgoyMDA1LTEyLTEyIDE0OjA4OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbTogYWRkZWQgdGhhdCB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGFkZGVkIHRoYXQgdG9vCgoyMDA1LTEyLTEyIDE0OjAyOjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhcHBsaWVkIHNvbWUgc2ltcGxlIGZpeGluZyB0byBzb21lIGV4YW1wbGVzIHJlLWVuYWJsZWQgdGhlIHdvcmtpbmcgZXhhbXBsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCksCgkgIChtYWtlX3BpcGVsaW5lKSwgKHByaW50X3RhZyksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogKHR5cGVfZm91bmQpLCAoZXZlbnRfbG9vcCksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOiAob2JqZWN0X3NhdmVkKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzogKHhtbF9sb2FkZWQpLCAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL1RPRE86CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvbXAzcGxheToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdHlwZWZpbmQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICBhcHBsaWVkIHNvbWUgc2ltcGxlIGZpeGluZyB0byBzb21lIGV4YW1wbGVzCgkgIHJlLWVuYWJsZWQgdGhlIHdvcmtpbmcgZXhhbXBsZXMKCjIwMDUtMTItMTIgMTI6NDg6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBNYWtlIHN1cmUgdGhlIGxhc3RfcG9zIHZhbHVlIGlzIHVwZGF0ZWQgcHJvcGVybHkuCgkgIE1ha2Ugc3VyZSB0b19zdHJlYW1fdGltZSBhbmQgdG9fcnVubmluZ190aW1lIGRvbid0CgkgIG9wZXJhdGUgb24gd3JvbmcgdmFsdWVzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVwZGF0ZSBjaGVjay4KCjIwMDUtMTItMTIgMTI6MzI6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IE5vdyB0aGF0IHdlJ3JlIG5vdCBsZWFraW5nIGZhY3RvcmllcywgbWFrZSBzdXJlIHdlIGtlZXAgcmVmZXJlbmNlcyB0byB0aGVtIHdoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZnJlZV9lbnRyeSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBOb3cgdGhhdCB3ZSdyZSBub3QgbGVha2luZyBmYWN0b3JpZXMsIG1ha2Ugc3VyZSB3ZSBrZWVwIHJlZmVyZW5jZXMKCSAgdG8gdGhlbSB3aGlsZSB3ZSBuZWVkIHRoZW0uCgoyMDA1LTEyLTEyIDExOjQwOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOiBpZmRlZiBvdXQgdGhlIFhNTCBzdHJ1Y3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICBpZmRlZiBvdXQgdGhlIFhNTCBzdHJ1Y3RzCgoyMDA1LTEyLTEyIDEwOjU5OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBmbG9vciBpcyBub3QgbmVlZGVkLCBGIGlzIGFsd2F5cyBwb3NpdGl2ZTsgdGhpcyBvYnZpYXRlcyB0aGUgbmVlZCBmb3IgYWRkaW5nIC1sbSB3aGVuIGJ1aWxkaW5nIHdpdGhvdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fZG91YmxlX2ZyYWN0aW9uKToKCSAgZmxvb3IgaXMgbm90IG5lZWRlZCwgRiBpcyBhbHdheXMgcG9zaXRpdmU7IHRoaXMgb2J2aWF0ZXMgdGhlCgkgIG5lZWQgZm9yIGFkZGluZyAtbG0gd2hlbiBidWlsZGluZyB3aXRob3V0IGxpYnhtbAoKMjAwNS0xMi0xMiAxMDo1NzozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9hc3BlY3RyYXRpbzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBhZGQgYSA7IGFuZCBhbiBleGFtcGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSA7IGFuZCBhbiBleGFtcGxlCgoyMDA1LTEyLTEyIDEwOjE2OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBUYWtlIGN1cnJlbnQgcGxheWJhY2sgcmF0ZSBpbnRvIGFjY291bnQgd2hlbiByZXBvcnRpbmcgdGhlIHBvc2l0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFRha2UgY3VycmVudCBwbGF5YmFjayByYXRlIGludG8gYWNjb3VudCB3aGVuIHJlcG9ydGluZwoJICB0aGUgcG9zaXRpb24uCgoyMDA1LTEyLTExIDE5OjM1OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6IExldCdzIHRyeSB0aGlzIGFnYWluLCB0aGlzIHRpbWUgd2l0aCBhIGZpbGUgdGhhdCBpcyBhY3R1YWxseSBpbiBYRmlnIGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgIExldCdzIHRyeSB0aGlzIGFnYWluLCB0aGlzIHRpbWUgd2l0aCBhIGZpbGUgdGhhdCBpcwoJICBhY3R1YWxseSBpbiBYRmlnIGZvcm1hdC4KCjIwMDUtMTItMTEgMTk6MTk6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzogQWRkIGF1ZGlvY29udmVydCBlbGVtZW50IHRvIGRpYWdyYW0gc28gdGhhdCBpdCBtYXRjaGVzIHRoZSB0ZXh0IGFuZCB0aGUgY29kZSAoZml4ZXMgIzMxOTUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgIEFkZCBhdWRpb2NvbnZlcnQgZWxlbWVudCB0byBkaWFncmFtIHNvIHRoYXQgaXQKCSAgbWF0Y2hlcyB0aGUgdGV4dCBhbmQgdGhlIGNvZGUgKGZpeGVzICMzMTk1MjYpLgoKMjAwNS0xMi0xMSAxODoyNDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnLzogVXBkYXRlIHN0YXRlIGNoYW5nZSBzdHVmZiBmb3IgMC4xMCAoZml4ZXMgIzMyMjk2OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJICBVcGRhdGUgc3RhdGUgY2hhbmdlIHN0dWZmIGZvciAwLjEwIChmaXhlcyAjMzIyOTY5KS4KCjIwMDUtMTItMTEgMTc6NDk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFVwZGF0ZSBmb3IgMC4xMDogcy8wLjkvMC4xMC87IHMvYXVkaW9zY2FsZS9hdWRpb3JzYW1wbGUvOyBhZGQgY29udmVydGVycyBpbiBmcm9udCBvZiBwaXBlbGluZXM7IHJlbW92ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBVcGRhdGUgZm9yIDAuMTA6IHMvMC45LzAuMTAvOyBzL2F1ZGlvc2NhbGUvYXVkaW9yc2FtcGxlLzsKCSAgYWRkIGNvbnZlcnRlcnMgaW4gZnJvbnQgb2YgcGlwZWxpbmVzOyByZW1vdmUgY3VybHkKCSAgYnJhY2tldHMgZm9yIHRocmVhZHMgc3R1ZmYsIHRoZXkgbm8gbG9uZ2VyIGV4aXN0OyB1c2UKCSAgR1NUX1RZUEVfRlJBQ1RJT04gZm9yIGZyYW1lcmF0ZXM7IHVwZGF0ZSBzb21lIHBpZWNlcyBvZgoJICBjb2RlIHRvIDAuMTAsIGJ1dCB0aGVyZSdzIHBsZW50eSBtb3JlIHRvIGRvLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBFeHBhbmQgb24gYXN5bmNocm9uZW91cyBzdGF0ZSBjaGFuZ2VzOyBzLzAuOS8wLjEwLzsKCSAgbWVudGlvbiBkaXNhcHBlYXJhbmNlIG9mIGdzdF9pbml0X2dldF9wb3B0X3RhYmxlKCkKCSAgKGZpeGVzICMzMjI5MTYpLgoKMjAwNS0xMi0xMSAxMTo1Mzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL3VzaW5nLnhtbDogU3BpZGVyIG5vIGxvbmdlciBleGlzdHMsIGFuZCBuZWl0aGVyIGRvZXMgZ3N0LWxhdW5jaC1leHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgU3BpZGVyIG5vIGxvbmdlciBleGlzdHMsIGFuZCBuZWl0aGVyIGRvZXMgZ3N0LWxhdW5jaC1leHQuCgkgIFVwZGF0ZSBleGFtcGxlcyB0byB1c2UgZGVjb2RlYmluIGFuZCBwbGF5YmluIGFuZCBwdXQKCSAgY29udmVydGVycyBpbiBmcm9udCBvZiBzaW5rcyAoZml4ZXMgIzMyMzcyNikuCgoyMDA1LTEyLTA5IDE3OjI2OjMxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGaXggbGVha2luZyBlbGVtZW50IGZhY3RvcmllcyBpbiB0eXBlZmluZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBGaXggbGVha2luZyBlbGVtZW50IGZhY3RvcmllcyBpbiB0eXBlZmluZGluZy4KCSAgRml4IHByb2JsZW0gd2hlcmUgd2UgZm9yZ290IGFib3V0IGEgcHJvYmFibGUgdHlwZSBvbiBub24tc2Vla2FibGUKCSAgZmlsZXMsIGFuZCB0aHVzIGxhdGVyIG1pcy10eXBlZm91bmQgaXQuCgoyMDA1LTEyLTA5IDE1OjA5OjQyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBSZW1vdmUgbWFrZWNvbnRleHQgc3R1ZmY7IG5vdCB1c2VkIGluIDAuMTAgYW5kIGNhdXNlcyBwcm9ibGVtcyBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vbTQvZ3N0LW1ha2Vjb250ZXh0Lm00OgoJICAqIGNvbW1vbi9tNC9nc3QtbWNzYy5tNDoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgUmVtb3ZlIG1ha2Vjb250ZXh0IHN0dWZmOyBub3QgdXNlZCBpbiAwLjEwIGFuZCBjYXVzZXMgcHJvYmxlbXMgb24KCSAgSFBVWCBhY2NvcmRpbmcgdG8gYnVnICMzMjI0NDEKCjIwMDUtMTItMDcgMTk6MDM6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicywgdGhpcyB0aW1lIGZvciByZWFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzLCB0aGlzIHRpbWUgZm9yIHJlYWwKCjIwMDUtMTItMDcgMTk6MDM6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGFiaV9zdWl0ZSksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicwoKMjAwNS0xMi0wNyAxNzo1OToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBBbmQgYWRkIHRoZSBzdHJ1Y3RfaTM4Ni5oIHRvIGRpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBBbmQgYWRkIHRoZSBzdHJ1Y3RfaTM4Ni5oIHRvIGRpc3QuCgoyMDA1LTEyLTA3IDE3OjM2OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBjaGVjayBmb3IgQUJJIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGFiaV9zdWl0ZSksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgQWRkZWQgY2hlY2sgZm9yIEFCSSBjb21wYXRpYmlsaXR5LgoKMjAwNS0xMi0wNyAxNTozMzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBGaXggYnJva2VuIHN5bmMgb3B0aW9uLCBmaXhlcyAjMzIzMjU5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF90aW1lcyksIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgRml4IGJyb2tlbiBzeW5jIG9wdGlvbiwgZml4ZXMgIzMyMzI1OQoKMjAwNS0xMi0wNyAxNToxNjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogU21hbGwgZG9jcyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgU21hbGwgZG9jcyB1cGRhdGUuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgRG9uJ3QgYXNzZXJ0IG9uIE5VTEwgPC0tPiBYLiBGaXhlcyAjMzIzMjYwCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKToKCSAgSWYgd2UncmUgZG9pbmcgYXRvbWljIG9wZXJhdGlvbnMsIHdlIG1pZ2h0IGp1c3QgYXMgd2VsbCB1c2UKCSAgdGhlIHByb3BlciB3YXkgdG8gZ2V0IGFuIGF0b21pYyBwb2ludGVyLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgQ2xlYW4gdXAgZGVidWdnaW5nLgoKMjAwNS0xMi0wNyAxMTo1MjowNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIGhhbmRsaW5nIG9mIHsgfSBmb3IgdGhyZWFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIGhhbmRsaW5nIG9mIHsgfSBmb3IgdGhyZWFkcy4KCjIwMDUtMTItMDYgMjM6MzI6MDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHNwZWxpbmcgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogc3BlbGluZyBmaXguCgoyMDA1LTEyLTA2IDE5OjI5OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvcmFuZG9tL29tZWdhL3Rlc3RpbmcvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvcGFyc2UxLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzoKCSAgZXhwYW5kIHRhYnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGV4cGFuZCB0YWJzCgoyMDA1LTEyLTA2IDE5OjA0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byBjdnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gY3ZzCgoyMDA1LTEyLTA1IDE4OjEzOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuMCA9PT0KCjIwMDUtMTItMDUgMTg6MDU6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMAoKMjAwNS0xMi0wNSAxNTo1Nzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMi0wNSAxNDozNjowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IGFkZGVkIENoaW5lc2UgKFRyYWRpdGlvbmFsKSB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3VibWl0dGVkIGJ5OiBGdW5kYSBXYW5nIDxmdW5kYXdhbmdAbGludXgubmV0LmNuPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vemhfQ04ucG86CgkgIGFkZGVkIENoaW5lc2UgKFRyYWRpdGlvbmFsKSB0cmFuc2xhdGlvbgoKMjAwNS0xMi0wNSAxNDoxNDozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSAgdXBkYXRlZCBBZnJpa2FhbnMgdHJhbnNsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgQWZyaWthYW5zIHRyYW5zbGF0aW9uCgoyMDA1LTEyLTA1IDE0OjE0OjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkIGZyb20gZG9jc3RyaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmQgZnJvbSBkb2NzdHJpbmcKCjIwMDUtMTItMDUgMTM6MTA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNS0xMi0wNSAxMzowNjozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzL1RPRE86CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA1LTEyLTA1IDEzOjAxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZikKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYyAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKTogQ2FsbAoJICBhbGxvY19idWZmZXJfYW5kX3NldF9jYXBzLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOiBDaGFuZ2VkIHRvIG5vdCBjYWxsCgkgIHNldF9jYXBzIG9uIHRoZSBzb3VyY2UgcGFkLgoJICAoZ3N0X3BhZF9hbGxvY19idWZmZXJfYW5kX3NldF9jYXBzKTogTmV3IGZ1bmN0aW9uLCBkb2VzIHdoYXQKCSAgYWxsb2NfYnVmZmVyIHVzZWQgdG8gZG8uIEZpeGVzICMzMjI4NzQuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6IFVwZGF0ZSBmb3IgdGhlIGFsbG9jX2J1ZmZlcgoJICBjaGFuZ2VzLgoKMjAwNS0xMi0wNSAxMjozMzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgcmVhbGx5IGFkZCB0aGUgdGVzdHMgZm9yIHRoZSA2NC9kb3VibGUgY29udmVyc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVhbGx5IGFkZCB0aGUgdGVzdHMgZm9yIHRoZSA2NC9kb3VibGUgY29udmVyc2lvbgoKMjAwNS0xMi0wNSAxMjowOTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGFkZCBkZWYgZm9yIGNvbnRyb2xsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBkZWYgZm9yIGNvbnRyb2xsZXIKCjIwMDUtMTItMDUgMTI6MDk6MDEgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvOiB3aW4zMiBidWlsZCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICB3aW4zMiBidWlsZCBmaXhlcwoKMjAwNS0xMi0wNSAxMDo1OToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEJhY2sgb3V0IHByZXZpb3VzIGNvZGUgY2hhbmdlcywgbGVhdmUgZG9jIHVwZGF0ZXMsIGZpbGUgYnVncyBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEJhY2sgb3V0IHByZXZpb3VzIGNvZGUgY2hhbmdlcywgbGVhdmUgZG9jIHVwZGF0ZXMsIGZpbGUgYnVncwoJICBpbnN0ZWFkLgoKMjAwNS0xMi0wNSAxMDoyNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy4qOiBGaXggYnJva2VuIHN5bmMgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBGaXggYnJva2VuIHN5bmMgY29kZS4KCjIwMDUtMTItMDUgMTA6MjI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDb21wYXJpbmcgTlVMTCBhZ2FpbnN0ICFOVUxMIHlpZWxkcyBkaWZmZXJlbnQgY2Fwcywgbm90IGEgZmFpbHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgQ29tcGFyaW5nIE5VTEwgYWdhaW5zdCAhTlVMTCB5aWVsZHMgZGlmZmVyZW50IGNhcHMsIG5vdCBhCgkgIGZhaWx1cmUuCgoyMDA1LTEyLTA1IDEwOjE4OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IEZpeCBzbWFsbCB0eXBvIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBGaXggc21hbGwgdHlwbyBpbiBkb2NzLgoKMjAwNS0xMi0wNSAwOTo1Mzo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmMgKGluaXRfcG9zdCk6IHJlbW92ZSBoYXJkLWNvZGVkIDAuOSBsb2NhdGlvbiBmb3IgcmVnaXN0cmllcy9wbHVnaW5zIHdpdGggYSBNQUpPUk1JTk9SIG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3QuYyAoaW5pdF9wb3N0KTogcmVtb3ZlIGhhcmQtY29kZWQgMC45IGxvY2F0aW9uIGZvcgoJICByZWdpc3RyaWVzL3BsdWdpbnMgd2l0aCBhIE1BSk9STUlOT1Igb25lLgoJICAocGx1Z2luX2Rlc2MpOiBSZW5hbWUgbGlicmFyeSBmcm9tIGdzdGNvcmVsZWVtZW50cyB0bwoJICBzdGF0aWNlbGVtZW50cy4gRml4ZXMgIzMyMzIyMi4KCjIwMDUtMTItMDUgMDk6NDU6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IENoYW5nZSBkZWJ1ZyBjYXRlZ29yeSB0byAnY29sbGVjdHBhZHMnIGZyb20gJ2NvbGxlY3RfcGFkcycgKGZpeGVzICMzMjMyNTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCk6CgkgIENoYW5nZSBkZWJ1ZyBjYXRlZ29yeSB0byAnY29sbGVjdHBhZHMnIGZyb20gJ2NvbGxlY3RfcGFkcycKCSAgKGZpeGVzICMzMjMyNTApLgoKMjAwNS0xMi0wNCAxOTo1NzoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVuYW1lIHR3byBleHBvcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW5hbWUgdHdvIGV4cG9ydHMKCjIwMDUtMTItMDQgMTg6NTQ6MTkgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IHVzZSBjb252ZXJ0IGZ1bmN0aW9uIGZvciB1aW50NjQvZG91YmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICB1c2UgY29udmVydCBmdW5jdGlvbiBmb3IgdWludDY0L2RvdWJsZQoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgbGluayB0byBHTGliCgoyMDA1LTEyLTA0IDA5OjU3OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCB0ZXN0cyB0aGF0IHNlZW0gdG8gc2hvdyB0aGF0IHRoZSBndWludDY0L2dkb3VibGUgY29udmVyc2lvbnMgYXJlIGNvcnJlY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlKSwKCSAgKGdzdF91dGlsX2dkb3VibGVfdG9fZ3VpbnQ2NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgYWRkIHRlc3RzIHRoYXQgc2VlbSB0byBzaG93IHRoYXQgdGhlIGd1aW50NjQvZ2RvdWJsZSBjb252ZXJzaW9ucwoJICBhcmUgY29ycmVjdC4KCjIwMDUtMTItMDIgMTI6NDQ6NTMgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBtYWtlIHZlcnNpb24gbnVtYmVyIGEgbGl0dGxlIGxlc3MgaG9wZWZ1bGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgdmVyc2lvbiBudW1iZXIgYSBsaXR0bGUgbGVzcyBob3BlZnVsbAoKMjAwNS0xMi0wMiAxMjozNDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBkb2NzIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGF0aCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIEZpeCBkb2NzIGFnYWluLgoJICBSZW1vdmVkIG9sZCBjb2RlIGZyb20gZ3N0cmVnaXN0cnl4bWwuYwoKMjAwNS0xMi0wMiAxMjoxOTo1NSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cGRhdGluZyBnc3RyZWFtZXIgc3BlYyBmaWxlIG1ha2luZyBpdCAwLjEwIHJlYWR5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXBkYXRpbmcgZ3N0cmVhbWVyIHNwZWMgZmlsZSBtYWtpbmcgaXQgMC4xMCByZWFkeQoKMjAwNS0xMi0wMiAxMTozNjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBTbWFsbCBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgU21hbGwgY2xlYW51cC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBBZGQgZGVidWcgbG9nIGxpbmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBBZGQgRklYTUUuCgoyMDA1LTEyLTAyIDA5OjQ4OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyLzogcmVuYW1lZCBjb3JlIGVsZW1lbnRzIHBsdWdpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgcmVuYW1lZCBjb3JlIGVsZW1lbnRzIHBsdWdpbgoKMjAwNS0xMi0wMiAwMTozNToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0b29scy9nc3QtcnVuLmM6IGRvIHBpZWNlLXdpc2UgbWFqb3IvbWlub3IgY29tcGFyaXNvbiBzbyAwLjkgPCAwLjEwIGFsc28gYWxsb3cgLmV4ZSBleHRlbnNpb25zIGZvciB0b29scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcnVuLmM6IChjb21wYXJlX21ham9yX21pbm9yKSwgKGZpbmRfaGlnaGVzdF92ZXJzaW9uKSwKCSAgKGdldF9jYW5kaWRhdGVzKToKCSAgZG8gcGllY2Utd2lzZSBtYWpvci9taW5vciBjb21wYXJpc29uIHNvIDAuOSA8IDAuMTAKCSAgYWxzbyBhbGxvdyAuZXhlIGV4dGVuc2lvbnMgZm9yIHRvb2xzCgoyMDA1LTEyLTAxIDIzOjU3OjA3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0LmM6IEVzY2FwZSBhICUgdG8gbWFrZSBndGtkb2MgaGFwcGllcjsgYnVnIDMyMjk1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBFc2NhcGUgYSAlIHRvIG1ha2UgZ3RrZG9jIGhhcHBpZXI7IGJ1ZyAzMjI5NTguCgoyMDA1LTEyLTAxIDE5OjE4OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuOS43ID09PQoKMjAwNS0xMi0wMSAxOToxMTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDSEFOR0VTLTAuOToKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNwoKMjAwNS0xMi0wMSAxNjo1MToyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSogd2luMzIvdnM3L0dTdHJlYW1lci52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UudmNwcm9qOgoJICBidW1wIEdTVF9NQUpPUk1JTk9SIHRvIDAuMTAgcmVzZXQgbGlidG9vbCB2ZXJzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBidW1wIEdTVF9NQUpPUk1JTk9SIHRvIDAuMTAKCSAgcmVzZXQgbGlidG9vbCB2ZXJzaW9uCgoyMDA1LTEyLTAxIDE1OjI4OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRvb2xzL2dzdC1mZWVkYmFjay0wLjc6CgkgIHJlbW92ZSBvbGQgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBmaWxlCgoyMDA1LTEyLTAxIDE1OjE4OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTItMDEgMTU6MDg6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBwby9MSU5HVUFTOgoJKiBwby9iZy5wbzoKCSAgQWRkZWQgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uIGJ5IChBbGV4YW5kZXIgU2hvcG92KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uIGJ5IChBbGV4YW5kZXIgU2hvcG92KQoKMjAwNS0xMi0wMSAxNTowNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC1idWlsZC5zdGFtcDoKCSAgY29tbWl0IGZpbmFsIHN0YW1wIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1pdCBmaW5hbCBzdGFtcCBmaWxlCgoyMDA1LTEyLTAxIDE0OjUxOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBhZGQgbW9yZSBmaWxlcyBmb3IgZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBmaWxlcyBmb3IgZGlzdGNoZWNrCgoyMDA1LTEyLTAxIDE0OjQwOjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSAgYWRkIHNpZ25hbHMgYW5kIGFyZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzaWduYWxzIGFuZCBhcmdzCgoyMDA1LTEyLTAxIDEyOjM2OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBmaXggdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRlc3QKCjIwMDUtMTItMDEgMTI6Mjk6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy50eXBlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3Quc3RhbXA6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL3NjYW5vYmotYnVpbGQuc3RhbXA6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJICBkb2N1bWVudCBjb3JlIHBsdWdpbnMgaW4gYSBzZXBhcmF0ZSBkb2N1bWVudCBqdXN0IGxpa2UgYWxsIHRoZSBvdGhlcnMgcmVuYW1lIHRoZXNlIHBsdWdpbnMgdG8gc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IGNvcmUgcGx1Z2lucyBpbiBhIHNlcGFyYXRlIGRvY3VtZW50IGp1c3QgbGlrZSBhbGwgdGhlCgkgIG90aGVycwoJICByZW5hbWUgdGhlc2UgcGx1Z2lucyB0byBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBjb3JlCgoyMDA1LTEyLTAxIDEyOjAwOjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE1lYW50IHRvIHJlbW92ZSB0aGUgZXh0cmEgcGFkZGluZyBoZXJlIGJlZm9yZSwgYnV0IGl0IG1pc3NlZCB0aGUgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE1lYW50IHRvIHJlbW92ZSB0aGUgZXh0cmEKCSAgcGFkZGluZyBoZXJlIGJlZm9yZSwgYnV0IGl0IG1pc3NlZCB0aGUgY29tbWl0LgoKMjAwNS0xMi0wMSAxMDowNzoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgYWRkIGxpYmdzdGNvbnRyb2xsZXIgdG8gdGhlIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGliZ3N0Y29udHJvbGxlciB0byB0aGUgYnVpbGQKCjIwMDUtMTItMDEgMDk6NTQ6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IHdoaXRlc3BhY2UgcHJpY2VzIGhhdmUgY3Jhc2hlZCwgd2Ugc2hvdWxkIGZlZWwgZnJlZSB0byB1c2Ugc29tZSBub3cgdXNlIGdzdF9nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICB3aGl0ZXNwYWNlIHByaWNlcyBoYXZlIGNyYXNoZWQsIHdlIHNob3VsZCBmZWVsIGZyZWUgdG8gdXNlIHNvbWUgbm93CgkgIHVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlCgoyMDA1LTEyLTAxIDA5OjMyOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZpeCB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdHlwbwoKMjAwNS0xMi0wMSAwOToyMzoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSAgd3JhcCBjb25maWcuaCBpbmNsdWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3cmFwIGNvbmZpZy5oIGluY2x1ZGUKCjIwMDUtMTItMDEgMDI6MDg6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB1cGRhdGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRvY3MKCjIwMDUtMTItMDEgMDA6NTQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IG1vcmUgYW5hbCBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19fY2xhc3NfaW5pdCksIChnc3RfZmRfc2lua19faW5pdCksCgkgIChnc3RfZmRfc2lua19fY2hhaW4pLCAoZ3N0X2ZkX3NpbmtfX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc2lua19fZ2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKF9kb19pbml0KSwgKGdzdF9mZF9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY19kaXNwb3NlKSwKCSAgKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwgKGdzdF9mZF9zcmNfc3RhcnQpLCAoZ3N0X2ZkX3NyY19zdG9wKSwKCSAgKGdzdF9mZF9zcmNfdW5sb2NrKSwgKGdzdF9mZF9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mZF9zcmNfY3JlYXRlKSwKCSAgKGdzdF9mZF9zcmNfaXNfc2Vla2FibGUpLCAoZ3N0X2ZkX3NyY19nZXRfc2l6ZSksCgkgIChnc3RfZmRfc3JjX3VyaV9nZXRfdHlwZSksIChnc3RfZmRfc3JjX3VyaV9nZXRfcHJvdG9jb2xzKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2dldF91cmkpLCAoZ3N0X2ZkX3NyY191cmlfc2V0X3VyaSksCgkgIChnc3RfZmRfc3JjX3VyaV9oYW5kbGVyX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpOgoJICBtb3JlIGFuYWwgY2xlYW51cAoKMjAwNS0xMS0zMCAxOTozNjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBmaXggdGhlIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0aGUgZG9jcyBidWlsZAoKMjAwNS0xMS0zMCAxOTowMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGFkZCBuZXcgaW5wdXQgdHlwZXMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5ldyBpbnB1dCB0eXBlcyBmaWxlCgoyMDA1LTExLTMwIDE5OjAxOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHZhcmlvdXMgZml4ZXMgdG8gbWFrZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB2YXJpb3VzIGZpeGVzIHRvIG1ha2UKCSAgLS1kaXNhYmxlLW5scyAtLWRpc2FibGUtcmVnaXN0cnkgLS1kaXNhYmxlLWxvYWRzYXZlICAgICAgICAgICAtLWRpc2FibGUtcGFyc2UgLS1kaXNhYmxlLWdzdC1kZWJ1ZwoJICB3b3JrIGFuZCBnZXQgdGhlIGNvcmUgLnNvIGRvd24gdG8gMzYwNDQ0IGJ5dGVzIGFmdGVyIHN0cmlwcGluZwoKMjAwNS0xMS0zMCAxNzowNToyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG1vdmUgbG9jYXRpb24gb2YgdGVzdCByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBsb2NhdGlvbiBvZiB0ZXN0IHJlZ2lzdHJ5CgoyMDA1LTExLTMwIDE2OjQ1OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMzAgMTY6NDU6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvbWlzYy9NYWtlZmlsZS5hbToKCSAgbWlzc2luZyBtYWtlZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWlzc2luZyBtYWtlZmlsZQoKMjAwNS0xMS0zMCAxNjo0MzoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIHBydW5lIGVtcHR5IGRpcnMgd2hlbiB1cGRhdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJ1bmUgZW1wdHkgZGlycyB3aGVuIHVwZGF0aW5nCgoyMDA1LTExLTMwIDE2OjQyOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIERPQ0JVSUxESU5HOgoJKiBkb2NzL1JFQURNRToKCSAgcmVtb3ZlIGVtcHR5IGRpcnM7IG1vdmUgZG9jYnVpbGRpbmcgbm90ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBlbXB0eSBkaXJzOyBtb3ZlIGRvY2J1aWxkaW5nIG5vdGVzCgoyMDA1LTExLTMwIDE2OjM5OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRlc2NlbmQgaW50byB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgIGRlc2NlbmQgaW50byB0ZXN0cwoJICAqIGRvY3MvcmFuZG9tL3Rob21hc3ZzL1RPRE86CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvUkVBRE1FOgoJICBhZGQgYSBSRUFETUUKCjIwMDUtMTEtMzAgMTY6MzI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTMwIDE2OjMwOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdXBkYXRlIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFJFQURNRQoKMjAwNS0xMS0zMCAxNjoyOToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCBmYWlsIG9uIG1pc3NpbmcgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGZhaWwgb24gbWlzc2luZyByZWdpc3RyeQoKMjAwNS0xMS0zMCAxNjoyODoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9SRUFETUUudHh0OgoJICBhZGQgYSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIFJFQURNRQoKMjAwNS0xMS0zMCAxNjoyNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9NYWtlZmlsZToKCSogd2luMzIvTWFrZWZpbGUuaW5zcGVjdDoKCSogd2luMzIvTWFrZWZpbGUubGF1bmNoOgoJKiB3aW4zMi9NYWtlZmlsZS5yZWdpc3RlcjoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSogd2luMzIvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvZ3N0LXJlZ2lzdGVyLnZjcHJvajoKCSogd2luMzIvZ3N0ZWxlbWVudHMudmNwcm9qOgoJKiB3aW4zMi9nc3RnZXRiaXRzLmRlZjoKCSogd2luMzIvZ3N0Z2V0Yml0cy52Y3Byb2o6CgkqIHdpbjMyL2dzdHJlYW1lci1kYmcuZGVmOgoJKiB3aW4zMi9nc3RyZWFtZXIuZGVmOgoJKiB3aW4zMi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL2xpbmtfb2xkcnVudGltZS5jOgoJKiB3aW4zMi9tbWFuLmM6CgkqIHdpbjMyL21tYW4uaDoKCSogd2luMzIvbW1hbi5pbmw6CgkqIHdpbjMyL21zdmM3MS5zbG46CgkgIG1vdmUgZXZlbiBtb3JlIHN0dWZmLCB3aW4zMi8gaXMgbmljZSBhbmQgY2xlYW4gbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGV2ZW4gbW9yZSBzdHVmZiwgd2luMzIvIGlzIG5pY2UgYW5kIGNsZWFuIG5vdwoKMjAwNS0xMS0zMCAxNjoxNzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvY29uZmlnLmg6CgkqIHdpbjMyL2RpcmVudC5jOgoJKiB3aW4zMi9kaXJlbnQuaDoKCSogd2luMzIvZ3N0Ynl0ZXN0cmVhbS5kZWY6CgkqIHdpbjMyL2dzdGJ5dGVzdHJlYW0udmNwcm9qOgoJKiB3aW4zMi9nc3Rjb25maWcuaDoKCSogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9nc3RvcHRpbWFsc2NoZWR1bGVyLnZjcHJvajoKCSogd2luMzIvZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9ndGNoYXIuaDoKCSogd2luMzIvdGVzdHN1aXRlL2JpbnMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvYnl0ZXN0cmVhbS52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9jYXBzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2NsZWFudXAudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvY2xvY2sudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZGVidWcudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZGxvcGVuLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2R5bnBhcmFtcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9lbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9naG9zdHBhZHMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvaW5kZXhlcnMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvbmVnb3RpYXRpb24udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvcGFyc2UudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvcGx1Z2luLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3JlZmNvdW50aW5nLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3NjaGVkdWxlcnMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvc3RhdGVzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3RhZ3MudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvdGhyZWFkcy52Y3Byb2o6CgkgIHJlbW92ZSBvbGQgd2luMzIgc3R1ZmYgdGhhdCBpc24ndCBtYWludGFpbmVkIGFuZCBzaG91bGQgYmUgcmVvcmdhbml6ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgd2luMzIgc3R1ZmYgdGhhdCBpc24ndCBtYWludGFpbmVkIGFuZCBzaG91bGQgYmUKCSAgcmVvcmdhbml6ZWQKCjIwMDUtMTEtMzAgMTY6MTI6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZ2V0Yml0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGdldGJpdHMKCjIwMDUtMTEtMzAgMTY6MTA6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogUmV2ZXJ0IHByZXZpb3VzIHBhdGNoLCBtYWtlcyBsb2FkaW5nIHRoZSBnc3QuaW50ZXJmYWNlcyBweXRob24gbW9kdWxlIGJvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTMwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogUmV2ZXJ0IHByZXZpb3VzIHBhdGNoLCBtYWtlcwoJICBsb2FkaW5nIHRoZSBnc3QuaW50ZXJmYWNlcyBweXRob24gbW9kdWxlIGJvcmsuCgkgICogY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBVc2UgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjLAoJICBhdmFpbGFibGUgc2luY2UgR0xpYiAyLjIuIEZpeGVzICMzMTgwMzEuCgoyMDA1LTExLTMwIDE2OjA4OjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrLy5naXRpZ25vcmU6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIGNoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogY2hlY2svZ3N0LWxpYnMvLmdpdGlnbm9yZToKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RldmVudC5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGNoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svbmV0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkqIGNoZWNrL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogY29uZmlndXJlLmFjOgoJKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvYXBwcmVhZGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2FwcHJlYWRlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiBleGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvY3V0dGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogZXhhbXBsZXMvZXZlbnRzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9ldmVudHMvc2Vlay5jOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkMi8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkMi9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvaGVsbG93b3JsZDIvaGVsbG93b3JsZDIuYzoKCSogZXhhbXBsZXMvbGF1bmNoLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIGV4YW1wbGVzL2xhdW5jaC9tcDNwbGF5OgoJKiBleGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSogZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSogZXhhbXBsZXMvbWl4ZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIGV4YW1wbGVzL3Bpbmdwb25nLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3Bpbmdwb25nL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9waW5ncG9uZy9waW5ncG9uZy5jOgoJKiBleGFtcGxlcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSogZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcHdnL2V4dHJhY3QucGw6CgkqIGV4YW1wbGVzL3F1ZXVlLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJKiBleGFtcGxlcy9xdWV1ZTIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWUyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZTIvcXVldWUyLmM6CgkqIGV4YW1wbGVzL3F1ZXVlMy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZTMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlMy9xdWV1ZTMuYzoKCSogZXhhbXBsZXMvcXVldWU0Ly5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlNC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWU0L3F1ZXVlNC5jOgoJKiBleGFtcGxlcy9yZXRhZy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9yZXRhZy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIGV4YW1wbGVzL3RocmVhZC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy90aHJlYWQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogZXhhbXBsZXMvdHlwZWZpbmQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkqIGV4YW1wbGVzL3htbC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSogZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9SdWxlczoKCSogdGVzdHN1aXRlL2NhcHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jYXBzL2FwcF9maXhhdGUuYzoKCSogdGVzdHN1aXRlL2NhcHMvYXVkaW9zY2FsZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuaDoKCSogdGVzdHN1aXRlL2NhcHMvY2Fwc19zdHJpbmdzOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jb21wYXRpYmlsaXR5LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2VudW1jYXBzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2VyYXRvc3RoZW5lcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9maWx0ZXJjYXBzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZpeGVkLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLWNvbnZlcnQuYzoKCSogdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tbXVsdGlwbHktYW5kLXplcm8uYzoKCSogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0Mi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzoKCSogdGVzdHN1aXRlL2NhcHMvc2V0cy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zaW1wbGlmeS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zdHJpbmctY29udmVyc2lvbnMuYzoKCSogdGVzdHN1aXRlL2NhcHMvc3RydWN0dXJlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3N1YnRyYWN0LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZGVidWcvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9jYXRlZ29yeS5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvY29tbWFuZGxpbmUuYzoKCSogdGVzdHN1aXRlL2RlYnVnL2dsb2JhbC5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvb3V0cHV0LmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9kbG9wZW4vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2Rsb3Blbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Rsb3Blbi9kbG9wZW5fZ3N0LmM6CgkqIHRlc3RzdWl0ZS9kbG9wZW4vbG9hZGdzdC5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWluc3BlY3QtY2hlY2suaW46CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X3NpemUuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkqIHRlc3RzdWl0ZS9wYXJzZS8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvcGFyc2UvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9wYXJzZS9wYXJzZTEuYzoKCSogdGVzdHN1aXRlL3BhcnNlL3BhcnNlMi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9wbHVnaW4vUkVBRE1FOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2R5bmFtaWMuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9saW5rZWQuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vcmVnaXN0cnkuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMyLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjJfcy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW5fcy5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvYmluLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50LmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvbWFpbmxvb3AuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmg6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9vYmplY3QuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3BhZC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3RocmVhZC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS90aHJlYWRzLzE1OTU2Ni5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy8xNTk4NTIuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3F1ZXVlLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvc3RhdGljcmVjLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRiLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGMuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRlLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGYuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRoLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGkuYzoKCSAgbW92ZSBhbGwgb2YgdGhlc2UgdW5kZXIgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgYWxsIG9mIHRoZXNlIHVuZGVyIHRlc3RzCgoyMDA1LTExLTMwIDE1OjM3OjM2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIGFmdGVyIHRob21hcydzIENWUyBzdXJnZXJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgYWZ0ZXIgdGhvbWFzJ3MgQ1ZTIHN1cmdlcnkKCjIwMDUtMTEtMzAgMTU6MzQ6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJICBhZGQgTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBNYWtlZmlsZS5hbQoKMjAwNS0xMS0zMCAxNToyOTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0xMS0zMCAxNToyMDoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkgIGNvbXBpbGUgd2FybmluZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tcGlsZSB3YXJuaW5nIGZpeGVzCgoyMDA1LTExLTMwIDEzOjI4OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWNvbXBwcmVwLWNoZWNrLmluOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9nc3QtY29tcHByZXAtY2hlY2suaW46CgkgIHJlbW92ZSBjb21wcHJlcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNvbXBwcmVwCgoyMDA1LTExLTMwIDEzOjI1OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBVc2UgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjLAoJICBhdmFpbGFibGUgc2luY2UgR0xpYiAyLjIuIEZpeGVzICMzMTgwMzEuCgoyMDA1LTExLTMwIDEzOjA4OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEZpcnN0IHBhc3MgYXQgY2xlYW5pbmcgdXAgdGVzdHMvIGRpciBiZWZvcmUgbW92aW5nIHRoZSByZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9iZW5jaC1jb21wbGV4aXR5LnNjbToKCSAgKiB0ZXN0cy9iZW5jaC1tYXNzX2VsZW1lbnRzLnNjbToKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmM6CgkgICogdGVzdHMvY29tcGxleGl0eS5nbnVwbG90OgoJICAqIHRlc3RzL2luc3RhbnRpYXRlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaW5zdGFudGlhdGUvY2Fwcy5jOgoJICAqIHRlc3RzL21hc3NfZWxlbWVudHMuYzoKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbToKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbToKCSAgKiB0ZXN0cy9wbG90LWRhdGE6CgkgIEZpcnN0IHBhc3MgYXQgY2xlYW5pbmcgdXAgdGVzdHMvIGRpciBiZWZvcmUgbW92aW5nIHRoZSByZXN0CgkgIENvbWJpbmVkIHdpdGggQ1ZTIHN1cmdlcnkKCjIwMDUtMTEtMzAgMTM6MDc6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbW92ZSBpbmNsdWRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBpbmNsdWRlcwoKMjAwNS0xMS0zMCAxMTo1NTozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHJlbW92ZSBub3J3ZWdpYW5pc20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBub3J3ZWdpYW5pc20KCjIwMDUtMTEtMzAgMTA6NTA6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkgIG1ha2Ugbm90IGhhdmluZyBjaGVjayBub24tZmF0YWwgZm9yIGV4dHJhIHRhcmdldHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugbm90IGhhdmluZyBjaGVjayBub24tZmF0YWwgZm9yIGV4dHJhIHRhcmdldHMKCjIwMDUtMTEtMzAgMTA6MTU6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vUE9URklMRVMuaW46IHF1ZXVlIGhhcyBtb3ZlZCwgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICBxdWV1ZSBoYXMgbW92ZWQsIHVwZGF0ZQoKMjAwNS0xMS0zMCAxMDoxMzo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIGFkZCBzb21lIGV4cGxpY2l0IGNhc3RzIHVwZGF0ZSBkc3AgZmlsZXM7IGFsc28gaW5zdGFsbHMgdGhlIGRlYnVnIGJ1aWxkIGluIFxnc3RyZWFtZXJcZGVidWcgdG8gc2VwYXJhdGUgaXQgZnJvbSB0aGUgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNvbWUgZXhwbGljaXQgY2FzdHMKCSAgdXBkYXRlIGRzcCBmaWxlczsgYWxzbyBpbnN0YWxscyB0aGUgZGVidWcgYnVpbGQgaW4gXGdzdHJlYW1lclxkZWJ1ZyB0byBzZXBhcmF0ZSBpdCBmcm9tIHRoZSBub24tZGVidWcgYnVpbGQKCjIwMDUtMTEtMzAgMTA6MDM6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCjIwMDUtMTEtMzAgMDk6NTk6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogcmVtb3ZlIGRvdWJsZSBlbnRyaWVzIGZyb20gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIGRvdWJsZSBlbnRyaWVzIGZyb20gdGhlIGRvY3MKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgcmVtb3ZlIHRoZSBUSFJFQUQgZGVidWcgY2F0ZWdvcnkKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHF1ZXVlLmM6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgIGNvbXBsZXRlbHkgbW92ZSBxdWV1ZSBhbmQgZml4IHVwIGRlYnVnZ2luZyBjYXRlZ29yaWVzCgoyMDA1LTExLTMwIDA5OjM4OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogbWFrZSBpbml0aWFsaXphdGlvbiBwb3J0YWJsZSwgdXNpbmcgTEwgaXMgbm90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBtYWtlIGluaXRpYWxpemF0aW9uIHBvcnRhYmxlLCB1c2luZyBMTCBpcyBub3QKCjIwMDUtMTEtMzAgMDk6MzY6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCjIwMDUtMTEtMzAgMDk6MzA6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCjIwMDUtMTEtMzAgMDk6Mjc6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBhZGQgbGFyZ2UgcGFkZGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIGFkZCBsYXJnZSBwYWRkaW5nCgoyMDA1LTExLTMwIDA5OjIyOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiByZW5hbWUgc3ltYm9sczsgc29ydCBiYXNlIHNlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlbmFtZSBzeW1ib2xzOyBzb3J0IGJhc2Ugc2VjdGlvbgoKMjAwNS0xMS0zMCAwOToxODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suYzogcmVtb3ZlIGNyYWNrIG5vbi1wb3J0YWJsZSBoYW5kcm9sbGVkIERFQlVHIG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTMwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOgoJICByZW1vdmUgY3JhY2sgbm9uLXBvcnRhYmxlIGhhbmRyb2xsZWQgREVCVUcgbWFjcm8KCjIwMDUtMTEtMzAgMDk6MTI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlIHZpc3VhbCBzdHVkaW8gZ2VuZXJhdGVkIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdmlzdWFsIHN0dWRpbyBnZW5lcmF0ZWQgZmlsZXMKCjIwMDUtMTEtMzAgMDg6NTY6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvdnM2LzogdXBkYXRlIHByb2plY3QgZmlsZXMgZm9yIG5ldyBsb2NhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgIHVwZGF0ZSBwcm9qZWN0IGZpbGVzIGZvciBuZXcgbG9jYXRpb25zCgoyMDA1LTExLTMwIDA4OjUyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiByZW1vdmUgc29tZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgcmVtb3ZlIHNvbWUgZmlsZXMKCSAgKiBSRUFETUU6CgkgIHJlaW5zdGF0ZSBhbmQgdXBkYXRlCgkgICogREVWRUw6CgkgICogUkVRVUlSRU1FTlRTOgoJICByZW1vdmVkCgkgICogTElDRU5TRToKCSAgKiBkb2NzL3JhbmRvbS9MSUNFTlNFOgoJICBtb3ZlZCB0byByYW5kb20KCjIwMDUtMTEtMzAgMDg6MzY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICBwdXQgdGhlIFJFQURNRSBiYWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwdXQgdGhlIFJFQURNRSBiYWNrCgoyMDA1LTExLTMwIDA4OjMzOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFRPRE86CgkgIGNsZWFuIHVwIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIFRPRE8KCjIwMDUtMTEtMzAgMDg6Mjk6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9leHQvTWFrZWZpbGUuYW06CgkgIHJlbW92aW5nIGV4dCwgd2FzIG5vdCB1c2VkIGFueW1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92aW5nIGV4dCwgd2FzIG5vdCB1c2VkIGFueW1vcmUKCjIwMDUtMTEtMjkgMjM6NTY6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBGaXggbWVtb3J5IGxlYWsgaW4gR3N0VHlwZUZpbmRGYWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9kaXNwb3NlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgIEZpeCBtZW1vcnkgbGVhayBpbiBHc3RUeXBlRmluZEZhY3RvcnkuCgoyMDA1LTExLTI5IDIwOjE2OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgoyMDA1LTExLTI5IDE5OjQ3OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIG1vdmUgcXVldWUgZnJvbSBjb3JlIHRvIHRoZSBlbGVtZW50cyBwbHVnaW4gw6cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgbW92ZSBxdWV1ZSBmcm9tIGNvcmUgdG8gdGhlIGVsZW1lbnRzIHBsdWdpbgoJICDDpwoKMjAwNS0xMS0yOSAxOTo0NDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBwYyBmaWxlcwoKMjAwNS0xMS0yOSAxOTozNzo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IGVuLUxBUkdFIHRoZSBwYWRkaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IGVuLUxBUkdFIHRoZSBwYWRkaW5nLgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbiAoR1NUX1BBRERJTkdfTEFSR0UpOiBOZXcgZGVmaW5lLCB0aGUgbnVtYmVyCgkgIG9mIHBvaW50ZXJzIGJ5IHdoaWNoIHRvIHBhZCB2ZXJ5IGV4dGVuc2libGUgYmFzZSBjbGFzc2VzIChsaWtlIHRoZQoJICBvbmVzIGluIGxpYnMvZ3N0L2Jhc2UpLgoKMjAwNS0xMS0yOSAxOTozNDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogbW92aW5nIGRvY3VtZW50YXRpb24gZnJvbSBjb3JlIHRvIGxpYgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBtb3ZpbmcgZG9jdW1lbnRhdGlvbiBmcm9tIGNvcmUgdG8gbGliCgoyMDA1LTExLTI5IDE5OjEyOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL1JFQURNRToKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBnc3QvbmV0L2dzdG5ldC5oOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwby9QT1RGSUxFUy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIENWUyBzdXJnZXJ5ICsgc3VwcG9ydCB0byBtb3ZlIGJhc2UsIGNoZWNrLCBhbmQgbmV0IG91dCBvZiBnc3QgYW5kIGludG8gbGlicy9nc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENWUyBzdXJnZXJ5ICsgc3VwcG9ydCB0byBtb3ZlIGJhc2UsIGNoZWNrLCBhbmQgbmV0IG91dCBvZiBnc3QKCSAgYW5kIGludG8gbGlicy9nc3QKCjIwMDUtMTEtMjkgMTg6NTc6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmggKHN0cnVjdCBfR3N0U3RydWN0dXJlKTogT25seSBvbmUgcG9pbnRlciBvZgoJICBwYWRkaW5nLgoJICAqIGdzdC9nc3RxdWVyeS5oIChzdHJ1Y3QgX0dzdFF1ZXJ5KTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nLgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6IFJlbW92ZSBhIGNvbW1lbnQgaW4gUGx1Z2luRmVhdHVyZS4KCSAgKiBnc3QvZ3N0cGx1Z2luLmggKHN0cnVjdCBfR3N0UGx1Z2luQ2xhc3MpOiBBZGQgc29tZSBwYWRkaW5nLgoJICAqIGdzdC9nc3RvYmplY3QuaDogKHN0cnVjdCBfR3N0T2JqZWN0KTogT25seSBvbmUgcG9pbnRlciBvZgoJICBwYWRkaW5nOyByZWR1Y2VzIG9iamVjdCBzaXplIGJ5IGFib3V0IDMwJS4gV2UgZG9uJ3QgZXhwZWN0CgkgIGFueXRoaW5nIGVsc2UgdG8gZ28gaW50byBnc3RvYmplY3QuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaCAoc3RydWN0IF9Hc3RNaW5pT2JqZWN0KQoJICAoc3RydWN0IF9Hc3RNaW5pT2JqZWN0Q2xhc3MpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmc7IHRoZQoJICBwYXlsb2FkIGlzIG9ubHkgYSBwb2ludGVyIGFuZCB0d28gaW50cyBhbnl3YXkuIEZvciB0aGUgY2xhc3MgdGhlcmUKCSAgYXJlIG9ubHkgdHdvIG1ldGhvZHMgYXMgd2VsbC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChzdHJ1Y3QgX0dzdEVsZW1lbnRDbGFzcyk6IFJlbW92ZWQKCSAgdGhlIHN0YXRlX2NoYW5nZWQgc2lnbmFsIGNhbGxiYWNrLCBpdCBpcyBub3QgdXNlZC4KCjIwMDUtMTEtMjkgMTg6NDk6MTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS8uZ2l0aWdub3JlOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvTWFrZWZpbGUuYW06CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9ib25vYm8tZ3N0bWVkaWFwbGF5LXVpLnhtbDoKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L2Jvbm9iby1nc3RtZWRpYXBsYXkuYzoKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L2dzdG1lZGlhcGxheS5vYWZpbmZvOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9NYWtlZmlsZS5hbToKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lci1mYWN0b3J5LmM6CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXIuZ29iOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVyLm9hZmluZm86CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXJ2aWRlby5nb2I6CgkgIHdoYWNrIGEgbW9sZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hhY2sgYSBtb2xlCgoyMDA1LTExLTI5IDE4OjM4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICB0aGVzZSBmaWxlcyB3ZXJlIG1vdmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGVzZSBmaWxlcyB3ZXJlIG1vdmVkCgoyMDA1LTExLTI5IDE4OjIxOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogZml4IGluY2x1ZGVzLCB0aG91Z2ggdGhleSBhcmUgYSBsaXR0bGUgZGlua3kKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBmaXggaW5jbHVkZXMsIHRob3VnaCB0aGV5IGFyZSBhIGxpdHRsZSBkaW5reQoKMjAwNS0xMS0yOSAxODoxNDozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogbG9vayBpbiB0aGUgcmlnaHQgcGxhY2UgZm9yIGVsZW1lbnRzLCBhIGxvdCBtb3JlIGNoYW5jZSBvZiBzdWNjZXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBsb29rIGluIHRoZSByaWdodCBwbGFjZSBmb3IgZWxlbWVudHMsIGEgbG90IG1vcmUgY2hhbmNlIG9mCgkgIHN1Y2Nlc3MKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBpbmRleGVycyBhbmQgZWxlbWVudHMgc3ViZGlycwoJICAqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkgIG1ha2UgaW5kZXhlcnMgY29uZGl0aW9uYWwKCjIwMDUtMTEtMjkgMTg6MDg6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgYWRkIG1pc3NpbmcgTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIE1ha2VmaWxlLmFtCgoyMDA1LTExLTI5IDE4OjA0OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBmaXggZG9jIGJ1aWxkIGZvciBzdHVmZiBtb3ZlZCBhcm91bmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2MgYnVpbGQgZm9yIHN0dWZmIG1vdmVkIGFyb3VuZAoKMjAwNS0xMS0yOSAxODowMzo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIGdzdC9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogZ3N0L2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIGdzdC9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICByZW1vdmUgbW92ZWQgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG1vdmVkIGRpcnMKCjIwMDUtMTEtMjkgMTg6MDI6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3JlZ2lzdHJpZXMvLmdpdGlnbm9yZToKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGVtcHR5IGRpcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBlbXB0eSBkaXJzCgoyMDA1LTExLTI5IDE4OjAwOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvIENWUyBzdXJnZXJ5IGFuZCByZWxhdGVkIGJ1aWxkIGZpeGVyeSB0byBtb3ZlIGVsZW1lbnRzIGFuZCBpbmRleGVycyBpbiBhIG5ldyBnc3RyZWFtZXIvcGx1Z2lucyBkaXJlY3RvcnksIG91dCBvZiB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIGRvIENWUyBzdXJnZXJ5IGFuZCByZWxhdGVkIGJ1aWxkIGZpeGVyeSB0byBtb3ZlIGVsZW1lbnRzCgkgIGFuZCBpbmRleGVycyBpbiBhIG5ldyBnc3RyZWFtZXIvcGx1Z2lucyBkaXJlY3RvcnksIG91dCBvZiB0aGUKCSAgZ3N0LyBkaXJlY3RvcnkKCjIwMDUtMTEtMjkgMTc6NDc6MDYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIFJlbmFtZSBnc3RuZXQtdGVtcG5hbWUgdG8gZ3N0bmV0LiBGaXhlcyAjMzIyMjU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOiBSZW5hbWUgZ3N0bmV0LXRlbXBuYW1lIHRvIGdzdG5ldC4gRml4ZXMKCSAgIzMyMjI1Ny4KCjIwMDUtMTEtMjkgMTc6MzU6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTI5IDE3OjMzOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICByZW1vdmUgc29tZSBtb3JlIGNvbXBsZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc29tZSBtb3JlIGNvbXBsZXRlCgoyMDA1LTExLTI5IDE3OjMyOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRvb2xzLzogcmVtb3ZpbmcgLWNvbXBwcmVwIGFuZCAtY29tcGxldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLjEuaW46CgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLmM6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLjEuaW46CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6CgkgIHJlbW92aW5nIC1jb21wcHJlcCBhbmQgLWNvbXBsZXRlCgoyMDA1LTExLTI5IDE3OjIzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RldmVudC4qOiBmaXggIzMyMDUyOSAtIGNsZWFuIHVwIG5ld19zZWdtZW50IEFQSSBhbmQgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZml4ICMzMjA1MjkgLSBjbGVhbiB1cCBuZXdfc2VnbWVudCBBUEkgYW5kIHN0cnVjdHVyZS4KCSAgTGV0J3MgaG9wZSBldmVyeW9uZSB3YXMgdXNpbmcgdGhlIG1ldGhvZHMsIGFuZCBub3QgdGhlIHN0cnVjdHVyZS4KCjIwMDUtMTEtMjkgMTc6MTM6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcm9wZXJseSBoYW5kbGUgbm9uIEdTVF9GT1JNQVRfVElNRSBzZWdtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUHJvcGVybHkgaGFuZGxlIG5vbiBHU1RfRk9STUFUX1RJTUUgc2VnbWVudAoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFByb3Blcmx5IGhhbmRsZSBub24gR1NUX0ZPUk1BVF9USU1FIHNlZ21lbnQKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIGlmIHRoZSBhY2N1bXVsYXRvciBpcyAwIGFuZCB0aGUgZm9ybWF0CgkgIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgoKMjAwNS0xMS0yOSAxNTo1MDo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X3F1ZXJ5X25ld19zZWVraW5nIGFuZCBnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyB0byB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9xdWVyeV9uZXdfc2Vla2luZyBhbmQgZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcgdG8gdGhlCgkgIGRvY3MuCgoyMDA1LTExLTI5IDE1OjE1OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRml4IGNvbmZsaWN0IG1hcmtlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IGNvbmZsaWN0IG1hcmtlcgoKMjAwNS0xMS0yOSAxNToxMjoyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFRyZWF0IGEgcGFkIGFsbG9jIHdpdGggbmV3IGNhcHMgdGhlIHNhbWUgYXMgaWYgd2Ugd2VyZSBub3QgbmVnb3RpYXRlZCwgaW4gb3JkZXIgdG8gYWxsb3cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIFRyZWF0IGEgcGFkIGFsbG9jIHdpdGggbmV3IGNhcHMgdGhlIHNhbWUgYXMgaWYgd2Ugd2VyZSBub3QKCSAgbmVnb3RpYXRlZCwgaW4gb3JkZXIgdG8gYWxsb3cgYSBjaGFuZ2luZyB1cHN0cmVhbSBvdXRwdXQKCSAgdG8gcHJvZHVjZSBhIG5ldyBmb3JtYXQgb2YgZGF0YS4KCjIwMDUtMTEtMjkgMTQ6NDc6MDcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFRoZSBldmVudCB2aXJ0dWFsIG1ldGhvZCBpcyBub3cgcHJvcGVybHkgaW1wbGVtZW50ZWQsIHdpdGggYSBkZWZhdWx0IGhhbmRsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudGZ1bmMpOgoJICBUaGUgZXZlbnQgdmlydHVhbCBtZXRob2QgaXMgbm93IHByb3Blcmx5IGltcGxlbWVudGVkLCB3aXRoIGEgZGVmYXVsdAoJICBoYW5kbGVyCgkgIFN1YiBjbGFzc2VzIHNob3VsZCBjYWxsIHRoZSBwYXJlbnRfY2xhc3MgZXZlbnQgbWV0aG9kLiBUaGV5IHNob3VsZAoJICByZXR1cm4gRkFMU0UgaWYgdGhleSBoYWQgYSBwcm9ibGVtIGhhbmRsaW5nIHRoZSBnaXZlbiBldmVudCwgb3IgZG9uJ3QKCSAgd2FudCBHc3RCYXNlVHJhbnNmb3JtIHRvIHNlbmQgdGhhdCBldmVuIGRvd25zdHJlYW0KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV9ldmVudCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIEFkZGVkIHRoZSBzaW5nbGUtc2VnbWVudCBib29sZWFuIHByb3BlcnR5LgoJICBJZiBzZXQgdG8gVFJVRSwgaXQgd2lsbCBvdXRwdXQgYSBzaW5nbGUgc2VnbWVudCBvZiBkYXRhLCBzdGFydGluZyBmcm9tCgkgIDAsIHdpbGwgZWF0IHVwIGFsbCBpbmNvbWluZyBuZXdzZWdtZW50LCBhbmQgbW9kaWZ5IHRoZSB0aW1lc3RhbXAgb2YgdGhlCgkgIGJ1ZmZlcnMgYWNjb3JkaW5nbHkKCjIwMDUtMTEtMjkgMTQ6NDM6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvMC4xMDoKCSAgZnVydGhlciByZXZpZXcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZ1cnRoZXIgcmV2aWV3CgoyMDA1LTExLTI5IDEzOjEwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IERvbid0IHJlZiBOVUxMIHRhcmdldCBwYWQgKCMzMjI3NTEpLiBJbXByb3ZlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KToKCSAgRG9uJ3QgcmVmIE5VTEwgdGFyZ2V0IHBhZCAoIzMyMjc1MSkuIEltcHJvdmUgZG9jcy4KCjIwMDUtMTEtMjkgMTE6MDc6NTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBEb24ndCBjcmFzaCBpZiB3ZSBmYWlsZWQgdG8gbG9hZCBhIGZlYXR1cmUgZnJvbSBhIHBsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgIERvbid0IGNyYXNoIGlmIHdlIGZhaWxlZCB0byBsb2FkIGEgZmVhdHVyZSBmcm9tIGEgcGx1Z2luLgoKMjAwNS0xMS0yOSAwMDo1MTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy8wLjEwOgoJICBhZGQgbXkgdG9kb3MgZm9yIDAuMTAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBteSB0b2RvcyBmb3IgMC4xMAoKMjAwNS0xMS0yOCAyMTo1MTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiB1c2UgbW9yZSBjaGVjayBBUEkgYW5kIGxlc3MgR0xpYiBBUEkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHNldHVwX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgdXNlIG1vcmUgY2hlY2sgQVBJIGFuZCBsZXNzIEdMaWIgQVBJCgoyMDA1LTExLTI4IDIxOjQ4OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIGNvc21ldGljIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvc21ldGljIGNoYW5nZXMKCjIwMDUtMTEtMjggMTk6NTg6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IGRvbid0IHJ1biBjaGVja3MgaWYgd2UgZG9uJ3QgaGF2ZSBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgZG9uJ3QgcnVuIGNoZWNrcyBpZiB3ZSBkb24ndCBoYXZlIGNoZWNrCgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgcmVtb3ZlIHRoZSByZWdpc3RyeSB3aGVuIHJ1bm5pbmcgbWFrZSB0b3J0dXJlCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIHNlY29uZCBtdWx0aXBseQoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBmaXggYSBjb21waWxlIHdhcm5pbmcgd2hlbiBkaXNhYmxpbmcgZGVidWcKCjIwMDUtMTEtMjggMTk6NDM6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGluZm8uaDogSGV5ISBMZXQncyBwcmludCB0aGUgcGFkIG5hbWUgaWYgdGhlIHBvaW50ZXIgIT0gTlVMTCBpbnN0ZWFkIG9mIHdoZW4gaXQgPT0gTlVMTCA6LSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgSGV5ISBMZXQncyBwcmludCB0aGUgcGFkIG5hbWUgaWYgdGhlIHBvaW50ZXIgIT0gTlVMTCBpbnN0ZWFkCgkgIG9mIHdoZW4gaXQgPT0gTlVMTCA6LSkKCjIwMDUtMTEtMjggMTg6NDQ6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogVXBkYXRlZCBjaGVjaywgYWRkIHNvbWUgc2NhbGluZyBhY2N1cmFjeSBjaGVja2luZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXBkYXRlZCBjaGVjaywgYWRkIHNvbWUgc2NhbGluZyBhY2N1cmFjeSBjaGVja2luZyBjb2RlLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZGl2MTI4XzY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGUpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEZpeCA2IHRpbWVzIGZhc3RlciBkaXZpc2lvbiBjb2RlLiBPcHRpbWl6ZSBmb3IgY29tbW9uCgkgIDEvMSBhbmQgbGVzcyBjb21tb24gWC8xIGNhc2VzLgoKMjAwNS0xMS0yOCAxNzo1OToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyB1cGRhdGVzCgoyMDA1LTExLTI4IDE2OjA1OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE1vcmUgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIE1vcmUgY2hlY2tzLgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwKCSAgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOgoJICBDbGVhbnVwcy4KCSAgUmVsZWFzZSBsb2NrIHdoZW4gdGhlIGNsb2NrIGNhbm5vdCBiZSBzbGF2ZWQuCgkgIENhdGNoIHRoZSBjYXNlIHdoZXJlIHRoZSByZWdyZXNzaW9uIHJldHVybmVkIGFuIGludmFsaWQgZGVub21pbmF0b3IuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kaXYxMjhfNjRfaXRlcmF0ZSksCgkgIChnc3RfdXRpbF9kaXYxMjhfNjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgQWRkIHByb3RlbnRpYWxseSBtb3JlIHBlcmZvcm1hbnQgbm9uLWl0ZXJhdGl2ZSAxMjgvNjQgZGl2aWRlIGZ1bmN0aW9uCgkgIHRoYXQgdW5mb3J0dW5hdGx5IGRvZXMgbm90IHdvcmsgeWV0LgoJICBTaG9ydGN1dCB0aGUgdHJpdmlhbCAwL1ggPSAwIGNhc2UuCgkgIFJlbW92ZSB0aGUgd2FybmluZ3Mgb24gb3ZlcmZsb3cuCgoyMDA1LTExLTI4IDE0OjE4OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogZXZlcnl0aGluZyBjYXVzaW5nIGEgcGx1Z2luIG5vdCB0byBsb2FkIHNob3VsZCBiZSBhdCBsZWFzdCBhIFdBUk5JTkcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKToKCSAgZXZlcnl0aGluZyBjYXVzaW5nIGEgcGx1Z2luIG5vdCB0byBsb2FkIHNob3VsZCBiZSBhdCBsZWFzdCBhIFdBUk5JTkcKCjIwMDUtMTEtMjggMTQ6MDI6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGxvZyBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2cgY2FwcwoKMjAwNS0xMS0yOCAxNDowMTo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MKCjIwMDUtMTEtMjggMTM6MjU6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHBhcmFtcy50eHQ6IHNvbWUgVE9ET3MgZm9yIHRoZSBuZXh0IGRldiBjeWNsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RwYXJhbXMudHh0OgoJICBzb21lIFRPRE9zIGZvciB0aGUgbmV4dCBkZXYgY3ljbGUKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgdXNlIGJhc2UgdHlwZSB0byBhc3NpZ24gYWNjY2Vzc29yIGZ1bmN0aW9ucwoKMjAwNS0xMS0yOCAxMTozMTozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogT29wcywgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHRvcF9zcmNkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIE9vcHMsIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiB0b3Bfc3JjZGlyCgoyMDA1LTExLTI4IDEwOjI5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBkaXNhYmxlIHBpcGVsaW5lIHRlc3QgdW50aWwgc29tZW9uZSBmaXhlcyB0aGUgdW5yZWxpYWJsZSBlcnJvcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgcGlwZWxpbmUgdGVzdCB1bnRpbCBzb21lb25lIGZpeGVzIHRoZSB1bnJlbGlhYmxlIGVycm9ycwoKMjAwNS0xMS0yOCAxMDowNzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay86IFVzZSBhIGNtZGxpbmUgZGVmaW5lIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGEgZmlsZSB0byB1c2UgZm9yIHRlc3RpbmcsIHRvIGF2b2lkIGJyZWFraW5nIGRpc3RjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIGEgY21kbGluZSBkZWZpbmUgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBmaWxlIHRvIHVzZSBmb3IKCSAgdGVzdGluZywgdG8gYXZvaWQgYnJlYWtpbmcgZGlzdGNoZWNrLgoKMjAwNS0xMS0yOCAxMDowNDo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChmaXhhdGVfdmFsdWUpOiBVc2UgYXJyYXkgZnVuY3Rpb25zIGZvciBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZml4YXRlX3ZhbHVlKTogVXNlIGFycmF5IGZ1bmN0aW9ucyBmb3IgYXJyYXlzLgoKMjAwNS0xMS0yOCAwOTo1NToxOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQ2xhcmlmeSB0aGUgb3V0cHV0IHN0cmluZ3MsIG1ha2VzIGl0IGVhc2llciB0byB0cmFuc2xhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBDbGFyaWZ5IHRoZSBvdXRwdXQgc3RyaW5ncywgbWFrZXMgaXQgZWFzaWVyIHRvIHRyYW5zbGF0ZS4KCSAgRml4ZXMgIzMyMjYyNgoKMjAwNS0xMS0yOCAwODoyMDo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IGRvbid0IHRyeSBhbmQgYnVpbGQgbmV0IGlmIHdlIGRvbid0IGV2ZW4gaGF2ZSA8c3lzL3NvY2tldC5oPgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIGRvbid0IHRyeSBhbmQgYnVpbGQgbmV0IGlmIHdlIGRvbid0IGV2ZW4gaGF2ZSA8c3lzL3NvY2tldC5oPgoKMjAwNS0xMS0yNyAyMjo1MDowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay86IEFkZCB0ZXN0cyBmb3IgZmRzcmMgc2Vla2FiaWxpdHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKGV2ZW50X2Z1bmMpLCAoc2V0dXBfZmRzcmMpLAoJICAoY2xlYW51cF9mZHNyYyksIChHU1RfU1RBUlRfVEVTVCksIChmZHNyY19zdWl0ZSksIChtYWluKToKCSAgQWRkIHRlc3RzIGZvciBmZHNyYyBzZWVrYWJpbGl0eQoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX3VwZGF0ZV9mZCksIChnc3RfZmRzcmNfc3RhcnQpLAoJICAoZ3N0X2Zkc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmRzcmNfaXNfc2Vla2FibGUpLAoJICAoZ3N0X2Zkc3JjX2dldF9zaXplKSwgKGdzdF9mZHNyY191cmlfc2V0X3VyaSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIGZkc3JjIHNob3VsZCBub3QgYmUgYSAnbGl2ZScgc291cmNlLgoJICBJbXBsZW1lbnQgc2Vla2luZyBvbiBzZWVrYWJsZSBmZCdzLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWVraW5nKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgSW1wbGVtZW50IFNFRUtJTkcgcXVlcnkgZnVuY3Rpb25zOgoJICAqX25ld19zZWVraW5nIGFuZCAqX3BhcnNlX3NlZWtpbmcKCjIwMDUtMTEtMjcgMjI6NDM6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IGRvbid0IGxvb3AgZm9yZXZlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIGRvbid0IGxvb3AgZm9yZXZlcgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jIGZpeGVzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X2VudW1fdmFsdWVfYXJyYXkpOgoJICBzdXBwb3J0IGNvbnRyb2xsaW5nIGVudW1zCgoyMDA1LTExLTI3IDE5OjUyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3ZhbHVlX3VuaW9uKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBJbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yIGdzdF92YWx1ZV91bmlvbigpLgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBDaGFuZ2UgcmV0dXJuIHZhbHVlIGZvciB1bmlvbiwgaW50ZXJzZWN0IGFuZCBzdWJ0cmFjdCBmdW5jdGlvbnMKCSAgZnJvbSBnaW50IHRvIGdib29sZWFuLgoKMjAwNS0xMS0yNyAxODoxMTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBVc2UgZ2ludCwgZ2RvdWJsZSBhbmQgZ2NoYXIgaW4gb3VyIEFQSSBpbnN0ZWFkIG9mIGludCwgZG91YmxlIGFuZCBjaGFyIChhbmQgbWFrZSB1c2FnZSBpbiBnc3R2YWx1ZS5jIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfYW55X2xpc3QpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9hbnlfbGlzdF9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2xpc3QpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2FycmF5KSwKCSAgKGdzdF92YWx1ZV9zZXRfaW50X3JhbmdlKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3NldF9kb3VibGVfcmFuZ2UpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uX3JhbmdlX2Z1bGwpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9jYXBzKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2Jvb2xlYW4pLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2RvdWJsZSksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2Zsb2F0KSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbG9hdCksCgkgIChnc3Rfc3RyaW5nX3dyYXApLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX3N0cmluZyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLAoJICAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfY3JlYXRlX25ld19yYW5nZSksIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X3JhbmdlX2ludCksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgZ2ludCwgZ2RvdWJsZSBhbmQgZ2NoYXIgaW4gb3VyIEFQSSBpbnN0ZWFkIG9mIGludCwgZG91YmxlIGFuZAoJICBjaGFyIChhbmQgbWFrZSB1c2FnZSBpbiBnc3R2YWx1ZS5jIG1vcmUgY29uc2lzdGVudCkuCgoyMDA1LTExLTI3IDE3OjA1OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYWRkIHVuZGVmaW5lZCBmb3IgY29yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHVuZGVmaW5lZCBmb3IgY29yZQoKMjAwNS0xMS0yNyAxNjo0Njo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggdXAgTWFrZWZpbGUuYW0gYW5kIHJlbW92ZSBHU1RfRU5BQkxFX05FVwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIE1ha2VmaWxlLmFtIGFuZCByZW1vdmUgR1NUX0VOQUJMRV9ORVcKCjIwMDUtMTEtMjcgMTU6MTU6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdXBkYXRlIExERkxBR1MgdXNlIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgdXBkYXRlIExERkxBR1MgdXNlIHNvbWUgbW9yZQoKMjAwNS0xMS0yNyAxNDoxOTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgRml4ZXMgIzMxMjU4OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4ZXMgIzMxMjU4OQoKMjAwNS0xMS0yNyAxNDowMzoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGFkZCBzb21lIGFkZGl0aW9uYWwgZmFpbF9pZidzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc29tZSBhZGRpdGlvbmFsIGZhaWxfaWYncwoKMjAwNS0xMS0yNiAxMToyODozMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IFRoaXMgc2hvdWxkbid0IGlzc3VlIGEgZ193YXJuaW5nIHNpbmNlIGl0IHJldHVybnMgTlVMTCBpZiBpdCBjb3VsZG4ndCBmaW5kIHRoZSBwbHVnaW4sIGFuZCBhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICBUaGlzIHNob3VsZG4ndCBpc3N1ZSBhIGdfd2FybmluZyBzaW5jZSBpdCByZXR1cm5zIE5VTEwgaWYgaXQKCSAgY291bGRuJ3QgZmluZCB0aGUgcGx1Z2luLCBhbmQgYWxsIGZ1bmN0aW9ucyB1c2luZyB0aGlzIGJlaGF2ZQoJICBwcm9wZXJseSBvbiBhIE5VTEwgcmV0dXJuLiBTd2l0Y2hpbmcgdG8gYSBHU1RfV0FSTklORy4KCjIwMDUtMTEtMjUgMTc6MDY6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBsZWFrIGNsb2NrIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBEb24ndCBsZWFrIGNsb2NrIG1lc3NhZ2VzLgoKMjAwNS0xMS0yNSAxMTozODozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBPcHRpbWlzYXRpb25zLCByZW1vdmUgdW5uZWVkZWQgdmFycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIE9wdGltaXNhdGlvbnMsIHJlbW92ZSB1bm5lZWRlZCB2YXJzLgoKMjAwNS0xMS0yNSAwMDowMjowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGRlZCBtb3JlIGNoZWNrcyBmb3IgdGhlIGhpZ2ggcHJlY2lzaW9uIHVpbnQ2NCBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGRlZCBtb3JlIGNoZWNrcyBmb3IgdGhlIGhpZ2ggcHJlY2lzaW9uIHVpbnQ2NCBjYXNlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGUpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEltcGxlbWVudCBoaWdoIHByZWNpc3Npb24gKGd1aW50NjQgKiBndWludDY0KSAvIGd1aW50NjQuCgoyMDA1LTExLTI0IDE5OjA2OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBGaXggd3JvbmcgcGVyY2VudGFnZSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgRml4IHdyb25nIHBlcmNlbnRhZ2UgcXVlcnkuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGUpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEFkZCBzb21lIG1vcmUgY29tbW9uIGNhc2VzIHRoYXQgY2FuIGJlIGhhbmRsZWQKCSAgZWZmaWNpZW50bHkgdG8gX3NjYWxlLgoKMjAwNS0xMS0yNCAxODo0NDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICByZW1vdmUgd3JvbmdseSBjb21taXRlZCBjb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHdyb25nbHkgY29tbWl0ZWQgY29tbWVudHMKCjIwMDUtMTEtMjQgMTg6NDA6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogZG9uJ3QgdXNlIGNoZWNrIGNhbGxzIGZyb20gdGhyZWFkczsgY2hlY2sgcHJvYmFibHkgaXNuJ3QgdGhyZWFkc2FmZSBhbmQgdXNpbmcgYSBsb2NrIHRvIG1hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6ICh0aHJlYWRfcmVmKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9taW5pX29iamVjdF9zdWl0ZSk6CgkgIGRvbid0IHVzZSBjaGVjayBjYWxscyBmcm9tIHRocmVhZHM7IGNoZWNrIHByb2JhYmx5IGlzbid0CgkgIHRocmVhZHNhZmUgYW5kIHVzaW5nIGEgbG9jayB0byBtYWtlIGl0IHRocmVhZHNhZmUgd291bGQKCSAgZGVmZWF0IHRoZSBwdXJwb3NlIG9mIHRoaXMgY2hlY2sKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgdXNlIEdTVF9ERUJVRyBzb21lIG1vcmUKCjIwMDUtMTEtMjQgMTg6MDM6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hhaW4gdHJpdmlhbCBjYXNlIHRvIF9zY2FsZV9pbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBDaGFpbiB0cml2aWFsIGNhc2UgdG8gX3NjYWxlX2ludC4KCjIwMDUtMTEtMjQgMTc6NDQ6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogQWRkZWQgdGVzdCBmb3Igc2NhbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciBzY2FsaW5nLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBTbWFsbCBkb2MgZml4LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEltcGxlbWVudGVkIGhpZ2ggcHJlY2lzaW9uIHNjYWxpbmcgY29kZS4KCjIwMDUtMTEtMjQgMTY6NTY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IGRvIG5vdCBjcmFzaCBvbiBwYWQ9PU5VTEwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgZG8gbm90IGNyYXNoIG9uIHBhZD09TlVMTAoKMjAwNS0xMS0yNCAxNjozMjoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgRml4IGRpc3RjaGVjayBpc3N1ZXMgZm9yIHRoZSBsaWJyYXJpZXMgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0CgkgICogY29tbW9uL2d0ay1kb2MubWFrOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgRml4IGRpc3RjaGVjayBpc3N1ZXMgZm9yIHRoZSBsaWJyYXJpZXMgZG9jcyBidWlsZAoJICBDbG9zZXMgIzMxOTU5OQoKMjAwNS0xMS0yNCAxNDozOTo1OSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOiBGaXggYnVnICMzMTUwMjc6IG1lbW9yeSBsZWFrIGluIGV4YW1wbGUgY29kZSBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIEZpeCBidWcgIzMxNTAyNzogbWVtb3J5IGxlYWsgaW4gZXhhbXBsZSBjb2RlIGluIGRvY3MuCgoyMDA1LTExLTI0IDEyOjQ0OjI1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVbmxvY2sgdGhlIFBSRVJPTExfTE9DSyBpbiBhIGZhaWx1cmUgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjQgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgVW5sb2NrIHRoZSBQUkVST0xMX0xPQ0sgaW4gYSBmYWlsdXJlIGNhc2UuCgoyMDA1LTExLTI0IDExOjE2OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjaGVjay9uZXQvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0yNCAwOTo0NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdGludGVyZmFjZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXVlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIERvYyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMjMgMjI6NTQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICByZW1vdmVkIGRpcmVjdG9yaWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIGRpcmVjdG9yaWVzCgoyMDA1LTExLTIzIDIyOjIxOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2luc3RhbnRpYXRlL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3QKCjIwMDUtMTEtMjMgMjE6MjQ6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYWRkIGEgdG9ydHVyZSB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHRvcnR1cmUgdGFyZ2V0CgoyMDA1LTExLTIzIDIxOjE4OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2luc3RhbnRpYXRlL2NyZWF0ZS5jOgoJKiB0ZXN0cy9uZWdvdGlhdGlvbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9uZWdvdGlhdGlvbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvbmVnb3RpYXRpb24vY2Fwc25lZ28xLmM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgoyMDA1LTExLTIzIDIxOjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9sYXQuYzoKCSogdGVzdHMvbXV4aW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzL211eGluZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvbXV4aW5nL2Nhc2UxLmM6CgkqIHRlc3RzL3Byb2Jlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9wcm9iZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL3Byb2Jlcy9wcm9iZXRlc3QuYzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCjIwMDUtMTEtMjMgMjE6MTM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90cmlnZ2VyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RyaWdnZXIvUkVBRE1FOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS90cmlnZ2VyL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6CgkqIHRlc3RzdWl0ZS90cmlnZ2VyL3RyaWdnZXIuYzoKCSAgcmVtb3ZlIHRyaWdnZXIgc3ViZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdHJpZ2dlciBzdWJkaXIKCjIwMDUtMTEtMjMgMjE6MTI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9mYWtlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvbmFtZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvZmFrZS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvbmFtZS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSAgcmVtb3ZlIHRlc3RzIHJlcGxhY2VkIGJ5IGNoZWNrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlc3RzIHJlcGxhY2VkIGJ5IGNoZWNrcwoKMjAwNS0xMS0yMyAyMDowNDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuOS42ID09PQoKMjAwNS0xMS0yMyAxOTo1NTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuOS42CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjYKCjIwMDUtMTEtMjMgMTg6MDc6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTExLTIzIDE3OjU5OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvdXBsb2FkLm1hazoKCSAgQ2hyaXN0aWFuLCBsZWFybiB0byBjb25maWd1cmUgeW91ciAuc3NoL2NvbmZpZyBmaWxlLCBhbmQgU1RPUCBjb21taXR0aW5nIHRvIHRoaXNmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaHJpc3RpYW4sIGxlYXJuIHRvIGNvbmZpZ3VyZSB5b3VyIC5zc2gvY29uZmlnIGZpbGUsIGFuZCBTVE9QIGNvbW1pdHRpbmcgdG8gdGhpc2ZpbGUKCjIwMDUtMTEtMjMgMTY6MTA6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICBEb2MgdXBkYXRlcy4KCjIwMDUtMTEtMjMgMTU6NDk6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgcmVtb3ZlIG1lbnRpb25zIG9mIHNpbmVzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBtZW50aW9ucyBvZiBzaW5lc3JjCgoyMDA1LTExLTIzIDE0OjUyOjMxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBVcGRhdGUgZm9yIG5ldyBBUEkgYW5kIEFQSSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBVcGRhdGUgZm9yIG5ldyBBUEkgYW5kIEFQSSBjaGFuZ2VzLgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXg6IEdTVF9UUllMT0NLIC0+IEdTVF9PQkpFQ1RfVFJZTE9DSwoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb2N1bWVudGF0aW9uIHR5cG8gZml4LgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBEb2N1bWVudGF0aW9uIGZpeGVzIGZvciBhcmd1bWVudHMuCgoyMDA1LTExLTIzIDEzOjIyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFQSSBDaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9mcmFjdGlvbiksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczoKCSAgQVBJIENoYW5nZXMuCgkgIFJlbmFtZSBnc3RfdXRpbF9jbG9ja190aW1lX3NjYWxlIHRvIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQKCSAgTWFrZSBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uIHRha2UgYSBudW1lcmF0b3IKCSAgYW5kIGRlbm9taW5hdG9yIGFyZ3VtZW50IGluc3RlYWQgb2YgYSBHVmFsdWUKCSAgYWRkIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9uIGhlbHBlciBmdW5jdGlvbi4KCjIwMDUtMTEtMjMgMTM6MTQ6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8uCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIFVzZSBwYXJlbnQgZmllbGRzIGZvciB0aW1lb3V0IGFuZCB3aW5kb3dfc2l6ZS4KCjIwMDUtMTEtMjMgMTI6Mzk6MzYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGRvY3MvdXBsb2FkLm1hazoKCSogZ3N0L3JlZ2lzdHJpZXMvLmdpdGlnbm9yZToKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkgIGFkZCBtaXNzaW5nIGN2c2lnbm9yZXMgc28gQ1ZTIHNodXRzIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyBjdnNpZ25vcmVzIHNvIENWUyBzaHV0cyB1cAoKMjAwNS0xMS0yMyAxMjozNjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBZGp1c3QgdG8gcmF0ZV9udW0vcmF0ZV9kZW5vbSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQWRqdXN0IHRvCgkgIHJhdGVfbnVtL3JhdGVfZGVub20gY2hhbmdlLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYwoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6IFRha2UgdGhlIFNMQVZFX0xPQ0sgbm90IHRoZQoJICBPQkpFQ1RfTE9DSy4gRG9uJ3QgY2FsbCBhZGRfb2JzZXJ2YXRpb24gd2l0aCB0aGUgbG9jay4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2luaXQpOiBJbml0aWFsaXplIHRoZSByYXRlIGFzIGEKCSAgZnJhY3Rpb24uCgkgIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKTogQWRqdXN0IHVzaW5nIHVpbnQ2NF9zY2FsZSBhbmQgdGhlCgkgIHJhdGUgZnJhY3Rpb24uCgkgIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uLCBnc3RfY2xvY2tfZ2V0X2NhbGlicmF0aW9uKTogQ2hhbmdlIHRvCgkgIGRlYWwgd2l0aCByYXRlIGFzIGEgZnJhY3Rpb24gd2hvc2UgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBhcmUKCSAgR3N0Q2xvY2tUaW1lIHZhbHVlcy4KCSAgKGdzdF9jbG9ja19zZXRfbWFzdGVyKTogT25seSB1c2UgdGhlIE9CSkVDVF9MT0NLIHRvIHNldCB0aGUKCSAgbWFzdGVyOyB0aGUgb3RoZXIgZmllbGRzIGFyZSBwcm90ZWN0ZWQgYnkgdGhlIFNMQVZFX0xPQ0suCgkgIChkb19saW5lYXJfcmVncmVzc2lvbik6IE5vdGUgdGhhdCB0aGlzIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlCgkgIFNMQVZFX0xPQ0suCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKTogVGFrZSB0aGUgU0xBVkVfTE9DSywgbm90IHRoZQoJICBPQkpFQ1RfTE9DSy4gQ2FsbCBzZXRfY2FsaWJyYXRpb24gaW5zdGVhZCBvZiB0b3VjaGluZyB0aGUKCSAgdmFyaWFibGVzIGRpcmVjdGx5LgoJICAoZ3N0X2Nsb2NrX3NldF9wcm9wZXJ0eSwgZ3N0X2Nsb2NrX2dldF9wcm9wZXJ0eSk6IFByb3RlY3QKCSAgbWFzdGVyL3NsYXZlIHBhcmFtZXRlcnMgd2l0aCB0aGUgU0xBVkVfTE9DSy4KCSAgKiBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBSZW1vdmUgcmF0ZSwgYWRkIHJhdGVfbnVtZXJhdG9yIGFuZAoJICByYXRlX2Rlbm9taW5hdG9yLiBQUjNDMVMzLiBBZGQgYSBuZXcgbG9jaywgdGhlIFNMQVZFX0xPQ0ssIGFuZAoJICBub3RlIHRoYXQgYWxsIG9mIHRoZSBpbnN0YW5jZSB2YXJpYWJsZXMgdGhhdCBhZGRfb2JzZXJ2YXRpb24gYW5kCgkgIHRoZSBzZXRfbWFzdGVyIGZ1bmN0aW9ucyB1c2UgYXJlIHByb3RlY3RlZCBieSB0aGF0IGxvY2sgYW5kIG5vdAoJICB0aGUgT0JKRUNUX0xPQ0suCgkgIChHU1RfQ0xPQ0tfU0xBVkVfTE9DSywgR1NUX0NMT0NLX1NMQVZFX1VOTE9DSyk6IE5ldyBtYWNyb3MuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOiBObyBsb25nZXIgcmVxdWlyZXMKCSAgdGhlIGNhbGxlciB0byB0YWtlIHRoZSBvYmplY3QgbG9jay4KCjIwMDUtMTEtMjMgMTE6MjI6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQWRkIGVycm9yIGZvciBjbG9jayBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBZGQgZXJyb3IgZm9yIGNsb2NrIHN0dWZmLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrKToKCSAgUG9zdCBjbG9jayBlcnJvciB3aGVuIGNsb2NrIGNhbm5vdCBiZSB1c2VkIGluIGEgcGlwZWxpbmUuCgoyMDA1LTExLTIzIDExOjA1OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtYWtlIHR3byBzeW1ib2xzIGZyb20gZ3N0aW5mbyBwcml2YXRlIGZvciB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtYWtlIHR3byBzeW1ib2xzIGZyb20gZ3N0aW5mbyBwcml2YXRlIGZvciB0aGUgZG9jcwoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIGZpeCBkb2MgdHlwb3MsIHVwZGF0ZSBkb2NzCgoyMDA1LTExLTIyIDE4OjI4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogTm8gbmVlZCB0byBzdG9yZSB0aGUgY2xvY2ssIHRoZSBwYXJlbnQgZWxlbWVudCBjbGFzcyBhbHJlYWR5IGhhcyBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBObyBuZWVkIHRvIHN0b3JlIHRoZSBjbG9jaywgdGhlIHBhcmVudCBlbGVtZW50IGNsYXNzIGFscmVhZHkKCSAgaGFzIGl0LgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIFVwZGF0ZXMgZm9yIGNsb2NrX3NldCByZXR1cm5pbmcgYSBnYm9vbGVhbgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChnc3RfY2xvY2tfaWRfd2FpdCksCgkgIChnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3RfY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfZmluYWxpemUpLAoJICAoZ3N0X2Nsb2NrX2dldF9pbnRlcm5hbF90aW1lKSwgKGdzdF9jbG9ja19nZXRfdGltZSksCgkgIChnc3RfY2xvY2tfc2xhdmVfY2FsbGJhY2spLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZ3N0X2Nsb2NrX2dldF9tYXN0ZXIpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLAoJICAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbiksIChnc3RfY2xvY2tfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jbG9ja19nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBJbXBsZW1lbnQgbWFzdGVyL3NsYXZlLiBXaGVuIHNldHRpbmcgYSBjbG9jayBhcyBhIHNsYXZlLCBhCgkgIHBlcmlvZGljIHRpbWVvdXQgaXMgc2NoZWR1bGVkIHRvIHNhbXBsZSBtYXN0ZXIgYW5kIHNsYXZlIHRpbWVzLgoJICBUaGVuIHRoZSBzbGF2ZSBjbG9jayBpcyByZWNhbGlicmF0ZWQgdG8gbWF0Y2ggb2Zmc2V0IGFuZCByYXRlCgkgIG9mIHRoZSBtYXN0ZXIgY2xvY2suCgkgIFVwZGF0ZSBsb2dnaW5nIGEgYml0LgoJICBBZGQgZmxhZyBzbyB0aGF0IGEgY2xvY2sgY2FuIHN0YXRlIHRoYXQgaXMgY2Fubm90IGJlIHNsYXZlZCB0bwoJICBhbm90aGVyIGNsb2NrLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfY2xvY2spOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFRoZSBzZXRfY2xvY2sgcmV0dXJucyBhIGdib29sZWFuIGZvciB3aGVuIGFuIGVsZW1lbnQgY2Fubm90CgkgIGRlYWwgd2l0aCB0aGUgc2VsZWN0ZWQgY2xvY2sgaW4gdGhlIHBpcGVsaW5lLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBzZWxlY3RlZCBjbG9jayBjYW5ub3QgYmUgc2V0IG9uCgkgIHRoZSBwaXBlbGluZS4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKToKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIFVzZSByZWdyZXNzaW9uIGNvZGUgaW4gR3N0Q2xvY2sgcGFyZW50LCByZW1vdmUgZHVwbGljYXRlZAoJICBmdW5jdGlvbmFsaXR5LgoKMjAwNS0xMS0yMiAxNjozMTowOCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCB1bmRlcnNjb3JlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIHVuZGVyc2NvcmVzCgoyMDA1LTExLTIyIDE1OjUyOjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGNvcnJlY3RseSBmaXggR0VudW1WYWx1ZXMgc28gdGhhdCBuaWNrIGlzIHRoZSBzaG9ydCBsb3dlcmNhc2UgZGFzaGVkIHRhZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3N0YXRlX2Vycm9yX2dldF90eXBlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2RhdGFfZ2V0X3R5cGUpLAoJICAoZ3N0X2Zha2Vfc3JjX3NpemV0eXBlX2dldF90eXBlKSwgKGdzdF9mYWtlX3NyY19maWxsdHlwZV9nZXRfdHlwZSksCgkgIChnc3RfZmFrZV9zcmNfaW5pdCksIChnc3RfZmFrZV9zcmNfcHJlcGFyZV9idWZmZXIpLAoJICAoZ3N0X2Zha2Vfc3JjX2FsbG9jX2J1ZmZlciksIChnc3RfZmFrZV9zcmNfZ2V0X3NpemUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChxdWV1ZV9sZWFreV9nZXRfdHlwZSk6CgkgIGNvcnJlY3RseSBmaXggR0VudW1WYWx1ZXMgc28gdGhhdCBuaWNrIGlzIHRoZSBzaG9ydCBsb3dlcmNhc2UKCSAgZGFzaGVkIHRhZwoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIGFsc28gc2hvdyB0aGUgbmljaywgc2luY2UgaXQncyB1c2VmdWwgdG8gdXNlIGZyb20gcGFyc2VfbGF1bmNoCgkgIHN5bnRheAoJICBGaXhlcyAjMzIyMTM5CgoyMDA1LTExLTIyIDE1OjE1OjUzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBBZGQgdXRpbCBtZXRob2QgZm9yIHNjYWxpbmcgYSBjbG9ja3RpbWUgYnkgYSBmcmFjdGlvbi4gVXNlZnVsIGltcGxlbWVudGF0aW9uIGlzIGxlZnQgYXMgYW4gZXhlcmNpc2UgZm9yIHRoZSByZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfY2xvY2t0aW1lX3NjYWxlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgdXRpbCBtZXRob2QgZm9yIHNjYWxpbmcgYSBjbG9ja3RpbWUgYnkgYSBmcmFjdGlvbi4gVXNlZnVsCgkgIGltcGxlbWVudGF0aW9uIGlzIGxlZnQgYXMgYW4gZXhlcmNpc2UgZm9yIHRoZSByZWFkZXIuCgoyMDA1LTExLTIyIDE0OjI5OjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJZiBuZWVkZWQsIGFsbG9jYXRlIHN0b3JhZ2UgaW4gdGhlIGRlc3RpbmF0aW9uIHZhbHVlIGR1cmluZyBjb2xsZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uX3JhbmdlKToKCSAgSWYgbmVlZGVkLCBhbGxvY2F0ZSBzdG9yYWdlIGluIHRoZSBkZXN0aW5hdGlvbiB2YWx1ZSBkdXJpbmcKCSAgY29sbGVjdGlvbi4KCjIwMDUtMTEtMjIgMTM6NTg6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBSZW1vdmVkIEdzdFVSSSAsIGNsb3NlcyBidWcgIzMyMTA2MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHVyaXR5cGUuYzoKCSAgKiBnc3QvZ3N0dXJpdHlwZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcpOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgUmVtb3ZlZCBHc3RVUkkgLCBjbG9zZXMgYnVnICMzMjEwNjEKCjIwMDUtMTEtMjIgMTM6MTQ6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgT29wcywgYnJva2UgYXV0b21hdGljIHN0cmluZyB0eXBlIHBhcnNpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgT29wcywgYnJva2UgYXV0b21hdGljIHN0cmluZyB0eXBlIHBhcnNpbmcuCgkgIEFkZCBhIHRlc3QgdG8gY2F0Y2ggaXQgaW4gZnV0dXJlLgoKMjAwNS0xMS0yMiAxMzowMjoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIGdzdC9nc3R0YWdzZXR0ZXIuYyAoZ3N0X3RhZ19zZXR0ZXJfZ2V0X3RhZ19tZXJnZV9tb2RlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmMgKGdzdF90YWdfc2V0dGVyX2dldF90YWdfbWVyZ2VfbW9kZSkKCSAgKGdzdF90YWdfc2V0dGVyX3NldF90YWdfbWVyZ2VfbW9kZSwgZ3N0X3RhZ19zZXR0ZXJfZ2V0X3RhZ19saXN0KToKCSAgQWN0dWFsbHkgcmVuYW1lIHRoZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbnMuIEdyci4KCjIwMDUtMTEtMjIgMTI6NTE6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczoKCSAgZml4IGJvcmtlZCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBib3JrZWQgY29tbWl0CgoyMDA1LTExLTIyIDEyOjM1OjQyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9jYXBzbGlzdC5oOiBDb21tZW50IHRlc3QgY2FzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIENvbW1lbnQgdGVzdCBjYXNlcwoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBUZXN0IGF1dG9tYXRpYyB2YWx1ZSB0eXBlIGRldGVjdGlvbiBpbiBnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBBZGQgZnJhY3Rpb24gYXMgYSB0eXBlIHdlIHRyeSBhbmQgZ3Vlc3MgYXV0b21hdGljYWxseSBpbgoJICBjYXBzL3N0cnVjdHVyZSBzdHJpbmdzLgoKMjAwNS0xMS0yMiAxMjozNTozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICB1cGRhdGUgdXBkYXRlLWZ1bmNzIGZvciB0YWdzZXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB1cGRhdGUtZnVuY3MgZm9yIHRhZ3NldHRlcgoKMjAwNS0xMS0yMiAxMjoyMDowNCArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLio6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKSAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ3MsIGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsdWVzKSAoZ3N0X3RhZ19zZXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGdteCBkZT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncykKCSAgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdzLCBnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbHVlcykKCSAgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsaXN0KQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWxpc3RfdmFsdWVzKTogUmVuYW1lZCBmcm9tIF9tZXJnZSwgX2FkZCwKCSAgX2FkZF92YWx1ZXMsIF9hZGRfdmFsaXN0LCBhbmQgX2FkZF92YWxpc3RfdmFsdWVzLiBTaW5jZSB0aGlzIGlzIGFuCgkgIGludGVyZmFjZSB0aGUgZnVuY3Rpb24gc3VmZml4ZXMgc2hvdWxkIGJlIG1vcmUgZXhwbGljaXQgc28KCSAgbGFuZ3VhZ2UgYmluZGluZyBkb24ndCBlbmQgdXAgd2l0aCBlbGVtZW50LmFkZF92YWxpc3QgLT4KCSAgZ3N0X3RhZ19zZXR0ZXJfYWRkX3ZhbGlzdCwgZm9yIGV4YW1wbGUuIEZpeGVzICMzMjIwNjkuCgoyMDA1LTExLTIyIDEyOjE1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdmFsZ3JpbmQgdGhlIHN0cmVzcyB0ZXN0LCB0YWtlcyB0b28gbG9uZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgdmFsZ3JpbmQgdGhlIHN0cmVzcyB0ZXN0LCB0YWtlcyB0b28gbG9uZwoKMjAwNS0xMS0yMiAxMTo1NjowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiBFeHRlbmQgY2FwcyBzdHJpbmcgdGVzdHMgdG8gY2hlY2sgdGhhdCBhIGNhcHMgdG8gc3RyaW5nIGNvbnZlcnNpb24gaXMgcmV2ZXJzaWJsZSBhbmQgcHJvZHVjZXMgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRXh0ZW5kIGNhcHMgc3RyaW5nIHRlc3RzIHRvIGNoZWNrIHRoYXQgYSBjYXBzIHRvIHN0cmluZwoJICBjb252ZXJzaW9uIGlzIHJldmVyc2libGUgYW5kIHByb2R1Y2VzIHRoZSBzYW1lIGNhcHMuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV92YWx1ZV9nZXRfZ2VuZXJpY190eXBlKToKCSAgT3V0cHV0ICJmcmFjdGlvbiIgYXMgdGhlIGdlbmVyaWMgdHlwZSBmcmFjdGlvbiByYW5nZSwgc28gY2FwcwoJICBzZXJpYWxpc2F0aW9uIGFuZCBkZXNlcmlhbGlzYXRpb24gd29ya3MuCgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICBTdXBwb3J0ICdNSU4nIGFuZCAnTUFYJyBmb3IgZGVzZXJpYWxpc2luZyBmcmFjdGlvbnMuCgoyMDA1LTExLTIyIDExOjUwOjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIE1pbm9yIGRvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNaW5vciBkb2MgZml4LgoKMjAwNS0xMS0yMiAxMTo0ODo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQsIGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KQoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50LCBnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKQoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplLCBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpOgoJICBSZW5hbWVkIGZyb20gKl9uZXdzZWdtZW50LCAqX2J1ZmZlcnNpemUsICpfbm90YXJnZXQuCgkgICogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOiBOZXcgc2NyaXB0LCBwZXJmb3JtcyB0aGUgY2hhbmdlcwoJICBsaXN0ZWQgYWJvdmUuCgoyMDA1LTExLTIyIDExOjI1OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBzdXJlIHRoZSBHc3RGbG93UmV0dXJuIGlzIHJldHVybmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgTWFrZSBzdXJlIHRoZSBHc3RGbG93UmV0dXJuIGlzIHJldHVybmVkLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBhZGQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwuCgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBTbWFsbCBzdHlsZSBjbGVhbnVwLgoKMjAwNS0xMS0yMiAxMDoyNDozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogQmxvY2sgdGhlIGZha2VzcmMgc3JjcGFkIHdoZW4gd2Ugc2VuZCBhbiBldmVudCwgdG8gYXZvaWQgY29udGVudGlvbiBvbiB0aGUgc3RyZWFtX2xvY2sgY2F1c2luZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgQmxvY2sgdGhlIGZha2VzcmMgc3JjcGFkIHdoZW4gd2Ugc2VuZCBhbiBldmVudCwgdG8gYXZvaWQKCSAgY29udGVudGlvbiBvbiB0aGUgc3RyZWFtX2xvY2sgY2F1c2luZyByYW5kb20gdGVzdCBmYWlsdXJlcy4KCjIwMDUtMTEtMjIgMDk6NDI6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IHN1YnRyYWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9mcmFjdGlvbl9zdWJ0cmFjdCk6CgkgIEZpeCBzdWJ0cmFjdGlvbi4KCjIwMDUtMTEtMjIgMDk6MzU6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuaDogaW5jbHVkZSAiZ3N0Y2hpbGRwcm94eS5oIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Lmg6CgkgIGluY2x1ZGUgImdzdGNoaWxkcHJveHkuaCIKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRAoKMjAwNS0xMS0yMSAyMzo1NDo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBJbXBsZW1lbnQgZnJhY3Rpb24gcmFuZ2VzIGFuZCBleHRlbmQgR3N0RnJhY3Rpb24gdG8gc3VwcG9ydCBhcml0aG1ldGljIHN1YnRyYWN0aW9uLCBhcyB3ZWxsIGFzIGRlc2VyaWFsaXphdGlvbiBmcm9tIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9yYW5nZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaW5pdF9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZnJlZV9mcmFjdGlvbl9yYW5nZSksIChnc3RfdmFsdWVfY29weV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfbGNvcHlfZnJhY3Rpb25fcmFuZ2UpLCAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uX3JhbmdlX2Z1bGwpLAoJICAoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9yYW5nZV9taW4pLAoJICAoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9yYW5nZV9tYXgpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2ZyYWN0aW9uX3JhbmdlX3N0cmluZyksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uKSwgKGdzdF92YWx1ZV9mcmFjdGlvbl9tdWx0aXBseSksCgkgIChnc3RfdmFsdWVfZnJhY3Rpb25fc3VidHJhY3QpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fc3RyaW5nX2ZyYWN0aW9uKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEltcGxlbWVudCBmcmFjdGlvbiByYW5nZXMgYW5kIGV4dGVuZCBHc3RGcmFjdGlvbiB0byBzdXBwb3J0CgkgIGFyaXRobWV0aWMgc3VidHJhY3Rpb24sIGFzIHdlbGwgYXMgZGVzZXJpYWxpemF0aW9uIGZyb20gaW50ZWdlcgoJICBzdHJpbmdzIHN1Y2ggYXMgIjEwMCIKCSAgQWRkIGEgdGVzdHN1aXRlIGFzIGZvciBpbnQgYW5kIGRvdWJsZSByYW5nZSBzZXQgb3BlcmF0aW9ucwoKMjAwNS0xMS0yMSAxOTo1ODoyMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0LzogQWRkIGdsaWItY29tcGF0LmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6IEFkZCBnbGliLWNvbXBhdC5oLgoKMjAwNS0xMS0yMSAxOToxMzoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGZvciAjMzIxNTk1CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBGaXggZm9yICMzMjE1OTUKCjIwMDUtMTEtMjEgMTk6MDA6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5oOiBBbmQgYWRkIGEgbmljZSBkZWZpbmUgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBBbmQgYWRkIGEgbmljZSBkZWZpbmUgdG9vLgoKMjAwNS0xMS0yMSAxODo1MzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50Lio6IE1ha2UgYmluZGluZyBmcmllbmRseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpLCAoZ3N0X3NlZ21lbnRfZ2V0X3R5cGUpLAoJICAoZ3N0X3NlZ21lbnRfbmV3KSwgKGdzdF9zZWdtZW50X2ZyZWUpLCAoZ3N0X3NlZ21lbnRfaW5pdCksCgkgIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLCAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgTWFrZSBiaW5kaW5nIGZyaWVuZGx5LgoKMjAwNS0xMS0yMSAxODo0MTozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0LzogU3ByaW5rbGUgTlVMTF9URVJNSU5BVEVEIHRvIHRhc3RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDogU3ByaW5rbGUgTlVMTF9URVJNSU5BVEVEIHRvIHRhc3RlLgoKMjAwNS0xMS0yMSAxODoyNzoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IE5ldyBlcnJvciBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVycm9yLmMgKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmggKEdTVF9DT1JFX0VSUk9SX01JU1NJTkdfUExVR0lOKTogTmV3IGVycm9yCgkgIGNhdGVnb3J5LgoKMjAwNS0xMS0yMSAxODoxNjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtIChnc3RfaGVhZGVycyk6IEFkZCBnbGliLWNvbXBhdC5oLiBub2luc3QgdGhlIC1wcml2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGdzdF9oZWFkZXJzKTogQWRkIGdsaWItY29tcGF0LmguCgkgIChub2luc3RfSEVBREVSUyk6IG5vaW5zdCB0aGUgLXByaXZhdGUuCgoyMDA1LTExLTIxIDE4OjEwOjEzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBSZW1vdmUgdW5pbXBsZW1lbnRlZCBkZWNsYXJhdGlvbnMgZm9yIHdoaWNoIHdlIGNhbiBzZWUgbm8gc2Vuc2libGUgdXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJlbW92ZSB1bmltcGxlbWVudGVkIGRlY2xhcmF0aW9ucyBmb3Igd2hpY2ggd2UgY2FuIHNlZSBubyBzZW5zaWJsZQoJICB1c2UuCgoyMDA1LTExLTIxIDE4OjAzOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ2xpYi1jb21wYXQuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5oOiBJbmNsdWRlIGdsaWItY29tcGF0LmguCgkgICogZ3N0L2dsaWItY29tcGF0Lmg6IEFkZCBHX0dOVUNfTlVMTF9URVJNSU5BVEVELgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiBJbmNsdWRlIHRoZSBwdWJsaWMgYW5kIHRoZSBwcml2YXRlIGhlYWRlci4KCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOiBDb3BpZWQgaGVyZSBmcm9tIGdsaWItY29tcGF0LmguCgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBzL2dsaWItY29tcGF0L2dsaWItY29tcGF0LXByaXZhdGUvLgoKMjAwNS0xMS0yMSAxNzoyMToxNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50LmMgKGNyZWF0ZV9jdXN0b21fZXZlbnRzKTogQ2hlY2sgdGhhdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYyAoY3JlYXRlX2N1c3RvbV9ldmVudHMpOiBDaGVjayB0aGF0CgkgIEZMVVNIX1NUT1AgaXMgc2VyaWFsaXplZC4KCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jIChldmVudF9mdW5jKToKCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmMgKGV2ZW50X2Z1bmMpOiBObyBzdHJlYW0gbG9jaywgdGhlIGNvcmUKCSAgdGFrZXMgaXQuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOiBObyBtb3JlCgkgIHN0cmVhbSBsb2NrIHRha2luZywgeWF5LgoJICAqIGdzdC9nc3RldmVudC5oIChHU1RfRVZFTlRfRkxVU0hfU1RPUCk6IE1hcmtlZCBhcyBzZXJpYWxpemVkIHRvCgkgIGVuc3VyZSB0aGF0IGNvcmUgdGFrZXMgdGhlIHN0cmVhbSBsb2NrLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspOiBVcGRhdGUgZm9yIHN0cmVhbQoJICBsb2NrIG5hbWUgY2hhbmdlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOiBObyBuZWVkIHRvIHRha2UKCSAgdGhlIHN0cmVhbSBsb2NrIGZvciBFT1MsIE5FV1NFR01FTlQsIG9yIEZMVVNIX1NUT1AsIHRoZSBjb3JlIGRvZXMKCSAgaXQgYWxyZWFkeS4gRm9yIHRoZSBmbHVzaCBzdGFydCB3ZSBkbyB0YWtlIGl0IHRob3VnaCBzbyB3ZSBnZXQgdGhlCgkgIHJpZ2h0IHByZXJvbGwgc3RhdGUgY2hhbmdlIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RxdWV1ZS5jIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKTogTm8gbmVlZCB0byB0YWtlCgkgIHRoZSBzdHJlYW0gbG9jayBoZXJlLCB0aGUgY29yZSBkb2VzIGl0IGZvciB1cy4KCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9QQURfR0VUX1NUUkVBTV9MT0NLKTogUmVuYW1lZCBmcm9tCgkgIEdTVF9TVFJFQU1fR0VUX0xPQ0suCgkgIChHU1RfUEFEX1NUUkVBTV9MT0NLLCBHU1RfUEFEX1NUUkVBTV9UUllMT0NLKQoJICAoR1NUX1BBRF9TVFJFQU1fVU5MT0NLLCBHU1RfUEFEX1NUUkVBTV9VTkxPQ0tfRlVMTCkKCSAgKEdTVF9QQURfU1RSRUFNX0xPQ0tfRlVMTCk6IFJlbmFtZWQgZnJvbSBHU1RfU1RSRUFNXyouCgkgIChHU1RfUEFEX0dFVF9QUkVST0xMX0xPQ0spOiBSZW5hbWVkIGZyb20gR1NUX1BSRVJPTExfR0VUX0xPQ0suCgkgIChHU1RfUEFEX1BSRVJPTExfTE9DSywgR1NUX1BBRF9QUkVST0xMX1RSWUxPQ0spCgkgIChHU1RfUEFEX1BSRVJPTExfVU5MT0NLKTogUmVuYW1lZCBmcm9tIEdTVF9QUkVST0xMXyouCgkgICogZ3N0L2dzdHBhZC5jOiBVcGRhdGUgZm9yIHN0cmVhbSBsb2NrIG5hbWUgY2hhbmdlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVwZGF0ZSBmb3IgcHJlcm9sbCBsb2NrIG5hbWUgY2hhbmdlLgoKMjAwNS0xMS0yMSAxNzoxMjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENvbnZlcnQgQ2xvY2sgZmxhZ3MgdG8gb2JqZWN0IGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwKCSAgKGdzdF9jbG9ja19nZXRfbWFzdGVyKToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6CgkgIENvbnZlcnQgQ2xvY2sgZmxhZ3MgdG8gb2JqZWN0IGZsYWdzLgoJICBBZGRlZCBtZXRob2RzIHRvIG1hbmFnZSBtYXN0ZXIvc2xhdmUgY2xvY2tzLgoKMjAwNS0xMS0yMSAxNzowOTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzLCByZXBsYWNlIGNvZGUgaW4gcGx1Z2lucyB3aXRoIHNlZ21lbnQgaGVscGVyIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NvbmZpZ3VyZV9zZWdtZW50KSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMsIHJlcGxhY2UgY29kZSBpbiBwbHVnaW5zIHdpdGggc2VnbWVudAoJICBoZWxwZXIgZnVuY3Rpb25zLgoKMjAwNS0xMS0yMSAxNjo0NjowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogRG9uJ3QgaWdub3JlIHNzY2FuZiByZXN1bHRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX3VyaV9zZXRfdXJpKToKCSAgRG9uJ3QgaWdub3JlIHNzY2FuZiByZXN1bHRzCgoyMDA1LTExLTIxIDE2OjQxOjE2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmggKEdTVF9JU19QQURfRkFTVCk6IFJlbW92ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX0lTX1BBRF9GQVNUKTogUmVtb3ZlZC4KCjIwMDUtMTEtMjEgMTY6MzQ6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgICouKjogUmFuIHNjcmlwdHMvdXBkYXRlLW1hY3Jvcy4gT2ggeWVzLiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfR0VUX0xPQ0ssIEdTVF9PQkpFQ1RfTE9DSykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogKi5oOgoJICAqICouYzogUmFuIHNjcmlwdHMvdXBkYXRlLW1hY3Jvcy4gT2ggeWVzLgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9HRVRfTE9DSywgR1NUX09CSkVDVF9MT0NLKQoJICAoR1NUX09CSkVDVF9UUllMT0NLLCBHU1RfT0JKRUNUX1VOTE9DSyk6IFJlbmFtZWQgZnJvbQoJICBHU1RfR0VUX0xPQ0ssIGV0Yy4KCSAgKiBzY3JpcHRzL3VwZGF0ZS1tYWNyb3M6IE5ldyBzY3JpcHQuIFJ1biBpdCBvbiB5b3VyIGZpbGVzIHRvCgkgIGNoYW5nZSBHU1RfTE9DSyB0byBHU1RfT0JKRUNUX0xPQ0ssIGFuZCB0aGUgc2FtZSBmb3IgVU5MT0NLIGFzCgkgIHdlbGwuCgoyMDA1LTExLTIxIDE1OjQ3OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgZml4ZXMsIGFkZCBuZXcgYXBpIHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgbW9yZSBkb2NzIGZpeGVzLCBhZGQgbmV3IGFwaSB0byB0aGUgZG9jcwoKMjAwNS0xMS0yMSAxNTowMTo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX3JlbW92ZV9mdW5jKTogV2ltIGNsYWltcyBJIGNhbiByZW1vdmUgdGhpcyBzdGF0ZV9icm9hZGNhc3QgY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX3JlbW92ZV9mdW5jKTogV2ltIGNsYWltcyBJIGNhbiByZW1vdmUgdGhpcwoJICBzdGF0ZV9icm9hZGNhc3QgY2FsbC4KCjIwMDUtMTEtMjEgMTQ6NTM6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmMgKGdzdF9zZWdtZW50X2luaXQpOiBJbml0aWFsaXplIGFic19yYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jIChnc3Rfc2VnbWVudF9pbml0KTogSW5pdGlhbGl6ZSBhYnNfcmF0ZS4KCjIwMDUtMTEtMjEgMTQ6NTI6NTYgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCB3cm9uZyBmdW5jdGlvbiBjYWxscyBmb3IgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9hcnJheSk6IEZpeCB3cm9uZwoJICBmdW5jdGlvbiBjYWxscyBmb3IgYXJyYXlzLgoKMjAwNS0xMS0yMSAxNDo1MDoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDogd2lsZCBpZGVhLCBjYW4gdGhpcyBiZSBkb25lPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJICB3aWxkIGlkZWEsIGNhbiB0aGlzIGJlIGRvbmU/CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdGZpbHRlci5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2MgZml4ZXMgYW5kIGFkZGl0aW9ucwoKMjAwNS0xMS0yMSAxNDo0MToyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKEdTVF9MSVZFX0JST0FEQ0FTVCwgR1NUX0xJVkVfU0lHTkFMKSAoR1NUX0xJVkVfVElNRURfV0FJVCwgR1NUX0xJVkVfV0FJVCwgR1NUX0xJVkVfR0VUX0NPTkQpICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChHU1RfTElWRV9CUk9BRENBU1QsIEdTVF9MSVZFX1NJR05BTCkKCSAgKEdTVF9MSVZFX1RJTUVEX1dBSVQsIEdTVF9MSVZFX1dBSVQsIEdTVF9MSVZFX0dFVF9DT05EKQoJICAoR1NUX0xJVkVfVU5MT0NLLCBHU1RfTElWRV9UUllMT0NLLCBHU1RfTElWRV9MT0NLKQoJICAoR1NUX0xJVkVfR0VUX0xPQ0spOiBNb3ZlZCBoZXJlIGZyb20gZ3N0YmFzZXNyYy5oLiBUaGV5IGFyZQoJICBwcml2YXRlIHRvIHRoZSBiYXNlc3JjIGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMS0yMSAxNDozNDowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NlbmRfZXZlbnQpOiBEb2MgbW9yZS4gVGFrZSBzdHJlYW0gbG9jayBvbiBiZWhhbGYgb2YgZXZlbnQgZnVuY3Rpb24gaWYgbmVjZXNzYXJ5LiBJdCBzaG91bGQgbm8gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZW5kX2V2ZW50KTogRG9jIG1vcmUuIFRha2Ugc3RyZWFtIGxvY2sgb24KCSAgYmVoYWxmIG9mIGV2ZW50IGZ1bmN0aW9uIGlmIG5lY2Vzc2FyeS4gSXQgc2hvdWxkIG5vIGxvbmdlciBiZQoJICBuZWNlc3NhcnkgdG8gdGFrZSB0aGUgc3RyZWFtIGxvY2sgaW4gcGFkJ3MgZXZlbnQgZnVuY3Rpb25zLiBGaXhlcwoJICAjMzIwMjk5LgoKMjAwNS0xMS0yMSAxNDoyODoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBSZW5hbWUgZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV8qIHRvIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyogKCMzMjIwMjcpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9pbnQpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9kb3VibGUpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfYm9vbGVhbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL2dzdHJlYW1lci5kZWY6CgkgIFJlbmFtZSBnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlXyogdG8gZ3N0X3N0cnVjdHVyZV9maXhhdGVfKgoJICAoIzMyMjAyNykKCjIwMDUtMTEtMjEgMTQ6MjU6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLio6IFBvcnQgZmQ6Ly8gVVJJIGhhbmRsZXIgZnJvbSAwLjggdG8gZmRzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChfZG9faW5pdCksIChnc3RfZmRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfZGlzcG9zZSksIChnc3RfZmRzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZHNyY191cmlfZ2V0X3R5cGUpLCAoZ3N0X2Zkc3JjX3VyaV9nZXRfcHJvdG9jb2xzKSwKCSAgKGdzdF9mZHNyY191cmlfZ2V0X3VyaSksIChnc3RfZmRzcmNfdXJpX3NldF91cmkpLAoJICAoZ3N0X2Zkc3JjX3VyaV9oYW5kbGVyX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBQb3J0IGZkOi8vIFVSSSBoYW5kbGVyIGZyb20gMC44IHRvIGZkc3JjCgoyMDA1LTExLTIxIDEzOjI2OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMgYW5kIG1vcmUgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0c2VnbWVudHNfc3VpdGUpLAoJICAobWFpbik6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzIGFuZCBtb3JlIGNoZWNrcy4KCjIwMDUtMTEtMjEgMTM6MjY6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogRHJvcCBsZWFkaW5nICclJyBmcm9tIEdTVF9GT1VSQ0NfRk9STUFULCB0aHVzIG1ha2luZyBpdCBjb25zaXN0ZW50IHdpdGggb3VyIG90aGVyIGZvcm1hdCBkZWZpbmVzICgjMzIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX2ZvdXJjY19zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mb3VyY2MpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBEcm9wIGxlYWRpbmcgJyUnIGZyb20gR1NUX0ZPVVJDQ19GT1JNQVQsIHRodXMgbWFraW5nIGl0CgkgIGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgZm9ybWF0IGRlZmluZXMgKCMzMjAzMjQpLgoKMjAwNS0xMS0yMSAxMzoxMjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBSZXZlcnQgcHJldmlvdXMgY29tbWl0LiBWYWx1ZSBsaXN0cyBhcmUgYnkgZGVmaW5pdGlvbiBub3QgZml4ZWQsIGFzIHRoZXkgYXJlIGEgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdC4gVmFsdWUgbGlzdHMgYXJlIGJ5IGRlZmluaXRpb24KCSAgbm90IGZpeGVkLCBhcyB0aGV5IGFyZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLgoKMjAwNS0xMS0yMSAxMzowMzozNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKEdTVF9FVkVOVF9GSUxMRVIpOiBSZW1vdmVkLiBDYW4gYmUgYWRkZWQgYmFjayBkdXJpbmcgdGhlIHN0YWJsZSBzZXJpZXMgaWYgd2UgbmVlZCBpdC4gRml4ZXMgIzMxOTE3OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKEdTVF9FVkVOVF9GSUxMRVIpOiBSZW1vdmVkLiBDYW4gYmUgYWRkZWQgYmFjawoJICBkdXJpbmcgdGhlIHN0YWJsZSBzZXJpZXMgaWYgd2UgbmVlZCBpdC4gRml4ZXMgIzMxOTE3OC4KCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoZ3N0X2V2ZW50X25ld19maWxsZXIpOiBSZW1vdmVkLgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiBVcGRhdGUgY29tbWVudCBhYm91dCBmaWxsZXIgZXZlbnRzLgoKMjAwNS0xMS0yMSAxMjo0Mjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBTaG91bGQgaGFuZGxlIGJvdGggdmFsdWUgYXJyYXlzIGFuZCB2YWx1ZSBsaXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBTaG91bGQgaGFuZGxlIGJvdGggdmFsdWUgYXJyYXlzIGFuZCB2YWx1ZSBsaXN0cy4KCjIwMDUtMTEtMjEgMTI6Mjc6MDEgKzAwMDAgIEFsZXNzYW5kcm8gRGVzc2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfaXNfZml4ZWQpOiBVc2UgZ3N0X3ZhbHVlX2FycmF5IGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXJyYXlzLiBGaXhlcyAjMzIxOTYyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVzc2luYSA8YWxlc3NhbmRybyBubnZhIG9yZz4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKTogVXNlIGdzdF92YWx1ZV9hcnJheQoJICBmdW5jdGlvbnMgdG8gYWNjZXNzIGFycmF5cy4gRml4ZXMgIzMyMTk2Mi4KCjIwMDUtMTEtMjEgMTE6MjY6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IGdzdF9jb2xsZWN0cGFkc19nZXRfdHlwZSA9PiBnc3RfY29sbGVjdF9wYWRzX2dldF90eXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGdzdF9jb2xsZWN0cGFkc19nZXRfdHlwZSA9PiBnc3RfY29sbGVjdF9wYWRzX2dldF90eXBlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmVtb3ZlIHVudXNlZCBTSUdOQUxfSEFORE9GRiBlbnVtLgoKMjAwNS0xMS0yMSAxMTowNjo0MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKEdzdEV2ZW50VHlwZUZsYWdzKTogTmV3IGRhdGEgdHlwZSwgdGhlIGZsYWdzIG9mIHRoZSBldmVudCB0eXBlICh1cHN0cmVhbSwgZG93bnN0cmVhbSwgc2VyaWFsaXplZCkuIFJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChHc3RFdmVudFR5cGVGbGFncyk6IE5ldyBkYXRhIHR5cGUsIHRoZSBmbGFncyBvZgoJICB0aGUgZXZlbnQgdHlwZSAodXBzdHJlYW0sIGRvd25zdHJlYW0sIHNlcmlhbGl6ZWQpLiBSZW5hbWVkCgkgIEdTVF9FVkRJUl8qIGFuZCBHU1RfRVZTRVIgdG8gR1NUX0VWRU5UX1RZUEVfKi4KCSAgKEdzdEV2ZW50VHlwZSk6IFVzZSBHc3RFdmVudFR5cGVGbGFncy4gUmVuYW1lIENVU1RPTV9VUCB0bwoJICBDVVNUT01fVVBTVFJFQU0sIENVU1RPTV9EUyB0byBDVVNUT01fRE9XTlNUUkVBTSwgZXRjLgoJICAqIGdzdC9nc3RldmVudC5jOiBVcGRhdGUgZm9yIG5ldyBDVVNUT00gZXZlbnQgbmFtZXMuCgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBjaGVjayBmb3IgbmV3IENVU1RPTSBldmVudCBuYW1lcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoZ3N0X2V2ZW50X3R5cGVfZ2V0X2ZsYWdzKTogTmV3IGZ1bmN0aW9uLiBGaXhlcwoJICBidWcgIzMxOTM5Mi4KCjIwMDUtMTEtMjEgMTE6MDA6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSZW5hbWUgZ3N0X2NvbGxlY3BhZHNfZm9vKCkgPT4gZ3N0X2NvbGxlY3RfcGFkc19mb28oKS4gRG9jdW1lbnQgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMgYXMgdW5pbXBsZW1lbnRlZCAoIzMyMDc2NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2xpYmdzdGJhc2UuZGVmOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RfcGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RfcGFkc19uZXcpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZnVuY3Rpb24pLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX2lzX2FjdGl2ZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3QpLCAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0X3JhbmdlKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcGVlayksIChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSksIChnc3RfY29sbGVjdF9wYWRzX3JlYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19mbHVzaCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIFJlbmFtZSBnc3RfY29sbGVjcGFkc19mb28oKSA9PiBnc3RfY29sbGVjdF9wYWRzX2ZvbygpLiBEb2N1bWVudAoJICB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucyBhcyB1bmltcGxlbWVudGVkICgjMzIwNzY2KS4KCjIwMDUtMTEtMjEgMTA6NDE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBJbXByb3ZlIGRvY3MgZm9yIERVUkFUSU9OIG1lc3NhZ2UgKHVzYWdlIG9mIGR1cmF0aW9uIHBhcmFtZXRlcikgKCMzMjAxMTMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEltcHJvdmUgZG9jcyBmb3IgRFVSQVRJT04gbWVzc2FnZSAodXNhZ2Ugb2YgZHVyYXRpb24gcGFyYW1ldGVyKQoJICAoIzMyMDExMykKCjIwMDUtMTEtMjEgMTA6MDQ6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA1LTExLTIxIDA5OjQ0OjQ2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIGxhdGVzdCAucGMgZmlsZSB0byBzcGVjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IC5wYyBmaWxlIHRvIHNwZWMKCjIwMDUtMTEtMjAgMTk6MTE6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBzZWdtZW50IGhlbHBlciBzdHJ1Y3R1cmUgYW5kIG1ldGhvZHMuIE5vdCBmdWxseSBpbXBsZW1lbnRlZCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RldmVudHNfc3VpdGUpLAoJICAobWFpbik6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwKCSAgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIEFkZGVkIHNlZ21lbnQgaGVscGVyIHN0cnVjdHVyZSBhbmQgbWV0aG9kcy4gTm90IGZ1bGx5IGltcGxlbWVudGVkCgkgIHlldC4KCSAgQWRkZWQgc2VnbWVudCBjaGVjay4KCjIwMDUtMTEtMjAgMTc6MTI6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZCBhIGRlc2VyaWFsaXNhdGlvbiB0ZXN0IGZvciBmcmFjdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgYSBkZXNlcmlhbGlzYXRpb24gdGVzdCBmb3IgZnJhY3Rpb25zCgkgICogZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKSwKCSAgKG1ha2VfcGlwZWxpbmUpLCAobWFpbik6CgkgIEZpeCB1cCBtZXRhZGF0YSByZWFkaW5nIHNhbXBsZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgRGVidWcgZm9ybWF0IGZpeAoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIERvbid0IHRyeSBhbmQgZml4YXRlIGVtcHR5IGNhcHMKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgV3JhcCBpbiBHX0JFR0lOX0RFQ0xTL0dfRU5EX0RFQ0xTCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uKSwgKGdzdF92YWx1ZV9nZXRfZnJhY3Rpb25fZGVub21pbmF0b3IpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9zdHJpbmdfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb24pOgoJICBBZGQgc29tZSBleHRyYSBndWFyZHMgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3QgZW5kIHVwCgkgIHdpdGggYW4gaW52YWxpZCBkZW5vbWluYXRvciBvZiAwIGluIGEgZ3N0ZnJhY3Rpb24gYW5kCgkgIHRoYXQgZnJhY3Rpb25zIGFsd2F5cyBnZXQgcmVkdWNlZC4KCjIwMDUtMTEtMjAgMTQ6NTY6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggY2hhbmdlbG9nIGluIGxhc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGNoYW5nZWxvZyBpbiBsYXN0IGNvbW1pdAoKMjAwNS0xMS0yMCAxNDo1MDo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb2MgZml4ZXMuCgoyMDA1LTExLTIwIDEzOjI4OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSBhIHByb3BlciBlbnVtIG9mIHRoZSBmbGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIE1ha2UgYSBwcm9wZXIgZW51bSBvZiB0aGUgZmxhZy4KCjIwMDUtMTEtMTkgMTg6NTc6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgdHlwZSB0byBxdWFyayBhbmQgdHlwZSB0byBzdHJpbmcgY29udmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoX2dzdF9mb3JtYXRfaW5pdGlhbGl6ZSksIChnc3RfZm9ybWF0X2dldF9uYW1lKSwKCSAgKGdzdF9mb3JtYXRfdG9fcXVhcmspLCAoZ3N0X2Zvcm1hdF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKSwKCSAgKGdzdF9xdWVyeV90eXBlX2dldF9uYW1lKSwgKGdzdF9xdWVyeV90eXBlX3RvX3F1YXJrKSwKCSAgKGdzdF9xdWVyeV90eXBlX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIHR5cGUgdG8gcXVhcmsgYW5kIHR5cGUgdG8gc3RyaW5nIGNvbnZlcnNpb25zLgoKMjAwNS0xMS0xOSAxODozMjowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZMQUdfT1JJR0lOQUwpOiBSZW1vdmVkLiBGaXhlcyAjMzIwMDk3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRkxBR19PUklHSU5BTCk6IFJlbW92ZWQuIEZpeGVzCgkgICMzMjAwOTcuCgoyMDA1LTExLTE5IDE4OjI4OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSBtZXNzYWdlIGhhbmRsaW5nIG92ZXJyaWRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBNYWtlIG1lc3NhZ2UgaGFuZGxpbmcgb3ZlcnJpZGFibGUuCgoyMDA1LTExLTE5IDE4OjI2OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmggKEdTVF9QQURfSVNfVVNBQkxFKTogUmVtb3ZlZC4gRml4ZXMgIzMyMTIzNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0lTX1VTQUJMRSk6IFJlbW92ZWQuIEZpeGVzICMzMjEyMzUuCgoyMDA1LTExLTE5IDE4OjE3OjI5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suKjogQ2hhbmdlIHJlc29sdXRpb24gdG8gYmUgYSBHc3RDbG9ja1RpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RjbG9jay5jIChHc3RDbG9jaywgR3N0Q2xvY2tDbGFzcyk6IENoYW5nZSByZXNvbHV0aW9uIHRvCgkgIGJlIGEgR3N0Q2xvY2tUaW1lLgoJICAoZ3N0X2Nsb2NrX3NldF9yZXNvbHV0aW9uLCBnc3RfY2xvY2tfZ2V0X3Jlc29sdXRpb24pOiBSZXNvbHV0aW9uCgkgIGlzIGEgR3N0Q2xvY2tUaW1lLiBGaXhlcyAjMzIxNzEwLgoKMjAwNS0xMS0xOSAxODowNjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogUmVtb3ZlIG9mZnNldCBwcm9wZXJ0eS4gQWRkIGludGVybmFsX2NhbGlicmF0aW9uIGFuZCBleHRlcm5hbF9jYWxpYnJhdGlvbi4gRml4IHBhZGRpbmcuIFBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IFJlbW92ZSBvZmZzZXQgcHJvcGVydHkuIEFkZAoJICBpbnRlcm5hbF9jYWxpYnJhdGlvbiBhbmQgZXh0ZXJuYWxfY2FsaWJyYXRpb24uIEZpeCBwYWRkaW5nLiBQYWQKCSAgYWxzbyBieSBHc3RDbG9ja1RpbWUgc28gd2UgZG9uJ3QgcnVuIGludG8gcHJvYmxlbXMuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQpOiBSZW1vdmUuCgkgIChnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0KTogUmVtb3ZlLgoJICAoZ3N0X2Nsb2NrX3NldF90aW1lX2FkanVzdCk6IFJlbW92ZS4gRml4ZXMgIzMyMTcxMi4KCjIwMDUtMTEtMTkgMTc6NTA6NTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oOiBnc3QvZ3N0dXRpbHMuYyAoZ19zdGF0aWNfcmVjX2NvbmRfd2FpdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdfc3RhdGljX3JlY19jb25kX3dhaXQpCgkgIChnX3N0YXRpY19yZWNfY29uZF90aW1lZF93YWl0KTogUmVtb3ZlZCwgbm8gbG9uZ2VyIG5lZWRlZC4KCSAgKiBnc3QvZ3N0YmluLmM6IFJlbW92ZSB0ZXJyaWJsZSBjb250aW51ZV9zdGF0ZSBwcm90b3R5cGUuCgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpOiBNYWtlIHB1YmxpYy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSk6IFJlbW92ZWQsIHJlcGxhY2VkCgkgIGJ5IGNvbnRpbnVlX3N0YXRlLiBGaXhlcyAjMzE5Mzg5LgoKMjAwNS0xMS0xOSAxNzoyODo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4RmlsdGVyKTogQWN0dWFsbHkgcGFzcyBvbiB0aGUgdXNlcl9kYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXhGaWx0ZXIpOiBBY3R1YWxseSBwYXNzIG9uIHRoZSB1c2VyX2RhdGEuCgkgIFJlYWxseSBmaXhlcyAjMTY4NDM4LiBIb3dldmVyIEkgZG9uJ3Qgc2VlIGFueXdoZXJlIHdoZXJlIHRoZQoJICBmaWx0ZXIgZnVuY3Rpb24gaXMgY2FsbGVkLi4uIHN0dXBpZCBHU3RyZWFtZXIuLi4KCjIwMDUtMTEtMTkgMTc6MjY6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleCk6IEFkZCBmaWVsZCBmb3IgdXNlcl9kYXRhX2Rlc3Ryb3kuIFdlIGRvbid0IGhhdmUgYSBkaXNwb3NlIGZ1bmN0aW9uLCBzbyBpdCB3b24ndCBnZXQgY2FsbGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXgpOiBBZGQgZmllbGQgZm9yIHVzZXJfZGF0YV9kZXN0cm95LiBXZQoJICBkb24ndCBoYXZlIGEgZGlzcG9zZSBmdW5jdGlvbiwgc28gaXQgd29uJ3QgZ2V0IGNhbGxlZCB3aGVuIHRoZQoJICBvYmplY3QgaXMgdW5yZWZmZWQsIGJ1dCBvaCB3ZWxsIQoJICAqIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfc2V0X2ZpbHRlcl9mdWxsKTogTmV3IEFQSSBmdW5jdGlvbiwKCSAgYWxsb3dzIGEgZGVzdHJveSBmdW5jdGlvbiB0byBiZSBzZXQgc28gdXNlcl9kYXRhIGNhbiBiZSBmcmVlZC4KCSAgRml4ZXMgIzE2ODQzOC4KCSAgKGdzdF9pbmRleF9zZXRfZmlsdGVyKTogQ2FsbCBnc3RfaW5kZXhfc2V0X2ZpbHRlcl9mdWxsLgoKMjAwNS0xMS0xOSAxNzowODoyMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmMgKHRlc3Rfc3RyaW5nKTogQWRkIHRlc3QgZm9yIGJ1ZyAjMTY1NjUwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYyAodGVzdF9zdHJpbmcpOiBBZGQgdGVzdCBmb3IgYnVnICMxNjU2NTAuCgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF9zdHJpbmdfd3JhcCk6IFRyeWluZyB0byBzZXJpYWxpemUgYSBOVUxMCgkgIHN0cmluZyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciwgZ2l2ZW4gdGhlIGxhY2sgb2YgYSB3YXkgdG8KCSAgcmVwcmVzZW50IE5VTEwgc3RyaW5ncy4gRml4ZXMgIzE2NTY1MC4KCjIwMDUtMTEtMTkgMTY6NDY6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5oOiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2FycmF5X2FwcGVuZF92YWx1ZSkgKGdzdF92YWx1ZV9hcnJheV9wcmVwZW5kX3ZhbHVlLCBnc3RfdmFsdWVfYXJyYXlfZ2V0X3NpemUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX3ZhbHVlKQoJICAoZ3N0X3ZhbHVlX2FycmF5X3ByZXBlbmRfdmFsdWUsIGdzdF92YWx1ZV9hcnJheV9nZXRfc2l6ZSkKCSAgKGdzdF92YWx1ZV9hcnJheV9nZXRfdmFsdWUpOiBOZXcgQVBJLCBjb3BpZWQgZnJvbQoJICBnc3RfdmFsdWVfbGlzdF8qLCBvbmx5IG9wZXJhdGVzIG9uIGFycmF5cy4KCSAgKGdzdF92YWx1ZV9saXN0X2FwcGVuZF92YWx1ZSwgZ3N0X3ZhbHVlX2xpc3RfcHJlcGVuZF92YWx1ZSkKCSAgKGdzdF92YWx1ZV9saXN0X2NvbmNhdCwgZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUpCgkgIChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUpOiBPbmx5IG9wZXJhdGUgb24gbGlzdHMuIEZpeGVzICMxNTY2MzMuCgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9pbml0X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20KCSAgaW5pdF9saXN0LCBiZWNhdXNlIGl0IHdvcmtzIG9uIGJvdGguCgkgIChjb3B5X2dhcnJheV9vZl9nc3R2YWx1ZSk6IFJlbmFtZWQgZnJvbSBnc3RfdmFsdWVfbGlzdF9jb3B5X2FycmF5LgoJICAoZ3N0X3ZhbHVlX2NvcHlfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBjb3B5X2xpc3QuCgkgIChnc3RfdmFsdWVfZnJlZV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGZyZWVfbGlzdC4KCSAgKGdzdF92YWx1ZV9jb2xsZWN0X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gY29sbGVjdF9saXN0LgoJICAoZ3N0X3ZhbHVlX2xjb3B5X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gbGNvcHlfbGlzdC4KCSAgKGdzdF92YWx1ZV9saXN0X29yX2FycmF5X3BlZWtfcG9pbnRlcik6IFJlbmFtZWQgZnJvbQoJICBsaXN0X3BlZWtfcG9pbnRlci4KCSAgKF9nc3RfdmFsdWVfYXJyYXlfdmFsdWVfdGFibGUsIF9nc3RfdmFsdWVfbGlzdF92YWx1ZV90YWJsZSk6CgkgIFVwZGF0ZSB2YWx1ZSB0YWJsZSBmdW5jdGlvbnMuCgkgIChnc3RfdmFsdWVfY29tcGFyZV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGNvbXBhcmVfbGlzdC4KCjIwMDUtMTEtMTkgMTY6MDU6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdHRhZ2xpc3QuaDogV2hvb3BzLCBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybnMgdm9pZC4gQWxzbyBmaXggc29tZSBjb25zdG5lc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdHRhZ2xpc3QuaDogV2hvb3BzLCBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybnMgdm9pZC4gQWxzbyBmaXgKCSAgc29tZSBjb25zdG5lc3MuCgoyMDA1LTExLTE5IDE1OjUxOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBPcGVyYXRlcyBvbiBhIGNvbnN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaCAoZ3N0X3RhZ19saXN0X2ZvcmVhY2gpOiBPcGVyYXRlcyBvbiBhIGNvbnN0CgkgIEdzdFRhZ0xpc3QqLiBGaXhlcyAjMTQzNDcyLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDogQ2xhcmlmeSB3aGF0IHRoZSBmb3JlYWNoL21hcCBmdW5jdGlvbnMgY2FuCgkgIG9yIGNhbid0IGRvIHRvIHRoZWlyIGFyZ3VtZW50cy4KCjIwMDUtMTEtMTggMTk6MjE6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogRG9jIGFuZCBBUEkgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbiksCgkgIChnc3RfY2xvY2tfZ2V0X2NhbGlicmF0aW9uKToKCSAgRG9jIGFuZCBBUEkgZml4ZXMuCgkgIENhbGxpYnJhdGlvbiBjYW4gYmUgc2V0IHdpdGggaW50ZXJuYWwgdGltZSBlcXVhbCB0byBjdXJyZW50CgkgIGludGVybmFsIHRpbWUgdG9vLgoKMjAwNS0xMS0xOCAxODo1NToyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXJyb3IuKjogZG9jdW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIGRvY3VtZW50CgoyMDA1LTExLTE4IDE4OjM4OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBvbiByZXF1aXJlbWVudHMgZm9yIG1vdmluZyBwbHVnaW5zIHRvIGdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IG9uIHJlcXVpcmVtZW50cyBmb3IgbW92aW5nIHBsdWdpbnMgdG8gZ29vZAoKMjAwNS0xMS0xOCAxNjoyNDo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgQWRkIG5ldCBwa2djb25maWcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvTWFrZWZpbGUuYW06IEFkZCBuZXQgcGtnY29uZmlnIGZpbGVzLgoKMjAwNS0xMS0xOCAxNjowNDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogZG9jcyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzIGZpeGVzCgoyMDA1LTExLTE4IDE1OjUyOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFR1cm4gb2ZmIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBUdXJuIG9mZiBkZWJ1Z2dpbmcuCgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBc3NlcnQgdGhhdCB0aGUKCSAgdGltZXMgY29ubnZlcmdlIHNvbWV3aGF0LiBDYW4ndCBtYWtlIGEgcmVhbCB0ZXN0LgoKMjAwNS0xMS0xOCAxNTozMDoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChkb19saW5lYXJfcmVncmVzc2lvbik6IFVzZSBhbGwgaW50ZWdlciBhcml0aG1ldGljLiBSZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGRvbWFpbiwgd2hpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBVc2UgYWxsCgkgIGludGVnZXIgYXJpdGhtZXRpYy4gUmV0dXJuIHRoZSBtaW5pbXVtIG9mIHRoZSBkb21haW4sIHdoaWNoIGNhbiBiZQoJICBzZXQgYXMgImludGVybmFsIiBmb3IgZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbi4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOiBDYWxsIF9zZXRfY2FsaWJyYXRpb24uCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOiBDYWxsIF9zZXRfY2FsaWJyYXRpb24gaW5zdGVhZCBvZgoJICByYXRlX29mZnNldC4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IFVzZSB0aGUgcmlnaHQKCSAgYWRqdXN0bWVudCBhcGkuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pCgkgIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKTogTmV3IGZ1bmN0aW9ucywgb2Jzb2xldGUgdGhlIG9uZXMgSQoJICBhZGRlZCB5ZXN0ZXJkYXkuIERvaC4gUHJlY2lzaW9uIGlzc3VlcyBtZWFuIHdlIGhhdmUgdG8gZXh0cmFwb2xhdGUKCSAgZnJvbSBhIHBvaW50IGluIHRoZSBtb3JlIHJlY2VudCBwYXN0IHRoYW4gMTk3MC4KCSAgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQsIGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQpOiBNYXJrIGFzCgkgIG9ic29sZXRlLgoJICAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCk6IFVzZSB0aGUgcmlnaHQgY2FsaWJyYXRpb24gZGF0YS4KCjIwMDUtMTEtMTggMTQ6NDk6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBbHNvIHJlc2V0IHRoZSAtPmN1cnJlbnRfKiB2YWx1ZXMgaW4gUkVBRFktPlBBVVNFRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBBbHNvIHJlc2V0IHRoZSAtPmN1cnJlbnRfKiB2YWx1ZXMgaW4gUkVBRFktPlBBVVNFRAoKMjAwNS0xMS0xOCAxNDoxMzoyOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOiBXaG9vcHMsIGNoZWNrIHRoZSByaWdodCBmZC4gQWxzbyBhZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgV2hvb3BzLCBjaGVjayB0aGUgcmlnaHQgZmQuIEFsc28gYWRkIHNvbWUgZGVidWdnaW5nLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6IEFkanVzdCBmb3IgaW50NjQgb2Zmc2V0LgoJICAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBBZGQgYSBjcmFwbG9hZCBvZiBkZWJ1Z2dpbmcuIFN1YnRyYWN0IG9mZgoJICB0aGUgbWluaW11bSB2YWx1ZXMgZnJvbSB0aGUgaW5wdXQgc2VyaWVzIHRvIGRpc2NhcmQgdW5uZWVkZWQgYml0cy4KCSAgVXNlIG9ubHkgaW50IGFyaXRobWV0aWMuIFRoZXJlIGlzIHN0aWxsIGRvdWJsZSBhcml0aG1ldGljIHdoZW4KCSAgY2FsY3VsYXRpbmcgdGhlIGludGVyY2VwdCB0aGF0IG5lZWRzIGZpeGluZy4gUmV0dXJuIGJvb2xlYW4gdG8KCSAgaW5kaWNhdGUgc3VjY2VzczsgRkFMU0Ugd291bGQgbWVhbiB0aGUgZG9tYWluIG9yIHJhbmdlIGlzIHRvbwoJICBncmVhdC4gU3RpbGwgbmVlZHMgZml4ZXMuCgoyMDA1LTExLTE4IDEzOjE4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHN0cmVhbSB0aW1lLCB3ZSBuZWVkIHRvIHN1YnRyYWN0IGFjY3VtdWxhdGVkIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEZvciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiBzdHJlYW0gdGltZSwgd2UgbmVlZCB0byBzdWJ0cmFjdAoJICBhY2N1bXVsYXRlZCB0aW1lLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpOgoJICBSZWxlYXNlIGxvY2sgYmVmb3JlIGNhbGxpbmcgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIG9mIGFzeW5jCgkgIGVudHJpZXMuCgoyMDA1LTExLTE4IDExOjU3OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOiBQb3J0IGdvZXMgYWxsIHRoZSB3YXkgdG8gTUFYVUlOVDE2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOgoJICBQb3J0IGdvZXMgYWxsIHRoZSB3YXkgdG8gTUFYVUlOVDE2LgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IE1ha2UgdGhlIHBvcnQgcmFuZ2UgdGhlIHNhbWUgYXMKCSAgZm9yIHRoZSBrZXJuZWw6IDAgYXNzaWducywgb3RoZXJ3aXNlIHBvcnRzIGFyZSBsZXNzIHRoYW4KCSAgTUFYVUlOVDE2LgoJICAqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQWRhcHQgZm9yIDAgPT0ga2VybmVsIGFzc2lnbnMKCSAgcG9ydCBjaGFuZ2UuCgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBZGQgdGhlIHN0YXJ0CgkgIG9mIGFub3RoZXIgdGVzdC4KCjIwMDUtMTEtMTggMTE6MDM6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IFJlbW92aW5nIGEgY2xvY2sgcHJvdmlkZXIgZnJvbSBhIGJpbiwgdHJpZ2dlcnMgYSBjbG9jayBsb3N0IG1lc3NhZ2Ugc28gdGhhdCBhIG5ldyBjbG9jayB3aWxsIGJlIHNlbGVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFJlbW92aW5nIGEgY2xvY2sgcHJvdmlkZXIgZnJvbSBhIGJpbiwgdHJpZ2dlcnMgYSBjbG9jayBsb3N0IG1lc3NhZ2UKCSAgc28gdGhhdCBhIG5ldyBjbG9jayB3aWxsIGJlIHNlbGVjdGVkLgoJICBBZGRpbmcgYSBjbG9jayB0byBhIGJpbiB0cmlnZ2VycyBhIGNsb2NrIHByb3ZpZGVyIG1lc3NhZ2UuCgkgIE1ha2Ugc3VyZSB3ZSByZXNlbGVjdCBhIGNsb2NrIHdoZW4gd2UgcmVjZWl2ZWQgYSBjbG9jayBsb3N0IG1lc3NhZ2UuCgkgIEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlZCB0aGUgY2xvY2suCgoyMDA1LTExLTE4IDEwOjU0OjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IEFkanVzdCB0aGUgY2xvY2sgaW5pdGlhbGx5IHNvIGl0IHByb2R1Y2VzIHZhbHVlcyBhcm91bmQgdGhlIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOiBBZGp1c3QKCSAgdGhlIGNsb2NrIGluaXRpYWxseSBzbyBpdCBwcm9kdWNlcyB2YWx1ZXMgYXJvdW5kIHRoZSBiYXNlIHRpbWUuCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KTogVHlwbyBmaXguCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOiBBZGQgbm90ZSBvbiB3aGVuIHRoZSBzb2NrZXQgZ2V0cwoJICBjbG9zZWQuCgoyMDA1LTExLTE3IDE4OjUwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBGcmVlIHJlbW90ZSBhbmQgbG9jYWwgdGltZSBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKToKCSAgRnJlZSByZW1vdGUgYW5kIGxvY2FsIHRpbWUgYXJyYXlzLgoKMjAwNS0xMS0xNyAxODoxODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogRml4IGNvbXBpbGF0aW9uLCB1bmluaXRpYWxpemVkIHZhcnMgYW5kIGEgZm9yZ290dGVuIGNvbnRpbnVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgRml4IGNvbXBpbGF0aW9uLCB1bmluaXRpYWxpemVkIHZhcnMgYW5kIGEgZm9yZ290dGVuIGNvbnRpbnVlLgoKMjAwNS0xMS0xNyAxNzo1NToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svOiBBZGQgYSBtb3N0IG1pbmltYWwgdGVzdCBmb3IgdGhlIG5ldCBjbGllbnQgY2xvY2suIE1vcmUgdG8gY29tZSBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNoZWNrX1BST0dSQU1TKToKCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogQWRkIGEgbW9zdCBtaW5pbWFsIHRlc3QgZm9yIHRoZQoJICBuZXQgY2xpZW50IGNsb2NrLiBNb3JlIHRvIGNvbWUgbGF0ZXIuCgkgICogZ3N0L25ldC9nc3RuZXQuaDoKCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOiBBZGQgbmV0Y2xpZW50Y2xvY2suCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogTmV3IGZpbGVzLCBpbXBsZW1lbnQgYW4gdW50ZXN0ZWQKCSAgR3N0Q2xvY2sgdGhhdCB0YWtlcyBpdHMgdGltZSBmcm9tIGEgbmV0d29yayB0aW1lIHByb3ZpZGVyLgoJICBJbXBsZW1lbnRzIHRoZSBhbGdvcml0aG0gaW4gbmV0d29yay1jbG9jay5zY20uCgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCp3aW5kb3ctc2l6ZSopOiBSZW5hbWUgZnJvbQoJICAqcXVldWUtbGVuZ3RoKi4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAobmV0d29yay10aW1lKToKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAocS1wdXNoKTogVXBkYXRlIGNhbGxlcnMuCgoyMDA1LTExLTE3IDE2OjAyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBbmQgdW5yZWYgdGhlIGNoaWxkIHRvby4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXcpOgoJICBBbmQgdW5yZWYgdGhlIGNoaWxkIHRvby4uCgoyMDA1LTExLTE3IDE0OjUxOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBSZWZhY3RvciB0aGUgc29ydCBpdGVyYXRvciBzbyBpdCBjYW4gYmUgdXNlZCB3aGlsZSBob2xkaW5nIHRoZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25ldyksIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKToKCSAgUmVmYWN0b3IgdGhlIHNvcnQgaXRlcmF0b3Igc28gaXQgY2FuIGJlIHVzZWQgd2hpbGUgaG9sZGluZyB0aGUKCSAgTE9DSyB0b28uCgkgIE1ha2UgY2xvY2sgc2VsZWN0aW9uIHNlbGVjdCBhIGNsb2NrIGNsb3Nlc3QgdG8gdGhlIHNvdXJjZS4KCjIwMDUtMTEtMTcgMTI6MzY6MzAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RjbG9jay4qOiBBbm9ueW1vdXMgc3RydWN0cyBhcmUgYSBnY2MgKGFuZCBzb21lIG90aGVyIGNvbXBpbGVycykgZXh0ZW5zaW9uLCBzbyBkb24ndCB1c2UgdGhlbS4gU2luY2UgdGhpcyBpcyBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCksIChnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQW5vbnltb3VzIHN0cnVjdHMgYXJlIGEgZ2NjIChhbmQgc29tZSBvdGhlciBjb21waWxlcnMpIGV4dGVuc2lvbiwgc28KCSAgZG9uJ3QgdXNlIHRoZW0uIFNpbmNlIHRoaXMgaXMgb25seSBmb3IgQUJJLWNvbXBhdGliaWxpdHksIGFuZCBvdXIKCSAgQVBJL0FCSSBmcmVlemUgaXMgb3ZlciBpbiBhIGZldyBkYXlzLCB0aGlzIHdob2xlIHRoaW5nIHdpbGwgb25seQoJICBsYXN0IGEgZmV3IGRheXMsIHNvIGRvbid0IGJvdGhlciB0cnlpbmcgdG8gdGhpbmsgdXAgYSBtZWFuaW5nZnVsCgkgIG5hbWUgZm9yIHRoZSBzdHJ1Y3QuCgoyMDA1LTExLTE3IDExOjUxOjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBBZGQgcmF0ZSBhbmQgb2Zmc2V0IHByb3BlcnRpZXMsIHByZXNlcnZpbmcgQUJJIHN0YWJpbGl0eS4gQWRkIHJhdGUvb2Zmc2V0IGFjY2Vzc29ycy4gV2lsbCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogQWRkIHJhdGUgYW5kIG9mZnNldCBwcm9wZXJ0aWVzLAoJICBwcmVzZXJ2aW5nIEFCSSBzdGFiaWxpdHkuIEFkZCByYXRlL29mZnNldCBhY2Nlc3NvcnMuIFdpbGwgZmlsZSBidWcKCSAgZm9yIHRoZSBmcmVlemUgYnJlYWsuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpOiBJbXBsZW1lbnQgdXNpbmcgcmF0ZQoJICBhbmQgb2Zmc2V0LCB0cnlpbmcgdG8ga2VlcCBwcmVjaXNpb24gYW5kIGF2b2lkaW5nCgkgIHVuZGVyZmxvdy9vdmVyZmxvdy4KCSAgKGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQsIGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOiBOZXcKCSAgZnVuY3Rpb25zLiBNYWtlIGdzdF9jbG9ja19zZXRfdGltZV9hZGp1c3Qgb2Jzb2xldGUuCgkgIChnc3RfY2xvY2tfc2V0X3RpbWVfYWRqdXN0KTogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgb2Jzb2xldGUuCgkgIFdpbGwgZmlsZSBidWcgc29vbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6IE1ha2UgdGhlIEFCSS1zdGFiaWxpdHkgaGFjawoJICBncmVwcGFibGUgYnkgdXNpbmcgR1NUX1BBRERJTkctMSsxLgoKMjAwNS0xMS0xNyAxMToyNTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9OT1RFUy0wLjEuMToKCSogZG9jcy9yYW5kb20vTk9URVMtMC4yLjA6CgkqIGRvY3MvcmFuZG9tL1RPRE8tcG9zdC0wLjEuMDoKCSogZG9jcy9yYW5kb20vYXJjaDoKCSogZG9jcy9yYW5kb20vY29yb3V0aW5lczoKCSogZG9jcy9yYW5kb20vZGVzaWduOgoJKiBkb2NzL3JhbmRvbS9mYWN0b3J5aW5mbzoKCSogZG9jcy9yYW5kb20vZ2Jvb2xlYW46CgkqIGRvY3MvcmFuZG9tL3BhZGFyY2g6CgkqIGRvY3MvcmFuZG9tL3NlcXVlbmNlOgoJKiBkb2NzL3JhbmRvbS9zdGF0ZS10cmFuc2l0aW9uczoKCSogZG9jcy9yYW5kb20vc3RhdGVzOgoJKiBkb2NzL3JhbmRvbS9zdGF0ZXMubmV3OgoJKiBkb2NzL3JhbmRvbS9zdGF0ZXMub2xkOgoJKiBkb2NzL3JhbmRvbS93YWxrdGhyb3VnaDoKCSAgcmVtb3ZlIGNvbXBsZXRlbHkgb3V0ZGF0ZWQgcmFuZG9tIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb21wbGV0ZWx5IG91dGRhdGVkIHJhbmRvbSBkb2NzCgoyMDA1LTExLTE3IDA5OjM3OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogQXNzZXJ0aW9uIHNob3VsZCBjaGVjayBmb3IgQ0xPQ0tfTE9TVCwgbm90IE5FV19DTE9DSyAoIzMyMTY0OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19sb3N0KToKCSAgQXNzZXJ0aW9uIHNob3VsZCBjaGVjayBmb3IgQ0xPQ0tfTE9TVCwgbm90IE5FV19DTE9DSyAoIzMyMTY0OCkuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgRG9uJ3QgdXNlIGMrKyBzdHlsZSBjb21tZW50cyBpbiBoZWFkZXJzICgjMzIxNjM4KS4KCjIwMDUtMTEtMTYgMTg6Mzc6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jIChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOiBGcmVlIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmMgKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6IEZyZWUKCSAgYnVmZmVyLgoKMjAwNS0xMS0xNiAxODoxNjo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBDaGVjayB0byBzZWUgdGhhdCB0aGUgdGltZSBwcm92aWRlciBhY3R1YWxseSBwcm92aWRlcyB0aW1lcy4gV29ya3MsIHlvIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IENoZWNrIHRvIHNlZSB0aGF0IHRoZSB0aW1lCgkgIHByb3ZpZGVyIGFjdHVhbGx5IHByb3ZpZGVzIHRpbWVzLiBXb3JrcywgeW8hCgoyMDA1LTExLTE2IDE4OjA5OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEVuYWJsZSBtb3JlIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgRW5hYmxlIG1vcmUgdGVzdHMuCgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBTZXQgZWxlbWVudCB0byBOVUxMIGJlZm9yZSBkaXNwb3NpbmcgaXQuCgoyMDA1LTExLTE2IDE3OjUzOjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4CgoyMDA1LTExLTE2IDE3OjUyOjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0LzogVXNlIHRoZSB0aW1lcGFja2V0IHN0dWZmIGluIHRoZSBwcm92aWRlciwgaW5jbHVkZSBpdCBmcm9tIGdzdG5ldC5oLCBhbmQgYWRkIGl0IHRvIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbmV0L2dzdG5ldC5oOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDogVXNlIHRoZSB0aW1lcGFja2V0IHN0dWZmIGluIHRoZQoJICBwcm92aWRlciwgaW5jbHVkZSBpdCBmcm9tIGdzdG5ldC5oLCBhbmQgYWRkIGl0IHRvIHRoZSBidWlsZC4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogTmV3IGZpbGVzLCBhYnN0cmFjdHMgb3V0IHRoZSBwYWNrZXQKCSAgc2VuZGluZyBhbmQgcmVjZWl2aW5nLgoKMjAwNS0xMS0xNiAxNzozNTowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBFbmFibGUgdmFsZ3JpbmQgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBFbmFibGUgdmFsZ3JpbmQgY2hlY2suCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19hbGxvY19wYXJlbnQpLAoJICAoZ3N0X2Zha2Vfc3JjX2FsbG9jX2J1ZmZlcik6CgkgIEZpeCBtZW1sZWFrLgoKMjAwNS0xMS0xNiAxNzoyMjozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IENhbGwgcGFyZW50IGZpbmFsaXplIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSk6CgkgIENhbGwgcGFyZW50IGZpbmFsaXplIHRvby4KCjIwMDUtMTEtMTYgMTc6MTg6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRW5hYmxlIHZhbGdyaW5kIGNoZWNrIHRoYXQgc2hvdWxkIHdvcmsgZmluZSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBFbmFibGUgdmFsZ3JpbmQgY2hlY2sgdGhhdCBzaG91bGQgd29yayBmaW5lIG5vdy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCk6CgkgIEZpeCBtZW1sZWFrcyBpbiBwYWQgYWxsb2NhdGlvbi4KCjIwMDUtMTEtMTYgMTY6NDk6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvOiBOZXcgcGFydCBvZiBjb3JlIHRvIGhvbGQgbmV0d29yayBlbGVtZW50cyBhbmQgb2JqZWN0cy4gUHV0IGluIGNvcmUgYmVjYXVzZSBpdCBleHBvc2VzIEFQSSB0aGF0IGFwcGxpY2F0aW9ucy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9uZXQvZ3N0bmV0Lmg6IE5ldyBwYXJ0IG9mIGNvcmUgdG8gaG9sZCBuZXR3b3JrIGVsZW1lbnRzIGFuZAoJICBvYmplY3RzLiBQdXQgaW4gY29yZSBiZWNhdXNlIGl0IGV4cG9zZXMgQVBJIHRoYXQgYXBwbGljYXRpb25zIHdhbnQKCSAgdG8gdXNlLiBUaGUgbGlicmFyeSBpcyBuYW1lZCBsaWJnc3RuZXQtdGVtcG5hbWUgcmlnaHQgbm93IGJlY2F1c2UKCSAgb2YgdGhlIGV4aXN0aW5nIGxpYmdzdG5ldCBpbiBnc3QtcGx1Z2lucy1iYXNlLiBTb2x1dGlvbiBpcwoJICBwcm9iYWJseSB0byByZW5hbWUgdGhlIG9uZSBpbiBwbHVnaW5zLWJhc2U7IHdpbGwgZmlsZSBhIGJ1ZyBmb3IKCSAgdGhlIGZyZWV6ZSBicmVhay4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6IE5ldyBvYmplY3QgdG8gZXhwb3J0IGEgR3N0Q2xvY2sncwoJICBnZXRfdGltZSBjYWxsIG92ZXIgdGhlIG5ldHdvcmsuCgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbSAobGliX0xUTElCUkFSSUVTKTogQWRkIGdzdG5ldCB0byB0aGUgYnVpbGQuCgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBBIG1vc3QgbWluaW1hbCB0ZXN0IHN1aXRlLiBXaWxsCgkgIGdldCBhZGRpdGlvbnMgc2hvcnRseS4KCjIwMDUtMTEtMTYgMTY6MDk6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBhZC4qOiBhZGQgZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIGFkZCBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSBmdW5jdGlvbnMKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9pbml0KToKCSAgYW5kIHVzZSB0aGVtCgoyMDA1LTExLTE2IDE2OjA2OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZW1vdmVkIHdhcm5pbmcsIGl0J3Mgbm90IHJlYWx5IGFuIGVycm9yIGVpdGhlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wYXVzZV90YXNrKToKCSAgUmVtb3ZlZCB3YXJuaW5nLCBpdCdzIG5vdCByZWFseSBhbiBlcnJvciBlaXRoZXIuCgoyMDA1LTExLTE2IDE0OjI3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayBpZiB0aGUgY2FwcyBhcmUgTlVMTCwgdGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBlbGVtZW50IGlzIHNodXR0aW5nIGRvd24gYW5kIHRoZSBwYWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgQ2hlY2sgaWYgdGhlIGNhcHMgYXJlIE5VTEwsIHRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgZWxlbWVudAoJICBpcyBzaHV0dGluZyBkb3duIGFuZCB0aGUgcGFkIGNhcHMgYXJlIHNldCB0byBOVUxMLgoKMjAwNS0xMS0xNiAxMjo1Nzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZml4IHBhZCB0ZW1wYWx0ZSBsZWFrIGluIHRlZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHBhZCB0ZW1wYWx0ZSBsZWFrIGluIHRlZQoKMjAwNS0xMS0xNiAxMjo0MDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiB1c2UgZ3N0X29iamVjdF9yZWYgd2hlbiBzZXR0aW5nIHRoZSBwYWQgdGVtcGxhdGU7IHRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBwYWQgdGVtcGxhdGUgbGVha3Mgb24gR0xpYiAyLjYgYW5kIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX3ZhbHVlX2R1cF9nc3Rfb2JqZWN0KToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9wcm9wZXJ0eSk6CgkgIHVzZSBnc3Rfb2JqZWN0X3JlZiB3aGVuIHNldHRpbmcgdGhlIHBhZCB0ZW1wbGF0ZTsgdGhpcyB3aWxsCgkgIHRyaWdnZXIgdGhlIHBhZCB0ZW1wbGF0ZSBsZWFrcyBvbiBHTGliIDIuNiBhbmQgdGhlIHNsYXZlcwoKMjAwNS0xMS0xNiAxMjoyNToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiByZW1vdmUgZnVuY3Rpb25zIGNvcGllZCBmcm9tIEdMaWIgMi42CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ3N0X2ZsYWdzX2dldF9maXJzdF92YWx1ZSk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIHJlbW92ZSBmdW5jdGlvbnMgY29waWVkIGZyb20gR0xpYiAyLjYKCjIwMDUtMTEtMTYgMTE6Mjk6NTcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogRG9uJ3QgbGluayBhZ2FpbnN0IFZBTEdSSU5EX0xJQlMuIFRoYXQgd2FzIGFsd2F5cyB0aGUgd3JvbmcgdGhpbmcgdG8gZG8sIGJ1dCBvbmx5IGJyZWFrcyB3aXRoIG5ld2VyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIERvbid0IGxpbmsgYWdhaW5zdCBWQUxHUklORF9MSUJTLiBUaGF0IHdhcyBhbHdheXMgdGhlIHdyb25nIHRoaW5nIHRvCgkgIGRvLCBidXQgb25seSBicmVha3Mgd2l0aCBuZXdlciB2YWxncmluZCB2ZXJzaW9ucy4gV2UncmUgbm90IGEKCSAgdmFsZ3JpbmQgdG9vbCwgd2UgaGF2ZSBubyBsaW5rLXRpbWUgZGVwZW5kZW5jaWVzIG9uIGxpYmNvcmVncmluZC4KCjIwMDUtMTEtMTYgMTE6MDY6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBzb21lIGRlYnVnIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgc29tZSBkZWJ1ZyBjaGFuZ2VzCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgdHlwbyBmaXhlcwoKMjAwNS0xMS0xNSAyMzo1MzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIFJldmVydCBhbGwgdGhlc2UgdW5yZWZzLCB0aGV5IGRvbid0IGV2ZW4gcGFzcyBtYWtlIGNoZWNrICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmVydCBhbGwgdGhlc2UgdW5yZWZzLCB0aGV5IGRvbid0IGV2ZW4gcGFzcyBtYWtlIGNoZWNrICEKCjIwMDUtMTEtMTUgMTk6NDg6NDAgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgQW5kIGdzdF9vYmplY3RfdW5yZWYgaGVyZSB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFuZCBnc3Rfb2JqZWN0X3VucmVmIGhlcmUgdG9vCgoyMDA1LTExLTE1IDE5OjMxOjA1ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC86IEZyZWUgcGFkIHRlbXBsYXRlcywgZml4ZXMgYSBjb3VwbGUgb2YgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCk6CgkgIEZyZWUgcGFkIHRlbXBsYXRlcywgZml4ZXMgYSBjb3VwbGUgb2YgbGVha3MuCgoyMDA1LTExLTE1IDE5OjI0OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBHU1RfUEFEX1BBRF9URU1QTEFURShwYWQpIGdldHMgdGhlIHBhZCB0ZW1wbGF0ZSwgd2hpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfcHJvcGVydHkpOgoJICBHU1RfUEFEX1BBRF9URU1QTEFURShwYWQpIGdldHMgdGhlIHBhZCB0ZW1wbGF0ZSwgd2hpbGUKCSAgR1NUX1BBRF9URU1QTEFURShwYWQpIGRvZXMgYSBjYXN0LiBXZSB3YW50IHRoZSBmb3JtZXIgaGVyZS4KCSAgKCMzMjE0NTIpCgoyMDA1LTExLTE1IDE4OjM0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IFNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwNS0xMS0xNSAxNzo1Nzo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSk6IEFkZCBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpOiBBZGQgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6IERvY3VtZW50CgkgIHVzaW5nIEdTVF9DTE9DS19USU1FX05PTkUgdG8gZGlzYWJsZSBiYXNlIHRpbWUgbWFuYWdlbWVudC4KCSAgKGRvX3BpcGVsaW5lX3NlZWssIGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBEb24ndCByZXNldCBzdHJlYW0KCSAgdGltZSBpZiBpdCB3YXMgTk9ORSBiZWZvcmUuCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogT25seSBtdW5nZSB0aGUgYmFzZSB0aW1lIGlmCgkgIHN0cmVhbV90aW1lICE9IEdTVF9DTE9DS19USU1FX05PTkUuCgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogUHVudCBhcm91bmQgdGhlCgkgIHByb2JsZW0gb2YgdGhlIHByb2JlIG5vdCBiZWluZyBjYWxsZWQsIGJlY2F1c2UgdGhhdCdzIG5vdCB0aGUKCSAgaXNzdWUgSSdtIGxvb2tpbmcgYXQuIEFkZCBhIGNoZWNrIHRoYXQgc2V0dGluZyBzdHJlYW1fdGltZSB0byBOT05FCgkgIGRpc2FibGVzIGJhc2UgdGltZSBtYW5hZ2VtZW50LgoKMjAwNS0xMS0xNSAxNzoxODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IHNlZ21lbnRfc3RvcCA9PSAtMSBhdCBzdGFydHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBzZWdtZW50X3N0b3AgPT0gLTEgYXQgc3RhcnR1cC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIEluaXQgc2VnbWVudCB2YWx1ZXMgYXQgc3RhcnQuCgoyMDA1LTExLTE1IDE2OjUyOjQ2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogUHVudCBhcm91bmQgdGhlCgkgIHByb2JsZW0gb2YgdGhlIHByb2JlIG5vdCBiZWluZyBjYWxsZWQsIGJlY2F1c2UgdGhhdCdzIG5vdCB0aGUKCSAgaXNzdWUgSSdtIGxvb2tpbmcgYXQuLi4KCjIwMDUtMTEtMTUgMTY6NDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAwIHNlZ21lbnQgdmFsdWVzIGFyZSAwIGluIGFueSBmb3JtYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAwIHNlZ21lbnQgdmFsdWVzIGFyZSAwIGluIGFueSBmb3JtYXQuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFBhcnNlIG5ld3NlZ21lbnQgY29ycmVjdGx5IGluIGJhc2V0cmFuc2Zvcm0KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBTeW5jIHRvIGNsb2NrIHVzaW5nIHVwZGF0ZWQgc2VnbWVudCB2YWx1ZXMuCgoyMDA1LTExLTE1IDE2OjI3OjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBBZGQgY2hlY2sgdGhhdCB0aGUgYmFzZSB0aW1lIGFuZCBzdHJlYW0gdGltZSBhcmUgcmVzZXQgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBBZGQgY2hlY2sgdGhhdCB0aGUKCSAgYmFzZSB0aW1lIGFuZCBzdHJlYW0gdGltZSBhcmUgcmVzZXQgY29ycmVjdGx5LgoKMjAwNS0xMS0xNSAxNTo0NDo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFNvbWUgbW9yZSBUT0RPIGl0ZW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBTb21lIG1vcmUgVE9ETyBpdGVtcy4KCjIwMDUtMTEtMTUgMTI6MzU6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmMgKGdzdF9mYWtlX3NyY19jcmVhdGUpOiBJdCdzIG5vdCBhbiBlcnJvciBpZiB0aGUgdXNlciBzZWxlY3RlZCAibm8gY2xvY2siIGFzIHRoZSBjbG9ja2luZyBtZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jIChnc3RfZmFrZV9zcmNfY3JlYXRlKTogSXQncyBub3QgYW4KCSAgZXJyb3IgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgIm5vIGNsb2NrIiBhcyB0aGUgY2xvY2tpbmcgbWV0aG9kLgoKMjAwNS0xMS0xNSAxMjoyOTowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogTmV3IHRlc3QgZm9yIGJ1ZmZlciB0aW1lc3RhbXBzIHdpdGggbGl2ZSBjYXB0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBOZXcgdGVzdCBmb3IgYnVmZmVyCgkgIHRpbWVzdGFtcHMgd2l0aCBsaXZlIGNhcHR1cmUuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYyAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6IElmIHRoZSBkYXRhcmF0ZQoJICBpcyAwIGJ1dCB3ZSBhcmUgYSBsaXZlIHNvdXJjZSwgdGltZXN0YW1wIHRoZSBidWZmZXJzIHVzaW5nIHRoZQoJICBlbGVtZW50J3MgY2xvY2suCgoyMDA1LTExLTE0IDE1OjE1OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIHNlY3Rpb24gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIG1vcmUgc2VjdGlvbiBkb2NzCgoyMDA1LTExLTE0IDE0OjQ1OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBhZGQgc3VwcHJlc3Npb25zIGZyb20gV2ltJ3MgRGViaWFuIG1hY2hpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBhZGQgc3VwcHJlc3Npb25zIGZyb20gV2ltJ3MgRGViaWFuIG1hY2hpbmUKCjIwMDUtMTEtMTQgMTQ6MzY6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBhZGQgc3VwcHJlc3Npb25zIGZyb20gQW5keSdzIEFNRDY0IFVidW50dSBtYWNoaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgYWRkIHN1cHByZXNzaW9ucyBmcm9tIEFuZHkncyBBTUQ2NCBVYnVudHUgbWFjaGluZQoKMjAwNS0xMS0xNCAxMjo0Mzo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9hY3RpdmUpOiBDaGFuZ2UgZG9jczsgcGFyZW50J3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9hY3RpdmUpOiBDaGFuZ2UgZG9jczsgcGFyZW50J3MKCSAgU1RBVEVfTE9DSyBub3QgbmVjZXNzYXJ5LiBGaXhlcyAjMzExNDg5LgoKMjAwNS0xMS0xNCAxMjoxNzo0NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVycm9yLmMgKEZJTEVfQV9CVUcpOiBCZSBwb2xpdGUgKmFuZCogaGVscGZ1bC4gRml4ZXMgIzMwNTI5MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVycm9yLmMgKEZJTEVfQV9CVUcpOiBCZSBwb2xpdGUgKmFuZCogaGVscGZ1bC4gRml4ZXMKCSAgIzMwNTI5MS4KCjIwMDUtMTEtMTQgMTE6NTg6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfYWRkX29iamVjdCk6IE5vdGUgaW4gdGhlIGRvY3MgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9hZGRfb2JqZWN0KTogTm90ZSBpbiB0aGUgZG9jcyB0aGF0CgkgIHRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkLgoKMjAwNS0xMS0xNCAxMDo0OTozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJlZiB0aGUgc291cmNlIHBhZCBjYXBzIHdoaWxlIHdlIG5lZWQgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgUmVmIHRoZSBzb3VyY2UgcGFkIGNhcHMgd2hpbGUgd2UgbmVlZCB0aGVtLgoJICBGaXhlcyAoIzMyMTM4NikKCjIwMDUtMTEtMTIgMTA6MjM6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMTIgMTA6MDQ6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgd2luMzIgZmlsZXMgZm9yIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBmaWxlcyBmb3IgSEVBRAoKMjAwNS0xMS0xMiAxMDowMzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkZWJ1ZyB0YXNrIGpvaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIHRhc2sgam9pbgoKMjAwNS0xMS0xMiAxMDowMDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBmb3VuZCBhbm90aGVyIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb3VuZCBhbm90aGVyIHF1b3RlCgoyMDA1LTExLTExIDIwOjEyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkZWQgc29tZSBkb2NzIGZvciBHc3RDb2xsZWN0RGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgc29tZSBkb2NzIGZvciBHc3RDb2xsZWN0RGF0YS4KCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFNvbWUgc21hbGwgY29kZSBleGFtcGxlIGZpeC4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvY3VtZW50IHNvbWUgbW9yZS4KCjIwMDUtMTEtMTEgMTk6MjY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjkuNSA9PT0KCjIwMDUtMTEtMTEgMTk6MjQ6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuOS41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjUKCjIwMDUtMTEtMTEgMTg6MjU6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IENvcHkgbW9yZSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfY29weSk6CgkgIENvcHkgbW9yZSBmbGFncy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBGaXggc29tZSBkb2NzLgoJICBNYWtlIF9pc19lcXVhbCBmYXN0IGluIHRoZSB0cml2aWFsIGNhc2VzLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgTW9yZSBkb2NzLiBTcGlmaWZ5IC5oIGZpbGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA1LTExLTExIDE3OjE2OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMS0xMSAxNjozNzoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogU21hbGwgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgSWYgd2UncmUgcHJvY2Vzc2luZyBhIGJ1ZmZlciBhbmQgbmVlZCB0byBhbGxvY2F0ZSBhbiBvdXRwdXQKCSAgYnVmZmVyLCB3ZSBjYW5ub3QgYWNjZXB0IGEgZm9ybWF0IGNoYW5nZS4gSWYgd2UgZGlkIGdldCBhCgkgIGZvcm1hdCBjaGFuZ2UsIHdlIGhhdmUgdG8gYWxsb2MgYSBidWZmZXIgb3Vyc2VsdmVzIG9mIHRoZQoJICByaWdodCBzaXplLgoKMjAwNS0xMS0xMSAxNjozNDoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogV2hpbGUgY2hlY2tpbmcgdGhlIGZsYWcgZm9yIHJlZW50cmFuY3kgaW4gdGhlIGdzdGNhcHMgZnVuY3Rpb24gaXMgbmljZSB0byBkZXRlY3QgcmVjdXJzaXZlIGludm9jYXRpb25zLC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzKSwgKGdzdF9wYWRfcGVlcl9nZXRfY2Fwcyk6CgkgIFdoaWxlIGNoZWNraW5nIHRoZSBmbGFnIGZvciByZWVudHJhbmN5IGluIHRoZSBnc3RjYXBzIGZ1bmN0aW9uCgkgIGlzIG5pY2UgdG8gZGV0ZWN0IHJlY3Vyc2l2ZSBpbnZvY2F0aW9ucywgaXQgYWxzbyBtYWtlcyBpdAoJICBpbXBvc3NpYmxlIHRvIGNhbGwgZ2V0Y2FwcyBmcm9tIG11bHRpcGxlIHRocmVhZHMsIHdoaWNoIG11c3QgYmUKCSAgcG9zc2libGUuIFNvLCBjaGVja2luZyBmb3IgcmVjdXJzaXZlIGNhbGxzIGhhcyB0byBnby4KCjIwMDUtMTEtMTEgMTU6MTk6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHN5bmMgb24gYnVmZmVycyB0aGF0IGZhbGwgcGFydGlhbGx5IG91dHNpZGUgb3VyIGN1cnJlbnQgc2VnbWVudC4gUHJldmVudHMgYW4gYXNzZXJ0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgRG9uJ3Qgc3luYyBvbiBidWZmZXJzIHRoYXQgZmFsbCBwYXJ0aWFsbHkgb3V0c2lkZSBvdXIgY3VycmVudAoJICBzZWdtZW50LiBQcmV2ZW50cyBhbiBhc3NlcnRpb24gZmFpbHVyZS9hYm9ydCBwbGF5aW5nIHNvbWUgZmlsZXMuCgoyMDA1LTExLTEwIDE4OjE1OjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfbWVzc2FnZV9zdGF0ZV9jaGFuZ2VkX2NoaWxkcmVuKTogU3R5bGUgZml4Li4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X21lc3NhZ2Vfc3RhdGVfY2hhbmdlZF9jaGlsZHJlbik6IFN0eWxlCgkgIGZpeC4uCgkgICogZ3N0L2dzdGJ1cy5jIChwb2xsX2Rlc3Ryb3ksIHBvbGxfZnVuYywgZ3N0X2J1c19wb2xsKTogSW1wbGVtZW50CgkgIGdzdF9idXNfcG9sbCB3aXRoIHRoZSBzaWduYWwgd2F0Y2guIEVuc3VyZXMgdGhhdCBwb2xsIGFuZCBhIHNpZ25hbAoJICB3YXRjaCBzZWUgdGhlIHNhbWUgbWVzc2FnZXMuCgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jICh0ZXN0X3dhdGNoX3dpdGhfcG9sbCk6IE5ldyB0ZXN0LCBjaGVja3MgdGhhdAoJICBhIHBvbGwgYW5kIGEgd2F0Y2ggYXQgdGhlIHNhbWUgdGltZSBnZXQgdGhlIHNhbWUgbWVzc2FnZXMuCgoyMDA1LTExLTEwIDE3OjM3OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IERvbid0IGNhbGwgZ3N0X2NhcHNfZG9fc2ltcGxpZnkgLSBpdCBkb2Vzbid0IHJlc3BlY3Qgb3JkZXIgb2YgY2FwcyBhbmQgaXQncyBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBEb24ndCBjYWxsIGdzdF9jYXBzX2RvX3NpbXBsaWZ5IC0gaXQgZG9lc24ndCByZXNwZWN0IG9yZGVyIG9mIGNhcHMKCSAgYW5kIGl0J3Mgbm90IG5lZWRlZC4KCjIwMDUtMTEtMTAgMTU6MDc6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGVkIHRvZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgdG9kby4KCjIwMDUtMTEtMTAgMTQ6NDU6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IEltcGxlbWVudCBjbG9jayBzeW5jIGluIGJhc2UgY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBJbXBsZW1lbnQgY2xvY2sgc3luYyBpbiBiYXNlIGNsYXNzLgoKMjAwNS0xMS0xMCAxMjozMjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRm9yd2FyZC1wb3J0IGEgMC44IHBhdGNoIHRvIGhhbmRsZSBlc2NhcGVkIHNwYWNlcyBpbiBzdHJ1Y3R1cmUgc3RyaW5nLCAgICAgICAgICBzbyB0aGF0IGdzdF9wYXJzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfZmllbGQpLAoJICAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6CgkgIEZvcndhcmQtcG9ydCBhIDAuOCBwYXRjaCB0byBoYW5kbGUgZXNjYXBlZCBzcGFjZXMgaW4gc3RydWN0dXJlIHN0cmluZywgICAgICAgICAgc28gdGhhdCBnc3RfcGFyc2VfbGF1bmNoKCkgY2FuIGRlYWwgd2l0aCBzcGFjZXMgaW4gZmlsdGVyZWQgbGluawoJICBjYXBzIChmaXhlcyAjMTY0NDc5KQoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIHVuaXQgdGVzdHMgZm9yIHRoaXMgY2hhbmdlCgoyMDA1LTExLTEwIDExOjE3OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IGRvY3MsIG1vdmUgc29tZSBTVEFURSBtYWNyb3MgdG8gcHJpdmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCBkb2NzLCBtb3ZlIHNvbWUgU1RBVEUgbWFjcm9zIHRvIHByaXZhdGUuCgoyMDA1LTExLTEwIDEwOjE3OjAxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEZ1cnRoZXIgaW1wcm92ZSBxdWVyeSBkb2NzLiBTdGlsbCBub3QgaGFwcHkgd2l0aCB0aGlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRnVydGhlciBpbXByb3ZlIHF1ZXJ5IGRvY3MuIFN0aWxsIG5vdCBoYXBweSB3aXRoIHRoaXMuCgoyMDA1LTExLTEwIDA5OjE5OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIGNoZWNrIGZvciBidWcgIzMxNzM0MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3IgYnVnICMzMTczNDEKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBTb21lIG1vcmUgc3BpZmZpZnlpbmcuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspOgoJICBDYWxsIHBlZXIgbGlua2Z1bmN0aW9uIGlmIHdlIGFyZSBhIHNvdXJjZSBwYWQuIFRvdGFsbHkgZml4ZXMKCSAgIzMxNzM0MQoJICAqIGdzdC9nc3RwYWQuYzoKCSAgVXBkYXRlIGRvY3MsIHNvdXJjZSBwYWRzIHNob3VsZCBjYWxsIHRoZSBwZWVyIGxpbmtmdW5jdGlvbgoJICBzbyB0aGV5IGNhbiBhdG9taWNhbGx5IHBlcmZvcm0gdGhlIHBhZCBsaW5rLgoKMjAwNS0xMS0wOSAxOTozMjozMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEltcHJvdmUvZml4IGRvY3VtZW50YXRpb24gZm9yIEdzdFF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wcm92ZS9maXggZG9jdW1lbnRhdGlvbiBmb3IgR3N0UXVlcnkuCgkgIFRoaXMgc3RpbGwgbmVlZHMgc29tZSBtb3JlIHdvcmsgdG8gZXhwbGFpbiB3aGF0IHRoZSBxdWVyaWVzIGFjdHVhbGx5IG1lYW4uCgoyMDA1LTExLTA5IDE4OjQxOjUzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBTbGlnaHRseSBwb2xpc2ggZG9jcyBmb3IgR3N0QWRhcHRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNsaWdodGx5IHBvbGlzaCBkb2NzIGZvciBHc3RBZGFwdGVyLgoKMjAwNS0xMS0wOSAxODoxMDo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuKjogVWJlci1zcGlmZnktc3BpZmZpZnkgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBVYmVyLXNwaWZmeS1zcGlmZmlmeSBzb21lIG1vcmUuCgoyMDA1LTExLTA5IDE3OjU1OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogVXNlIEdTVF9ERUJVR19GVU5DUFRSKCkgbW9yZSBleHRlbnNpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9zZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2dob3N0X3BhZF9pbml0KSwgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBVc2UgR1NUX0RFQlVHX0ZVTkNQVFIoKSBtb3JlIGV4dGVuc2l2ZWx5LgoKMjAwNS0xMS0wOSAxNzozMjoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuKjogRG9jdW1lbnRhdGlvbiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3VtZW50YXRpb24gZml4ZXMuCgoyMDA1LTExLTA5IDE3OjA2OjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6NDQ6NDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoKMjAwNS0xMS0wOSAxNjozMjo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBGaXggcmV2aXNpb24gZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIEZpeCByZXZpc2lvbiBkYXRhLgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgRml4IGRvY3MuCgoyMDA1LTExLTA5IDE2OjE2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgRml4IGRvY3MuCgoyMDA1LTExLTA5IDE2OjAwOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogTW92ZWQgdGhlIG1lc3NhZ2UgYXN5bmMgZGVsaXZlcnkgcHJpdmF0ZSBsb2NrIGFuZCBjb25kIHRvIHRoZSBwcml2YXRlIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE1vdmVkIHRoZSBtZXNzYWdlIGFzeW5jIGRlbGl2ZXJ5IHByaXZhdGUgbG9jayBhbmQgY29uZAoJICB0byB0aGUgcHJpdmF0ZSBzZWN0aW9uLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgRml4ZWQgZG9jcy4KCjIwMDUtMTEtMDkgMTU6MzQ6NDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBEb2N1bWVudCBHc3RVUklIYW5kbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgRG9jdW1lbnQgR3N0VVJJSGFuZGxlcgoKMjAwNS0xMS0wOSAxNTozMTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci4qOiBGaXggaXRlcmF0b3IgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfZm9sZCksIChnc3RfaXRlcmF0b3JfZm9yZWFjaCksCgkgIChnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20pOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBGaXggaXRlcmF0b3IgZG9jcy4KCjIwMDUtMTEtMDkgMTU6MTA6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmg6IERvY3VtZW50IGFub3RoZXIgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgRG9jdW1lbnQgYW5vdGhlciBmaWVsZC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBEb2N1bWVudC4KCjIwMDUtMTEtMDkgMTM6MTQ6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmg6IERvY3VtZW50ZWQgc3RydWN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBEb2N1bWVudGVkIHN0cnVjdHMuCgoyMDA1LTExLTA5IDEyOjM2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkZWQgc29tZSBuZXcgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGRlZCBzb21lIG5ldyBtYWNyb3MuCgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2NzIHVwZGF0ZXMuCgoyMDA1LTExLTA5IDEyOjAxOjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogU29tZSBtb3JlIGl0ZW1zIGZvciB0aGUgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBTb21lIG1vcmUgaXRlbXMgZm9yIHRoZSBUT0RPCgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBEb2N1bWVudCBHc3RDYXBzLgoKMjAwNS0xMS0wOSAxMDowNjozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHRoZSBiZWdpbm5pbmcgb2YgZG9jcyBoZXJlIC0tIGhhdmUgdG8gd29yayBvbiBzb21ldGhpbmcgZWxzZSBub3cgdGhvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCB0aGUgYmVnaW5uaW5nIG9mIGRvY3MgaGVyZSAtLSBoYXZlCgkgIHRvIHdvcmsgb24gc29tZXRoaW5nIGVsc2Ugbm93IHRoby4uLgoKMjAwNS0xMS0wOSAwOTo0ODoxNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIChnc3RfZmlsZV9zaW5rX3N0b3ApOiBOZXcgZnVuY3Rpb25zLCByZXBsYWNlIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgaGFuZGxlci4KCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6IEhvb2sgdXAgdGhlIHN0YXJ0IGFuZCBzdG9wIGZ1bmN0aW9ucy4KCSAgKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KTogRG9uJ3Qgc2V0IHRoZSBzdGF0ZSBjaGFuZ2UgaGFuZGxlciBhbnkKCSAgbW9yZS4gSXQgd2FzIGEgYml0IHVnbHkgdG9vLCBiZWluZyBzZXQgZnJvbSBoZXJlLi4uCgkgIChnc3RfZmlsZV9zaW5rX2dldF9wcm9wZXJ0eSwgZ3N0X2ZpbGVfc2lua19zZXRfcHJvcGVydHkpOgoJICBDbGVhbnVwcy4uLgoJICAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pOiBNb3JlIHJvYnVzdCBjaGVjayB0aGF0IGRvZXNuJ3QgY2FsbAoJICBHU1RfU1RBVEUuIFVnZ2dnZ2cuCgoyMDA1LTExLTA5IDA5OjQ3OjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgKGdzdF9maWxlX3Npbmtfc3RvcCk6IE5ldyBmdW5jdGlvbnMsIHJlcGxhY2UgdGhlIHN0YXRlIGNoYW5nZQoJICBoYW5kbGVyLgoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KTogSG9vayB1cCB0aGUgc3RhcnQgYW5kIHN0b3AgZnVuY3Rpb25zLgoJICAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpOiBEb24ndCBzZXQgdGhlIHN0YXRlIGNoYW5nZSBoYW5kbGVyIGFueQoJICBtb3JlLiBJdCB3YXMgYSBiaXQgdWdseSB0b28sIGJlaW5nIHNldCBmcm9tIGhlcmUuLi4KCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5LCBnc3RfZmlsZV9zaW5rX3NldF9wcm9wZXJ0eSk6CgkgIENsZWFudXBzLi4uCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbik6IE1vcmUgcm9idXN0IGNoZWNrIHRoYXQgZG9lc24ndCBjYWxsCgkgIEdTVF9TVEFURS4gVWdnZ2dnZy4KCjIwMDUtMTEtMDggMTI6MzM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEhvbGQgU1RSRUFNX0xPQ0sgd2hpbGUgcHVzaGluZyBuZXdzZWdtZW50IG9yIHRhZyBldmVudHMgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgSG9sZCBTVFJFQU1fTE9DSyB3aGlsZSBwdXNoaW5nIG5ld3NlZ21lbnQgb3IgdGFnIGV2ZW50cyBhcyB3ZWxsLgoKMjAwNS0xMS0wOCAxMTo1MjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIHJldmVydCBwYXJ0IG9mIHRoZSBwYXRjaCBzbyB0aGF0IHBhdGhzIGFyZSBjb3JyZWN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgcGFydCBvZiB0aGUgcGF0Y2ggc28gdGhhdCBwYXRocyBhcmUgY29ycmVjdAoKMjAwNS0xMS0wOCAxMToxMzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEF2b2lkIGV4Y2Vzc2l2ZSB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBdm9pZCBleGNlc3NpdmUgdHlwZWNoZWNraW5nIGluIG1hY3Jvcy4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKSwKCSAgKGdzdF9taW5pX29iamVjdF9pbml0KSwgKGdzdF9taW5pX29iamVjdF9uZXcpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2ZyZWUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksIChnc3Rfb2JqZWN0X2luaXQpLAoJICAoZ3N0X29iamVjdF9maW5hbGl6ZSk6CgkgIFJlbW92ZSBjcnVmdCBjb2RlLCBvcHRpbWl6ZSBhbGxvY190cmFjZS4KCjIwMDUtMTEtMDcgMTg6MTY6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBmaXggdXAgUFMxIGZvciBzeXN0ZW1zIHRoYXQgdHJ5IHRvIHJlc2V0IGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZml4IHVwIFBTMSBmb3Igc3lzdGVtcyB0aGF0IHRyeSB0byByZXNldCBpdAoKMjAwNS0xMS0wNyAxMDozMzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU2V0IHRoZSBzZWdtZW50X2VuZCB0byAtMSBpbml0aWFsbHkuIEZpeGVkIHR5cGVmaW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgU2V0IHRoZSBzZWdtZW50X2VuZCB0byAtMSBpbml0aWFsbHkuIEZpeGVkIHR5cGVmaW5kLgoKMjAwNS0xMS0wNyAxMDoxMzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogRGVidWcgY2F0ZWdvcnkgc2hvdWxkIGJlICdhZGFwdGVyJywgbm90ICdHc3RBZGFwdGVyJy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBEZWJ1ZyBjYXRlZ29yeSBzaG91bGQgYmUgJ2FkYXB0ZXInLCBub3QgJ0dzdEFkYXB0ZXInLgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jbGFzc19pbml0KSwgKGdzdF9jb2xsZWN0cGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwgKGdzdF9jb2xsZWN0cGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgIEFkZCBkZWJ1ZyBjYXRlZ29yeSBhbmQgc29tZSBkZWJ1Z2dpbmcgb3V0cHV0LiBVc2UgYm9pbGVycGxhdGUKCSAgbWFjcm9zLiBSZW1vdmUgc29tZSBleHRyYW5lb3VzIHdvcmRzIGZyb20gZG9jcy4KCjIwMDUtMTEtMDUgMTU6MTQ6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzogU2hvcnRlbiBieSAzMCUgdmlhIHVzZSBvZiBib2lsZXJwbGF0ZSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBTaG9ydGVuIGJ5IDMwJSB2aWEgdXNlIG9mIGJvaWxlcnBsYXRlCgkgIG1hY3JvLgoKMjAwNS0xMS0wNCAyMDoxMjowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGFkZGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBtb3JlIGRvY3MgYWRkZWQKCjIwMDUtMTEtMDQgMTU6MzM6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNtYWxsIHVwZGF0ZSB0byBzdG9wIGF0IHRoZSBjb25maWd1cmVkIHNlZ21lbnRfZW5kIHBvc2l0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgU21hbGwgdXBkYXRlIHRvIHN0b3AgYXQgdGhlIGNvbmZpZ3VyZWQgc2VnbWVudF9lbmQKCSAgcG9zaXRpb24uCgoyMDA1LTExLTA0IDE1OjAyOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuKjogYWRkZWQgbWlzc2luZyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBhZGRlZCBtaXNzaW5nIGRvY3MKCjIwMDUtMTEtMDQgMTQ6MzU6MTAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENoZWNrIGlmIHdlIGFyZSBkb2luZyBhIHNlZ21lbnQgc2VlayBhbmQgaGF2ZSBhcnJpdmVkIGF0IHRoZSBlbmQgb2YgdGhhdCBzZWdtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgQ2hlY2sgaWYgd2UgYXJlIGRvaW5nIGEgc2VnbWVudCBzZWVrIGFuZCBoYXZlIGFycml2ZWQgYXQgdGhlCgkgIGVuZCBvZiB0aGF0IHNlZ21lbnQuCgoyMDA1LTExLTA0IDEyOjA4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb24ndCBsZWFrIGEgbXV0ZXggdW5sb2NrIGluIGNhc2Ugb2YgYW4gZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3NldF9zeW5jX2hhbmRsZXIpOgoJICBEb24ndCBsZWFrIGEgbXV0ZXggdW5sb2NrIGluIGNhc2Ugb2YgYW4gZXJyb3IuCgkgICogZ3N0L2dzdGJ1cy5oOgoJICBEb2MgZml4ZXMuCgoyMDA1LTExLTA0IDExOjQzOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBHZXQgdGhlIGNvbnRleHQgdG8gd2FrZSB1cCBvbmx5IG9uY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX2luaXQpLAoJICAoZ3N0X2J1c19wb3N0KToKCSAgR2V0IHRoZSBjb250ZXh0IHRvIHdha2UgdXAgb25seSBvbmNlLgoKMjAwNS0xMS0wMyAyMDoxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIFRPRE8uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBJZiB3ZSBhcmUgZ29pbmcgdG8gUExBWUlORywgcG9zdCB0aGUgcmlnaHQgcGVuZGluZyBzdGF0ZQoJICB3aGVuIHdlIHBvc3QgdGhlIGludGVybWVkaWF0ZSBwYXVzZWQgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgcG9zdCBzdGF0ZSBjaGFuZ2VzIHRoYXQgd2VyZSBiZXR3ZWVuIHRoZSBzYW1lIHN0YXRlCgkgIGFuZCB3ZXJlIG5vdCBBU1lOQy4KCjIwMDUtMTEtMDMgMjA6MTQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIElmIHdlIGFyZSBnb2luZyB0byBQTEFZSU5HLCBwb3N0IHRoZSByaWdodCBwZW5kaW5nIHN0YXRlCgkgIHdoZW4gd2UgcG9zdCB0aGUgaW50ZXJtZWRpYXRlIHBhdXNlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBwb3N0IHN0YXRlIGNoYW5nZXMgdGhhdCB3ZXJlIGJldHdlZW4gdGhlIHNhbWUgc3RhdGUKCSAgYW5kIHdlcmUgbm90IEFTWU5DLgoKMjAwNS0xMS0wMyAxOTozODo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBkb2MgZml4ZXMKCjIwMDUtMTEtMDMgMTc6NTM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X2xpdmVzcmNfc2luayk6IEFkZCBjaGVja3MgdGhhdCB0aGUgc3RhdGUtY2hhbmdlZCBtZXNzYWdlcyBhY3R1YWxseSBoYXZlIHRoZSByaWdodCBvcmRlciBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9saXZlc3JjX3NpbmspOiBBZGQgY2hlY2tzIHRoYXQgdGhlCgkgIHN0YXRlLWNoYW5nZWQgbWVzc2FnZXMgYWN0dWFsbHkgaGF2ZSB0aGUgcmlnaHQgb3JkZXIgYW5kIHRoZSByaWdodAoJICB2YWx1ZXMuCgoyMDA1LTExLTAzIDE3OjEyOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IEFkZGVkIHNvbWUgbW9yZSBjaGVja3MuIFNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBOT19QUkVST0xMIGVsZW1lbnRzIGFyZSBpbiB0aGUgcGlwZWxpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSBjaGVja3MuIFNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBOT19QUkVST0xMCgkgIGVsZW1lbnRzIGFyZSBpbiB0aGUgcGlwZWxpbmUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBQb3N0IFJFQURZLT5QQVVTRUQgc3RhdGUgY2hhbmdlIG1lc3NhZ2VzIHRvby4KCSAgRml4IGJ1ZyB3aGVyZSBWT0lEIHdhcyBwb3N0ZWQgYXMgcGVuZGluZyBzdGF0ZS4uLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgdXNlIF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKCkgdG8gY29udGludWUgdGhlIHN0YXRlIGNoYW5nZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIExvdHMgb2Ygc3RhdGUgY2hhbmdlIGNsZWFudXBzLCBhc3NpZ24gdGhlIFNUQVRFX1JFVFVSTiBpbgoJICBhIG5ldyBjb250aW51ZV9zdGF0ZSgpIGZ1bmN0aW9uIHRoYXQgYWxzbyBwcm9wYWdhdGVzIHRoZQoJICBsYXN0IHJldHVybiB2YWx1ZSBmcm9tIGEgc3RhdGUgY2hhbmdlIHRvIHRoZSBhcHAuCgkgIFVwZGF0ZSBzb21lIGRlYnVnIHN0YXRlbWVudHMgd2l0aCBwcm9wZXIgY2F0ZWdvcnkuCgoyMDA1LTExLTAzIDE0OjIyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy86IFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBQZW9wbGUgdGhpbmsgISEgaXMgdWdseSwgdGhpcyBsb29rcyBiZXR0ZXIuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgIFJlbW92ZSAhISBzaW5jZSBpdCdzIGZpeGVkIGVsc2V3aGVyZSBub3cuCgoyMDA1LTExLTAzIDEzOjUyOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQWRkICEhIHRvIF9GTEFHX0lTX1NFVCBtYWNyb3MgdG8gbWFrZSB0aGUgcmVzdWx0IGJvb2xlYW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBBZGQgISEgdG8gX0ZMQUdfSVNfU0VUIG1hY3JvcyB0byBtYWtlIHRoZSByZXN1bHQgYm9vbGVhbi4KCjIwMDUtMTEtMDMgMTI6NDg6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IGNvbXBhcmluZyBhIGZsYWcgYW5kIGEgZ2Jvb2xlYW4gcmFyZWx5IHJldHVybnMgY29oZXJlbnQgcmVzdWx0cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgY29tcGFyaW5nIGEgZmxhZyBhbmQgYSBnYm9vbGVhbiByYXJlbHkgcmV0dXJucyBjb2hlcmVudCByZXN1bHRzLi4uCgkgIEFkZGVkIHR3byBjaGFyYWN0ZXJzICghISkgdG8gbWFrZSB0aGF0IHdvcmsgY29ycmVjdGx5LgoKMjAwNS0xMS0wMyAxMjoxNjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIEZpeCBzb21lIHR5cG9zLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBEb24ndCBhc3N1bWUgYSBtaW5pb2JqZWN0IHRoYXQgaXNuJ3QgYSBidWZmZXIgaXMgYW4KCSAgZXZlbnQgKGl0IGNvdWxkIGJlIHRoYXQgdGhlcmUgaXMgYSByZWZjb3VudGluZwoJICBwcm9ibGVtIHNvbWV3aGVyZSBhbmQgdGhlIHBvaW50ZXIgaXMgc3RhbGUgYW5kCgkgIHJlZmVycyB0byBhbiBhbHJlYWR5IGRlc3Ryb3llZCBtaW5pb2JqZWN0KS4KCjIwMDUtMTEtMDMgMTA6NTY6MjMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDMgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6IEZpeCBzb21lIHR5cG9zLgoKMjAwNS0xMS0wMyAwOToxODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDogVXBkYXRlIHNlZWsgZXhhbXBsZSBhbmQgZXhwbGFuYXRpb25zIHRvIGN1cnJlbnQgMC45IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICBVcGRhdGUgc2VlayBleGFtcGxlIGFuZCBleHBsYW5hdGlvbnMgdG8gY3VycmVudCAwLjkgQVBJLgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFJlbW92ZSBGSVhNRSBjb21tZW50IG5vdyB0aGF0IHRoZSBmb3VuZCBjYXBzCgkgIGFyZSB1bnJlZmZlZC4KCjIwMDUtMTEtMDMgMDA6Mzk6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgQWRkIGFub3RoZXIgR1NUX1NUUl9OVUxMIGluc3RhbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgYW5vdGhlciBHU1RfU1RSX05VTEwgaW5zdGFuY2UKCjIwMDUtMTEtMDIgMTk6MDQ6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZvbGxvdy11cCB0byBXaW0ncyBwYXRjaCwgc29sdmVzIGRlYWRsb2NrIGZvciBibG9ja2VkIGFuZCBmbHVzaGluZyBwYWRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGhhbmRsZV9wYWRfYmxvY2spOgoJICBGb2xsb3ctdXAgdG8gV2ltJ3MgcGF0Y2gsIHNvbHZlcyBkZWFkbG9jayBmb3IgYmxvY2tlZCBhbmQgZmx1c2hpbmcgcGFkcwoKMjAwNS0xMS0wMiAxODo0NDoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IHR5cG8gaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggdHlwbyBpbiBkb2NzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpOgoJICBSZW1vdmUgdW51c2VkIHZhbHVlLgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBNZW50aW9uIHRoYXQgdGhlIHJldHVybmVkIGVsZW1lbnQgaXMgcmVmZmVkIGluIHRoZSBkb2NzLgoKMjAwNS0xMS0wMiAxODozMzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVW5sb2NrIGJsb2NrZWQgcGFkcyB3aGVuIHRoZXkgYXJlIGZsdXNoZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFVubG9jayBibG9ja2VkIHBhZHMgd2hlbiB0aGV5IGFyZSBmbHVzaGVkLgoKMjAwNS0xMS0wMiAxNTozNDoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgZG9jIHVwZGF0ZXMKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBmaXggZm9yIGEgbmFzdHkgbGl0dGxlIG1pc3NlZCBzaXR1YXRpb24gd2hlcmUgYW4gaW5zdGFsbGVkIHBsdWctaW4KCSAgd2hpY2ggd2FzIGluIHRoZSBjYWNoZSBkaWQgbm90IGdldCBvdmVycmlkZGVuIGJ5IGFuIHVuaW5zdGFsbGVkIG9uZQoJICB3aGljaCB3YXMgZWFybGllciBpbiB0aGUgcGx1Z2luIHBhdGggYmVjYXVzZSB0aGUgbmV3bHkgY3JlYXRlZCBwbHVnaW4KCSAgZm9yIHRoZSB1bmluc3RhbGxlZCBvbmUgKG5vdCBpbiB0aGUgcmVnaXN0cnkpIGRpZG4ndCBnZXQgaXRzCgkgIC0+cmVnaXN0ZXJlZCBzZXQgdG8gVFJVRQoKMjAwNS0xMS0wMiAxNTowODowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEd1YXJkIHB1YmxpYyBBUEkgd2l0aCBhc3NlcnRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX3NldF9mdW5jdGlvbiksCgkgIChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdHBhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdHBhZHNfaXNfYWN0aXZlKSwgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0X3JhbmdlKSwgKGdzdF9jb2xsZWN0cGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCksIChnc3RfY29sbGVjdHBhZHNfcGVlayksCgkgIChnc3RfY29sbGVjdHBhZHNfcG9wKSwgKGdzdF9jb2xsZWN0cGFkc19hdmFpbGFibGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3JlYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX2ZsdXNoKToKCSAgR3VhcmQgcHVibGljIEFQSSB3aXRoIGFzc2VydGlvbnMuCgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggZG9jcyBmb3IgZ3N0X3BhZF9zZXRfbGlua19mdW5jdGlvbigpLgoKMjAwNS0xMS0wMiAxNDoyODowMiArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6IFVucmVmIGZvdW5kX2NhcHMgYWZ0ZXIgd2UgdXNlZCBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBVbnJlZiBmb3VuZF9jYXBzIGFmdGVyIHdlIHVzZWQgaXQuCgoyMDA1LTExLTAyIDEyOjIwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRG9uJ3QgdHJ5IHRvIHJlZiBOVUxMLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspOgoJICBEb24ndCB0cnkgdG8gcmVmIE5VTEwuCgoyMDA1LTExLTAyIDA5OjMxOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzCgoyMDA1LTExLTAyIDA5OjI3OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzCgoyMDA1LTExLTAyIDA5OjI0OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGdlbmVyYXRlZCBjb25maWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBnZW5lcmF0ZWQgY29uZmlnCgoyMDA1LTExLTAyIDA5OjI0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBwcm92aWRlIGEgR1NUX0ZVTkNUSU9OIHRoYXQganVzdCBnaXZlcyBhIHN0cmluZyBmb3Igbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcm92aWRlIGEgR1NUX0ZVTkNUSU9OIHRoYXQganVzdCBnaXZlcyBhIHN0cmluZyBmb3Igbm93CgoyMDA1LTExLTAyIDA4OjU2OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGUgd2luMzIgY29waWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgY29waWVzCgoyMDA1LTExLTAxIDE5OjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgbW9yZSBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBkb2MgdXBkYXRlcwoKMjAwNS0xMS0wMSAxNzo0NTo0NiArMDAwMCAgTHVjYSBPZ25pYmVuZSA8bHVvZ25pQHRpbi5pdD4KCgkgIGdzdC9nc3QuYzogZml4IGRvY3MuIHBvcHQgaXMgZGVhdGgsIGxvbmcgbGl2ZSBHT3B0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIGZpeCBkb2NzLiBwb3B0IGlzIGRlYXRoLCBsb25nIGxpdmUgR09wdGlvbi4KCjIwMDUtMTAtMzEgMTE6NDQ6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IFNtYWxsIGRvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgU21hbGwgZG9jIGZpeC4KCjIwMDUtMTAtMzEgMDk6NTI6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEJvbyEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMzEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogQm9vIQoJICAqIGdzdC9nc3RxdWV1ZS5jIChnc3RfcXVldWVfY2hhaW4pOiBGaXggZG93bnN0cmVhbSBsZWFreSBtb2RlLgoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOiBObwoJICBuZWVkIHRvIHNlcmlhbGl6ZSBwcm9wZXJ0eSBub3RpZmljYXRpb25zIG9uIEdMaWIgMi44LiBHTGliIDIuNiBoYXMKCSAgdGhlIHBvc3NpYmlsaXR5IG9mIGRlYWRsb2NrcyBoZXJlIGlmIGNvZGUgY2FsbGluZyBub3RpZnkoKSBvcgoJICBzZXQoKSBoYXMgYSBsb2NrIHRoYXQgY2FuIGJlIHRha2VuIGluIGFub3RoZXIgbm90aWZ5IGhhbmRsZXIgKEFCQkEKCSAgd2l0aCBjbGFzcyBsb2NrIGFuZCBlLmcuIHB5dGhvbiBHSUwgc3RhdGUgbG9jaykuCgoyMDA1LTEwLTI4IDE4OjE4OjIzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTI4ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGJ1cy5jOiBEb2MgdXBkYXRlcy4KCjIwMDUtMTAtMjggMTg6MTQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgRG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTI4IDE4OjEwOjQxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9nc3QvOiB0aGUgR3N0VVJJVHlwZSBkb2N1bWVudGF0aW9uIHBhZ2UgaXMgcHJpdmF0ZSwgaXQgb25seSBkZWZpbmVzIEdzdFVSSVR5cGUgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlIEdzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdGhlIEdzdFVSSVR5cGUgZG9jdW1lbnRhdGlvbiBwYWdlIGlzIHByaXZhdGUsIGl0IG9ubHkgZGVmaW5lcyBHc3RVUklUeXBlCgkgIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIGluIHRoZSBHc3RVUklIYW5kbGVyIHBhZ2UKCjIwMDUtMTAtMjggMTc6MzU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDUtMTAtMjggMTc6MzU6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2N1bWVudGVkIHRoZSBjbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIERvY3VtZW50ZWQgdGhlIGNsb2Nrcy4KCjIwMDUtMTAtMjggMTc6MzQ6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZWQgY29uZmlnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIGNvbmZpZwoKMjAwNS0xMC0yOCAxNzoyMDo0NSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBXb3JrIGFyb3VuZCBndGtkb2MgZGVmaWNpZW5jaWVzLCBkb2N1bWVudCBhIG1hY3JvIGRpZmZlcmVudGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgV29yayBhcm91bmQgZ3RrZG9jIGRlZmljaWVuY2llcywgZG9jdW1lbnQgYSBtYWNybyBkaWZmZXJlbnRseS4KCjIwMDUtMTAtMjggMTc6MDE6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgSW1wcm92ZSBHc3RCdWZmZXIgZG9jdW1lbnRhdGlvbi4gSXQncyBub3cgMTAwJSBTcGlmZmllci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEltcHJvdmUgR3N0QnVmZmVyIGRvY3VtZW50YXRpb24uIEl0J3Mgbm93IDEwMCUgU3BpZmZpZXIuCgoyMDA1LTEwLTI4IDE2OjU0OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJICBzb21lIHN0eWxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIHN0eWxlIGZpeGVzCgoyMDA1LTEwLTI4IDE2OjQ2OjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtb3ZlIHNvbWUgbWFjcm9zIHRvIHByaXZhdGUgc2VjdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbW92ZSBzb21lIG1hY3JvcyB0byBwcml2YXRlIHNlY3Rpb25zCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBhZGQgZGVzY3JpcHRpb25zIHByb3ZpZGVkIGJ5IGRzIGFuZCBzb21lIG1vcmUKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1hcmsgbWFjcm8gYXMgdG8gYmUgcmVtb3ZlZAoKMjAwNS0xMC0yOCAxNjoyMToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBhbiBpdGVtIHRvIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBhbiBpdGVtIHRvIFRPRE8uCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfZm9sZCksCgkgIChnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20pOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZGQgaXRlcmF0b3IgZG9jcy4KCjIwMDUtMTAtMjggMTY6MDg6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9SRUFETUU6CgkgIGFkZCBzdHlsZSBndWlkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHN0eWxlIGd1aWRlCgoyMDA1LTEwLTI4IDEwOjQ1OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBsZWFrIGNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCk6CgkgIERvbid0IGxlYWsgY2xhc3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBBbiBFT1MgZXZlbnQgbWFya3MgdGhlIHF1ZXVlIGFzIGNvbXBsZXRlbHkgZmlsbGVkLgoKMjAwNS0xMC0yNyAyMDo1OTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBGaXggZGVidWdnaW5nLAoJICBQcm90ZWN0IHRyYW5zZm9ybSBhbmQgY29uY3VycmVudCBidWZmZXIgYWxsb2Mgd2l0aCBhIG5ldyBsb2NrLgoJICBUcnkgbm90IHRvIGJyZWFrIEFCSS9BUEkuCgoyMDA1LTEwLTI3IDE5OjM3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNb3ZlIHNvbWUgc3R1ZmYgYXJvdW5kIGFuZCBjbGVhbnVwIHRoaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NvbmZpZ3VyZV9zZWdtZW50KSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY191bmxvY2spLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfZGVhY3RpdmF0ZSksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTW92ZSBzb21lIHN0dWZmIGFyb3VuZCBhbmQgY2xlYW51cCB0aGluZ3MuCgoyMDA1LTEwLTI3IDE1OjQ4OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBZGQgbWlzc2luZyBicmVhayBzdGF0ZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICBBZGQgbWlzc2luZyBicmVhayBzdGF0ZW1lbnRzLgoKMjAwNS0xMC0yNyAxMzo0NzozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQW4gZXh0cmEgcmVmY291bnQgaXMgdGFrZW4gaW4gYmFzZXNyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbiBleHRyYSByZWZjb3VudCBpcyB0YWtlbiBpbiBiYXNlc3JjLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgU21hbGwgY2xlYW51cHMsIGNoZWNrIGZvciBmbHVzaGluZyBhZnRlciBiZWluZyB1bmxvY2tlZCBmcm9tIHRoZQoJICBMSVZFX0xPQ0suIHRha2UgcmVmY291bnRzIGNvcnJlY3RseSAobm90IHlldCBldmVyeXdoZXJlKS4KCSAgRG9uJ3Qgc2VuZCBvdXQgRU9TIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA1LTEwLTI3IDA4OjU1OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBtb3JlIGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgU29tZSBtb3JlIGRlYnVnLgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9pbml0KSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFJlbW92ZSBvbGQgb3B0aW9uLgoKMjAwNS0xMC0yNiAxODo1Nzo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4aW5nIGV4YW1wbGVzIGZpeGluZyBkb2NzIHR5cG9zIGNoYW5naW5nIGxvZyBwcmlvcml0eSBpbiBlcnJvciBzaXR1YXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgZml4aW5nIGV4YW1wbGVzCgkgIGZpeGluZyBkb2NzIHR5cG9zCgkgIGNoYW5naW5nIGxvZyBwcmlvcml0eSBpbiBlcnJvciBzaXR1YXRpb25zCgoyMDA1LTEwLTI2IDEwOjExOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgbWFrZSBzdXJlIGRpcnMgZ2V0IGNoZWNrZWQgb3V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHN1cmUgZGlycyBnZXQgY2hlY2tlZCBvdXQKCjIwMDUtMTAtMjYgMDk6NTY6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIGZpeCBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdAoKMjAwNS0xMC0yNSAxNzo0MToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU29tZSBkb2MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9pbml0KSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgIFNvbWUgZG9jIGFuZCBkZWJ1ZyB1cGRhdGVzLgoJICBDYWNoZSBwcmV2aW91c2x5IHJlcXVlc3RlZCBxdWVyeSBEVVJBVElPTiBmb3Igc3BlZWQuIGludmFsaWRhdGUKCSAgY2FjaGVkIGR1cmF0aW9uIGlmIGVsZW1lbnQgcG9zdHMgYSBEVVJBVElPTiBtZXNzYWdlLgoKMjAwNS0xMC0yNSAxNTozOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETy4KCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25faW5pdCksIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICBIYW5kbGUgU0VHTUVOVF9TVEFSVC9ET05FIG1lc3NhZ2VzIGNvcnJlY3RseS4KCSAgTW9yZSBldm9sdmVkIHF1ZXJ5IGFsZ29yaXRobSB0aGF0IGhhbmRsZXMgZHVyYXRpb24gcXVlcmllcwoJICBjb3JyZWN0bHkuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICBTb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIGRvYy4KCjIwMDUtMTAtMjUgMTA6MTU6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB1c2UgaW52YWxpZCBzdHJlYW1fdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRG9uJ3QgdXNlIGludmFsaWQgc3RyZWFtX3RpbWUuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpOgoJICBzdHJlYW1fdGltZSBpbiBuZXdzZWdtZW50IGNhbm5vdCBiZSB1bmRlZmluZWQuCgoyMDA1LTEwLTI1IDEwOjEyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdGhlIGNoYW5nZWxvZyBsYXN0IHRpbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0aGUgY2hhbmdlbG9nIGxhc3QgdGltZQoKMjAwNS0xMC0yNCAxNTo0MTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBEb2MgZml4LgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCk6CgkgIEZpeCBwb3RlbnRpYWwgZGVhZGxvY2sgd2hlbiBRVUVVRV9MT0NLIGlzIHRha2VuIGJlZm9yZSBTVFJFQU1fTE9DSy4KCjIwMDUtMTAtMjQgMTE6NTY6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy90bXBsLzogdGhlc2UgYXJlIG9ic29sZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwYXJhbS5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwbGluaW50LnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBtYW4uc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcHNtb290aC5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdHVuaXRjb252ZXJ0LnNnbWw6CgkgIHRoZXNlIGFyZSBvYnNvbGV0ZQoKMjAwNS0xMC0yNCAwOToxMzoyNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEZpeCBzb21lIG1pbm9yIGRvY3VtZW50YXRpb24gdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBzb21lIG1pbm9yIGRvY3VtZW50YXRpb24gdHlwb3MKCjIwMDUtMTAtMjMgMjM6MDQ6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNCA9PT0KCjIwMDUtMTAtMjMgMjI6MzA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB0aW1lIHRvIHJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRpbWUgdG8gcmVsZWFzZQoKMjAwNS0xMC0yMyAxMDo0OToyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgYWRkIG1vcmUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIGZpbGVzCgoyMDA1LTEwLTIzIDEwOjI5OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFVzZSBmc2Vla28oKSBhbmQgZnRlbGxvKCkgaWYgYXZhaWxhYmxlLiBXaGVuIGZhbGxpbmcgYmFjayBvbiBsc2VlaygpIHRvIGdldCB0aGUgY3VycmVudCBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KToKCSAgVXNlIGZzZWVrbygpIGFuZCBmdGVsbG8oKSBpZiBhdmFpbGFibGUuIFdoZW4gZmFsbGluZyBiYWNrIG9uCgkgIGxzZWVrKCkgdG8gZ2V0IHRoZSBjdXJyZW50IG9mZnNldCwgZmZsdXNoKCkgZmlyc3QgdG8gbWFrZSBzdXJlCgkgIGV2ZXJ5dGhpbmcgaXMgdXAtdG8tZGF0ZSBhbmQgd2UgZ2V0IHRoZSByaWdodCBvZmZzZXQuCgoyMDA1LTEwLTIzIDA5OjA4OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBvL1BPVEZJTEVTLmluOgoJICByZW1vdmUgcHJlbWF0dXJlbHkgYWRkZWQgZXJyb3IgY2F0ZWdvcnkgYW5kIGNsZWFuIHVwIHRoZSBpbnN0YW5jZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBwcmVtYXR1cmVseSBhZGRlZCBlcnJvciBjYXRlZ29yeSBhbmQgY2xlYW4gdXAgdGhlIGluc3RhbmNlcwoKMjAwNS0xMC0yMSAxNzo1MzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNpbXBseSBzZXQgdGhlIHJpZ2h0IGZsYWcgd2hlbiBnb2luZyB0byBwbGF5aW5nLCB0aGF0J3MgYWxsIHdlIG5lZWQgdG8gZG8gaW5zdGVhZCBvZiBjYWxsaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNpbXBseSBzZXQgdGhlIHJpZ2h0IGZsYWcgd2hlbiBnb2luZyB0byBwbGF5aW5nLCB0aGF0J3MgYWxsCgkgIHdlIG5lZWQgdG8gZG8gaW5zdGVhZCBvZiBjYWxsaW5nIGEgZnVuY3Rpb24gaW5zaWRlIHRoZSBvYmplY3QKCSAgbG9jayAodGhhdCBjb3VsZCB0YWtlIHRoZSBsb2NrIGFzIHdlbGwgYW5kIGRlYWRsb2NrKQoKMjAwNS0xMC0yMSAxNjoxODo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3Qgd2FybiwgdGhlIHBlZXIgZWxlbWVudCBrbm93cyB3aGF0IHRvIGRvIGJlc3Qgd2hlbiB0aGUgc2VlayBmYWlsZWQsIGl0IG1pZ2h0IHRyeSBzb21ldGhpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIERvbid0IHdhcm4sIHRoZSBwZWVyIGVsZW1lbnQga25vd3Mgd2hhdCB0byBkbyBiZXN0IHdoZW4KCSAgdGhlIHNlZWsgZmFpbGVkLCBpdCBtaWdodCB0cnkgc29tZXRoaW5nIGVsc2UuCgoyMDA1LTEwLTIxIDE2OjE0OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBGaXggc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgRml4IHNlZWtpbmcuCgoyMDA1LTEwLTIxIDE1OjEzOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6IE1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgIE1vcmUgZG9jcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBDb3JyZWN0bHkgc2V0IGNhcHMsIGV2ZW4gb24gdGhlIHN1YmJ1ZmVyLgoKMjAwNS0xMC0yMSAxMTozNjozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFuZCAyJSBtb3JlIGRvYyBjb3ZlcmFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2ZpbmFsaXplKSwgKGdzdF90YXNrX2Z1bmMpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFuZCAyJSBtb3JlIGRvYyBjb3ZlcmFnZS4KCjIwMDUtMTAtMjEgMDk6MjQ6MjggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KTogQ2xlYW4gdXAgcGVyY2VudCBwb3NpdGlvbiByZXBvcnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KTogQ2xlYW4gdXAgcGVyY2VudAoJICBwb3NpdGlvbiByZXBvcnRpbmcuCgoyMDA1LTEwLTIwIDIxOjA4OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKGdzdF9lcnJvcl9nZXRfbWVzc2FnZSk6CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNb3JlIGRvY3MuCgoyMDA1LTEwLTIwIDIwOjQ2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQW5vdGhlciAxJSBtb3JlIGNvdmVyYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYXJzZS5jOgoJICBBbm90aGVyIDElIG1vcmUgY292ZXJhZ2UuCgoyMDA1LTEwLTIwIDIwOjI1OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgWWF5ISAxJSBtb3JlIGRvY3MgY292ZXJhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFlheSEgMSUgbW9yZSBkb2NzIGNvdmVyYWdlLgoKMjAwNS0xMC0yMCAxOTo0NzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IERvY3MgYW5kIGNvbnNpc3RlbmN5IGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfcXVlcnlfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIERvY3MgYW5kIGNvbnNpc3RlbmN5IGZpeGVzLgoKMjAwNS0xMC0yMCAxOTozMDo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0YXNrLio6IE1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhc2suYzoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBNb3JlIGRvY3MuCgoyMDA1LTEwLTIwIDE3OjIyOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBSZXdvcmtlZCB0aGUgbWVzc2FnZSBoYW5kbGluZyBhIGJpdCwgY2FjaGUgdGhlIG1lc3NhZ2VzIGluc3RlYWQgb2Ygb25seSB0aGUgc2VuZGVycy4gYWxvd3MgdXMgdG8gZG8gbW9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgUmV3b3JrZWQgdGhlIG1lc3NhZ2UgaGFuZGxpbmcgYSBiaXQsIGNhY2hlIHRoZSBtZXNzYWdlcyBpbnN0ZWFkIG9mCgkgIG9ubHkgdGhlIHNlbmRlcnMuIGFsb3dzIHVzIHRvIGRvIG1vcmUgaW4gdGhlIGZ1dHVyZS4KCjIwMDUtMTAtMjAgMTc6MTg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgRG9uJ3QgdXNlIGNsb2NrIHRpbWUgdG8gcmVwb3J0IHBvc2l0aW9uIHdoZW4gaW4gRU9TLgoKMjAwNS0xMC0yMCAxMzoxMDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBpbnRlcmZhY2Ugb3V0cHV0IHdpdGggZ3N0LWluc3BlY3QgLWE7IGRvbid0IHByaW50IG5ld2xpbmVzIGFmdGVyIGRvdWJsZS9mbG9hdCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggaW50ZXJmYWNlIG91dHB1dCB3aXRoIGdzdC1pbnNwZWN0IC1hOyBkb24ndCBwcmludAoJICBuZXdsaW5lcyBhZnRlciBkb3VibGUvZmxvYXQgcHJvcGVydGllcy4KCjIwMDUtMTAtMjAgMTE6NDg6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTcGVlZCB1cCBjdXJyZW50IHBvc2l0aW9uIGNhbGN1bGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFNwZWVkIHVwIGN1cnJlbnQgcG9zaXRpb24gY2FsY3VsYXRpb24uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpOgoJICBDb3JyZWN0bHkgc2V0IHN0cmVhbSBwb3NpdGlvbiBpbiBuZXdzZWdtZW50LgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoYWRkX3RvX3F1ZXVlKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICBDbGVhbiB1cCBkZWJ1Z2dpbmcgaW5mbwoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFBhdXNlIHRhc2sgZmFzdGVyLgoKMjAwNS0xMC0xOSAxNzowNjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBxdWVyeSBoYW5kbGluZyBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGRvX3BsYXlpbmcpOgoJICBGaXggcXVlcnkgaGFuZGxpbmcgYWdhaW4uCgoyMDA1LTEwLTE5IDE1OjUwOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQVBJIGNoYW5nZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChkb19wbGF5aW5nKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19xdWVyeSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGZpbmRfZWxlbWVudF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIEFQSSBjaGFuZ2UgZml4LgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfbmV3X2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9zZXRfc2VnbWVudCksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2VnbWVudCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEJ1bmRsaW5nIHF1ZXJ5IHBvc2l0aW9uL2R1cmF0aW9uIGlzIG5vdCBhIGdvb2QgaWRlYSBzaW5jZSBkdXJhdGlvbgoJICBkb2VzIG5vdCBjaGFuZ2UgbXVjaCBhbmQgd2UgZG9uJ3Qgd2FudCB0byByZWNhbGN1bGF0ZSBpdCBmb3IgZXZlcnkKCSAgcG9zaXRpb24gcXVlcnksIHNvIHRoZXkgYXJlIHNlcGFyYXRlZCBhZ2Fpbi4uCgkgIEJhc2UgdmFsdWUgaW4gc2VnbWVudCBxdWVyeSBpcyBub3QgbmVlZGVkLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfcXVlcnlfcG9zaXRpb24pLAoJICAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24pLCAoZ3N0X3BhZF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfcGFkX3F1ZXJ5X2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgVXBkYXRlcyBmb3IgcXVlcnkgQVBJIGNoYW5nZS4KCSAgQWRkZWQgc29tZSBkb2NzIGhlcmUgYW5kIHRoZXJlLgoKMjAwNS0xMC0xOSAxMTo0Mzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IHdhaXQgb24gdGhyZWFkIHRvIGRpZSBzbyB3ZSBjYW4gY2hlY2sgcmVmY291bnQgY29ycmVjdGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICB3YWl0IG9uIHRocmVhZCB0byBkaWUgc28gd2UgY2FuIGNoZWNrIHJlZmNvdW50IGNvcnJlY3RseQoKMjAwNS0xMC0xOSAxMTo0MzoxOCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSB0b29scyBwYWNrYWdlIG5hbWluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRvb2xzIHBhY2thZ2UgbmFtaW5nCgoyMDA1LTEwLTE5IDExOjQyOjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgbG9nIGFuIGlmIGJyYW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9nIGFuIGlmIGJyYW5jaAoKMjAwNS0xMC0xOCAxNzozMDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogTWFrZSBjaGVjayBhIGxpdHRsZSBtb3JlIHRpbWUgY29uc3VtaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgY2hlY2sgYSBsaXR0bGUgbW9yZSB0aW1lIGNvbnN1bWluZy4KCjIwMDUtMTAtMTggMTc6MDY6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IFNtYWxsIHN0YXRlIGNoYW5nZSB0b3J0dXJlIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHNpbXBsZV9sYXVuY2hfbGluZXNfc3VpdGUpLCAobWFpbik6CgkgIFNtYWxsIHN0YXRlIGNoYW5nZSB0b3J0dXJlIHRlc3QuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChkb19wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTmV2ZXIgdGFrZSBzdGF0ZSBsb2NrIGZyb20gc3RyZWFtaW5nIHRocmVhZCwgY2xlYW4gdXAgdWdseQoJICBoYWNrcy4gVW5mb3J0dW5hdGx5IGNvcmUgZG9lcyBub3QgeWV0IHN1cHBvcnQgbmljZSB3YXlzIHRvCgkgIGFzeW5jIGNvbW1pdCBzdGF0ZS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgIFN0YXJ0IHN0YXRlIHJlY2FsYyBpZiBhIFNUQVRFX0RJUlRZIG1lc3NhZ2UgaXMgcG9zdGVkLCBidXQgb25seQoJICBvbiB0aGUgdG9wbGV2ZWwgYmluLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgU3RhdGUgdmFyaWFibGVzIGFyZSBub3cgcHJvdGVjdGVkIHdpdGggdGhlIExPQ0ssIHRoZSBzdGF0ZQoJICBsb2NrIGlzIG9ubHkgdXNlZCB0byBzZXJpYWxpemUgX3NldF9zdGF0ZSgpLgoKMjAwNS0xMC0xOCAxNjoyNTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNlcmlvdXNseSwgdGhpcyBpcyBiZXR0ZXIgdGhhbiBhIHByZXZpb3VzIGNvbW1pdCBhcyB3ZSBvbmx5IG5lZWQgdG8gbm90aWZ5IHRoZSBmYWN0IHRoYXQgYW4gZWxlbWVudCBjaGFuZ2VkIHN0YXRlIGluIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKG1lc3NhZ2VfcmVjZWl2ZWQpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3JlY2FsY19mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2RpcnR5KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFNlcmlvdXNseSwgdGhpcyBpcyBiZXR0ZXIgdGhhbiBhIHByZXZpb3VzIGNvbW1pdCBhcyB3ZSBvbmx5IG5lZWQKCSAgdG8gbm90aWZ5IHRoZSBmYWN0IHRoYXQgYW4gZWxlbWVudCBjaGFuZ2VkIHN0YXRlIGluIGEgc3RyZWFtaW5nCgkgIHRocmVhZCwgbWFya2luZyB0aGUgc3RhdGUgb2YgdGhlIHBhcmVudHMgZGlydHksIGhlbmNlIHRoZQoJICBTVEFURV9ESVJUWSBtZXNzYWdlIGluc3RlYWQgb2YgYWJ1c2luZyBhIGJvb2xlYW4gaW4gYSBTVEFURV9DSEFOR0UKCSAgbWVzc2FnZS4KCjIwMDUtMTAtMTggMTU6MTU6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBDbGVhbnVwcywgcHJlcGFyZSBmb3Igc3RhdGUgY2hhbmdlIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICBDbGVhbnVwcywgcHJlcGFyZSBmb3Igc3RhdGUgY2hhbmdlIGZpeGVzLgoKMjAwNS0xMC0xOCAxNDoyOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFBlbmRpbmcgQUJJIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFBlbmRpbmcgQUJJIGNoYW5nZXMuCgkgIEdUaHJlYWRQb29sIGluIEdzdEJpbkNsYXNzIHRvIG1vbml0b3IgYXN5bmMgc3RhdGUgY2hhbmdlcy4KCSAgc3RhdGVfY29va2llIGluIEdzdEVsZW1lbnQgdG8gZGV0ZWN0IGNvbmN1cnJlbnQgZ3N0L3NldCBzdGF0ZS4KCSAgc2V0X3N0YXRlIGlzIG5vdyB2aXJ0dWFsIHRvbyBpbiBjYXNlIGEgdmVyeSBjb21wbGljYXRlZCBlbGVtZW50CgkgIGhhcyB0byBiZSBjb25zdHJ1Y3RlZC4KCjIwMDUtMTAtMTggMTM6MTk6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIG1lc3NhZ2VzIGZ1dHVyZSBwcm9vZi4gc3RhdGUtY2hhbmdlIGdldHMgYSBmbGFnIGlmIGl0IHdhcyBhIG1lc3NhZ2UgY29tbWluZyBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKG1lc3NhZ2VfcmVjZWl2ZWQpOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksCgkgIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWFrZSBtZXNzYWdlcyBmdXR1cmUgcHJvb2YuCgkgIHN0YXRlLWNoYW5nZSBnZXRzIGEgZmxhZyBpZiBpdCB3YXMgYSBtZXNzYWdlIGNvbW1pbmcgZnJvbSB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZC4KCSAgc2VnbWVudC1zdGFydC9zdG9wIGNhbiBhbHNvIGJlIHNwZWNpZmllZCBpbiBvdGhlciBmb3JtYXRzLgoJICBBIG1lc3NhZ2UgdG8gbm90aWZ5IGFuIGFwcCB0aGF0IGEgcGlwZWxpbmUgY2hhbmdlZCBwbGF5YmFjawoJICBkdXJhdGlvbi4KCSAgQWxzbyBmaXggYSBHc3RNZXNzYWdlIGxlYWsgaW4gLWxhdW5jaAoKMjAwNS0xMC0xOCAxMDozMjo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6IE1vcmUgaGVscGZ1bCBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9kaXNwb3NlKTogTW9yZSBoZWxwZnVsIG1lc3NhZ2UuCgoyMDA1LTEwLTE4IDA4OjIwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICByZW1vdmUgaW5mbyBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGluZm8gbWVzc2FnZXMKCjIwMDUtMTAtMTggMDc6MTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IHVucmVmIGEgcGx1Zy1pbiB3ZSBnZXQgdGhhdCB3YXMgYWxyZWFkeSBpbml0aWFsaXplZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICB1bnJlZiBhIHBsdWctaW4gd2UgZ2V0IHRoYXQgd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQKCjIwMDUtMTAtMTcgMjA6MTY6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZCBuZXcgYXBpIGVudHJpZXMgaGlkZSBpbnRlcm5hbCBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgYWRkIG5ldyBhcGkgZW50cmllcwoJICBoaWRlIGludGVybmFsIG1hY3JvCgoyMDA1LTEwLTE3IDE4OjA5OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOiBTbGlnaHQgY2xlYW51cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKTogU2xpZ2h0CgkgIGNsZWFudXAuCgkgICogZ3N0L01ha2VmaWxlLmFtIChnc3RlbnVtdHlwZXMuYyk6IFRocmVhZHNhZmUgbm93LgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfbmV3LCBnc3RfZXZlbnRfZmluYWxpemUpOiBMT0cuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOiBzL0lORk8vREVCVUcvLgoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOiBCZXR0ZXIgZGVidWcgbWVzc2FnZS4KCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSk6IHMvSU5GTy9ERUJVRy8uCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlLCBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX2luaXQpOiBzL0lORk8vTE9HLy4KCSAgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOiBzL0lORk8vTE9HLy4KCjIwMDUtMTAtMTcgMTc6NDY6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBDaGVjayB2YWxpZGl0eSBvZiBlbmQgdGltZSBiYXNlZCBvbiBlbmQgdGltZSB2YXJpYWJsZSwgbm90IHN0YXJ0IHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGVjayB2YWxpZGl0eSBvZiBlbmQgdGltZSBiYXNlZCBvbiBlbmQgdGltZSB2YXJpYWJsZSwgbm90IHN0YXJ0IHRpbWUuCgoyMDA1LTEwLTE3IDE3OjA1OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtZXJnZSBjb250cm9sbGVyIHRlc3RzdWl0ZXMgZml4IGJyb2tlbiB0ZXN0cyByZW1vdmUgbWVtLWNodW5rIGZyb20gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiB0ZXN0c3VpdGUvY29udHJvbGxlci8uY3ZzaWdub3JlOgoJICAqIHRlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJICBtZXJnZSBjb250cm9sbGVyIHRlc3RzdWl0ZXMKCSAgZml4IGJyb2tlbiB0ZXN0cwoJICByZW1vdmUgbWVtLWNodW5rIGZyb20gZG9jcwoKMjAwNS0xMC0xNyAxNDo0MjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBvdXQuICBnZXQgb3V0LiAgeW91J3JlIGZpcmVkLiAgdG8gdGhlIEF0dGljICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6CgkgICogZ3N0L2dzdG1lbWNodW5rLmg6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suYzoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJICBvdXQuICBnZXQgb3V0LiAgeW91J3JlIGZpcmVkLiAgdG8gdGhlIEF0dGljICEKCjIwMDUtMTAtMTcgMTQ6Mzc6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogZml4IHNpZ25lZG5lc3MgaXNzdWVzIGluIGEgKGhvcGVmdWxseSkgY29ycmVjdCB3YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIGZpeCBzaWduZWRuZXNzIGlzc3VlcyBpbiBhIChob3BlZnVsbHkpIGNvcnJlY3Qgd2F5CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBzb21lIGRlYnVnZ2luZwoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgIHNvbWUgZGVidWdnaW5nCgoyMDA1LTEwLTE3IDEwOjM3OjEzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIEZpeCBhIGRvYyB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IGEgZG9jIHR5cG8uCgoyMDA1LTEwLTE3IDA5OjI4OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5oOiBGaXggcHJvdG90eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTcgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0dmFsdWUuaDogRml4IHByb3RvdHlwZXMuCgoyMDA1LTEwLTE2IDE0OjMyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgZ3N0X3ZlcnNpb25fc3RyaW5nICgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZ3N0X3ZlcnNpb25fc3RyaW5nICgpCgoyMDA1LTEwLTE2IDEzOjU1OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBjb21tZW50OyB1cGRhdGUgd2luMzIgY29uZmlnLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1lbnQ7IHVwZGF0ZSB3aW4zMiBjb25maWcuaAoKMjAwNS0xMC0xNiAxMjozNzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIERlYXIgQW5keTogaGVyZSdzIGEgc2NyaXB0IHRvIHVwZGF0ZSBzdHVmZiBmcm9tIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRGVhciBBbmR5OgoJICBoZXJlJ3MgYSBzY3JpcHQgdG8gdXBkYXRlIHN0dWZmIGZyb20gQ1ZTCgkgIExvdmUsCgkgIFRob21hcwoKMjAwNS0xMC0xNiAxMjoyODoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGNsZWFuIHVwIGZ1cnRoZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjbGVhbiB1cCBmdXJ0aGVyCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGl0J3MgUExVR0lORElSIG5vdwoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICB1c2UgZ2ludDY0LCB0aGUgcmFuZ2UgY291bGQgYmUgYmlnZ2VyIHRoYW4gYSBndWludAoKMjAwNS0xMC0xNiAxMTo0ODowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIEdTdHJlYW1lciBjb25zdWx0YW50cyB3aWxsIG1ha2UgYSBsb3Qgb2YgbW9uZXkgaW4gMjAzOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR1N0cmVhbWVyIGNvbnN1bHRhbnRzIHdpbGwgbWFrZSBhIGxvdCBvZiBtb25leSBpbiAyMDM4CgoyMDA1LTEwLTE2IDEwOjU4OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBndWludCBqIGRpdmluZyB1bmRlciAwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBGaXggZ3VpbnQgaiBkaXZpbmcgdW5kZXIgMAoKMjAwNS0xMC0xNiAxMDozODowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjayBmb3IgcHJvY2Vzcy5oLCBkZWNsYXJlcyBnZXRwaWQoKSBvbiBXaW5kb3dzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBjaGVjayBmb3IgcHJvY2Vzcy5oLCBkZWNsYXJlcyBnZXRwaWQoKSBvbiBXaW5kb3dzCgkgICogZ3N0L2dzdGluZm8uYzoKCSAgaW5jbHVkZSBwcm9jZXNzLmggaWYgd2UgaGF2ZSBpdAoJICAqIGdzdC9nc3RtZW1jaHVuay5jOiAocG9wdWxhdGUpLCAoZ3N0X21lbV9jaHVua19uZXcpOgoJICAqIGdzdC9nc3RtZW1jaHVuay5oOgoJICBmaXggc2lnbmVkbmVzcyBpc3N1ZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZml4IGdldF90eXBlJ3MKCjIwMDUtMTAtMTYgMTA6MjI6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZml4IHNpZ25lZG5lc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBzaWduZWRuZXNzCgoyMDA1LTEwLTE2IDEwOjE4OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBmaXggR1NUX1ZFUlNJT04KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBHU1RfVkVSU0lPTgoKMjAwNS0xMC0xNiAxMDoxNToyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgZml4IGlubGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGlubGluZQoKMjAwNS0xMC0xNiAxMDoxMjozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgZGVmaW5lIFBBQ0tBR0UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlZmluZSBQQUNLQUdFCgoyMDA1LTEwLTE2IDEwOjEwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB1cGRhdGUgYXZhaWxhYmxlIGhlYWRlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBhdmFpbGFibGUgaGVhZGVycwoKMjAwNS0xMC0xNiAwOTo1NjozMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggYSBiYWQgYnVnIHdpdGggYSBzaW1wbGUgZml4LiBCZWNhdXNlIG9mIHVuc2lnbmVkIGludHMsIGNhcHMgaW50ZXJzZWN0aW9uIHdhcyBnb2luZyBudXRzIGFuZCB0cnlpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTYgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KTogRml4IGEgYmFkIGJ1ZyB3aXRoIGEKCSAgc2ltcGxlCgkgIGZpeC4gQmVjYXVzZSBvZiB1bnNpZ25lZCBpbnRzLCBjYXBzIGludGVyc2VjdGlvbiB3YXMgZ29pbmcgbnV0cwoJICBhbmQKCSAgdHJ5aW5nIHRvIGFjY2VzcyBzdHJ1Y3R1cmVzIHdpdGggR19NQVhVSU5UIGluZGV4LiBUaGF0IGZpeGVzCgkgIHZpZGVvdGVzdHNyYyAhIGZmbXBlZ2NvbG9yc3BhY2UgISBmYWtlc2luawoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKTogbG9ncwoJICBjb25zaXN0ZW5jeS4KCjIwMDUtMTAtMTYgMDk6NTU6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZQoKMjAwNS0xMC0xNiAwOTo1NDoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHR5cG8KCjIwMDUtMTAtMTYgMDk6NTE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHVwZGF0ZXMgZm9yIDJpbjMyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVzIGZvciAyaW4zMgoKMjAwNS0xMC0xNiAwOTo0NDowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBtb3JlIGRlZmluZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBkZWZpbmUgZml4ZXMKCjIwMDUtMTAtMTYgMDk6MjA6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgdGhlIGdldHRleHQgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTYgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgdGhlIGdldHRleHQgbWFjcm8KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkgIHVwZGF0ZSBmb3IgR1NUX1BBQ0tBR0VfTkFNRSwgR1NUX1BBQ0tBR0VfT1JJR0lOCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGVkIGNvbmZpZy5oCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGQgdGhlIHRlbXBsYXRlIHRvIGdlbmVyYXRlIGNvbmZpZy5oCgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZWQgY29waWVzCgoyMDA1LTEwLTE2IDA5OjExOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSAgcmVtb3ZlIG1vcmUgUEtHX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG1vcmUgUEtHX0NGTEFHUwoKMjAwNS0xMC0xNiAwOToxMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBhZGQgdGhlIG5hbm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X3ZlcnNpb24pOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIGFkZCB0aGUgbmFubwoKMjAwNS0xMC0xNiAwODo1OTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICByZW1vdmUgR1NUX1BLR19DRkxBR1MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBHU1RfUEtHX0NGTEFHUwoKMjAwNS0xMC0xNSAyMjoyNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RldmVudC5oOiBPb3BzLCBhZGQgbWlzc2luZyBjbG9zaW5nIGJyYWNrZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBPb3BzLCBhZGQgbWlzc2luZyBjbG9zaW5nIGJyYWNrZXQuCgoyMDA1LTEwLTE1IDIxOjQxOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIGNvbW1vbiBtNCdzIGZvciBhcmd1bWVudCBjaGVja2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBjb21tb24gbTQncyBmb3IgYXJndW1lbnQgY2hlY2tpbmcKCjIwMDUtMTAtMTUgMjA6MzM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX0VWRU5UX1RZUEVfTkFNRSgpIG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgR1NUX0VWRU5UX1RZUEVfTkFNRSgpIG1hY3JvLgoKMjAwNS0xMC0xNSAyMDowMDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkZWZzCgoyMDA1LTEwLTE1IDE5OjU3OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHByaXZhdGl6ZSBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgIHByaXZhdGl6ZSBtb3JlIHN5bWJvbHMKCjIwMDUtMTAtMTUgMTg6MjI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBhZGQgc3JjZGlyLCBidWlsZGRpciBpbmNsdWRlcyB0byBHU1RfQUxMX0NGTEFHUywgc2luY2UgZXZlcnl0aGluZyB0aGF0IHVzZXMgR1N0cmVhbWVyIEFQSSBzaG91bGQgaGF2ZSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgYWRkIHNyY2RpciwgYnVpbGRkaXIgaW5jbHVkZXMgdG8gR1NUX0FMTF9DRkxBR1MsIHNpbmNlCgkgIGV2ZXJ5dGhpbmcgdGhhdCB1c2VzIEdTdHJlYW1lciBBUEkgc2hvdWxkIGhhdmUgdGhlIGluY2x1ZGVzCgoyMDA1LTEwLTE1IDE3OjU5OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdpdmUgZWFjaCB2YWx1ZSBhIF9nZXRfdHlwZSwgcmVtb3ZlcyB0aGUgREFUQSBleHBvcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBnaXZlIGVhY2ggdmFsdWUgYSBfZ2V0X3R5cGUsIHJlbW92ZXMgdGhlIERBVEEgZXhwb3J0cwoKMjAwNS0xMC0xNSAxNzoyMjozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgZml4IGxpbmsgZmxhZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBsaW5rIGZsYWdzCgoyMDA1LTEwLTE1IDE2OjM5OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZGVmcyBmaWxlCgoyMDA1LTEwLTE1IDE2OjM3OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRlZnMKCjIwMDUtMTAtMTUgMTY6MzM6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC4qOiByZW1vdmUgX2dzdF9yZWdpc3RyeV9hdXRvX2xvYWQsIG5vdCB1c2VkIGFueW1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgcmVtb3ZlIF9nc3RfcmVnaXN0cnlfYXV0b19sb2FkLCBub3QgdXNlZCBhbnltb3JlCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBtYWtlIF9nZXRfdHlwZSBmdW5jdGlvbnMgc2ltaWxhciwgZml4ZXMgZGF0YSBleHBvcnQgZnJvbSBsaWJyYXJ5CgoyMDA1LTEwLTE1IDE2OjE2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgSSdtIHRvbyBsYXp5IHRvIGNvbW1lbnQgdGhpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ3RrLWRvYyBpbnNpc3RzIG9uIGluc2VydGluZyA8UEFSQT4gYXQgZXZlcnkgZW1wdHkgbGluZSwgc2lnaAoKMjAwNS0xMC0xNSAxNjowMTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbWNodW5rLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaXR5cGUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICB2YXJpb3VzIHN0eWxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YXJpb3VzIHN0eWxlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjUzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGV4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5jOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5oOgoJKiBleGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiBleGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9kaXJlbnQuYzoKCSogd2luMzIvZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2dzdHZlcnNpb24uaDoKCSogd2luMzIvZ3RjaGFyLmg6CgkqIHdpbjMyL21tYW4uaDoKCSogd2luMzIvdnM3L21tYW4uaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTo1MzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vZmlsZXBhZHNpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL2dzdGJzdGVzdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdDEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3RmaWxlMToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA1LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvbmVnb3RpYXRpb24vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi9wYWRfbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvY2hhaW5ub3B1bGwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvZ2V0bm9wdXNoLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZ2lzdHJ5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZ2lzdHJ5L2dzdC1wcmludC1mb3JtYXRzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3NzEzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4MTkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC0yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvZ3JvdXBfbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvcXVldWVfbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvcmVsaW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy91bmxpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VucmVmLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy91c2VsZXNzX2l0ZXJhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vZmlsZXBhZHNpbmsuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vZ3N0YnN0ZXN0LmM6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3QxLmM6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3RmaWxlMToKCSogdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2NsZWFudXAvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAxLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAyLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAzLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA0LmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA1LmM6CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzdWl0ZS9uZWdvdGlhdGlvbi8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvbmVnb3RpYXRpb24vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9uZWdvdGlhdGlvbi9wYWRfbGluay5jOgoJKiB0ZXN0c3VpdGUvcGFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcGFkL2NoYWlubm9wdWxsLmM6CgkqIHRlc3RzdWl0ZS9wYWQvZ2V0bm9wdXNoLmM6CgkqIHRlc3RzdWl0ZS9wYWQvbGluay5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHN1aXRlL3JlZ2lzdHJ5L01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcmVnaXN0cnkvZ3N0LXByaW50LWZvcm1hdHMuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny0yLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc3MTMuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODE5LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC0yLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvZ3JvdXBfbGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9xdWV1ZV9saW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3JlbGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91bmxpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5yZWYuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvdXNlbGVzc19pdGVyYXRpb24uYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjUyOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY29ycmVjdGx5IG1ha2UgY29uZGl0aW9uYWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY29ycmVjdGx5IG1ha2UgY29uZGl0aW9uYWxzCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBmaXggdHlwbyBjYXVzaW5nIGZkc3JjIG5vdCB0byBidWlsZAoKMjAwNS0xMC0xNSAxNTozMDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtYWNyb3MuaDoKCSogZ3N0L2dzdG1lbWNodW5rLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RxdWV1ZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogZ3N0L2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTowMTozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGNoZWNrIGZvciBzb21lIGhlYWRlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjaGVjayBmb3Igc29tZSBoZWFkZXJzCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBkb24ndCBjb21waWxlIGZkc3JjIHdpdGhvdXQgc3lzL3NvY2tldC5oCgkgICogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pbmRleGVycy9nc3RpbmRleGVycy5jOiAocGx1Z2luX2luaXQpOgoJICBkb24ndCBjb21waWxlIGZpbGVpbmRleCB3aXRob3V0IG1tYXAKCjIwMDUtMTAtMTUgMTM6NTg6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiByZW9yZ2FuaXplIGNsZWFuIHVwIGRvY3VtZW50IG1vcmUgcmVtb3ZlIGNydWZ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVvcmdhbml6ZQoJICBjbGVhbiB1cAoJICBkb2N1bWVudCBtb3JlCgkgIHJlbW92ZSBjcnVmdAoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKGV2ZW50X2xvb3ApOgoJICBjb21waWxlIGZpeGVzLCB0aG91Z2ggaXQncyBub3QgYmVpbmcgY29tcGlsZWQgY3VycmVudGx5CgoyMDA1LTEwLTE1IDEzOjI0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgY2xlYW4gdXAgcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIHBjIGZpbGVzCgoyMDA1LTEwLTE1IDEyOjAzOjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRpcgoKMjAwNS0xMC0xNSAxMDozNDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBkaXJlY3RvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkaXJlY3RvcnkKCjIwMDUtMTAtMTUgMDA6MjI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MjA6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgoyMDA1LTEwLTE1IDAwOjE1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBzaWduZWRuZXNzIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzIGZpeGVzCgoyMDA1LTEwLTE1IDAwOjEyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCjIwMDUtMTAtMTQgMTc6MDE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0dGFnLmM6IEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgdGhlIG5ldyB0YWdsaXN0IGRhdGUgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dGFnLmM6ICh0ZXN0X2RhdGVfdGFncyksIChnc3RfdGFnX3N1aXRlKToKCSAgQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciB0aGUgbmV3IHRhZ2xpc3QgZGF0ZSBBUEkuCgoyMDA1LTEwLTE0IDE0OjEwOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzLzogQmVhdXRpZnkgJ2xhc3QtbWVzc2FnZScgb3V0cHV0OiBwcmludCAnbm9uZScgZm9yIGJ1ZmZlciB0aW1lc3RhbXBzIGFuZCBkdXJhdGlvbnMgaWYgbm9uZSBpcyBzZXQ7IGltcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgQmVhdXRpZnkgJ2xhc3QtbWVzc2FnZScgb3V0cHV0OiBwcmludCAnbm9uZScgZm9yIGJ1ZmZlciB0aW1lc3RhbXBzCgkgIGFuZCBkdXJhdGlvbnMgaWYgbm9uZSBpcyBzZXQ7IGltcHJvdmUgYWxpZ25tZW50IHdpdGggbmV4dCBtZXNzYWdlcy4KCjIwMDUtMTAtMTQgMTE6MDk6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSSB0byBjaGVjayBwbHVnaW4gZmVhdHVyZSB2ZXJzaW9uIHJlcXVpcmVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9jaGVja192ZXJzaW9uKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X2RlZmF1bHRfcmVnaXN0cnlfY2hlY2tfZmVhdHVyZV92ZXJzaW9uKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBjaGVjayBwbHVnaW4gZmVhdHVyZSB2ZXJzaW9uIHJlcXVpcmVtZW50cy4KCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6ICh0ZXN0X3ZlcnNpb25fY2hlY2tzKSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICBTb21lIGJhc2ljIHRlc3RzIGZvciB0aGUgYWJvdmUuCgoyMDA1LTEwLTEzIDIxOjI3OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogZ3VhcmQgYWdhaW5zdCBOVUxMIHByaW50ZiAtIGhhcHBlbnMgd2hlbiBmb3IgZXhhbXBsZSBhIG1lc3NhZ2Ugc3RydWN0dXJlIHdpdGggR3N0Q2xvY2sgZ2V0cyBzZXJpYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyk6CgkgIGd1YXJkIGFnYWluc3QgTlVMTCBwcmludGYgLSBoYXBwZW5zIHdoZW4gZm9yIGV4YW1wbGUKCSAgYSBtZXNzYWdlIHN0cnVjdHVyZSB3aXRoIEdzdENsb2NrIGdldHMgc2VyaWFsaXplZAoKMjAwNS0xMC0xMyAxODozMzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEZpeCBwcmVzdW1hYmxlIGNvcHknbidwYXN0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19ldmVudCk6CgkgIEZpeCBwcmVzdW1hYmxlIGNvcHknbidwYXN0by4KCjIwMDUtMTAtMTMgMTc6NTE6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGFkZCBjb3JyZWN0IGhlYWRlciBmb3IgV0lOMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBjb3JyZWN0IGhlYWRlciBmb3IgV0lOMzIKCjIwMDUtMTAtMTMgMTc6NDM6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2VsZW1lbnRzLzogZml4IHNvbWUgc2lnbmVkbmVzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZml4IHNvbWUgc2lnbmVkbmVzcwoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBJIHdvbmRlciBpZiB0aGlzIGNvdWxkIGFjdHVhbGx5IHdyaXRlICsyR0IgZmlsZXMgYmVmb3JlCgoyMDA1LTEwLTEzIDE3OjI0OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgYW4gZXhwb3J0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW4gZXhwb3J0CgoyMDA1LTEwLTEzIDE3OjIwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGluY2x1ZGUgaGVhZGVyIGNvcnJlY3RseTsgc2hvdyBtZSB0aGUgbmFtZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5jbHVkZSBoZWFkZXIgY29ycmVjdGx5OyBzaG93IG1lIHRoZSBuYW1lCgoyMDA1LTEwLTEzIDE2OjM0OjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGZvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm9vCgoyMDA1LTEwLTEzIDE2OjI2OjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmMgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKTogRml4IFRpbW1la2UgV2F5bWFucyBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYyAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpOgoJICBGaXggVGltbWVrZSBXYXltYW5zIGJ1Zy4KCSAgKGdzdF9kcF9jYXBzX2Zyb21fcGFja2V0KTogTWFrZSBzdXJlIHdlIHBhc3MgYSBOVUwtdGVybWluYXRlZAoJICBzdHJpbmcgb2YgdGhlIHByb3BlciBsZW5ndGggdG8gZ3N0X2NhcHNfZnJvbV9zdHJpbmcuIFRoZXJlJ3MgYQoJICBwb3RlbnRpYWwgZm9yLCBiZWZvcmUgdGhpcyBmaXgsIHRoYXQgdGhpcyBjb3VsZCBjYXVzZSBzb21lb25lCgkgIGNvbm5lY3Rpbmcgb3ZlciB0aGUgbmV0d29yayB0byBjYXVzZSBhIHNlZ2ZhdWx0IGlmIHRoZSBwYXlsb2FkIGlzCgkgIG5vdCBOVUwtdGVybWluYXRlZC4KCjIwMDUtMTAtMTMgMTU6Mjc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpeGVkIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9yYW5kb20vVE9ETy1wcmUtMC45OgoJICAqIGRvY3MvcmFuZG9tL29sZC9DaGFuZ2VMb2cuZ3N0cmVhbWVyOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZml4ZWQgdHlwb3MKCjIwMDUtMTAtMTMgMTU6MjM6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogR0xpYiAyLjYgZ19mbGFnc19nZXRfZmlyc3RfdmFsdWUgaGFzIGEgYnVnIHRoYXQgdHJpZ2dlcnMgYW4gaW5maW5pdGUgbG9vcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdzdF9mbGFnc19nZXRfZmlyc3RfdmFsdWUpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZG91YmxlKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBHTGliIDIuNiBnX2ZsYWdzX2dldF9maXJzdF92YWx1ZSBoYXMgYSBidWcgdGhhdCB0cmlnZ2VycyBhbgoJICBpbmZpbml0ZSBsb29wCgoyMDA1LTEwLTEzIDE1OjIyOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlLzogZml4IHVwIGRlYnVnZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgZml4IHVwIGRlYnVnZ2luZwoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBwcmludCBvdXQgY2xvY2sgbmljZWx5CgoyMDA1LTEwLTEzIDE1OjEzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkZWQgZ3N0X3RhZ19saXN0X2dldF9kYXRlKCkgYW5kIGdzdF90YWdfbGlzdF9nZXRfZGF0ZV9pbmRleCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpLCAoZ3N0X3RhZ19saXN0X2dldF9kYXRlKSwKCSAgKGdzdF90YWdfbGlzdF9nZXRfZGF0ZV9pbmRleCk6CgkgIEFkZGVkIGdzdF90YWdfbGlzdF9nZXRfZGF0ZSgpIGFuZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfaW5kZXgoKS4KCSAgR1NUX1RBR19EQVRFIG5vdyBoYXMgYSB0YWcgdHlwZSBvZiBHU1RfVFlQRV9EQVRFICgjMTcwNzc3KS4KCjIwMDUtMTAtMTMgMTQ6NTU6MTcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogSGFuZGxlIG5ld3NlZ21lbnQgYW5kIHN0b3JlIGluZm9ybWF0aW9ucyBpbiBDb2xsZWN0RGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIG5ld3NlZ21lbnQgYW5kIHN0b3JlCgkgIGluZm9ybWF0aW9ucwoJICBpbiBDb2xsZWN0RGF0YS4KCjIwMDUtMTAtMTMgMDk6NTc6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpeCBHT3B0aW9uIGNvbnRleHQgbGVha3MgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIGZpeCBHT3B0aW9uIGNvbnRleHQgbGVha3MKCSAgZG9jIGZpeGVzCgoyMDA1LTEwLTEyIDIyOjM0OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RidXMuYzogdXNlIEhBVkVfVU5JU1REX0gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICB1c2UgSEFWRV9VTklTVERfSAoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGNvbmZpZwoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICB1cGRhdGUgdnM2IGZpbGVzCgoyMDA1LTEwLTEyIDIyOjAwOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgaGFkIGEgZmV3IHRvbyBtYW55IDBEIGJ5dGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBoYWQgYSBmZXcgdG9vIG1hbnkgMEQgYnl0ZXMKCjIwMDUtMTAtMTIgMjE6NTY6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggbW9yZSBndWludDY0PC0+Z2RvdWJsZSBjb252ZXJzaW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICBmaXggbW9yZSBndWludDY0PC0+Z2RvdWJsZSBjb252ZXJzaW9ucwoKMjAwNS0xMC0xMiAyMDoyMzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogYWRkIHdpbjMyLXVwZGF0ZSB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIGFkZCB3aW4zMi11cGRhdGUgdGFyZ2V0CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgYWRkIGZpbGVzIHRoYXQgdmlzdWFsIHN0dWRpbyBjYW4ndCBnZW5lcmF0ZQoKMjAwNS0xMC0xMiAxOTozODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFByb3RlY3QgZmxhZ3Mgd2l0aCBwcm9wZXIgbG9jay4gdW5yZWYgcHJvdmlkZWQgY2FjaGVkIGNsb2NrIGluIGRpc3Bvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChyZXNldF9kZWdyZWUpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBQcm90ZWN0IGZsYWdzIHdpdGggcHJvcGVyIGxvY2suCgkgIHVucmVmIHByb3ZpZGVkIGNhY2hlZCBjbG9jayBpbiBkaXNwb3NlLgoKMjAwNS0xMC0xMiAxOToxNDoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGxheW91dCBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsYXlvdXQgY2xlYW51cAoKMjAwNS0xMC0xMiAxOToxMDo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcmVtb3ZlZCB1bnVzZWQgZmxhZ3MgZnJvbSBtaW5pb2JqZWN0IGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6IChnc3RfbWluaV9vYmplY3RfZmxhZ3NfZ2V0X3R5cGUpOgoJICByZW1vdmVkIHVudXNlZCBmbGFncyBmcm9tIG1pbmlvYmplY3QKCSAgZG9jIGZpeGVzCgoyMDA1LTEwLTEyIDE4OjAzOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgY29udmVydCB0byB1bml4IGxpbmUgZW5kczsgc2luY2UgdGhlIHNvdXJjZSBpcyBhbHNvIHVuaXgtc3R5bGUgbGluZSBlbmRzLCBkZXZlbG9wZXJzIGRvbid0IG5lZWQgdG8gZmlkZGxlIGFuZCBzcGVjaWFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb252ZXJ0IHRvIHVuaXggbGluZSBlbmRzOyBzaW5jZSB0aGUgc291cmNlIGlzIGFsc28gdW5peC1zdHlsZSBsaW5lIGVuZHMsIGRldmVsb3BlcnMgZG9uJ3QgbmVlZCB0byBmaWRkbGUgYW5kIHNwZWNpYWwtY2FzZSwgYnV0IGNhbiBqdXN0IGFsbG93IHRyYW5zbGF0aW9uIG9uIHRoZSBmbHkKCjIwMDUtMTAtMTIgMTY6MDM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRmx1c2ggYmVmb3JlIHNlZWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZXZlbnQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBGbHVzaCBiZWZvcmUgc2Vla2luZy4KCjIwMDUtMTAtMTIgMTU6NTg6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAoZ3N0X2luaXRfY2hlY2spOiBJZ25vcmUgdW5rbm93biBvcHRpb25zLCBhcyBoYXMgYWx3YXlzIGJlZW4gdGhlIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuYyAoZ3N0X2luaXRfY2hlY2spOiBJZ25vcmUgdW5rbm93biBvcHRpb25zLCBhcyBoYXMKCSAgYWx3YXlzIGJlZW4gdGhlIGNhc2UuCgoyMDA1LTEwLTEyIDE0OjI4OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW5hbWVkIEdTVF9GTEFHUyBtYWNyb3MgdG8gR1NUX09CSkVDVF9GTEFHUyBtb3ZlZCBiaXRzaGlmdCBmcm9tIG1hY3JvIHRvIGVudW0gZGVmaW5pdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19zdG9wKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKHJlc2V0X2RlZ3JlZSksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaXNfbG9ja2VkX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaW5pdCksIChnc3Rfb2JqZWN0X3NpbmspLAoJICAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksIChnc3RfcGFkX2lzX2Jsb2NrZWQpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX3NldF9jYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9waXBlbGluZV91c2VfY2xvY2spLCAoZ3N0X3BpcGVsaW5lX2F1dG9fY2xvY2spOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICAqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2xvYWQpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfY29tbWl0KToKCSAgKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOiAoZ3N0X2ZwX3NpbmtfaW5pdCk6CgkgICogdGVzdHN1aXRlL3BhZC9saW5rLmM6IChnc3RfdGVzdF9zcmNfaW5pdCksCgkgIChnc3RfdGVzdF9maWx0ZXJfaW5pdCksIChnc3RfdGVzdF9zaW5rX2luaXQpOgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6IChtYWluKToKCSAgcmVuYW1lZCBHU1RfRkxBR1MgbWFjcm9zIHRvIEdTVF9PQkpFQ1RfRkxBR1MKCSAgbW92ZWQgYml0c2hpZnQgZnJvbSBtYWNybyB0byBlbnVtIGRlZmluaXRpb24KCjIwMDUtMTAtMTIgMTQ6MTI6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCjIwMDUtMTAtMTIgMTI6NTg6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFNvbWUgZG9jIHVwZGF0ZXMuCgkgIFJldmVydCBub24taW50ZW50aW9uYWwgY2hhbmdlLgoKMjAwNS0xMC0xMiAxMjoxODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVzZSBHc3RDbG9ja1RpbWUgaW4gX2dldF9zdGF0ZSgpIGluc3RlYWQgb2YgR1RpbWVWYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAodGVzdF9ldmVudCk6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICBVc2UgR3N0Q2xvY2tUaW1lIGluIF9nZXRfc3RhdGUoKSBpbnN0ZWFkIG9mIEdUaW1lVmFsLgoJICBSZW1vdmUgb2xkIGNvZGUgaW4gZ3N0dXRpbHMuYwoKMjAwNS0xMC0xMiAxMTo0OTozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3BhdXNlX3Rhc2spOiBBY3R1YWxseSByZXR1cm4gRkFMU0UgaWYgdGhlcmUgaXMgbm8gdGFzay4gU2hvdWxkbid0IGFmZmVjdCBhbnkgY29kZSwgYXMgbm90aGluZyBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9wYXVzZV90YXNrKTogQWN0dWFsbHkgcmV0dXJuIEZBTFNFIGlmCgkgIHRoZXJlIGlzIG5vIHRhc2suIFNob3VsZG4ndCBhZmZlY3QgYW55IGNvZGUsIGFzIG5vdGhpbmcgaW4gb3VyCgkgIHBsdWdpbnMgY2hlY2tzIHRoaXMgcmV0dXJuIHZhbHVlLgoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOiBBbHNvIHRha2UgdGhlIHN0cmVhbSBsb2NrIGlmIHRoZSBwYWQgaGFzIG5vCgkgIHRhc2suIERvY3MgdXBkYXRlZC4KCjIwMDUtMTAtMTIgMTA6MDU6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IENsZWFudXAgYWN0aXZhdGlvbiBjb2RlLiBSZXNldCBvbGQgc3RhdGUgaWYgYWN0aXZhdGlvbiBmYWlsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKHByZV9hY3RpdmF0ZSksIChwb3N0X2FjdGl2YXRlKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOgoJICBDbGVhbnVwIGFjdGl2YXRpb24gY29kZS4gUmVzZXQgb2xkIHN0YXRlIGlmCgkgIGFjdGl2YXRpb24gZmFpbGVkLgoKMjAwNS0xMC0xMiAwOTowMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE5vIG5lZWQgdG8gcHJlcm9sIGFmdGVyIHJlY2VpdmluZyBFT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBObyBuZWVkIHRvIHByZXJvbCBhZnRlciByZWNlaXZpbmcgRU9TLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19ldmVudF9oYW5kbGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9ldmVudCk6CgkgIFByaW50IGV2ZW50cyBtb3JlIHZlcmJvc2VseS4KCjIwMDUtMTAtMTIgMDg6Mzg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IE1vdmVkIHNpbmtzMiB0ZXN0Y29kZSBpbiBzaW5rcyBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MyLmM6CgkgIE1vdmVkIHNpbmtzMiB0ZXN0Y29kZSBpbiBzaW5rcyBjaGVjay4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBGaXggcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIHdoZW4gX2dldF9zdGF0ZSgpIGl0ZXJhdGVkIG92ZXIgYW4KCSAgQVNZTkMgZWxlbWVudCByaWdodCBiZWZvcmUgaXQgcG9zdGVkIGEgc3RhdGUgY29tcGxldGlvbi4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRG8gcHJvcGVyIGNhc3QgaGVyZS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCk6CgkgIEEgcGxheWJhY2sgcmF0ZSBvZiAwLjAgaXMgbm90IGFsbG93ZWQuCgoyMDA1LTEwLTEyIDAyOjI2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoyNToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MjM6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjE5OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoxNjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTEgMTg6MDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvOiBWaXN1YWwgU3R1ZGlvIDYgcHJvamVjdCBmaWxlcywgYW5kIGEgbmV3IGNvbW1vbiBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50LmM6IChfdG9wZW5kaXIpLCAoX3RyZWFkZGlyKSwgKF90Y2xvc2VkaXIpLAoJICAoX3RyZXdpbmRkaXIpLCAoX3R0ZWxsZGlyKSwgKF90c2Vla2Rpcik6CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5oOgoJICAqIHdpbjMyL2NvbW1vbi9ndGNoYXIuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBWaXN1YWwgU3R1ZGlvIDYgcHJvamVjdCBmaWxlcywgYW5kIGEgbmV3IGNvbW1vbiBkaXJlY3RvcnkuCgkgIFBoZWFyLgoKMjAwNS0xMC0xMSAxNzozMzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgZm9yZ290IHRoaXMgb25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb3Jnb3QgdGhpcyBvbmUKCjIwMDUtMTAtMTEgMTc6MzI6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBDb3JyZWN0bHkgcGFyc2UgbmV3c2VnbWVudCBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBDb3JyZWN0bHkgcGFyc2UgbmV3c2VnbWVudCBpbmZvLgoKMjAwNS0xMC0xMSAxNjo1NDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IHNwbGl0IHBsdWdpbiBwYXRocyBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgc3BsaXQgcGx1Z2luIHBhdGhzIGNvcnJlY3RseQoKMjAwNS0xMC0xMSAxNjoyODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIGV4dHJhIGZsYWcgdG8gbmV3c2VnbWVudCBmb3IgZnV0dXJlIEFQSSBmcmVlemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZGVkIGV4dHJhIGZsYWcgdG8gbmV3c2VnbWVudCBmb3IgZnV0dXJlIEFQSSBmcmVlemUuCgkgIFVwZGF0ZWQgY2hlY2sgYW5kIGJhc2UgZWxlbWVudHMuCgoyMDA1LTEwLTExIDE2OjI1OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEhhbmRsZSBFT1MgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdHBhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19ldmVudCksIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6IEhhbmRsZSBFT1MgY29ycmVjdGx5LgoKMjAwNS0xMC0xMSAxNjoyMTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbW9yZSBzdHIgbnVsbCBwcm90ZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHN0ciBudWxsIHByb3RlY3Rpb24KCjIwMDUtMTAtMTEgMTY6MDU6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC1pMThuLWxpYi5oOiBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOgoJICBwcm90ZWN0IHBvc3NpYmx5IE5VTEwgc3RyaW5ncwoJICAqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBjb25maWcuaCBhbHJlYWR5IGluY2x1ZGVkIGJlZm9yZQoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgc3lzL3dhaXQuaCBhbHNvIGRvZXNutHQgZXhpc3Qgb24gbWluZ3csIHNvIGNoYW5nZSB0aGUgaWZkZWYgY2hlY2sKCSAgY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgVGhpcyBjb21taXQgYnJvdWdodCB0byB5b3UgZnJvbSBtc3lzL21pbmd3CgoyMDA1LTEwLTExIDE1OjI2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogaWYgd2UgZG9uJ3QgaGF2ZSBnbGliLCBmYWlsIGJlZm9yZSB0ZXN0aW5nIDIuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGlmIHdlIGRvbid0IGhhdmUgZ2xpYiwgZmFpbCBiZWZvcmUgdGVzdGluZyAyLjgKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgZml4IGEgbGVhaywgc2hvdWxkIGZpeCBwbHVnaW5zLWJhc2UgdGVzdHN1aXRlCgoyMDA1LTEwLTExIDE1OjIzOjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKHByZV9hY3RpdmF0ZSk6IFJlbmFtZWQgZnJvbSBwcmVfYWN0aXZhdGVfc3dpdGNoLCB0YWtlIHRoZSBtb2RlIHdlJ3JlIGdvaW5nIHRvIGFzIGFuIGFyZy4gR28gaGVhZCBhbmQgc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChwcmVfYWN0aXZhdGUpOiBSZW5hbWVkIGZyb20gcHJlX2FjdGl2YXRlX3N3aXRjaCwKCSAgdGFrZSB0aGUgbW9kZSB3ZSdyZSBnb2luZyB0byBhcyBhbiBhcmcuIEdvIGhlYWQgYW5kIHNldCB0aGUgbW9kZQoJICBhbmQgZmx1c2hpbmcgZmxhZ3Mgbm93LCBzbyB0aGF0IGlmIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbiBzdGFydHMgYQoJICB0aHJlYWQgYWxsIHRoZSBmbGFncyB3aWxsIGJlIGluIHRoZSByaWdodCBzdGF0ZS4KCSAgKHBvc3RfYWN0aXZhdGUpOiBSZW5hbWVkIGFsc28uIEp1c3QgaGFuZGxlIG1ha2luZyBzdXJlIHN0cmVhbWluZwoJICBmaW5pc2hlcyBmb3IgdGhlIGRlYWN0aXZhdGlvbiBjYXNlLCBhbmQgc2V0dGluZyB0aGUgZGVhY3RpdmF0ZWQKCSAgbW9kZS4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENvbXBsYWluIGxvdWRseSBpZiBkZWFjdGl2YXRpb24gZmFpbHMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBBZGFwdCB0byBwcmUvcG9zdF9hY3RpdmF0ZSBjaGFuZ2VzLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogQWRhcHQgdG8gcHJlL3Bvc3RfYWN0aXZhdGUgY2hhbmdlcywKCSAgcmVtb3ZlIHRoZSB0ZXJyaWJsZSBoYWNrLgoKMjAwNS0xMC0xMSAxNTowNTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogUHJlcGFyZSB0byBtYWtlIGN1cnJlbnQgRU9TIG1lc3NhZ2UgcXVldWUgbW9yZSBnZW5lcmljLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgUHJlcGFyZSB0byBtYWtlIGN1cnJlbnQgRU9TIG1lc3NhZ2UgcXVldWUgbW9yZSBnZW5lcmljLgoJICBGaXggc29tZSB0eXBvcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFJlbmFtZSBiYXNlIHRvIHN0cmVhbV90aW1lLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgoyMDA1LTEwLTExIDEyOjU4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBXb3JrIG9uIHByb3BlciBjbG9jayBzZWxlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgV29yayBvbiBwcm9wZXIgY2xvY2sgc2VsZWN0aW9uLgoKMjAwNS0xMC0xMSAxMjo0MjoyMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci4qOiBBZGRlZCBHTGlzdCogdmVyc2lvbiBvZiBfcmVtb3ZlX3Byb3BlcnRpZXMoKSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHdyYXAgaXQgaW4gYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBBZGRlZCBHTGlzdCogdmVyc2lvbiBvZiBfcmVtb3ZlX3Byb3BlcnRpZXMoKSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHdyYXAKCSAgaXQgaW4gYmluZGluZ3MuCgoyMDA1LTEwLTExIDExOjA4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiBTb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBTb21lIG1vcmUgZG9jcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NldF9jbG9ja19mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRG9jIHVwZGF0ZXMuIERvbid0IGRpc3RyaWJ1dGUgdGhlIHNhbWUgY2xvY2sgb3ZlciBhbmQgb3ZlciBhZ2Fpbi4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X2Zsb3dfZ2V0X25hbWUpLCAoZ3N0X2Zsb3dfdG9fcXVhcmspLAoJICAoZ3N0X3BhZF9nZXRfdHlwZSksIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBNYWtlIHByb2JlIGVtaXNzaW9uIHRocmVhZHNhZmUgYWdhaW4uCgkgIFJlZ2lzdGVyIHF1YXJrcyBhbmQgbW92ZSBfZ2V0X25hbWUoKSBmcm9tIHV0aWxzLgoJICBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgIE9ubHkgcmVkaXN0cmlidXRlIHRoZSBjbG9jayBvZiBpdCBjaGFuZ2VkLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTW92ZWQgdGhlIF9mbG93X2dldF9uYW1lKCkgdG8gR3N0UGFkLgoKMjAwNS0xMC0xMSAwOToxNDo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgaWYgd2UgbG9nIG91ciBpbml0LCBzaG91bGQgYWxzbyBsb2cgZmluYWxpemUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlmIHdlIGxvZyBvdXIgaW5pdCwgc2hvdWxkIGFsc28gbG9nIGZpbmFsaXplCgoyMDA1LTEwLTEwIDIzOjU1OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNvbW1vbjoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBmaXggbW9yZSB2YWxncmluZCB3YXJuaW5ncyBiZWZvcmUgdHVybmluZyB1cCB0aGUgaGVhdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IG1vcmUgdmFsZ3JpbmQgd2FybmluZ3MgYmVmb3JlIHR1cm5pbmcgdXAgdGhlIGhlYXQKCjIwMDUtMTAtMTAgMjM6MTE6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZG9uJ3QgZGVjbGFyZSBvbiB0aGUgcHJvcGVyIGRlZmluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZGVjbGFyZSBvbiB0aGUgcHJvcGVyIGRlZmluZQoKMjAwNS0xMC0xMCAyMjo1OToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICB1bm1hbmdsZSB0aGUgbmVzdGluZyBhIGxpdHRsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5tYW5nbGUgdGhlIG5lc3RpbmcgYSBsaXR0bGUKCjIwMDUtMTAtMTAgMjI6NDk6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogc29tZSBjbGVhbnVwIGJlZm9yZSB0aGUgaGFja2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBzb21lIGNsZWFudXAgYmVmb3JlIHRoZSBoYWNraW5nCgoyMDA1LTEwLTEwIDE4OjE2OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogdXNlIGNvbnZlcnNpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIHVzZSBjb252ZXJzaW9ucwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSksCgkgIChnc3RfZ2RvdWJsZV90b19ndWludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGV4dGVybmFsaXplLCBiYXNlc3JjIHVzZXMgaXQKCSAgb2J2aW91c2x5IHRoZSBpbXBsZW1lbnRhdGlvbiBuZWVkcyB0ZXN0aW5nCgoyMDA1LTEwLTEwIDE3OjA1OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoKMjAwNS0xMC0xMCAxNjo0NTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCjIwMDUtMTAtMTAgMTY6NDM6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9zY2hlZC86CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL3NjaGVkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL3NjaGVkL3NvcnQuYzogKG1ha2VfcGlwZWxpbmUxKSwgKG1ha2VfcGlwZWxpbmUyKSwKCSAgKG1ha2VfcGlwZWxpbmUzKSwgKG1ha2VfcGlwZWxpbmU0KSwgKHByaW50X2VsZW0pLCAobWFpbik6CgoyMDA1LTEwLTEwIDE2OjM4OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBhcHBhcmVudGx5IGNvbnZlcnRpbmcgZnJvbSBndWludDY0IHRvIGRvdWJsZSBpcyBub3QgaW1wbGVtZW50ZWQgb24gTVNWQwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGd1aW50NjRfdG9fZ2RvdWJsZSksIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOgoJICBhcHBhcmVudGx5IGNvbnZlcnRpbmcgZnJvbSBndWludDY0IHRvIGRvdWJsZSBpcyBub3QgaW1wbGVtZW50ZWQKCSAgb24gTVNWQwoKMjAwNS0xMC0xMCAxNjozODoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogQ2hlY2sgZml4ZXMsIHVzZSBBUEkgYXMgc3RhdGVkIGluIGRlc2lnbiBkb2NzLCByZW1vdmUgaGFja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BpcGVsaW5lX3N1aXRlKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKSwKCSAgKG1haW4pOgoJICBDaGVjayBmaXhlcywgdXNlIEFQSSBhcyBzdGF0ZWQgaW4gZGVzaWduIGRvY3MsIHJlbW92ZSBoYWNrcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQ2F0Y2ggc3RvcHBpbmcgb3VyIHRhc2sgd2hpbGUgd2UncmUgc2h1dHRpbmcgZG93bi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaW5pdCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBOZXcgc3RhdGUgY2hhbmdlIGFsZ29yaXRobSAoc2VlICMzMTgxMTYpCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBSZW1vdmUgY3J1ZGUgc3RhdGUgY2hhbmdlIGhhY2tzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBSZW1vdmUgY3J1ZGUgaGFja3MuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIEZpeGVzIGZvciBzdGF0ZSBjaGFuZ2UuIE5lZWRzIHNvbWUgbW9yZSB3b3JrIHRvIGZ1bGx5IHVzZSB0aGUKCSAgbmV3IHN0dWZmLgoKMjAwNS0xMC0xMCAxNjoyMDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvTWFrZWZpbGUuYW0gKG5vaW5zdF9QUk9HUkFNUyk6IE5vIG1vcmUgaW5pdC5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbSAobm9pbnN0X1BST0dSQU1TKTogTm8gbW9yZSBpbml0LmMuCgoyMDA1LTEwLTEwIDE2OjA0OjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0LmMgKEdfT1BUSU9OX0ZMQUdfTk9fQVJHKTogQXBwYXJlbnRseSBHTGliIDIuOCByZXF1aXJlcyB0aGlzIGZsYWcsIGJ1dCBpdCdzIG5vdCBldmVuIGluIEdMaWIgMi42LiBPZGQuIEhhY2sgYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChHX09QVElPTl9GTEFHX05PX0FSRyk6IEFwcGFyZW50bHkgR0xpYiAyLjggcmVxdWlyZXMKCSAgdGhpcyBmbGFnLCBidXQgaXQncyBub3QgZXZlbiBpbiBHTGliIDIuNi4gT2RkLiBIYWNrIGFyb3VuZCB0aGUKCSAgaXNzdWUuCgoyMDA1LTEwLTEwIDE1OjU4OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IEZpeCBteSBwcmV2aW91cyBjb21taXQ6IEdUeXBlcyBwYXNzZWQgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGNhbiBiZSBmdW5kYW1lbnRhbCB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfbmV3KToKCSAgRml4IG15IHByZXZpb3VzIGNvbW1pdDogR1R5cGVzIHBhc3NlZCB0byBnc3RfaXRlcmF0b3JfbmV3KCkKCSAgY2FuIGJlIGZ1bmRhbWVudGFsIHR5cGVzLgoKMjAwNS0xMC0xMCAxNTo1NTozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFVzZSBzcmMvc2luayBwYWRzIGxpc3RzIGZvciB0aGUgcmVzcGVjdGl2ZSBpdGVyYXRvcnMgaW5zdGVhZCBvZiBmaWx0ZXJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pdGVyYXRlX3BhZF9saXN0KSwKCSAgKGdzdF9lbGVtZW50X2l0ZXJhdGVfcGFkcyksIChnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKSwKCSAgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc2lua19wYWRzKToKCSAgVXNlIHNyYy9zaW5rIHBhZHMgbGlzdHMgZm9yIHRoZSByZXNwZWN0aXZlIGl0ZXJhdG9ycyBpbnN0ZWFkCgkgIG9mIGZpbHRlcmluZy4KCjIwMDUtMTAtMTAgMTU6NTM6NTkgKzAwMDAgIFJvbmFsZCA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgTWVyZ2VkIGluIHBvcHQgcmVtb3ZhbCArIEdPcHRpb24gYWRkaXRpb24gcGF0Y2ggZnJvbSBSb25hbGQsIGJ1ZyAjMTY5NzcyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgTWVyZ2VkIGluIHBvcHQgcmVtb3ZhbCArIEdPcHRpb24gYWRkaXRpb24gcGF0Y2ggZnJvbSBSb25hbGQsIGJ1ZwoJICAjMTY5NzcyLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBTVEFURV8oVU4pTE9DS19GVUxMLCBtb3ZlCgkgIEdzdEVsZW1lbnQgbWFjcm9zIGFyb3VuZCwgcmVtb3ZlIHBvcHQtcmVsYXRlZCBzeW1ib2xzLCBhZGQgZ29wdGlvbgoJICBzdHVmZi4KCSAgKiBjb25maWd1cmUuYWM6IFJlbW92ZSBwb3B0IGNoZWNrcywgcmVxdWlyZSBHTGliIDIuNiBmb3IgR09wdGlvbi4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IE5vIFBPUFRfQ0ZMQUdTLgoJICAqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6IERvYyB1cGRhdGVzIHdpdGggYW4gZXhhbXBsZS4KCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGdzdF9pbml0KSwgKHBhcnNlX29uZV9vcHRpb24pLCAocGFyc2VfZ29wdGlvbl9hcmcpOgoJICAqIGdzdC9nc3QuaDogUmVtb3ZlZCBnc3RfaW5pdF93aXRoX3BvcHRfdGFibGUgYW5kIGZyaWVuZHMuIFRvb2sgYQoJICBiaXQgb2YgaGFuZCBtZXJnaW5nIGFuZCBkZWJ1Z2dpbmcgdG8gZ2V0IHRoZSBHT3B0aW9uIHN0dWZmIHdvcmtpbmcKCSAgdGhvLgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6IFRoYW5rcyBSb25hbGQhCgoyMDA1LTEwLTEwIDE1OjMwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IEFkZCBhc3NlcnRpb25zIHRvIG1ha2Ugc3VyZSBwYXNzZWQgR1R5cGUgaXMgbGlrZWx5IHRvIHJlYWxseSBiZSBhIEdUeXBlIChhcyB0aGUgY29tcGlsZXIgd29uJ3QgY2F0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX25ldyk6CgkgIEFkZCBhc3NlcnRpb25zIHRvIG1ha2Ugc3VyZSBwYXNzZWQgR1R5cGUgaXMgbGlrZWx5IHRvIHJlYWxseQoJICBiZSBhIEdUeXBlIChhcyB0aGUgY29tcGlsZXIgd29uJ3QgY2F0Y2ggaXQgaWYgdGhlIHNpemUgYW5kCgkgIEdUeXBlIGFyZ3VtZW50cyBnZXQgbWl4ZWQgdXAsIHNlZSAjMzE4NDQ3KS4KCjIwMDUtMTAtMTAgMTU6Mjc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IFBhc3MgR1R5cGUgYW5kIHNpemUgYXJndW1lbnRzIHRvIGdzdF9pdGVyYXRvcl9uZXcoKSBpbiB0aGUgcmlnaHQgb3JkZXIgKG1heWJlIHdlIHNob3VsZCBtYWtlIF9uZXcoKSB0YWsuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCk6CgkgIFBhc3MgR1R5cGUgYW5kIHNpemUgYXJndW1lbnRzIHRvIGdzdF9pdGVyYXRvcl9uZXcoKSBpbiB0aGUgcmlnaHQKCSAgb3JkZXIgKG1heWJlIHdlIHNob3VsZCBtYWtlIF9uZXcoKSB0YWtlIHRoZSBHVHlwZSBhcyBmaXJzdCBhcmd1bWVudAoJICBqdXN0IGxpa2UgX25ld19saXN0KCk/KSAoIzMxODQ0NykuCgoyMDA1LTEwLTEwIDE1OjE3OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQW5kIGZyZWUgdGhlIEdTdGF0aWNSZWNNdXRleCB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2ZpbmFsaXplKToKCSAgQW5kIGZyZWUgdGhlIEdTdGF0aWNSZWNNdXRleCB0b28KCjIwMDUtMTAtMTAgMTQ6MzM6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvdnM3L0dTdHJlYW1lci52Y3Byb2o6CgkgIGRvbid0IGVjaG8gcGF0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZWNobyBwYXRoCgoyMDA1LTEwLTEwIDE0OjMzOjEzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pbml0LCBnc3RfZWxlbWVudF9maW5hbGl6ZSk6IEFsbG9jYXRlIGFuZCBmcmVlIHRoZSBtdXRleCBwcm9wZXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfaW5pdCwgZ3N0X2VsZW1lbnRfZmluYWxpemUpOgoJICBBbGxvY2F0ZSBhbmQgZnJlZSB0aGUgbXV0ZXggcHJvcGVybHkuCgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoR1NUX1NUQVRFX1VOTE9DS19GVUxMLCBHU1RfU1RBVEVfTE9DS19GVUxMKToKCSAgTmV3IG1hY3Jvcy4KCSAgKEdzdEVsZW1lbnQpOiBUaGUgc3RhdGVfbG9jayBpcyBub3cgcmVjdXJzaXZlLiBSZWJ1aWxkIHlvdXIKCSAgcGx1Z2lucywgc3Vja2Vycy4gT2xkIG1hY3JvcyBhZGFwdGVkLgoKMjAwNS0xMC0xMCAxNDoyMzo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0xMC0xMCAxNDoyMzoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jIChnX3N0YXRpY19yZWNfY29uZF90aW1lZF93YWl0KQoJICAoZ19zdGF0aWNfcmVjX2NvbmRfd2FpdCk6IFBvcnRlZCBmcm9tIHN0YXRlIGNoYW5nZXMgcGF0Y2gsIHdoaWxlCgkgIHdlIHdhaXQgb24gYnVnICMzMTc4MDIgdG8gYmUgc29sdmVkIGluIGEgd2VsbC1kaXN0cmlidXRlZCBHTGliLgoKMjAwNS0xMC0xMCAxNDoxNToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi9saW5rX29sZHJ1bnRpbWUuYzoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saW5rX29sZHJ1bnRpbWUuYzoKCSAgYWRkIG1vcmUgd2luMzIgYnVpbGQgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHdpbjMyIGJ1aWxkIGZpbGVzCgoyMDA1LTEwLTEwIDE0OjAzOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUsIHZhcmlhYmxlIG5hbWUgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20KCSAgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlLCB2YXJpYWJsZSBuYW1lIGNoYW5nZXMuCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOiBTcGxpdCBvdXQgb2YgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlIGluCgkgIHByZXBhcmF0aW9uIGZvciB0aGUgc3RhdGUgY2hhbmdlIG1lcmdlLiBEb2Vzbid0IHBheSBhdHRlbnRpb24gdG8KCSAgdGhlICd0cmFuc2l0aW9uJyBhcmd1bWVudC4KCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6IFVwZGF0ZXMsIGhvcGVmdWxseSBwdXJlbHkgY29zbWV0aWMuCgkgIChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KTogTVQtc2FmZXR5LiBQb3J0ZWQgZnJvbSB0aGUKCSAgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ2V0X3N0YXRlLCBjb3NtZXRpYwoJICBjaGFuZ2VzLgoKMjAwNS0xMC0xMCAxMzo1MjoxOCArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB1cGRhdGVzIGZvciB0aGUgd2luMzIgYnVpbGQgKHBhdGNoIGZyb20gU2ViYXN0aWVuIE1vdXR0ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSAgKiB3aW4zMi9jb25maWcuaDoKCSAgKiB3aW4zMi9kaXJlbnQuYzogKF90c2Vla2Rpcik6CgkgICogd2luMzIvZ3N0LWluc3BlY3QudmNwcm9qOgoJICAqIHdpbjMyL2dzdC1sYXVuY2gudmNwcm9qOgoJICAqIHdpbjMyL2dzdGNvbmZpZy5oOgoJICAqIHdpbjMyL2dzdGVsZW1lbnRzLnZjcHJvajoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzogKGdzdF9vYmplY3RfZmxhZ3NfZ2V0X3R5cGUpOgoJICAqIHdpbjMyL2dzdHJlYW1lci5kZWY6CgkgICogd2luMzIvbXN2YzcxLnNsbjoKCSAgdXBkYXRlcyBmb3IgdGhlIHdpbjMyIGJ1aWxkIChwYXRjaCBmcm9tIFNlYmFzdGllbiBNb3V0dGUpCgoyMDA1LTEwLTEwIDExOjUyOjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ3N0X2Jpbl9nZXRfc3RhdGUsIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tCgkgIGdzdF9iaW5fZ2V0X3N0YXRlLCBjbGVhbmVkIHVwIChidXQgbm8gbG9naWMgY2hhbmdlcykuCgkgIChiaW5fZWxlbWVudF9pc19zaW5rKTogQ29tbWVudCB1cGRhdGVzLgoJICAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBSZW1vdmUgbmVlZGxlc3MgY2FzdC4KCSAgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IERvYyB1cGRhdGUuCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdzdF9iaW5fY2hhbmdlX3N0YXRlLAoJICBjbGVhbmVkIHVwIChidXQgbm8gbG9naWMgY2hhbmdlcykuCgoyMDA1LTEwLTEwIDExOjA0OjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zcmNfc2luayk6IENsZWFudXBzIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3Rfc3JjX3NpbmspOiBDbGVhbnVwcyBmcm9tIHRoZSBzdGF0ZQoJICBjaGFuZ2UgcGF0Y2guCgkgICh0ZXN0X2xpdmVzcmNfc2luayk6IFN5bmMgb24gdGhlIHN0YXRlLgoKMjAwNS0xMC0xMCAxMDo1OTozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogTWVyZ2UgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBNZXJnZSBmcm9tCgkgIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgoyMDA1LTEwLTEwIDEwOjU3OjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogTWVyZ2UgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogTWVyZ2UgZnJvbSB0aGUgc3RhdGUKCSAgY2hhbmdlIHBhdGNoLgoKMjAwNS0xMC0xMCAxMDo1MDoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBNZXJnZSBpbiBzb21lIHN0eWxlIGZpeGVzIGFuZCBhZGRpdGlvbmFsIGNoZWNrcyBmcm9tIFdpbSdzIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiBNZXJnZSBpbiBzb21lIHN0eWxlIGZpeGVzIGFuZCBhZGRpdGlvbmFsCgkgIGNoZWNrcyBmcm9tIFdpbSdzIHN0YXRlIGNoYW5nZSBwYXRjaC4KCjIwMDUtMTAtMTAgMTA6NDM6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdGhlIHJlcXVlc3RlZCBkYXRhIGFscmVhZHkgaW4gb3VyIGxpc3Qgb2YgY2FjaGVkIGJ1ZmZlcnMgYmVmb3JlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdGhlIHJlcXVlc3RlZCBkYXRhIGFscmVhZHkgaW4gb3VyIGxpc3Qgb2YKCSAgY2FjaGVkIGJ1ZmZlcnMgYmVmb3JlIHB1bGxpbmcgYSBuZXcgYnVmZmVyOyBhbHNvIG1ha2UgdGhlIGJ1ZmZlcgoJICBsaXN0IGEgR1NMaXN0LiBTcGVlZHMgdXAgdHlwZWZpbmRpbmcgYnkgY2EuIDUtMTAlIGFsdG9nZXRoZXIuCgoyMDA1LTEwLTEwIDA5OjQ4OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvYyB1cGRhdGVzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIGRvbid0IHVzZSBsb25nIGxvbmcsIGl0J3Mgbm90IHBvcnRhYmxlLiAgUmVwbGFjaW5nIHdpdGgKCSAgZ2ludDY0IHNlZW1zIHRvIHdvcms7IGxldCdzIGhvcGUgbm8gc2tlbGV0b25zIGZhbGwgb3V0IG9mIHRoZSBjbG9zZXQuCgoyMDA1LTEwLTEwIDA4OjUxOjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBhdXRvZ2VuLnNoIChDT05GSUdVUkVfREVGX09QVCk6IE5vIG1vcmUgLS1wbHVnaW4tYnVpZGRpciwgeWF5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGF1dG9nZW4uc2ggKENPTkZJR1VSRV9ERUZfT1BUKTogTm8gbW9yZSAtLXBsdWdpbi1idWlkZGlyLCB5YXkKCjIwMDUtMTAtMDkgMjA6NDk6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcywgZml4IGNvbXBpbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBtb3JlIGRvY3MsIGZpeCBjb21waWxhdGlvbgoKMjAwNS0xMC0wOSAyMDoxOTo0OCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEZpeGVkIGEgZmV3IGZvcmdvdHRlbiB2YXJpYWJsZXMgb24gcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA5ICBQaGlsaXBwZSBLaGFsYWYgPGJ1cmdlckBzcGVlZHkub3JnPgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEZpeGVkIGEgZmV3IGZvcmdvdHRlbiB2YXJpYWJsZXMgb24gcHJldmlvdXMgY29tbWl0CgoyMDA1LTEwLTA5IDE3OjU5OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogRml4IGV2aWwgdHlwZWZpbmQgY3Jhc2hlcjogZ2V0cmFuZ2UoKSBtaWdodCByZXR1cm4gYSBzaG9ydCBidWZmZXIgYXQgdGhlIGVuZCBvZiBhIGZpbGUsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgRml4IGV2aWwgdHlwZWZpbmQgY3Jhc2hlcjogZ2V0cmFuZ2UoKSBtaWdodCByZXR1cm4gYSBzaG9ydAoJICBidWZmZXIgYXQgdGhlIGVuZCBvZiBhIGZpbGUsIGJ1dCBnc3RfdHlwZV9maW5kX3BlZWsoKSBtdXN0CgkgIGVpdGhlciByZXR1cm4gdGhlIGZ1bGwgZGF0YSBhcyByZXF1ZXN0ZWQgb3IgTlVMTCwgYnV0CgkgIG5ldmVyIGEgc2hvcnQgYnVmZmVyLgoKMjAwNS0xMC0wOSAxNzo1MzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBkb24ndCB1c2UgbmV3LCBpdCdzIGEgQysrIGtleXdvcmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvbid0IHVzZSBuZXcsIGl0J3MgYSBDKysga2V5d29yZAoKMjAwNS0xMC0wOSAxNzoyMjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBvbmNlIGlzIGVub3VnaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb25jZSBpcyBlbm91Z2gKCjIwMDUtMTAtMDggMTg6MjE6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBkb2NzIGFuZCBkZWJ1ZyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBkb2NzIGFuZCBkZWJ1ZyB1cGRhdGVzLgoKMjAwNS0xMC0wOCAxODowNzoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbW9yZSBkb2NzCgoyMDA1LTEwLTA4IDE4OjAxOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggdHlwb3MsIGFkZCBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIEZpeCB0eXBvcywgYWRkIGNvbW1lbnRzLgoJICBDbGVhciBFT1MgbGlzdCB3aGVuIGdvaW5nIHRvIFBBVVNFRCBmcm9tIGFueSBkaXJlY3Rpb24gYW5kIGRvIGl0CgkgIGluIGEgdGhyZWFkc2FmZSB3YXkuCgkgIEdldCBiYXNlIHRpbWUgaW4gYSB0aHJlYWRzYWZlIHdheSB0b28uCgkgIEZpeCBjb25mdXNpbmcgZGVidWcgaW4gdGhlIGNoYW5nZV9zdGF0ZSBmdW5jdGlvbi4KCSAgVmFyaW91cyBvdGhlciBtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOgoJICBGaXggdmVyeSB2ZXJib3NlIGJ1cyBwb3N0aW5nIGNvZGUuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIEFSR18gLT4gUFJPUF8gY2xlYW51cAoKMjAwNS0xMC0wOCAxNzozMDoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG8gYSBsZXNzIENQVSBkZW1hbmRpbmcgRU9TIGNoZWNrIGJlY2F1c2Ugd2UgY2FuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRG8gYSBsZXNzIENQVSBkZW1hbmRpbmcgRU9TIGNoZWNrIGJlY2F1c2Ugd2UgY2FuLgoKMjAwNS0xMC0wOCAxNzoxNzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC86IEl0J3MgYWJvdXQgdGltZSB3ZSBidW1wIHRoZSB2ZXJzaW9uIG51bWJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoJICBJdCdzIGFib3V0IHRpbWUgd2UgYnVtcCB0aGUgdmVyc2lvbiBudW1iZXIuCgkgIFNpbmNlIGV2ZW50IHR5cGVzIGRvbid0IGZpdCBpbiB0aGUgZ3VpbnQ4IGFueW1vcmUgZGVzY3JpYmluZwoJICB0aGUgcGF5bG9hZCB0eXBlLCBtYWtlIHBheWxvYWQgdHlwZSAxNiBiaXRzIHdpZGUuCgoyMDA1LTEwLTA4IDE2OjQ5OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBNYW55IGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBNYW55IGRvYyB1cGRhdGVzLgoKMjAwNS0xMC0wOCAxNjoxMzo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBGaXggZXZlbnQgcXVhcmsgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgRml4IGV2ZW50IHF1YXJrIHJlZ2lzdHJhdGlvbi4KCSAgQWRkIHNvbWUgc3BhY2UgYmV0d2VlbiBldmVudHMgc28gd2UgY2FuIGluc2VydCB0aGVtIGluIHRoZQoJICByaWdodCBncm91cHMuCgoyMDA1LTEwLTA4IDE0OjU3OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmV0dGVyIGxvZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlcik6CgkgIEJldHRlciBsb2cgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTW9yZSBkb2NzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgUmVtb3ZlIG9sZCB1bnVzZWQgcHJvcGVydGllcy4KCjIwMDUtMTAtMDggMTQ6NDg6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxvdHMgb2YgbmV3IGRvY3MgYW5kIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgbG90cyBvZiBuZXcgZG9jcyBhbmQgZG9jIGZpeGVzCgoyMDA1LTEwLTA4IDE0OjQxOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBmaXggYSBsZWFrIEkgaW50cm9kdWNlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGEgbGVhayBJIGludHJvZHVjZWQKCjIwMDUtMTAtMDggMTM6NTc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogT25seSBldmVyIGxvYWQgb25lIHBsdWdpbiBmb3IgYSBnaXZlbiBwbHVnaW4gYmFzZW5hbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fZmluYWxpemUpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9sb29rdXBfbG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pOgoJICBPbmx5IGV2ZXIgbG9hZCBvbmUgcGx1Z2luIGZvciBhIGdpdmVuIHBsdWdpbiBiYXNlbmFtZS4KCSAgVGhpcyBlbnN1cmVzIGNvcnJlY3Qgb3ZlcnJpZGluZyBvZiBHU1RfUExVR0lOX1BBVEggb3ZlcgoJICBHU1RfUExVR0lOX1NZU1RFTV9QQVRIIGFuZCBvZiBob21lIGRpciBwbHVnaW5zIG92ZXIKCSAgc3lzdGVtIGluc3RhbGxlZCBwbHVnaW5zLgoKMjAwNS0xMC0wOCAxMzozOTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByZXBhcmUgZm9yIGRvaW5nIFFPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKToKCSAgUHJlcGFyZSBmb3IgZG9pbmcgUU9TLgoKMjAwNS0xMC0wOCAxMzoxMDozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogQWxsb3cgbmV3IGNsb2NrIG1lc3NhZ2UgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbGxvdyBuZXcgY2xvY2sgbWVzc2FnZSB0b28uCgoyMDA1LTEwLTA4IDEyOjU2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWxzbyBjYXJyeSB0aGUgY2xvY2sgaW4gcXVlc3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfcHJvdmlkZSksCgkgIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfbG9zdCksIChnc3RfbWVzc2FnZV9uZXdfbmV3X2Nsb2NrKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX2xvc3QpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfbmV3X2Nsb2NrKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBbHNvIGNhcnJ5IHRoZSBjbG9jayBpbiBxdWVzdGlvbi4KCjIwMDUtMTAtMDggMTI6MzY6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBDbGVhbiB1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19jdXN0b20pLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2VvcyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfcHJvdmlkZSksCgkgIChnc3RfbWVzc2FnZV9uZXdfbmV3X2Nsb2NrKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX3BhcnNlX25ld19jbG9jayk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQ2xlYW4gdXAuCgkgIEFkZGVkIGNsb2NrIHJlbGF0ZWQgbWVzc2FnZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgUG9zdCBtZXNzYWdlIHdoZW4gdGhlIGNsb2NrIGNoYW5nZWQuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IG5ldyBjbG9jay4KCjIwMDUtMTAtMDggMTE6MTY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBDYW4ndCBwYXNzIE5VTEwgc3RyaW5ncyB0byBnX3ByaW50KCkgb24gd2luZG93cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgQ2FuJ3QgcGFzcyBOVUxMIHN0cmluZ3MgdG8gZ19wcmludCgpIG9uIHdpbmRvd3MuCgoyMDA1LTEwLTA4IDExOjEyOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBjaGFwdGVyIG9uIHJ1bm5pbmcgR1N0cmVhbWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJICBhZGQgYSBjaGFwdGVyIG9uIHJ1bm5pbmcgR1N0cmVhbWVyLgoJICBkb2N1bWVudCBHU1RfREVCVUcgYW5kIEdTVF9QTFVHSU4qIGVudiB2YXJzCgoyMDA1LTEwLTA4IDExOjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiByZW1vdmUgaW5jbHVkZSBkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBpbmNsdWRlIGRpcgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlIFBMVUdJTlNfQlVJTERESVIgc3R1ZmYKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICByZW9yZGVyIHBhcnNpbmcgb2YgR1NUX1BMVUdJTl9QQVRIIGFuZCBHU1RfUExVR0lOX1NZU1RFTV9QQVRICgkgICogaWRpb3R0ZXN0Lm1hazoKCSAgcmVtb3ZlLCBpdCB3YXMgY29uZGVzY2VuZGluZyBhbmQgbm90IG5lZWRlZAoKMjAwNS0xMC0wOCAwOTo1ODozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IFJlcG9zdCBFT1MgbWVzc2FnZSB3aGlsZSBnb2luZyB0byBQTEFZSU5HIGlmIHN0aWxsIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXQpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFJlcG9zdCBFT1MgbWVzc2FnZSB3aGlsZSBnb2luZyB0byBQTEFZSU5HIGlmIHN0aWxsIEVPUy4KCSAgTWFrZSBzdXJlIHRoYXQgd2hlbiByZWNlaXZpbmcgYSBGTFVTSF9TVEFSVCB3ZSBkb24ndCBhdHRlbXB0CgkgIHRvIHN5bmMgb24gdGhlIGNsb2NrIGFueW1vcmUuCgoyMDA1LTEwLTA4IDA5OjM4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBCZXR0ZXIgbWVzc2FnZSBwcmludG91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIEJldHRlciBtZXNzYWdlIHByaW50b3V0LgoKMjAwNS0xMC0wOCAwOToyNDoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1ha2UgQ2hpbGRQcm94eSB0aHJlYWRzYWZlIGFuZCBmaXggbWVtIGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfbmFtZSksCgkgIChnc3RfY2hpbGRfcHJveHlfbG9va3VwKSwgKGdzdF9jaGlsZF9wcm94eV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF92YWxpc3QpLCAoZ3N0X2NoaWxkX3Byb3h5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfc2V0X3ZhbGlzdCk6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgTWFrZSBDaGlsZFByb3h5IHRocmVhZHNhZmUgYW5kIGZpeCBtZW0gbGVha3MuCgoyMDA1LTEwLTA4IDA5OjA5OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogZGVidWcgdGhlIEdTVF9QTFVHSU5fIGVudiB2YXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIGRlYnVnIHRoZSBHU1RfUExVR0lOXyBlbnYgdmFycwoKMjAwNS0xMC0wOCAwODo1ODo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIGV4dHJhIGZpZWxkIHRvIFNUQVRFX0NIQU5HRSBtZXNzYWdlIHdpdGggdGhlIHBlbmRpbmcgc3RhdGUsIHdoaWNoIHdpbGwgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5ldyBzdGF0ZSBzb29uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKG1lc3NhZ2VfcmVjZWl2ZWQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIEFkZGVkIGV4dHJhIGZpZWxkIHRvIFNUQVRFX0NIQU5HRSBtZXNzYWdlIHdpdGggdGhlIHBlbmRpbmcKCSAgc3RhdGUsIHdoaWNoIHdpbGwgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5ldyBzdGF0ZSBzb29uLgoKMjAwNS0xMC0wOCAwODowMDozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGNsZWFudXBzIGFuZCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3ApOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpOgoJICBTbWFsbCBjbGVhbnVwcyBhbmQgZG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDA2OjQ5OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGxvZyBkaXN0cmlidXRpbmcgY2xvY2tzIGFuZCBiYXNlIHRpbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBsb2cgZGlzdHJpYnV0aW5nIGNsb2NrcyBhbmQgYmFzZSB0aW1lCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpOgoJICBjbGVhbiB1cCB0aGUgZGVidWdnaW5nIG91dHB1dCBhIGxpdHRsZQoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpOgoJICB3YXJuIGFib3V0IGEgbWVtbGVhayAoSSd2ZSBhY3R1YWxseSBzZWVuIHRoaXMgYmUgdXNlZCwgdGhvdWdoCgkgIGl0IHdhcyBwcm9iYWJseSBhIGJ1ZykKCjIwMDUtMTAtMDggMDY6NDI6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgYWRkIHR3byBuZXcgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdHdvIG5ldyBmdW5jdGlvbnMKCjIwMDUtMTAtMDcgMTg6MTc6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLio6IE1ha2UgdGhlIG5ld3NlZ21lbnQgZXZlbnQgY3VzdG9taXphYmxlIGJ5IHN1YmNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX25ld3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE1ha2UgdGhlIG5ld3NlZ21lbnQgZXZlbnQgY3VzdG9taXphYmxlIGJ5IHN1YmNsYXNzZXMuCgoyMDA1LTEwLTA3IDE4OjAyOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IE5ldyBldmVudCBmb3IgZnV0dXJlIGlkZWEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19idWZmZXJzaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJzaXplKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgTmV3IGV2ZW50IGZvciBmdXR1cmUgaWRlYS4KCjIwMDUtMTAtMDcgMTY6Mjg6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6IERvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6IERvYyB1cGRhdGUuCgoyMDA1LTEwLTA3IDE2OjEzOjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBVcGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOiBNYWRlIGludG8gYQoJICBmdW5jdGlvbiBsaWtlIGhvbmVzdCBBUEkgY2FsbHMuCgkgIChnc3RfbWVzc2FnZV9uZXdfZWxlbWVudCk6IE5ldyBtZXNzYWdlIHR5cGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaCAoZW51bSk6IEFkZCBHU1RfTUVTU0FHRV9FTEVNRU5UIHR5cGUuCgoyMDA1LTEwLTA3IDE1OjI1OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGZkc3JjIGRvZXMgbm90IGJ1aWxkIGN1cnJlbnRseSBvbiB3aW4zMiBkdWUgdG8gc29ja2V0cGFpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmRzcmMgZG9lcyBub3QgYnVpbGQgY3VycmVudGx5IG9uIHdpbjMyIGR1ZSB0byBzb2NrZXRwYWlyCgoyMDA1LTEwLTA3IDE1OjIyOjM4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmMgKHRlc3Rfbm9fcHJlcm9sbCk6IE5ldyBjaGVjaywgY2hlY2tzIHRoYXQgc2V0dGluZyBhIGxpdmUgZmFrZXNyYyB0byBQQVVTRUQgcmV0dXJucyBOT19QUkVST0wuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jICh0ZXN0X25vX3ByZXJvbGwpOiBOZXcgY2hlY2ssIGNoZWNrcwoJICB0aGF0IHNldHRpbmcgYSBsaXZlIGZha2VzcmMgdG8gUEFVU0VEIHJldHVybnMgTk9fUFJFUk9MTCBib3RoCgkgIHRpbWVzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6IEFsbG93IGEKCSAgTk9fUFJFUk9MTCBmcm9tIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSB0byBmYWxsIHRocm91Z2guCgoyMDA1LTEwLTA3IDE1OjEzOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZG9uJ3QgdXNlIGlmIG5vdCBkZWNsYXJlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgdXNlIGlmIG5vdCBkZWNsYXJlZAoKMjAwNS0xMC0wNyAxMjo1MjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBY3RpdmF0aW5nIGEgZ2hvc3RwYWQgd2l0aCBubyBpbnRlcm5hbCBwYWQgaW4gcHVzaCBtb2RlIGlzIG9rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZ2V0X2ludGVybmFsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6CgkgIEFjdGl2YXRpbmcgYSBnaG9zdHBhZCB3aXRoIG5vIGludGVybmFsIHBhZCBpbiBwdXNoIG1vZGUKCSAgaXMgb2suCgoyMDA1LTEwLTA3IDEyOjQ1OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RvYmplY3QuaDogdGhlcmUncyBubyBwb2ludCBpbiB3cmFwcGluZyBGTEFHX1NFVC9fVU5TRVQgaW4gU1RNVCBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgdGhlcmUncyBubyBwb2ludCBpbiB3cmFwcGluZyBGTEFHX1NFVC9fVU5TRVQgaW4gU1RNVCBtYWNyb3MuCgkgIEZpeGVzIGNvbXBpbGF0aW9uIG9uIFdpbmRvd3MuCgoyMDA1LTEwLTA3IDEwOjMyOjI0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgUHJpbnQgb3V0IGZlYXR1cmUgYW5kIHBsdWdpbiBjb3VudCBhdCB0aGUgZW5kIHdoZW4gcHJpbnRpbmcgb3V0IGFsbCBmZWF0dXJlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFByaW50IG91dCBmZWF0dXJlIGFuZCBwbHVnaW4gY291bnQgYXQgdGhlIGVuZCB3aGVuIHByaW50aW5nIG91dAoJICBhbGwgZmVhdHVyZXMuCgkgIEFsc28gYWRkIGEgY2hhbmdlbG9nIGVudHJ5IHdoaWNoIEknZCB3cml0dGVuIGJ1dCBub3QgY29tbWl0dGVkPwoKMjAwNS0xMC0wNyAwMDoxNDo0NSArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBBZGQgYSBHVHlwZSB0byBHc3RJdGVyYXRvciwgdXBkYXRlIGNhbGxzaXRlcyBhbmQgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faXRlcmF0ZV9lbGVtZW50cyksCgkgIChnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZSksIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRzKToKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChnc3RfZm9ybWF0X2l0ZXJhdGVfZGVmaW5pdGlvbnMpOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2luaXQpLCAoZ3N0X2l0ZXJhdG9yX25ldyksCgkgIChnc3RfaXRlcmF0b3JfbmV3X2xpc3QpLCAoZ3N0X2l0ZXJhdG9yX2ZpbHRlcik6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfdHlwZV9pdGVyYXRlX2RlZmluaXRpb25zKToKCSAgQWRkIGEgR1R5cGUgdG8gR3N0SXRlcmF0b3IsIHVwZGF0ZSBjYWxsc2l0ZXMgYW5kIHRlc3RzLgoKMjAwNS0xMC0wNiAyMTowOToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGRvaC4gIHVzZSBjb3JyZWN0IHZhcmlhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2guICB1c2UgY29ycmVjdCB2YXJpYWJsZQoKMjAwNS0xMC0wNiAxNzowMDo1MCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHZlcnNpb24gZ3N0cmVhbWVyLXRvb2xzIHBhY2thZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZlcnNpb24gZ3N0cmVhbWVyLXRvb2xzIHBhY2thZ2UKCjIwMDUtMTAtMDYgMTQ6MjA6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGluaXRpYWxpemUgcXVhcmtzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbml0aWFsaXplIHF1YXJrcwoKMjAwNS0xMC0wNiAxNDowMTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IGdpdmUgZXZlbnRzIGEgY2hhbmNlIHRvIGJlIGhhbmRsZWQgYnkgZXZlbnQgcHJvYmVzIHdoZW4gdGhlIHBhZCBpcyBub3QgbGlua2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCk6CgkgIGdpdmUgZXZlbnRzIGEgY2hhbmNlIHRvIGJlIGhhbmRsZWQgYnkgZXZlbnQgcHJvYmVzIHdoZW4gdGhlIHBhZAoJICBpcyBub3QgbGlua2VkCgoyMDA1LTEwLTA2IDEzOjU1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RldmVudC4qOiBhZGQgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgZXZlbnQgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfdHlwZV9nZXRfbmFtZSksCgkgIChnc3RfZXZlbnRfdHlwZV90b19xdWFyayksIChnc3RfZXZlbnRfZmluYWxpemUpLCAoZ3N0X2V2ZW50X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGFkZCBzdHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciBldmVudCB0eXBlcwoKMjAwNS0xMC0wNiAxMzo0Mjo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0wNiAxMzoyNDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBEb24ndCB1c2UgTlVMTCBwb2ludGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpOgoJICBEb24ndCB1c2UgTlVMTCBwb2ludGVycy4KCjIwMDUtMTAtMDYgMDk6NDk6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0Lzogd2lkZW4gdGhlIGRlYnVnIGNhdGVnb3J5IGluIG91dHB1dCB0byBmaXQgdGhlIGJpZ2dlc3Qgb25lIHdlIGhhdmUgYWRkIGEgYnVzIGNhdGVnb3J5IGFuZCB1c2UgaXQgcGxheSB3aXRoIHRoZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgd2lkZW4gdGhlIGRlYnVnIGNhdGVnb3J5IGluIG91dHB1dCB0byBmaXQgdGhlIGJpZ2dlc3Qgb25lIHdlIGhhdmUKCSAgYWRkIGEgYnVzIGNhdGVnb3J5IGFuZCB1c2UgaXQKCSAgcGxheSB3aXRoIHRoZSBjb2xvcnMKCSAgZml4IHVwIHNvbWUgY2F0ZWdvcmllcwoKMjAwNS0xMC0wNiAwNzo0Mjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBmaXJzdCBzdGFiIGF0IHJlb3JnYW5pemluZyBkb2NzIGZvciBwYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpcnN0IHN0YWIgYXQgcmVvcmdhbml6aW5nIGRvY3MgZm9yIHBhZAoKMjAwNS0xMC0wNiAwNzoxMzowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogYWRkIHB1c2ggYWN0aXZhdGlvbiBvZiBzaW5rIGdob3N0IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA2ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKToKCSAgYWRkIHB1c2ggYWN0aXZhdGlvbiBvZiBzaW5rIGdob3N0IHBhZHMuCgkgIEFuZHllLCBwbGVhc2UgdmVyaWZ5CgoyMDA1LTEwLTA1IDIyOjM1OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyB1cGRhdGVzCgoyMDA1LTEwLTA1IDIxOjM0OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBmaXggYSBidWcgaW4gdGhlIGNhc2Ugd2hlcmUgbmVpdGhlciBlbGVtZW50IGhhcyBhIHBhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6CgkgIGZpeCBhIGJ1ZyBpbiB0aGUgY2FzZSB3aGVyZSBuZWl0aGVyIGVsZW1lbnQgaGFzIGEgcGFkCgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgdGhhdCBjYXNlCgoyMDA1LTEwLTA1IDE3OjAxOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB1bnJlZiBvdXIgdGVzdCBidWZmZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bnJlZiBvdXIgdGVzdCBidWZmZXJzCgoyMDA1LTEwLTA1IDE2OjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogZW1pdCBoYXZlLWRhdGEgYmVmb3JlIGNoZWNraW5nIGZvciBwZWVycy4gIFRoaXMgYWxsb3dzIGZvciBwcm9iZSBoYW5kbGVycyB0byBjb25uZWN0IGVsZW1lbnRzLiAgVGhpcyBoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgZW1pdCBoYXZlLWRhdGEgYmVmb3JlIGNoZWNraW5nIGZvciBwZWVycy4gIFRoaXMgYWxsb3dzCgkgIGZvciBwcm9iZSBoYW5kbGVycyB0byBjb25uZWN0IGVsZW1lbnRzLiAgVGhpcyBoZWxwcyBhdXRvcGx1Z2dlcnMuCgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoX3Byb2JlX2hhbmRsZXIpLAoJICAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCBzaXggY2hlY2tzLCBsaW5rZWQvdW5saW5rZWQgd2l0aCBuby90cnVlL2ZhbHNlIHByb2JlCgoyMDA1LTEwLTA1IDExOjUwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgaW5kZW50IGlmZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5kZW50IGlmZGVmcwoKMjAwNS0xMC0wNCAxODo0NjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy86IFByb3RlY3QgbGFzdF9tZXNzYWdlIHdpdGggbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZV9zaW5rX2V2ZW50KSwgKGdzdF9mYWtlX3NpbmtfcHJlcm9sbCksCgkgIChnc3RfZmFrZV9zaW5rX3JlbmRlciksIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSksCgkgIChnc3RfZmFrZV9zcmNfc3RvcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfc3RvcCk6CgkgIFByb3RlY3QgbGFzdF9tZXNzYWdlIHdpdGggbG9jay4KCjIwMDUtMTAtMDQgMTU6MDQ6NTAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Zm9ybWF0Lmg6IEFkZGVkIHByZWNpc2lvbiBpbiB0aGUgY29tbWVudHMgZm9yIEdTVF9GT1JNQVRfREVGQVVMVAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgIEFkZGVkIHByZWNpc2lvbiBpbiB0aGUgY29tbWVudHMgZm9yIEdTVF9GT1JNQVRfREVGQVVMVAoKMjAwNS0xMC0wNCAxMzoxOTo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCjIwMDUtMTAtMDQgMTI6MDI6MzQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICByZW1vdmUgc29tZSBmaWxlcyB0aGF0IGFyZSBubyBsb25nZXIgdGhlcmUgZnJvbSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzb21lIGZpbGVzIHRoYXQgYXJlIG5vIGxvbmdlciB0aGVyZSBmcm9tIHNwZWMgZmlsZQoKMjAwNS0xMC0wNCAxMTo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uJ3QgdHJ5IHRvIHJ1biBlcnJvbmVvdXMgcGlwZWxpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgRG9uJ3QgdHJ5IHRvIHJ1biBlcnJvbmVvdXMgcGlwZWxpbmVzLgoKMjAwNS0xMC0wNCAxMToxMDowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdGVycm9yLmM6IEFkZCBhbm90aGVyIGVycm9yIHN0cmluZyB1c2VkIGluIGEgZmV3IGV4aXN0aW5nIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICBBZGQgYW5vdGhlciBlcnJvciBzdHJpbmcgdXNlZCBpbiBhIGZldyBleGlzdGluZyBwbHVnaW5zLgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBXaGVuIGEgZmVhdHVyZSBkaXNhcHBlYXJzIGZyb20gYSBwbHVnaW4gKGFuZCB0aGUgZmVhdHVyZSBleGlzdHMgaW4KCSAgdGhlIGNhY2hlZCByZWdpc3RyeSBmaWxlKSwgdGhpbmdzIHdlbnQgaG9ycmlibHkgd3JvbmcuIFRoaXMgaXNuJ3QgYQoJICBjb21wbGV0ZSBmaXgsIHdlIHNob3VsZCBhY3R1YWxseSBiZSByZW1vdmluZyB0aGUgJ21pc3NpbmcnIGZlYXR1cmVzCgkgIGZyb20gdGhlIGZlYXR1cmVzIGxpc3Qgd2hlbiB3ZSBsb2FkIHRoZSBhY3R1YWwgcGx1Z2luLiBUaGF0J3Mgbm90CgkgIHlldCBpbXBsZW1lbnRlZC4KCjIwMDUtMTAtMDQgMTE6MDk6NDEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBXZSBkb24ndCBuZWVkIHRoaXMgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RidXMuYzogV2UgZG9uJ3QgbmVlZCB0aGlzIGhlYWRlci4KCjIwMDUtMTAtMDMgMTc6NTc6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjkuMyA9PT0KCjIwMDUtMTAtMDMgMTc6NDc6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUFETUU6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICByZWxlYXNlIHRpbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2UgdGltZQoKMjAwNS0xMC0wMiAyMzoyNDoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uIHdoZXJlYnkgY2FsbGluZyBhIHBhZCdzIGFjdGl2YXRlcHVzaCgpIGZ1bmN0aW9uIGNhbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbgoJICB3aGVyZWJ5IGNhbGxpbmcgYSBwYWQncyBhY3RpdmF0ZXB1c2goKSBmdW5jdGlvbiBjYW4gc3RhcnQgYSB0aHJlYWQKCSAgdGhhdCBzdGFydHMgdG8gcHVzaCBvciBwdWxsIGJlZm9yZSB0aGUgcGFkIGdldHMgdGhlIEZMVVNISU5HIGZsYWcKCSAgdW5zZXQuIEhhY2sgYXJvdW5kIGl0IGJ5IGhvbGRpbmcgdGhlIHN0cmVhbSBsb2NrIHVudGlsIHRoZSBmbGFnIGlzCgkgIHNldC4gTmVlZCB0byByZXBsYWNlIHRoaXMgd2l0aCBhIHByb3BlciBzb2x1dGlvbi4gVG9nZXRoZXIgd2l0aAoJICB0aGUgZ2hvc3QgcGFkIGZpeGVzLCB0aGlzIGZpeGVzIG1wMyBwbGF5aW5nL3RhZ3JlYWRpbmcuCgoyMDA1LTEwLTAyIDIzOjIxOjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTEwLTAyIDIzOjIwOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogQWRkIGEgbm90ZSBhYm91dCBhY3RpdmF0aW9uIG9mIHByb3h5IHBhZHMgb3V0c2lkZSBvZiBnaG9zdCBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogQWRkIGEgbm90ZSBhYm91dCBhY3RpdmF0aW9uIG9mCgkgIHByb3h5IHBhZHMgb3V0c2lkZSBvZiBnaG9zdCBwYWRzLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBJbXBsZW1lbnQgdGhlIGdob3N0IHBhZCBhY3RpdmF0aW9uIGRlc2lnbi4KCjIwMDUtMTAtMDIgMTg6NTc6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9SRUZDT1VOVF9WQUxVRSk6IEp1c3QgdXNlIHRoZSBpbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9SRUZDT1VOVF9WQUxVRSk6IEp1c3QgdXNlIHRoZSBpbnQuCgkgIEl0IGlzIHZvbGF0aWxlLCBhZnRlciBhbGwuCgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IEZsZXNoIG91dCBhY3RpdmF0aW9uIHdpdGgKCSAgZ2hvc3QgcGFkcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19pbml0KTogVXNlCgkgIEdTVF9ERUJVR19GVU5DUFRSLgoKMjAwNS0xMC0wMiAxODozMDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRml4ICh1bnVzZWQpIEFNX0NPTkRJVElPTkFMIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCAodW51c2VkKSBBTV9DT05ESVRJT05BTCB0ZXN0cy4KCjIwMDUtMTAtMDEgMTc6MTE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkIGFzc2VydGlvbiB0aGF0IG1ha2VzIHN1cmUgc3JjX3ZhbCBpcyA+PTAsIGp1c3QgbGlrZSBnc3RfcXVlcnlfbmV3X2NvbnZlcnQoKSBoYXMuICgjMzE1ODk1KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcXVlcnlfY29udmVydCk6CgkgIEFkZCBhc3NlcnRpb24gdGhhdCBtYWtlcyBzdXJlIHNyY192YWwgaXMgPj0wLCBqdXN0IGxpa2UKCSAgZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KCkgaGFzLiAoIzMxNTg5NSkKCjIwMDUtMDktMzAgMTU6NDM6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IExldCdzIG5vdCBpdGVyYXRlIHBhZHMgd2UncmUgbm90IGludGVyZXN0ZWQgaW4sIGl0IGF2b2lkcyBnZXR0aW5nIHNreS1oaWdoIHJlZmNvdW50cyBvbiBzaW5rcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2RvX3B1c2gpLCAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgTGV0J3Mgbm90IGl0ZXJhdGUgcGFkcyB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiwgaXQgYXZvaWRzIGdldHRpbmcKCSAgc2t5LWhpZ2ggcmVmY291bnRzIG9uIHNpbmtwYWQuCgoyMDA1LTA5LTMwIDA4OjI5OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU21hbGwgdHdlYWssIGVsZW1lbnQgaW4gQVNZTkMgcmVtYWlucyBBU1lOQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCB0d2VhaywgZWxlbWVudCBpbiBBU1lOQyByZW1haW5zIEFTWU5DLgoKMjAwNS0wOS0zMCAwODowMDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE9ubHkgZXJyb3IgaXMgYW4gZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE9ubHkgZXJyb3IgaXMgYW4gZXJyb3IuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfY2hhaW4pOgoJICBBbHNvIGNhbGwgcGFkX2Jsb2NrIGluIHBhZCBhbGxvYy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9mbG93X2dldF9uYW1lKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCjIwMDUtMDktMjkgMjA6MjY6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCBkb2N1bWVudGF0aW9uIHR5cG9zLiBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBGaXggZG9jdW1lbnRhdGlvbiB0eXBvcy4gQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoKMjAwNS0wOS0yOSAyMDoxNjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRpc2FibGUgcmVmY291bnQgY2hlY2tzIHVudGlsIHdlIHRyYWNrIHRoZSBkYW5nbGluZyByZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgcmVmY291bnQgY2hlY2tzIHVudGlsIHdlIHRyYWNrIHRoZSBkYW5nbGluZyByZWYKCjIwMDUtMDktMjkgMTk6NDU6MjcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBNYWtlIHNvbWUgZXJyb3IgbWVzc2FnZXMgbW9yZSBlbmQtdXNlciBmcmllbmRseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOiBNYWtlIHNvbWUgZXJyb3IgbWVzc2FnZXMKCSAgbW9yZSBlbmQtdXNlciBmcmllbmRseS4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6IENoZWNrIGlmIGNvbW1hbmQtbGluZSBhcmd1bWVudCBpcwoJICBhIGZpbGUgYW5kIGF0dGVtcHQgdG8gbG9hZCB0aGF0IGZpbGUgYXMgYSBwbHVnaW4uCgoyMDA1LTA5LTI5IDE4OjM3OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogZml4IHRlc3RzIGZvciB0aGUgbmV3IHdhcm5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJICBmaXggdGVzdHMgZm9yIHRoZSBuZXcgd2FybmluZwoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBhZGQgYSB0ZXN0IGZvciBwaXBlbGluZSBhbmQgYnVzIGludGVyYWN0aW9uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudHMgc2hvdWxkIGJlIE5VTEwgaWYgdGhleSBnZXQgZGlzcG9zZWQ7IGFkZCBhIHdhcm5pbmcgaWYgbm90CgoyMDA1LTA5LTI5IDE4OjM1OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RvYmplY3QuYzogZm9yIDIuNiByZWZjb3VudGluZywgbWFrZSBkZWJ1ZyBsb2cgbW9yZSBjb3JyZWN0IGJ5IHByaW50aW5nIHRoZSBhY3R1YWwgcmVmY291bnRzIGF0IHRoZSB0aW1lIG9mIHN3YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGZvciAyLjYgcmVmY291bnRpbmcsIG1ha2UgZGVidWcgbG9nIG1vcmUgY29ycmVjdCBieSBwcmludGluZwoJICB0aGUgYWN0dWFsIHJlZmNvdW50cyBhdCB0aGUgdGltZSBvZiBzd2FwIChXaW0pCgoyMDA1LTA5LTI5IDE4OjI1OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIHVzZSBtZXNzYWdlIHR5cGUgbmFtZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVzZSBtZXNzYWdlIHR5cGUgbmFtZXMKCjIwMDUtMDktMjkgMTY6MDY6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMDktMjkgMTY6MDQ6MzEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKTogTmV3IGZ1bmN0aW9uLCByZW1vdmVzIHNpZ25hbCB3YXRjaGVzIHByZXZpb3VzbHkgYWRkZWQgdmlhIGdzdF9idXNfYWRkX3NpZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCk6IE5ldyBmdW5jdGlvbiwKCSAgcmVtb3ZlcyBzaWduYWwgd2F0Y2hlcyBwcmV2aW91c2x5IGFkZGVkIHZpYQoJICBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2guCgkgIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2gpOiBEb24ndCByZXR1cm4gdGhlIHNvdXJjZSBpZCwganVzdCBzdG9yZQoJICBpdCBvbiB0aGUgYnVzIGlmIHRoZXJlIHdhc24ndCBhbiBpZCBhbHJlYWR5LgoJICAqIGdzdC9nc3RidXMuaCAoR3N0QnVzKTogQWRkIGEgY291cGxlIG5ldyBmaWVsZHMuIEFQSSBjaGFuZ2VzIGZvcgoJICBhZGRfc2lnbmFsX3dhdGNoIGFuZCByZW1vdmVfc2lnbmFsX3dhdGNoLgoKMjAwNS0wOS0yOSAxNTozOToyMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBCZXR0ZXIgaWYgd2UgYWN0dWFsbHkgaXRlcmF0ZSB0aGUgbGlzdCA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgQmV0dGVyIGlmIHdlIGFjdHVhbGx5IGl0ZXJhdGUgdGhlIGxpc3QgOikKCjIwMDUtMDktMjkgMTM6MDc6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IENoYW5nZSBmb3IgbmV3IGJ1cyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hhbmdlIGZvciBuZXcgYnVzIEFQSS4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChtZXNzYWdlX2Z1bmNfZW9zKSwgKG1lc3NhZ2VfZnVuY19hcHApLAoJICAoc2VuZF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksIChnc3RidXNfc3VpdGUpOgoJICBDaGFuZ2UgZm9yIG5ldyBidXMgc2lnbmFsIEFQSS4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpLCAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpLAoJICAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksIChnc3RfYnVzX3NvdXJjZV9jaGVjayksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoKSwgKGdzdF9idXNfcG9sbCksIChnc3RfYnVzX2FzeW5jX3NpZ25hbF9mdW5jKSwKCSAgKGdzdF9idXNfc3luY19zaWduYWxfaGFuZGxlciksIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2gpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgUmVtb3ZlIHN1cHBvcnQgZm9yIG11bHRpcGxlIEdTb3VyY2VzIG9wZXJhdGluZyBvbiBkaWZmZXJlbnQKCSAgbWVzc2FnZSB0eXBlcyBhcyBpdCBpcyB0b28gY29tcGxleCBhbmQgdW5uZWVkZWQgd2hlbiB1c2luZwoJICBzaWduYWxzLgoJICBBZGRlZCBzdXBwb3J0IGZvciByZWNlaXZpbmcgc2lnbmFscyBmcm9tIHRoZSBidXMuCgoyMDA1LTA5LTI5IDEyOjM3OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbmFtZSBmaWx0ZXItY2FwcyB0byBjYXBzIHByb3BlcnR5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIHJlbmFtZSBmaWx0ZXItY2FwcyB0byBjYXBzIHByb3BlcnR5CgoyMDA1LTA5LTI5IDEyOjA1OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IE1vcmUgcm9idXN0IGZyYWN0aW9uIHN0cmluZyBwYXJzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIE1vcmUgcm9idXN0IGZyYWN0aW9uIHN0cmluZyBwYXJzaW5nLgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBNZW50aW9uIGdzdF9wYWRfdXNlX2V4cGxpY2l0X2NhcHMoKSA9PiBnc3RfcGFkX3VzZV9maXhlZF9jYXBzKCkKCjIwMDUtMDktMjkgMTA6NTY6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBUaG91IHNoYWx0IG5vdCBmcmVlIGEgc3RydWN0dXJlIGFuZCB0aGVuIGNvbnRpbnVlIHVzaW5nIGl0IGluIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpOgoJICBUaG91IHNoYWx0IG5vdCBmcmVlIGEgc3RydWN0dXJlIGFuZCB0aGVuIGNvbnRpbnVlIHVzaW5nIGl0CgkgIGluIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uLgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChjaGVja19mb3VyY2NfbGlzdCksICh0ZXN0X3NpbXBsaWZ5KSwKCSAgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkIHRlc3QgY2FzZSBmb3IgY2FwcyBzaW1wbGlmaWNhdGlvbi4KCjIwMDUtMDktMjkgMDk6NDQ6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIHR3byByZW1vdmVkIGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHR3byByZW1vdmVkIGZ1bmN0aW9ucwoKMjAwNS0wOS0yOSAwOTo0MjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogT29wcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBPb3BzLgoKMjAwNS0wOS0yOSAwOTozOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkIGJ1cyB0byBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGJ1cyB0byBiaW4uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfZGVncmVlKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIEEgYmluIGRvZXMgbm90IGhhdmUgYSBidXMsIGl0IGdldHMgdGhlIGJ1cyBmcm9tIHRoZSBwYXJlbnQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlcXVpcmVzX2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrKSwgKGdzdF9lbGVtZW50X2lzX2luZGV4YWJsZSksCgkgIChnc3RfZWxlbWVudF9pc19sb2NrZWRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9idXNfZnVuYyk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgIFRoZSBwaXBlbGluZSBwcm92aWRlcyBhIGJ1cy4KCjIwMDUtMDktMjkgMDI6MzI6MzcgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6IFVzZSBnc3Rfc3RydWN0dXJlX2dldF9lbnVtIGluc3RlYWQgb2YgZ3N0X3N0cnVjdHVyZV9nZXRfaW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOiBVc2UKCSAgZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSBpbnN0ZWFkIG9mIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludAoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYyAoZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSk6IEltcGwuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oIChnc3Rfc3RydWN0dXJlX2dldF9lbnVtKTogQWRkCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRGl0dG8KCjIwMDUtMDktMjkgMDE6NTc6MDAgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOiBVc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOiBVc2UKCSAgR1NUX1RZUEVfU1RBVEUgaW5zdGVhZCBvZiBHX1RZUEVfSU5ULCBtYWlubHkgZm9yIGxhbmd1YWdlIGJpbmRpbmdzCgkgIHdoaWNoIGRvZXMgaW50cm9zcGVjdGlvbi4KCSAgUmV2aWV3ZWQgYnkgQ2hyaXN0aWFuIFNjaGFsbGVyCgoyMDA1LTA5LTI4IDE4OjE0OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIGZpeGVkIHVtbGF1dHMgaW4gQ2hhbmdlTG9nIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXhlZCB1bWxhdXRzIGluIENoYW5nZUxvZyBhZ2FpbgoKMjAwNS0wOS0yOCAxNzozMDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogZG9uJ3QgZG8gZHVtbXkgZ19zdHJkdXAoKXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIGRvbid0IGRvIGR1bW15IGdfc3RyZHVwKClzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChvbl9vYmplY3RfY29udHJvbGxlZF9wcm9wZXJ0eV9jaGFuZ2VkKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksIChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX3ZhbGlzdCksIChnc3RfY29udHJvbGxlcl9zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX3RpbWVkX3ZhbHVlX25vZGUpOgoJICBjb252ZXJ0IC8vIHRvIC8qKi8gY29tbWVudHMKCjIwMDUtMDktMjggMTY6NDM6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLio6IEFkZGVkIGFzeW5jLW1lc3NhZ2UgYW5kIHN5bmMtbWVzc2FnZSBzaWduYWxzIHRvIHRoZSBidXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVCksIChnc3RfYnVzX2NsYXNzX2luaXQpLAoJICAoZ3N0X2J1c19wb3N0KSwgKHBvbGxfZnVuYyksIChnc3RfYnVzX2FzeW5jX3NpZ25hbF9mdW5jKSwKCSAgKGdzdF9idXNfc3luY19zaWduYWxfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBBZGRlZCBhc3luYy1tZXNzYWdlIGFuZCBzeW5jLW1lc3NhZ2Ugc2lnbmFscyB0byB0aGUgYnVzLgoJICBBZGRlZCBoZWxwZXIgQnVzRnVuYyB0byBlbWl0IHNpZ25hbHMgZm9yIGFsbCBwb3N0ZWQgbWVzc2FnZXMuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3R5cGVfZ2V0X25hbWUpLAoJICAoZ3N0X21lc3NhZ2VfdHlwZV90b19xdWFyayksIChnc3RfbWVzc2FnZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUmVnaXN0ZXIgcXVhcmtzIGZvciBtZXNzYWdlIG5hbWVzLgoKMjAwNS0wOS0yOCAxNjozOToyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgYW5vdGhlciBjb25zdHJ1Y3RvciBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBhZGRlZCBhbm90aGVyIGNvbnN0cnVjdG9yIGZvciBsYW5ndWFnZSBiaW5kaW5ncwoKMjAwNS0wOS0yOCAxNTo0NToyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogYWRkIGFub3RoZXIgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGlwZWxpbmVfc3VpdGUpOgoJICBhZGQgYW5vdGhlciBjaGVjawoJICAqIGdzdC9nc3RidXMuYzoKCSAgYWRkIHNvbWUgZG9jCgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgIHNsaWdodGx5IG1vcmUgcmVhZGFibGUgY29sb3IgZm9yIHJlZmNvdW50IGRlYnVnZ2luZwoKMjAwNS0wOS0yOCAxMzo0MToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU21hbGwgZG9jIGZpeGVzLiBnZXRfY2xvY2sgLT4gcHJvdmlkZV9jbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9kZWdyZWUpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgU21hbGwgZG9jIGZpeGVzLiBnZXRfY2xvY2sgLT4gcHJvdmlkZV9jbG9jay4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jayksIChnc3RfZWxlbWVudF9wcm92aWRlX2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X2dldF9jbG9jayksIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTWFrZSBnZXQvc2V0X2Nsb2NrKCkgc3ltZXRyaWMuIEFkZCBwcm92aWRlX2Nsb2NrIHZtZXRob2Qgc2luY2UKCSAgdGhhdCBpcyBhY3R1YWxseSB3aGF0IHRoaXMgZnVuY3Rpb24gZG9lcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2Nsb2NrKToKCSAgZ2V0X2Nsb2NrIC0+IHByb3ZpZGVfY2xvY2suCgoyMDA1LTA5LTI4IDEzOjA1OjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY191bmxvY2spOiBDb21tZW50IGEgYml0IGluIGxpZXUgb2YgcmVhbCBkb2NzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3VubG9jayk6IENvbW1lbnQgYSBiaXQgaW4KCSAgbGlldSBvZiByZWFsIGRvY3MuLi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQ2xlYW5lZCB1cCBhIGJpdC4KCjIwMDUtMDktMjggMTI6NTI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvOiBNYWtlIGVsZW1lbnQgZGV0YWlscyBzdGF0aWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBNYWtlIGVsZW1lbnQgZGV0YWlscyBzdGF0aWMuCgoyMDA1LTA5LTI4IDExOjAzOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTb21lIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X291dGRlZ3JlZSksCgkgICh1cGRhdGVfb3V0ZGVncmVlKSwgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBTb21lIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgQ2xlYW4gdXAgZGlzcG9zZSBoYW5kbGVycy4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3JlZiksIChnc3Rfb2JqZWN0X3VucmVmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBDbGVhbiB1cCBkaXNwb3NlIGhhbmRsZXIuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgUmVtb3ZlZCBzcHVyaW91cyBVTkxPQ0suCgoyMDA1LTA5LTI3IDIwOjQwOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCB0d28gbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcyBkb2N1bWVudHMgYWxsIHVuZG9jdW1lbnRlZCBHc3RYWFhGbGFncyBjb21wbGV0ZWQgc29tZSBpbmNvbXBsZXRlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgYWRkZWQgdHdvIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCSAgZG9jdW1lbnRzIGFsbCB1bmRvY3VtZW50ZWQgR3N0WFhYRmxhZ3MKCSAgY29tcGxldGVkIHNvbWUgaW5jb21wbGV0ZSBkb2NzCgoyMDA1LTA5LTI3IDE4OjMzOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBub3cgdXNlbGVzcyBhbmQgbGVha3kgcmVzdXJyZWN0aW9uIGNvZGUgaW4gZGlzcG9zZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgcmVtb3ZlIG5vdyB1c2VsZXNzIGFuZCBsZWFreSByZXN1cnJlY3Rpb24gY29kZSBpbiBkaXNwb3NlCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgIGFkZCBzb21lIGRlYnVnZ2luZwoKMjAwNS0wOS0yNyAxNzowMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETy4KCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfb3V0ZGVncmVlKSwKCSAgKHVwZGF0ZV9vdXRkZWdyZWUpLCAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBSZW1vdmUgZWxlbWVudCB2YXJpYWJsZSwgd2Uga2VlcCBlbGVtZW50IGluZm8gaW4gdGhlIGl0ZXJhdG9yIG5vdy4KCjIwMDUtMDktMjcgMTY6MzA6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IGVycm9yLWNoZWNraW5nIHJldHVybiB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IGVycm9yLWNoZWNraW5nIHJldHVybgoJICB2YWx1ZXMuCgoyMDA1LTA5LTI3IDE2OjE2OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBFbmFibGUgY2hlY2sgdGhhdCB3b3JrcyBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRW5hYmxlIGNoZWNrIHRoYXQgd29ya3Mgbm93LgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9vdXRkZWdyZWUpLAoJICAodXBkYXRlX291dGRlZ3JlZSksIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgUmVkaWQgdGhlIHN0YXRlIGNoYW5nZSBhbGdvcml0aG0gdXNpbmcgYSB0b3BvbG9naWNhbCBzb3J0IGFsZ28uCgkgIEhhbmRsZXMgYWxsIGNhc2VzIGNvcnJlY3RseS4KCSAgRXhwb3NlZCBpdGVyYXRvciBmb3Igc3RhdGUgY2hhbmdlIG9yZGVyLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFRlbXAgc3RvcmFnZSBmb3Igc3RhdGUgY2hhbmdlcy4gTmVlZCB0byBnZXQgcmlkIG9mIHRoaXMgc29vbi4KCjIwMDUtMDktMjcgMTU6Mzc6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBMZWFrIGZpeGVzLCB0aGUgZm9sZCBmdW5jdGlvbnMgbmVlZCB0byB1bnJlZiB0aGUgcGFzc2VkIG9iamVjdCBhbmQgX2dldF9wYXJlbnRfKigpIHJldHVybnMgcmVmIHRvIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9pbml0KSwgKGdzdF90ZWVfZG9fcHVzaCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChpbnRlcnNlY3RfY2Fwc19mdW5jKSwgKGdzdF9wYWRfcHJveHlfZ2V0Y2FwcyksCgkgIChsaW5rX2ZvbGRfZnVuYyksIChnc3RfcGFkX3Byb3h5X3NldGNhcHMpOgoJICBMZWFrIGZpeGVzLCB0aGUgZm9sZCBmdW5jdGlvbnMgbmVlZCB0byB1bnJlZiB0aGUgcGFzc2VkIG9iamVjdCBhbmQKCSAgX2dldF9wYXJlbnRfKigpIHJldHVybnMgcmVmIHRvIHBhcmVudC4KCjIwMDUtMDktMjcgMTM6MjU6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IFBsdWcgbGVhayBpbiB0ZXN0IGNhc2UgYW5kIGZpeCAnbWFrZSBjaGVjay12YWxncmluZCcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAodGVzdF9tYWtlX3dyaXRhYmxlKToKCSAgUGx1ZyBsZWFrIGluIHRlc3QgY2FzZSBhbmQgZml4ICdtYWtlIGNoZWNrLXZhbGdyaW5kJwoKMjAwNS0wOS0yNyAxMzowNzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogU2V0IFJFQURPTkxZIGZsYWcgb24gc3ViYnVmZmVycywgc28gdGhhdCBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB3b3JrcyBjb3JyZWN0bHkgaW4gYWxsIGNpcmN1bXN0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3Rfc3ViYnVmZmVyX2luaXQpOgoJICBTZXQgUkVBRE9OTFkgZmxhZyBvbiBzdWJidWZmZXJzLCBzbyB0aGF0IGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpCgkgIHdvcmtzIGNvcnJlY3RseSBpbiBhbGwgY2lyY3Vtc3RhbmNlcyAod2UgY291bGQgaGF2ZSBqdXN0IGNvcGllZAoJICB0aGUgcGFyZW50IGJ1ZmZlcidzIHJlYWRvbmx5IGZsYWcsIGJ1dCBjb25jZXB0dWFsbHkgaXQgc2VlbXMKCSAgY2xlYW5lciB0byBtYXJrIGFsbCBzdWJidWZmZXJzIGFzIHJlYWQtb25seSkuIChiYXNlZCBvbiBwYXRjaAoJICBieSBBbGVzc2FuZHJvIERlY2luYSwgIzMxNDcxMCkuCgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoY3JlYXRlX3JlYWRfb25seV9idWZmZXIpLAoJICAodGVzdF9tYWtlX3dyaXRhYmxlKSwgKHRlc3Rfc3ViYnVmZmVyX21ha2Vfd3JpdGFibGUpLAoJICAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0cyBmb3IgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkuCgoyMDA1LTA5LTI3IDA5OjU3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiB1c2UgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc2VtaV9zaW5rKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgdXNlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKSBjb3BpZWQgZnJvbSBnc3RiaW4uYyBhcyBpdCBpcyBhCgkgIHVzZWZ1bGwgZnVuY3Rpb24uCgkgICogdGVzdHMvaW5zdGFudGlhdGUvY3JlYXRlLmM6IChjcmVhdGVfYWxsX2VsZW1lbnRzKToKCSAgKiB0ZXN0cy9sYXQuYzogKGhhbmRvZmZfc3JjKSwgKGhhbmRvZmZfc2luayk6CgkgICogdGVzdHMvc2NoZWQvcnVueG1sLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zZWVraW5nL3NlZWtpbmcxLmM6IChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzogKGJ1c19oYW5kbGVyKSwgKHRpbWVvdXRfZnVuYyksCgkgIChtYWluKToKCSAgRml4IGNvbXBpbGF0aW9uIG9mIHNvbWUgdGVzdHMuCgoyMDA1LTA5LTI3IDA5OjI5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmg6IFJlbW92ZSBjb21tZW50LiBHU1RfVFlQRV9HX0VSUk9SIGlzIGhlcmUgdG8gc3RheSwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIFJlbW92ZSBjb21tZW50LiBHU1RfVFlQRV9HX0VSUk9SIGlzIGhlcmUgdG8gc3RheSwKCSAgR19UWVBFX0VSUk9SIGhhcyBiZWVuIFdPTlRGSVgnZWQgYnkgdGhlIEdMaWIgZm9sa3MKCSAgKCMzMTY5NjEsICMzMDA2MTApLgoKMjAwNS0wOS0yNiAxODoyMjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkZWQgY2hlY2sgdGhhdCBzaG93cyBlcnJvciBpbiBzdGF0ZSBjaGFuZ2Ugb3JkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0aGF0IHNob3dzIGVycm9yIGluIHN0YXRlIGNoYW5nZSBvcmRlci4KCjIwMDUtMDktMjYgMTc6NDY6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2Ugc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHVzZSAzIHF1ZXVlcyBhZ2Fpbiwgd2Ugd2VyZSBhZGRpbmcgZWxlbWVudHMgaW4gdGhlIHdyb25nIG9yZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHVzZSAzIHF1ZXVlcyBhZ2Fpbiwgd2Ugd2VyZQoJICBhZGRpbmcgZWxlbWVudHMgaW4gdGhlIHdyb25nIG9yZGVyLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspOgoJICBTb21lIGRlYnVnIGluZm8sCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKToKCSAgQWRkZWQgc29tZSBkZWJ1ZyBpbmZvIGZpcnN0LgoKMjAwNS0wOS0yNiAxNzo0MDozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduLzogUmVwbGFjZSBhbGwgX3B1bGxfcmVnaW9uKCkgd2l0aCBfcHVsbF9yYW5nZSgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkgIFJlcGxhY2UgYWxsIF9wdWxsX3JlZ2lvbigpIHdpdGggX3B1bGxfcmFuZ2UoKQoKMjAwNS0wOS0yNiAxNjoxOToyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHRyeSB0aGUgZm91cnRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cnkgdGhlIGZvdXJ0aAoKMjAwNS0wOS0yNiAxNjoxMjowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGZvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm9vCgoyMDA1LTA5LTI2IDE2OjA3OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYyAoX2dzdF92YWx1ZV9pbml0aWFsaXplKTogQmV0dGVyIGZha2VvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R2YWx1ZS5jIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOiBCZXR0ZXIgZmFrZW91dC4KCjIwMDUtMDktMjYgMTU6NDk6MjMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogVXBkYXRlIGZvciBjb250cm9sbGVyIGFwaSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogVXBkYXRlIGZvciBjb250cm9sbGVyIGFwaSBjaGFuZ2UuCgoyMDA1LTA5LTI2IDE1OjQzOjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBSZW1vdmUgbWVtY2h1bmsgYmVuY2htYXJrIHN0dWZmLCB0aGlzIGlzIHRha2VuIG92ZXIgYnkgR0xpYiBidWcgMTE4NDM5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvbWVtY2h1bms6IFJlbW92ZSBtZW1jaHVuayBiZW5jaG1hcmsgc3R1ZmYsIHRoaXMgaXMgdGFrZW4KCSAgb3ZlciBieSBHTGliIGJ1ZyAxMTg0MzkuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua193YWl0KTogRmFjdG9yIG91dCB0aGUgd2FpdAoJICByb3V0aW5lcyB0byBhIGZ1bmN0aW9uLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEkgYW0gYSBnb29kIHBlcnNvbiB0b2RheS4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcykKCSAgKGdzdF9vYmplY3Rfc3luY192YWx1ZXMpOiBSZW5hbWVkIGZyb20gc2lua192YWx1ZXMuIFVnaC4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiBVcGRhdGUgZm9yIF9fZ3N0X2NvbnRyb2xsZXJfa2V5LgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jIChfX2dzdF9jb250cm9sbGVyX2tleSk6CgkgIFJlbmFtZWQgZnJvbSBjb250cm9sbGVyX2tleSwgYXMgaXQgaXMgZXhwb3J0ZWQuCgkgICogZ3N0L2dzdHZhbHVlLmMgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6IEZha2Ugb3V0IHRoZSBjb21waWxlci4KCjIwMDUtMDktMjYgMTU6MDM6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5oOgoJICByZW1vdmUgcXVlcnl1dGlscyBoZWFkZXJzIGFmdGVyIG1vdmluZyB0aGUgdHdvIHVzZWQgZnVuY3Rpb25zIHRvIGdzdHF1ZXJ5LiAgYWxzbyBmaXhlcyBidWlsZCBwcm9ibGVtIGZvciBnc3RzaWRkZWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBxdWVyeXV0aWxzIGhlYWRlcnMgYWZ0ZXIgbW92aW5nIHRoZSB0d28gdXNlZCBmdW5jdGlvbnMKCSAgdG8gZ3N0cXVlcnkuICBhbHNvIGZpeGVzIGJ1aWxkIHByb2JsZW0gZm9yIGdzdHNpZGRlYwoKMjAwNS0wOS0yNiAxMzo0MDoyMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIENvcnJlY3Qgc3ludGF4IGZvciBkZWJ1ZyBvcHRpb24gaW4gZ3N0LWxhdW5jaCBtYW5wYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDb3JyZWN0IHN5bnRheCBmb3IgZGVidWcgb3B0aW9uIGluIGdzdC1sYXVuY2ggbWFucGFnZQoKMjAwNS0wOS0yNiAxMToyMTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19pc19zZWVrYWJsZSksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0wOS0yNSAxODozNDo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgbW9yZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICBhZGRlZCBtb3JlIGRvY3MKCjIwMDUtMDktMjUgMTI6MTE6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgdGhlIGxhc3QgdHdvIGRvY3MgZmlsZXMgcmVtb3ZlZCB0aGUgdG1wbCBkaXJlY3RvcnkgZnJvbSBjdnMgKG5vIG1vcmUgY29uZmxpY3RzIGhlcmUhKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBpbmxpbmVkIHRoZSBsYXN0IHR3byBkb2NzIGZpbGVzCgkgIHJlbW92ZWQgdGhlIHRtcGwgZGlyZWN0b3J5IGZyb20gY3ZzIChubyBtb3JlIGNvbmZsaWN0cyBoZXJlISkKCjIwMDUtMDktMjUgMTE6MTk6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgdHdvIG1vcmUgZG9jcyBmYWN0b3JlZCBnc3RwYWR0ZW1wbGF0ZSBvdXQgb2YgZ3N0cGFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfZmluYWxpemUpLCAoZ3N0X3BhZF9zZXRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2dldF90eXBlKSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfY2xhc3NfaW5pdCksIChnc3RfcGFkX3RlbXBsYXRlX2luaXQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9kaXNwb3NlKSwgKG5hbWVfaXNfdmFsaWQpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KSwgKGdzdF9wYWRfdGVtcGxhdGVfbmV3KSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwgKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9wYWRfY3JlYXRlZCk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIGlubGluZWQgdHdvIG1vcmUgZG9jcwoJICBmYWN0b3JlZCBnc3RwYWR0ZW1wbGF0ZSBvdXQgb2YgZ3N0cGFkCgoyMDA1LTA5LTI0IDE0OjM1OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBGaXggdGVzdCBjYXNlOiB3ZSBjYW4ndCByZWx5IG9uIGEgZml4ZWQgc3RhdGUgY2hhbmdlIG9yZGVyIHdoZW4gZ29pbmcgZnJvbSBSRUFEWSA9PiBQQVVTRUQgYmVjYXVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX2ZsYWdnZWRfc2luayksCgkgICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9zZW1pX3NpbmspOgoJICBGaXggdGVzdCBjYXNlOiB3ZSBjYW4ndCByZWx5IG9uIGEgZml4ZWQgc3RhdGUgY2hhbmdlIG9yZGVyIHdoZW4KCSAgZ29pbmcgZnJvbSBSRUFEWSA9PiBQQVVTRUQgYmVjYXVzZSB0aGUgc2luayBtaWdodCBjb21taXQgaXRzCgkgIG5ldyBzdGF0ZSBmaXJzdCB3aGVuIHRoZSBmaXJzdCBidWZmZXIgY3JlYXRlZCBieSB0aGUgc291cmNlCgkgIHJlYWNoZXMgdGhlIHNpbmsgYmVmb3JlIHRoZSBzb3VyY2UgaGFzIGZpbmlzaGVkIGl0cyBjaGFuZ2Ugc3RhdGUuCgkgIChUZXN0IGNhc2Ugc3RpbGwgZmFpbHMgYXQgdGltZXMsIHNlZSAjMzE2ODU2LCBjb21tZW50IDUgb253YXJkcykKCjIwMDUtMDktMjQgMTQ6MTQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBWYXJpb3VzIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBWYXJpb3VzIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDUtMDktMjQgMTE6NDE6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmg6IFdlbGwsIHRoYXQncyBlbWJhcmFzc2luZy4gIEx1Y2tpbHkgd2Ugd2VyZW4ndCB1c2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgV2VsbCwgdGhhdCdzIGVtYmFyYXNzaW5nLiAgTHVja2lseSB3ZSB3ZXJlbid0IHVzaW5nCgkgIEdTVF9DTE9DS19ESUZGIGFueXdoZXJlLgoKMjAwNS0wOS0yMyAxODowODo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3RrLWRvYy5tYWs6IGRvbid0IGZhaWwgb24gYnVpbGRpbmcgWE1MLCBGQzQgc2xhdmUgc2hvd3MgYSBidW5jaCBvZiBkb2MgbWlzc2luZyBiaXRzIHRoYXQgSSBkb24ndCBnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2d0ay1kb2MubWFrOgoJICBkb24ndCBmYWlsIG9uIGJ1aWxkaW5nIFhNTCwgRkM0IHNsYXZlIHNob3dzIGEgYnVuY2ggb2YgZG9jCgkgIG1pc3NpbmcgYml0cyB0aGF0IEkgZG9uJ3QgZ2V0CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc29tZSBkb2MgdXBkYXRlcwoKMjAwNS0wOS0yMyAxODowMjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBibHVyYiBhYm91dCBob3cgdGhlIGJ1cyBnb2VzIGludG8gZmx1c2hpbmcgbW9kZSBhbmQgZHJvcHMgYWxsIG1lc3NhZ2VzIHdoZW4gaXRzIGJpbiBnb2VzIGZyb20gUkVBRFkgaW50byBOVUxMIHN0YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgQWRkIGJsdXJiIGFib3V0IGhvdyB0aGUgYnVzIGdvZXMgaW50byBmbHVzaGluZyBtb2RlIGFuZAoJICBkcm9wcyBhbGwgbWVzc2FnZXMgd2hlbiBpdHMgYmluIGdvZXMgZnJvbSBSRUFEWSBpbnRvIE5VTEwKCSAgc3RhdGUuCgoyMDA1LTA5LTIzIDE3OjQ2OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCBhIG1ldGhvZCB0byBnZXQgYSBHc3RDbG9ja1RpbWUgb3V0IG9mIGEgc3RydWN0dXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfY2xvY2tfdGltZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBhZGQgYSBtZXRob2QgdG8gZ2V0IGEgR3N0Q2xvY2tUaW1lIG91dCBvZiBhIHN0cnVjdHVyZQoKMjAwNS0wOS0yMyAxNzoxNzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkZWQgdGVzdCB0byBjaGVjayBzdGF0ZSBjaGFuZ2Ugb3JkZXIgaW4gYmlucyAoY2FuIHN0aWxsIGJlIG1hZGUgdG8gZmFpbCBoZXJlIHVuZGVyIGhlYXZ5IGRpc2sgbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6ICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9mbGFnZ2VkX3NpbmspLAoJICAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfc2VtaV9zaW5rKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGRlZCB0ZXN0IHRvIGNoZWNrIHN0YXRlIGNoYW5nZSBvcmRlciBpbiBiaW5zIChjYW4gc3RpbGwgYmUgbWFkZQoJICB0byBmYWlsIGhlcmUgdW5kZXIgaGVhdnkgZGlzayBsb2FkOyBiYWlscyBvdXQgd2l0aCAnUHVzaCBvbiBwYWQKCSAgZmFrZXNpbms6c2luazAsIGJ1dCBpdCB3YXMgbm90IGFjdGl2YXRlZCBpbiBwdXNoIG1vZGUnKS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBGaXggc3RhdGUgY2hhbmdlIG9yZGVyIHdoZW4gdGhlcmUgaXMgb25seSBhIHNlbWkgc2luayAoIzMxNjg1NikKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICBVc2UgX2NsYXNzX3BlZWtfcGFyZW50KCksIG5vdCBfY2xhc3NfcmVmKCk7IGZpeCBkb2NzIHRvIHNheQoJICAnZGVmYXVsdCBtYWluIGNvbnRleHQnIGluc3RlYWQgb2YgJ21haW5sb29wJyB3aGVyZSB0aGF0IGlzCgkgIHdoYXQncyBtZWFudC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEZpeCB0eXBvcyBpbiBkZWJ1ZyBtZXNzYWdlcwoKMjAwNS0wOS0yMyAxNjozNTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcwoKMjAwNS0wOS0yMyAxNTo0ODoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBkb24ndCBicmVhayBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBicmVhayBkb2NzIGJ1aWxkCgoyMDA1LTA5LTIzIDE1OjM2OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHZhcmlvdXMgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfY2hhaW4pOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIHZhcmlvdXMgZG9jIHVwZGF0ZXMKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgY2hhbmdlIGFuIGFzc2VydCBpbnRvIGFuIGVycm9yIHVudGlsIGl0IGdldHMgZml4ZWQgcHJvcGVybHkKCjIwMDUtMDktMjMgMTQ6MzE6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgMyBtb3JlIGJpaWlpZyBkb2MgZmlsZXMgYW5kIGFkZGVkIHNvbWUgbWlzc2luZyBkb2NzIG9uIHRoZSBmbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBpbmxpbmVkIDMgbW9yZSBiaWlpaWcgZG9jIGZpbGVzIGFuZCBhZGRlZCBzb21lIG1pc3NpbmcgZG9jcyBvbiB0aGUgZmx5CgoyMDA1LTA5LTIzIDExOjQxOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHB1dCBiYWNrIHNvdXJjZSBpbiByZWdpc3RyeS4gIGFkZCBjaGVja3MgZm9yIGZpbmRfcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wbHVnaW4pOgoJICBwdXQgYmFjayBzb3VyY2UgaW4gcmVnaXN0cnkuICBhZGQgY2hlY2tzIGZvciBmaW5kX3BsdWdpbi4KCSAgKiB0ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOiAoYXNzZXJ0X3N0YXRlKSwgKGVtcHR5X2JpbiksCgkgICh0ZXN0X2FkZGluZ19vbmVfZWxlbWVudCksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOiAobWFpbik6CgkgIHNvbWUgY29tcGlsZS9ydW4gZml4ZXMKCjIwMDUtMDktMjIgMjA6MDI6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGZpeCBsZWFrIGluIHRoZSB0ZXN0IGl0c2VsZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGxlYWsgaW4gdGhlIHRlc3QgaXRzZWxmCgoyMDA1LTA5LTIyIDE4OjA3OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJlcGFyZSBmb3IgbW9yZSBhY2N1cmF0ZSBwb3NpdGlvbiByZXBvcnRpbmcgYW5kIHF1ZXJ5IGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zaW5rX3BlZXJfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFByZXBhcmUgZm9yIG1vcmUgYWNjdXJhdGUgcG9zaXRpb24gcmVwb3J0aW5nIGFuZCBxdWVyeQoJICBoYW5kbGluZy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBBZGQgc29tZSBjb21tZW50LgoKMjAwNS0wOS0yMiAxNzo0MDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS4qOiBNb3JlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KSwgKGdzdF9xdWVyeV9zZXRfc2VnbWVudCksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2VnbWVudCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIE1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgQWRkIHNlZ21lbnQgcXVlcnkgZm9yIGZ1dHVyZSB1c2UuCgoyMDA1LTA5LTIyIDE2OjUxOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTb21lIG1vcmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIFNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgU2ltcGxpZnkgc2VuZF9ldmVudAoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERvbid0IGtub3cgaG93IGZsYWdzIGdvdCBicm9rZW4uCgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZGVkIG5ldyBxdWVyeS4KCjIwMDUtMDktMjIgMTU6Mzg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIHNpbXBsaXN0aWMgdGVzdCBzdWl0ZSBmb3IgR1NUX1RZUEVfREFURSBzZXJpYWxpc2F0aW9uIGFuZCBkZXNlcmlhbGlzYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAodGVzdF9kYXRlKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCBzaW1wbGlzdGljIHRlc3Qgc3VpdGUgZm9yIEdTVF9UWVBFX0RBVEUgc2VyaWFsaXNhdGlvbiBhbmQKCSAgZGVzZXJpYWxpc2F0aW9uLgoKMjAwNS0wOS0yMiAxNTowODowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVFlQRV9EQVRFLCBhIGJveGVkIHR5cGUgdGhhdCB3cmFwcyBHRGF0ZSwgYW5kIHRoZSB1c3VhbCBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBhbG9uZyB3aXRoIGEgaGFjayB0aGF0IGNoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCksCgkgIChnc3Rfc3RydWN0dXJlX2dldF9kYXRlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2V0X2RhdGUpLCAoZ3N0X3ZhbHVlX2dldF9kYXRlKSwKCSAgKGdzdF9kYXRlX2NvcHkpLCAoZ3N0X3ZhbHVlX2NvbXBhcmVfZGF0ZSksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2RhdGUpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2RhdGUpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9kYXRlX3N0cmluZyksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX3N0cmluZ19kYXRlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEFkZCBHU1RfVFlQRV9EQVRFLCBhIGJveGVkIHR5cGUgdGhhdCB3cmFwcyBHRGF0ZSwgYW5kIHRoZSB1c3VhbAoJICBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBhbG9uZyB3aXRoIGEgaGFjayB0aGF0IGNoZWNrcyB0aGF0CgkgIGRldmVsb3BlcnMgZG9uJ3QgYWNjaWRlbnRhbGx5IHVzZSBHX1RZUEVfREFURSB3aGVyZSBHU1RfVFlQRV9EQVRFCgkgIGlzIHJlcXVpcmVkLiBQYXJ0IG9mIHRoZSBncmFuZCBzY2hlbWUgaW4gIzE3MDc3Ny4KCjIwMDUtMDktMjIgMTI6MDU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3Rjb25maWcuaC5pbjogUHN5Y2ggb3V0IGd0ay1kb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjogUHN5Y2ggb3V0IGd0ay1kb2MuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdTVF9IQVZFX0dMSUJfMl84LgoJICAqIGNoZWNrL01ha2VmaWxlLmFtIChjaGVja19QUk9HUkFNUyk6IEFkZCBnc3RwbHVnaW4gdG8gdGhlIHRlc3RzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2VsZW1lbnRfbGlzdCk6IFBsdWcgc29tZQoJICBpbmNvbnNlcXVlbnRpYWwgbGVha3MuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCk6IERvYy4KCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmMgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYyAoZ3N0X2luZGV4X2ZhY3RvcnlfY3JlYXRlKTogVXBkYXRlIGZvcgoJICByZWZjb3VudCBjaGFuZ2VzLgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmMgKGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUpOiBEb2MuCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6IERvYywgZG9uJ3QgZWF0IHJlZnMuCgkgICogZ3N0L2dzdHBsdWdpbi5jIChnc3RfcGx1Z2luX2xvYWQpOiBEb2MsIGRvbid0IGVhdCByZWZzLgoJICAoZ3N0X3BsdWdpbl9saXN0X2ZyZWUpOiBEb2MuCgkgIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6IERvYyB1cGRhdGVzLgoKMjAwNS0wOS0yMiAwOTozMDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jIChnc3RfYnVmZmVyX2dldF9jYXBzKTogTGlrZSBhbGwgb3VyIF9nZXQgYWNjZXNzb3JzIHJldHVybmluZyByZWZjb3VudGVkIG9iamVjdHMsIHJldHVybiBhIHJlZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5jIChnc3RfYnVmZmVyX2dldF9jYXBzKTogTGlrZSBhbGwgb3VyIF9nZXQKCSAgYWNjZXNzb3JzIHJldHVybmluZyByZWZjb3VudGVkIG9iamVjdHMsIHJldHVybiBhIHJlZi4KCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmMgKEdTVF9TVEFSVF9URVNUKTogVXNlIHJlZmNvdW50LWlkZW1wb3RlbnQKCSAgYWNjZXNzb3IgZm9yIGNhcHMuIElERU1QT1RFTkNFLiBPaCB5ZXMuCgoyMDA1LTA5LTIxIDIxOjM5OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogQWRkIG11dGV4IHRvIHNlcmlhbGlzZSBhY2Nlc3MgdG8gdGhlIGhhc2ggdGFibGUgd2l0aCB0aGUgZnVuY3Rpb24gcG9pbnRlciA9PiBmdW5jdGlvbiBuYW1lIHN0cmluZyBtYXBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKSwKCSAgKF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0cik6CgkgIEFkZCBtdXRleCB0byBzZXJpYWxpc2UgYWNjZXNzIHRvIHRoZSBoYXNoIHRhYmxlIHdpdGgKCSAgdGhlIGZ1bmN0aW9uIHBvaW50ZXIgPT4gZnVuY3Rpb24gbmFtZSBzdHJpbmcgbWFwcGluZzsKCSAgbWFrZSB0aGF0IGhhc2ggdGFibGUgc3RhdGljIHNjb3BlICgjMzE2ODA5KS4KCSAgKiBnc3QvcmVnaXN0cmllcy8uY3ZzaWdub3JlOgoJICBSZW1vdmUgbGVmdC1vdmVyIGZpbGUuCgoyMDA1LTA5LTIxIDE1OjU1OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6IEFuZCBzb21ldGhpbmcgYWJvdXQgbmV3c2VnbWVudCBldmVudHMgYW5kIGNhcHMtb24tYnVmZmVycyB0byB0aGUgcG9ydGluZyBndWlkZSAoZmVlbCBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBBbmQgc29tZXRoaW5nIGFib3V0IG5ld3NlZ21lbnQgZXZlbnRzIGFuZCBjYXBzLW9uLWJ1ZmZlcnMgdG8KCSAgdGhlIHBvcnRpbmcgZ3VpZGUgKGZlZWwgZnJlZSB0byBpbXByb3ZlKS4KCjIwMDUtMDktMjEgMTM6MjQ6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBUZXN0IHRoYXQgcmVtb3ZpbmcgcHJvYmVzIGZyb20gd2l0aGluIHRoZSBwcm9iZSBmdW5jdGlvbnMgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAodGVzdF9idWZmZXJfcHJvYmVfb25jZSk6IFRlc3QgdGhhdCByZW1vdmluZyBwcm9iZXMgZnJvbSB3aXRoaW4KCSAgdGhlIHByb2JlIGZ1bmN0aW9ucyB3b3Jrcy4KCjIwMDUtMDktMjEgMTM6MTE6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQWRkIHRlc3RzIGZvciBkYXRhIGFuZCBldmVudCBwcm9iZXMgb24gdGhlIHNhbWUgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYyAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6IEFkZCB0ZXN0cyBmb3IKCSAgZGF0YSBhbmQgZXZlbnQgcHJvYmVzIG9uIHRoZSBzYW1lIHBhZC4KCjIwMDUtMDktMjEgMTI6MjE6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBOZXcgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE5ldyBmaWxlLgoJICAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6IEEgc2ltcGxlIGJ1ZmZlciBwcm9iZSB0ZXN0LiBNb3JlIHRvCgkgIGNvbWUsIGZvb2xpb3MuCgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSk6IENvbm5lY3QgdG8KCSAgaGF2ZS1kYXRhOjpidWZmZXIsIG5vdCBoYXZlLWRhdGEuCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSk6IExpa2V3aXNlIGZvciBoYXZlLWRhdGE6OmV2ZW50LgoJICAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSk6IE1vcmUgZG9jcy4gVGhlIHBhcnQgYWJvdXQgJ3Jlc29sdmluZyB0aGUKCSAgcGVlcicgaXNuJ3QgcXVpdGUgcmlnaHQgeWV0IHRob3VnaC4KCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSwgZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKTogQ2hhbmdlIHRvIHRha2UgdGhlIGd1aW50IGhhbmRsZXJfaWQKCSAgYXMgdGhlaXIgYXJnLCBub3QgdGhlIGZ1bmN0aW9uK2RhdGEsIHdoaWNoIGlzIG1vcmUgZ2xpYi1saWtlLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpOiBBZGQgYSBkZXRhaWwgdG8KCSAgdGhlIHNpZ25hbCBlbWlzc2lvbiB0byBpbmRpY2F0ZSBpZiB0aGUgZGF0YSBpcyBhIGJ1ZmZlciBvciBhbgoJICBldmVudC4KCSAgKGdzdF9wYWRfZ2V0X3R5cGUpOiBJbml0aWFsaXplIGJ1ZmZlciBhbmQgZXZlbnQgcXVhcmtzLgoJICAoZ3N0X3BhZF9jbGFzc19pbml0KTogaGF2ZS1kYXRhIGlzIG5vdyBhIGRldGFpbGVkIHNpZ25hbCwgeWVzIGl0CgkgIGlzLgoKMjAwNS0wOS0yMSAxMTo1MjowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IERvbid0IHB1dCBmdW5jdGlvbmFsIGNvZGUgaW4gZ19yZXR1cm5faWZfZmFpbCgpIG9yIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgc3RhdGVtZW50cywgb3RoZXJ3aXNlIHRoaW5ncyB3aWxsIGJyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKSwKCSAgKGdzdF91dGlsX3NldF9vYmplY3RfYXJnKToKCSAgRG9uJ3QgcHV0IGZ1bmN0aW9uYWwgY29kZSBpbiBnX3JldHVybl9pZl9mYWlsKCkgb3IKCSAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBzdGF0ZW1lbnRzLCBvdGhlcndpc2UgdGhpbmdzIHdpbGwKCSAgYnJlYWsgd2hlbiBHX0RJU0FCTEVfQ0hFQ0tTIGlzIGRlZmluZWQgZHVyaW5nIGNvbXBpbGF0aW9uLgoKMjAwNS0wOS0yMSAwOTo0ODo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saWVkIGFub3RoZXIgb25lIGFuZCBhZGRlZCAgc29tZSBvYnZpb3VzIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgaW5saWVkIGFub3RoZXIgb25lIGFuZCBhZGRlZCAgc29tZSBvYnZpb3VzIGRvY3MKCjIwMDUtMDktMjEgMDk6MTM6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuKjogUHJvcGVybHkgaW1wbGVtZW50IGZkc3JjLiBSZW1vdmVkIHNpZ25hbCBhbmQgdGltZW91dCwgYmV0dGVyIGltcGxlbWVudGVkIHNvbWV3aGVyZSBlbHNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19zdGFydCksIChnc3RfZmRzcmNfc3RvcCksCgkgIChnc3RfZmRzcmNfdW5sb2NrKSwgKGdzdF9mZHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zkc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmRzcmNfY3JlYXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgUHJvcGVybHkgaW1wbGVtZW50IGZkc3JjLiBSZW1vdmVkIHNpZ25hbCBhbmQgdGltZW91dCwKCSAgYmV0dGVyIGltcGxlbWVudGVkIHNvbWV3aGVyZSBlbHNlLgoKMjAwNS0wOS0yMSAwODo1ODo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJICAqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCjIwMDUtMDktMjEgMDg6NDA6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0LzogcmVtb3ZlIG9ic29sZXRlIGRvYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkgIHJlbW92ZSBvYnNvbGV0ZSBkb2MgZmlsZQoKMjAwNS0wOS0yMSAwNzozNzowMiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogRHJpbmsgYSBsaXR0bGUgYmVlciwgZml4IGEgbGl0dGxlIGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKTogRHJpbmsgYQoJICBsaXR0bGUgYmVlciwgZml4IGEgbGl0dGxlIGxlYWsuCgoyMDA1LTA5LTIwIDIwOjU0OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkgIHJlbW92ZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGZpbGVzCgoyMDA1LTA5LTIwIDIwOjQwOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgaW5saW5lZCwgc3BsaXR0ZWQgZ3N0aW5kZXgue2MsaH0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2dldF90eXBlKSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2NsYXNzX2luaXQpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9maW5hbGl6ZSksIChnc3RfaW5kZXhfZmFjdG9yeV9uZXcpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfZGVzdHJveSksIChnc3RfaW5kZXhfZmFjdG9yeV9maW5kKSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2NyZWF0ZSksIChnc3RfaW5kZXhfZmFjdG9yeV9tYWtlKToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCk6CgkgIG1vcmUgZG9jcyBpbmxpbmVkLCBzcGxpdHRlZCBnc3RpbmRleC57YyxofQoKMjAwNS0wOS0yMCAyMDoxOTo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBmaXggYSBsZWFrIGluIGNvbnRyb2xsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBhIGxlYWsgaW4gY29udHJvbGxlcgoKMjAwNS0wOS0yMCAxOToxNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTZXQgc3luYyB0byBGQUxTRSBieSBkZWZhdWx0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfaW5pdCk6CgkgIFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgoyMDA1LTA5LTIwIDE3OjM4OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBzeW5jIHByb3BlcnR5IHNldHRhYmxlIGZyb20gc3ViY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KToKCSAgTWFrZSBzeW5jIHByb3BlcnR5IHNldHRhYmxlIGZyb20gc3ViY2xhc3MuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTZXQgc3luYyB0byBGQUxTRSBieSBkZWZhdWx0LgoKMjAwNS0wOS0yMCAxNzozMDozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFRoZSB0aW1lb3V0IGhhbmRsZXIgc2hvdWxkIGhhdmUgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgc291cmNlIHNvIHdlIGRvbid0IHRpbWVvdXQgYmVmb3JlIHBvcHBpbmcgYSBtZXNzYWdlIHdpdGggMCB0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChwb2xsX2Z1bmMpLCAocG9sbF90aW1lb3V0KSwgKGdzdF9idXNfcG9sbCk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFRoZSB0aW1lb3V0IGhhbmRsZXIgc2hvdWxkIGhhdmUgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgc291cmNlCgkgIHNvIHdlIGRvbid0IHRpbWVvdXQgYmVmb3JlIHBvcHBpbmcgYSBtZXNzYWdlIHdpdGggMCB0aW1lb3V0LgoJICBEdW1wIGVycm9yIG1lc3NhZ2VzIGFmdGVyIGZhaWxlZCBzdGF0ZSBjaGFuZ2UuCgoyMDA1LTA5LTIwIDE3OjIxOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgRml4IHR3byB0eXBvcy4KCjIwMDUtMDktMjAgMTU6NDU6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlIHRoZSBzeW5jIHByb3BlcnR5IGZyb20gZmFrZXNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICByZW1vdmUgdGhlIHN5bmMgcHJvcGVydHkgZnJvbSBmYWtlc2luay4KCSAgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBzZXR0aW5nIHN5bmMgVFJVRQoJICBmb3IgZmFrZXNpbmssIHdoaWNoIGlzIGEgY2hhbmdlLiAgQW55b25lIHdobyBrbm93cyBob3cKCSAgdG8gZml4IHRoaXMgbmljZWx5IGluIGEgR09iamVjdC15IHdheSwgZmVlbCBmcmVlLgoKMjAwNS0wOS0yMCAxNToxOTowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogcmVtb3ZlIHByb2JlIHJlZnNlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgcmVtb3ZlIHByb2JlIHJlZnNlY3Rpb24KCjIwMDUtMDktMjAgMTI6NTA6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBkaXNhYmxlIHZhbGdyaW5kaW5nIHRoZSBjb250cm9sbGVyIHRlc3QgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgdmFsZ3JpbmRpbmcgdGhlIGNvbnRyb2xsZXIgdGVzdCBhZ2FpbgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHVwZGF0ZSBmb3IgYXBpLWNoYW5nZXMKCjIwMDUtMDktMjAgMTI6MDU6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBBZGRlZCBzeW5jIHByb3BlcnR5IHRvIGJhc2VzaW5rIHRvIGRpc2FibGUgY2xvY2sgc3luYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZGVkIHN5bmMgcHJvcGVydHkgdG8gYmFzZXNpbmsgdG8gZGlzYWJsZSBjbG9jayBzeW5jLgoKMjAwNS0wOS0yMCAxMTowOTo1MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKTogQXZvaWQgZWF0aW5nIHRoZSBjYWxsZXIncyByZWZjb3VudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKTogQXZvaWQKCSAgZWF0aW5nIHRoZSBjYWxsZXIncyByZWZjb3VudC4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfUkVGQ09VTlQpCgkgIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogQ29uZGl0aW9uYWxseSBmb25kbGUgdGhlIHJpZ2h0CgkgIHJlZmNvdW50LgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbiAoR1NUX0hBVkVfR0xJQl8yXzgpOgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX0hBVkVfR0xJQl8yXzhfREVGSU5FKTogTWFrZSB0aGUgYXZhaWxhYmlsaXR5CgkgIG9mIEdMaWIgMi44IHB1YmxpYywgc28gd2UgY2FuIGtub3cgd2hpY2ggcmVmY291bnQgdG8gY2hlY2sgaW4KCSAgdGVzdHMuCgkgICogZ3N0L2dzdG9iamVjdC5jOiBVc2UgdGhlIEdTVF9IQVZFX0dMSUJfMl84IGRlZmluZS4KCSAgKGdzdF9vYmplY3RfaW5pdCk6IE9ubHkgc2V0IHRoZSBnc3QgcmVmY291bnQgaWYgd2UncmUgZ29pbmcgYWhlYWQKCSAgd2l0aCB0aGUgcmVmY291bnQgaGFjay4KCjIwMDUtMDktMjAgMTA6NDE6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgbGVha3MgcGx1bWJlZCwgYWRkZWQgbW9yZSBkZWJ1Zy1sb2dnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKHBsdWdpbl9pbml0KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpOgoJICBtb3JlIGxlYWtzIHBsdW1iZWQsIGFkZGVkIG1vcmUgZGVidWctbG9nZ2luZwoJICAqIGdzdC9nc3RtYWNyb3MuaDoKCSAgd2hpdGVzcGFjZSBmaXgKCjIwMDUtMDktMjAgMDk6NDc6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICByZW1vdmUgaW5jbHVkZSBvZiByZW1vdmVkIGhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGluY2x1ZGUgb2YgcmVtb3ZlZCBoZWFkZXIKCjIwMDUtMDktMjAgMDk6Mjg6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IENvbW1pdCBmcm9tIHRoZSBQb2xpdGljYWwgUGFydHkgRm9yIE1vcmUgQXRvbWljIENWUyBDb21taXRzLCBzbyB0aGF0IHBlb3BsZSBkb24ndCB3YXN0ZSB0b28gbXVjaCBvZiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoX2dzdF9jbG9ja19pZF9mcmVlKToKCSAgQ29tbWl0IGZyb20gdGhlIFBvbGl0aWNhbCBQYXJ0eSBGb3IgTW9yZSBBdG9taWMgQ1ZTIENvbW1pdHMsCgkgIHNvIHRoYXQgcGVvcGxlIGRvbid0IHdhc3RlIHRvbyBtdWNoIG9mIHRoZWlyIGRheSBmaXNoaW5nCgkgIG91dCBvYnZpb3VzIGxlYWtzIG91dCBvZiBtYXNzaXZlIGNvbW1pdHMuCgkgIE9oLCBhbmQgZml4IGEgcHJldHR5IGRhbW4gb2J2aW91cyBsZWFrIGluIHRoZSBtZW1jaHVuawoJICByZW1vdmFsIGNvZGUuCgoyMDA1LTA5LTIwIDA5OjIzOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay86IHBsdWcgbWVtLWxlYWssIHJlLWFkZCB0byB2YWxncmluZGFibGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAocGx1Z2luX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBwbHVnIG1lbS1sZWFrLCByZS1hZGQgdG8gdmFsZ3JpbmRhYmxlIHRlc3RzCgoyMDA1LTA5LTIwIDA5OjA4OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICB1bmJyZWFrIHRoZSBidWlsZCBmb3IgdGhvc2Ugd2hvIGhhdmUgY2hyb25pYyBhcnRocml0aXMgYW5kIHR5cGluZyAibWFrZSBjaGVjayIgaXMganVzdCB0b28gdGF4aW5nIG9uIHRoZSBoYW5kcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5icmVhayB0aGUgYnVpbGQgZm9yIHRob3NlIHdobyBoYXZlIGNocm9uaWMgYXJ0aHJpdGlzCgkgIGFuZCB0eXBpbmcgIm1ha2UgY2hlY2siIGlzIGp1c3QgdG9vIHRheGluZyBvbiB0aGUgaGFuZHMKCjIwMDUtMDktMjAgMDg6MjU6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuaDogUmUtYWRkIG1hcnNoYWwgdG8gZ3N0LmgncyBpbmNsdWRlIGxpc3QgLS0gaWYgd2UgcmVhbGx5IHdhbnQgaXQgb3V0LCB5b3Ugc2hvdWxkIGZpeCBwbHVnaW5zIGF0IHRoZSBzYW1lIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuaDogUmUtYWRkIG1hcnNoYWwgdG8gZ3N0LmgncyBpbmNsdWRlIGxpc3QgLS0gaWYgd2UKCSAgcmVhbGx5IHdhbnQgaXQgb3V0LCB5b3Ugc2hvdWxkIGZpeCBwbHVnaW5zIGF0IHRoZSBzYW1lIHRpbWUuCgoyMDA1LTA5LTIwIDA3OjMyOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtaXNzaW5nIHN5bWJvbHMgdG8gYXBpIGRvY3MgZGlzYWJsZSByZWYtY291bnQgaGFjayBpZiB3ZSBoYXZlIGdsaWIgPj0gMi44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgYWRkZWQgbWlzc2luZyBzeW1ib2xzIHRvIGFwaSBkb2NzCgkgIGRpc2FibGUgcmVmLWNvdW50IGhhY2sgaWYgd2UgaGF2ZSBnbGliID49IDIuOAoKMjAwNS0wOS0yMCAwNjoyODozMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbTogSWdub3JlIGEgZmV3IG1vcmUgaW50ZXJuYWwgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbTogSWdub3JlIGEgZmV3IG1vcmUgaW50ZXJuYWwgaGVhZGVycwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBvbGQgc2VjdGlvbnMKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZW1vdmUgb2xkIHNlY3Rpb25zCgkgICogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDogdXBkYXRlCgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDogdXBkYXRlCgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6IHVwZGF0ZQoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczogdXBkYXRlLgoJICAqIGdzdC9NYWtlZmlsZS5hbTogcmVtb3ZlIG1lbWNodW5rIGFuZCB0cmFzaHN0YWNrLCBzaW5jZSB0aGV5J3JlCgkgIG5vdCB1c2VkLgoJICAqIGdzdC9nc3QuYzogKGdzdF9kZWluaXQpOiByZW5hbWUgZ3N0X3JlZ2lzdHJ5X2RlaW5pdCB0byBfY2xlYW51cAoJICAqIGdzdC9nc3QuaDogZG9uJ3QgaW5jbHVkZSBzb21lIGhlYWRlcnMKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBhZGQgZ3N0bWFyc2hhbC5oCgkgICogZ3N0L2dzdGNsb2NrLmM6IERvbid0IHVzZSBtZW1jaHVua3MKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiBBZGQgc29tZSBkb2NzCgkgICogZ3N0L2dzdG9iamVjdC5jOiByZW1vdmUgREVTVFJPWUVEIGZsYWcsIHNpbmNlIGl0J3MgcmVkdW5kYW50CgkgICogZ3N0L2dzdG9iamVjdC5oOiBzYW1lCgkgICogZ3N0L2dzdHBsdWdpbi5jOiBpbmNsdWRlIGdzdG1hY3Jvcy5oCgkgICogZ3N0L2dzdHBsdWdpbi5oOiBkb24ndCBpbmNsdWRlIGdzdG1hY3Jvcy5oLCBzaW5jZSBpdCdzIHByaXZhdGUKCSAgKiBnc3QvZ3N0cXVlcnkuYzogZG9uJ3QgdXNlIG1lbWNodW5rcwoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiByZW5hbWUgZ3N0X3JlZ2lzdHJ5X2RlaW5pdCgpCgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6IHNhbWUKCjIwMDUtMDktMjAgMDU6MTM6MzAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDogUmVtb3ZlIGRvY3MgZm9yIGdldGJpdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDogUmVtb3ZlIGRvY3MgZm9yIGdldGJpdHMKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RwdXRiaXRzLnNnbWw6CgoyMDA1LTA5LTIwIDAwOjI3OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IEFkZCBhIHNsZWVwIHRvIGVuc3VyZSBlbGVtZW50cyBoYXZlIGEgY2hhbmNlIHRvIHN0YXJ0IHRoZWlyIHBhZCB0YXNrcyBiZWZvcmUgc2h1dGRvd24uIFJlZHVjZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoc3RhdGVzX3N1aXRlKToKCSAgQWRkIGEgc2xlZXAgdG8gZW5zdXJlIGVsZW1lbnRzIGhhdmUgYSBjaGFuY2UgdG8gc3RhcnQgdGhlaXIKCSAgcGFkIHRhc2tzIGJlZm9yZSBzaHV0ZG93bi4gUmVkdWNlcyByYWN5IHRlc3QgcmVzdWx0cy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19jcmVhdGUpOgoJICBUaW1lIG91dCB0aGUgc2VsZWN0IGV2ZXJ5IG5vdyBhbmQgdGhlbiB0byBjaGVjayBmb3Igc2h1dGRvd24uCgoyMDA1LTA5LTE5IDIwOjAxOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvZ3N0ZW51bXR5cGVzLio6IFVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmg6CgkgIFVwZGF0ZS4KCjIwMDUtMDktMTkgMTY6MzI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogQXV0b21hdGljYWxseSBQQVVTRSBhbmQgUkVTVU1FIGEgcGlwZWxpbmUgd2hlbiBhIGZsdXNoaW5nIHNlZWsgaXMgcGVyZm9ybWVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGRvX3BpcGVsaW5lX3NlZWspLCAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBBdXRvbWF0aWNhbGx5IFBBVVNFIGFuZCBSRVNVTUUgYSBwaXBlbGluZSB3aGVuIGEgZmx1c2hpbmcgc2VlawoJICBpcyBwZXJmb3JtZWQuCgkgIFJlbW92ZWQgb2xkIGZpbGVzLgoKMjAwNS0wOS0xOSAxNjoyODo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIHdoaXRlc3BhY2UgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeAoKMjAwNS0wOS0xOSAxNToxMjoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lmg6IFNwYWNpbmcgZml4ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOiBTcGFjaW5nIGZpeGVuLgoKMjAwNS0wOS0xOSAxNDo1NToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogSGFuZGxlIHN0YXRlIGNoYW5nZSBmYWlsdXJlIG1vcmUgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIHN0YXRlIGNoYW5nZSBmYWlsdXJlIG1vcmUgY29ycmVjdGx5LgoKMjAwNS0wOS0xOSAxNDo0MTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGVuYWJsZSBjbGVhbnVwIGFnYWluIGFmdGVyIGZpeGluZyB0aGUgbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgZW5hYmxlIGNsZWFudXAgYWdhaW4gYWZ0ZXIgZml4aW5nIHRoZSBsZWFrCgkgICogZG9jcy9SRUFETUU6CgkgIHNvbWUgbW9yZSBpbmZvIG9uIGRvY3MKCjIwMDUtMDktMTkgMTQ6MjA6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBkb24ndCBjb21wbGFpbiBhYm91dCBteSBBUk0gLnNvIGZpbGVzLiAgQW5vdGhlciByZWFzb24gd2h5IGl0IGRvZXMgbWFrZSBzZW5zZSB0byBoYXZlIHBsdWdpbnMgZm9sbG93IGEgc3RhbmRhcmQgZmlsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGNvbXBsYWluIGFib3V0IG15IEFSTSAuc28gZmlsZXMuICBBbm90aGVyIHJlYXNvbiB3aHkgaXQgZG9lcyBtYWtlIHNlbnNlCgkgIHRvIGhhdmUgcGx1Z2lucyBmb2xsb3cgYSBzdGFuZGFyZCBmaWxlIG5hbWUgcGF0dGVybiBsaWtlIGxpYmdzdCh3aGF0ZXZlcikuc28KCjIwMDUtMDktMTkgMTQ6MDk6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IHJlLWVuYWJsZSB0ZXN0cyBub3cgdGhhdCBsZWFrcyBhcmUgcGx1Z2dlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgcmUtZW5hYmxlIHRlc3RzIG5vdyB0aGF0IGxlYWtzIGFyZSBwbHVnZ2VkCgkgICogY2hlY2svZ3N0L2dzdC5jOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYWRkIHNvbWUgbW9yZSB0ZXN0cyB3aGlsZSBmaXhpbmcgbGVha3MKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICBtYWtlIHN1cmUgYmluYXJpZXMgYXJlIHVwdG9kYXRlIHdoZW4gdmFsZ3JpbmRpbmcvZ2RiaW5nCgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICByZW1vdmUgYSByZWYgdG9vIG1hbnksIGFuZCBhZGQgYSBGSVhNRSBmb3Igd2hlbiB3ZSBnZXQKCSAgcm91bmQgdG8gZGlzcG9zaW5nIG9mIGNsYXNzZXMKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCB0aGUgcmVmY291bnRpbmcgd2hlbiBsb2FkaW5nIGEgcGx1Z2luIGZyb20gYSBmaWxlIGFuZAoJICB0aGUgY29kZSBwcmV0ZW5kcyB0aGF0IHRoZSBwb2ludGVyIGlzIHRoZSBzYW1lIGV2ZW4gdGhvdWdoCgkgIG9mIGNvdXJzZSBpdCBjYW4gY2hhbmdlCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgdW5yZWYgcGx1Z2lucyBtYXJrZWQgY2FjaGVkIChhIGJpdCBjb25mdXNpbmcgYXMgYSBuYW1lKQoJICBhcyB0aGUgZG9jcyBzdGF0ZSBzaG91bGQgYmUgZG9uZQoJICB2YXJpb3VzIGRvYyBhZGRpdGlvbnMgdG8gZXhwbGFpbiByZWZjb3VudGluZwoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBkZWJ1Z2dpbmcKCjIwMDUtMDktMTkgMTQ6MDk6MzcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA1LTA5LTE5IDExOjE4OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgR3N0QnVzSGFuZGxlciAtPiBHc3RCdXNGdW5jLCByZXR1cm4gdmFsdWUgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMgYW55IG90aGVyIEdTb3VyY2UgKEZBTFNFID09IHJlbW92ZSBzb3VyY2UpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKG1lc3NhZ2VfZnVuY19lb3MpLCAobWVzc2FnZV9mdW5jX2FwcCksCgkgIChzZW5kX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKHJ1bl9waXBlbGluZSk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpLCAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksCgkgIChnc3RfYnVzX3NvdXJjZV9jaGVjayksIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoKSwgKHBvbGxfZnVuYyksIChwb2xsX3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOiAoZXZlbnRfbG9vcCk6CgkgIEdzdEJ1c0hhbmRsZXIgLT4gR3N0QnVzRnVuYywgcmV0dXJuIHZhbHVlIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzCgkgIGFueSBvdGhlciBHU291cmNlIChGQUxTRSA9PSByZW1vdmUgc291cmNlKS4KCSAgX2FkZF93YXRjaCgpIGFuZCBfYWRkX3dhdGNoX2Z1bGwoKSBub3cgdGFrZSBhIE1lc3NhZ2VUeXBlIG1hc2sgdG8KCSAgb25seSBoYW5kbGUgc3BlY2lmaWMgdHlwZXMgb2YgbWVzc2FnZXMuCgkgIF9wb2xsKCkgcmV0dXJucyB0aGUgR3N0TWVzc2FnZSBpbnN0ZWFkIG9mIHRoZSBtZXNzYWdlIHR5cGUgdG8gYXZvaWQKCSAgcmFjZSBjb25kaXRpb25zLgoJICBfaGF2ZV9wZW5kaW5nKCkgdGFrZXMgYSBNZXNzYWdlVHlwZSBtYXNrIG5vdyB0b28uCgkgIEFkZGVkIHRlc3RzdWl0ZSBmb3IgbXVsdGlwbGUgYnVzIHdhdGNoZXMuCgkgIEZpeCB0ZXN0c3VpdGVzIGFuZCBhcHBsaWNhdGlvbnMgZm9yIG5ldyBidXMgQVBJLgoKMjAwNS0wOS0xOCAyMjoxNToyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbWFyayBhIGJ1bmNoIG9mIHRoZSB0ZXN0cyBhcyB0byBmaXggdW50aWwgd2UgZml4IHRoZW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1hcmsgYSBidW5jaCBvZiB0aGUgdGVzdHMgYXMgdG8gZml4IHVudGlsIHdlIGZpeCB0aGVtCgoyMDA1LTA5LTE4IDIxOjQwOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9jaGVjay5tYWs6IHVzZSBHU1RfUExVR0lOIHNldHRpbmdzIGZvciB2YWxncmluZCB0ZXN0cyBhcyB3ZWxsLCBzbyB3ZSdyZSB2YWxncmluZGluZyB0aGUgY29ycmVjdCB0aGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICB1c2UgR1NUX1BMVUdJTiBzZXR0aW5ncyBmb3IgdmFsZ3JpbmQgdGVzdHMgYXMgd2VsbCwgc28gd2UncmUKCSAgdmFsZ3JpbmRpbmcgdGhlIGNvcnJlY3QgdGhpbmcKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBwbHVnIGFub3RoZXIgbGVhawoKMjAwNS0wOS0xOCAyMToyNDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgIHZhcmlvdXMgY2xlYW51cHMgYW5kIG1lbWxlYWsgcGx1Z2dpbmcuICBtYWtlIHZhbGdyaW5kIGlzIGhhcHB5IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhcmlvdXMgY2xlYW51cHMgYW5kIG1lbWxlYWsgcGx1Z2dpbmcuICBtYWtlIHZhbGdyaW5kIGlzIGhhcHB5IG5vdy4KCjIwMDUtMDktMTggMjE6MjM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgYWRkIGNoZWNrLXZhbGdyaW5kIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGNoZWNrLXZhbGdyaW5kIHRhcmdldAoKMjAwNS0wOS0xOCAwOToxNToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgbG9hZGluZyBhIHBsdWdpbiBjYW4gcmV0dXJuIE5VTEwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvYWRpbmcgYSBwbHVnaW4gY2FuIHJldHVybiBOVUxMCgoyMDA1LTA5LTE4IDA3OjQxOjI4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFJldmVydCB0aGUgR09wdGlvbiBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiBSZXZlcnQgdGhlIEdPcHRpb24gY29kZS4KCjIwMDUtMDktMTggMDY6NTk6MjUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEZpeCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOiBGaXggZW52aXJvbm1lbnQgdmFyaWFibGVzLgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogRml4IGZvciBBUEkgY2hhbmdlcy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggZm9yIEFQSSBjaGFuZ2VzLgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IEZpeCBmb3IgQVBJIGNoYW5nZXMuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgQ2hhbmdlIHJlZ2lzdHJ5IHRvIGtlZXAgdHJhY2sgb2YgYm90aCBwbHVnaW5zIGFuZCBmZWF0dXJlcywKCSAgcmVtb3ZpbmcgdGhlIGZlYXR1cmUgdHJhY2tpbmcgZnJvbSBwbHVnaW5zIHRoZW1zZWx2ZXMuCgoyMDA1LTA5LTE3IDE4OjE0OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCjIwMDUtMDktMTcgMTg6MTE6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoKMjAwNS0wOS0xNiAxMToyNDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGFkZCBtaXNpbmcgaW5jbHVkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc2luZyBpbmNsdWRlCgoyMDA1LTA5LTE2IDA4OjE3OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgc2V0IHRoZSByaWdodCB2YXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNldCB0aGUgcmlnaHQgdmFyCgoyMDA1LTA5LTE2IDA4OjE0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtcmVnaXN0ZXIuMS5pbjoKCSAgcmVtb3ZlIGdzdC1yZWdpc3RlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGdzdC1yZWdpc3RlcgoKMjAwNS0wOS0xNiAwNDo1NDoyNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBHZXR0aW5nIHRpcmVkIG9mIGRlYnVnZ2luZy4gIERpc2FibGVkIGFsbCB0aGUgdW5yZWZmaW5nIG9mIHBsdWdpbnMgYW5kIGZlYXR1cmVzLCB3aGljaCBmaXhlcyB0aGUgc2VnZmF1bHRzLCBidXQgb2YgY28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBHZXR0aW5nIHRpcmVkIG9mIGRlYnVnZ2luZy4gIERpc2FibGVkIGFsbCB0aGUgdW5yZWZmaW5nIG9mCgkgIHBsdWdpbnMgYW5kIGZlYXR1cmVzLCB3aGljaCBmaXhlcyB0aGUgc2VnZmF1bHRzLCBidXQgb2YKCSAgY291cnNlIGxlYWtzIGxpa2UgY3JhenkuICBBdCBsZWFzdCBwbGF5YmluIHdvcmtzLgoKMjAwNS0wOS0xNiAwMzo0NjoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IE1vcmUgdGVzdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IChyZWdpc3Rlcl9jaGVja19lbGVtZW50cyksCgkgIChHU1RfU1RBUlRfVEVTVCksIChwZWVrKSwgKHN1Z2dlc3QpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIE1vcmUgdGVzdGluZwoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRml4IHJlZmNvdW50aW5nLgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgoyMDA1LTA5LTE2IDAwOjM3OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB1bnZlcmJvc2lmeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW52ZXJib3NpZnkKCjIwMDUtMDktMTYgMDA6MDg6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgc29tZSB3aGl0ZXNwYWNlIHRvIHRyaWdnZXIgYSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSB3aGl0ZXNwYWNlIHRvIHRyaWdnZXIgYSBidWlsZAoKMjAwNS0wOS0xNiAwMDowMjoyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0aW5kZXguYzogZ2V0IHJlZmNvdW50aW5nIGNvcnJlY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiBnZXQgcmVmY291bnRpbmcgY29ycmVjdC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgZmVhdHVyZS9wbHVnaW4gaXMKCSAgbm90IGZvdW5kLgoKMjAwNS0wOS0xNSAyMzo1MToyNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay86IEFkZCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogQWRkIHRlc3QKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IEZpeCBwcm9ibGVtcyBub3RpY2VkIGJ5IHRlc3RzdWl0ZQoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCjIwMDUtMDktMTUgMjA6NTY6MzAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJbXBsZW1lbnQgc2VtaS1kZWNlbnQgcmVjb3VudGluZyBhbmQgbG9ja2luZyBpbiBwbHVnaW5zIGFuZCBwbHVnaW4gZmVhdHVyZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogSW1wbGVtZW50IHNlbWktZGVjZW50IHJlY291bnRpbmcgYW5kIGxvY2tpbmcKCSAgaW4gcGx1Z2lucyBhbmQgcGx1Z2luIGZlYXR1cmVzLgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgoyMDA1LTA5LTE1IDE0OjIxOjA4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEltcGxlbWVudCBtaXNzaW5nIGZ1bmN0aW9uLiBUaGlzIGlzIGVub3VnaCB0byBnZXQgdGhlIGJhc2ljcyBvZiB0eXBlZmluZGluZyB3b3JraW5nIC0gb2dnZGVtdXggc3VjY2VlZHMgbm93LiBkZWNvZGViaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wbGVtZW50IG1pc3NpbmcgZnVuY3Rpb24uIFRoaXMgaXMgZW5vdWdoIHRvIGdldCB0aGUgYmFzaWNzIG9mCgkgIHR5cGVmaW5kaW5nIHdvcmtpbmcgLSBvZ2dkZW11eCBzdWNjZWVkcyBub3cuIGRlY29kZWJpbiBpcyBzdGlsbCBicm9rZW4uCgoyMDA1LTA5LTE1IDA1OjU4OjM3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIC1uby11bmRlZmluZWQgdG8gR1NUX1BMVUdJTl9MREZMQUdTIChidWcgIzMxNjA3NikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBBZGQgLW5vLXVuZGVmaW5lZCB0byBHU1RfUExVR0lOX0xERkxBR1MgKGJ1ZwoJICAjMzE2MDc2KQoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBBZGQgLW5vLXVuZGVmaW5lZCB0byBMREZMQUdTIGZvciBsaWJzCgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoKMjAwNS0wOS0xNSAwNTo0ODozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSBnZXRiaXRzIGxpYnJhcnkuICBOb3RoaW5nIHVzZXMgaXQsIGFuZCBpdCBzaG91bGQgYmUgaW4gc29tZXRoaW5nIGxpa2UgbGlib2lsIGlmIHNvbWVvbmUgZGlkIHdhbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBSZW1vdmUgZ2V0Yml0cyBsaWJyYXJ5LiAgTm90aGluZyB1c2VzIGl0LCBhbmQKCSAgaXQgc2hvdWxkIGJlIGluIHNvbWV0aGluZyBsaWtlIGxpYm9pbCBpZiBzb21lb25lIGRpZCB3YW50CgkgIHRvIHVzZSBpdC4KCSAgKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ2J0ZXN0LmM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nZXRiaXRzLmM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nZXRiaXRzLmg6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nc3RnZXRiaXRzX2dlbmVyaWMuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dzdGdldGJpdHNfaTM4Ni5zOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ3N0Z2V0Yml0c19pbmwuaDoKCjIwMDUtMDktMTUgMDU6NDI6MTMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBEaXN0IGdsaWItY29tcGF0LmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBEaXN0IGdsaWItY29tcGF0LmgKCjIwMDUtMDktMTUgMDM6MjA6NDkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgZ3N0L3JlZ2lzdHJpZXMsIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIHVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdzdC9yZWdpc3RyaWVzLCBzaW5jZSBpdCdzIG5vIGxvbmdlciB1c2VkLgoJICAqIGdzdC9yZWdpc3RyaWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvcmVnaXN0cnl0ZXN0LmM6CgoyMDA1LTA5LTE1IDAxOjM4OjMzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC86IENvbnZlcmdlbmNlIGlzIG5lYXIuICBTZXJpb3VzbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBDb252ZXJnZW5jZSBpcyBuZWFyLiAgU2VyaW91c2x5LgoKMjAwNS0wOS0xNSAwMTozNDo1MiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuKjogQXR0ZW1wdCAjNCB0byBhcHBlYXNlIHRoZSBidWlsZGJvdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICBBdHRlbXB0ICM0IHRvIGFwcGVhc2UgdGhlIGJ1aWxkYm90cy4KCjIwMDUtMDktMTUgMDE6MjY6NDIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0LmM6IEF0dGVtcHQgIzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICBBdHRlbXB0ICMzLgoKMjAwNS0wOS0xNSAwMToyMDoyMiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuYzogQXR0ZW1wdCAjMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgIEF0dGVtcHQgIzIuCgoyMDA1LTA5LTE1IDAxOjE0OjE3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogT2ggeWVhaCwgbGliZ3N0cmVhbWVyLnNvIG5lZWRzIHRvIGNvbnRhaW4gdGhlIG5ldyBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogT2ggeWVhaCwgbGliZ3N0cmVhbWVyLnNvIG5lZWRzIHRvIGNvbnRhaW4KCSAgdGhlIG5ldyBmdW5jdGlvbnMuCgoyMDA1LTA5LTE1IDAxOjEwOjUyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC4qOiBBZGQgc29tZSBmdW5jdGlvbnMgdGhhdCBhcmUgaW4gbmV3ZXIgdmVyc2lvbnMgb2YgZ2xpYiB0aGFuIHdlIGNhcmUgdG8gcmVxdWlyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6IEFkZCBzb21lIGZ1bmN0aW9ucyB0aGF0IGFyZSBpbiBuZXdlciB2ZXJzaW9ucwoJICBvZiBnbGliIHRoYW4gd2UgY2FyZSB0byByZXF1aXJlLgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBVc2UgdGhlbS4KCjIwMDUtMDktMTUgMDA6NDg6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgcG8vUE9URklMRVMuaW46IHJlbW92ZSBnc3QtcmVnaXN0ZXIuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjogcmVtb3ZlIGdzdC1yZWdpc3Rlci5jCgoyMDA1LTA5LTE1IDAwOjQyOjAzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZ3N0LzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGZvciByZWdpc3RyeSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcyBmb3IgcmVnaXN0cnkgY2hhbmdlcy4KCjIwMDUtMDktMTUgMDA6MzU6MTEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IENvcHkgZ19ta2Rpcl93aXRoX3BhcmVudCgpIGZyb20gZ2xpYiwgYmVjYXVzZSB3ZSBkb24ndCByZXF1aXJlIGdsaWItMi44LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ29weSBnX21rZGlyX3dpdGhfcGFyZW50KCkgZnJvbSBnbGliLAoJICBiZWNhdXNlIHdlIGRvbid0IHJlcXVpcmUgZ2xpYi0yLjguCgoyMDA1LTA5LTE1IDAwOjIwOjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBZGRlZC4gIEVzc2VudGlhbGx5IG1vdmVkIG91dCBvZiB0aGUgcmVnaXN0cmllcyBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBZGRlZC4gIEVzc2VudGlhbGx5IG1vdmVkIG91dCBvZiB0aGUKCSAgcmVnaXN0cmllcyBkaXJlY3RvcnkuCgoyMDA1LTA5LTE1IDAwOjEzOjI2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHJlbW92ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RpbmRleC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5jOiByZW1vdmUKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmg6IHJlbW92ZQoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QtcmVnaXN0ZXIuYzogcmVtb3ZlCgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVnaXN0cnkgcmV3cml0ZS4gIENoYW5nZXMgcmVnaXN0cnkgZnJvbSBiZWluZyBhIGZpbGUgY3JlYXRlZAoJICBieSBhIHRvb2wgaW50byBhIHNpbXBsZSBjYWNoZSBmaWxlIGNyZWF0ZWQgYXV0b21hdGljYWxseSBieQoJICBsaWJnc3RyZWFtZXIuICBSZW1vdmVkIGdzdC1yZWdpc3RlciAoYmVjYXVzZSBpdCdzIG5vIGxvbmdlcgoJICBuZWVkZWQpLiAgUmVtb3ZlIHJlZ2lzdHJ5IHBvb2xzLCBiZWNhdXNlIHdlIG9ubHkgaGF2ZSBvbmUKCSAgcmVnaXN0cnkgaW1wbGVtZW50YXRpb24gKFhNTCkuICBGaXggdXAgb3RoZXIgc3Vic3lzdGVtcyBhcwoJICBuZWNlc3NhcnkuCgoyMDA1LTA5LTE0IDIyOjA1OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJICB3aG9vcHMsIHdyb25nIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hvb3BzLCB3cm9uZyBjb21taXQKCjIwMDUtMDktMTQgMjI6MDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJICBub3RlcyBvbiBkb2N1bWVudGluZyBlbGVtZW50cyBhbmQgcGx1Z2lucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbm90ZXMgb24gZG9jdW1lbnRpbmcgZWxlbWVudHMgYW5kIHBsdWdpbnMKCjIwMDUtMDktMTQgMTU6MTY6MzMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBSZXN0IG9mIHRoZSBmaXggZm9yIDMxNjE1NTogZG9uJ3QgY29uZnVzZSBNaW5HVyB3aGVuIHJ1bm5pbmcgZ2xpYi1ta2VudW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXN0IG9mIHRoZSBmaXggZm9yIDMxNjE1NTogZG9uJ3QgY29uZnVzZSBNaW5HVyB3aGVuIHJ1bm5pbmcgZ2xpYi1ta2VudW1zCgoyMDA1LTA5LTEzIDE1OjAzOjA1ICswMDAwICBTdGV2ZSBMaG9tbWUgPHN0ZXZlLmxob21tZUBmcmVlLmZyPgoKCSAgZmlsZSBnc3QtdHlwZWZpbmQudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3QtdHlwZWZpbmQudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wOS0xMyAxNDo0OToyMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIERvbid0IHVzZSB3aW5kb3dzIGxpbmtpbmcgYXR0cmlidXRlcyBpbiBNaW5HVwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9uJ3QgdXNlIHdpbmRvd3MgbGlua2luZyBhdHRyaWJ1dGVzIGluIE1pbkdXCgoyMDA1LTA5LTEzIDExOjAwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBBcHBhcmVudGx5IHBlb3BsZSB0aGluayBpdCdzIGJldHRlciBpZiB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgdHJ5IHRvIHNldCB0aGUgc3RhdGUgdG8gd2hhdGV2ZXIgc3RhdGUgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHNldF9zdGF0ZV9hc3luY190aHJlYWRfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMpOgoJICBBcHBhcmVudGx5IHBlb3BsZSB0aGluayBpdCdzIGJldHRlciBpZiB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QKCSAgdHJ5IHRvIHNldCB0aGUgc3RhdGUgdG8gd2hhdGV2ZXIgc3RhdGUgd2FzIGFza2VkIGZvciBvbiB0aGUgZmlyc3QKCSAgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGZvciBhbnkgb2JqZWN0LiAgU2VyaW91c2x5LgoKMjAwNS0wOS0xMiAxODoxNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgYSBnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMgbWV0aG9kIHRoYXQgc2V0cyB0aGUgc3RhdGUgYW5kIHN0YXJ0cyBhIHRocmVhZCB0byBtYWtlIHN1cmUgdGhlIHN0YXRlIGNoYW5nZSBjb21wbGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHNldF9zdGF0ZV9hc3luY190aHJlYWRfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBhZGQgYSBnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMgbWV0aG9kIHRoYXQKCSAgc2V0cyB0aGUgc3RhdGUgYW5kIHN0YXJ0cyBhIHRocmVhZCB0byBtYWtlIHN1cmUgdGhlIHN0YXRlCgkgIGNoYW5nZSBjb21wbGV0ZXMgYXMgYmVzdCBhcyBpdCBjYW4KCjIwMDUtMDktMTIgMTc6MDE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGNvZGlmeSBkZXNpZ24rYmVoYXZpb3VyIGluIHRlc3RzdWl0ZSBhZnRlciBkaXNjdXNzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb2RpZnkgZGVzaWduK2JlaGF2aW91ciBpbiB0ZXN0c3VpdGUgYWZ0ZXIgZGlzY3Vzc2lvbgoKMjAwNS0wOS0xMiAxNjoxMDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGEgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgYWRkIGEgcXVvdGUKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgYWRkIHNvbWUgZGVidWcKCjIwMDUtMDktMTIgMTM6NDU6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIHRoZSByZXF1aXJlbWVudCBmb3Igc3ViLWNsYXNzZXMgdG8gY2FsbCB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uIG9mIHByZXBhcmVfb3V0cHV0X2J1ZmZlciB3aXRoIGEgd3JhcHBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IGZvciBzdWItY2xhc3NlcyB0byBjYWxsIHRoZSBwYXJlbnQKCSAgaW1wbGVtZW50YXRpb24gb2YgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHdpdGggYSB3cmFwcGVyIGZ1bmN0aW9uLgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBGaXggI2RlZmluZSB3cmFwcGVyCgoyMDA1LTA5LTExIDE5OjIyOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtb3JlIGRvYyBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3JlIGRvYyBjbGVhbnVwcwoKMjAwNS0wOS0xMSAxMzowNzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jIGJ1aWxkIGNsZWFuLCBodXJyYXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBidWlsZCBjbGVhbiwgaHVycmF5CgoyMDA1LTA5LTExIDEyOjU3OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgdmFyaW91cyBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhcmlvdXMgZG9jIGZpeGVzCgoyMDA1LTA5LTExIDEyOjAyOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgZml4IHNpbGx5IGJ1ZyB0aGF0IGNhdXNlZCBidWlsZCB0byBmYWlsIHdoZW4gY2hlY2sgaXMgbWlzc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHNpbGx5IGJ1ZyB0aGF0IGNhdXNlZCBidWlsZCB0byBmYWlsIHdoZW4gY2hlY2sgaXMgbWlzc2luZwoKMjAwNS0wOS0xMSAxMjowMToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2dzdC86IHJlYXJyYW5nZSBnc3R2YWx1ZSBzZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJICByZWFycmFuZ2UgZ3N0dmFsdWUgc2VjdGlvbgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpOgoJICBOT05FIC0+IFZPSUQKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvYyB1cGRhdGVzCgoyMDA1LTA5LTExIDExOjU3OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZGVidWcgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIGZpeGVzCgoyMDA1LTA5LTA5IDIzOjQ1OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogSGVhZGVyIGluY2x1ZGUgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkgIEhlYWRlciBpbmNsdWRlIGZpeC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZGVmYXVsdF9wcmVwYXJlX2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBTb21lIG1vcmUgYmFzZXRyYW5zZm9ybSBjaGFuZ2VzIGFuZCBmaXhlcyB0byBlbmFibGUgc3ViLWNsYXNzZXMKCSAgdGhhdCBtb2RpZnkgYnVmZmVyIG1ldGFkYXRhIG9ubHkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfaW5pdCksIChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBJZiB0aGUgb3V0cHV0IHBhZCBoYXMgZml4ZWQgYWxsb3dlZCBjYXBzIGFuZCBpbnB1dCBidWZmZXJzCgkgIGRvbid0IGhhdmUgYW55LCBzZXQgdGhlIGZpeGVkIGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycy4KCjIwMDUtMDktMDkgMTg6MDU6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBvYmplY3QgZGVidWdnaW5nIGlzIGdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9iamVjdCBkZWJ1Z2dpbmcgaXMgZ29vZAoKMjAwNS0wOS0wOSAxNzo0MjoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiBNYWtlIHRoZSBlcnJvciBhIGxpdHRsZSBjbGVhcmVyIHdoZW4gdGhlIHRlc3QgZmFpbHMgYmVjYXVzZSBpZGVudGl0eSBtYWRlIGEgY29weSBvZiB0aGUgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSB0aGUgZXJyb3IgYSBsaXR0bGUgY2xlYXJlciB3aGVuIHRoZSB0ZXN0IGZhaWxzIGJlY2F1c2UKCSAgaWRlbnRpdHkgbWFkZSBhIGNvcHkgb2YgdGhlIGJ1ZmZlci4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBOZXcgc3ltYm9scyBpbiBnc3RiYXNldHJhbnNmb3JtLmgKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9kZWZhdWx0X3ByZXBhcmVfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2luX3BsYWNlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19pbl9wbGFjZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBDaGFuZ2UgQmFzZVRyYW5zZm9ybSB0byBzZXBhcmF0ZSBpbl9wbGFjZSBvcGVyYXRlIGZyb20gc2FtZV9jYXBzCgkgIG91dHB1dC4gaW5fcGxhY2UgaW1wbGllcyB0aGF0IHRoZSBlbGVtZW50IGNhbiBwZXJmb3JtIHRoZSB0cmFuc2Zvcm0KCSAgb24gaW5jb21pbmcgYnVmZmVycyBpbi1wbGFjZSwgZXZlbiBpZiB0aGUgY2FwcyBvbiB0aGUgb3V0cHV0IGFyZQoJICBkaWZmZXJlbnQuCgkgIFN1Yi1jbGFzcyBlbGVtZW50cyBjYW4gbm93IGltcGxlbWVudCBzcGVjaWFsIGJ1ZmZlciBhbGxvY2F0aW9uCgkgIG1ldGhvZHMgZm9yIG91dGdvaW5nIGJ1ZmZlcnMgaWYgdGhleSB3aXNoIHRvLgoJICBCaWcgZG9jdW1lbnRhdGlvbiBhZGRpdGlvbi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgQ2hhbmdlcyBmb3IgYmFzZXRyYW5zZm9ybSBtb2RpZmljYXRpb25zLgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19jcmVhdGUpOgoJICBDb21waWxlIGZpeC4gRXh0cmEgZGVidWcgb3V0cHV0LgoKMjAwNS0wOS0wOSAxNToxOToyNCArMDAwMCAgU3RldmUgTGhvbW1lIDxzdGV2ZS5saG9tbWVAZnJlZS5mcj4KCgkgIGZpbGUgZ3N0Y29udHJvbC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdGNvbnRyb2wudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wOS0wOSAxNDozNDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IGFkZCB0ZXN0cyBmb3IgdmFsaWQgcGFkIG5hbWluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChuYW1lX2lzX3ZhbGlkKSwKCSAgKGdzdF9wYWRfc3VpdGUpOgoJICBhZGQgdGVzdHMgZm9yIHZhbGlkIHBhZCBuYW1pbmcKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19sb2dfbWVzc2FnZV9mdW5jKSwKCSAgKGdzdF9jaGVja19sb2dfY3JpdGljYWxfZnVuYyk6CgkgIGFkZCBBU1NFUlRfV0FSTklORwoJICByZW1vdmUgcHJpbnRpbmcgb2YgY29kZSwgaXQgaXMgZnJhZ2lsZSB3aGVuIHRoZSBjb2RlIGNvbnRhaW5zCgkgICUgYW5kIHRoZSBsaW5lIG51bWJlciBpcyBlbm91Z2ggaW5mbwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfdGVtcGxhdGVfbmV3KToKCSAgZml4IG1lbWxlYWtzCgoyMDA1LTA5LTA5IDEzOjI4OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgYW5kIHRoZSBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFuZCB0aGUgY2hhbmdlbG9nCgoyMDA1LTA5LTA5IDEzOjI2OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogc2F5IHdoYXQgQ0hFQ0sgZmxhZ3Mgd2UgdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgc2F5IHdoYXQgQ0hFQ0sgZmxhZ3Mgd2UgdXNlCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2luZm8pOgoJICB3ZSBkb24ndCB1c2UgZGFzaGVzIGluIGhlYWRlciBuYW1lcwoKMjAwNS0wOS0wOSAxMjowMjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGFkZGluZyBhIHRlc3QgZm9yIHBpcGVsaW5lcyBhbmQgc3RhdGUgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKHBvcF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfcGlwZWxpbmVfc3VpdGUpLCAobWFpbik6CgkgIGFkZGluZyBhIHRlc3QgZm9yIHBpcGVsaW5lcyBhbmQgc3RhdGUgY2hhbmdlcwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ2V0X3N0YXRlX2Z1bmMpOgoJICBhZGQgc29tZSBkZWJ1Z2dpbmcKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwIHNwZWMgZmlsZQoKMjAwNS0wOS0wOCAxNzoyMzo1NyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBWYXJpb3VzIGZpeGVzIGZvciB1bnNlZWthYmxlLCB1bm1tYXBhYmxlLCBhbmQgbm9uLW5vcm1hbCBmaWxlcywgc28gdGhhdCBmYWxsYmFjayB0byByZWFkKCkgcmF0aGVyIHRoYW4gbW1hcCgpIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVmFyaW91cyBmaXhlcyBmb3IgdW5zZWVrYWJsZSwgdW5tbWFwYWJsZSwgYW5kIG5vbi1ub3JtYWwgZmlsZXMsIHNvIHRoYXQKCSAgZmFsbGJhY2sgdG8gcmVhZCgpIHJhdGhlciB0aGFuIG1tYXAoKSB3b3Jrcy4KCSAgQWxsb3cgbmV3c2VnbWVudCBldmVudHMgd2l0aCBzdGFydCA9PSBlbmQsIHNvIHRoYXQgY2FzZXMgd2hlcmUgdGhhdCdzCgkgIGNvcnJlY3Qgd29yayAoZS5nLiBmaWxlc3JjIG9uIGEgemVyby1zaXplIGZpbGUpLgoKMjAwNS0wOS0wOCAxMTo0NToxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICBVcGRhdGUgdGhlIG1hbnVhbCBzZWN0aW9uIG9uIHN0YXRlIGNoYW5nZXMgZm9yIHdpbmdvJ3MgbmV3IEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIHRoZSBtYW51YWwgc2VjdGlvbiBvbiBzdGF0ZSBjaGFuZ2VzIGZvciB3aW5nbydzIG5ldyBBUEkKCjIwMDUtMDktMDcgMTU6MjI6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBDYWxsIGdfbW9kdWxlX2Nsb3NlIHdoZW4gd2UgZG9uJ3QgbG9hZCB0aGUgbW9kdWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgQ2FsbCBnX21vZHVsZV9jbG9zZSB3aGVuIHdlIGRvbid0IGxvYWQgdGhlIG1vZHVsZQoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wcm9wZXJ0eSk6CgkgIFBvcnQgbGVhayBmaXggZnJvbSAwLjgKCjIwMDUtMDktMDcgMTQ6MDg6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBtb3JlIHJlbmFtZSBmaXhpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHJlbmFtZSBmaXhpbmcgLi4uCgoyMDA1LTA5LTA3IDEzOjIyOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW5hbWVkIGdzdHRhZyAtPiBnc3R0YWdsaXN0LCBnc3R0YWdpbnRlcmZhY2UgLT4gZ3N0dGFnc2V0dGVyIGlubGluZWQgZG9jcyBmb3IgZ3N0dHJhY2UsIGdzdHRyYXNoc3RhY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5oOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5oOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmM6CgkgIHJlbmFtZWQgZ3N0dGFnIC0+IGdzdHRhZ2xpc3QsIGdzdHRhZ2ludGVyZmFjZSAtPiBnc3R0YWdzZXR0ZXIKCSAgaW5saW5lZCBkb2NzIGZvciBnc3R0cmFjZSwgZ3N0dHJhc2hzdGFjawoKMjAwNS0wOS0wNyAxMjozNToyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0Lzogc3BsaXR0ZWQgZ3N0dHlwZWZpbmQgaW50byBnc3R0eXBlZmluZCwgZ3N0dHlwZWZpbmRmYWN0b3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NsYXNzX2luaXQpLCAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2Rpc3Bvc2UpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X3VubG9hZF90aHlzZWxmKSwKCSAgKGdzdF90eXBlX2ZpbmRfbG9hZF9wbHVnaW4pLCAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9saXN0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfY2FwcyksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2V4dGVuc2lvbnMpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgIHNwbGl0dGVkIGdzdHR5cGVmaW5kIGludG8gZ3N0dHlwZWZpbmQsIGdzdHR5cGVmaW5kZmFjdG9yeQoKMjAwNS0wOS0wNyAxMDowNjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogRml4IGEgcmFjZSBjb25kaXRpb24gd2hlcmVieSB0aGUgcGFkJ3MgdGFzayBmdW5jdGlvbiBpcyBlbnRlcmVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6IEZpeCBhIHJhY2UKCSAgY29uZGl0aW9uIHdoZXJlYnkgdGhlIHBhZCdzIHRhc2sgZnVuY3Rpb24gaXMgZW50ZXJlZCBiZWZvcmUgdGhlCgkgIHBhZF9tb2RlIHZhcmlhYmxlIHdhcyBzZXQuCgoyMDA1LTA5LTA2IDIyOjU3OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ2F0Y2ggbWlzYmVoYXZpbmcgcGFkX2FsbG9jIGZ1bmN0aW9ucyB0aGF0IGRvbid0IHNldCB1cCBjYXBzIGFuZCBkbyBpdCBmb3IgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOgoJICBDYXRjaCBtaXNiZWhhdmluZyBwYWRfYWxsb2MgZnVuY3Rpb25zIHRoYXQgZG9uJ3QKCSAgc2V0IHVwIGNhcHMgYW5kIGRvIGl0IGZvciB0aGVtLgoKMjAwNS0wOS0wNiAyMjowMzowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogdGVzdCBmb3IgcGlwZSE9TlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKToKCSAgdGVzdCBmb3IgcGlwZSE9TlVMTAoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6CgkgICogZ3N0L2dzdHBhcnNlLmM6CgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCjIwMDUtMDktMDYgMTg6MTg6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBhZGQgYSBjaGVjayBmb3IgYSBnaG9zdHBhZCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHRhcmdldCBiZWluZyBsaW5rZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIGNoZWNrIGZvciBhIGdob3N0cGFkIHRoYXQgZG9lc24ndCBoYXZlIGEgdGFyZ2V0IGJlaW5nIGxpbmtlZAoKMjAwNS0wOS0wNiAxNDoxMToyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjkuMiA9PT0KCjIwMDUtMDktMDYgMTQ6MDI6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUFETUU6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuOS4yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjIKCjIwMDUtMDktMDYgMTE6NDU6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIHVwZGF0ZSByZWFkbWUgd2l0aCBleHBsYW5hdGlvbiBvZiBtb2R1bGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgcmVhZG1lIHdpdGggZXhwbGFuYXRpb24gb2YgbW9kdWxlcwoKMjAwNS0wOS0wNiAwOTo1MjoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9yYW5kb20vQ2hhbmdlTG9nLTAuODoKCSAgY2hhbmdlbG9nIHNwbGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cgc3BsaXQKCjIwMDUtMDktMDUgMTc6NTU6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoKMjAwNS0wOS0wNSAxNzo1MzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZGluZyAtYmFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgLWJhZAoKMjAwNS0wOS0wNSAxNjo1NDo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuKjogYW5kIHVwZGF0ZSB0byBuZXdlciBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzogYW5kIHVwZGF0ZSB0byBuZXdlciBBUEkuCgkgIEluY2lkZW50YWxseSB0aGV5IHNob3VsZCBiZSBhIGJpdCBmYXN0ZXIgbm93IHRoYXQgdGhleSBkb24ndCBoYXZlCgkgIHRvIHBhcnNlIHRoZSBjYXBzLgoKMjAwNS0wOS0wNSAxNjo1Mjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuKjogVW0uLi4gcmVzdXJyZWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzogVW0uLi4gcmVzdXJyZWN0Li4uCgoyMDA1LTA5LTA1IDE2OjM2OjQ3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBSZW1vdmUgZnJvbSBDVlMsIHRoZXkgd2VyZSByZXBsYWNlZCBieSB0aGUgbGlieG1sIHJlZ2lzdHJ5IGEgd2hpbGUgYmFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6IFJlbW92ZSBmcm9tIENWUywgdGhleSB3ZXJlCgkgIHJlcGxhY2VkIGJ5IHRoZSBsaWJ4bWwgcmVnaXN0cnkgYSB3aGlsZSBiYWNrCgoyMDA1LTA5LTA1IDExOjU0OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGRvY3MvUkVBRE1FOgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgoyMDA1LTA5LTA1IDA5OjM4OjM4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBSZXZlciB0byAxLjgwIHZlcnNpb24gb2YgdGhpcyBmaWxlIGFzIEdzdFV0aWxzIGlzIG5vdCBhcyBkZWFkIGFzIGl0IHNlZW1lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2ZXIgdG8gMS44MCB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBhcyBHc3RVdGlscyBpcyBub3QgYXMgZGVhZCBhcyBpdCBzZWVtZWQKCjIwMDUtMDktMDUgMDk6MjM6NDQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgcmVtb3ZlIEdzdFV0aWxzIG1lbnRpb24gYXMgaXQgaXMgbm93IGdvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBHc3RVdGlscyBtZW50aW9uIGFzIGl0IGlzIG5vdyBnb25lCgoyMDA1LTA5LTA0IDExOjAxOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBuZWVkIHRvIGFkZCAtbGNoZWNrIHRvIHRoZSBwa2djb25maWcgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbmVlZCB0byBhZGQgLWxjaGVjayB0byB0aGUgcGtnY29uZmlnIGZpbGUKCjIwMDUtMDktMDMgMTc6MzY6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBmaXggZm9yIGEgY3JpdGljYWwgd2hlbiBhIG1vZHVsZSByZXR1cm5zIE5VTEwgb24gb3BlbmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZvciBhIGNyaXRpY2FsIHdoZW4gYSBtb2R1bGUgcmV0dXJucyBOVUxMIG9uIG9wZW5pbmcKCjIwMDUtMDktMDMgMTc6MDA6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBhZGQgYSBzb3VyY2UgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkLCB0byByZXByZXNlbnQgdGhlIHNvdXJjZSBtb2R1bGUgdGhpcyBwbHVnaW4gaXMgYSBwYXJ0IG9mLiAgQnkgZGVmYXVsdCBHU1RfUExVR0kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHNvdXJjZSBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGQsIHRvIHJlcHJlc2VudCB0aGUgc291cmNlCgkgIG1vZHVsZSB0aGlzIHBsdWdpbiBpcyBhIHBhcnQgb2YuICBCeSBkZWZhdWx0IEdTVF9QTFVHSU5fREVGSU5FCgkgIHdpbGwgc2V0IGl0IHRvIFBBQ0tBR0UsIHdoaWNoIGlzIGF1dG9tYWtlJ3MgaWRlYSBvZiB0aGUgbmFtZSBvZgoJICB0aGUgc291cmNlIHByb2plY3QuCgoyMDA1LTA5LTAzIDE2OjE2OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkgIGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDUtMDktMDMgMTQ6MjA6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGRvY3MvaHRtbGluc3RhbGwubWFrOgoJICBlbmFibGUgZG9jcyBidWlsZCBmb3IgZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBlbmFibGUgZG9jcyBidWlsZCBmb3IgZGlzdGNoZWNrCgoyMDA1LTA5LTAzIDEzOjU0OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3Rkb2MtbWtkYjoKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1ta3RtcGw6CgkqIGRvY3MvcGx1Z2lucy9nc3Rkb2Mtc2Nhbm9iajoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnR5cGVzLmluOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hYzNkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvYWMzcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvYXVkaW9zY2FsZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9jb2Jpbi5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9kdmRzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZXhhbXBsZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RhdmllbmNvZGVyLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGpwZWcuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0anBlZ2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RqcGVnZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcxZW5jb2Rlci5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnMmVuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnMnBsYXkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZ19wbGF5LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWdhdWRpby5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGcxMjMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cGFyc2VhdS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RwYXJzZWF2aS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RwYXJzZXdhdi5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RyZWFtZXItcGx1Z2lucy11bnVzZWQuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0c3BlY3RydW0uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0djRsc3JjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHdpbmNvZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHdpbmRlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R3aW5lbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0eGEuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0eGluZy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tZWRpYW4uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXAxdmlkZW9wYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcDJ2aWRlb3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wM3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wZWcxcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXBlZzJwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcGVnMnN1YnQuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvcnRqcGVnZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3J0anBlZ2VuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zbW9vdGguc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc21vb3Rod2F2ZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zcGluZGVudGl0eS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zdGVyZW8uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3luYWVzdGhlc2lhLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3N5c3RlbV9lbmNvZGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdmNkc3JjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZpZGVvc2NhbGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdmlkZW9zaW5rLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZvbHVtZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92b3JiaXNkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdm9yYmlzZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3Z1bWV0ZXIuc2dtbDoKCSAgcmVtb3ZlIG9sZCBwbHVnaW5zIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgcGx1Z2lucyBkb2NzCgoyMDA1LTA5LTAzIDEzOjQ5OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgY2xlYW4gdXAgZG9jcyBidWlsZCBhIGxpdHRsZTsgaGF2ZSBkb2NkaXIgYmUgYW4gb3ZlcnJpZGFibGUgaW5zdGFsbCBsb2NhdGlvbjsgc2VwYXJhdGUgZ3RrLWRvYyBhbmQgZG9jYm9vayBiaXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBkb2NzIGJ1aWxkIGEgbGl0dGxlOyBoYXZlIGRvY2RpciBiZSBhbiBvdmVycmlkYWJsZSBpbnN0YWxsIGxvY2F0aW9uOyBzZXBhcmF0ZSBndGstZG9jIGFuZCBkb2Nib29rIGJpdHMKCjIwMDUtMDktMDIgMjM6MzY6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB3aGl0ZXNwYWNlIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGNsZWFudXBzCgoyMDA1LTA5LTAyIDIzOjE3OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9idWZmZXJfYWxsb2MpOgoJICBBZGQgY29tbWVudC4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHRocmVhZC1zYWZlLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKToKCSAgU2V0IG9mZnNldCBvbiBnZW5lcmljIGJ1ZmZlciBhbGxvY2F0ZWQgYnkgZmFsbGJhY2suCgoyMDA1LTA5LTAyIDIzOjAzOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMDktMDIgMjE6Mzc6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJ1biB0aGUgd2luZ28tbWFnaWMgc2NyaXB0IGFnYWluc3QgdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZmluZF9jb250cm9sbGVkX3Byb3BlcnR5KToKCSAgcnVuIHRoZSB3aW5nby1tYWdpYyBzY3JpcHQgYWdhaW5zdCB0aGUgZG9jcwoKMjAwNS0wOS0wMiAxODozNjowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJICByZW1vdmVkIGZpbGUgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgZmlsZSBhZ2FpbgoKMjAwNS0wOS0wMiAxNzoyMzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWVyZ2VkIGVsZW1lbnRkZXRhaWxzIGRvY3MgaW50byBlbGVtZW50ZmFjdG9yeSBkb2NzIGlubGluZWQgYm90aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgbWVyZ2VkIGVsZW1lbnRkZXRhaWxzIGRvY3MgaW50byBlbGVtZW50ZmFjdG9yeSBkb2NzCgkgIGlubGluZWQgYm90aAoKMjAwNS0wOS0wMiAxNjo0NDo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogQWRkIG1hZ2ljYWwgcGl4aWUgZHVzdCB0byBtYWtlIGdsaWItbWtlbnVtcyBjb25zaWRlciB0aGlzIGVudW0gYW4gZW51bSBhbmQgbm90IGEgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6IEFkZCBtYWdpY2FsIHBpeGllIGR1c3QgdG8gbWFrZSBnbGliLW1rZW51bXMKCSAgY29uc2lkZXIgdGhpcyBlbnVtIGFuIGVudW0gYW5kIG5vdCBhIGZsYWdzLgoKMjAwNS0wOS0wMiAxNjoxNzoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGlubGluZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVhbHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0bWFjcm9zLmg6CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6CgkgICogZ3N0L2dzdG1lbWNodW5rLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgbW9yZSBkb2NzIGlubGluZWQKCjIwMDUtMDktMDIgMTU6NDI6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmggKEdzdFN0YXRlKTogUmVuYW1lZCBmcm9tIEdzdEVsZW1lbnRTdGF0ZSwgY2hhbmdlZCB0byBiZSBhIG5vcm1hbCBlbnVtIGluc3RlYWQgb2YgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmggKEdzdFN0YXRlKTogUmVuYW1lZCBmcm9tIEdzdEVsZW1lbnRTdGF0ZSwKCSAgY2hhbmdlZCB0byBiZSBhIG5vcm1hbCBlbnVtIGluc3RlYWQgb2YgZmxhZ3MuCgkgIChHc3RTdGF0ZUNoYW5nZVJldHVybik6IFJlbmFtZWQgZnJvbSBHc3RFbGVtZW50U3RhdGVSZXR1cm4sIG5hbWVzCgkgIG11bmdlZCB0byBiZSBHU1RfU1RBVEVfQ0hBTkdFXyouCgkgIChHU1RfU1RBVEVfQ0hBTkdFKTogUmVuYW1lZCBmcm9tIEdTVF9TVEFURV9UUkFOU0lUSU9OLCB1cGRhdGVkIHRvCgkgIHdvcmsgd2l0aCB0aGUgbmV3IHN0YXRlIHJlcHJlc2VudGF0aW9uLgoJICAoR3N0U3RhdGVDaGFuZ2UpOiBOZXcgZW51bWVyYXRpb24gb2YgcG9zc2libGUgc3RhdGUgdHJhbnNpdGlvbnMuCgkgIFJlcGxhY2VzIEdTVF9TVEFURV9GT09fVE9fQkFSIHdpdGggR1NUX1NUQVRFX0NIQU5HRV9GT09fVE9fQkFSLgoJICAoR3N0RWxlbWVudENsYXNzOjpjaGFuZ2Vfc3RhdGUpOiBQYXNzIHRoZSBHc3RTdGF0ZUNoYW5nZSBhbG9uZyBhcwoJICBhbiBhcmd1bWVudC4gSGVscHMgbGFuZ3VhZ2UgYmluZGluZ3MsIHNvIHRoZXkgZG9uJ3QgaGF2ZSB0byB1c2UKCSAgdHJpY2t5IGxvY2stbmVlZGluZyBtYWNyb3MgbGlrZSBHU1RfU1RBVEVfQ0hBTkdFICgpLgoJICAqIHNjcmlwdHMvdXBkYXRlLXN0YXRlcyAoZmlsZSk6IE5ldyBzY3JpcHQuIFJ1biBpdCBvbiBhIGZpbGUgdG8KCSAgdXBkYXRlIGl0IGZvciBzdGF0ZSBuYW1pbmcgYW5kIEFQSSBjaGFuZ2VzLiBVcGRhdGVzIGZpbGVzIGluCgkgIHBsYWNlLgoJICAqIEFsbCBmaWxlcyB1cGRhdGVkIGZvciB0aGUgbmV3IEFQSS4KCjIwMDUtMDktMDIgMTI6MTE6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwIHNwZWMgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBzcGVjIHNvbWUgbW9yZQoKMjAwNS0wOS0wMiAxMjowODo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBmaXggYSBidW5jaCBvZiB1bmNoZWNrZWQgcmV0dXJuIHZhbHVlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzogKGdzdF90cmFjZV9mbHVzaCksIChnc3RfdHJhY2VfdGV4dF9mbHVzaCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcpLAoJICAoZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcpOgoJICBmaXggYSBidW5jaCBvZiB1bmNoZWNrZWQgcmV0dXJuIHZhbHVlcwoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS5jOiAobWFpbik6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwIGEgbGl0dGxlCgoyMDA1LTA5LTAxIDE5OjA2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJICB1cGRhdGVkIC5jdnNpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgLmN2c2lnbm9yZQoKMjAwNS0wOS0wMSAxODoxMjoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEhhbmRsZSBuZXdzZWdtZW50cyBtb3JlIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgSGFuZGxlIG5ld3NlZ21lbnRzIG1vcmUgY29ycmVjdGx5LgoJICAqIGdzdC9nc3RidXMuYzoKCSAgRml4IGRvY3MuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpOgoJICBBIG5ld3NlZ21lbnQgY2Fubm90IGhhdmUgYSBzdGFydF90aW1lIG9mIC0xCgoyMDA1LTA5LTAxIDE2OjUzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvZ3N0ZW51bXR5cGVzLio6IFVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuaDoKCSAgVXBkYXRlCgoyMDA1LTA4LTMxIDIxOjAxOjM1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBSZW1vdmUgZXh0cmFuZW91cyAnY28nIGZyb20gY3ZzIGNvbW1hbmQgaW4gUFdHLCBhcyByZXBvcnRlZCBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgZXh0cmFuZW91cyAnY28nIGZyb20gY3ZzIGNvbW1hbmQgaW4gUFdHLCBhcyByZXBvcnRlZCBvbiBpcmMuCgoyMDA1LTA4LTMxIDE4OjQ1OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6IGZpeGVkIGJvb2xlYW4gYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICBmaXhlZCBib29sZWFuIGFnYWluCgoyMDA1LTA4LTMxIDE1OjI3OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogYWRkIC1nb29kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIC1nb29kCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIHJlbW92ZSB3cm9uZyBkb2NzCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX2ZpbHRlcmVkKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgYWRkIGdzdF9lbGVtZW50X2xpbmtfZmlsdGVyZWQKCjIwMDUtMDgtMzEgMTQ6MDg6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgbW9yZSBkb2NzLCBmaXhlZCBkb3VibGUgaWQtcmVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXJpdHlwZS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgaW5saW5lZCBtb3JlIGRvY3MsIGZpeGVkIGRvdWJsZSBpZC1yZWYKCjIwMDUtMDgtMzEgMTM6NTM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFBhc3N0aHJvdWdoIGVsZW1lbnRzIGRvbid0IG5lZWQgdGhlIGNhcHMgYXMgdGhleSBkb24ndCBjYXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIFBhc3N0aHJvdWdoIGVsZW1lbnRzIGRvbid0IG5lZWQgdGhlIGNhcHMgYXMgdGhleSBkb24ndCBjYXJlLgoKMjAwNS0wOC0zMSAxMzo1MDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgbGVhayByZWZjb3VudHMgb24gYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgRG9uJ3QgbGVhayByZWZjb3VudHMgb24gYnVmZmVycy4KCjIwMDUtMDgtMzEgMTM6NDE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgbW9yZSBncmFjZWZ1bGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGFyZSBub3QgbmVnb3RpYXRlZCBtb3JlIGdyYWNlZnVsbHkuCgoyMDA1LTA4LTMxIDEyOjU1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogU2V0IFJFQURPTkxZIGZsYWcgb24gbW1hcCdlZCBidWZmZXJzLCBvdGhlcndpc2UgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgd29uJ3Qgd29yayBwcm9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbik6CgkgIFNldCBSRUFET05MWSBmbGFnIG9uIG1tYXAnZWQgYnVmZmVycywgb3RoZXJ3aXNlCgkgIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHdvbid0IHdvcmsgcHJvcGVybHkgKCMzMTQ3MDgpLgoKMjAwNS0wOC0zMSAxMDowNzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogcGFzc3Rocm91Z2ggZWxlbWVudHMgY2FuIGV2ZW4gZG8gaW5wbGFjZSBvbiBub24gd3JpdGFibGUgYnVmZmVycyAoYXMgdGhleSBkb24ndCB0b3VjaCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIHBhc3N0aHJvdWdoIGVsZW1lbnRzIGNhbiBldmVuIGRvIGlucGxhY2Ugb24gbm9uIHdyaXRhYmxlCgkgIGJ1ZmZlcnMgKGFzIHRoZXkgZG9uJ3QgdG91Y2ggdGhlbSkuCgoyMDA1LTA4LTMxIDEwOjAwOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IG1vcmUgdGVzdHMgKGhlaGUgSSBoYXZlIHRoZSBtb3N0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChnc3RfdGVzdF9tb25vX3NvdXJjZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX2NsYXNzX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBtb3JlIHRlc3RzIChoZWhlIEkgaGF2ZSB0aGUgbW9zdCkKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIGRlc2NyaWJlIHBvcHBpbmcgbWVzc2FnZXMgd2hlbnVzaW5nIG11bGx0aXBsZSBzb3VyY2VzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkgIGltcGxlbWVudCBib29sZWFuIHByb3BlcnRpZXMKCjIwMDUtMDgtMzEgMDg6NTc6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBDYW5ub3QgYXNzZXJ0IHRoYXQgdGhlIHJlZmNvdW50IGhhcyB0byBiZSBwb3NpdGl2ZSBzaW5jZSBhIGRpc3Bvc2VkIG9iamVjdCBjYW4gYmUgcmVzdXJlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpOgoJICBDYW5ub3QgYXNzZXJ0IHRoYXQgdGhlIHJlZmNvdW50IGhhcyB0byBiZSBwb3NpdGl2ZQoJICBzaW5jZSBhIGRpc3Bvc2VkIG9iamVjdCBjYW4gYmUgcmVzdXJlY3RlZC4KCjIwMDUtMDgtMzEgMDg6Mzg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJldmVydCBjaGFuZ2UsIG5lZWQgdG8gZmlyc3QgZml4IGJhZGx5IGJlaGF2aW5nIGFwcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFJldmVydCBjaGFuZ2UsIG5lZWQgdG8gZmlyc3QgZml4IGJhZGx5IGJlaGF2aW5nCgkgIGFwcHMuCgoyMDA1LTA4LTMwIDE5OjQ1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZWxlbWVudHMvOiBBY3RpdmF0ZSBwYWRzIGJlZm9yZSB1c2luZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChzZXR1cF9mYWtlc3JjKToKCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoc2V0dXBfaWRlbnRpdHkpOgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSB1c2luZyB0aGVtLgoKMjAwNS0wOC0zMCAxOToyOTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogRmx1c2hpbmcgb3V0IDAgYnl0ZXMgaXMgb2sgZm9yIHRoaXMgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2ZsdXNoKToKCSAgRmx1c2hpbmcgb3V0IDAgYnl0ZXMgaXMgb2sgZm9yIHRoaXMgZnVuY3Rpb24uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIG5vIG5ld3NlZ21lbnQgZ2l2ZXMgYSB3YXJuaW5nIGFuZCBzZXRzIHRoZSBzdGFydC9zdG9wIHRvCgkgIGludmFsaWQuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKToKCSAgU29tZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVmKToKCSAgQ2hlY2sgcmVmY291bnQgaGVyZSB0b28uCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgUGFkcyBhcmUgaW5pdGlhbGx5IGZsdXNoaW5nIGFuZCByZWZ1c2luZyBkYXRhLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKToKCSAgV2hlbiBhZGRpbmcgYSBjYXBzZmlsdGVyIGVsZW1lbnQgbWFrZSBzdXJlIGl0IGhhcyB0aGUKCSAgc2FtZSBzdGF0ZSBhcyB0aGUgcGFyZW50IGJpbi4KCjIwMDUtMDgtMzAgMTc6MjM6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBhbmQgdHdvIG1vcmUgaW5saW5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGZvcm1hdC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBtb3JlIGRvY3MgYW5kIHR3byBtb3JlIGlubGluZWQKCjIwMDUtMDgtMzAgMTc6MTI6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRG9uJ3Qgc3luYyB0byBjbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICBEb24ndCBzeW5jIHRvIGNsb2NrLgoKMjAwNS0wOC0zMCAwODoxNzo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogdWx0cmFsMzN0IGZ1bmMxMG5zIGRlc2VydmUgdG8gYXBwZWFyIGluIHRoZSBkb2NzIGFjdHVhbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdWx0cmFsMzN0IGZ1bmMxMG5zIGRlc2VydmUgdG8gYXBwZWFyIGluIHRoZSBkb2NzIGFjdHVhbHkKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9nc3Rjb21wYXQuaDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGlubGluZWQgbW9yZSBkb2NzCgoyMDA1LTA4LTI5IDIxOjQxOjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIGFuZCBleHRlbmRlZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBpbmxpbmVkIGFuZCBleHRlbmRlZCBkb2NzCgoyMDA1LTA4LTI5IDE5OjU5OjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IG1vcmUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBtb3JlIHRlc3RzCgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgIGluY2x1ZGUgcGF0aCBmaXhlcwoJICAqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgIGNvbnRyb2xsZXIgZXhhbXBsZSB3b3JrcyBub3cKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jIGZpeGVzCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgc2hvdyBwYXJhbSBzcGVjIGZsYWdzCgoyMDA1LTA4LTI5IDE2OjEwOjM2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKTogTmV3IDM3MzN0IGZ1bmN0MTBuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKTogTmV3IDM3MzN0IGZ1bmN0MTBuLgoKMjAwNS0wOC0yOSAwOTo1Mjo0NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgTWlub3IgdXBkYXRlcyB0byBkZXZlbG9wZXIgY3ZzIGluc3RydWN0aW9ucywgdG8gbW9yZSBjbG9zZWx5IG1hdGNoIHdoYXQgdGhlIGZyZWVkZXNrdG9wIHBlb3BsZSB3YW50LiBBbHNvLCB0ZXN0IG15IGN2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNaW5vciB1cGRhdGVzIHRvIGRldmVsb3BlciBjdnMgaW5zdHJ1Y3Rpb25zLCB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggd2hhdAoJICB0aGUgZnJlZWRlc2t0b3AgcGVvcGxlIHdhbnQuIEFsc28sIHRlc3QgbXkgY3ZzIGNvbW1pdCBhY2Nlc3MuLi4KCjIwMDUtMDgtMjggMTc6NDU6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfRlVMTCk6IFByb3RvdHlwZSBpbnN0YW5jZV9pbml0IGFzIGhhdmluZyB0d28gYXJndW1lbnRzIGluc3RlYWQgb2YganVzdCBvbmUuIEFsbG93cyBzdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX0ZVTEwpOiBQcm90b3R5cGUgaW5zdGFuY2VfaW5pdAoJICBhcyBoYXZpbmcgdHdvIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIGp1c3Qgb25lLiBBbGxvd3Mgc3VwZXJjbGFzc2VzCgkgIHRvIGFjY2VzcyBpbmZvcm1hdGlvbiBvbiBzdWJjbGFzc2VzIC0tIHNlZSB0aGUgdGVycmlibGUgZm9yKCkgbG9vcAoJICBpbiBndHlwZS5jOmdfdHlwZV9jcmVhdGVfaW5zdGFuY2UgZm9yIHRoZSByZWFzb24gd2h5LiBBbGwgY2FsbGVycwoJICBjaGFuZ2VkLgoKMjAwNS0wOC0yNyAxMDo1NzowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6IHVwZGF0ZSBpbmZvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICB1cGRhdGUgaW5mbwoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBhZGRlZCBkZXNjcmlwdGlvbnMgZm9yIGJ1cyBhbmQgbWVzc2FnZQoJICBpbmxpbmUgY2FwcyBhbmQgY2xvY2sgZG9jcwoKMjAwNS0wOC0yNiAyMjozMjo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9jIGZpeGVzCgoyMDA1LTA4LTI2IDIxOjIzOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IGZpeCBkaXYtYnktemVybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpOgoJICBmaXggZGl2LWJ5LXplcm8KCjIwMDUtMDgtMjYgMTQ6MjE6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IENoZWNrIGVsZW1lbnRfc2V0X3N0YXRlJ3MgcmV0dXJuIHZhbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogQ2hlY2sKCSAgZWxlbWVudF9zZXRfc3RhdGUncyByZXR1cm4gdmFsLgoJICAodGVzdF8yX2VsZW1lbnRzKTogQWRkIHRlc3QgdGhhdCdzIGJlZW4gZGlzYWJsZWQgZm9yIG1vbnRocy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogQ2xlYW51cHMuIEFkZCBjYW4tYWN0aXZhdGUtcHVzaCBhbmQKCSAgY2FuLWFjdGl2YXRlLXB1bGwgcHJvcGVydGllcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBDbGVhbnVwcy4gQWRkIGNhbi1hY3RpdmF0ZS1wdXNoIGFuZAoJICBjYW4tYWN0aXZhdGUtcHVsbCBwcm9wZXJ0aWVzLiBJbXBsZW1lbnQgaXNfc2Vla2FibGUgc28gZmFrZXNyYyBjYW4KCSAgb3BlcmF0ZSBpbiBwdWxsIG1vZGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoR3N0QmFzZVNpbmspOiBSZW1vdmUgaGFzLWxvb3AsIGhhcy1jaGFpbgoJICBwcm9wZXJ0aWVzLgoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZSwgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKQoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKTogTWFrZSBhY3RpdmF0aW9uIG1vZGUgY2hvb3Npbmcgd29yay4KCSAgQ2xlYW51cHMuCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluLCBnc3RfYmFzZV9zaW5rX2xvb3ApOiBBc3NlcnQgYWN0aXZhdGlvbiBtb2RlCgkgIGlzIHJpZ2h0LiBNYWtlIHB1bGwgbW9kZSB3b3JrLiBQb3N0IGFuIGVvcyBiZWZvcmUgcGF1c2luZyBpbiBwdWxsCgkgIG1vZGUuCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IFBheSBhdHRlbnRpb24gdG8gdGhlIGNvcmUncwoJICBjaGFuZ2Vfc3RhdGUoKSByZXR1cm4gdmFsLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoR3N0QmFzZVNyYyk6IFJlbW92ZSBoYXMtbG9vcCwKCSAgaGFzLWdldHJhbmdlIHByb3BlcnRpZXMuIENsZWFudXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaCAoR3N0QmFzZVNyYyk6IFJlbW92ZSBoYXNfbG9vcCwKCSAgaGFzX2dldHJhbmdlIGFuZCByZXBsYWNlIHdpdGggY2FuX2FjdGl2YXRlX3B1bGwgYW5kCgkgIGNhbl9hY3RpdmF0ZV9wdXNoLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmggKEdzdEJhc2VTaW5rKTogUmVhcnJhbmdlIGZpZWxkcywgYWRkCgkgIGxvY2tpbmcgY29tbWVudHMuIFJlbW92ZSBoYXNfbG9vcCwgaGFzX2NoYWluIGFuZCByZXBsYWNlIHdpdGgKCSAgY2FuX2FjdGl2YXRlX3B1bGwgYW5kIGNhbl9hY3RpdmF0ZV9wdXNoLgoKMjAwNS0wOC0yNiAxMzoyODowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBZGQgbWV0YWRhdGEgcmVhZGluZyBleGFtcGxlIHRoYXQgbG9vcHMgb3ZlciBhIGxpc3Qgb2YgZmlsZW5hbWVzLCBkdW1waW5nIGFueSB0YWdzIGZvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKSwKCSAgKGhhdmVfcGFkX2hhbmRsZXIpLCAobWFrZV9waXBlbGluZSksIChwcmludF90YWcpLCAobWFpbik6CgkgIEFkZCBtZXRhZGF0YSByZWFkaW5nIGV4YW1wbGUgdGhhdCBsb29wcyBvdmVyIGEgbGlzdCBvZiBmaWxlbmFtZXMsCgkgIGR1bXBpbmcgYW55IHRhZ3MgZm91bmQuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19kaXNwb3NlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFJlbGVhc2UgYSBmZXcgcG90ZW50aWFsbHktaGVsZCByZWZlcmVuY2VzIGluIGRpc3Bvc2UuCgoyMDA1LTA4LTI2IDEzOjIxOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDogZG8gKm5vdCogYWRkIHRtcGwvKi5zZ21sIGZpbGVzIHRvIENWUyEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkgIGRvICpub3QqIGFkZCB0bXBsLyouc2dtbCBmaWxlcyB0byBDVlMhCgoyMDA1LTA4LTI2IDEzOjE3OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9ieXRlc3RyZWFtLzogcmVtb3Zpbmcgb2Jzb2xldGUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS8uY3ZzaWdub3JlOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9hZGFwdGVyLmM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9hZGFwdGVyLmg6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmg6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9maWxlcGFkLmM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9maWxlcGFkLmg6CgkgIHJlbW92aW5nIG9ic29sZXRlIGZpbGVzCgoyMDA1LTA4LTI2IDEyOjQ4OjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogZGlzYWJlZCBhZGRpdGlvbmFsIGluZGV4IGVudHJpZXMgYWdhaW4sIGFzIHRoaXMgbWFrZXMgZG9jcy1nZW4ganVzdCBzbG93IGFuZCB0aGV5IGFyZW4ndCB1c2VmdWwgeWV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZGlzYWJlZCBhZGRpdGlvbmFsIGluZGV4IGVudHJpZXMgYWdhaW4sIGFzIHRoaXMgbWFrZXMgZG9jcy1nZW4ganVzdAoJICBzbG93IGFuZCB0aGV5IGFyZW4ndCB1c2VmdWwgeWV0CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgbGl0dGxlIC1zZWN0aW9uLnR4dCBjbGVhbnVwIGZvciBsaWJzCgoyMDA1LTA4LTI2IDExOjU2OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlLzogZml4IHVwIHNvbWUgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIGZpeCB1cCBzb21lIGRlYnVnZ2luZwoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgaGFuZGxlIGFuZCBzdG9yZSB0aW1lZCBORVdTRUdNRU5UIGV2ZW50cyBzbyB0aGF0IHN1YmNsYXNzZXMgdGhhdAoJICBjYWxjdWxhdGUgdGltZSBieSBjb3VudGluZyBzYW1wbGVzIGhhdmUgYSBzZWdtZW50X3N0YXJ0IHRpbWUgdGhleQoJICBuZWVkIHRvIGFkZCB0byB0aGVpciB0aW1lc3RhbXBzIC0gc2VlIGF1ZGlvcmVzYW1wbGUKCjIwMDUtMDgtMjYgMTE6MTk6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgd2hpdGVzcGFjZSwgZG9jIGFuZCBkZWJ1ZyBmaXhpbmcvYWRkaXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlLCBkb2MgYW5kIGRlYnVnIGZpeGluZy9hZGRpdGlvbnMKCjIwMDUtMDgtMjUgMjM6MTc6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RiaW4uaDogcmVtb3ZlZCAnOycgZnJvbSB0aGUgZW5kIG9mIG1hY3JvIGRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICByZW1vdmVkICc7JyBmcm9tIHRoZSBlbmQgb2YgbWFjcm8gZGVmcwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChhY3RpdmF0ZV9wYWRzKSwKCSAgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cHJvYmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcXVlcnlfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGZpeGVkIHBhcmFtZXRlciBuYW1lIG1pc21hdGNoZXMgYmV0d2VlbiBzb3VyY2UsIGhlYWRlciBhbmQgZG9jcwoJICBhZGRlZCBzb21lIG1vcmUgZG9jcywgcmVzb2x2ZWQgdGhlIGxhc3QgYmF0Y2ggb2YgdW51c2VkIGVsZW1lbnRzIGluCgkgIGRvY3MgKG5vdyBzb21lb25lIG5lZWRzIHRvIGRvYyB0aGVtKQoKMjAwNS0wOC0yNSAyMDo1MjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgIHJlc3BlY3Qgb3JkZXIgb2YgcGx1Z2luIGRpcnMgd2hlbiBsb2FkaW5nIHBsbHVnaW5zIGFuZCByZWJ1aWxkaW5nIHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXNwZWN0IG9yZGVyIG9mIHBsdWdpbiBkaXJzIHdoZW4gbG9hZGluZyBwbGx1Z2lucyBhbmQgcmVidWlsZGluZyByZWdpc3RyeQoKMjAwNS0wOC0yNSAxOTozNjowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogQ2FjaGUgY2FwcyB1bml0X3NpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENhY2hlIGNhcHMgdW5pdF9zaXplLgoJICBNYWtlIHN1cmUgd2UgY2Fubm90IG5lZ290aWF0ZSB1cCBhbmQgZG93bnN0cmVhbSBhdCB0aGUKCSAgc2FtZSB0aW1lLgoKMjAwNS0wOC0yNSAxODo1NTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgbWFrZSByZWdpc3RyeSByZXNwZWN0IG9yZGVyIG9mIEdTVF9QTFVHSU5fUEFUSDsgbWFrZSB0aGUgaW5zdGFsbGVkIGxvY2F0aW9uIGdvIGxhc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgcmVnaXN0cnkgcmVzcGVjdCBvcmRlciBvZiBHU1RfUExVR0lOX1BBVEg7IG1ha2UgdGhlIGluc3RhbGxlZCBsb2NhdGlvbiBnbyBsYXN0CgoyMDA1LTA4LTI1IDE4OjU0OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBhZGQgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRvY3MKCjIwMDUtMDgtMjUgMTY6Mjc6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYSB1aW50NjQgY2hlY2tpbmcgbWV0aG9kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSB1aW50NjQgY2hlY2tpbmcgbWV0aG9kCgoyMDA1LTA4LTI1IDEzOjUyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBCZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSBhYm91dCB0aGUgcG9zdGVkIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIEJlIGEgYml0IG1vcmUgY29uc2VydmF0aXZlIGFib3V0IHRoZSBwb3N0ZWQgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICBTb21lIGNsZWFudXBzLCB3YXJuIHdyb25nIHJldHVybiB2YWx1ZXMuCgoyMDA1LTA4LTI1IDEwOjUxOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJldmVydCB1bnBvcHVsYXIgY2hhbmdlIGZvciBHU1RfTUVTU0FHRV9TUkMgdG8gR09iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwgKF9nc3RfbWVzc2FnZV9jb3B5KSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZW9zKSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6IChldmVudF9sb29wKToKCSAgUmV2ZXJ0IHVucG9wdWxhciBjaGFuZ2UgZm9yIEdTVF9NRVNTQUdFX1NSQyB0byBHT2JqZWN0LgoKMjAwNS0wOC0yNSAxMDozNTo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGZpeCBkb2NzIGJ5IGZpeGluZyBlbnVtIHR5cGVkZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzIGJ5IGZpeGluZyBlbnVtIHR5cGVkZWYKCjIwMDUtMDgtMjUgMTA6MTY6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB3aW0gZml4ZWQgdGhlIHRhc2ssIHlheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2ltIGZpeGVkIHRoZSB0YXNrLCB5YXkKCjIwMDUtMDgtMjUgMTA6MDE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiBDbGVhbnVwIGNhbiBiZSBkb25lIGF0IHRoZSBlbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENsZWFudXAgY2FuIGJlIGRvbmUgYXQgdGhlIGVuZC4KCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZ2V0X3R5cGUpLCAoZ3N0X3Rhc2tfZmluYWxpemUpLAoJICAoZ3N0X3Rhc2tfZnVuYyksIChnc3RfdGFza19jbGVhbnVwX2FsbCksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19nZXRfc3RhdGUpLCAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpOgoJICBPaCBib3kuLiBUaGFua3MgZm9yIGZpbmRpbmcgdGhpcywgVGhvbWFzLgoKMjAwNS0wOC0yNCAyMjowMTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBncm1wZiwgYW5vdGhlciB0cnkgdG8gZml4IGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBncm1wZiwgYW5vdGhlciB0cnkgdG8gZml4IGl0CgoyMDA1LTA4LTI0IDIxOjU3OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGFub3RoZXIgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGZpeAoKMjAwNS0wOC0yNCAyMTo0NToxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBhZGRlZCBtaXNzaW5nIHR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgYWRkZWQgbWlzc2luZyB0eXBlcwoKMjAwNS0wOC0yNCAyMTozNTo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgbWlpc3NpbmcgY2xhc3NlcyBhbmQgc3ltYm9scyAoMTIzIG1vcmUgdG8gZ28pIHJlbW92ZWQgcmVtb3ZlZCBzeW1ib2xzIGZyb20gc2VjdGlvbiBmaWxlIGZpeGVkIG1hbnkgZG9jLWNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgIGFkZGVkIG1paXNzaW5nIGNsYXNzZXMgYW5kIHN5bWJvbHMgKDEyMyBtb3JlIHRvIGdvKQoJICByZW1vdmVkIHJlbW92ZWQgc3ltYm9scyBmcm9tIHNlY3Rpb24gZmlsZQoJICBmaXhlZCBtYW55IGRvYy1jb21tZW50cwoKMjAwNS0wOC0yNCAyMDo0OTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IE1ha2Ugc3VyZSBhbGwgdGFza3MgYXJlIHN0b3BwZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2Ugc3VyZSBhbGwgdGFza3MgYXJlIHN0b3BwZWQuCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbnJlZiBhZnRlciB1c2FnZSBmb3IgcHJvcGVyIHZhbGdyaW5kaW5nLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZmluYWxpemUpLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICBSZWFsbHkgd2FpdCBmb3IgdGhlIHRhc2sgdG8gc3RvcCBiZWZvcmUgZGVzdHJveWluZyB0aGUKCSAgbXV0ZXguCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIFNtYWxsIGNsZWFudXBzLiBEb24ndCBzdG9wIHRoZSB0YXNrIHdoZW4gd2UgZGlkIG5vdCBzdGFydAoJICBpdC4KCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZ2V0X3R5cGUpLCAoZ3N0X3Rhc2tfaW5pdCksCgkgIChnc3RfdGFza19mdW5jKSwgKGdzdF90YXNrX2NsZWFudXBfYWxsKSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSksCgkgIChnc3RfdGFza19qb2luKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBQcm90ZWN0IHRoZSBzdHJlYW0gbG9jayB3aXRoIHRoZSBvYmplY3QgbG9jay4KCSAgRGlzYWxsb3cgc2V0dGluZyB0aGUgc3RyZWFtIGxvY2sgd2hlbiBydW5uaW5nLgoJICBBZGQgY2xlYW51cF9hbGwgdG8gd2FpdCBmb3IgdGhlIHRocmVhZHBvb2wgdG8gZmluaXNoLgoJICBSZW1vdmUgY29kZSB0byBhdXRvYWxsb2NhdGUgYSBtdXRleCBpZiBub25lIHdhcyBwcm92aWRlZC4KCSAgQWRkIF9qb2luKCkgdG8gd2FpdCBmb3IgYSB0YXNrIHRvIHN0b3AuCgkgIFByb3RlY3QgdGhlIHRocmVhZCBwb29sIHdpdGggYSBnbG9iYWwgbG9jay4KCjIwMDUtMDgtMjQgMTc6NTc6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBIYW5kbGUgbmV3c2VnbWVudCBldmVudHMgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3RpbWVzKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEhhbmRsZSBuZXdzZWdtZW50IGV2ZW50cyBjb3JyZWN0bHkuCgkgIERyb3AgYnVmZmVycyBvdXQgb2YgdGhlIHNlZ21lbnQgcmFuZ2UuCgoyMDA1LTA4LTI0IDE3OjI0OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB0ZXN0IHdoaWxlIHdpbSBpcyBmaXhpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgdGVzdCB3aGlsZSB3aW0gaXMgZml4aW5nCgoyMDA1LTA4LTI0IDE2OjQ2OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGFkZCBwbHVnaW5zZGlyIHRvIHBrZ2NvbmZpZyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHBsdWdpbnNkaXIgdG8gcGtnY29uZmlnIGZpbGVzCgoyMDA1LTA4LTI0IDE2OjQxOjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTA4LTI0IDE2OjA5OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogYWRkIGEgdGVzdCB0aGF0IGRvZXMgYSBidW5jaCBvZiBzdGF0ZSBjaGFuZ2VzIG9uIGVsZW1lbnRzIG5lZWRzIHNvbWUgZml4aW5nIGZvciB2YWxncmluZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoc3RhdGVzX3N1aXRlKSwgKG1haW4pOgoJICBhZGQgYSB0ZXN0IHRoYXQgZG9lcyBhIGJ1bmNoIG9mIHN0YXRlIGNoYW5nZXMgb24gZWxlbWVudHMKCSAgbmVlZHMgc29tZSBmaXhpbmcgZm9yIHZhbGdyaW5kCgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgd2hpdGVzcGFjZQoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIGFkZCBwcm90b3R5cGUgZm9yIGdzdF9jYXBzX2lzX2VxdWFsX2ZpeGVkCgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuYzoKCSAgZG9jIGZpeGVzCgoyMDA1LTA4LTI0IDE1OjQ5OjAzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYyAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KTogU3BldyBpZiB3ZSB0cnkgdG8gY29udmVydCBhIG5lZ2F0aXZlIHZhbHVlLiBEb2Vzbid0IG1ha2UgbXVjaCBzZW5zZS4gTW9zdGx5IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHF1ZXJ5LmMgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6IFNwZXcgaWYgd2UgdHJ5IHRvCgkgIGNvbnZlcnQgYSBuZWdhdGl2ZSB2YWx1ZS4gRG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UuIE1vc3RseSB0aGlzIGlzCgkgIGhlcmUgdG8gZm9yY2UgY2FsbGVycyB0byBlbnN1cmUgLTEgbWFwcyB0byAtMS4KCjIwMDUtMDgtMjQgMTU6MTA6NDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBXZWxsIGRvbmUgdG8gTWljaGFlbCBmb3IgY2F0Y2hpbmcgbXkgZGVsaWJlcmF0ZSBpbnRyb2R1Y3Rpb24gb2YgdGhpcyBzcGVsbGluZyBtaXN0YWtlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIFdlbGwgZG9uZSB0byBNaWNoYWVsIGZvciBjYXRjaGluZyBteSBkZWxpYmVyYXRlIGludHJvZHVjdGlvbgoJICBvZiB0aGlzIHNwZWxsaW5nIG1pc3Rha2UuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEFkZCBHU1RfRUxFTUVOVF9VTlBBUkVOVElORyB0byBwcmV2ZW50IHJhY2VzIHNvIHRoYXQgd2UgY2FuCgkgIHVubGluayBwYWRzIGJlZm9yZSByZW1vdmluZyB0aGUgZWxlbWVudCBmcm9tIHRoZSBiaW4uCgoyMDA1LTA4LTI0IDEzOjQ5OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0LmMgKHBhcnNlX2RlYnVnX2xpc3QpOiBBY2NlcHQgZS5nLiBHU1RfREVCVUc9NCB0byBtZWFuIHRoZSBzYW1lIHRoaW5nIGFzIEdTVF9ERUJVRz0qOjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuYyAocGFyc2VfZGVidWdfbGlzdCk6IEFjY2VwdCBlLmcuIEdTVF9ERUJVRz00IHRvIG1lYW4KCSAgdGhlIHNhbWUgdGhpbmcgYXMgR1NUX0RFQlVHPSo6NC4KCSAgKHBhcnNlX2RlYnVnX2xldmVsLCBwYXJzZV9kZWJ1Z19jYXRlZ29yeSk6IE5ldyBoZWxwZXIgcGFyc2Vycy4KCjIwMDUtMDgtMjQgMTM6MzM6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiB1c2UgZ2Jvb2xlYW4gcmV0dXJuIHZhbHVlcyBhbmQgcG9pbnRlcnMgdG8gc2l6ZSBzbyB3ZSBjYW4gdXNlIHRoZSBmdWxsIEdTVF9CVUZGRVJfU0laRSByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIHVzZSBnYm9vbGVhbiByZXR1cm4gdmFsdWVzIGFuZCBwb2ludGVycyB0byBzaXplIHNvIHdlIGNhbiB1c2UgdGhlCgkgIGZ1bGwgR1NUX0JVRkZFUl9TSVpFIHJhbmdlIChndWludCkgZm9yIGJ1ZmZlciBzaXplcwoJICB1c2UgR3N0UGFkRGlyZWN0aW9uIGZvciB0cmFuc2Zvcm1fY2FwcwoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgcmVuYW1lIGdldF9zaXplIHRvIGdldF91bml0X3NpemUgc2luY2UgdGhhdCdzIHdoYXQgaXQgaXMKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2NhcHMpOgoJICB1c2UgR3N0UGFkRGlyZWN0aW9uIGZvciB0cmFuc2Zvcm1fY2FwcwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGNsZWFudXAgYW5kIGRlYnVnZ2luZwoKMjAwNS0wOC0yNCAxMzowNDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4ZWQgbG9uZyBzdGFuZGluZyBtZW0tbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoYWN0aXZhdGVfcGFkcyksCgkgIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzKToKCSAgRml4ZWQgbG9uZyBzdGFuZGluZyBtZW0tbGVhawoKMjAwNS0wOC0yNCAxMTo1NDozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBDaGFuZ2UgR1NUX01FU1NBR0VfU1JDIHRvIGJlIGEgR09iamVjdCByYXRoZXIgdGhhbiBhIEdzdE9iamVjdCwgc28gdGhhdCBhcHBsaWNhdGlvbnMgY2FuIHNlbnNpYmx5IHBvc3QgY3VzdG9tIG1lc3NhZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwgKF9nc3RfbWVzc2FnZV9jb3B5KSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZW9zKSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6IChldmVudF9sb29wKToKCSAgQ2hhbmdlIEdTVF9NRVNTQUdFX1NSQyB0byBiZSBhIEdPYmplY3QgcmF0aGVyIHRoYW4gYSBHc3RPYmplY3QsIHNvCgkgIHRoYXQgYXBwbGljYXRpb25zIGNhbiBzZW5zaWJseSBwb3N0IGN1c3RvbSBtZXNzYWdlcyB3aXRoIHJlZmVyZW5jZXMKCSAgdG8gdGhlaXIgb3duIG9iamVjdHMuCgoyMDA1LTA4LTI0IDExOjQ0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBNYW55IGZpeGVzIGFuZCBuZXcgZmVhdHVyZXMgYWRkZWQgYnkgVGhvbWFzLiBDYW4gbm93IGFsc28gZG8gdHJhbnNmb3JtcyB3aXRoIHZhcmlhYmxlIHNpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1hbnkgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcyBhZGRlZCBieSBUaG9tYXMuIENhbiBub3cgYWxzbyBkbwoJICB0cmFuc2Zvcm1zIHdpdGggdmFyaWFibGUgc2l6ZXMgYW5kIGEgY3VzdG9tIGZpeGF0ZV9jYXBzIGZ1bmN0aW9uLgoKMjAwNS0wOC0yNCAxMTozNjo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKTogQ2hlY2sgaWYgdGhlIGNhcHMgaXMgZml4ZWQgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKTogQ2hlY2sgaWYgdGhlIGNhcHMgaXMgZml4ZWQKCSAgYWxyZWFkeS4KCjIwMDUtMDgtMjQgMTE6MjI6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpOgoJICBTb21lIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQ2FzdCB0byBDbG9ja1RpbWUgYmVmb3JlIGZvcm1hdHRpbmcgdG8gdGltZS4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQ2xlYW51cHMuCgoyMDA1LTA4LTIzIDIxOjMyOjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBncmFjZWZ1bGx5IGhhbmRsZSBoZWxwZXIgbWV0aG9kIGNhbGxzIHRvIG9iamVjdHMgdGhhdCBhcmUgbm90IGJlZWluZyBjb250cm9sbGVkLCBhZGRlZCB0ZXN0IGNhc2UgZm9yIHRoYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOiAoZ3N0X29iamVjdF9zZXRfY29udHJvbGxlciksCgkgIChnc3Rfb2JqZWN0X3NpbmtfdmFsdWVzKSwgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5cyksCgkgIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheSk6CgkgIGdyYWNlZnVsbHkgaGFuZGxlIGhlbHBlciBtZXRob2QgY2FsbHMgdG8gb2JqZWN0cyB0aGF0IGFyZSBub3QgYmVlaW5nCgkgIGNvbnRyb2xsZWQsIGFkZGVkIHRlc3QgY2FzZSBmb3IgdGhhdAoKMjAwNS0wOC0yMyAxODoxNzowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBTb21lIG1vcmUgZGVidWdnaW5nIG91dHB1dCBhbmQgZG9jIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfY29weSksIChnc3RfZXZlbnRfbmV3X2N1c3RvbSksCgkgIChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLCAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X25ld190YWcpLCAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9uZXdfc2VlayksCgkgIChnc3RfZXZlbnRfcGFyc2Vfc2Vlayk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0IGFuZCBkb2MgY2xlYW51cHMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBGaXggcG9zc2libGUgZGVhZGxvY2suCgoyMDA1LTA4LTIzIDE0OjI1OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBhYm91dCAxMDAgc3ltYm9scyBmcm9tIGdzdHJlYW1lci11bnVzZWQudHh0IHRvIHRoZSByaWdodCBzZWN0aW9ucyBmaXhlZCBtb3JlIGJyb2tlbiBjb21tZW50cyBhZGRlZCBHc3RCdXMgdG8gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGFkZGVkIGFib3V0IDEwMCBzeW1ib2xzIGZyb20gZ3N0cmVhbWVyLXVudXNlZC50eHQgdG8gdGhlIHJpZ2h0IHNlY3Rpb25zCgkgIGZpeGVkIG1vcmUgYnJva2VuIGNvbW1lbnRzCgkgIGFkZGVkIEdzdEJ1cyB0byBkb2NzCgoyMDA1LTA4LTIzIDExOjUzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIG1vcmUgZG9jIGNvbW1lbnRzLCBhZGRlZCBtaXNzaW5nIGNvbW1lbnRzIGFuZCBmaXhlZCBjb21tZW50cyBmaXhlZCB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgaW5saW5lZCBtb3JlIGRvYyBjb21tZW50cywgYWRkZWQgbWlzc2luZyBjb21tZW50cyBhbmQgZml4ZWQgY29tbWVudHMKCSAgZml4ZWQgdHlwb3MKCjIwMDUtMDgtMjMgMTE6Mzg6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBzb21lIGRlYnVnZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpOgoJICBzb21lIGRlYnVnZ2luZwoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOgoJICBtb3JlIGRlYnVnZ2luZwoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9maXhhdGVfZmllbGRfYm9vbGVhbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBhZGQgYSBmaXhhdGUgZnVuY3Rpb24gZm9yIGJvb2xlYW5zOyBhZGQgYSBGSVhNRSB0aGF0IHRoZXNlIGZ1bmMKCSAgbmFtZXMgc2hvdWxkIHByb2JhYmx5IGJlIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyoKCjIwMDUtMDgtMjIgMjE6MDM6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBvcnRlZCBnc3RjaGlsZHByb3h5IG92ZXIgZnJvbSAwLjggcG9ydGVkIGdzdC1pbnNwZWN0IGZpeGVzIGFuZCBlbmhhbmNlbWVudHMgb3ZlciBmcm9tIDAuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9pbml0KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9uYW1lKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCksIChnc3RfY2hpbGRfcHJveHlfbG9va3VwKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfcHJvcGVydHkpLCAoZ3N0X2NoaWxkX3Byb3h5X2dldF92YWxpc3QpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldCksIChnc3RfY2hpbGRfcHJveHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfdmFsaXN0KSwgKGdzdF9jaGlsZF9wcm94eV9zZXQpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2NoaWxkX2FkZGVkKSwgKGdzdF9jaGlsZF9wcm94eV9jaGlsZF9yZW1vdmVkKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9iYXNlX2luaXQpLCAoZ3N0X2NoaWxkX3Byb3h5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgcG9ydGVkIGdzdGNoaWxkcHJveHkgb3ZlciBmcm9tIDAuOAoJICBwb3J0ZWQgZ3N0LWluc3BlY3QgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvdmVyIGZyb20gMC44CgoyMDA1LTA4LTIyIDE5OjQ4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBbHNvIGNhbGwgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiBpZiB3ZSBoYXZlIEFOWSBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBBbHNvIGNhbGwgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiBpZiB3ZSBoYXZlIEFOWSBjYXBzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICBGaXggZGVidWcgaW5mby4KCjIwMDUtMDgtMjIgMTk6MjI6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKQoJICBEb24ndCBwcmV0ZW5kIHRvIGhhbmRsZSBzZWVrIGV2ZW50cyBpZiB0aGUgc291cmNlIGlzIG5vdCBzZWVrYWJsZQoKMjAwNS0wOC0yMiAxODo0ODo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZW1vdmUgZXh0cmEgcGFyYW1ldGVyIHRvIGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgUmVtb3ZlIGV4dHJhIHBhcmFtZXRlciB0byBkZWJ1ZyBvdXRwdXQKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgRml4IHNlZWsgZXZlbnQgaGFuZGxpbmcuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBEb24ndCBzdGFydCB0aGUgc3JjIHBhZCB0YXNrIG9uIEZMVVNIX1NUT1AgaWYgdGhlIHBhZAoJICBpc24ndCBsaW5rZWQuCgkgIERlYnVnIGNoYW5nZXMuCgoyMDA1LTA4LTIyIDE1OjEyOjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFKTogTmV3IGdoZXR0byBtYWNybywgaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgYW5kIGdzdGltcGxlbWVudHNpbnRlcmZhY2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRSk6IE5ldyBnaGV0dG8KCSAgbWFjcm8sIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIGFuZCBnc3RpbXBsZW1lbnRzaW50ZXJmYWNlIGZvciBhCgkgIG5ldyB0eXBlLgoKMjAwNS0wOC0yMiAxNTowODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IEFkZGVkIGNoZWNrIGZvciBnc3Rfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBnc3Rfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcuCgoyMDA1LTA4LTIyIDE0OjM1OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogTWFrZSBfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcgc2FuZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpLCAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgTWFrZSBfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcgc2FuZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgQWRkIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgdG8gcHJvdGVjdCBhZ2FpbnN0IHNlZ2ZhdWx0cy4KCjIwMDUtMDgtMjIgMTA6Mzc6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgcmVtYWluaW5nIGRvY3MsIGFkZGVkIG1pc3NpbmcgZG9jIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgaW5saW5lZCByZW1haW5pbmcgZG9jcywgYWRkZWQgbWlzc2luZyBkb2MgY29tbWVudHMKCjIwMDUtMDgtMjIgMDk6MjU6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBzaW5jZSB3ZSBkb24ndCBrbm93IHdoZW4gcHJlcm9sbCBpcyBkb25lLCB1c2UgcmVmY291bnQgcmFuZ2UgY2hlY2sgZm9yIHRoZSBzaW5rCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGVuIHByZXJvbGwgaXMgZG9uZSwgdXNlIHJlZmNvdW50IHJhbmdlCgkgIGNoZWNrIGZvciB0aGUgc2luawoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgbWFjcm8gZm9yIGNoZWNraW5nIHJlZmNvdW50IHJhbmdlCgoyMDA1LTA4LTIxIDE2OjUzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBmaWd1cmUgdGhpcyBvdXQgZm9yIEhUIG1hY2hpbmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWd1cmUgdGhpcyBvdXQgZm9yIEhUIG1hY2hpbmVzCgoyMDA1LTA4LTIxIDE1OjIxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBzb21lIGZ1bmt5IEhUL211bHRpY3B1IHZzIHNpbmdsZSBkaWZmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIGZ1bmt5IEhUL211bHRpY3B1IHZzIHNpbmdsZSBkaWZmZXJlbmNlCgoyMDA1LTA4LTIxIDE1OjAxOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBjbGVhbiB1cCBlbnZpcm9ubWVudCBmb3Igd2hlbiByZWdpc3RyeSBnZXRzIGJ1aWx0IHZlcnN1cyB3aGVuIGFjdHVhbCB0ZXN0cyBhcmUgcnVuOyB2YWxncmluZCBzZWVtcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgY2xlYW4gdXAgZW52aXJvbm1lbnQgZm9yIHdoZW4gcmVnaXN0cnkgZ2V0cyBidWlsdCB2ZXJzdXMKCSAgd2hlbiBhY3R1YWwgdGVzdHMgYXJlIHJ1bjsgdmFsZ3JpbmQgc2VlbXMgdG8gbm90IHJlcG9ydAoJICBsZWFrcyBpZiBHU1RfUExVR0lOX1BBVEggaXMgc2V0IHRvIHNvbWUgc3BlY2lmaWMgdmFsdWVzCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgbW9yZSByZWZjb3VudGluZyBjaGVja3M7IG1heWJlIHRoaXMgZXhwb3NlcyBhCgkgIHByZXJvbGwgbG9jayBidWcgPwoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc2VtaV9zaW5rKSwgKGdzdF9iaW5fZ2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9jaGFpbik6CgkgIGFkZC9maXggZGVidWdnaW5nL3doaXRlc3BhY2UKCjIwMDUtMDgtMjEgMTE6NDA6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEVyLCBkb24ndCBjYWxsIGdzdF9iaW5fd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSB5b3UgaWRpb3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpLCAodGVzdF9ldmVudCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEVyLCBkb24ndCBjYWxsIGdzdF9iaW5fd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSB5b3UgaWRpb3QuCgoyMDA1LTA4LTIxIDExOjE1OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBydW4gdmFsZ3JpbmQgd2l0aCBwcm9wZXIgZW52CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBydW4gdmFsZ3JpbmQgd2l0aCBwcm9wZXIgZW52CgoyMDA1LTA4LTIxIDEwOjU0OjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBVc2UgQ0hFQ0tfQ0ZMQUdTIGFuZCBDSEVDS19MSUJTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBVc2UgQ0hFQ0tfQ0ZMQUdTIGFuZCBDSEVDS19MSUJTCgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSksICh0ZXN0X2V2ZW50KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgbGVhayBldmVudHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFNwcmlua2xlIGdzdF9iYXNlX3NyY19zdG9wIGxpYmVyYWxseSBhcm91bmQgZXJyb3IgcGF0aHMgdG8gZml4CgkgIHByb2JsZW1zIHJldXNpbmcgYSBzb3VyY2UgYWZ0ZXIgZmFpbGVkIHN0YXRlIGNoYW5nZXMuCgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIEV4dHJhIGRlYnVnIG91dHB1dC4gRG9uJ3Qgc2VnZmF1bHQgb24gR1NUX1BBRF9HRVRSQU5HRUZVTkMgPSBOVUxMCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJICBNaWdyYXRlIHBhcnQgb2YgdGhlIGRvY3MgZnJvbSB0aGUgU0dNTCBmaWxlLiBXYWl0IGZvciBlbnNvbmljIHRvCgkgIHRlbGwgbWUgaG93IEkgZGlkIGl0IHdyb25nIDspCgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgRXh0cmEgcm9idXN0bmVzcyB0byBzdGF0ZSBjaGFuZ2VzIGJldHdlZW4gZmlsZXMuCgoyMDA1LTA4LTIxIDEwOjM5OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBkb24ndCB2YWxncmluZCB0aGUgY29udHJvbGxlciB0ZXN0IC0gaXQncyBsZWFraW5nIC0gU3RlZmFuLCBIRUxQCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCB2YWxncmluZCB0aGUgY29udHJvbGxlciB0ZXN0IC0gaXQncyBsZWFraW5nIC0gU3RlZmFuLCBIRUxQCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbWVzc2FnZV9lcnJvciksCgkgIChnc3RfY2hlY2tfY2hhaW5fZnVuYyksIChnc3RfY2hlY2tfc2V0dXBfZWxlbWVudCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fZWxlbWVudCksIChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKToKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGEgYnVuY2ggb2YgbWV0aG9kcyB0byBzZXQgdXAgZWxlbWVudHMsIGFuZCBzcmMgYW5kIHNpbmsgcGFkcwoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKHNldHVwX2Zha2VzcmMpLCAoY2xlYW51cF9mYWtlc3JjKToKCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoc2V0dXBfaWRlbnRpdHkpLCAoY2xlYW51cF9pZGVudGl0eSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIHVzZSB0aGVtCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgIHdoaXRlc3BhY2UvZG9jIGZpeGVzCgoyMDA1LTA4LTIwIDIwOjMwOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgbWFrZSBHU1RfRUxFTUVOVF9FUlJPUiBub3QgZG8gR1NUX0VSUk9SX09CSkVDVCAtIHRoZXNlIGVycm9ycyBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgYXBwbGljYXRpb24gYW5kIG5vdCBhbHdheXMgcHJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIEdTVF9FTEVNRU5UX0VSUk9SIG5vdCBkbyBHU1RfRVJST1JfT0JKRUNUIC0gdGhlc2UgZXJyb3JzIHNob3VsZAoJICBiZSBoYW5kbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBhbmQgbm90IGFsd2F5cyBwcmludGVkIGFzIHdlbGwKCjIwMDUtMDgtMjAgMjA6MTU6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IHNldCBHU1RfVE9PTFNfRElSCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBzZXQgR1NUX1RPT0xTX0RJUgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX21lc3NhZ2VfZXJyb3IpOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYSBmYWlsX3VubGVzc19lcXVhbHNfaW50CgkgIGFkZCBmYWlsX3VubGVzcyBmb3IgZXJyb3IgbWVzc2FnZXMKCjIwMDUtMDgtMjAgMTQ6MDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LnN1cHA6CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBmYWN0b3Igb3V0IHRoZSBjb21tb24gc3R1ZmYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZhY3RvciBvdXQgdGhlIGNvbW1vbiBzdHVmZgoKMjAwNS0wOC0yMCAxMzoxNzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHdvcmsgb24gYnVpbGRzIHdpdGhvdXQgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmsgb24gYnVpbGRzIHdpdGhvdXQgY2hlY2sKCjIwMDUtMDgtMjAgMTI6NDc6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICByZW5hbWVkIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbmFtZWQgdGVzdAoKMjAwNS0wOC0yMCAxMjo0MzoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgcHV0IHNvbWUgbWFrZS11cCBvbiB0aGUgZ3N0ZXZlbnQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHV0IHNvbWUgbWFrZS11cCBvbiB0aGUgZ3N0ZXZlbnQgdGVzdAoKMjAwNS0wOC0yMCAxMjozOTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHZhbGdyaW5kIG1vcmUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhbGdyaW5kIG1vcmUgdGVzdHMKCjIwMDUtMDgtMjAgMTI6MTQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgbW92ZSBjaGVjayBzdHVmZiB0byBpdHMgb3duIGxpYnJhcnkgdG8gYmUgdXNlZCBieSBvdGhlciBtb2R1bGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGNoZWNrIHN0dWZmIHRvIGl0cyBvd24gbGlicmFyeSB0byBiZSB1c2VkIGJ5IG90aGVyIG1vZHVsZXMKCjIwMDUtMDgtMTkgMDk6NTg6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGVsaW1pbmF0ZSBhbm90aGVyIHRtcGwgZmlsZSwgZml4IHNwZWxsaW5nIGluIHRoZSBsb25nLWRlc2NyaXB0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkgICogZ3N0L2dzdC5jOgoJICBlbGltaW5hdGUgYW5vdGhlciB0bXBsIGZpbGUsIGZpeCBzcGVsbGluZyBpbiB0aGUgbG9uZy1kZXNjcmlwdGlvbgoKMjAwNS0wOC0xOCAxNjo0Mjo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IFNob3VsZCBmaXggYnVpbGQgb24gNjQtYml0IGFyY2gncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIFNob3VsZCBmaXggYnVpbGQgb24gNjQtYml0IGFyY2gncwoKMjAwNS0wOC0xOCAxNjoyMDoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgTWFrZSBzdXJlIHRoYXQgd2hlbiBhIHBpcGVsaW5lIGdvZXMgdG8gUExBWUlORywgdGhhdCBkYXRhIGhhcyBhY3R1YWxseSBoaXQgdGhlIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIGEgcGlwZWxpbmUgZ29lcyB0byBQTEFZSU5HLCB0aGF0IGRhdGEgaGFzCgkgIGFjdHVhbGx5IGhpdCB0aGUgc2luay4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zaW5rKTogQSBzaW5rIHRoYXQgZG9lc24ndCBnZXQgYW55CgkgIGRhdGEgc2hvdWxkbid0IHJldHVybiBTVUNDRVNTIGZvciBnb2luZyB0byBlaXRoZXIgUExBWUlORyBvcgoJICBQQVVTRUQuIFRlc3QgYWxzbyB0aGUgcmV0dXJuIHZhbHVlcyBvbiB0aGUgd2F5IGJhY2sgZG93bi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOiBXaGVuIGNoYW5naW5nIHRoZQoJICBzdGF0ZSBvZiBhbiBlbGVtZW50IGN1cnJlbnRseSBjaGFuZ2luZyBzdGF0ZSBhc3luY2hyb25vdXNseSwgZ28gdG8KCSAgbG9zdC1zdGF0ZSBhZnRlciBjb21taXRpbmcgdGhlIHBlbmRpbmcgc3RhdGUuIE1ha2VzIGZ1dHVyZSBjYWxscwoJICB0byBnZXRfc3RhdGUgY29udGludWUgdG8gcmV0dXJuIEFTWU5DLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogUmV0dXJuCgkgIEFTWU5DIHdoZW4gZ29pbmcgdG8gUExBWUlORyBpZiB3ZSBzdGlsbCBkb24ndCBoYXZlIHByZXJvbGwsIGFzIGNhbgoJICBoYXBwZW4gd2l0aCBsaXZlIHNvdXJjZXMuCgoyMDA1LTA4LTE4IDE2OjE1OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogSGFjayBsb25nIHBhcmFncmFwaCBpbnRvIDIgY2h1bmtzIGFzIGEgd29ya2Fyb3VuZCBmb3IgYnVnZ3kgamFkZXRleCB2ZXJzaW9uIGluIHNpZCBhbmQgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEhhY2sgbG9uZyBwYXJhZ3JhcGggaW50byAyIGNodW5rcyBhcyBhIHdvcmthcm91bmQgZm9yIGJ1Z2d5CgkgIGphZGV0ZXggdmVyc2lvbiBpbiBzaWQgYW5kIGJyZWV6eSB0aGF0IGxvb3BzIGluZmluaXRlbHkgYW5kCgkgIGVhdHMgYWxsIFJBTS4KCjIwMDUtMDgtMTggMTY6MDA6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBQcm92aWRlIG1vcmUgZXJyb3IgbWFyZ2luIGluIGNsb2NrIG1lYXN1cmVtZW50cyB0byBhbGxvdyBmb3IgZ19nZXRfY3VycmVudF90aW1lIGluYWNjdXJhY2llcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBQcm92aWRlIG1vcmUgZXJyb3IgbWFyZ2luIGluIGNsb2NrIG1lYXN1cmVtZW50cyB0byBhbGxvdyBmb3IKCSAgZ19nZXRfY3VycmVudF90aW1lIGluYWNjdXJhY2llcy4KCjIwMDUtMDgtMTggMTU6NDc6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBGaXggZXJyb3IgbWVzc2FnZSBvdXRwdXQgc28gSSBtaWdodCBiZSBhYmxlIHRvIHRlbGwgd2h5IHRoZSB0ZXN0IHdvcmtzIGhlcmUgYnV0IGZhaWxzIG9uIHRoZSBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgRml4IGVycm9yIG1lc3NhZ2Ugb3V0cHV0IHNvIEkgbWlnaHQgYmUgYWJsZSB0byB0ZWxsIHdoeSB0aGUKCSAgdGVzdCB3b3JrcyBoZXJlIGJ1dCBmYWlscyBvbiB0aGUgYnVpbGQgZmFybS4KCjIwMDUtMDgtMTggMTU6MzE6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svOiBJIHdyb3RlIGEgdGVzdCEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpLCAobWFpbik6CgkgIEkgd3JvdGUgYSB0ZXN0IQoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNwZWxsaW5nIGNvcnJlY3Rpb24KCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgIERvY3MgdXBkYXRlcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgVHJlYXQgYSBidWZmZXItd2l0aG91dC1uZXdzZWdtZW50IHRoZSBzYW1lIGFzIGEgcmVjZWl2aW5nCgkgIGEgbmV3c2VnbWVudCBub3QgaW4gdGltZSBmb3JtYXQsIGFuZCBkaXNhYmxlIHN5bmNpbmcgdG8gdGhlIGNsb2NrCgkgIHdpdGggYSB3YXJuaW5nLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcik6CgkgIEFzc2VydCBpZiBhbnlvbmUgdHJpZXMgdG8gcmVwbGFjZSB0aGUgZXhpc3Rpbmcgc3luY19oYW5kbGVyIGZvciBidXMsCgkgIGFzIG9ubHkgdGhlIG93bmVyIHNob3VsZCBiZSBzZXR0aW5nIGl0LgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBIYXZlIGEgZml4ZWQgc2V0IG9mIGN1c3RvbSBldmVudCBlbnVtcyB3aXRoIGV2ZW50cyBpZGVudGlmaWVkIGJ5CgkgIHRoZWlyIHN0cnVjdHVyZSBuYW1lIChhcyBpbiAwLjgpLCByYXRoZXIgdGhhbiBhIGZyZWUtZm9yLWFsbAoJICBhbGxvd2luZyBjb2xsaXNpb25zIGJldHdlZW4gZW51bSB2YWx1ZXMgZnJvbSBkaWZmZXJlbnQgcGx1Z2lucy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICBEb2NzIGNoYW5nZS4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEhhbmRsZSBvdXQtb2YtYmFuZCBkb3duc3RyZWFtIGV2ZW50cyBmcm9tIHRoZSBzZW5kaW5nIHRocmVhZC4KCjIwMDUtMDgtMTcgMTY6NTc6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogSW50ZXJwcmV0IHBsYXktdGltZW91dD09MCB0byBtZWFuIG5vIHRpbWVvdXQgYXQgYWxsLiBJbiB0aGF0IGNhc2UsIGRvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IEludGVycHJldAoJICBwbGF5LXRpbWVvdXQ9PTAgdG8gbWVhbiBubyB0aW1lb3V0IGF0IGFsbC4gSW4gdGhhdCBjYXNlLCBkb24ndAoJICBib3RoZXIgd2l0aCBhIGdldF9zdGF0ZSBvciBhIHdhcm5pbmcsIGp1c3QgcmV0dXJuIGRpcmVjdGx5LCBldmVuCgkgIGlmIGl0J3MgQVNZTkMuCgoyMDA1LTA4LTE3IDE2OjMzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERlYnVnIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRGVidWcgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlKTogQWRkIGZ1bmN0aW9uIHRvCgkgIGVuc3VyZSBiaW5zIHBvc3Qgc3RhdGUgY2hhbmdlIG1lc3NhZ2VzLiBBIGJpdCBvZiBhIGhhY2sgYnV0IEkgY2FuJ3QKCSAgdGhpbmsgb2YgYSB3YXkgdG8gYXZvaWQgaXQuCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UpOiBBZGRlZCB0ZXN0LgoKMjAwNS0wOC0xNiAxNzoyMzo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci4qOiBOZXcgZnVuY3Rpb24sIGxpa2UgcGVlaygpIGJ1dCB5b3Ugb3duIHRoZSBkYXRhLiBOb3QgdGVycmlibHkgZWZmaWNpZW50IGF0bS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYyAoZ3N0X2FkYXB0ZXJfdGFrZSk6IE5ldyBmdW5jdGlvbiwgbGlrZQoJICBwZWVrKCkgYnV0IHlvdSBvd24gdGhlIGRhdGEuIE5vdCB0ZXJyaWJseSBlZmZpY2llbnQgYXRtLgoKMjAwNS0wOC0xNiAxNjoyOTowNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLio6IEFkZCB0d28gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHRhZyBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQpLCAocHVzaF9hbmRfcmVmKSwKCSAgKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB0YWcgaGFuZGxpbmcuCgoyMDA1LTA4LTE2IDEyOjE1OjQ2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCBkb2NzIHRvIHVzZSBfYmluX2FkZCgpIGJlZm9yZSBfbGluaygpLCB3aGljaCBmaXhlcyB0aGUgZXhhbXBsZXMgd2l0aCByZWNlbnQgY29yZSB2ZXJzaW9ucyAocmVwb3J0ZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBGaXggZG9jcyB0byB1c2UgX2Jpbl9hZGQoKSBiZWZvcmUgX2xpbmsoKSwgd2hpY2ggZml4ZXMgdGhlIGV4YW1wbGVzCgkgIHdpdGggcmVjZW50IGNvcmUgdmVyc2lvbnMgKHJlcG9ydGVkIGJ5IE1hZGhhbiBSYWogTQoJICA8cmFqX21hZGFuQHJlZGlmZm1haWwuY29tPiwgIzMxMzE5OSkuCgoyMDA1LTA4LTE2IDA5OjQyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZGVkIHN1YnRyYWN0IGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGRlZCBzdWJ0cmFjdCBjaGVja3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTb21lIG1vcmUgZG9jcyBhYm91dCBuZXdzZWdtZW50CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IEZJWE1FCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgIEFkZCBjb21tZW50cywgY2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgIGNsZWFudXBzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29sbGVjdF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3N0cmluZ191bndyYXApLCAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfaW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfbGlzdCksIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X3JhbmdlX2ludCksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJvbV9saXN0KSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9saXN0KSwKCSAgKGdzdF92YWx1ZV9jYW5fY29tcGFyZSksIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIENsZWFudXBzLCBhZGQgY29tbWVudHMsIHJlbW92ZSB1bm5lZWRlZCBhc3NlcnRzLgoKMjAwNS0wOC0xNSAxODoxNTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RidXMuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBkb24ndCBjb252ZXJ0IE5VTEwgc3RydWN0dXJlcyB0byBzdHJpbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBjb252ZXJ0IE5VTEwgc3RydWN0dXJlcyB0byBzdHJpbmdzCgoyMDA1LTA4LTE1IDE2OjU3OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtYWRlIHNvbWUgZGVmaW5lcyBwcml2YXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1hZGUgc29tZSBkZWZpbmVzIHByaXZhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpOgoJICBkb2N1bWVudGVkIGFsbCB1bmRvY3VtZW50ZWQgc2lnbmFsIGlubGluZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSAgYWRkZWQgcGFkZGluZwoKMjAwNS0wOC0xNSAwOTo1NjoxOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6IERvY3VtZW50IF9zZXRfbGlua19mdW5jdGlvbiAtPiBfc2V0X3NldGNhcHNfZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBEb2N1bWVudCBfc2V0X2xpbmtfZnVuY3Rpb24gLT4gX3NldF9zZXRjYXBzX2Z1bmN0aW9uLgoKMjAwNS0wOC0xNCAyMjoyOTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIGEgLmNoZWNrIHRhcmdldCBmb3IgcnVubmluZyB0aGUgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhIC5jaGVjayB0YXJnZXQgZm9yIHJ1bm5pbmcgdGhlIGNoZWNrCgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBjb3NtZXRpYyBmaXh1cHMKCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIGNvbXBsZXRlIGNoZWNrcyBmb3IgZ3N0YnVmZmVyOyB3b3VsZCBiZSBuaWNlIGlmIEkgY291bGQgZ2V0IHRoZQoJICBnY292IHN0dWZmIHRvIHdvcmsgc28gSSBjYW4gc2VlIGlmIEkgYWN0dWFsbHkgY29tcGxldGVkIGdzdGJ1ZmZlci5jCgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIEFTU0VSVF9CVUZGRVJfUkVGQ09VTlQKCjIwMDUtMDgtMTMgMTE6NDU6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIHJlbW92ZSBzcGlkZXIgZnJvbSBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc3BpZGVyIGZyb20gZGlzdAoKMjAwNS0wOC0xMyAxMTo0MzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9nc3RzcGlkZXIudmNwcm9qOgoJICByZW1vdmVkIGZyb20gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBmcm9tIEhFQUQKCjIwMDUtMDgtMTMgMTA6MzM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX1RBR19MQU5HVUFHRV9DT0RFIGFzIHdlIGhhdmUgaW4gMC44LCBhbmQgZG9uJ3Qgc3BldyBvdXQgYSB3YXJuaW5nIGlmIGEgdGFnIHRoYXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGlzIHJlLXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnLmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKSwgKGdzdF90YWdfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgQWRkIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSBhcyB3ZSBoYXZlIGluIDAuOCwgYW5kIGRvbid0CgkgIHNwZXcgb3V0IGEgd2FybmluZyBpZiBhIHRhZyB0aGF0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZAoJICBpcyByZS1yZWdpc3RlcmVkLCB1bmxlc3MgaXQgaXMgcmUtcmVnaXN0ZXJlZCB3aXRoIGEKCSAgZGlmZmVyZW50IHR5cGUgKCMzMDg0MzgpLgoKMjAwNS0wOC0xMiAxNDozMDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnLzogQWRkIHNvbWUgcGFyYWdyYXBocyBhYm91dCBzdGF0ZSBjaGFuZ2VzIGluIDAuOSB0byB0aGUgUFdHIGFuZCB0aGUgcG9ydGluZyBndWlkZSwgaW4gcGFydGljdWxhciBhYm91dCB0aGUgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgIEFkZCBzb21lIHBhcmFncmFwaHMgYWJvdXQgc3RhdGUgY2hhbmdlcyBpbiAwLjkgdG8gdGhlIFBXRwoJICBhbmQgdGhlIHBvcnRpbmcgZ3VpZGUsIGluIHBhcnRpY3VsYXIgYWJvdXQgdGhlIG5ldyBtZWFuaW5nCgkgIG9mIEdTVF9TVEFURV9QQVVTRUQgYW5kIGhvdyB0byB3cml0ZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb25zCgkgIHdpdGggY29uY3VycmVudCBhY2Nlc3MgYnkgbXVsdGlwbGUgdGhyZWFkcyBpbiBtaW5kLgoKMjAwNS0wOC0xMSAxNzozOTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgYWRkZWQgZGVwcmVjYXRpb24gYW5kIHNpbmNlIGluZGV4ZXMgYWRkZWQgc2luY2UgdGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgZGVwcmVjYXRpb24gYW5kIHNpbmNlIGluZGV4ZXMKCSAgYWRkZWQgc2luY2UgdGFncwoKMjAwNS0wOC0xMSAxNDoyNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBY3R1YWxseSBpbXBsZW1lbnQgKHJlKXNldHRpbmcgdGhlIHRhcmdldCBvbiBhIGdob3N0cGFkIGFzIGRlc2NyaWJlZCBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgQWN0dWFsbHkgaW1wbGVtZW50IChyZSlzZXR0aW5nIHRoZSB0YXJnZXQgb24gYSBnaG9zdHBhZAoJICBhcyBkZXNjcmliZWQgaW4gdGhlIGRvY3MuCgoyMDA1LTA4LTEwIDIxOjE5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDaGVjayB3aGV0aGVyIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgYW5kIGRpc2FibGUgY29sb3VyZWQgZGVidWcgb3V0cHV0IGlmIHRoYXQgaXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2NoZWNrX3dpdGhfcG9wdF90YWJsZSksIChpbml0X3ByZSk6CgkgIENoZWNrIHdoZXRoZXIgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlIGlzCgkgIHNldCBhbmQgZGlzYWJsZSBjb2xvdXJlZCBkZWJ1ZyBvdXRwdXQgaWYgdGhhdCBpcyB0aGUgY2FzZS4KCjIwMDUtMDgtMTAgMTU6MDg6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBUaGUgbWVtb3J5IHJldHVybmVkIGJ5IGdzdF90eXBlX2ZpbmRfcGVlaygpIG5lZWRzIHRvIHN0YXkgdmFsaWQgdW50aWwgdGhlIGVuZCBvZiBhIHR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBUaGUgbWVtb3J5IHJldHVybmVkIGJ5IGdzdF90eXBlX2ZpbmRfcGVlaygpIG5lZWRzIHRvCgkgIHN0YXkgdmFsaWQgdW50aWwgdGhlIGVuZCBvZiBhIHR5cGVmaW5kIGZ1bmN0aW9uLCBhbmQKCSAgdHlwZWZpbmQgZnVuY3Rpb25zIG1heSBrZWVwIHJlc3VsdHMgZnJvbSBkaWZmZXJlbnQKCSAgb2Zmc2V0cyBhcm91bmQsIHNvIHdlIGNhbid0IGp1c3QgdW5yZWYgdGhlIGJ1ZmZlciBmcm9tCgkgIHRoZSBwcmV2aW91cyBfcGVlaygpLCBidXQgaGF2ZSB0byBzYXZlIGFsbCBidWZmZXJzCgkgIHJldHVybmVkIGJ5IF9wZWVrKCkgdW50aWwgdHlwZWZpbmRpbmcgaXMgZG9uZSBhbmQgb25seQoJICBmcmVlIHRoZW0gdGhlbi4KCjIwMDUtMDgtMDkgMTY6MjU6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBOZXcgbWFjcm9zOiBHU1RfUk9VTkRfVVBfMigpIHRocm91Z2ggR1NUX1JPVU5EX1VQXzY0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE5ldyBtYWNyb3M6IEdTVF9ST1VORF9VUF8yKCkgdGhyb3VnaCBHU1RfUk9VTkRfVVBfNjQoKS4KCjIwMDUtMDgtMDggMTY6MDE6MTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmb3IgbGF0ZXN0IENWUyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgc3BlYyBmb3IgbGF0ZXN0IENWUyBjaGFuZ2VzCgoyMDA1LTA4LTA4IDE1OjA4OjE0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhIHByZXR0eSBnb29kIG1lbWxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBGaXggYSBwcmV0dHkgZ29vZCBtZW1sZWFrLgoKMjAwNS0wOC0wOCAxMzo1NTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpdGVyYXRvci5oOiBGaXggd3JvbmcgaW5jbHVkZSBhbmQgJ21ha2UgZGlzdGNoZWNrJy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEZpeCB3cm9uZyBpbmNsdWRlIGFuZCAnbWFrZSBkaXN0Y2hlY2snLgoKMjAwNS0wOC0wOCAxMzozODozNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKCkgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgVXNlIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSgpIGluc3RlYWQuCgoyMDA1LTA4LTA4IDEzOjMxOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQWRkIHBhZGRpbmcgdG8gb3VyIGJhc2UgZWxlbWVudHMnIGNsYXNzIGFuZCBpbnN0YW5jZSBzdHJ1Y3RzIGFuZCB0byBHc3RJdGVyYXRvciAoeW91IHdpbGwgbmVlZCB0byByZWJ1aWxkIGFsbCBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZCBwYWRkaW5nIHRvIG91ciBiYXNlIGVsZW1lbnRzJyBjbGFzcyBhbmQgaW5zdGFuY2Ugc3RydWN0cyBhbmQKCSAgdG8gR3N0SXRlcmF0b3IgKHlvdSB3aWxsIG5lZWQgdG8gcmVidWlsZCBhbGwgcGx1Z2lucyBhbmQgYXBwcyEpCgoyMDA1LTA4LTA4IDEzOjE3OjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2UgZGVmYXVsdCBtZXNzYWdlIGZvcndhcmRpbmcgZnJvbSBjaGlsZC0+YnVzIHRvIGJpbi0+YnVzIHRocmVhZHNhZmUgYW5kIG1ha2UgaXQgbm90IGVtaXQgd2FybmluZ3MgaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgTWFrZSBkZWZhdWx0IG1lc3NhZ2UgZm9yd2FyZGluZyBmcm9tIGNoaWxkLT5idXMgdG8gYmluLT5idXMKCSAgdGhyZWFkc2FmZSBhbmQgbWFrZSBpdCBub3QgZW1pdCB3YXJuaW5ncyBpZiB0aGUgcGFyZW50IGhhcyBubyBidXMuCgoyMDA1LTA4LTA4IDEyOjE0OjIwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBPbiBwYXVzZWQtPnJlYWR5LCBzZXQgcGFkLT5jYXBzIHRvIE5VTEwsIGFzIGlzIHRoZSBkb2N1bWVudGVkIGJlaGF2aW91ciBpbiB0aGlzIHN0YXRlIGNoYW5nZS4gRml4ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpOgoJICBPbiBwYXVzZWQtPnJlYWR5LCBzZXQgcGFkLT5jYXBzIHRvIE5VTEwsIGFzIGlzIHRoZSBkb2N1bWVudGVkCgkgIGJlaGF2aW91ciBpbiB0aGlzIHN0YXRlIGNoYW5nZS4gRml4ZXMgcGxheWJhY2sgb2Ygc2VyaWVzIG9mCgkgIG1lZGlhIGZpbGVzIHdoZW4gdmlzdWFsaXphdGlvbiBpcyBlbmFibGVkIGluIFRvdGVtLgoKMjAwNS0wOC0wNyAxMzozNzowOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogQWxsb3cgTlVMTCBhcyBmaWx0ZXItY2FwcyAod2hpY2ggbWVhbnMgImFueSIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgQWxsb3cgTlVMTCBhcyBmaWx0ZXItY2FwcyAod2hpY2ggbWVhbnMgImFueSIpLgoKMjAwNS0wOC0wNSAxNzoyODozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBhZGRpbmcgbW9yZSBlbnRyaWVzIHRvIHRoZSBkb2NzIGFuZCBmaXggc21hbGwgZG9jLWJ1Z3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBtb3JlIGVudHJpZXMgdG8gdGhlIGRvY3MgYW5kIGZpeCBzbWFsbCBkb2MtYnVncwoKMjAwNS0wOC0wNSAxMzo0MjoxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY2hlY2svZ3N0LWxpYnMvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgbWlncmF0ZWQgc29tZSBtb3JlIGRvY3MgdG8gYmUgaW5saW5lZCBpbiB0aGUgc291cmNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWlncmF0ZWQgc29tZSBtb3JlIGRvY3MgdG8gYmUgaW5saW5lZCBpbiB0aGUgc291cmNlcwoKMjAwNS0wOC0wNSAxMjo1OTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGFkZGVkIGxvbmcvc2hvcnQgZGVzYyBmb3IgY29udHJvbGxlciBkb2NzIGFkZGVkIGNvbGxlY3RwYWRzIGJhc2UgY2xhc3MgZG9jcyBhZGRlZCBjb3JyZWN0IGluY2x1ZGVzIHRvIGJhc2UtY2xhc3MgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgbG9uZy9zaG9ydCBkZXNjIGZvciBjb250cm9sbGVyIGRvY3MKCSAgYWRkZWQgY29sbGVjdHBhZHMgYmFzZSBjbGFzcyBkb2NzCgkgIGFkZGVkIGNvcnJlY3QgaW5jbHVkZXMgdG8gYmFzZS1jbGFzcyBkb2NzCgoyMDA1LTA4LTA1IDEwOjAyOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIG1vcmUgdGVzdHMgKGFuZCBmaXhlcykgZm9yIHRoZSBjb250cm9sbGVyIG1vcmUgZG9jcyBmb3IgdGhlIGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBjb21wYW5pZXMgZG9jcyBmb3IgdGhlIGFkYXB0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgdGVzdHMgKGFuZCBmaXhlcykgZm9yIHRoZSBjb250cm9sbGVyCgkgIG1vcmUgZG9jcyBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgaW50ZWdyYXRlZCBjb21wYW5pZXMgZG9jcyBmb3IgdGhlIGFkYXB0ZXIKCjIwMDUtMDgtMDUgMDY6NTc6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29zbWV0aWMgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvc21ldGljIGZpeGVzCgoyMDA1LTA4LTA1IDA2OjU1OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZCBzaXpldHlwZSB0ZXN0cyBmb3IgZmFrZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNpemV0eXBlIHRlc3RzIGZvciBmYWtlc3JjCgoyMDA1LTA4LTA0IDE5OjQwOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBSZWltcGxlbWVudCB1c2luZyBiYXNldHJhbnNmb3JtLCBmaXhlcyBidWZmZXJfYWxsb2MgcHJveHlpbmcgYW1vbmcgb3RoZXIgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBSZWltcGxlbWVudCB1c2luZyBiYXNldHJhbnNmb3JtLAoJICBmaXhlcyBidWZmZXJfYWxsb2MgcHJveHlpbmcgYW1vbmcgb3RoZXIgdGhpbmdzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJldmVydCBwYXRjaCB0byBnc3RiYXNldHJhbnNmb3JtIGZyb20gNy0yOCByZW1vdmluZwoJICBkZWxheV9jb25maWd1cmUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oIChHc3RCYXNlVHJhbnNmb3JtQ2xhc3MuZ2V0X3NpemUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKToKCSAgU2VtYW50aWNzIGNoYW5nZWQsIHNob3VsZCByZXR1cm4gbm90IHRoZSBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyCgkgIGJ1dCB0aGUgYnl0ZSBzaXplIG9mIGEgYnVmZmVyIHdpdGggYSBnaXZlbiBjYXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOiBCZXR0ZXIKCSAgZGVidWcgb2JqZWN0LgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKTogRG9uJ3Qgc2V0IG91dF9zaXplIGhlcmU6IChpbiwKCSAgb3V0KSBhcmUgbm90IHRoZSBwYWQgY2FwcyB1bnRpbCBzZXRjYXBzIGZpbmlzaGVzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6IFByb3h5IHRoZSBidWZmZXJfYWxsb2MgZm9yIHRoZQoJICBub3QtaW4tcGxhY2UgY2FzZSBhcyB3ZWxsLiBEZWFsIHdpdGggY2hhbmdpbmcgZnJvbSBpbi1wbGFjZSB0bwoJICBub3QtaW4tcGxhY2Ugd2l0aGluIGNhbGxpbmcgcGFkX2FsbG9jX2J1ZmZlci4gU3RpbGwgYSBiaXQKCSAgY29uY2VybmVkIGFib3V0IHRoZSBvdmVyaGVhZCBoZXJlLi4uCgoyMDA1LTA4LTA0IDExOjU2OjU3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOiBBZGRlZCBnc3RfYWRhcHRlcl9nZXRfdHlwZSgpIHRvIHRoZSBoZWFkZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBBZGRlZCBnc3RfYWRhcHRlcl9nZXRfdHlwZSgpIHRvIHRoZSBoZWFkZXIKCjIwMDUtMDgtMDMgMTY6MTA6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4ZWQgZGlzdGNoZWNrIGJyZWFrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXhlZCBkaXN0Y2hlY2sgYnJlYWthZ2UKCjIwMDUtMDgtMDMgMTU6NTk6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBhZGRlZCBjaGVjayB0ZXN0IHN1aXRlIGZvciB0aGUgY29udHJvbGxlciBmaXhlZCBhIGRvYyB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBjaGVjayB0ZXN0IHN1aXRlIGZvciB0aGUgY29udHJvbGxlcgoJICBmaXhlZCBhIGRvYyB0eXBvCgoyMDA1LTA4LTAzIDEzOjMwOjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL1JFQURNRToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgYWRkIHNob3J0L2xvbmcgZGVzY3JpcHRpb24gZG9jcyB0byBiYXNlIGNsYXNzZXMgYWRkIHB1c2hzcmMgdG8gdGhlIGRvY3MgcmVtb3ZlIGNvbnNvbGlkYXRlZCBkb2MgZnJhZ21lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2hvcnQvbG9uZyBkZXNjcmlwdGlvbiBkb2NzIHRvIGJhc2UgY2xhc3NlcwoJICBhZGQgcHVzaHNyYyB0byB0aGUgZG9jcwoJICByZW1vdmUgY29uc29saWRhdGVkIGRvYyBmcmFnbWVudHMKCjIwMDUtMDgtMDIgMjE6Mzk6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSAgdGhhdCBvbmUgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGF0IG9uZSB0b28KCjIwMDUtMDgtMDIgMjE6Mzg6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci5wYy5pbjoKCSAgYWRkZWQgbWlzc2luZyBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgbWlzc2luZyBwYyBmaWxlcwoKMjAwNS0wOC0wMiAyMTozNTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2wucGMuaW46CgkqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSAgYWRkZWQgY29udHJvbGxlciBjb2RlIHJlbW92ZWQgZHBhcmFtIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBjb250cm9sbGVyIGNvZGUKCSAgcmVtb3ZlZCBkcGFyYW0gcGMgZmlsZXMKCjIwMDUtMDgtMDEgMjE6MTc6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQnJvYWRjYXN0IHRoZSBjb25kaXRpb24gd2hlbiBzaHV0dGluZyBkb3duLCB0byBtYWtlIHN1cmUgd2Ugd2FrZSBhbGwgdGhyZWFkcyB1cC4gU2h1dCBkb3duLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3N0b3ApOgoJICBCcm9hZGNhc3QgdGhlIGNvbmRpdGlvbiB3aGVuIHNodXR0aW5nIGRvd24sIHRvIG1ha2Ugc3VyZSB3ZSB3YWtlIGFsbAoJICB0aHJlYWRzIHVwLiBTaHV0IGRvd24gcGFkcyBvbiBmaW5hbGl6ZSwgZm9yIHNhZmV0eS4KCjIwMDUtMDgtMDEgMTc6MjY6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBIYW5kbGUgUEFVU0VELT5SRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24gYWZ0ZXIgbmVnb3RpYXRpb24gb2NjdXJyZWQgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMDEgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIFBBVVNFRC0+UkVBRFktPlBBVVNFRCB0cmFuc2l0aW9uIGFmdGVyIG5lZ290aWF0aW9uCgkgIG9jY3VycmVkIGFscmVhZHkuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpOgoJICBFeHRyYSBwaWVjZSBvZiBkZWJ1ZyBmb3IgbmV3IG1lc3NhZ2VzLgoKMjAwNS0wOC0wMSAxNjo0Mzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICByZW1vdmUgZHBhcmFtcyBkZXBzIGZyb20gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkcGFyYW1zIGRlcHMgZnJvbSB0aGUgZG9jcwoKMjAwNS0wOC0wMSAxNjoxNzozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbC9jb250cm9sLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvY29udHJvbC5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbS5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbS5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbV9zbW9vdGguYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1fc21vb3RoLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtY29tbW9uLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGxpbmVhcmludGVycC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwbGluZWFyaW50ZXJwLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvdW5pdGNvbnZlcnQuYzoKCSogbGlicy9nc3QvY29udHJvbC91bml0Y29udmVydC5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9keW5wYXJhbXMvZHBhcmFtc3Rlc3QuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZHlucGFyYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvZHBhcmFtc3Rlc3QuYzoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGRlYWN0aXZhdGUgYW5kIHJlbW92ZSBkcGFyYW1zIChsaWJnc3Rjb250cm9sKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIGRwYXJhbXMgKGxpYmdzdGNvbnRyb2wpCgoyMDA1LTA4LTAxIDExOjE1OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBTZXQgY2FwcyBvbiBhbGwgb3V0Z29pbmcgYnVmZmVycywgbm90IGp1c3QgdGhlIGZpcnN0IG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTZXQgY2FwcyBvbiBhbGwgb3V0Z29pbmcgYnVmZmVycywgbm90IGp1c3QgdGhlIGZpcnN0IG9uZS4KCjIwMDUtMDgtMDEgMDk6MTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFNldCBjYXBzIG9uIGZpcnN0IG91dGdvaW5nIGJ1ZmZlciB3aGVuIHdlJ3ZlIGZvdW5kIHRoZSB0eXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja19zZXRfYnVmZmVyX2NhcHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU2V0IGNhcHMgb24gZmlyc3Qgb3V0Z29pbmcgYnVmZmVyIHdoZW4gd2UndmUgZm91bmQgdGhlIHR5cGUuCgoyMDA1LTA4LTAxIDA4OjUyOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvOiBSZW1vdmUgc29tZSBvbGQgY3J1ZnQgZnJvbSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSAgUmVtb3ZlIHNvbWUgb2xkIGNydWZ0IGZyb20gZG9jcy4KCjIwMDUtMDctMzEgMTE6NTk6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmg6IEZpeCBpbmxpbmUgZG9jcyBmb3IgR3N0UGFkTGlua1JldHVybi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBGaXggaW5saW5lIGRvY3MgZm9yIEdzdFBhZExpbmtSZXR1cm4uCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE5ldyBBUEk6IGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoKS4KCjIwMDUtMDctMzAgMTU6MDA6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBQ19TWVNfTEFSR0VGSUxFLCB3aGljaCB3aWxsIHNldCBfRklMRV9PRkZTRVRfQklUUz02NCBhbmQgX0xBUkdFRklMRV9TT1VSQ0UgaW4gY29uZmlnLmggYXMgcmVxdWlyZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQUNfU1lTX0xBUkdFRklMRSwgd2hpY2ggd2lsbCBzZXQgX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKCSAgYW5kIF9MQVJHRUZJTEVfU09VUkNFIGluIGNvbmZpZy5oIGFzIHJlcXVpcmVkLiBEbyBub3QKCSAgZXhwb3J0IHRob3NlIGZsYWdzIGluIG91ciAucGMgZmlsZXMgYW55IGxvbmdlciAoIzE0MjIwOSkuCgkgIFJlbW92ZSB1bnVzZWQgR1NUX0RJU0FCTEVfT01FR0FfQ09USFJFQURTIHN0dWZmLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgUmVkbyBzZWVrL3RlbGwgY2FsbHMgd2l0aCBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gbWluZDsgYWRkIHNvbWUKCSAgZGVidWdnaW5nIG1lc3NhZ2VzOyBhZGQgbG9nIG1lc3NhZ2UgdGhhdCB0ZWxscyB1cyB3aGVuIGxhcmdlCgkgIGZpbGUgc3VwcG9ydCBpcyB1bmF2YWlsYWJsZSBvciBub3QgZW5hYmxlZCBmb3Igc29tZSByZWFzb24uCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgQWRkIGxvZyBtZXNzYWdlIHRoYXQgdGVsbHMgdXMgd2hlbiBsYXJnZSBmaWxlIHN1cHBvcnQKCSAgaXMgdW5hdmFpbGFibGUgb3Igbm90IGVuYWJsZWQgZm9yIHNvbWUgcmVhc29uLgoKMjAwNS0wNy0yOSAxOToyMjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCB0ZXN0IGZvciByZW1vdmluZyBhbiBlbGVtZW50IHdpdGggZ2hvc3RwYWQgZnJvbSBhIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3IgcmVtb3ZpbmcgYW4gZWxlbWVudCB3aXRoIGdob3N0cGFkIGZyb20gYSBiaW4uCgkgIEZpeGVkIHRlc3QgYXMgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2VzIHRoZSByaWdodCB0aGluZy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5X3R5cGUpLCAoZ3N0X3Byb3h5X3BhZF9kb19ldmVudCksCgkgIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5KSwgKGdzdF9wcm94eV9wYWRfZG9faW50ZXJuYWxfbGluayksCgkgIChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1bGwpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1c2gpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwKCSAgKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9wcm94eV9wYWRfZmluYWxpemUpLAoJICAoZ3N0X2dob3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfaW50ZXJuYWwpLCAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfbmV3KSwKCSAgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBDbGVhbiB1cCBnaG9zdHBhZHMsIHJlbW92ZSBwcm9wZXJ0aWVzIGZvciBpbnRlcm5hbCBzdHVmZi4KCSAgTWFrZSB0aHJlYWRzYWZlLgoJICBGaXggcmVmY291bnRpbmcuCgkgIFByZXBhcmUgZm9yIHN3aXRjaGluZyB0YXJnZXRzLCBub3QgYWxsIHVzZSBjYXNlcyB3b3JrIHlldC4KCjIwMDUtMDctMjkgMTk6MTk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGdzdC9nc3RiaW4uYzogKHVubGlua19wYWRzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6CgkgIFVubGlua2luZyBwYWRzIHdoaWxlIGhvbGRpbmcgdGhlIGJpbiBMT0NLIGlzIG5vdCBhIGdvb2QKCSAgaWRlYS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBObyBwcm9iIHNldHRpbmcgdGVtcGxhdGUgYWZ0ZXIgY3JlYXRpbmcgdGhlIHBhZC4KCjIwMDUtMDctMjkgMTU6MzQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBnc3RfYnVzX3BvbGwgbWF5IGJlIGNhbGxlZCBmcm9tIG90aGVyIHRocmVhZHMuIEhhbmRsZSB0aGlzIG5pY2VseSBieSBub3QgbWFraW5nIHBvbGxfZGF0YSBkaXNhcHBlYXIgb2ZmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9idXNfcG9wKSwKCSAgKGdzdF9idXNfcGVlayksIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksCgkgIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwgKHBvbGxfaGFuZGxlciksIChwb2xsX3RpbWVvdXQpLAoJICAocG9sbF9kZXN0cm95KSwgKHBvbGxfZGVzdHJveV90aW1lb3V0KSwgKGdzdF9idXNfcG9sbCk6CgkgIGdzdF9idXNfcG9sbCBtYXkgYmUgY2FsbGVkIGZyb20gb3RoZXIgdGhyZWFkcy4gSGFuZGxlCgkgIHRoaXMgbmljZWx5IGJ5IG5vdCBtYWtpbmcgcG9sbF9kYXRhIGRpc2FwcGVhciBvZmYgdGhlCgkgIHN0YWNrIG9uY2UgZ3N0X2J1c19wb2xsIHJldHVybnMuCgkgIGdzdF9idXNfcGVlayBub3cgaW5jcmVtZW50cyB0aGUgcmVmY291bnQgb24gdGhlIHJldHVybmVkCgkgIG1lc3NhZ2UuCgoyMDA1LTA3LTI5IDExOjI5OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IE92ZXJ2aWV3IG9mIGN1cnJlbnQgR2hvc3RQYWQgZGF0YXN0cnVjdHVyZXMgYW5kIHVzZSBjYXNlcyBmb3IgY2hhbmdpbmcgdGhlIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgIE92ZXJ2aWV3IG9mIGN1cnJlbnQgR2hvc3RQYWQgZGF0YXN0cnVjdHVyZXMgYW5kIHVzZQoJICBjYXNlcyBmb3IgY2hhbmdpbmcgdGhlIHRhcmdldC4KCjIwMDUtMDctMjggMTU6Mzg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZGVkIGNoZWNrcyBmb3IgaGllcmFyY2h5IGNvbnNpc3RlbmN5IHdoYW4gYWRkaW5nIGxpbmtlZCBlbGVtZW50cyB0byBiaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkZWQgY2hlY2tzIGZvciBoaWVyYXJjaHkgY29uc2lzdGVuY3kgd2hhbiBhZGRpbmcgbGlua2VkCgkgIGVsZW1lbnRzIHRvIGJpbnMuCgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdG8gdGVzdCBlbGVtZW50IHNjaGVkdWxpbmcgd2l0aG91dCBiaW4vcGlwZWxpbmUuCgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRmlyc3QgYWRkIGVsZW1lbnRzIHRvIGJpbiwgdGhlbiBsaW5rLgoJICAqIGdzdC9nc3RiaW4uYzogKHVubGlua19wYWRzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6CgkgIFVubGluayBwYWRzIGZyb20gZWxlbWVudHMgYWRkZWQvcmVtb3ZlZCBmcm9tIGJpbiB0byBtYWludGFpbgoJICBoaWVyYXJjaHkgY29uc2lzdGVuY3kuCgoyMDA1LTA3LTI4IDExOjQ5OjU2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IFJlbW92ZSBicm9rZW4gZGVsYXlfY29uZmlndXJlIChmaXhlcyByZW5lZ290aWF0aW9uIG9mIHNvZnR3YXJlIHNjYWxpbmcgcGlwZWxpbmVzKTsgcmVtb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmVtb3ZlIGJyb2tlbiBkZWxheV9jb25maWd1cmUgKGZpeGVzIHJlbmVnb3RpYXRpb24gb2Ygc29mdHdhcmUKCSAgc2NhbGluZyBwaXBlbGluZXMpOyByZW1vdmUgc29tZSBsZWZ0b3ZlciBwcmludGYoKXMuCgoyMDA1LTA3LTI4IDExOjI0OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igd3JvbmcgaGllcmFyY2h5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igd3JvbmcgaGllcmFyY2h5CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIFNvbWUgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIENsZWFudXBzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKSwgKGdzdF9lbGVtZW50X3NlZWspLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFNvbWUgbW9yZSBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIENoZWNrIGZvciBjb3JyZWN0IGhpZXJhcmNoeSB3aGVuIGxpbmtpbmcgcGFkcy4gTW92aW5nIHRvCgkgIHN0cmljdCByZXF1aXJlbWVudCBmb3IgZ2hvc3RwYWRzIHdoZW4gbGlua2luZyBlbGVtZW50cyBpbgoJICBkaWZmZXJlbnQgYmlucy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENsZWFuIHVwcy4gQWRkZWQgV1JPTkdfSElFUkFSQ0hZIHJldHVybiB2YWx1ZS4KCjIwMDUtMDctMjggMTA6Mzg6MDIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQmV0dGVyIGRlYnVnIGlmIG5vIHRyYW5zZm9ybSBpcyBwb3NzaWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBCZXR0ZXIgZGVidWcgaWYgbm8gdHJhbnNmb3JtIGlzIHBvc3NpYmxlLgoKMjAwNS0wNy0yNyAyMDoyMjo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvbmV0d29yay10cmFuc3A6IFNvbWUgb2xkIGRvYyBJIGhhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9uZXR3b3JrLXRyYW5zcDoKCSAgU29tZSBvbGQgZG9jIEkgaGFkLgoKMjAwNS0wNy0yNyAxOTowMDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IHNlcmlhbGl6YXRpb24gb2Ygc2VlayBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBGaXggc2VyaWFsaXphdGlvbiBvZiBzZWVrIGV2ZW50cy4KCjIwMDUtMDctMjcgMTg6NDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggY29tcGlsYXRpb24gYW5kIGZpeCBldmVudCBzZXJpYWxpemF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZXZlbnQpOgoJICBGaXggY29tcGlsYXRpb24gYW5kIGZpeCBldmVudCBzZXJpYWxpemF0aW9uLgoKMjAwNS0wNy0yNyAxODozMzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgZG9jcyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENIQU5HRVMtMC45OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTb21lIGRvY3MgdXBkYXRlcwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KToKCSAgRXZlbnQgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFVzZSBmYXN0ZXIgY2FzdHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlZWspOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFVwZGF0ZSBnc3RfZWxlbWVudF9zZWVrLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwgKF9nc3RfZXZlbnRfY29weSksCgkgIChnc3RfZXZlbnRfbmV3KSwgKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwgKGdzdF9ldmVudF9nZXRfc3RydWN0dXJlKSwKCSAgKGdzdF9ldmVudF9uZXdfZmx1c2hfc3RhcnQpLCAoZ3N0X2V2ZW50X25ld19mbHVzaF9zdG9wKSwKCSAgKGdzdF9ldmVudF9uZXdfZW9zKSwgKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfZmlsbGVyKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwgKGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbik6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE1ha2UgR3N0RXZlbnQgdXNlIEdzdFN0cnVjdHVyZS4gQWRkIHBhcnNpbmcgY29kZSwgbWFrZSBzdXJlIHRoZQoJICBBUEkgaXMgc3VmZmljaWVudGx5IGdlbmVyaWMuCgkgIE1hcmsgcG9zc2libGUgZGlyZWN0aW9ucyBvZiBldmVudHMgYW5kIHNlcmlhbGl6YXRpb24uCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpLCAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLAoJICAoX2dzdF9tZXNzYWdlX2NvcHkpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgVXBkYXRlIGZvciBuZXcgZXZlbnRzLgoJICBDYXRjaCBldmVudHMgc2VudCBpbiB3cm9uZyBkaXJlY3Rpb25zLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBFdmVudCB1cGRhdGVzLgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgIFJlbW92ZSBldmVudCBjb2RlIGZyb20gdGhpcyBmaWxlLgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBFdmVudCB1cGRhdGVzLgoKMjAwNS0wNy0yNyAxNTowNTo0NSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIGRlYnVnZ2luZyBhY3R1YWxseSB1c2VmdWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBNYWtlIGRlYnVnZ2luZyBhY3R1YWxseSB1c2VmdWwuCgoyMDA1LTA3LTI1IDEyOjMxOjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCBkZWZhdWx0IGZpeGF0aW9uIG9uY2UgYWdhaW4sIHNvIHRoYXQgZ3N0X3BhZF9maXhhdGUoKSBhY3R1YWxseSBkb2VzIGFueXRoaW5nIGF0IGFsbC4gVGhpcyBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZml4YXRlX3ZhbHVlKSwgKGdzdF9wYWRfZGVmYXVsdF9maXhhdGUpLAoJICAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6CgkgIEltcGxlbWVudCBkZWZhdWx0IGZpeGF0aW9uIG9uY2UgYWdhaW4sIHNvIHRoYXQgZ3N0X3BhZF9maXhhdGUoKQoJICBhY3R1YWxseSBkb2VzIGFueXRoaW5nIGF0IGFsbC4gVGhpcyBwcm9iYWJseSBuZWVkcyB0byBiZSBzb21lCgkgIHNvcnQgb2YgYSBsYXN0IHJlc29ydCwgYW5kIHVzZSBwcm9maWxlLWJhc2VkIGZpeGF0aW9uIGZpcnN0LCBidXQKCSAgc2luY2UgdGhhdCBkb2Vzbid0IGV4aXN0IHlldCwgdGhpcyBpcyB0aGUgYmVzdCB3ZSBoYXZlLiBGaXhlcwoJICB2aXN1YWxpemF0aW9uIGluIFRvdGVtLgoKMjAwNS0wNy0yMiAxMTo0NzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgU29tZSBtb3JlIGNvbW1lbnRzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgRml4IGhhbmRvZmYgbWFyc2hhbGwuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgV2UncmUgYSByZWFsIGlucGxhY2UgZWxlbWVudC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzLgoJICAqIHRlc3RzL2xhdC5jOiAoZmFrZXNyYyksIChmYWtlc2luayksIChzaW1wbGUpLCAocXVldWUpLCAobWFpbik6CgkgICogdGVzdHMvbXV4aW5nL2Nhc2UxLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9keW5hbWljLXBpcGVsaW5lLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQxLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQyLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9ydW54bWwuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL3NjaGVkLXN0cmVzcy5jOiAobWFpbik6CgkgICogdGVzdHMvc2Vla2luZy9zZWVraW5nMS5jOiAoZXZlbnRfcmVjZWl2ZWQpLCAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6IChidXNfaGFuZGxlciksICh0aW1lb3V0X2Z1bmMpLAoJICAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUzLmM6IChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTQuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlNS5jOiAobWFpbik6CgkgIEZpeCB0aGUgdGVzdHMuCgoyMDA1LTA3LTIxIDE3OjIyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDogU29tZSBzbWFsbCBhZGRpdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgc21hbGwgYWRkaXRpb25zLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGRpc2NvbnQgdmFsdWVzIGFyZSBnaW50NjQsIGhhbmRsZSB0aGUgbWF0aCBjb3JyZWN0bHkuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBNYWtlIHRoZSBiYXNlc3JjIHJlcG9ydCBlcnJvciBpZiB0aGUgc291cmNlIHBhZCBpcyBub3QgbGlua2VkLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBNYWtlIHF1ZXVlIGNvbGxlY3QgZGF0YSBldmVuIGlmIHRoZSBzcmNwYWQgaXMgbm90IGxpbmtlZC4KCSAgU3RhcnQgcHVzaGluZyBvdXQgZGF0YSBhcyBzb29uIGFzIGl0IGlzIGxpbmtlZC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksIChnc3RfZmxvd19nZXRfbmFtZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZGVkIGdzdF9mbG93X2dldF9uYW1lKCkgdG8gZWFzZSBlcnJvciByZXBvcnRpbmcuCgoyMDA1LTA3LTIwIDE4OjAyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWRkZWQgYSBidW5jaCBvZiBtZXNzYWdlcyBmb3IgYWR2YW5jZWQgc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIGEgYnVuY2ggb2YgbWVzc2FnZXMgZm9yIGFkdmFuY2VkIHNlZWtpbmcuCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuYzogKGdzdF9kcG1hbl9zZXRfcGFyZW50KSwKCSAgKGdzdF9kcG1hbl9zdGF0ZV9jaGFuZ2VkKToKCSAgRml4IHNvbWUgbmV3LXBhZCAtPiBwYWQtYWRkZWQgc2lnbmFscwoKMjAwNS0wNy0yMCAxNzoyMjoyNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy86IERvY3VtZW50IG5ldy1wYWQvc3RhdGUtY2hhbmdlIHNpZ25hbCByZW5hbWVzIGFuZCB0aGUgRml4ZWRMaXN0IHR5cGUgcmVuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgRG9jdW1lbnQgbmV3LXBhZC9zdGF0ZS1jaGFuZ2Ugc2lnbmFsIHJlbmFtZXMgYW5kIHRoZSBGaXhlZExpc3QKCSAgdHlwZSByZW5hbWUuCgoyMDA1LTA3LTIwIDE3OjE2OjQ0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBHc3RFbGVtZW50OjpuZXctcGFkIC0+IHBhZC1hZGRlZCwgR3N0RWxlbWVudDo6c3RhdGUtY2hhbmdlIC0+IHN0YXRlLWNoYW5nZWQsIEdzdFZhbHVlRml4ZWRMaXN0IC0+IEdzdFZhbHVlQXJyYXksIGFkZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksIChnc3RfZWxlbWVudF9zZWVrKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbHVlX2dldF9nZW5lcmljX3R5cGUpLAoJICAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9hcnJheSksIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwKCSAgKGdzdF92YWx1ZV9saXN0X3ByZXBlbmRfdmFsdWUpLCAoZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX3ZhbHVlKSwKCSAgKGdzdF92YWx1ZV9saXN0X2dldF9zaXplKSwgKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FycmF5X3N0cmluZyksIChnc3RfdmFsdWVfc2VyaWFsaXplX2FycmF5KSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9hcnJheSksIChnc3RfdmFsdWVfaW50ZXJzZWN0X2FycmF5KSwKCSAgKGdzdF92YWx1ZV9pc19maXhlZCksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBHc3RFbGVtZW50OjpuZXctcGFkIC0+IHBhZC1hZGRlZCwgR3N0RWxlbWVudDo6c3RhdGUtY2hhbmdlIC0+CgkgIHN0YXRlLWNoYW5nZWQsIEdzdFZhbHVlRml4ZWRMaXN0IC0+IEdzdFZhbHVlQXJyYXksIGFkZCBmb3JtYXQgYW5kCgkgIGZsYWdzIGFzIHRoZWlyIG93biBhcmd1bWVudHMgaW4gZ3N0X2VsZW1lbnRfc2VlaygpIChzaG91bGQgaW1wcm92ZQoJICAiYmluZGVhYmlsaXR5IiksIHJlbW92ZSBmdW5jdGlvbiBnZW5lcmF0b3JzIHNpbmNlIHRoZXkgZG9uJ3Qgd29yawoJICB1bmRlciBhIHdob2xlIGJ1bmNoIG9mIGNvbXBpbGVycyAodGhleSB3ZXJlIGRlcHJlY2F0ZWQgYWxyZWFkeQoJICBhbnl3YXkpLgoKMjAwNS0wNy0yMCAxNzoxNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSAgcGF0Y2ggZnJvbSBFZGdhcmQgdG8gcHJvcGVybHkgc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGZyb20gRWRnYXJkIHRvIHByb3Blcmx5IHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzCgoyMDA1LTA3LTIwIDE2OjIwOjM5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0aW5mby4qOiBGaXggaWxsZWdhbCBjYXN0IG9uIHNvbWUgcGxhdGZvcm1zICgjMzA5MjUzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpLAoJICAoX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyKToKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBGaXggaWxsZWdhbCBjYXN0IG9uIHNvbWUgcGxhdGZvcm1zICgjMzA5MjUzKS4KCjIwMDUtMDctMjAgMTE6MzU6MTggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IEFkZCBfbmV3X2N1c3RvbSwgbWFrZSBfbmV3X2FwcGxpY2F0aW9uIGEgbWFjcm8gdG8gX25ld19jdXN0b20uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgX25ld19jdXN0b20sIG1ha2UgX25ld19hcHBsaWNhdGlvbiBhIG1hY3JvIHRvIF9uZXdfY3VzdG9tLgoKMjAwNS0wNy0yMCAxMDo1ODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuKjogQWRkIGEgZ2Jvb2xlYW4gdG8gZGVjaWRlIHdoZW4gdG8gcHVzaCBvdXQgYSBkaXNjb250LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIGEgZ2Jvb2xlYW4gdG8gZGVjaWRlIHdoZW4gdG8gcHVzaCBvdXQgYSBkaXNjb250LgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICBTb21lIGNsZWFudXBzLgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMS5jOiAobWFpbik6CgkgIE1ha2UgYSB0aHJlYWQgdGVzdCBjb21waWxlIGFuZCBydW4uLi4gdmVyeSBzaWxseS4uCgoyMDA1LTA3LTIwIDEwOjEzOjQ2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDogTWVudGlvbiByZW1vdmFsIG9mIGxpYmdzdGdjb25mLTAuOS5sYSBhbmQgZXhpc3RlbmNlIG9mIGdjb25mIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgTWVudGlvbiByZW1vdmFsIG9mIGxpYmdzdGdjb25mLTAuOS5sYSBhbmQgZXhpc3RlbmNlIG9mIGdjb25mCgkgIGVsZW1lbnRzLgoKMjAwNS0wNy0yMCAwODoyOTowNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvOiBEb2N1bWVudCBiYXNlIGNsYXNzZXMsIHVwZGF0ZSBzZWN0aW9ucyBvZiBuLXRvLTEgYW5kIDEtdG8tbiAobXV4ZXIsIGZpeCBzb21lIGNvZGUgZXhhbXBsZXMgYW5kIGxpbmtzIGFuZCB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1tYW5hZ2VyLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW9uZXRvbi54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgRG9jdW1lbnQgYmFzZSBjbGFzc2VzLCB1cGRhdGUgc2VjdGlvbnMgb2Ygbi10by0xIGFuZCAxLXRvLW4gKG11eGVyLAoJICBkZW11eGVyKSwgcmVtb3ZlIG4tdG8tbiAod2FzIG5ldmVyIHdyaXR0ZW4pLCBmaXggc29tZSBjb2RlIGV4YW1wbGVzCgkgIGFuZCBsaW5rcyBhbmQgdXBkYXRlIHRoZSBwb3J0aW5nIHNlY3Rpb24gdG8gaW5jbHVkZSBhbGwgdGhpcy4KCjIwMDUtMDctMTkgMTc6NDY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVldWUuKjogUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gbW9yZSBpbnRlbGxpZ2VudGx5IHVwc3RyZWFtIGFuZCBvdXRwdXQgYW4gRVJST1IvRU9TIHdoZW4gc3RyZWFtaW5nIHN0b3BwZWQgZHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgIFByb3BhZ2F0ZSBHc3RGbG93UmV0dXJuIG1vcmUgaW50ZWxsaWdlbnRseSB1cHN0cmVhbSBhbmQgb3V0cHV0CgkgIGFuIEVSUk9SL0VPUyB3aGVuIHN0cmVhbWluZyBzdG9wcGVkIGR1ZSB0byBmYXRhbCBlcnJvci4KCjIwMDUtMDctMTkgMTQ6NTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IERvbid0IGJsb2NrIGZvcmV2ZXIgZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gY29tcGxldGUsIHRoZSBwaXBlbGluZSBhbHJlYWR5IGRpZCB3aXRoIGEgc2Vuc2libGUgdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKSwgKG1haW4pOgoJICBEb24ndCBibG9jayBmb3JldmVyIGZvciB0aGUgc3RhdGUgY2hhbmdlIHRvIGNvbXBsZXRlLCB0aGUKCSAgcGlwZWxpbmUgYWxyZWFkeSBkaWQgd2l0aCBhIHNlbnNpYmxlIHRpbWVvdXQuCgoyMDA1LTA3LTE5IDEzOjQzOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHN1cmUgd2UgbmV2ZXIgY2FsbCB0aGUgY3JlYXRlIGZ1bmN0aW9uIGlzIHdlIGdvdCBkZWFjdGl2YXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIE1ha2Ugc3VyZSB3ZSBuZXZlciBjYWxsIHRoZSBjcmVhdGUgZnVuY3Rpb24gaXMgd2UKCSAgZ290IGRlYWN0aXZhdGVkLgoKMjAwNS0wNy0xOSAxMToyNzowNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBmb3IgbGF0ZXN0IGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBmb3IgbGF0ZXN0IGNoYW5nZXMKCjIwMDUtMDctMTkgMTA6NDA6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9wYXJzZS9wYXJzZS5sOiBBdHRlbXB0IHRvIHNvbHZlIGJ1ZyAjMTcyODE1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvcGFyc2UvcGFyc2UubDogQXR0ZW1wdCB0byBzb2x2ZSBidWcgIzE3MjgxNS4KCjIwMDUtMDctMTkgMDk6MTk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspOgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9ubHkgdXBkYXRlIHRoZSBzZWVraW5nIHZhbHVlcyB3aGVuIHdlIGFyZSBub3QKCSAgYnVzeSBzdHJlYW1pbmcuCgoyMDA1LTA3LTE4IDE3OjQzOjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgT29wcywgaWdub3JlIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50IGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBPb3BzLCBpZ25vcmUgdGhlIHJlc3VsdCBvZiBnc3RfcGFkX3B1c2hfZXZlbnQgaGVyZS4KCjIwMDUtMDctMTggMTc6MTI6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZW5kIGRpc2NvbnQgZXZlbnQgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbiwgYXMgcGFkcyBhcmVuJ3QgYWN0aXZhdGVkIHlldCBpbiB0aGUgYWN0aXZhdGVfcHVzaCBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgU2VuZCBkaXNjb250IGV2ZW50IGZyb20gdGhlIGxvb3AgZnVuY3Rpb24sIGFzIHBhZHMKCSAgYXJlbid0IGFjdGl2YXRlZCB5ZXQgaW4gdGhlIGFjdGl2YXRlX3B1c2ggaGFuZGxlci4KCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBEb24ndCBsZWFrIGVsZW1lbnQgbmFtZS4KCjIwMDUtMDctMTggMTQ6NDc6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFTX0xJQlRPT0xfVEFHUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOiBVc2UgQVNfTElCVE9PTF9UQUdTLgoKMjAwNS0wNy0xOCAxMjo1ODoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogUmVtb3ZlIGRlbGV0ZWQgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgUmVtb3ZlIGRlbGV0ZWQgdHlwZXMuCgoyMDA1LTA3LTE4IDEyOjQ5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVtb3ZlZCBwbHVnYWJsZSBzY2hlZHVsZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlZCBwbHVnYWJsZSBzY2hlZHVsZXJzLgoJICBSZW1vdmVkIFNjaGVkdWxlci9NYW5hZ2VyIGZyb20gZWxlbWVudHMuCgkgIFJlbW92ZWQgZ3N0dHlwZXMuaCwgcmVhcnJhbmdlZCBpbmNsdWRlcy4KCSAgUmVtb3ZlZCBkZXBlbmRlbmN5IHBhZDwtPmVsZW1lbnQsIGVsZW1lbnQ8PnBpcGVsaW5lLCBhbmQKCSAgdmFyaW91cyBvdGhlcnMsICBmaXggaW5jbHVkZXMuCgkgIGltcGxlbWVudCBnc3RfcGFkX2dldF9wYXJlbnQoKSB3aXRoIGdzdF9vYmplY3RfZ2V0X3BhcmVudCgpCgkgIE1ha2UgR3N0VGFzayBzZWZjb250YWluZWQuCgkgIEZpeCBfZ2V0X3N0YXRlKCkgb24gR3N0QmluLCBpdCBkaWQgbm90IHJldHVybiBBU1lOQyB3aXRoIGEgMAoJICB0aW1lb3V0LgoJICBGaXggZW5kbGVzcyBsb29wIGluIGl0ZXJhdG9yX2ZvbGRfd2l0aF9yZXN5bmMuCgoyMDA1LTA3LTE4IDA5OjIyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIG9sZCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGFyY2guaDoKCSAgUmVtb3ZlIG9sZCBmaWxlLgoKMjAwNS0wNy0xOCAwODo1MTozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogTm8gbW9yZSBjb3RocmVhZHMuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIE5vIG1vcmUgY290aHJlYWRzLmgKCjIwMDUtMDctMTggMDg6NDM6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvY290aHJlYWRzLio6IExldCdzIHJlbW92ZSB0aGVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2NvdGhyZWFkcy5jOgoJICAqIGdzdC9jb3RocmVhZHMuaDoKCSAgTGV0J3MgcmVtb3ZlIHRoZXNlLgoKMjAwNS0wNy0xOCAwODoyODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIGRvY3MgaW4gdGhlIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIG1vcmUgZG9jcyBpbiB0aGUgd29ya3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICBSZWZjb3VudGluZyBmaXhlcy4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksIChnc3RfYnVzX3BvbGwpOgoJICBDbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgIFNldCBTUkMgdG8gTlVMTC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksCgkgIChnc3RfcGFkX2dldF9wYXJlbnRfZWxlbWVudCksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpLAoJICAoZ3N0X3BhZF9wcm94eV9zZXRjYXBzKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIF9nZXRfcGFyZW50X2VsZW1lbnQoKSB0byBnZXQgYSBwYWRzIHBhcmVudCBhcyBhbiBlbGVtZW50LgoKMjAwNS0wNy0xNyAyMjo0NDowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogUmVtb3ZlIGJvZ3VzIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmVtb3ZlIGJvZ3VzIHRlc3QuCgoyMDA1LTA3LTE3IDIyOjI2OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVmY291bnRpbmcgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksIChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWFjdGl2YXRlKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZWZjb3VudGluZyBmaXhlcy4KCSAgRml4IGxvZ2ljIGZvciByZXR1cm5pbmcgQVNZTkMgd2hlbiBub3QgcHJlcm9sbGVkLgoKMjAwNS0wNy0xNyAyMjoyMjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS5jOiBGaXggbmFzdHkgcmVmY291bnQgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpeCBuYXN0eSByZWZjb3VudCBidWcuCgoyMDA1LTA3LTE2IDE5OjI1OjQxICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBNb3ZlZCBmZHNyYyB0byBnc3QtcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1vdmVkIGZkc3JjIHRvIGdzdC1wbHVnaW5zLgoKMjAwNS0wNy0xNiAxNTo0MzoxMCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IGNoYW5nZWxvZyBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IGNoYW5nZWxvZyBlbnRyeQoKMjAwNS0wNy0xNiAxNTo0MTowNCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmMgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmggZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMgZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE2IFBoaWxpcHBlIEtoYWxhZiA8YnVyZ2VyQHNwZWVkeS5vcmc+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmMKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaAoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtCgkgIFBvcnRlZCBmZHNyYyB0byAwLjkuCgoyMDA1LTA3LTE2IDE0OjUyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IGNvbXBpbGUgZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgRml4IGNvbXBpbGUgZXJyb3IuCgoyMDA1LTA3LTE2IDE0OjQxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogU3RvcmUgYW5kIHVzZSBkaXNjb250IHZhbHVlcyB3aGVuIHN5bmNpbmcgYnVmZmVycyBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFN0b3JlIGFuZCB1c2UgZGlzY29udCB2YWx1ZXMgd2hlbiBzeW5jaW5nIGJ1ZmZlcnMgYXMgZGVzY3JpYmVkCgkgIGluIGRlc2lnbiBkb2NzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgUHVzaCBkaXNjb250IGV2ZW50IHdoZW4gc3RhcnRpbmcuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBjbGVhbnVwcyBpbiBiYXNlX3RpbWUgIGRpc3RyaWJ1dGlvbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSksCgkgIChnc3RfZWxlbWVudF9nZXRfYmFzZV90aW1lKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkZWQgbWV0aG9kcyBmb3IgdGhlIGJhc2VfdGltZSBvZiB0aGUgZWxlbWVudC4KCSAgU29tZSBNVCBmaXhlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9sYXN0X3N0cmVhbV90aW1lKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgTVQgZml4ZXMuCgkgIEhhbmRsZSBzZWVraW5nIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jLCByZW1vdmUgc3RyZWFtX3RpbWUKCSAgaGFjay4KCSAgQ2xlYW51cHMgY2xvY2sgYW5kIHN0cmVhbV90aW1lIHNlbGVjdGlvbiBjb2RlLiBBZGRlZCBhY2Nlc3NvcnMKCSAgZm9yIHRoZSBzdHJlYW1fdGltZS4KCjIwMDUtMDctMTYgMTQ6MDY6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOiBVc2UgdGhlIG1hZ2ljIHdvcmQuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KTogVXNlIHRoZSBtYWdpYyB3b3JkLi4KCjIwMDUtMDctMTYgMTM6NTA6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE1ha2UgZWxlbWVudHMgc2lsZW50IGFzIHRoZSBkZWVwX25vdGlmeSByZWZzIHRoZSBwYXJlbnQsIHdoaWNoIG1pZ2h0IG1ha2UgdGhlIHRlc3QgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGVsZW1lbnRzIHNpbGVudCBhcyB0aGUgZGVlcF9ub3RpZnkgcmVmcyB0aGUKCSAgcGFyZW50LCB3aGljaCBtaWdodCBtYWtlIHRoZSB0ZXN0IGZhaWwuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBEb24ndCBob2xkIHRoZSBsb2NrIGZvciB0b28gbG9uZy4KCjIwMDUtMDctMTYgMTI6MzM6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVucmVmIHRoZSBjYXBzIHdlIHBhc3NlZCB0byBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlKCkgYWZ0ZXIgcGFzc2luZyB0aGVtLiBnc3RfY2Fwc19tYWtlX3cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgRG9uJ3QgdW5yZWYgdGhlIGNhcHMgd2UgcGFzc2VkIHRvIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSBhZnRlcgoJICBwYXNzaW5nIHRoZW0uIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSB3aWxsIGRvIHRoYXQgZm9yIHVzLgoKMjAwNS0wNy0xNSAxNjoxMDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNhcHMuaCAoZ3N0X2NhcHNfaXNfc2ltcGxlKTogUmVtb3ZlZCBkZXByZWNhdGVkIG1hY3JvICgjMTU3MzExKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNhcHMuaCAoZ3N0X2NhcHNfaXNfc2ltcGxlKTogUmVtb3ZlZCBkZXByZWNhdGVkIG1hY3JvCgkgICgjMTU3MzExKS4KCjIwMDUtMDctMTUgMTQ6NTk6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpOiBXcml0ZSBvdXIgb3duIG1hcnNoYWxsaW5nIGZ1bmN0aW9uIGZvciB0aGUgaGFuZG9mZiBzaWduYWwuIFByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKTogV3JpdGUgb3VyCgkgIG93biBtYXJzaGFsbGluZyBmdW5jdGlvbiBmb3IgdGhlIGhhbmRvZmYgc2lnbmFsLiBQcm9wZXJseSB0eXBlIHRoZQoJICBidWZmZXIgYXMgYSBidWZmZXIuIEZpeGVzIHNvbWUgd2FybmluZ3MuIFNob3VsZCBkbyBhIG1vcmUgZ2VuZXJhbAoJICBzb2x1dGlvbi4KCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KTogUGx1ZyBpbnRvIHRoZSByaWdodCBtYXJzaGFsbGVyLgoKMjAwNS0wNy0xNSAxMzo0NDoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogVXBkYXRlZCBkb2NzLCBtb3N0bHkgRElTQ09OVCByZWxhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICBVcGRhdGVkIGRvY3MsIG1vc3RseSBESVNDT05UIHJlbGF0ZWQuCgoyMDA1LTA3LTE1IDEyOjU1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6IHMvR1NUX1BBRF9MSU5LX1JFRlVTRUQvRkFMU0UvIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICBzL0dTVF9QQURfTElOS19SRUZVU0VEL0ZBTFNFLyBpbiBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKQoKMjAwNS0wNy0xNSAxMTowNTo1MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIHJlbW92ZSBpcnJlbGV2YW50IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBpcnJlbGV2YW50IGNvZGUKCjIwMDUtMDctMTUgMTE6MDQ6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC10eXBlZmluZC5jOiBVcGRhdGUsIGFkZCBjb3B5cmlnaHQgYmxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiBVcGRhdGUsIGFkZCBjb3B5cmlnaHQgYmxvY2suCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBOb3JtYWxpemUgYW5kIHRydW5jYXRlIGNhcHMgYmVmb3JlIGZpeGF0aW9uLgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNhcHMuYyAoZ3N0X2NhcHNfdHJ1bmNhdGUpOiBOZXcgZnVuY3Rpb24sIGRlc3RydWN0aXZlbHkKCSAgZGlzY2FyZHMgYWxsIGJ1dCB0aGUgZmlyc3Qgc3RydWN0dXJlIGZyb20gaXRzIGFyZ3VtZW50LgoKMjAwNS0wNy0xNSAxMDo0MTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFrZSBwYXNzdGhyb3VnaCB3b3JrIHVzaW5nIHRoZSBidWZmZXJwb29scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFrZSBwYXNzdGhyb3VnaCB3b3JrIHVzaW5nIHRoZSBidWZmZXJwb29scy4KCSAgQ2hhbmdlZCBBUEkgYSBiaXQsIHN1YmNsYXNzZXMgaGF2ZSB0byB3cml0ZSBpbnRvIGEgYnVmZmVyCgkgIHByb3ZpZGVkIGJ5IHRoZSBiYXNlIGNsYXNzLgoJICBNb3JlIGRlYnVnIGluZm8gaW4gbmVnbyBmdW5jdGlvbnMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKToKCSAgUG9ydCB0byBuZXcgYmFzZSBjbGFzcy4KCjIwMDUtMDctMTUgMTA6MzA6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBUb3RhbGx5IGR1bXAgbWVzc2FnZXMgaW4gLWxhdW5jaCB3aXRoIHRoZSAtbSBvcHRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgVG90YWxseSBkdW1wIG1lc3NhZ2VzIGluIC1sYXVuY2ggd2l0aCB0aGUgLW0gb3B0aW9uLgoJICBGaXggbWVzc2FnZSBuYW1lIGZvciBTdGF0ZSBtZXNzYWdlcywKCjIwMDUtMDctMTQgMTg6NDU6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFBvc3QgZXJyb3IgbWVzc2FnZXMgb24gZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFBvc3QgZXJyb3IgbWVzc2FnZXMgb24gZXJyb3JzLgoKMjAwNS0wNy0xNCAxODoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IFJlbW92ZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpOgoJICBSZW1vdmUgZGVidWcgaW5mby4KCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgRGVmaW5lIGVycm9yIGZvciBzdHJlYW0gc3RvcHBlZC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKToKCSAgRG8gcHJvcGVyIHJldHVybiB2YWx1ZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UpOgoJICBCZXR0ZXIgcmV0dXJuIHZhbHVlcy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFJlb3JnYW5pc2UgcmV0dXJuIHZhbHVlcywgYWRkIG1hY3JvIHRvIGNoZWNrIGZvciBmYXRhbCBlcnJvcnMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBSZXR1cm4gcHJvcGVyIEdzdEZsb3dSZXR1cm4gdmFsdWVzLAoKMjAwNS0wNy0xNCAwOTozNToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwYXJhbS5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGxpbmludC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcG1hbi5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcHNtb290aC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdHVuaXRjb252ZXJ0LnNnbWw6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBtb3JlIGF1dGlzdGljIGNsZWFubGluZXNzIGluIGZ1bmN0aW9ucy9uYW1lcy9kZWZpbmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGF1dGlzdGljIGNsZWFubGluZXNzIGluIGZ1bmN0aW9ucy9uYW1lcy9kZWZpbmVzCgoyMDA1LTA3LTEzIDE4OjI5OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGZpeCBkZWJ1ZyBpZmRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRlYnVnIGlmZGVmCgoyMDA1LTA3LTEzIDE2OjI2OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19zdGFydCk6IFBvc3QgYW4gZXJyb3IgaWYgdGhlIHNvdXJjZSBjb3VsZG4ndCBuZWdvdGlhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KTogUG9zdCBhbiBlcnJvciBpZiB0aGUKCSAgc291cmNlIGNvdWxkbid0IG5lZ290aWF0ZS4KCjIwMDUtMDctMTMgMTM6MTQ6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LnN1cHA6CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmcm9tIEVkZ2FyZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZnJvbSBFZGdhcmQKCjIwMDUtMDctMTMgMTM6MTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSB0d28gdGVzdHN1aXRlIGFwcHMgb3ZlciB0byB0aGUgY2hlY2sgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX2NvbXBhcmUuYzoKCSAgKiB0ZXN0c3VpdGUvY2Fwcy92YWx1ZV9pbnRlcnNlY3QuYzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIG1vdmUgdHdvIHRlc3RzdWl0ZSBhcHBzIG92ZXIgdG8gdGhlIGNoZWNrIGRpcgoKMjAwNS0wNy0xMiAxNzoxNzozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkZWQgbW9yZSBkZWJ1ZyBpbmZvIGluIHRoZSBuZWdvdGlhdGUgcHJvY2Vzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBBZGRlZCBtb3JlIGRlYnVnIGluZm8gaW4gdGhlIG5lZ290aWF0ZSBwcm9jZXNzLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFByZXBhcmUgZm9yIHNlZ21lbnQgcGxheWJhY2suCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU29tZSBtb3JlIGRvY3MuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIE5VTEwgcGlwZWxpbmUgb24gZXJyb3JzLgoKMjAwNS0wNy0xMiAxNzowNDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9jb3B5KTogQ29weSB0aGUgYnVmZmVyIHdoZXRoZXIgb3Igbm90IGl0IGNvbWVzIGZyb20gYSBtYWxsb2MgcmVnaW9uLiBNYWtlIHN1cmUgb3VyIGNvcHkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfY29weSk6IENvcHkgdGhlIGJ1ZmZlciB3aGV0aGVyIG9yCgkgIG5vdCBpdCBjb21lcyBmcm9tIGEgbWFsbG9jIHJlZ2lvbi4gTWFrZSBzdXJlIG91ciBjb3B5IGdldHMgZnJlZWQuCgoyMDA1LTA3LTEyIDE2OjI4OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGZpeCByZWZjb3VudGluZyBvZiB3YXJuaW5nIGFuZCBlcnJvciBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHJlZmNvdW50aW5nIG9mIHdhcm5pbmcgYW5kIGVycm9yIG1lc3NhZ2VzCgoyMDA1LTA3LTEyIDEzOjI2OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcmUtZW5hYmxlIGxlYWsgY2hlY2tpbmcgOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlLWVuYWJsZSBsZWFrIGNoZWNraW5nIDopCgoyMDA1LTA3LTEyIDEyOjIwOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgcGVyLXRlc3QgdmFsZ3JpbmQgdGFyZ2V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHBlci10ZXN0IHZhbGdyaW5kIHRhcmdldHMKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9kYXRhX3Byb3RvY29sX3N1aXRlKSwgKG1haW4pOgoJICBjbGVhbiB1cAoKMjAwNS0wNy0xMiAwOTo0MTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogaW5zdGF0ZSBtb3JlIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xMiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgaW5zdGF0ZSBtb3JlIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICAqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGNoYWluX2Z1bmMpLCAoZXZlbnRfZnVuYyksCgkgIChHU1RfU1RBUlRfVEVTVCksIChmYWtlc3JjX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggdGVzdCBsZWFrcwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZmluYWxpemUpOgoJICBmaXggdGhlIHN0YXRpYyBtdXRleCBsZWFrCgoyMDA1LTA3LTExIDE4OjQxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgdHdvIG1vcmUgdGVzdHMgZm9yIHZhbGdyaW5kaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdHdvIG1vcmUgdGVzdHMgZm9yIHZhbGdyaW5kaW5nCgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHRlc3QgcmVmY291bnQgb2YgZGVzZXJpYWxpemVkIGJ1ZmZlciwgZm91bmQgYSBsZWFrCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgYWRkIG1pbmlvYmplY3QgdG8gZG9jcwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGFkZCBzb21lIGRvY3MKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3N0cmluZ191bndyYXApOgoJICBmaXggYSBoYXJkLXRvLWZpbmQgaW52YWxpZCB3cml0ZSBmb3Igb25lIG9mIHRoZSB0ZXN0cwoJICBmaXggYSBsZWFrIGZvciBkZXNlcmlhbGl6ZWQgYnVmZmVycwoKMjAwNS0wNy0xMSAxNTo0MTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIGFzIHBhcnQgb2YgbWFrZSBjaGVjayBmb3Igbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB2YWxncmluZCBhcyBwYXJ0IG9mIG1ha2UgY2hlY2sgZm9yIG5vdwoKMjAwNS0wNy0xMSAxNToyMjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHNwZWNpZnkgdG9vbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3BlY2lmeSB0b29sCgoyMDA1LTA3LTExIDE1OjE4OjMyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IFJld3JpdGUgc2NoZWR1bGluZy1jaGFwdGVyIGZvciBzY2hlZHVsaW5nIG1vZGVsIGluIDAuOS4gQWRkIGxvdHMgb2YgZXhhbXBsZSBjb2RlIGFuZCBleHBsYW5hdGlvbiBmb3IgcGFkIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgIFJld3JpdGUgc2NoZWR1bGluZy1jaGFwdGVyIGZvciBzY2hlZHVsaW5nIG1vZGVsIGluIDAuOS4gQWRkIGxvdHMKCSAgb2YgZXhhbXBsZSBjb2RlIGFuZCBleHBsYW5hdGlvbiBmb3IgcGFkIGFjdGl2YXRpb24sIGxvb3AoKSBhbmQKCSAgZ2V0cmFuZ2UoKSBmdW5jdGlvbnMgYW5kIGEgYml0IG1vcmUuIFJlbW92ZSBvbGQgY29tbWVudHMgcG9pbnRpbmcKCSAgdG8gbG9vcC1mdW5jdGlvbnMuCgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBBZGQgbG9vcC9nZXRyYW5nZSBleGFtcGxlcy4KCjIwMDUtMDctMTEgMTU6MTA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LnN1cHA6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHZhbGdyaW5kIHVuaXQgdGVzdHMgYXMgY2hlY2stbG9jYWw7IGFkZCBnc3RfZGVpbml0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YWxncmluZCB1bml0IHRlc3RzIGFzIGNoZWNrLWxvY2FsOyBhZGQgZ3N0X2RlaW5pdAoKMjAwNS0wNy0xMSAxNTowNjoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBiYXNlc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbnVtLWJ1ZmZlcnMgcHJvcGVydHkgdG8gYmFzZXNyYwoKMjAwNS0wNy0xMCAxMjowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBtb3JlIG1hY3JvIHNwbGl0dGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBtYWNybyBzcGxpdHRpbmcKCjIwMDUtMDctMTAgMDA6MDc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogYWRkIGRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgYWRkIGRlYnVnCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKToKCSAgZml4IGJ1cyBsZWFrcwoKMjAwNS0wNy0wOSAyMzo1MjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpeCBjYXBzIGxlYWsgaW4gYm90aCBjYXNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGNhcHMgbGVhayBpbiBib3RoIGNhc2VzCgoyMDA1LTA3LTA5IDIzOjQ4OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZHVoLCByZW1vdmUgdW51c2VkIHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZHVoLCByZW1vdmUgdW51c2VkIHZhcgoKMjAwNS0wNy0wOSAyMzo0NzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZml4IGEgY2FwcyBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBjYXBzIGxlYWsKCjIwMDUtMDctMDkgMjM6MzM6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBhZGQgZmluYWxpemUgbWV0aG9kIGFuZCBjbGVhbiB1cCBwcm9wZXJseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZmluYWxpemUpOgoJICBhZGQgZmluYWxpemUgbWV0aG9kIGFuZCBjbGVhbiB1cCBwcm9wZXJseQoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOgoJICBhZGQgZGVidWcKCjIwMDUtMDctMDkgMjM6MTU6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBkb24ndCBnZXQgc3JjIGZvciBhbGwgbWVzc2FnZXM7IG9ubHkgZm9yIGVvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZ2V0IHNyYyBmb3IgYWxsIG1lc3NhZ2VzOyBvbmx5IGZvciBlb3MKCjIwMDUtMDctMDkgMjI6NTQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBhZGQgbW9yZSB0aGluZ3MgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgbW9yZSB0aGluZ3MgdG8gY2hlY2sKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIG1vcmUgZGVidWcKCjIwMDUtMDctMDkgMTY6MzY6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmg6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBhZGQgZGVidWdnaW5nIGNhdGVnb3J5IHVzZSBHU1RfU1RBUlRfVEVTVCBub3csIHNvIHdlIGFkZCBhIGRlYnVnIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkKCSAgdXNlIEdTVF9TVEFSVF9URVNUIG5vdywgc28gd2UgYWRkIGEgZGVidWcgbGluZQoKMjAwNS0wNy0wOSAxNToxODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IGFkZCB0ZXN0IGZvciBzdGF0ZSBjaGFuZ2UgbWVzc2FnZSBvbiBhIGJpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChTVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgdGVzdCBmb3Igc3RhdGUgY2hhbmdlIG1lc3NhZ2Ugb24gYSBiaW4KCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoU1RBUlRfVEVTVCksIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIGFkZCBhbm90aGVyIHRlc3QKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaW5pdCksIChnc3RfYnVzX3Bvc3QpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3KToKCSAgKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkgIHZhcmlvdXMgZGVidWdnaW5nIGFkZGl0aW9ucyBhbmQgY2xlYW51cHMKCjIwMDUtMDctMDggMTY6NDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGFkZGluZyB0ZXN0cyBmb3IgZWxlbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyB0ZXN0cyBmb3IgZWxlbWVudHMKCjIwMDUtMDctMDggMTY6MTY6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogcGx1ZyBtb3JlIGxlYWtzLiAgQSBzaW1wbGUgZ3N0X2luaXQoKSBub3cgaXMgbGVha2ZyZWUsIHlheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfZmVhdHVyZSk6CgkgIHBsdWcgbW9yZSBsZWFrcy4gIEEgc2ltcGxlIGdzdF9pbml0KCkgbm93IGlzIGxlYWtmcmVlLCB5YXkuCgoyMDA1LTA3LTA4IDE2OjA4OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgcGx1ZyBhbm90aGVyIG1lbWxlYWsgaW4gcmVnaXN0cnkgbG9hZGluZyAtIEkgaGF2ZSBOTyBpZGVhIHdoeSB0aGlzIHdhcyByZXR1cm5pbmcgYSBHc3RQbHVnaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBsdWcgYW5vdGhlciBtZW1sZWFrIGluIHJlZ2lzdHJ5IGxvYWRpbmcgLSBJIGhhdmUgTk8gaWRlYSB3aHkgdGhpcyB3YXMgcmV0dXJuaW5nIGEgR3N0UGx1Z2luCgoyMDA1LTA3LTA4IDE0OjUwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgIEkgbmVlZCB0byBsZWFybiB0byBzdG9wIGRvaW5nIHRoaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEkgbmVlZCB0byBsZWFybiB0byBzdG9wIGRvaW5nIHRoaXMKCjIwMDUtMDctMDggMTQ6Mzk6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBhZGQgcmlnaHQgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCByaWdodCB2YXJpYWJsZQoKMjAwNS0wNy0wOCAxNDozNTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSBHU1RfU0VUX0VSUk9SX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBHU1RfU0VUX0VSUk9SX0NGTEFHUwoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGNoYW5nZSB0byBFUlJPUl9DRkxBR1MKCjIwMDUtMDctMDggMTQ6MDE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBtYWtlIEdTVF9FUlJPUl9DRkxBR1Mgb3ZlcnJpZGFibGUgYW5kIHJlLWVuYWJsZSBXZXJyb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBtYWtlIEdTVF9FUlJPUl9DRkxBR1Mgb3ZlcnJpZGFibGUgYW5kIHJlLWVuYWJsZSBXZXJyb3IKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBhZGQgYSBub3RlIGFib3V0IGVycm9yIENGTEFHUwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGNvbW1lbnQgb3V0IHNvbWUgdW51c2VkIGNvZGUKCSAgKiBnc3QvZ3N0LmM6IChzcGxpdF9hbmRfaXRlcmF0ZSk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGxvYWRfZmVhdHVyZSk6CgkgIHBsdWcgc29tZSBtZW1sZWFrcwoKMjAwNS0wNy0wNyAxNTowNzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIG1ha2UgbGlicyB1c2Ugc2FtZSBndGstZG9jLm1hawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBsaWJzIHVzZSBzYW1lIGd0ay1kb2MubWFrCgoyMDA1LTA3LTA3IDE0OjE2OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBmYWN0b3Igb3V0IGd0ay1kb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZhY3RvciBvdXQgZ3RrLWRvYwoKMjAwNS0wNy0wNyAxNDowMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiBVbmxvY2sgdGhlIFNUUkVBTV9MT0NLIGNvbXBsZXRlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9kaXNwb3NlKToKCSAgVW5sb2NrIHRoZSBTVFJFQU1fTE9DSyBjb21wbGV0ZWx5LgoKMjAwNS0wNy0wNyAxMzoxNDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDctMDcgMTM6MTI6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA3LTA3IDExOjU5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBhZGRpbmcgYW4gZWxlbWVudCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgYW4gZWxlbWVudCB0ZXN0CgoyMDA1LTA3LTA3IDExOjA5OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKTogUmVtb3ZlIGludGVuc2VseSBpcnJpdGF0aW5nIGRlYnVnIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpOiBSZW1vdmUgaW50ZW5zZWx5IGlycml0YXRpbmcKCSAgZGVidWcgbWVzc2FnZS4KCjIwMDUtMDctMDcgMTA6MDM6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGFub3RoZXIgZG9jIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBkb2MgZml4CgoyMDA1LTA3LTA3IDA5OjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL0JVSUxEOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbW9yZSBtYWNvc3ggbWFkbmVzcyBmaXhpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgbWFjb3N4IG1hZG5lc3MgZml4aW5nCgoyMDA1LTA3LTA3IDA4OjQzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IFJlbW92ZSBvbGQgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbW92ZSBvbGQgdHlwZXMKCjIwMDUtMDctMDcgMDg6MTY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsbG93IHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50IHRoZWlyIG93biBuZWdvdGlhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX25lZ290aWF0ZSk6CgkgIEFsbG93IHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50IHRoZWlyIG93biBuZWdvdGlhdGlvbi4KCjIwMDUtMDctMDYgMTc6MTc6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGUgZGVzaWduIG5vdGVzIHRvIHJlZmxlY3QgdGhlIG1vdmVtZW50IG9mIHJlc3BvbnNpYmlsaXR5IGZvciBidXMgaGFuZGxpbmcgZnJvbSBHc3RQaXBlbGluZSB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIFVwZGF0ZSBkZXNpZ24gbm90ZXMgdG8gcmVmbGVjdCB0aGUgbW92ZW1lbnQgb2YKCSAgcmVzcG9uc2liaWxpdHkgZm9yIGJ1cyBoYW5kbGluZyBmcm9tIEdzdFBpcGVsaW5lIHRvCgkgIEdzdEJpbgoKMjAwNS0wNy0wNiAxNjo0NTo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBxdWV1ZTIvMy80IGV4YW1wbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSBxdWV1ZTIvMy80IGV4YW1wbGVzLgoKMjAwNS0wNy0wNiAxNjoyMjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleGFtcGxlcy86IFVwZGF0ZSBhIGNvdXBsZSBvZiB0aGUgZXhhbXBsZXMgdG8gd29yayBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzogKG1haW4pOgoJICBVcGRhdGUgYSBjb3VwbGUgb2YgdGhlIGV4YW1wbGVzIHRvIHdvcmsgYWdhaW4uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICBTcGVsbGluZyBjb3JyZWN0aW9ucyBhbmQgZXh0cmEgZGVidWcuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksIChpc19lb3MpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGdzdF9iaW5fZ2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9kaXNwb3NlKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBNb3ZlIHRoZSBidXMgaGFuZGxlciBmb3IgY2hpbGRyZW4gdG8gdGhlIEdzdEJpbiwgYW5kIGNyZWF0ZSBhCgkgIHNlcGFyYXRlIGJ1cyBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIGZyb20gY2hpbGRyZW4gdG8gdGhlIG9uZSB0aGUKCSAgYnVzIHNlbmRzICd1cHdhcmRzJyBvbi4KCjIwMDUtMDctMDYgMTM6MjU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IE1ha2UgYmFzZXNyYyBuZWdvdGlhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldGNhcHMpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwgKGdzdF9iYXNlX3NyY19uZWdvdGlhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWFrZSBiYXNlc3JjIG5lZ290aWF0ZS4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHByZXJvbGwgZmFpbHMgaW4gYmFzZXNpbmsuCgkgIFVwZGF0ZSBSRUFETUUuCgoyMDA1LTA3LTA2IDEzOjIwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXBsZW1lbnQgdGhlIGZpeGF0ZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maXhhdGVfY2FwcyksIChnc3RfcGFkX2FjY2VwdF9jYXBzKToKCSAgSW1wbGVtZW50IHRoZSBmaXhhdGUgZnVuY3Rpb24uCgkgIENsZWFuIHVwIGFjY2VwdGNhcHMuCgoyMDA1LTA3LTA2IDEyOjI0OjUwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IFJlbW92ZSBuZXZlci13cml0dGVuIGZpbHRlci1mYWN0b3J5IGNoYXB0ZXI7IEknbGwgYWRkIHRoZSB2YXJpb3VzIGJhc2UgY2xhc3NlcyB0byBwYXJ0IDQgKCJvdGhlciBlbGVtZW50IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctZmlsdGVyZmFjdG9yeS54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgUmVtb3ZlIG5ldmVyLXdyaXR0ZW4gZmlsdGVyLWZhY3RvcnkgY2hhcHRlcjsgSSdsbCBhZGQgdGhlIHZhcmlvdXMKCSAgYmFzZSBjbGFzc2VzIHRvIHBhcnQgNCAoIm90aGVyIGVsZW1lbnQgdHlwZXMiKSBsYXRlciBvbi4KCjIwMDUtMDctMDYgMTI6MTg6MDAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEFkZCBhIGNoYXB0ZXIgb24gY2FwcyBuZWdvdGlhdGlvbiwgc2ltcGxpZnkgdGhlIG9yaWdpbmFsIGNvZGUgc2FtcGxlcyBhIGJpdCB3LnIudC4gY2FwcyBuZWdvdGlhdGlvbiwgYWRkIGxpbmsgdG8gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgQWRkIGEgY2hhcHRlciBvbiBjYXBzIG5lZ290aWF0aW9uLCBzaW1wbGlmeSB0aGUgb3JpZ2luYWwgY29kZQoJICBzYW1wbGVzIGEgYml0IHcuci50LiBjYXBzIG5lZ290aWF0aW9uLCBhZGQgbGluayB0byB0aGUgYWR2YW5jZWQKCSAgc2VjdGlvbi4gQWRkIGEgYnVuY2ggb2YgZXhhbXBsZXMgc2hvd2luZyBkaWZmZXJlbnQgdXNlIGNhc2VzIG9mCgkgIGRpZmZlcmVudCB0eXBlcyBvZiBjYXBzIG5lZ290aWF0aW9uLiBVcHN0cmVhbSByZW5lZ290aWF0aW9uIGlzbid0CgkgIGZ1bGx5IGRvY3VtZW50ZWQgeWV0IHNpbmNlIG5vYm9keSBrbm93cyBob3cgdGhhdCB3b3Jrcy4KCjIwMDUtMDctMDYgMTE6MzQ6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICBwYyBmaWxlIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYyBmaWxlIGNsZWFudXBzCgoyMDA1LTA3LTA2IDExOjMxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGlmIHBhZCBoYXMgbm8gcGFyZW50LCByZXR1cm4gTlVMTCBhcyBsaXN0IG9mIGludGVybmFsIGxpbmtzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSAgKiBjaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBpZiBwYWQgaGFzIG5vIHBhcmVudCwgcmV0dXJuIE5VTEwgYXMgbGlzdCBvZiBpbnRlcm5hbCBsaW5rcwoKMjAwNS0wNy0wNSAxNjozODoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0Lzogcy9CQVNFU1JDL0JBU0VfU1JDL2cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogcy9CQVNFU1JDL0JBU0VfU1JDL2cuCgoyMDA1LTA3LTA1IDE1OjI4OjE4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDctMDUgMTI6MTc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkgIGJldHRlciByZXBvcnQgZ2VucmF0aW9uIHRhcmdldCAobGNvdiBuZWVkcyBhIHBhdGNoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmV0dGVyIHJlcG9ydCBnZW5yYXRpb24gdGFyZ2V0IChsY292IG5lZWRzIGEgcGF0Y2gpCgoyMDA1LTA3LTA1IDEwOjU4OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMsIHRlc3RzdWl0ZTogTnVsbCBpZiB3ZSBnb3QgaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzLCB0ZXN0c3VpdGU6IE51bGwgaWYgd2UgZ290IGl0Li4uCgoyMDA1LTA3LTA1IDEwOjIwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUG9ydGVkIGRhdGFwcm90b2wgdG8gMC45LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF92YWxpZGF0ZV9wYWNrZXQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIFBvcnRlZCBkYXRhcHJvdG9sIHRvIDAuOS4KCSAgQWRkZWQgcGtnY29uZmlnIGZpbGVzLgoKMjAwNS0wNy0wNSAwOTozNToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IERlZmF1bHQgdG8gcmV0dXJuaW5nIFRSVUUgZm9yIHRoZSBjYXNlIHdoZW4gdHJhbmZvcm1fY2FwcyByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBEZWZhdWx0IHRvIHJldHVybmluZyBUUlVFIGZvciB0aGUgY2FzZSB3aGVuIHRyYW5mb3JtX2NhcHMgcmV0dXJucwoJICBhIGZpeGVkIGNhcHMsIGxpa2UgZm9yIGlkZW50aXR5IG9yIHZvbHVtZS4KCjIwMDUtMDctMDUgMDg6NDc6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrLzogQXBwbGljYXRpb24gbWVzc2FnZSBBUEkgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmMgKHBvdW5kX2J1c193aXRoX21lc3NhZ2VzKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jIChTVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChnb3RfaGFuZG9mZik6IEFwcGxpY2F0aW9uCgkgIG1lc3NhZ2UgQVBJIGNoYW5nZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogTW9yZQoJICBsb2dpYyB3ZWFrcyBoZXJlOiBhbHdheXMgcnVuIHRyYW5zZm9ybV9jYXBzLCB0cnlpbmcgcGFzc3Rocm91Z2gKCSAgb3BlcmF0aW9uIG9ubHkgaWYgdGhlIG9yaWdpbmFsIGNhcHMgaW50ZXJzZWN0cyB3aXRoIHRoZSB0cmFuc2Zvcm0uCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6IERlYnVnCgkgIHNvdXJjZSBhbmQgc2luayBjYXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOgoJICBJbnRlcnNlY3QgdGhlIHBlZXIgY2FwcyB3aXRoIHRoZSBwYWQgdGVtcGxhdGUgYmVmb3JlIGdvaW5nIGludG8KCSAgdHJhbnNmb3JtX2NhcHMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOiBNb3JlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOiBUYWtlIGEgR3N0T2JqZWN0CgkgIHNyYyBhcmd1bWVudC4KCjIwMDUtMDctMDQgMTU6MDg6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuKjogbm93IHJldHVybnMgdGhlIHNpZ25hbCBpZCBmb3IgYmV0dGVyIHdyYXBwaW5nIGluIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKGdzdF9wYWRfYWRkXypfcHJvYmUpOiBub3cgcmV0dXJucyB0aGUgc2lnbmFsIGlkIGZvciBiZXR0ZXIgd3JhcHBpbmcKCSAgaW4gYmluZGluZ3MuCgoyMDA1LTA3LTA0IDA5OjIyOjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IE9ubHkgc2V0IGV4cGxpY2l0IGNhcHMgb24gcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiBPbmx5IHNldCBleHBsaWNpdCBjYXBzIG9uIHBhZHMuCgoyMDA1LTA3LTAxIDE2OjQ2OjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogQ29tbWVudGFyeSB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTAxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBDb21tZW50YXJ5IHVwZGF0ZS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoUFJPUF9EVVBMSUNBVEUpOiBHb25lIGRhZGR5IGdvbmUuCgkgIERpZG4ndCByZWFsbHkgbWFrZSBzZW5zZSwgbm90IGltcGxlbWVudGFibGUgd2l0aCBiYXNldHJhbnNmb3JtLAoJICBldGMuCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKTogVW5yZWYgaW5idWYgdmlhIG1ha2Vfd3JpdGFibGUuIEZlZWJsZQoJICBhdHRlbXB0IGF0IGltcGxlbWVudGluZyB0aGUgc3luYyBwcm9wZXJ0eSwgbmVlZHMgYW4gdW5sb2NrIG1ldGhvZC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIE5ldyBmdW5jLCBieSBkZWZhdWx0IHJldHVybnMgdGhlIHNhbWUgY2FwcyAodGhlIGlkZW50aXR5CgkgIHRyYW5zZm9ybWF0aW9uKS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKTogVXNlcyB0cmFuc2Zvcm1fY2FwcyB0byByZXR1cm4KCSAgc29tZXRoaW5nIHNlbnNpYmxlLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBDb21wbGljYXRlZCBsb2dpYyB0byBnZXQgY2FwcyBvbgoJICBib3RoIHBhZHMsIGV2ZW4gaWYgdGhleSBhcmUgZGlmZmVyZW50LCBhbmQgdG8gY2FsbCBzZXRfY2FwcyBvbmNlCgkgIGZvciBldmVyeSB0aW1lIGJvdGggcGFkcyBnZXQgdGhlaXIgY2FwcyBzZXQuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6IEdpdmUgdGhlIHJlZiB0byB0aGUgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uLiBBbGxvd3MgaW4tcGxhY2UgbW9kaWZpY2F0aW9uIG9mIHRoZSBidWZmZXIuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oICh0cmFuc2Zvcm1fY2Fwcyk6IE5ldyBjbGFzcyBtZXRob2QuCgkgIEdpdmVuIGNhcHMgb24gb25lIHNpZGUsIHdoYXQgY2FuIEkgZG8gb24gdGhlIG90aGVyLgoJICAoc2V0X2NhcHMpOiBUYWtlIHR3byBjYXBzLCBvbmUgZm9yIGVhY2ggc2lkZSBvZiB0aGUgZWxlbWVudC4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKTogQ2hhbmdlIHByb3RvdHlwZSB0byBtb2RpZnkKCSAgY2FwcyBpbiBwbGFjZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2Ugd2UgY2FuIGNoZWNrIHRoZSBtdXRhYmlsaXR5IG9mCgkgIHRoZSBjYXBzLCBhbmQgYSBnb29kIGlkZWEgYmVjYXVzZSBmaXhhdGUgZnVuY3Rpb25zIGFyZSBqdXN0IGNhbGxlZAoJICBhcyBhIG1hdHRlciBvZiBsYXN0IHJlc29ydC4gKE5vdCBhY3R1YWxseSBpbXBsZW1lbnRlZC4pCgkgIChnc3RfcGFkX3NldF9jYXBzKTogSWYgdGhlIGNhcHMgd2UncmUgc2V0dGluZyBpcyBhY3R1YWxseSB0aGUgc2FtZQoJICBhcyB0aGUgZXhpc3RpbmcgcGFkIGNhcHMsIGp1c3QgdXBkYXRlIHRoZSBwb2ludGVyIHdpdGhvdXQgY2FsbGluZwoJICBzZXRjYXBzLiBBc3NlcnQgdGhhdCBjYXBzIGlzIGVpdGhlciBOVUxMIG9yIGZpeGVkLCBhcyBwZXIgdGhlCgkgIGRvY3MuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IFVwZGF0ZSBmb3IgZml4YXRlIGNoYW5nZXMuCgoyMDA1LTA3LTAxIDE0OjM2OjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUHV0IHRoZSBtaW5pX29iamVjdCBpbnRvIEdWYWx1ZSBhcyBhIG1pbmlfb2JqZWN0LCBub3QgYSBncG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDIgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCk6CgkgIFB1dCB0aGUgbWluaV9vYmplY3QgaW50byBHVmFsdWUgYXMgYSBtaW5pX29iamVjdCwKCSAgbm90IGEgZ3BvaW50ZXIuCgoyMDA1LTA3LTAxIDE0OjIwOjE5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06IEZpeCBidWlsZGJvdCBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGRib3QgYWdhaW4uCgoyMDA1LTA3LTAxIDEzOjAxOjQ3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogQWRkIGV4dHJhIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgQWRkIGV4dHJhIGNoZWNrLgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkYm90LgoKMjAwNS0wNy0wMSAxMjo0MzowMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgRW5hYmxlIGJ1aWxkaW5nIHRoZSBQV0cgZXhhbXBsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvcHdnL2V4dHJhY3QucGw6CgkgIEVuYWJsZSBidWlsZGluZyB0aGUgUFdHIGV4YW1wbGVzLgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBBZGQgVVJJIGludGVyZmFjZSBzdHViLgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1hdXRvcGx1Z2dlci54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgQWRkIHBvcnRpbmcgZ3VpZGUgKG1vc3RseSBzdHVicyksIHJlbW92ZSBhdXRvcGx1Z2dpbmcgKHNlZSBBRE0pLgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgVXBkYXRlIHRoZSBidWlsZGluZy0qLnhtbCBwYXJ0cyBmb3IgMC45IGNoYW5nZXMuIEFsbCBleGFtcGxlcwoJICBjb2RlIGJsb2NrcyBjb21waWxlIGluIGV4YW1wbGVzL3B3Zy8qLgoKMjAwNS0wNi0zMCAxMjozMjoxNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBGaXggcGxheWJpbi9kZWNvZGViaW4gZXhhbXBsZXMsIHVwZGF0ZSBkb2NzIGEgYml0LCBtZW50aW9uIGJ1cyBpbnN0ZWFkIG9mIHNpZ25hbHMgaW4gdmFyaW91cyBwbGFjZXMsIG1lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBGaXggcGxheWJpbi9kZWNvZGViaW4gZXhhbXBsZXMsIHVwZGF0ZSBkb2NzIGEgYml0LCBtZW50aW9uIGJ1cwoJICBpbnN0ZWFkIG9mIHNpZ25hbHMgaW4gdmFyaW91cyBwbGFjZXMsIG1lbnRpb24ga21wbGF5ZXIgYW5kCgkgIGthZmZlaW5lIHNpbmNlIHRoZXkgaGF2ZSBhIHdvcmtpbmcgR1N0cmVhbWVyIGJhY2tlbmQgaW4gdGhlIEtERQoJICBzZWN0aW9uLgoKMjAwNS0wNi0zMCAxMjoyNjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkZWJ1ZyBkaXNhYmxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBkaXNhYmxlIGZpeGVzCgoyMDA1LTA2LTMwIDEyOjE4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgQ0hBTkdFUy0wLjkgZG9jLCB1cGRhdGVkIHN0YXR1cyBvZiBvdGhlciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDSEFOR0VTLTAuOToKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgIEFkZGVkIENIQU5HRVMtMC45IGRvYywgdXBkYXRlZCBzdGF0dXMgb2Ygb3RoZXIgZG9jcy4KCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVtb3ZlICJobW0iIG1hY3JvCgoyMDA1LTA2LTMwIDEyOjE0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogU29tZSB0d2Vha3MsIG9ubHkgRU9TIGFuZCBhIGJ1ZmZlciBjb21wbGV0ZSBhIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgU29tZSB0d2Vha3MsIG9ubHkgRU9TIGFuZCBhIGJ1ZmZlciBjb21wbGV0ZSBhIHByZXJvbGwuCgoyMDA1LTA2LTMwIDExOjM5OjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKTogUHJveHkgYWN0aXZhdGVfcHVzaCBkb3duIHRvIHRoZSBpbnRlcm5hbCBwYWQgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6IFByb3h5CgkgIGFjdGl2YXRlX3B1c2ggZG93biB0byB0aGUgaW50ZXJuYWwgcGFkIGFzIHdlbGwuCgoyMDA1LTA2LTMwIDEwOjU5OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6IFNvbWUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoIzMwNzM5NCBhbmQgIzMwNzM5NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogIFJvbmFsZCBTLiBCdWx0amUgIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICBTb21lIGRvY3VtZW50YXRpb24gZml4ZXMgKCMzMDczOTQgYW5kICMzMDczOTcpLgoKMjAwNS0wNi0zMCAxMDoyMzoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svc3RhdGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMzAgMTA6MjI6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBnbyBiYWNrIHRvIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGdvIGJhY2sgdG8gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIG5vdwoKMjAwNS0wNi0zMCAxMDoxMDowMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCBtZW1sZWFrICgjMzA5MTI1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiAgUm9uYWxkIFMuIEJ1bHRqZSAgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbnRlcnNlY3RfbGlzdCk6CgkgIEZpeCBtZW1sZWFrICgjMzA5MTI1KS4KCjIwMDUtMDYtMzAgMDk6NTk6MjcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggZmFrZXNyYyBleGFtcGxlIHRvIGNvbXBpbGU7IGRvZXNuJ3Qgd29yaywgYnVnIHNvbWV3aGVyZS4uLj8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCBmYWtlc3JjIGV4YW1wbGUgdG8gY29tcGlsZTsgZG9lc24ndCB3b3JrLCBidWcgc29tZXdoZXJlLi4uPwoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgQWRkIHJlZmVyZW5jZSBmb3IgZmlsdGVyZWQgY2FwcyB0byBhYm92ZSBjaGFwdGVyLgoKMjAwNS0wNi0zMCAwOTo0MToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTGFtZSBhdHRlbXB0IGF0IG1ha2luZyB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGEgYml0IG1vcmUgcmVhZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGNsZWFyX3F1ZXVlKSwgKHJlbW92ZV9hbGxfZnJvbV9xdWV1ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIExhbWUgYXR0ZW1wdCBhdCBtYWtpbmcgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhIGJpdAoJICBtb3JlIHJlYWRhYmxlLgoKMjAwNS0wNi0zMCAwOTozMzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIHR3ZWVrcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgU29tZSBtb3JlIHR3ZWVrcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBkb2NzLgoKMjAwNS0wNi0zMCAwOToyMzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZWQgYXRvbWljIG9wZXJhdGlvbnMsIHVzZSBleGlzdGluZyBMT0NLLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChkZWZhdWx0X2hhdmVfZGF0YSksIChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9pbml0KSwKCSAgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2F0b21pY19pbnRfc2V0KSwgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgUmVtb3ZlZCBhdG9taWMgb3BlcmF0aW9ucywgdXNlIGV4aXN0aW5nIExPQ0suCgkgIE1vdmUgZXhjZXB0aW9uIGhhbmRsaW5nIG91dCBvZiBtYWluIGNvZGUgcGF0aC4KCjIwMDUtMDYtMzAgMDc6NDU6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkcm9wIGNpcmN1bGFyIHJlZmVyZW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZHJvcCBjaXJjdWxhciByZWZlcmVuY2UKCjIwMDUtMDYtMjkgMTk6MjA6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGFjY3VtdWxhdG9yLCBhZGQgZGVmYXVsdCB2YWx1ZSBieSB1c2luZyBfZW1pdHYoKSBpbnN0ZWFkIG9mIF9lbWl0KCkgZm9yIHNpZ25hbCBlbWlzc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoc2lsbHlfcmV0dXJuX3RydWVfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgRml4IGFjY3VtdWxhdG9yLCBhZGQgZGVmYXVsdCB2YWx1ZSBieSB1c2luZyBfZW1pdHYoKSBpbnN0ZWFkCgkgIG9mIF9lbWl0KCkgZm9yIHNpZ25hbCBlbWlzc2lvbi4KCjIwMDUtMDYtMjkgMTY6NTc6NTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEFkZCBwcm9iZSBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIEFkZCBwcm9iZSBleGFtcGxlLgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKToKCSAgTWFrZSB3b3JrICg/PykuCgoyMDA1LTA2LTI5IDE2OjQ1OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGZpeCBmb3IgcHBjLCBob3BlZnVsbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBmb3IgcHBjLCBob3BlZnVsbHkKCjIwMDUtMDYtMjkgMTY6MTE6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogU2ltcGxpZnkgY29kZSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIHNob3J0IHdyaXRlcyBhbmQgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZXNpbmtfcmVuZGVyKToKCSAgU2ltcGxpZnkgY29kZSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIHNob3J0CgkgIHdyaXRlcyBhbmQgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIGFuIGVycm9yIG9jY3VyZWQuCgoyMDA1LTA2LTI5IDE2OjA1OjI2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgcHJvYmVzIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJlbW92ZSBwcm9iZXMgbW9yZS4KCjIwMDUtMDYtMjkgMTU6NTE6MjUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIFJlbW92ZSBvbGQgcHJvYmVzLCBhZGQgbmV3IGctc2lnbmFsLWJhc2VkIHByb2JlcyBhbmQgc29tZSB1dGlsaXR5IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cHJvYmUuc2dtbDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBSZW1vdmUgb2xkIHByb2JlcywgYWRkIG5ldyBnLXNpZ25hbC1iYXNlZCBwcm9iZXMgYW5kIHNvbWUgdXRpbGl0eQoJICBmdW5jdGlvbnMuCgoyMDA1LTA2LTI5IDE1OjE3OjI1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogTW92ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fW3Npbmt8c3JjXV9jYXBzKCkgdG8gZ3N0dXRpbHMgYW5kIGFkZGVkIHRoZSBkZWZpbml0aW9uIHRvIHRoZSBoZWFkZXIgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1vdmVkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX1tzaW5rfHNyY11fY2FwcygpIHRvIGdzdHV0aWxzIGFuZCBhZGRlZAoJICB0aGUgZGVmaW5pdGlvbiB0byB0aGUgaGVhZGVyIGZpbGUuCgoyMDA1LTA2LTI5IDE0OjU2OjA4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbSAoc2Nhbi1idWlsZC5zdGFtcCk6IFRvdGFsbHkgb25seSBjaGVjayBwbHVnaW5zIGZyb20gdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtIChzY2FuLWJ1aWxkLnN0YW1wKTogVG90YWxseSBvbmx5IGNoZWNrCgkgIHBsdWdpbnMgZnJvbSB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMDUtMDYtMjkgMTQ6NTI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC90bXBsLzogU29tZSBmaXhpbmdzIGZvciBibGFudGVudGx5IHdyb25nIHRleHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJICBTb21lIGZpeGluZ3MgZm9yIGJsYW50ZW50bHkgd3JvbmcgdGV4dC4KCjIwMDUtMDYtMjkgMTI6NDA6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBsb2dpYyB3YXMgcmV2ZXJzZWQsIGR1aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9naWMgd2FzIHJldmVyc2VkLCBkdWgKCjIwMDUtMDYtMjkgMTI6MjU6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIEEgR1NUX1BMVUdJTl9QQVRIX09OTFkgZW52IHZhcjsgaWYgaXQgaXMgc2V0LCBpdCB3aWxsIG9ubHkgc2NhbiB0aGUgR1NUX1BMVUdJTl9QQVRIIGxvY2F0aW9ucywgYW5kIG5vdCBhZGQgc3lzdGVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzogKGFkZF9wYXRoX2Z1bmMpLCAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoKToKCSAgYWRkIEEgR1NUX1BMVUdJTl9QQVRIX09OTFkgZW52IHZhcjsgaWYgaXQgaXMgc2V0LCBpdCB3aWxsCgkgIG9ubHkgc2NhbiB0aGUgR1NUX1BMVUdJTl9QQVRIIGxvY2F0aW9ucywgYW5kIG5vdCBhZGQKCSAgc3lzdGVtIGxvY2F0aW9ucwoKMjAwNS0wNi0yOSAxMjoyMzozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBmaXhlcwoKMjAwNS0wNi0yOSAxMjowMjoxMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogRml4IGF1dG9wbHVnZ2luZyBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBGaXggYXV0b3BsdWdnaW5nIGV4YW1wbGUuCgoyMDA1LTA2LTI5IDExOjQ2OjE2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFRyeSB0byBnZXQgYXV0b3BsdWdnaW5nIHdvcmtpbmcsIGZpeCB0eXBlIGRldGVjdGlvbi4gRml4IHRleHQgaW4gaGVsbG8td29ybGQgaW1hZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgIFRyeSB0byBnZXQgYXV0b3BsdWdnaW5nIHdvcmtpbmcsIGZpeCB0eXBlIGRldGVjdGlvbi4gRml4IHRleHQKCSAgaW4gaGVsbG8td29ybGQgaW1hZ2UuCgoyMDA1LTA2LTI5IDExOjEwOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgZGVidWcgbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGRlYnVnIGxpbmUuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIG1hcCBTSUdOQUwgYW5kIEJST0FEQ0FTVCB0byB0aGUgcmlnaHQgZnVuY3Rpb24uCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBSZW1vdmUgcmVkdW5kYW50IGJyYWNlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKToKCSAgRG9uJ3QgY2FsbCBzZXRjYXBzIGZ1bmN0aW9uIHdoZW4gcmVzZXRpbmcgY2FwcyB0byBOVUxMLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19kaXNwb3NlKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUpOgoJICBVc2UgQlJPQURDQVNUIGFzIHRoaXMgaXMgd2hhdCB3ZSBkby4KCjIwMDUtMDYtMjkgMTA6MjQ6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXZSBhcmUgYWN0dWFsbHkgcHJlcm9sbGluZyBiZWZvcmUgY29tbWl0aW5nIHRoZSBzdGF0ZSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBXZSBhcmUgYWN0dWFsbHkgcHJlcm9sbGluZyBiZWZvcmUgY29tbWl0aW5nIHRoZSBzdGF0ZQoJICBjaGFuZ2UuCgoyMDA1LTA2LTI5IDA5OjI1OjUxICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFVwZGF0ZSAodW50aWwgdGhyZWFkcy9zY2hlZHVsaW5nKSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWw7IHJlbW92ZSBHc3RUaHJlYWQsIGFkZCBHc3RCdXMsIGFkZCBzaW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXNjaGVkdWxlcnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9tYW51YWwvdGhyZWFkLmZpZzoKCSAgVXBkYXRlICh1bnRpbCB0aHJlYWRzL3NjaGVkdWxpbmcpIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsKCSAgcmVtb3ZlIEdzdFRocmVhZCwgYWRkIEdzdEJ1cywgYWRkIHNpbXBsZSBwb3J0aW5nIGNoZWNrbGlzdCwgYWRkCgkgIGRvY3VtZW50YXRpb24gZm9yIHRhZyB3cml0aW5nLCBjbG9ja3MsIG1ha2UgYWxsIGV4YW1wbGVzIHVudGlsIHRoaXMKCSAgcGFydCBjb21waWxlIGFuZCBydW4uCgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBVcGRhdGUgZnJvbSBjaGFuZ2VzIHRvIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsgYWRkIGJ1cwoJICBleGFtcGxlLCByZW1vdmUgdGhyZWFkIGV4YW1wbGUuCgoyMDA1LTA2LTI4IDE5OjQ1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBBZGQgZGVidWdnaW5nIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpLAoJICAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpLCAoZ3N0X2J1c19wb3ApLCAoZ3N0X2J1c19wZWVrKSwKCSAgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKToKCSAgQWRkIGRlYnVnZ2luZyBtZXNzYWdlcy4KCSAgTWFrZSBpbnRlcm5hbCBtZXRob2RzIHN0YXRpYy4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBidXMgaXMgZmx1c2hlZCBpbiB0aGUgaGFuZGxlci4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgIEZpeCByZWZjb3VudCBpbiBfZ2V0X2J1cygpOwoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2Nsb2NrX2Z1bmMpOgoJICBDbG9jayByZWZjb3VudGluZyBmaXhlcy4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHByZXJvbGwgdGltZWQgb3V0IG1vcmUgZ3JhY2VmdWxseS4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfZGlzcG9zZSk6CgkgIENsZWFuIHVwIHRoZSBpbnRlcm5hbCB0aHJlYWQgaW4gZGlzcG9zZS4gVGhpcyBpcyBuZWVkZWQKCSAgZm9yIHN1YmNsYXNzZXMgdGhhdCBhY3R1YWxseSBnZXQgZGlzcG9zZWQuCgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9jbGFzc19pbml0KSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZGlzcG9zZSk6CgkgIEZyZWUgdGhyZWFkIHBvb2wgaW4gZGlzcG9zZS4KCjIwMDUtMDYtMjggMTY6NTc6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWJ1ZywgcHJpbnQtZXZlbnQpOiBOZXcgdXRpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWJ1ZywgcHJpbnQtZXZlbnQpOiBOZXcgdXRpbHMuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCpkZWJ1ZyosICp3aXRoLWdyYXBoKik6IE5ldyBwYXJhbWV0ZXJzLgoJICAoKnBhY2tldC1sb3NzKik6IFVuaWZpZWQgbG9zcyBwcm9iYWJpbGl0eS4KCSAgKG5ldHdvcmstdGltZSk6IFJlcG9ydCBvdXQtb2YtYmFuZCBldmVudHMuCgkgICogdGVzdHMvcGxvdC1kYXRhOiBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWJhbmQgZXZlbnRzLiBIYWNrIGl0CgkgIGludG8gdGhpcyBzY3JpcHQgaW5zdGVhZCBvZiBwYXNzaW5nIGl0IGRvd24gdGhlIHBpcGU7IHNob3VsZCBmaXgKCSAgdGhpcyBsYXRlci4KCjIwMDUtMDYtMjggMTU6MzY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC86IERvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICBEb2NzIGZpeGVzLgoKMjAwNS0wNi0yOCAxMzo0MDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBDb3JyZWN0bHkgcHJveHkgdGhlIGNoZWNrX3B1bGxfcmFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2Fwcyk6CgkgIENvcnJlY3RseSBwcm94eSB0aGUgY2hlY2tfcHVsbF9yYW5nZSBmdW5jdGlvbi4KCjIwMDUtMDYtMjggMTI6NDU6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZpeCBmYWtlIGVsZW1lbnRzIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZha2UgZWxlbWVudHMgdG9vCgoyMDA1LTA2LTI4IDEyOjAxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkaWQgcy9iYXNlcyhyYy9pbmspXy9iYXNlX3MocmMvaW5rKV8vOyB3aW0gd2FudHMgdG8gcmVtb3ZlIGJhc2UgY29tcGxldGVseSwgYnV0IHRoYXQncyBmb3IgbGF0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpZCBzL2Jhc2VzKHJjL2luaylfL2Jhc2VfcyhyYy9pbmspXy87IHdpbSB3YW50cyB0byByZW1vdmUgYmFzZSBjb21wbGV0ZWx5LCBidXQgdGhhdCdzIGZvciBsYXRlcgoKMjAwNS0wNi0yOCAxMTo0ODo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY206IFJlbW92ZWQgbmVlZCBmb3Igc2xpYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206IFJlbW92ZWQgbmVlZCBmb3Igc2xpYi4KCjIwMDUtMDYtMjggMTE6MzY6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBUaGUgZGVwcmVjYXRlZCBwYWQgbG9vcCBmdW5jdGlvbiBpcyByZW1vdmVkIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19zZXRfcGFkX2Z1bmN0aW9ucyksCgkgIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3VwZGF0ZV9wYWRfZnVuY3Rpb25zKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgVGhlIGRlcHJlY2F0ZWQgcGFkIGxvb3AgZnVuY3Rpb24gaXMgcmVtb3ZlZCBub3cuCgoyMDA1LTA2LTI4IDExOjMzOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKnRpbWVvdXQqLCAqc2VuZC1sb3NzKiwgKnJlY3YtbG9zcyopOiBOZXcgcGFyYW1ldGVycywgc2ltdWxhdGUgbmV0d29yayBwYWNrZXQgbG9zcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCp0aW1lb3V0KiwgKnNlbmQtbG9zcyosICpyZWN2LWxvc3MqKToKCSAgTmV3IHBhcmFtZXRlcnMsIHNpbXVsYXRlIG5ldHdvcmsgcGFja2V0IGxvc3MuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY206IEluaXRpYWxpemUgdGhlIFJORy4KCjIwMDUtMDYtMjggMTE6MDI6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGbHVzaGluZyB0aGUgcHJlcm9sbCBxdWV1ZSBhbHdheXMgbmVlZHMgdG8gdW5sb2NrIHRoZSB3YWl0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19kZWFjdGl2YXRlKToKCSAgRmx1c2hpbmcgdGhlIHByZXJvbGwgcXVldWUgYWx3YXlzIG5lZWRzIHRvIHVubG9jayB0aGUgd2FpdGVycy4KCjIwMDUtMDYtMjggMTA6NDU6NDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogV2hlZW4gYSBzZWVrIHdhcyBzdWNjZXNzZnVsIG9uIGEgcGlwZWxpbmUsIHNldCB0aGUgc3RyZWFtX3RpbWUgdG8gdGhlIHNlZWsgb2Zmc2V0IGluIG9yZGVyIHRvIGhhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIFdoZWVuIGEgc2VlayB3YXMgc3VjY2Vzc2Z1bCBvbiBhIHBpcGVsaW5lLCBzZXQgdGhlIHN0cmVhbV90aW1lIHRvIHRoZQoJICBzZWVrIG9mZnNldCBpbiBvcmRlciB0byBoYXZlIGEgc3luY2hyb25pemVkIHN0cmVhbV90aW1lLgoKMjAwNS0wNi0yOCAxMDozNzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBDYWxsIHdyYXBwZXIgZnVuY3Rpb24gaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgdGhlIGZ1bmN0aW9uIHBvaW50ZXJzLiBUaGlzIHRha2VzIGNhcmUgb2YgYW55IGxvY2tpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpOgoJICBDYWxsIHdyYXBwZXIgZnVuY3Rpb24gaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgdGhlIGZ1bmN0aW9uCgkgIHBvaW50ZXJzLiBUaGlzIHRha2VzIGNhcmUgb2YgYW55IGxvY2tpbmcgYW5kIHdoYXRtb3JlLgoKMjAwNS0wNi0yOCAxMDoyODozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQ09OTkVDVEVEIC0+IExJTktFRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBDT05ORUNURUQgLT4gTElOS0VELgoKMjAwNS0wNi0yOCAwOTo1OTowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgKi5jOiBEb24ndCBjYXN0IHRvIEdTVF9PQkpFQ1Qgd2hlbiByZWZmaW5nIG9yIHVucmVmZmluZy4gTGFyZ2Ugc291cmNlLW11bmdpbmcgY29tbWl0ISEhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqICouYzogRG9uJ3QgY2FzdCB0byBHU1RfT0JKRUNUIHdoZW4gcmVmZmluZyBvciB1bnJlZmZpbmcuIExhcmdlCgkgIHNvdXJjZS1tdW5naW5nIGNvbW1pdCEhIQoKMjAwNS0wNi0yOCAwOToxNzoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X3VucmVmLCBnc3Rfb2JqZWN0X3JlZikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X3VucmVmLCBnc3Rfb2JqZWN0X3JlZikKCSAgKGdzdF9vYmplY3Rfc2luayk6IFRha2UgZ3BvaW50ZXIgYXJndW1lbnRzLCBub3QgR3N0T2JqZWN0IC0tCgkgIGF2b2lkcyBjYXN0cy4gTGlrZSBHTGliLgoKMjAwNS0wNi0yOCAwODo0MTo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpOiBEb24ndCBwcm94eSBhY3RpdmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpOiBEb24ndCBwcm94eQoJICBhY3RpdmF0ZS4KCjIwMDUtMDYtMjcgMTg6Mzk6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgc2h1dCB1cCBnY2MzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaHV0IHVwIGdjYzMKCjIwMDUtMDYtMjcgMTg6MzU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMgKGdzdF90eXBlX2ZpbmRfaGVscGVyKTogVW5yZWYgYW55IHJlbWFpbmluZyBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMgKGdzdF90eXBlX2ZpbmRfaGVscGVyKTogVW5yZWYgYW55CgkgIHJlbWFpbmluZyBidWZmZXIuCgkgICogZ3N0L2dzdHRyYWNlLmMgKGdzdF9hbGxvY190cmFjZV9saXN0X3NvcnRlZCk6IE5ldyBoZWxwZXIsCgkgIHJldHVybnMgYSBzb3J0ZWQgY29weSBvZiB0aGUgdHJhY2UgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludF9saXZlKTogTmV3IEFQSSwgb25seSBwcmludHMgdHJhY2VzIHdpdGgKCSAgbGl2ZSBvYmplY3RzLiBTb3J0IHRoZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50X2FsbCk6IFNvcnQgdGhlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnQpOiBBbGlnbiBjb2x1bW5zLgoJICAqIGdzdC9lbGVtZW50cy9nc3R0dHlwZWZpbmRlbGVtZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogQWRhcHQgZm9yIHBhZCBhY3RpdmF0aW9uIGNoYW5nZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogVW5yZWYgYWZ0ZXIgcGFyZW50aW5nCgkgIHNjaGVkLgoJICAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOiBEcm9wIHJlZiBvbiBzY2hlZC4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfaW5pdCk6IFNldCB0aGUgZGVmYXVsdCBhY3RpdmF0ZSBmdW5jLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9kZWZhdWx0KTogUHVzaCBtb2RlIGJ5IGRlZmF1bHQuCgkgIChwcmVfYWN0aXZhdGVfc3dpdGNoLCBwb3N0X2FjdGl2YXRlX3N3aXRjaCk6IE5ldyBzdHVicywgdGhpbmdzIHRvCgkgIGRvIGJlZm9yZSBhbmQgYWZ0ZXIgc3dpdGNoaW5nIGFjdGl2YXRpb24gbW9kZXMgb24gcGFkcy4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IFRha2UgYSBib29sZWFuIGFuZCBub3QgYSBtb2RlLCBkaXNwYXRjaCB0bwoJICB0aGUgcGFkJ3MgYWN0aXZhdGUgZnVuY3Rpb24gdG8gY2hvb3NlIHdoaWNoIG1vZGUgdG8gYWN0aXZhdGUuCgkgIFNob3J0Y3V0IG9uIGRlYWN0aXZhdGlvbiBhbmQgY2FsbCB0aGUgcmlnaHQgZnVuY3Rpb24gZGlyZWN0bHkuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBOZXcgQVBJLCAoZGUpYWN0aXZhdGVzIGEgcGFkIGluIHB1bGwKCSAgbW9kZS4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IE5ldyBBUEksIHNhbWUgZm9yIHB1c2ggbW9kZS4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlX2Z1bmN0aW9uKQoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdWxsX2Z1bmN0aW9uKQoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdXNoX2Z1bmN0aW9uKTogU2V0dGVycyBmb3IgbmV3IEFQSS4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfbWluaV9vYmplY3RfbmV3LCBnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgIFRyYWNlIGFsbCBtaW5pb2JqZWN0cy4KCSAgKGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKTogVW5yZWYgdGhlIGFyZyBpZiB3ZSBjb3B5LCBsaWtlCgkgIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpOiBObyB0cmFjZSBpbml0LgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKQoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1bGwsIGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdXNoKToKCSAgQWRhcHQgZm9yIG5ldyBwYWQgQVBJLgoJICAqIGdzdC9nc3RldmVudC5jIChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOiBEb24ndCBpbml0aWFsaXplIHRyYWNlLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zcmNfcGFkcykKCSAgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc2lua19wYWRzKTogTmV3IEFQSSBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoaXRlcmF0b3JfZm9sZF93aXRoX3Jlc3luYyk6IE5ldyB1dGlsaXR5LAoJICBzaG91bGQgZm9sZCBpbnRvIGdzdGl0ZXJhdG9yLmMgaW4gc29tZSBmb3JtLgoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6IFNpbXBsaWZpZWQgdmlhIHVzZSBvZiBmb2xkIGFuZAoJICBkZWxlZ2F0aW9uIG9mIGRlY2lzaW9ucyB0byBnc3RwYWQtPmFjdGl2YXRlLgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpOiBTZXQgdGhlIGJ1cyB0byBOVUxMLAoJICBoZWxwIGluIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpOiBSZWYgdGhlIGJ1ZmZlciB0eXBlCgkgIGNsYXNzIG9uY2UgaW4gaW5pdCwgbGlrZSBnc3RtZXNzYWdlLiBEaWRuJ3QgcnVuIGludG8gdGhpcyBpc3N1ZQoJICBidXQgaXQgc2VlbXMgY29ycmVjdC4gRG9uJ3QgaW5pdGlhbGl6ZSBhIHRyYWNlLCBnc3RtaW5pb2JqZWN0IGRvZXMKCSAgdGhhdC4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0X3N0b3BfZnJvbV9hcHApOiBOZXcKCSAgdGVzdCwgcnVucyBmYWtlc3JjICEgZmFrZXNpbmssIHN0b3BwaW5nIG9uIDo6aGFuZG9mZiB2aWEgYSBtZXNzYWdlCgkgIHRvIHRoZSBidXMuCgkgIChhc3NlcnRfbGl2ZV9jb3VudCk6IE5ldyB1dGlsIGZ1bmN0aW9uLCB1c2VzIGFsbG9jIHRyYWNlcyB0byBjaGVjawoJICBjbGVhbnVwLgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNb3JlIHJlZmNvdW50IGNoZWNrcy4KCSAgVG8gYmUgbW9kaWZpZWQgd2hlbiB1bmxpbmsgZHJvcHMgdGhlIGludGVybmFsIHBhZC4KCjIwMDUtMDYtMjcgMTg6MTE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENsZWFudXAgdGhlIGdldF9zdGF0ZSgpIGZ1bmN0aW9uIGEgbGl0dGxlLCBtYWtlIHN1cmUgaXQgaXRlcmF0ZXMgdGhlIHNhbWUgc2V0IG9mIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF9zdGF0ZSksIChnc3RfYmluX2l0ZXJhdGVfc3RhdGVfb3JkZXIpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbnVwIHRoZSBnZXRfc3RhdGUoKSBmdW5jdGlvbiBhIGxpdHRsZSwgbWFrZSBzdXJlIGl0CgkgIGl0ZXJhdGVzIHRoZSBzYW1lIHNldCBvZiBlbGVtZW50cy4KCSAgQWRkZWQgc3R1YiBpdGVyYXRlX3N0YXRlX29yZGVyKCkuCgoyMDA1LTA2LTI3IDE0OjQwOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGFkZGluZyBiYXNldHJhbnNmb3JtIGFuZCBpdGVyYXRvciBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgYmFzZXRyYW5zZm9ybSBhbmQgaXRlcmF0b3IgZG9jcwoKMjAwNS0wNi0yNyAxMzoyNTo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDogTm90ZXMgb24gaG93IGFjdGl2YXRpb24gc2hvdWxkIHdvcmsgLS0gbm90IHF1aXRlIGltcGxlbWVudGVkIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDogTm90ZXMgb24gaG93IGFjdGl2YXRpb24gc2hvdWxkCgkgIHdvcmsgLS0gbm90IHF1aXRlIGltcGxlbWVudGVkIHlldC4KCjIwMDUtMDYtMjcgMDg6NTQ6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkgIHJlbW92ZSBzdHVmZiB0aGF0IGlzbid0IHRoZXJlIGFueW1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzdHVmZiB0aGF0IGlzbid0IHRoZXJlIGFueW1vcmUKCjIwMDUtMDYtMjcgMDg6MTY6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBtb3JlIGRvYyBhbmQgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBkb2MgYW5kIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMDYtMjUgMTk6NTM6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQXQgbGVhc3QgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBjb3JyZWN0LCBuZWVkcyBtb3JlIGZpeGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2NoYWluKToKCSAgQXQgbGVhc3QgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBjb3JyZWN0LCBuZWVkcyBtb3JlCgkgIGZpeGluZy4KCjIwMDUtMDYtMjUgMTk6Mzc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSaWdodCwgdHdvIHByb2JsZW1zIGhlcmU6IGdob3N0cGFkcyBkb24ndCB0YWtlIGxvY2tzIGFuZCBnbGliIF9yZWNfbXV0ZXhfbG9ja19mdWxsKCkgd2l0aCBkZXB0aD09MCBzdGlsbCBsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlc2lua19ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFJpZ2h0LCB0d28gcHJvYmxlbXMgaGVyZTogZ2hvc3RwYWRzIGRvbid0IHRha2UgbG9ja3MgYW5kCgkgIGdsaWIgX3JlY19tdXRleF9sb2NrX2Z1bGwoKSB3aXRoIGRlcHRoPT0wIHN0aWxsIGxvY2tzLgoJICBDYXRjaCBpbGxlZ2FsIGxvY2tpbmcgYW5kIGdfd2FybiB0aGVtLgoKMjAwNS0wNi0yNSAxOToxNDo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBIYXZlIHRvIGNoZWNrIGZvciBjb21wbGV0aW9uIG5vdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgIEhhdmUgdG8gY2hlY2sgZm9yIGNvbXBsZXRpb24gbm93Li4uCgoyMDA1LTA2LTI1IDE5OjA5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVW5sb2NrIFNUUkVBTV9MT0NLIHdoYXRldmVyIHRoZSByZWN1cnNpb24gd2FzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBVbmxvY2sgU1RSRUFNX0xPQ0sgd2hhdGV2ZXIgdGhlIHJlY3Vyc2lvbiB3YXMuCgoyMDA1LTA2LTI1IDE3OjU0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmV3b3JrZWQgdGhlIGJhc2Ugc2luaywgaGFuZGxlIGV2ZW50IGFuZCBidWZmZXIgc2VyaWFsaXNhdGlvbiBjb3JyZWN0bHkgYW5kIHJlbW92ZWQgcG9zc2libGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwgKGdzdF9iYXNlc2lua19oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlc2lua19jaGFpbiksIChnc3RfYmFzZXNpbmtfbG9vcCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJld29ya2VkIHRoZSBiYXNlIHNpbmssIGhhbmRsZSBldmVudCBhbmQgYnVmZmVyIHNlcmlhbGlzYXRpb24KCSAgY29ycmVjdGx5IGFuZCByZW1vdmVkIHBvc3NpYmxlIGRlYWRsb2NrLgoJICBIYW5kbGUgRU9TIGNvcnJlY3RseS4KCjIwMDUtMDYtMjUgMTc6NTE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBbGxvdyBlbGVtZW50cyB0byBwb3N0IEVPUyBpbiB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGlzX2VvcyksIChwaXBlbGluZV9idXNfaGFuZGxlciksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIEFsbG93IGVsZW1lbnRzIHRvIHBvc3QgRU9TIGluIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uCgkgIEZpeCB1cCAtbGF1bmNoLCBtYWtlIGl0IGV4aXQgdGhlIHBvbGwgbG9vcCB3aGVuIHRoZQoJICBwaXBlbGluZSBhY3R1YWxseSBjaGFuZ2VkIHN0YXRlLgoJICBGaXggdXAgd2FybmluZyBwYXJzaW5nIGluIC1sYXVuY2guCgoyMDA1LTA2LTI1IDE3OjQ0OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiBDb3JlIHRha2VzIFNUUkVBTV9MT0NLIGZvciB1cyBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2hhaW4pLCAoZ3N0X3RlZV9sb29wKSwKCSAgKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgIENvcmUgdGFrZXMgU1RSRUFNX0xPQ0sgZm9yIHVzIG5vdy4KCjIwMDUtMDYtMjUgMTc6NDI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBLZWVwIHRyYWNrIG9mIGN1cnJlbnQgdGFyZ2V0IHN0YXRlIHdoaWxlIHBlcmZvcm1pbmcgYSBzdGF0ZSBjaGFuZ2Ugc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBkbyBzb21ldGhpbmcgaW50ZXJlc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyk6CgkgIEtlZXAgdHJhY2sgb2YgY3VycmVudCB0YXJnZXQgc3RhdGUgd2hpbGUgcGVyZm9ybWluZyBhIHN0YXRlCgkgIGNoYW5nZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGRvIHNvbWV0aGluZyBpbnRlcmVzdGluZy4KCSAgRml4IHBhcnNpbmcgb2Ygd2FybmluZy9lcnJvciBtZXNzYWdlcyB3aGVuIEdFcnJvciBpcyBOVUxMLgoKMjAwNS0wNi0yNCAxODoxNjoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIHN0YXJ0IHB1bGxpbmcgaW4gYmFzZSBjbGFzc2VzIGFuZCBlbGVtZW50cyBmb3IgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3RhcnQgcHVsbGluZyBpbiBiYXNlIGNsYXNzZXMgYW5kIGVsZW1lbnRzIGZvciBkb2NzCgoyMDA1LTA2LTI0IDA3OjQ5OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGZpeGVkIG1ha2UgZGlzdGNoZWNrIHdpdGggZ3RrLWRvYyAxLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIG1ha2UgZGlzdGNoZWNrIHdpdGggZ3RrLWRvYyAxLjMKCjIwMDUtMDYtMjMgMTc6MTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXaGVuIHRoZSBzdGF0ZSBkaWQgbm90IGNoYW5nZSwgYWxzbyByZXBvcnQgTk9fUFJFUk9MTCB3aGVuIGl0IG1hdHRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgV2hlbiB0aGUgc3RhdGUgZGlkIG5vdCBjaGFuZ2UsIGFsc28gcmVwb3J0IE5PX1BSRVJPTEwKCSAgd2hlbiBpdCBtYXR0ZXJzLgoKMjAwNS0wNi0yMyAxNzowOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE5vIHVuc2FmZSB0YXNrIHBhdXNpbmcgcGxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBObyB1bnNhZmUgdGFzayBwYXVzaW5nIHBsZWFzZS4KCjIwMDUtMDYtMjMgMTc6MDc6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzogUmVmIHRoZSB0YXNrIGJlZm9yZSBwdXNoaW5nIGl0IG9uIHRoZSB0aHJlYWRwb29sLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGEgcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3N0YXJ0KSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfcGF1c2UpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyk6CgkgIFJlZiB0aGUgdGFzayBiZWZvcmUgcHVzaGluZyBpdCBvbiB0aGUgdGhyZWFkcG9vbC4gVGhpcwoJICBtYWtlcyBzdXJlIHRoYXQgd2UgaGF2ZSBhIHJlZiB3aGVuIHRoZSB0aHJlYWRmdW5jdGlvbiBpcwoJICBhY3R1YWxseSBjYWxsZWQuCgoyMDA1LTA2LTIzIDE1OjI2OjA5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSk6IENoZWNrIGlmIHRoZSBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBmaWxlJ3Mgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpOiBDaGVjayBpZiB0aGUKCSAgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgZmlsZSdzIHNpemUuCgoyMDA1LTA2LTIzIDE1OjA0OjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmggKEdTVF9DTEFTU19MT0NLLCBHU1RfQ0xBU1NfVFJZTE9DSykgKEdTVF9DTEFTU19VTkxPQ0ssIEdTVF9DTEFTU19HRVRfTE9DSywgR3N0T2JqZWN0Q2xhc3MpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX0NMQVNTX0xPQ0ssIEdTVF9DTEFTU19UUllMT0NLKQoJICAoR1NUX0NMQVNTX1VOTE9DSywgR1NUX0NMQVNTX0dFVF9MT0NLLCBHc3RPYmplY3RDbGFzcykKCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6IE1ha2UgdGhlIGNsYXNzIGxvY2sKCSAgcmVjdXJzaXZlLiBXaW0gd29uJ3QgbGV0IG1lIGRyb3AgZGVlcF9ub3RpZnkuIERlY29kZWJpbiB3b3JrcwoJICBhZ2Fpbiwgd2hvb3BkeSBkb28uCgoyMDA1LTA2LTIzIDE0OjE4OjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAob25faW50X25vdGlmeSk6IENhdGNoZXMgbm90aWZ5OjpjYXBzIG9uIHRoZSBpbnRlcm5hbCBwYWQsIGFuZCBoYWNrcyBhY2NvcmRpbmdseS4gRG9lc24ndCBkbyBpdCBvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKG9uX2ludF9ub3RpZnkpOiBDYXRjaGVzIG5vdGlmeTo6Y2FwcyBvbiB0aGUKCSAgaW50ZXJuYWwgcGFkLCBhbmQgaGFja3MgYWNjb3JkaW5nbHkuIERvZXNuJ3QgZG8gaXQgb24gdGhlIHRhcmdldAoJICBwYWQgYmVjYXVzZSB3ZSBjaGFuZ2UgaXRzIGNhcHMuIFByb2JhYmx5IGNhdGNoZXMgYWxsIGNhc2VzIG9mCgkgIGludGVyZXN0IHRoby4KCSAgKGdzdF9naG9zdF9wYWRfc2V0X3Byb3BlcnR5KTogQ29ubmVjdCB0byBub3RpZnk6OmNhcHMgYXMKCSAgYXBwcm9wcml0YXRlLgoKMjAwNS0wNi0yMyAxMzoyMDo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY20gKHBsb3Qtc2ltdWxhdGlvbik6IFBpcGUgZGF0YSB0byB0aGUgZWxpdGUgcHl0aG9uIHNrcmlwdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKHBsb3Qtc2ltdWxhdGlvbik6IFBpcGUgZGF0YSB0byB0aGUKCSAgZWxpdGUgcHl0aG9uIHNrcmlwdC4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAoZGVmaW5lLXBhcmFtZXRlcik6IE5ldyBtYWNybywKCSAgZGVmaW5lcyBhIHBhcmFtZXRlciB0aGF0IGNhbiBiZSBzZXQgdmlhIHRoZSBjb21tYW5kIGxpbmUuCgkgIChzZXQtcGFyYW1ldGVyISwgcGFyc2UtcGFyYW1ldGVyLWFyZ3VtZW50cyk6IENvbW1hbmQgbGluZSBhcmdzCgkgIHBhcnNlci4KCSAgKiB0ZXN0cy9wbG90LWRhdGE6IFNpbXBsZSBtYXRwbG90bGliLWJhc2VkIHBsb3R0ZXIsIHRha2VzIGlucHV0IG9uCgkgIHN0ZGluLgoKMjAwNS0wNi0yMyAxMzoyMDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgbW9yZSBpbXBvcnRhbnQgZG9jdW1lbnRhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgaW1wb3J0YW50IGRvY3VtZW50YXRpb24KCjIwMDUtMDYtMjMgMTE6NDM6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEb24ndCByZXN0YXJ0IHR5cGVmaW5kaW5nIG9uIGEgZGlzY29udC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRG9uJ3QgcmVzdGFydCB0eXBlZmluZGluZyBvbiBhIGRpc2NvbnQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIERlYnVnIHNwZWxsaW5nIGZpeC4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQWxsb3cgY2hhbmdpbmcgbW9kZSBvZiBhbiBhY3RpdmUgcGFkLgoJICBEZWJ1ZyBvdXRwdXQgZml4ZXMuCgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfZmVhdHVyZSk6CgkgIERvbid0IGNhc3QgYSBzdGF0aWMgcGFkIHRlbXBsYXRlIHRvIGEgbm9ybWFsIHBhZCB0ZW1wbGF0ZS4KCjIwMDUtMDYtMjMgMTE6MjU6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlIGdzdF9zdHJ0b2xsIGNvbXBsZXRlbHksIHNpbmNlIGl0IGRpZG4ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBtb3JlIHRoYW4gd2hhdCBnX2FzY2lpX3N0cnRvdWxsIGFscmVhZHkgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIHJlbW92ZSBnc3Rfc3RydG9sbCBjb21wbGV0ZWx5LCBzaW5jZSBpdCBkaWRuJ3QgYWN0dWFsbHkgZG8KCSAgYW55dGhpbmcgbW9yZSB0aGFuIHdoYXQgZ19hc2NpaV9zdHJ0b3VsbCBhbHJlYWR5IGRvZXMuCgkgIGNoZWNrIGZvciByYW5nZSBlcnJvcnMgd2hlbiBkZXNlcmlhbGl6aW5nCgkgIGRvIGEgY2FzdCBmb3IgdGhlIHVuc2lnbmVkIGNhc2VzOyBidXQgZnVydGhlciBmaXhpbmcgbmVlZHMKCSAgYSBkZWNpc2lvbiBvbiB3aGF0IHRoZSBpbnRlcnByZXRhdGlvbiBvZiAiKGludCkiIGFuZAoJICBkZXNlcmlhbGl6YXRpb24gc2hvdWxkIGJlIGZvciB2YWx1ZXMgdGhhdCBmYWxsIG91dHNpZGUgdGhlCgkgIHR5cGUncyBib3VuZGFyaWVzIChpZSwgcmVmdXNlLCBvciBpbnRlcnByZXQgYXMgY2FzdGluZykKCjIwMDUtMDYtMjMgMTA6Mzc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkZWQgc3VwcG9ydCBmb3IgbGl2ZSBzb3VyY2VzIGFuZCBvdGhlciBlbGVtZW50cyB0aGF0IGNhbm5vdCBkbyBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgc3VwcG9ydCBmb3IgbGl2ZSBzb3VyY2VzIGFuZCBvdGhlciBlbGVtZW50cyB0aGF0CgkgIGNhbm5vdCBkbyBwcmVyb2xsLgoJICBVcGRhdGVkIGRlc2lnbiBkb2NzLCBhZGRlZCBsaXZlLXNvdXJjZSBkZXNpZ24gZG9jLgoJICBJbXBsZW1lbnRlZCBsaXZlIHNvdXJjZSBmdW5jdGlvbmFsaXR5IGluIGJhc2VzcmMKCSAgRml4IGVycm9yIGNvbmRpdGlvbiBpbiBfYmluX2dldF9zdGF0ZSgpCgkgIEltcGxlbWVudCBsaXZlIHNvdXJjZSBoYW5kbGluZyBpbiAtbGF1bmNoLgoJICBBZGRlZCBjaGVjayBmb3IgbGl2ZSBzb3VyY2VzLgoJICBGaXhlZCBjYXNlIGluIEdzdEJpbiB3aGVyZSBlbGVtZW50cyB3ZXJlIGNoYW5nZWQgc3RhdGUKCSAgbXVsdGlwbGUgdGltZXMuCgoyMDA1LTA2LTIzIDA5OjU5OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmMgKHRlc3RfZ2V0X2FsbG93ZWRfY2FwcywgdGVzdF9yZWZjb3VudCk6IEZpeCBib3JrZW4gcmVmY291bnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYyAodGVzdF9nZXRfYWxsb3dlZF9jYXBzLCB0ZXN0X3JlZmNvdW50KTogRml4CgkgIGJvcmtlbiByZWZjb3VudGluZy4KCjIwMDUtMDYtMjMgMDk6NDE6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY29tbWl0IHRoZSBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgdGhlIGZpbGUKCjIwMDUtMDYtMjMgMDk6NDE6MDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfY2Fwcyk6IFJlbW92ZSBuZWVkbGVzcyByZWZzLCBnc3RfY2Fwc19yZXBsYWNlIHRha2VzIGNhcmUgb2YgdGhpcyBmb3IgdXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfY2Fwcyk6IFJlbW92ZSBuZWVkbGVzcyByZWZzLAoJICBnc3RfY2Fwc19yZXBsYWNlIHRha2VzIGNhcmUgb2YgdGhpcyBmb3IgdXMuCgoyMDA1LTA2LTIzIDA5OjI4OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKTogQ2FsbCB0aGUgZnVsbCBnc3RfcGFkX3NldF9jYXBzIG9uIHRoZSB0YXJnZXQsIG5vdCBqdXN0IGl0cyBzZXRjYXBzKCkgZnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2Fwcyk6IENhbGwgdGhlIGZ1bGwKCSAgZ3N0X3BhZF9zZXRfY2FwcyBvbiB0aGUgdGFyZ2V0LCBub3QganVzdCBpdHMgc2V0Y2FwcygpIGZ1bmN0aW9uLgoKMjAwNS0wNi0yMyAwMDozOToyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBBIG5ldHdvcmsgY2xvY2sgc2ltdWxhdG9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbToKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbTogQSBuZXR3b3JrIGNsb2NrIHNpbXVsYXRvci4KCSAgU29tZXRoaW5nIG9mIGFuIGFsZ29yaXRobWljIHRlc3RiZWQgYmVmb3JlIGRvaW5nIHNvbWV0aGluZyBpbiBDLgoKMjAwNS0wNi0yMiAxOTo1NzoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG1ha2Ugc3VyZSBjYXBzbGlzdC5oIGdldHMgZGlzdGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHN1cmUgY2Fwc2xpc3QuaCBnZXRzIGRpc3RlZAoKMjAwNS0wNi0yMiAxOTo0ODo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaWxlIGZyb21zdHJpbmcuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZnJvbXN0cmluZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNi0yMiAxOToyMjozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGNvcHkgb3ZlciBmcm9tIDAuOCwgYW5kIGFkZCB0d28gd2l0aCBiaXRtYXNrcyBzcGVjaWZpZWQgd2l0aCAoaW50KSAweEZGLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBjb3B5IG92ZXIgZnJvbSAwLjgsIGFuZCBhZGQgdHdvIHdpdGggYml0bWFza3Mgc3BlY2lmaWVkIHdpdGgKCSAgKGludCkgMHhGRi4uLgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgYWRkIHRlc3QgdG8gcGFyc2UgZXZlcnl0aGluZyBmcm9tIGNhcHNsaXN0LmgKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSksCgkgIChtYWluKToKCSAgYWRkIHRlc3QgZm9yIHN0cnVjdHVyZSBkZXNlcmlhbGl6YXRpb24KCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciBkZXNlcmlhbGl6YXRpb24gb2Ygc3RyaW5ncyB0byBpbnQgdHlwZXMKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX250aF9maWVsZF9uYW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIHdheSB0byBnZXQgdGhlIG5hbWUgb2YgYSBmaWVsZCByZWZlcmVuY2VkIGJ5IGluZGV4CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIGluc3RlYWQgb2YgY2hlY2tpbmcgaWYgdGhlIHJlc3VsdGluZyBsb25nIGxvbmcgbGllcyBiZXR3ZWVuCgkgIG1pbiBhbmQgbWF4LCB3ZSBjaGVjayBpZiB0aGUgbG9uZyBsb25nIHdvdWxkIGZpdCBpbnRvCgkgIGEgbnVtYmVyIG9mIGJ5dGVzIGZvciB0aGUgZmluYWwgdHlwZS4KCSAgVGhpcyBmaXhlcyBjYXNlcyB3aGVyZSBhIHN0cmluZyByZXByZXNlbnRzIDJeMzIgLSAxLCB3aGljaAoJICB3aGVuIGNhc3QgdG8gaW50IHdvdWxkIGJlIHRoZSAodmFsaWQpIC0xLCBidXQgaXMgYmlnZ2VyIHRoYW4KCSAgR19NQVhJTlQKCjIwMDUtMDYtMjIgMTE6MDI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBhZGQgYSBsb2cgbGluZSBmb3IgdHlwZSBkZXNlcmlhbGl6YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIGxvZyBsaW5lIGZvciB0eXBlIGRlc2VyaWFsaXphdGlvbgoKMjAwNS0wNi0yMiAxMDo1MjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZXR1cm4gbG9uZyBsb25nLCBub3QgaW50LCBzbyBnaW50NjQgZGVzZXJpYWxpemF0aW9uIGFjdHVhbGx5IHdvcmtzLiAgSXMgdGhlcmUgYW55IGZsYWcgdGhhdCBtYWtlcyB0aGUgY29tcGlsZXIgY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZSk6CgkgIHJldHVybiBsb25nIGxvbmcsIG5vdCBpbnQsIHNvIGdpbnQ2NCBkZXNlcmlhbGl6YXRpb24gYWN0dWFsbHkKCSAgd29ya3MuICBJcyB0aGVyZSBhbnkgZmxhZyB0aGF0IG1ha2VzIHRoZSBjb21waWxlciBjaGVjayB0aGlzID8KCSAgRml4ZXMgIzMwODU1OQoKMjAwNS0wNi0yMiAwOTo1NToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogQWRkZWQgY29udmVuaWVuY2UgbWFjcm9zIGZvciBzZXR0aW5nIGJ1ZmZlcnMgaW4gR1ZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZGVkIGNvbnZlbmllbmNlIG1hY3JvcyBmb3Igc2V0dGluZyBidWZmZXJzIGluIEdWYWx1ZS4KCjIwMDUtMDYtMjEgMTc6NDE6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0LzogYWRkIGEgdGVzdCBkZXNlcmlhbGl6aW5nIGludDY0LCBhbmQgY29tbWVudCBwYXJ0IG91dCBiZWNhdXNlIGl0IGZhaWxzLCB5YXkgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBkZXNlcmlhbGl6aW5nIGludDY0LCBhbmQgY29tbWVudCBwYXJ0IG91dCBiZWNhdXNlCgkgIGl0IGZhaWxzLCB5YXkgIQoKMjAwNS0wNi0yMSAxNjo1MzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgY29tbWl0IGEgZmlsZSBJIGZvcmdvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IGEgZmlsZSBJIGZvcmdvdAoKMjAwNS0wNi0yMSAxNjo0ODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy92YWx1ZV9zZXJpYWxpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90ZXN0X2dzdF9pbml0LmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX3NlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvdGVzdF9nc3RfaW5pdC5jOgoJICBtb3ZlIG92ZXIgYSB2YWx1ZV9zZXJpYWxpemUgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBvdmVyIGEgdmFsdWVfc2VyaWFsaXplIHRlc3QKCjIwMDUtMDYtMjAgMTU6MTg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIFNtYWxsIGRvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfYnVmZmVyKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZmxhZ3MpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgRml4IHNlcmlhbGlzYXRpb24gb2YgYnVmZmVycywgdGhleSBhcmUgbm90IGJveGVkIHR5cGVzIGFueW1vcmUKCjIwMDUtMDYtMjAgMTU6MTQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiBUZXN0Y2FzZSB0byBzaG93IGVycm9yIGluIGJ1ZmZlci1vbi1jYXBzIHNlcmlhbGlzYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgVGVzdGNhc2UgdG8gc2hvdyBlcnJvciBpbiBidWZmZXItb24tY2FwcyBzZXJpYWxpc2F0aW9uLgoKMjAwNS0wNi0yMCAxNToxMzo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9yYW5kb20vd2luZ28vcG9ydGluZy1wbHVnaW5zLXRvLTAuOTogQSBwaXRpZnVsIGRvY3VtZW50IEkgd2lsbCBiZSBhZGRpbmcgdG8gbGF0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvcmFuZG9tL3dpbmdvL3BvcnRpbmctcGx1Z2lucy10by0wLjk6IEEgcGl0aWZ1bCBkb2N1bWVudCBJCgkgIHdpbGwgYmUgYWRkaW5nIHRvIGxhdGVyLgoKMjAwNS0wNi0yMCAxMTo0MToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmMgKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6IFVubG9jayB0aGUgY2xvY2sgaWYgaXRzIHNvY2tzIGZpbGwgd2l0aCByb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmMgKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6IFVubG9jayB0aGUgY2xvY2sKCSAgaWYgaXRzIHNvY2tzIGZpbGwgd2l0aCByb2Nrcy4KCSAgKGdzdF9zeXN0ZW1fY2xvY2tfb2J0YWluKTogU2V0IHRoZSBuYW1lIG9uIG9iamVjdCBjb25zdHJ1Y3Rpb24uCgkgIEF2b2lkIGRvdWJsZS1jaGVja2VkIGxvY2tpbmcuCgoyMDA1LTA2LTIwIDExOjMyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBGaXggcG90ZW50aWFsIGVuZGxlc3MgbG9vcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSk6CgkgIEZpeCBwb3RlbnRpYWwgZW5kbGVzcyBsb29wLgoKMjAwNS0wNi0yMCAxMToyNzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2dob3N0cGFkcy9naG9zdHBhZHMuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZ2hvc3RwYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvZ2hvc3RwYWRzLmM6CgkgIHJlbW92ZSBhbm90aGVyIHRlc3QgdGhhdCdzIG9ic29sZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW5vdGhlciB0ZXN0IHRoYXQncyBvYnNvbGV0ZQoKMjAwNS0wNi0yMCAxMToyMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9zaWduZWRuZXNzLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Nsb2NrLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOgoJKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6CgkqIHRlc3RzdWl0ZS9jbG9jay9zaWduZWRuZXNzLmM6CgkgIHJlbW92ZSBjbG9jayB0ZXN0c3VpdGUsIGltcG9ydGFudCBzdHVmZiBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY2xvY2sgdGVzdHN1aXRlLCBpbXBvcnRhbnQgc3R1ZmYgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoKMjAwNS0wNi0yMCAxMToxODo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYmlucy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvYmlucy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkgIHJlbW92ZSB0ZXN0IHRoYXQgd2FzIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0ZXN0IHRoYXQgd2FzIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCjIwMDUtMDYtMTkgMTE6MzI6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBnc3R0YWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBnc3R0YWcKCSAgKiBjaGVjay9nc3QvZ3N0dGFnLmM6IChjaGVja190YWdzKSwgKFNUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSksCgkgIChtYWluKToKCSAgbW92ZSBvdmVyIGZyb20gdGVzdHN1aXRlIGRpciBhbmQgY2xlYW4gdXAKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvdGFncy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzdWl0ZS90YWdzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90YWdzL21lcmdlLmM6CgkgIHJlbW92ZSB0ZXN0c3VpdGUvdGFncwoKMjAwNS0wNi0xOSAxMDo1NDoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHNvbWUgbW9yZSBkb2NzIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgbW9yZSBkb2NzIGNsZWFudXAKCjIwMDUtMDYtMTkgMTA6MzE6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYnVmc3BlZWQvLmdpdGlnbm9yZToKCSogdGVzdHMvYnVmc3BlZWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2J1ZnNwZWVkL1JFQURNRToKCSogdGVzdHMvYnVmc3BlZWQvZ3N0bWVtcG9vbC5jOgoJKiB0ZXN0cy9idWZzcGVlZC9nc3RtZW1wb29sLmg6CgkqIHRlc3RzL2J1ZnNwZWVkL3Rlc3QxLmM6CgkqIHRlc3RzL2J1ZnNwZWVkL3Rlc3QyLmM6CgkqIHRlc3RzL3NwaWRleV9iZW5jaC5jOgoJICByZW1vdmUgYnVmc3BlZWQgYW5kIHNwaWRleV9iZW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGJ1ZnNwZWVkIGFuZCBzcGlkZXlfYmVuY2gKCjIwMDUtMDYtMTkgMTA6MjI6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgY2xlYW4gdXAgZG9jcyBhIGxpdHRsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgZG9jcyBhIGxpdHRsZQoKMjAwNS0wNi0xOSAwMDo1MjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3RjaGVjay5oOiBhZGQgbWFjcm9zIGZvciBjaGVja2luZyByZWZjb3VudHMgb24gb2JqZWN0cyBhbmQgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBhZGQgbWFjcm9zIGZvciBjaGVja2luZyByZWZjb3VudHMgb24gb2JqZWN0cyBhbmQgY2FwcwoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCBzb21lIG1vcmUgdW5pdCB0ZXN0cwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMpOgoJICBmaXggbGVha2VkIHJlZmNvdW50cyAoSSBob3BlIDopKSBzbyB1bml0dGVzdCB3b3JrcwoJICAqIGdzdC9nc3RwYWQuaDoKCSAgd2hpdGVzcGFjZSByZW1vdmFsCgoyMDA1LTA2LTE4IDIyOjMzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKMjAwNS0wNi0xNyAxMjowMDozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wNi0xNyAxMTo1ODo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2NoYWluKTogUmVtb3ZlIGJvZ3VzIGFzc2VydDsgaXQncyBhbHdheXMgcG9zc2libGUgdGhhdCB0aGUgcGFkIGdldHMgZGVhY3RpdmF0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19jaGFpbik6IFJlbW92ZSBib2d1cwoJICBhc3NlcnQ7IGl0J3MgYWx3YXlzIHBvc3NpYmxlIHRoYXQgdGhlIHBhZCBnZXRzIGRlYWN0aXZhdGVkIGluCgkgIGJldHdlZW4gdGhlIGNoZWNrcyBpbiBnc3RwYWQuYyBhbmQgdGhlIGltcGxlbWVudGF0aW9uLiBSZWx5IG9uCgkgIGZpbmlzaF9wcmVyb2xsKCkgdG8gcmV0dXJuIGEgRkxVU0hJTkcgb3Igc2ltaWxhciBpbnN0ZWFkIG9mIG9uIHRoZQoJICBhc3NlcnQuCgoyMDA1LTA2LTE3IDExOjMzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfZXZlbnQpOiBPbmx5IHdhaXQgZm9yIHRoZSBjbG9jayBhbmQgcG9zdCBhbiBFT1MgbWVzc2FnZSBpZiB3ZSBjb21lIG91dCBvZiBmaW5pc2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2V2ZW50KTogT25seSB3YWl0IGZvciB0aGUKCSAgY2xvY2sgYW5kIHBvc3QgYW4gRU9TIG1lc3NhZ2UgaWYgd2UgY29tZSBvdXQgb2YgZmluaXNoX3ByZXJvbGwgaW4KCSAgdGhlIHBsYXlpbmcgc3RhdGUuCgoyMDA1LTA2LTE3IDA5OjU4OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgaW5jb3Jwb3JhdGUgcGx1Z2lucyBzdHVmZiBhbmQgdW5pbnN0YWxsZWQgc3R1ZmYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluY29ycG9yYXRlIHBsdWdpbnMgc3R1ZmYgYW5kIHVuaW5zdGFsbGVkIHN0dWZmCgoyMDA1LTA2LTE3IDA5OjMyOjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0xNyAwOToxMjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogZ3N0L2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMTcgMDg6NTk6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogLmdpdGlnbm9yZToKCSogQ2hhbmdlTG9nOgoJKiBSRUFETUU6CgkqIGNoZWNrLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZTsgZml4IFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmU7IGZpeCBSRUFETUUKCjIwMDUtMDYtMTYgMTc6NTA6MTYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogQWxsb3cgTlVMTCBhcyBwb3NzaWJsZSB2YWx1ZSBmb3IgZmlsdGVyX2NhcHMgcHJvcGVydHksIGluZGljYXRpbmcgR1NUX0NBUFNfQU5ZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOiBBbGxvdyBOVUxMIGFzIHBvc3NpYmxlIHZhbHVlCgkgIGZvciBmaWx0ZXJfY2FwcyBwcm9wZXJ0eSwgaW5kaWNhdGluZyBHU1RfQ0FQU19BTlkuCgoyMDA1LTA2LTA5IDEzOjMzOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IGZpeCBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NyZWF0ZSk6CgkgIGZpeCBkZWJ1ZyBvdXRwdXQKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgdXNlIGxpYmdzdCBwcmVmaXgKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHNwZWMgZm9yIGl0CgoyMDA1LTA2LTA5IDEyOjIzOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdHJlYW1lci5zcGVjLmluOiBjbGVhbiB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAKCjIwMDUtMDYtMDkgMTI6MDk6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0cmVhbWVyLnNwZWMuaW46IGNsZWFuIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cAoKMjAwNS0wNi0wOSAxMjowMzowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBUT0RPOgoJKiBkb2NzL3JhbmRvbS9UT0RPLXByZS0wLjk6CgkgIGhhdmUgYSByZWFsIFRPRE8sIG1vdmUgb2xkIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhdmUgYSByZWFsIFRPRE8sIG1vdmUgb2xkIFRPRE8KCjIwMDUtMDYtMDkgMTI6MDA6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBwbyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwbyB1cGRhdGVzCgoyMDA1LTA2LTA5IDExOjEyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNS0wNi0wOCAyMjoxNjoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFJQQUQgZml4ZXMgYWxsIGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJQQUQgZml4ZXMgYWxsIGFyb3VuZC4KCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IFJlZmNvdW50aW5nIGZpeGVzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgKiBwYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiBSUEFEIGZpeGVzLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBOZXcgZ2hvc3QgcGFkIGltcGxlbWVudGF0aW9uIGFzIGZ1bGwgcHJveHkKCSAgcGFkcy4gVGhlIHRyaWNreSB0aGluZyBpcyB0aGV5IHByb3ZpZGUgYm90aCBzb3VyY2UgYW5kIHNpbmsKCSAgaW50ZXJmYWNlcywgc2luY2UgdGhleSBwcm94eSB0aGUgaW50ZXJuYWwgcGFkIGZvciB0aGUgZXh0ZXJuYWwKCSAgcGFkLCBhbmQgdmljZSB2ZXJzYS4gSW1wbGVtZW50IHdpdGggbG93ZXItbGV2ZWwgUHJveHlQYWQgb2JqZWN0cywKCSAgd2l0aCB0aGUgaW50ZXJpb3IgcHJveHkgcGFkIGFzIGEgY2hpbGQgb2YgdGhlIGV4dGVyaW9yIGdob3N0IHBhZC4KCSAgU2hvdWxkIHdyaXRlIGEgZG9jIG9uIHRoaXMuCgkgICogZ3N0L2dzdHBhZC5oOiBzL1JQQUQvUEFELywgcy9SZWFsUGFkL1BhZC8uCgkgIChnc3RfcGFkX3NldF9uYW1lLCBnc3RfcGFkX3NldF9wYXJlbnQpOiBNYWNyb3MgcmVtb3ZlZCwgdXNlCgkgIGdzdF9vYmplY3QgQVBJLgoJICAqIGdzdC9nc3RwYWQuYzogQmlnIGNoYW5nZXMuIE5vIG1vcmUgc3R1YiBiYXNlIEdzdFBhZCwgbm93IGFsbAoJICBwYWRzIGFyZSByZWFsIHBhZHMuIE5vIGdob3N0IHBhZHMgaW4gdGhpcyBmaWxlLiBOb3QgZG9jdW1lbnRpbmcKCSAgdGhlIG15cmlhZCBzL1JQQUQvUEFELyBhbmQgUkVBTElaRSBmaXhlcy4KCSAgKGdzdF9wYWRfY2xhc3NfaW5pdCk6IEFkZCBwcm9wZXJ0aWVzIGZvciAiZGlyZWN0aW9uIiBhbmQKCSAgInRlbXBsYXRlIi4gQm90aCBhcmUgY29uc3RydWN0LW9ubHksIHNvIHRoZXkgY2FuJ3QgY2hhbmdlIGR1cmluZwoJICB0aGUgbGlmZSBvZiB0aGUgcGFkLiBGaXhlcyBwcm9wZXJseSBkZXJpdmluZyBmcm9tIEdzdFBhZC4KCSAgKGdzdF9wYWRfY3VzdG9tX25ldywgZ3N0X3BhZF9jdXN0b21fbmV3X2Zyb21fdGVtcGxhdGUpOiBHb25lLiBGb3IKCSAgZGVyaXZlZCBvYmplY3RzLCBqdXN0IHNldCBwcm9wZXJ0aWVzIHdoZW4gY3JlYXRpbmcgdGhlIG9iamVjdHMgdmlhCgkgIGdfb2JqZWN0X25ldy4KCSAgKGdzdF9wYWRfZ2V0X3BhcmVudCk6IEltcGxlbWVudCBhcyBhIGZ1bmN0aW9uLCByZXR1cm4gTlVMTCBpZiB0aGUKCSAgcGFyZW50IGlzIG5vdCBhbiBlbGVtZW50LgoJICAoZ3N0X3BhZF9nZXRfcmVhbF9wYXJlbnQsIGdzdF9wYWRfYWRkX2dob3N0X3BhZCkKCSAgKGdzdF9wYWRfcmVtb3ZlX2dob3N0X3BhZCwgZ3N0X3BhZF9yZWFsaXplKTogUmVtb3ZlZC4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6IE1ha2UgbmFtZSBhIGNvbnN0cnVjdAoJICBwcm9wZXJ0eS4gRG9uJ3Qgc2V0IGl0IGluIHRoZSBvYmplY3QgaW5pdC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9hZGRfcGFkKTogRG9uJ3QgYWxsb3cgYWRkaW5nIHBhZHMKCSAgd2l0aCBVTktOT1dOIGRpcmVjdGlvbi4KCSAgKGdzdF9lbGVtZW50X2FkZF9naG9zdF9wYWQpOiBSZW1vdmUgbm9uLW9ydGhvZ29uYWwgQVBJLiBSZXBsYWNlCgkgIHdpdGggZ3N0X2VsZW1lbnRfYWRkX3BhZCAoZSwgZ3N0X2dob3N0X3BhZF9uZXcgKG5hbWUsIHBhZCkpLgoJICAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCk6IFJlbW92ZSBnaG9zdC1wYWQgc3BlY2lhbCBjYXNlcy4KCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOiBSZW1vdmUgcnBhZCBjcnVmdC4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogVXNlIGdzdF9wYWRfZ2V0X3BhcmVudCB0bwoJICBjYXRjaCB0aGUgcGFkJ3MtcGFyZW50LW5vdC1hbi1lbGVtZW50IGNhc2UuCgkgICogZ3N0L2dzdC5oOiBJbmNsdWRlIGdzdGdob3N0cGFkLmguCgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiBObyBtb3JlIHJlYWwsIGdob3N0IHBhZHMuCgkgICogZ3N0L01ha2VmaWxlLmFtOiBBZGQgZ3N0Z2hvc3RwYWQuW2NoXS4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IENoZWNrIHRoYXQgbGlua2luZwoJICBpbnRvIGEgYmluIGNyZWF0ZXMgZ2hvc3QgcGFkcywgYW5kIHRoYXQgdGhlIHJlZmNvdW50cyBhcmUgcmlnaHQuCgkgIFBhcnRseSBtb3ZlZCBmcm9tIGdzdGJpbi5jLgoKMjAwNS0wNi0wOCAxNDowMDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzLy5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKHNldHVwX3BpcGVsaW5lKSwgKHJ1bl9waXBlbGluZSksCgkgIChTVEFSVF9URVNUKSwgKGNsZWFudXBfc3VpdGUpLCAobWFpbik6CgkgIGFkZCBzb21lIHRlc3RzIHJlbGF0ZWQgdG8gY2xlYW51cCBhZnRlciBydW5uaW5nIHBpcGVsaW5lcwoKMjAwNS0wNi0wOCAxMzo1NzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBhZGQgYSBHc3RCdWZmZXIgdW5pdCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBHc3RCdWZmZXIgdW5pdCB0ZXN0CgoyMDA1LTA2LTA4IDEzOjQ1OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgcHJldmlvdXMgY29tbWl0IGFjY2lkZW50YWxseSBhbHNvIGFkZGVkIHJlZmNvdW50IGRlZmluZXMgZm9yIGdzdG1pbmlvYmplY3QsIGxvZ2dpbmcgdGhhdCBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXZpb3VzIGNvbW1pdCBhY2NpZGVudGFsbHkgYWxzbyBhZGRlZCByZWZjb3VudCBkZWZpbmVzIGZvciBnc3RtaW5pb2JqZWN0LCBsb2dnaW5nIHRoYXQgbm93CgoyMDA1LTA2LTA4IDEzOjQyOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSAncGx1Z2lucycgZGlyIHRvIHRoZSBQTFVHSU5fUEFUSCBpbiB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IHRvIGRyb3AgcmFuZG9tIG90aGVyIHBsdWdpbi1oYXZpbmcgcHJvamVjdHMgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhICdwbHVnaW5zJyBkaXIgdG8gdGhlIFBMVUdJTl9QQVRIIGluIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgdG8gZHJvcCByYW5kb20gb3RoZXIgcGx1Z2luLWhhdmluZyBwcm9qZWN0cyBpbgoKMjAwNS0wNi0wOCAxMzo0MTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHdlIGRpZCBhIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdlIGRpZCBhIHByZXJlbGVhc2UKCjIwMDUtMDYtMDggMTM6NDE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBPQkpFQ1QgYWN0cyBvbiBvYmogbm90IGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE9CSkVDVCBhY3RzIG9uIG9iaiBub3QgY2FwcwoKMjAwNS0wNi0wOCAxMzo0MTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgYWRkIGEgZGVidWcgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgZGVidWcgbGluZQoKMjAwNS0wNi0wOCAxMzo0MDo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgd2hpdGUgc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlIHNwYWNlIGZpeGVzCgoyMDA1LTA2LTAzIDE4OjI2OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkgIGFkZGVkIHN1cHBvcnQgZm9yIGh0bWwgdW5pdCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIHN1cHBvcnQgZm9yIGh0bWwgdW5pdCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMKCjIwMDUtMDYtMDIgMTU6NDU6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogRnJlZSBleGlzdGluZyBjYXBzIGlmIHRoZSBjYXBzZmlsdGVyIGNoYW5nZXMuIEFkZCBhIEZJWE1FIGFib3V0IHNldHRpbmcgdGhvc2UgY2FwcyBvbiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBGcmVlIGV4aXN0aW5nIGNhcHMgaWYgdGhlIGNhcHNmaWx0ZXIgY2hhbmdlcy4gQWRkIGEgRklYTUUgYWJvdXQKCSAgc2V0dGluZyB0aG9zZSBjYXBzIG9uIHRoZSBwYWRzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKSwgKGdob3N0X3VwKToKCSAgQmVmb3JlIGFkZGluZyBhIGdob3N0IHBhZCB0byBhIHBhcmVudCBiaW4sIGNoZWNrIHRoYXQgdGhlcmUgaXNuJ3QKCSAgYWxyZWFkeSBvbmUgZm9yIHRoZSBlbGVtZW50IG9uIHRoZSBiaW4uIFByZXZlbnRzIGluZmluaXRlIHJlY3Vyc2lvbgoJICB3aGVuIHVzaW5nIGRlY29kZWJpbiBpbiBwYXJzZSBwaXBlbGluZXMuIEFuZHkgc2F5cyBoZSdsbCByZXdyaXRlIHRoZQoJICB3YXkgdGhpcyB3b3JrcyBhbnl3YXksIHNvIGlnbm9yZSB0aGUgaGFjay4KCjIwMDUtMDYtMDIgMTE6MTI6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZG9fcHVsbF90eXBlZmluZCk6IFF1ZXJ5IHRoZSBmaWxlIHNpemUsIHBhc3MgaXQgb24gdG8gdGhlIHR5cGUgZmluZCBoZWxwZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZG9fcHVsbF90eXBlZmluZCk6IFF1ZXJ5IHRoZQoJICBmaWxlIHNpemUsIHBhc3MgaXQgb24gdG8gdGhlIHR5cGUgZmluZCBoZWxwZXIuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19kb19zZWVrKTogU2V0IHRoZQoJICBzZWdtZW50X3N0YXJ0IGFuZCBzZWdtZW50X2VuZCBwcm9wZXJseSBhY2NvcmRpbmcgdG8gdGhlIHNlZWsKCSAgbWV0aG9kLiBTZWdtZW50X2VuZCBpcyBzdGlsbCBhIGJpdCBmbGFreSBiZWNhdXNlIG9mZnNldCBjYW4gYmUKCSAgbmVnYXRpdmUgZm9yIENVUiBhbmQgRU5EIGNhc2VzLCBidXQgaXQgdGFrZXMgLTEgYXMgYW4gInVuc2V0IgoJICB2YWx1ZS4KCjIwMDUtMDYtMDIgMDk6NDI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBCdWZmZXJhbGxvYzogcmV0dXJuIEdzdEZsb3dSZXR1cm4gdG8gbW9yZSBhY2N1cmF0bHkgcmVwb3J0IHdoeSBhbGxvY2F0aW9uIGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wYWRfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pOgoJICBCdWZmZXJhbGxvYzogcmV0dXJuIEdzdEZsb3dSZXR1cm4gdG8gbW9yZSBhY2N1cmF0bHkgcmVwb3J0CgkgIHdoeSBhbGxvY2F0aW9uIGZhaWxlZC4KCjIwMDUtMDYtMDIgMDk6Mzk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogVGFrZSBzbmFwc2hvdCBvZiBzdGF0ZSB3aXRob3V0IGJsb2NraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgVGFrZSBzbmFwc2hvdCBvZiBzdGF0ZSB3aXRob3V0IGJsb2NraW5nLgoKMjAwNS0wNi0wMiAwODoyNjo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU21hbGwgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICBTbWFsbCBkb2MgdXBkYXRlcwoKMjAwNS0wNS0zMCAxNjoyODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBQcm90ZWN0IGxhc3RfbWVzc2FnZSBwcm9wZXJ0eSBhcyBpdCBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgIFByb3RlY3QgbGFzdF9tZXNzYWdlIHByb3BlcnR5IGFzIGl0IGlzIGFjY2Vzc2VkIGZyb20KCSAgbXVsdGlwbGUgdGhyZWFkcy4KCjIwMDUtMDUtMzAgMTU6NTM6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbGlja2VyIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgU2xpY2tlciBwYWQgYWN0aXZhdGlvbiBjb2RlLgoKMjAwNS0wNS0zMCAxNTo1MTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vdmUgZWxlbWVudGZhY3RvcnkgbWV0aG9kcyB0byBzZXBhcmF0ZSAuaCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0dHlwZXMuaDoKCSAgTW92ZSBlbGVtZW50ZmFjdG9yeSBtZXRob2RzIHRvIHNlcGFyYXRlIC5oIGZpbGUuCgoyMDA1LTA1LTMwIDE1OjQ4OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgdHlwbyBmaXhlcywgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBTbWFsbCB0eXBvIGZpeGVzLCBkb2MgdXBkYXRlcy4KCjIwMDUtMDUtMzAgMTU6NDY6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0LmM6IFJlbW92ZSBjcHUtb3B0IGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9wb3B0X3RhYmxlKSwgKGluaXRfcG9zdCksCgkgIChpbml0X3BvcHRfY2FsbGJhY2spOgoJICBSZW1vdmUgY3B1LW9wdCBmbGFnLgoKMjAwNS0wNS0zMCAxNTo0NDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuKjogQXZvaWQgdHlwZWNoZWNraW5nIGluIHBsYWNlcyB3aGVyZSBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBdm9pZCB0eXBlY2hlY2tpbmcgaW4gcGxhY2VzIHdoZXJlIG5vdCBuZWVkZWQuCgkgIEFkZGVkIGFjY2Vzc29yIGZvciBtYWxsb2NfZGF0YS4KCjIwMDUtMDUtMzAgMTU6NDE6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFByb3BhZ2F0ZSBlcnJvcnMgZnJvbSBfc2V0X2NhcHMoKSBpbiBjb25maWd1cmVfc3JjL3NpbmsgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmV0dXJuaW5nIFRSVUUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9yZWFsX3BhZF9pbml0KSwgKGdzdF9wYWRfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc2VuZF9ldmVudCksCgkgIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBQcm9wYWdhdGUgZXJyb3JzIGZyb20gX3NldF9jYXBzKCkgaW4gY29uZmlndXJlX3NyYy9zaW5rCgkgIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHJldHVybmluZyBUUlVFLgoJICBGTFVTSCBldmVudHMgY2FuIHRyYXZlbCB1cCBhbmQgZG93bnN0cmVhbQoKMjAwNS0wNS0zMCAxNTozNjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEhhbmRsZSBFT1MgaW4gcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgSGFuZGxlIEVPUyBpbiBwcmVyb2xsLgoKMjAwNS0wNS0zMCAxNTozNDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS5jOiBSZW1vdmUgb2xkIHBpZWNlcyBvZiBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCk6CgkgIFJlbW92ZSBvbGQgcGllY2VzIG9mIGNvZGUKCSAgRmx1c2hpbmcgdGhlIHF1ZXVlIGluIGFuIHVwc3RyZWFtIGV2ZW50IGlzIGEgdmVyeSBiYWQgaWRlYS4KCjIwMDUtMDUtMjkgMTM6NTY6NTUgKzAwMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSAgZmlsZSBnc3RzaW1wbGVzY2hlZHVsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtQ09NUEFOWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0c2ltcGxlc2NoZWR1bGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUNPTVBBTlkuCgoyMDA1LTA1LTI3IDA5OjI4OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIHJlbW92ZSBjb25mbGljdCBkb29iZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29uZmxpY3QgZG9vYmVycwoKMjAwNS0wNS0yNyAwOToyNzozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvbGxlY3QpOiBVc2UgZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCBzbyBhcyB0byBhZGQgYSByZWYgb24gdGhlIG9iamVjdCAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb2xsZWN0KTogVXNlCgkgIGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3Qgc28gYXMgdG8gYWRkIGEgcmVmIG9uIHRoZSBvYmplY3QgKHdoaWNoCgkgIHdpbGwgYmUgcmVtb3ZlZCB3aGVuIHRoZSB2YWx1ZSBpcyB1bnNldCkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19jbGFzc19pbml0KTogRml4IHNpZ25hbAoJICBhcmcgdHlwZSBpbiA6OmhhbmRvZmYuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKTogQWxzbyBkZWFjdGl2YXRlCgkgIHBhZHMgaW4gUkVBRFktPk5VTEwsIGp1c3QgaW4gY2FzZSB0aGUgZWxlbWVudCBkaWRuJ3QgbWFrZSBpdCB0bwoJICBQQVVTRUQuIFdpbmdvIHRlc3RlZCwgV2ltIGFwcHJvdmVkLgoKMjAwNS0wNS0yNiAxMDo1MDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQSBmbHVzaGluZyBwYWQgY2Fubm90IGJlIHVzZWQgdG8gYWxsb2NfYnVmZmVyIGZyb20uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBBIGZsdXNoaW5nIHBhZCBjYW5ub3QgYmUgdXNlZCB0byBhbGxvY19idWZmZXIgZnJvbS4KCjIwMDUtMDUtMjYgMTA6NDg6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLio6IEltcGxlbWVudCBhIHJlYWwgR1NvdXJjZSBhbmQgdXNlIGdfbWFpbl9jb250ZXh0X3dha2V1cCgpIHRvIHNpZ25hbCBuZXcgbWVzc2FnZXMgaW5zdGVhZCBvZiB0aGUgc29ja2V0cGFpci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX3Bvc3QpLAoJICAoZ3N0X2J1c19wb3ApLCAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksIChnc3RfYnVzX3NvdXJjZV9jaGVjayksCgkgIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEltcGxlbWVudCBhIHJlYWwgR1NvdXJjZSBhbmQgdXNlIGdfbWFpbl9jb250ZXh0X3dha2V1cCgpIHRvCgkgIHNpZ25hbCBuZXcgbWVzc2FnZXMgaW5zdGVhZCBvZiB0aGUgc29ja2V0cGFpci4KCjIwMDUtMDUtMjUgMTk6MzM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggc3RhdGUgY2hhbmdlcyBmb3Igbm9uIHNpbmtzLiBXZSBub3cgY2hhbmdlIHNpbmtzLCB0aGVuIGVsZW1lbnRzIHdpdGggdW5jb25uZWN0ZWQgc3JjcGFkcywgdGhlbiB0aGUgcmVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc2luayksIChoYXNfYW5jZXN0b3IpLAoJICAoYmluX2VsZW1lbnRfaXNfc2VtaV9zaW5rKSwgKGFwcGVuZF9jaGlsZCksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGUpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgRml4IHN0YXRlIGNoYW5nZXMgZm9yIG5vbiBzaW5rcy4gV2Ugbm93IGNoYW5nZSBzaW5rcywgdGhlbiBlbGVtZW50cwoJICB3aXRoIHVuY29ubmVjdGVkIHNyY3BhZHMsIHRoZW4gdGhlIHJlc3QuCgkgIE1vcmUgZWZmaWNpZW50IHF1ZXVlIHVubG9ja2luZyBpbiBmbHVzaCBhbmQgc3RhdGUgY2hhbmdlcy4KCSAgU2V0IHRoZSBwYWQgYWN0aXZhdGUgbW9kZSBldmVuIGlmIGl0IGRvZXMgbm90IGhhdmUgYW4gYWN0aXZhdGUKCSAgZnVuY3Rpb24uCgoyMDA1LTA1LTI1IDE2OjA5OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgaGFwcGlmeSBidWlsZGJvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGFwcGlmeSBidWlsZGJvdAoKMjAwNS0wNS0yNSAxNTo1Nzo1NyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCBnbyBpbiBwdWxsIG1vZGUgZm9yIG5vbi1zZWVrYWJsZSBzb3VyY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgIERvbid0IGdvIGluIHB1bGwgbW9kZSBmb3Igbm9uLXNlZWthYmxlIHNvdXJjZXMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Rpc3Bvc2UpLCAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGZyZWVfZW50cnkpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwgKGZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZG9fcHVsbF90eXBlZmluZCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQWxsb3cgdHlwZWZpbmRpbmcgKHcvbyBzZWVraW5nKSBpbiBwdXNoLW1vZGUsIHNpbXBsaWZpZWQgdmVyc2lvbgoJICBvZiB3aGF0IHdhcyBpbiAwLjguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYnVmZmVyX2pvaW4pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBnc3RfYnVmZmVyX2pvaW4oKSBmcm9tIDAuOC4KCjIwMDUtMDUtMjUgMTM6NTk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERpc2FibGUgYXR0ZW1wdCBhdCBtb2RlIHN3aXRjaGluZyB1bnRpbCBpdCBpcyBmaWd1cmVkIG91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIERpc2FibGUgYXR0ZW1wdCBhdCBtb2RlIHN3aXRjaGluZyB1bnRpbCBpdCBpcyBmaWd1cmVkIG91dC4KCjIwMDUtMDUtMjUgMTE6NTA6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJbXBsZW1lbnQgZ3N0X3BhZF9wYXVzZS9zdGFydC9zdG9wX3Rhc2soKSwgdGFrZSBTVFJFQU0gbG9jayBpbiB0YXNrIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX2ZsdXNoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfZmluaXNoX3ByZXJvbGwpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluKSwKCSAgKGdzdF9iYXNlc2lua19sb29wKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZXNyY19sb29wKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSksIChnc3RfcmVhbF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcmVhbF9wYWRfaW5pdCksIChnc3RfcmVhbF9wYWRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9yZWFsX3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfaXNfYWN0aXZlKSwgKGdzdF9wYWRfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9wYWRfdW5saW5rKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2dldF9yZWFsX3BhcmVudCksCgkgIChnc3RfcmVhbF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9nZXRfcGVlciksIChnc3RfcGFkX3JlYWxpemUpLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCksCgkgIChnc3RfcGFkX2Rpc3BhdGNoZXIpLCAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcmVhbF9wYWRfZGlzcG9zZSksCgkgIChnc3RfcGFkX3NhdmVfdGh5c2VsZiksIChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwgKGdzdF9wYWRfcGF1c2VfdGFzayksCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfaW5pdCksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19nZXRfc3RhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3N0YXJ0KSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpOgoJICBJbXBsZW1lbnQgZ3N0X3BhZF9wYXVzZS9zdGFydC9zdG9wX3Rhc2soKSwgdGFrZSBTVFJFQU0gbG9jawoJICBpbiB0YXNrIGZ1bmN0aW9uLgoJICBSZW1vdmUgQUNUSVZFIHBhZCBmbGFnLCB1c2UgRkxVU0hJTkcgZXZlcnl3aGVyZQoJICBBZGRlZCBfcGFkX2NoYWluKCksIF9wYWRfZ2V0X3JhbmdlKCkgdG8gY2FsbCBjaGFpbi9nZXRyYW5nZQoJICBmdW5jdGlvbnMuCgkgIEFkZCBsb2NrcyBhcm91bmQgSVNfRkxVU0hJTkcgd2hlbiByZWFkaW5nLgoJICBUYWtlIFNUUkVBTSBsb2NrIGluIGNoYWluKCksIGdldF9yYW5nZSgpIGZ1bmN0aW9ucyBzbyBwbHVnaW5zCgkgIGRvbid0IG5lZWQgdG8gdGFrZSBpdCBhbnltb3JlLgoKMjAwNS0wNS0yNSAxMToyNjoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogVW5yZWYgbWVzc2FnZSBhZnRlciB1c2luZyBpdHMgY29udGVudHMgaW5zdGVhZCBvZiBiZWZvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBVbnJlZiBtZXNzYWdlIGFmdGVyIHVzaW5nIGl0cyBjb250ZW50cyBpbnN0ZWFkIG9mCgkgIGJlZm9yZS4KCjIwMDUtMDUtMjQgMTY6NDc6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgRG9jcyB1cGRhdGVzLgoJICBBZGRlZCBnZW5lcmFsIG92ZXJ2aWV3IGRvYy4KCSAgQWRkZWQgZHJhZnQgZ2hvc3RwYWQgcmVwbGFjZW1lbnQgaWRlYS4KCjIwMDUtMDUtMjIgMDQ6MjY6NDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvdG1wbC9vbGQvOiBJIGRpZG4ndCBpbnRlbmQgdG8gYWRkIHRoZXNlIG9yIGNoZWNrIHRoZW0gaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEJpbi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEJ1ZmZlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENhcHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RDbG9jay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdERhdGEuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RFbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RXZlbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RJbmRleC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdFN0cnVjdHVyZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdFRhZy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2NvdGhyZWFkcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2NvdGhyZWFkc19jb21wYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nZXR0ZXh0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ29iamVjdDJndGsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9ncmFtbWFyLnRhYi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdC1pMThuLWFwcC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdC1pMThuLWxpYi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdF9wcml2YXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YWdncmVnYXRvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGFyY2guc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhdG9taWNfaW1wbC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGJ1ZmZlcnN0b3JlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGF0YV9wcml2YXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGlza3Npbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkaXNrc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RleHRyYXR5cGVzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmFrZXNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmYWtlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmRzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmRzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmaWxlc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZpbGVzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RodHRwc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0aWRlbnRpdHkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtYXJzaGFsLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bWQ1c2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG11bHRpZGlza3NyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG11bHRpZmlsZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0cGlwZWZpbHRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzZWFyY2hmdW5jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNoYXBlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNwaWRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNwaWRlcmlkZW50aXR5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3RhdGlzdGljcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHRlZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHRpbWVjYWNoZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHhtbHJlZ2lzdHJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3RocmVhZC1jb3RocmVhZHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC90eXBlcy5zZ21sOgoJICBJIGRpZG4ndCBpbnRlbmQgdG8gYWRkIHRoZXNlIG9yIGNoZWNrIHRoZW0gaW4uCgoyMDA1LTA1LTIwIDEyOjQ3OjA1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wNS0xOSAxOTo1NDowMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFVzZSAtbm8tY29tbW9uIGV2ZXJ5d2hlcmUuICBJbiBhIHNhbmUgd29ybGQsIGl0IHdvdWxkIGJlIHRoZSBkZWZhdWx0IGluIGxpYnRvb2wsIGJlY2F1c2Ugd2l0aG91dCBpdCwgeW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBVc2UgLW5vLWNvbW1vbiBldmVyeXdoZXJlLiAgSW4gYSBzYW5lIHdvcmxkLCBpdAoJICB3b3VsZCBiZSB0aGUgZGVmYXVsdCBpbiBsaWJ0b29sLCBiZWNhdXNlIHdpdGhvdXQgaXQsIHlvdSBjYW4ndAoJICBidWlsZCBETExzIG9uIFdpbmRvd3MuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIEdzdENwdSwgR3N0RGF0YSwgR3N0VGhyZWFkCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNwdS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZGF0YS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGhyZWFkLnNnbWw6CgoyMDA1LTA1LTE5IDE5OjQxOjEyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0Lio6IEFkZCBHVmFsdWUgc2V0L2dldCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0KSwKCSAgKGdzdF92YWx1ZV90YWtlX21pbmlfb2JqZWN0KSwgKGdzdF92YWx1ZV9nZXRfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6IEFkZCBHVmFsdWUgc2V0L2dldCBmdW5jdGlvbnMuCgoyMDA1LTA1LTE5IDE2OjI2OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBzdWJidWZlciB1bnJlZiB0aGUgcGFyZW50IGluIGZpbmFsaXplLiBzb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaW5pdCksIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9zdWJidWZmZXJfY2xhc3NfaW5pdCksIChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9zdWJidWZmZXJfaW5pdCksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9yYW5kb21fcGFkKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSk6CgkgIE1ha2Ugc3ViYnVmZXIgdW5yZWYgdGhlIHBhcmVudCBpbiBmaW5hbGl6ZS4KCSAgc29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0wNS0xOSAxNjoyMzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGZyZWUgcHJlcm9sbCBxdWV1ZSB0b28gZWFybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfaW5pdCksIChnc3RfYmFzZXNpbmtfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBmcmVlIHByZXJvbGwgcXVldWUgdG9vIGVhcmx5LgoKMjAwNS0wNS0xOSAxNDo1MjoxNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0LzogSGksIEknbSBvdXRkYXRlZC4gUGxlYXNlIHNob290IG1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L1JPQURNQVA6CgkgIEhpLCBJJ20gb3V0ZGF0ZWQuIFBsZWFzZSBzaG9vdCBtZS4KCjIwMDUtMDUtMTkgMTI6MDc6MzUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEbyBub3QgYWNjZXNzIHZhcmlhYmxlcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBkZWxldGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgRG8gbm90IGFjY2VzcyB2YXJpYWJsZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZGVsZXRlZC4KCjIwMDUtMDUtMTkgMDg6NDE6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBIHBsdWdpbiBmZWF0dXJlIGRvZXMgdW5mb3J0dW5hdGx5IG5vdCB1c2UgdGhlIG9iamVjdCBuYW1lIHlldC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2ZlYXR1cmVzKToKCSAgQSBwbHVnaW4gZmVhdHVyZSBkb2VzIHVuZm9ydHVuYXRseSBub3QgdXNlIHRoZQoJICBvYmplY3QgbmFtZSB5ZXQuLi4KCjIwMDUtMDUtMTggMTc6MzU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFBvcnQgX3NwYW4oKSBmdW5jdGlvbnMgdG8gbmV3IHN1YmJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KSwgKGdzdF9idWZmZXJfc3Bhbik6CgkgIFBvcnQgX3NwYW4oKSBmdW5jdGlvbnMgdG8gbmV3IHN1YmJ1ZmZlcnMuCgoyMDA1LTA1LTE4IDEzOjQ5OjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBjbG9jayBzZXR0ZXJ5IGluIGJpbnMgd2hlbiBhZGRpbmcga2lkcyBhZnRlciB0aGUgY2xvY2sgaGFzIGJlZW4gc2VsZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBGaXggY2xvY2sgc2V0dGVyeSBpbiBiaW5zIHdoZW4gYWRkaW5nIGtpZHMgYWZ0ZXIgdGhlIGNsb2NrIGhhcwoJICBiZWVuIHNlbGVjdGVkLgoKMjAwNS0wNS0xOCAxMzoyMzoyNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFdvcmthcm91bmQgdW50aWwgc2lnbmFscyBzdXBwb3J0IEdzdE1pbmlPYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICBXb3JrYXJvdW5kIHVudGlsIHNpZ25hbHMgc3VwcG9ydCBHc3RNaW5pT2JqZWN0LgoKMjAwNS0wNS0xOCAxMTozNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IE9vcHMsIGZpeCBhIHR5cG8gR1NUX1RZUEVfQlVGRkVSIC0+IEdTVF9UWVBFX1NVQkJVRkZFUi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBPb3BzLCBmaXggYSB0eXBvIEdTVF9UWVBFX0JVRkZFUiAtPiBHU1RfVFlQRV9TVUJCVUZGRVIuCgoyMDA1LTA1LTE4IDA5OjU1OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBQb3J0ZWQgYW5kIGFkZGVkIGFkYXB0ZXIgdG8gdGhlIGJhc2UgY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9hZGFwdGVyX2NsYXNzX2luaXQpLCAoZ3N0X2FkYXB0ZXJfaW5pdCksCgkgIChnc3RfYWRhcHRlcl9kaXNwb3NlKSwgKGdzdF9hZGFwdGVyX2ZpbmFsaXplKSwgKGdzdF9hZGFwdGVyX25ldyksCgkgIChnc3RfYWRhcHRlcl9jbGVhciksIChnc3RfYWRhcHRlcl9wdXNoKSwgKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfZmx1c2gpLCAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlKSwKCSAgKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIFBvcnRlZCBhbmQgYWRkZWQgYWRhcHRlciB0byB0aGUgYmFzZSBjbGFzc2VzLgoKMjAwNS0wNS0xNyAxNzo1MDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBNYWtlIHN1cmUgdGhlIGNsYXNzIGlzIHJlZmZlZC91bnJlZmZlZCBvbmNlIGJlZm9yZSB0aHJlYWRzIGNhbiBiZSB1c2VkLiAgRml4ZXMgIzMwNDU1MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIE1ha2Ugc3VyZSB0aGUgY2xhc3MgaXMgcmVmZmVkL3VucmVmZmVkIG9uY2UgYmVmb3JlIHRocmVhZHMgY2FuIGJlCgkgIHVzZWQuICBGaXhlcyAjMzA0NTUxLgoKMjAwNS0wNS0xNyAxNzozNzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IERvbid0IHF1ZXVlIGJ1ZmZlcnMgaW4gYmFzZXNpbmsgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfZmluaXNoX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHF1ZXVlIGJ1ZmZlcnMgaW4gYmFzZXNpbmsgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuCgkgIFVucmVmIGJ1ZmZlciB3aGVuIGZsdXNoaW5nIGluIGJhc2VzaW5rLgoJICBGbHVzaCBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZCgkgIFVucmVmIGJ1ZmZlciB3aGVuIF9wdXNoKCkgcmV0dXJucyBhbiBlcnJvci4KCSAgRG9uJ3QgZnJlZSBNaW5pT2JqZWN0IGluc3RhbmNlIHdoZW4gcmVmY291bnQgaXMgaW5jcmVtZW50ZWQKCSAgaW4gX2ZpbmFsaXplKCkgc28gdGhhdCB3ZSBjYW4gcmVjb3ZlciBvYmplY3RzLgoKMjAwNS0wNS0xNyAxNzoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtc2NoZWR1bGVycy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJICBzbWFsbCBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNtYWxsIGRvYyBmaXhlcwoKMjAwNS0wNS0xNyAxNDoxMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENsZWFyIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfcHVzaCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgQ2xlYXIgcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgUmVtb3ZlIElOX1NFVENBUFMgZmxhZyB0b28uCgoyMDA1LTA1LTE3IDE0OjAxOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBSZW1vdmUgaW1wbGljaXQgY2FzdCBmcm9tIGdib29sZWFuIHRvIEdzdEVsZW1lbnRTdGF0ZVJldHVybjsgbWFrZSBzdXJlIHdlIHN0aWxsIHJldHVybiBmYWlsdXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFJlbW92ZSBpbXBsaWNpdCBjYXN0IGZyb20gZ2Jvb2xlYW4gdG8gR3N0RWxlbWVudFN0YXRlUmV0dXJuOwoJICBtYWtlIHN1cmUgd2Ugc3RpbGwgcmV0dXJuIGZhaWx1cmUgaW4gcGF1c2VkID0+IHJlYWR5IGNhc2UgaWYKCSAgdGhlIHBhcmVudCBjbGFzcyBmYWlscyB0byBjaGFuZ2Ugc3RhdGUgYW5kIG91ciBvd24gc3RvcAoJICB2ZnVuYyBzdWNjZWVkcy4KCjIwMDUtMDUtMTcgMTA6NDE6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1lc3NhZ2Ugd2FzIHVucmVmZmVkIHRvbyBzb29uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWVzc2FnZSB3YXMgdW5yZWZmZWQgdG9vIHNvb24uCgoyMDA1LTA1LTE2IDIxOjE3OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogRXJyLi4uIHVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBFcnIuLi4gdW0uLi4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE5ldyB0ZXN0IGZvciB0aGUKCSAgZ2hvc3RpbmctaWYtZWxlbWVudHMtbm90LWluLXNhbWUtYmluIGJlaGF2aW9yLgoKMjAwNS0wNS0xNiAyMTowNToyMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBVc2UgZ19hdG9taWNfaW50X2dldCgpIGluc3RlYWQgb2YgYWNjZXNzaW5nIHJlZmNvdW50IGRpcmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiBVc2UgZ19hdG9taWNfaW50X2dldCgpIGluc3RlYWQgb2YKCSAgYWNjZXNzaW5nIHJlZmNvdW50IGRpcmVjdGx5LgoKMjAwNS0wNS0xNiAyMDoyMTo1NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogcmVtb3ZlIEdzdERhdGEgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOiByZW1vdmUgR3N0RGF0YSBjaGVja3MKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKFNUQVJUX1RFU1QpOiBmaXggZm9yIEFQSSBjaGFuZ2VzCgkgICogZ3N0L01ha2VmaWxlLmFtOiBhZGQgbWluaW9iamVjdCwgcmVtb3ZlIGRhdGEKCSAgKiBnc3QvZ3N0Lmg6IGFkZCBtaW5pb2JqZWN0LCByZW1vdmUgZGF0YQoJICAqIGdzdC9nc3RkYXRhLmM6IHJlbW92ZQoJICAqIGdzdC9nc3RkYXRhLmg6IHJlbW92ZQoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaDogcmVtb3ZlCgkgICogZ3N0L2dzdHR5cGVzLmg6IHJlbW92ZSBHc3RFdmVudCBhbmQgR3N0TWVzc2FnZQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOiBmaXggZm9yIEFQSSBjaGFuZ2VzCgkgICogZ3N0L2dzdG1hcnNoYWwubGlzdDogY2hhbmdlIEJPWEVEIC0+IE9CSkVDVAoJICBJbXBsZW1lbnQgR3N0TWluaU9iamVjdC4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIE1vZGlmeSB0byBiZSBzdWJjbGFzc2VzIG9mIEdzdE1pbmlPYmplY3QuCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSksIChnc3RfYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9idWZmZXJfY2xhc3NfaW5pdCksIChnc3RfYnVmZmVyX2ZpbmFsaXplKSwgKF9nc3RfYnVmZmVyX2NvcHkpLAoJICAoZ3N0X2J1ZmZlcl9pbml0KSwgKGdzdF9idWZmZXJfbmV3KSwgKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyksCgkgIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwgKGdzdF9zdWJidWZmZXJfaW5pdCksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLCAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLAoJICAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpLCAoZ3N0X2V2ZW50X2dldF90eXBlKSwKCSAgKGdzdF9ldmVudF9jbGFzc19pbml0KSwgKGdzdF9ldmVudF9pbml0KSwgKGdzdF9ldmVudF9maW5hbGl6ZSksCgkgIChfZ3N0X2V2ZW50X2NvcHkpLCAoZ3N0X2V2ZW50X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKSwKCSAgKGdzdF9tZXNzYWdlX2dldF90eXBlKSwgKGdzdF9tZXNzYWdlX2NsYXNzX2luaXQpLAoJICAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSksIChfZ3N0X21lc3NhZ2VfY29weSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3Rwcm9iZS5jOiAoZ3N0X3Byb2JlX3BlcmZvcm0pLAoJICAoZ3N0X3Byb2JlX2Rpc3BhdGNoZXJfZGlzcGF0Y2gpOgoJICAqIGdzdC9nc3Rwcm9iZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKSwgKGdzdF9xdWVyeV9nZXRfdHlwZSksCgkgIChnc3RfcXVlcnlfY2xhc3NfaW5pdCksIChnc3RfcXVlcnlfZmluYWxpemUpLCAoZ3N0X3F1ZXJ5X2luaXQpLAoJICAoX2dzdF9xdWVyeV9jb3B5KSwgKGdzdF9xdWVyeV9uZXcpOgoJICBVcGRhdGUgZWxlbWVudHMgZm9yIEdzdERhdGEgLT4gR3N0TWluaU9iamVjdCBjaGFuZ2VzCgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfZmluYWxpemUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9hZGRfYnVmZmVyX2Z1bmMpLAoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9jbGVhcmVkX2Z1bmMpLCAoZ3N0X2J1ZmZlcl9zdG9yZV9nZXRfYnVmZmVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9tbWFwX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSksIChnc3RfZmlsZXNyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlc3JjX2NyZWF0ZV9yZWFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KSwgKGZyZWVfZW50cnlfYnVmZmVycyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCjIwMDUtMDUtMTUgMjM6MTg6NDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IERvbid0IGluY2x1ZGUgaGVhZGVycyB0aGF0IHdlcmUganVzdCByZW1vdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogRG9uJ3QgaW5jbHVkZSBoZWFkZXJzIHRoYXQgd2VyZQoJICBqdXN0IHJlbW92ZWQuCgoyMDA1LTA1LTE1IDIzOjE2OjI5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogUmVtb3ZlIHNvbWUgZWxlbWVudHMgdGhhdCBkb24ndCBuZWVkIHRvIGJlIGluIHRoZSBjb3JlIChvciBldmVuIGV4aXN0IGF0IGFsbCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogUmVtb3ZlIHNvbWUgZWxlbWVudHMgdGhhdCBkb24ndAoJICBuZWVkIHRvIGJlIGluIHRoZSBjb3JlIChvciBldmVuIGV4aXN0IGF0IGFsbCkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RwaXBlZmlsdGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHBpcGVmaWx0ZXIuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHNoYXBlci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuaDoKCSAgKiBwby9QT1RGSUxFUy5pbjogUmVtb3ZlIGFib3ZlIGZpbGVzLgoKMjAwNS0wNS0xNCAxODowMToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2l0ZXJhdGVfc2lua3MpOiBVc2Ugc2lua19pdGVyYXRvcl9maWx0ZXIgc28gYXMgdG8gZ2V0IHRoZSByZWZzIHJpZ2h0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IFVzZSBzaW5rX2l0ZXJhdG9yX2ZpbHRlcgoJICBzbyBhcyB0byBnZXQgdGhlIHJlZnMgcmlnaHQuCgkgIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IE5ldyBmdW5jdGlvbiwgd3JhcHMgYmluX2VsZW1lbnRfaXNfc2luaywKCSAgdW5yZWZmaW5nIG9iamVjdHMgdGhhdCBkb24ndCBwYXNzIHRoZSBmaWx0ZXIuCgoyMDA1LTA1LTE0IDE3OjEyOjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBEcm9wIHJlZiBvbiBidXMgYWZ0ZXIgZ3N0X2VsZW1lbnRfc2V0X2J1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogRHJvcCByZWYgb24gYnVzIGFmdGVyCgkgIGdzdF9lbGVtZW50X3NldF9idXMuCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6IFNldCB0aGUgYnVzIG9uIHRoZSBwaXBlbGluZSB0byBOVUxMLiBJbgoJICBub3JtYWwgY2FzZXMsIHRoaXMgd2lsbCBkZXN0cm95IHRoZSBidXMuCgkgICogZ3N0L2dzdHV0aWxzLmMgKHByZXBhcmVfbGlua19tYXliZV9naG9zdGluZyk6IERyb3AgcmVmIG9uIHJvb3QKCSAgb2JqZWN0LgoKMjAwNS0wNS0xNCAxNTo1NDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IEZpeCBzdGF0ZSBjaGFuZ2VzIGlmIGEgYmluIGhhcyBubyBzaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IEZpeCBzdGF0ZSBjaGFuZ2VzIGlmIGEgYmluCgkgIGhhcyBubyBzaW5rcy4KCjIwMDUtMDUtMTQgMTU6MzI6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZ3N0X3BhZF9saW5rLCBjYWxsIHBhZF9saW5rX21heWJlX2dob3N0aW5nLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogSW5zdGVhZCBvZiBjYWxsaW5nCgkgIGdzdF9wYWRfbGluaywgY2FsbCBwYWRfbGlua19tYXliZV9naG9zdGluZywKCSAgKHBhZF9saW5rX21heWJlX2dob3N0aW5nKTogTGlua3MgcGFkcywgbWFraW5nIHN1cmUgdGhhdCB0aGUKCSAgZWxlbWVudHMgYmVpbmcgbGlua2VkIGFyZSBpbiB0aGUgc2FtZSBiaW4uCgkgIChmaW5kX2NvbW1vbl9yb290LCBvYmplY3RfaGFzX2FuY2VzdG9yLCBnaG9zdF91cCwgcmVtb3ZlX3BhZCk6CgkgIEhlbHBlcnMgZm9yIHBhZF9saW5rX21heWJlX2dob3N0aW5nLgoKMjAwNS0wNS0xMyAxMjo1Mzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWIgPj0gMi40LjAgKGZvciB0aGUgZ19hdG9taWNfKiBmdW5jcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlcXVpcmUgR0xpYiA+PSAyLjQuMCAoZm9yIHRoZSBnX2F0b21pY18qIGZ1bmNzKQoKMjAwNS0wNS0xMyAxMDoxODo0MSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBtaXNzaW5nIC5oIGZpbGUgdG8gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyAuaCBmaWxlIHRvIHNwZWMgZmlsZQoKMjAwNS0wNS0xMyAwOToyNzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgIE1lbnRpb24gR3N0UHVzaFNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBHc3RQdXNoU3JjCgoyMDA1LTA1LTEyIDE5OjQ1OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSWRlbnRpZnkgc2lua3MgYnkgdGhlaXIgZmxhZyB0byBhdm9pZCBvdmVybHkgY29tcGxpY2F0ZWQgY2hlY2tzIChmb3cgbm93KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwKCSAgKGdzdF9iYXNlc3JjX2lzX3NlZWthYmxlKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoYmluX2VsZW1lbnRfaXNfc2luayksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIElkZW50aWZ5IHNpbmtzIGJ5IHRoZWlyIGZsYWcgdG8gYXZvaWQgb3Zlcmx5IGNvbXBsaWNhdGVkCgkgIGNoZWNrcyAoZm93IG5vdykuCgkgIERvIHN0YXRlIGNoYW5nZXMgZXZlbiBmb3IgZWxlbWVudHMgbm90IHJlYWNoYWJsZSBmcm9tIHRoZQoJICBzaW5rcy4KCSAgQmFzZVNpbmsgaXMgYSBzaW5rIG5vdyA6KQoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8gaW4gdGhlIGJhc2VzcmMuCgoyMDA1LTA1LTEyIDE1OjA5OjE3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEltcGxlbWVudCBfcXVlcnkgb24gYSBiaW4sIHNpbWlsYXIgdG8gX3NlbmRfZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3F1ZXJ5KToKCSAgSW1wbGVtZW50IF9xdWVyeSBvbiBhIGJpbiwgc2ltaWxhciB0byBfc2VuZF9ldmVudC4KCjIwMDUtMDUtMTIgMTM6NTk6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERpc2NvbnQgZXZlbnQgb2Zmc2V0IGZvcm1hdCBzaG91bGQgYmUgR1NUX0ZPUk1BVF9CWVRFUywgbm90IEdTVF9GT1JNQVRfVElNRS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZG9fc2Vlayk6CgkgIERpc2NvbnQgZXZlbnQgb2Zmc2V0IGZvcm1hdCBzaG91bGQgYmUgR1NUX0ZPUk1BVF9CWVRFUywKCSAgbm90IEdTVF9GT1JNQVRfVElNRS4KCjIwMDUtMDUtMTIgMTM6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNhbWUgZml4IGFzIFJvbmFsZCdzIGJ1dCB3aXRob3V0IHRoZSBzaWduYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpOgoJICBTYW1lIGZpeCBhcyBSb25hbGQncyBidXQgd2l0aG91dCB0aGUgc2lnbmFsLgoKMjAwNS0wNS0xMiAxMjoyNzowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE5vLCBhbiBlbGVtZW50IGlzIG5vdCBhIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbik6CgkgIE5vLCBhbiBlbGVtZW50IGlzIG5vdCBhIHBhZC4KCjIwMDUtMDUtMTIgMTI6MTc6MjMgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogSWYgYSBjaGlsZCBpcyByZW1vdmVkIGZyb20gYSBiaW4gd2hpbGUgd2UgcmVtb3ZlIHRoZSBjaGlsZCBmcm9tIHRoZSBiaW4gYW5kIHdoaWxlIHdlJ3JlIHJldHJpZXZpbmcgaXRzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGNiX3BhcmVudF91bnNldCksCgkgIChnc3RfYmluX2dldF9zdGF0ZSk6CgkgIElmIGEgY2hpbGQgaXMgcmVtb3ZlZCBmcm9tIGEgYmluIHdoaWxlIHdlIHJlbW92ZSB0aGUgY2hpbGQgZnJvbQoJICB0aGUgYmluIGFuZCB3aGlsZSB3ZSdyZSByZXRyaWV2aW5nIGl0cyBzdGF0ZSwgc2lnbmFsIHRoaXMgdG8gdGhlCgkgIGdldF9zdGF0ZSBmdW5jdGlvbiBzbyB3ZSBhYm9ydCB0aGUgd2FpdCAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvcgoJICBhIHRpbWVvdXQpIGFuZCBjYW4gaW1tZWRpYXRlbHkgcmUtaXRlcmF0ZSBvdmVyIGFsbCBvdGhlciBlbGVtZW50cy4KCjIwMDUtMDUtMTIgMTA6NDM6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IEFkZGVkIGlzX3NlZWthYmxlIHRvIEJhc2VTcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaXNfc2Vla2FibGUpLAoJICAoZ3N0X2Jhc2VzcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IChnc3RfcHVzaHNyY19nZXRfdHlwZSksCgkgIChnc3RfcHVzaHNyY19iYXNlX2luaXQpLCAoZ3N0X3B1c2hzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcHVzaHNyY19pbml0KSwgKGdzdF9wdXNoc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBBZGRlZCBpc19zZWVrYWJsZSB0byBCYXNlU3JjCgkgIEFkZGVkIHNpbXBsZSBQdXNoU3JjLgoKMjAwNS0wNS0xMSAwOToyMToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCByZWZjb3VudGluZyBpbiB1dGlscyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyksIChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KSwgKGludGVyc2VjdF9jYXBzX2Z1bmMpLAoJICAoZ3N0X3BhZF9xdWVyeV9wb3NpdGlvbiksIChnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQpOgoJICBGaXggcmVmY291bnRpbmcgaW4gdXRpbHMgZnVuY3Rpb24uCgkgIE5vIHBvaW50IGluIHRyeWluZyB0byBhY3RpdmF0ZSBhIHBhZCB3aGVuIGl0J3MgYWRkZWQsIGl0IGNvdWxkCgkgIGJlIGFkZGVkIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhbmQgdGhlbiB3ZSBkZWFkbG9jaywgdGhlCgkgIGVsZW1lbnQgaGFzIHRvIGRlY2lkZSB3aGF0IHRvIGRvLgoKMjAwNS0wNS0xMSAwMzozNzoxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19yZW5kZXIpOiBFciwgZW1pdCB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jIChnc3RfZmFrZXNpbmtfcmVuZGVyKTogRXIsIGVtaXQgd2l0aAoJICAqYWxsKiB0aGUgYXJndW1lbnRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KTogR3JhYiB0aGUKCSAgc3RyZWFtIGxvY2sgaWYgaXQncyBhIEZMVVNIX0RPTkU7IG5vcm1hbCBmbHVzaGVzIGRvbid0IGdldCB0aGUKCSAgbG9jayAoYWNjb3JkaW5nIHRvIHRoZSBkb2NzIC0tIGlmIHRoaXMgaXMgd3JvbmcgY2hhbmdlIHRoZSBkb2NzKS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IFNldCB0aGUgYnVzIHRvCgkgIGZsdXNoIG1lc3NhZ2VzIGluIHRoZSBOVUxMIHN0YXRlLgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19wb3N0KTogSWYgYSBidXMgaXMgZmx1c2hpbmcsIHVucmVmIHRoZQoJICBtZXNzYWdlIGltbWVkaWF0ZWx5IGFuZCByZXR1cm4uCgkgIChnc3RfYnVzX3NldF9mbHVzaGluZyk6IE5ldyBmdW5jdGlvbi4gSWYgYSBidXMgaXMgZmx1c2hpbmcsIGl0CgkgIGZsdXNoZXMgb3V0IGFueSBxdWV1ZWQgbWVzc2FnZXMgYW5kIGltbWVkaWF0ZWx5IHVucmVmcyBuZXcKCSAgbWVzc2FnZXMuIFRoaXMgaXMgc28gd2hlbiBhbiBlbGVtZW50IGdvZXMgdG8gTlVMTCwgYWxsIG9mIHRoZQoJICB1bmhhbmRsZWQgbWVzc2FnZXMgY29taW5nIGZyb20gaXQgY2FuIGJlIGZyZWVkLCBhbmQgdGhlaXIKCSAgcmVmZXJlbmNlcyB0byB0aGUgZWxlbWVudCBkcm9wcGVkLiBJbiBvdGhlciB3b3JkczogbWVzc2FnZSBzb3VyY2UKCSAgcmVmIGNvbnNpZGVyZWQgaGFybWZ1bCA6UAoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBVbnJlZiBwZWVyIGVsZW1lbnQgd2hlbgoJICB3ZSdyZSBmaW5pc2hlZCB3aXRoIGl0LgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCjIwMDUtMDUtMTAgMTQ6NTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgcmVtb3ZlIHN0dXBpZCBwcmludGYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzdHVwaWQgcHJpbnRmCgoyMDA1LTA1LTEwIDE0OjUwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEFkZGVkIGZsYWdzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS9jb21wYXJlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfZmxhZ3MpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLAoJICAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgQWRkZWQgZmxhZ3Mgc2VyaWFsaXplL2Rlc2VyaWFsaXplL2NvbXBhcmUgY29kZS4KCjIwMDUtMDUtMDkgMjE6Mzc6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOiBJbnRlcnNlY3QgdGhlIHBlZXIncyBjYXBzIHdpdGggb3VyIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOgoJICBJbnRlcnNlY3QgdGhlIHBlZXIncyBjYXBzIHdpdGggb3VyIGNhcHMuCgoyMDA1LTA1LTA5IDE1OjU0OjI2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvOiBIYW5kbGUgbmVnYXRpdmUgb2Zmc2V0cyBiZXR0ZXIuIEZpeGVzIGRlY29kZWJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfcGVlayk6CgkgIEhhbmRsZSBuZWdhdGl2ZSBvZmZzZXRzIGJldHRlci4gRml4ZXMgZGVjb2RlYmluLgoKMjAwNS0wNS0wOSAxNDo0NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEltcGxlbWVudCBhY2NlcHRfY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpOgoJICBJbXBsZW1lbnQgYWNjZXB0X2NhcHMuCgkgIEZpeCBzaWxseSBsb2NrL3VubG9jayBtaXNtYXRjaCBpbiBiYXNlIGNsYXNzLgoKMjAwNS0wNS0wOSAxMDo1MzoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFJlbW92ZSBvbGQgcXVlcnkgZnVuY3Rpb25zLiBQb3J0ZWQgb2xkIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgb2xkIHF1ZXJ5IGZ1bmN0aW9ucy4gUG9ydGVkIG9sZCBjb2RlLgoJICBBZGRlZCBwb3NpdGlvbi9jb252ZXJ0IGhlbHBlciBmdW5jdGlvbnMgdG8gZ3N0dXRpbHMuCgkgIFJlb3JkZXJlZCBnc3RwYWQuYyBjb2RlLCBncm91cGluZyByZWxldmFudCB0aGluZ3MuCgkgIFJlbW92ZSBnc3RfbWVzc2FnZV9uZXcoKSwgYWx3YXlzIG5lZWQgdG8gc3BlZmljeSBhIHNwZWNpZmljCgkgIG1lc3NhZ2UuCgoyMDA1LTA1LTA5IDA2OjIxOjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuaDogQWRkIHNvbWUgaW5jbHVkZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOiBBZGQgc29tZSBpbmNsdWRlcy4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5oOiBJbmNsdWRlIG1vcmUgaGVhZGVycy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKTogTmV3IHJvdXRpbmUsIHJlcGxhY2VzCgkgIHNvbWUgdXNlcyBvZiBnc3RfcGFkX3F1ZXJ5LgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmM6IEJ1aWxkIGZpeGVzLiBNYWtlIHBhcnNlIGZ1bmN0aW9ucyBpZ25vcmUKCSAgTlVMTCBvdXQgcGFyYW1ldGVycy4KCSAgKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pOiBOZXcgcHJvYywgYWxsb2NhdGVzIGEgbmV3IHBvc2l0aW9uCgkgIHF1ZXJ5LgoJICAqIGdzdC9NYWtlZmlsZS5hbSAobGliZ3N0cmVhbWVyX0BHU1RfTUFKT1JNSU5PUkBfbGFfU09VUkNFUyk6IEFkZAoJICBnc3RxdWVyeXV0aWxzLmMgdG8gdGhlIGJ1aWxkLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYyAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KTogSW1wbGVtZW50IHdpdGgKCSAgdGhlIGdlbmVyaWMgR19WQUxVRV9DT0xMRUNULgoKMjAwNS0wNS0wOCAxNzowNzowNSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogQWRkZWQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0IG9mIGhlYWRlcnMgdG8gaW5zdGFsbCwgdGhhdCB3YXMgYSAnbmFjaHR5JyBtb3ZlIHdpbmdvIDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogKGdzdF9oZWFkZXJzKToKCSAgQWRkZWQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0IG9mIGhlYWRlcnMgdG8gaW5zdGFsbCwgdGhhdCB3YXMKCSAgYSAnbmFjaHR5JyBtb3ZlIHdpbmdvIDopCgoyMDA1LTA1LTA2IDIxOjQxOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cXVlcnkuaAoJICAqIGdzdC9nc3RxdWVyeS5jIChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpOiBFeHRlbmQgR3N0UXVlcnkgZnJvbQoJICBHc3REYXRhLCBpbml0IGEgbWVtY2h1bmsuCgkgIChzdGFuZGFyZF9kZWZpbml0aW9ucyk6IEFkZCBhIGZldyBxdWVyeSB0eXBlcywgZGVwcmVjYXRlIGEgZmV3LgoJICAoZ3N0X3F1ZXJ5X2dldF90eXBlKTogTmV3IHByb2MuCgkgIChfZ3N0X3F1ZXJ5X2NvcHksIF9nc3RfcXVlcnlfZnJlZSwgZ3N0X3F1ZXJ5X25ldyk6IEdzdERhdGEKCSAgaW1wbGVtZW50YXRpb24uCgkgIChnc3RfcXVlcnlfbmV3X2FwcGxpY2F0aW9uLCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSk6IE5ldyBwdWJsaWMKCSAgcHJvY3MuCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OiBSZW1vdmVkIExJTktTIGZyb20gdGhlIHF1ZXJ5IHR5cGVzLAoJICBiZWNhdXNlIGFsbCB0aGUgcmVzdCBjYW4gYmUgZGlzcGF0Y2hlZCB0byBvdGhlciBwYWRzIC0tIHNlZW1lZAoJICB1Z2x5IHRvIGhhdmUgYSBxdWVyeSB0aGF0IGNvdWxkbid0IGJlIGRpc3BhdGNoZWQuIGludGVybmFsX2xpbmtzCgkgIGlzIGZpbmUgYXMgYSBwYWQgbWV0aG9kLgoJICAqIGdzdC9nc3RwYWQuaDogQWRkIHF1ZXJ5MiBhcyBhIHBhZCBtZXRob2QsIGFkZCB0aGUgbmV3IGZ1bmN0aW9ucwoJICBpbiBnc3RwYWQuYywgYnV0IG1haW50YWluIGJpbmFyeSBjb21wYXRpYmlsaXR5IGZvciB0aGUgbW9tZW50LgoJICBXaWxsIGZpeCBiZWZvcmUgMC45IGlzIG91dC4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmg6IE5ldyBmaWxlcywgaW1wbGVtZW50IDMgbWV0aG9kcyBmb3IgZWFjaAoJICBxdWVyeSB0eXBlOiBwYXJzZV9xdWVyeSwgcGFyc2VfcmVzcG9uc2UsIGFuZCBzZXQuIFByb2JhYmx5IG5lZWQgYW4KCSAgYWxsb2NhdG9yIGFzIHdlbGwuCgkgICogZ3N0L2dzdC5oOiBBZGQgZ3N0cXVlcnkuaCBhbmQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0LgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZXNpbmtfcXVlcnkyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3F1ZXJ5Mik6IFJlcGxhY2Ugb2xkIHF1ZXJ5LAoJICBxdWVyeV90eXBlcywgYW5kIGZvcm1hdHMgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcXVlcnkyLCBnc3RfcGFkX3F1ZXJ5Ml9kZWZhdWx0KQoJICAoZ3N0X3BhZF9zZXRfcXVlcnkyX2Z1bmN0aW9uKTogTmV3IGZ1bmN0aW9ucy4KCSAgKGdzdF9yZWFsX3BhZF9pbml0KTogU2V0IHF1ZXJ5Ml9kZWZhdWx0IGFzIHRoZSBkZWZhdWx0IHF1ZXJ5MgoJICBmdW5jdGlvbi4gQmFzaWNhbGx5IGp1c3QgZGlzcGF0Y2hlcyB0byBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzLgoJICBOZWVkcyByZXZpZXchCgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oIChfR1NUX0RBVEFfSU5JVCk6IFNldCBkYXRhLT5yZWZjb3VudCB0byAxCgkgIHdpdGhvdXQgdXNpbmcgdGhlIGF0b21pYyBvcGVyYXRpb25zLiBPbmx5IG9uZSB0aHJlYWQgY2FuIHBvc3NpYmx5CgkgIGJlIGFjY2Vzc2luZyB0aGUgZGF0YSBhdCB0aGlzIHBvaW50LiBDaGFuZ2VkIHNvIGFzIHRvIGF2b2lkCgkgIGdzdF9hdG9taWMgb3BlcmF0aW9ucy4KCjIwMDUtMDUtMDYgMTk6NTA6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFsc28gc2V0IGNhcHMgaWYgd2UgdXNlIHRoZSBmYWxsYmFjayBidWZmZXIgYWxsb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcHVzaCk6CgkgIEFsc28gc2V0IGNhcHMgaWYgd2UgdXNlIHRoZSBmYWxsYmFjayBidWZmZXIgYWxsb2MuCgoyMDA1LTA1LTA2IDE3OjMzOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUHVyZ2UgR3N0QXRvbWljIHN0dWZmIGZyb20gZG9jcyBhbmQgd2luMzIgbWFrZWZpbGVzIGFzIHdlbGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YXRvbWljLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJICAqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkgICogd2luMzIvTWFrZWZpbGU6CgkgIFB1cmdlIEdzdEF0b21pYyBzdHVmZiBmcm9tIGRvY3MgYW5kIHdpbjMyIG1ha2VmaWxlcyBhcyB3ZWxsCgoyMDA1LTA1LTA2IDE3OjEwOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGdzdF9wYWRfcGVlcl9nZXRfY2FwcygpLCBtYWtlIGl0IHJldHVybiBOVUxMIGlmIG5vIHBlZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfZ2V0Y2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9nZXRjYXBzKSwKCSAgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChpbnRlcnNlY3RfY2Fwc19mdW5jKToKCSAgRml4IGdzdF9wYWRfcGVlcl9nZXRfY2FwcygpLCBtYWtlIGl0IHJldHVybiBOVUxMIGlmIG5vIHBlZXIuCgkgIEFsd2F5cyB0YWtlIFFVRVVFX0xPQ0sgYWZ0ZXIgU1RSRUFNX0xPQ0sgb3Igd2UgbWlnaHQgZGVhZGxvY2suCgkgIFNvbWUgZml4ZXMgZm9yIHRoZSBwZWVyX2dldF9jYXBzKCkgY2hhbmdlLgoKMjAwNS0wNS0wNiAxNjoxOTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFjdHVhbGx5IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yIGNvZGVzIHJldHVybmVkIGZyb20gdGhlIHB1c2ggZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgIEFjdHVhbGx5IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yIGNvZGVzIHJldHVybmVkIGZyb20gdGhlIHB1c2gKCSAgZnVuY3Rpb25zLgoKMjAwNS0wNS0wNiAwODoyNToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY191bmxvY2spLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFNvbWUgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBGaXhlZCBzY2hlZHVsaW5nIGRlY2lzaW9uIGluIF9wYWRzX2FjdGl2YXRlKCkuCgoyMDA1LTA1LTA1IDIxOjU5OjUzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpbmFsIGNydWZ0IGZpeGFnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmluYWwgY3J1ZnQgZml4YWdlCgoyMDA1LTA1LTA1IDIxOjQ1OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgY3J1ZnQgcmVtb3ZhbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY3J1ZnQgcmVtb3ZhbAoKMjAwNS0wNS0wNSAyMTo0MjoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICByZXZlcnQgY3J1ZnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBjcnVmdAoKMjAwNS0wNS0wNSAyMTozNzozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHJldmVydCBhY2NpZGVudGFsIGNvbW1pdCBvZiBjcnVmdCAtLSBkb2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBhY2NpZGVudGFsIGNvbW1pdCBvZiBjcnVmdCAtLSBkb2gKCjIwMDUtMDUtMDUgMTU6MDI6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3RfMl9lbGVtZW50cyk6ICJGaXgiIHRoZSB0ZXN0IHN1aXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0XzJfZWxlbWVudHMpOiAiRml4IgoJICB0aGUgdGVzdCBzdWl0ZS4KCjIwMDUtMDUtMDUgMTE6NDM6MDYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggYnJva2VuIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJyb2tlbiBzcGVjIGZpbGUKCjIwMDUtMDUtMDUgMDk6MzE6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBvYmplY3QgdG8gaGVscCBpbiBtYWtpbmcgY29sbGVjdCBwYWQgYmFzZWQgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaW5pdCksCgkgIChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZ2V0X3R5cGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2ZpbmFsaXplKSwgKGdzdF9jb2xsZWN0cGFkc19uZXcpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3NldF9mdW5jdGlvbiksIChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCksCgkgIChmaW5kX3BhZCksIChnc3RfY29sbGVjdHBhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdHBhZHNfaXNfYWN0aXZlKSwgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0X3JhbmdlKSwgKGdzdF9jb2xsZWN0cGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCksIChnc3RfY29sbGVjdHBhZHNfcGVlayksCgkgIChnc3RfY29sbGVjdHBhZHNfcG9wKSwgKGdzdF9jb2xsZWN0cGFkc19hdmFpbGFibGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3JlYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX2ZsdXNoKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNpbmtfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlc2lua19ldmVudCksCgkgIChnc3RfZmFrZXNpbmtfcHJlcm9sbCksIChnc3RfZmFrZXNpbmtfcmVuZGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlc2lua19pbml0KSwgKGdzdF9maWxlc2lua19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVzaW5rX29wZW5fZmlsZSksIChnc3RfZmlsZXNpbmtfY2xvc2VfZmlsZSksCgkgIChnc3RfZmlsZXNpbmtfcGFkX3F1ZXJ5KSwgKGdzdF9maWxlc2lua19ldmVudCksCgkgIChnc3RfZmlsZXNpbmtfcmVuZGVyKSwgKGdzdF9maWxlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBBZGRlZCBvYmplY3QgdG8gaGVscCBpbiBtYWtpbmcgY29sbGVjdCBwYWQgYmFzZWQgZWxlbWVudHMuCgkgIFBvcnRlZCBmaWxlc2luay4KCSAgTWFrZSBldmVudCBmdW5jdGlvbiBpbiBzaW5rIGJhc2VjbGFzcyByZXR1cm4gZ2Jvb2xlYW4uCgoyMDA1LTA1LTA1IDA5OjI4OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IG5hbWUgbG9va3VwIGluIEdzdEJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZW5kX2V2ZW50KSwgKGNvbXBhcmVfbmFtZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKGdzdF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9jbG9ja19maW5hbGl6ZSk6CgkgICogZ3N0L2dzdGRhdGEuYzogKGdzdF9kYXRhX3JlcGxhY2UpOgoJICAqIGdzdC9nc3RkYXRhLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaW5pdCksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwKCSAgKGdzdF9wYWRfcGF1c2VfdGFzayksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKToKCSAgRml4IG5hbWUgbG9va3VwIGluIEdzdEJpbi4KCSAgQWRkZWQgX2RhdGFfcmVwbGFjZSgpIGZ1bmN0aW9uIGFuZCBfYnVmZmVyX3JlcGxhY2UoKQoJICBVc2UgZmluYWxpemUgbWV0aG9kIHRvIGNsZWFuIHVwIGNsb2NrLgoJICBGaXggcmVmY291bnRpbmcgb24gcmVxdWVzdCBwYWRzLgoJICBGaXggcGFkIHNjaGVkdWxlIG1vZGUgZXJyb3IuCgkgIFNvbWUgbW9yZSBvYmplY3QgcmVmY291bnRpbmcgZGVidWcgaW5mbywKCjIwMDUtMDUtMDQgMjE6Mjk6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEdDQyA0IGZpeGVuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YXRvbWljLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKSwKCSAgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2VzcmNfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlc3JjX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX2VsZW1lbnRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2F2ZV90aHlzZWxmKSwgKGdzdF9iaW5fcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpLCAoZ3N0X2NhcHNfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9jYXBzX2xvYWRfdGh5c2VsZik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKSwgKGdzdF9lbGVtZW50X3Jlc3RvcmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9sb2FkX2FuZF9saW5rKSwgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9naG9zdF9wYWRfc2F2ZV90aHlzZWxmKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfd3JpdGUpLCAoZ3N0X3htbF9wYXJzZV9kb2MpLAoJICAoZ3N0X3htbF9wYXJzZV9maWxlKSwgKGdzdF94bWxfcGFyc2VfbWVtb3J5KSwKCSAgKGdzdF94bWxfZ2V0X2VsZW1lbnQpLCAoZ3N0X3htbF9tYWtlX2VsZW1lbnQpOgoJICAqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2xvYWQpLAoJICAoX2ZpbGVfaW5kZXhfaWRfc2F2ZV94bWwpLCAoZ3N0X2ZpbGVfaW5kZXhfY29tbWl0KToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAocmVhZF9zdHJpbmcpLCAocmVhZF91aW50KSwKCSAgKHJlYWRfZW51bSksIChsb2FkX3BhZF90ZW1wbGF0ZSksIChsb2FkX2ZlYXR1cmUpLCAobG9hZF9wbHVnaW4pLAoJICAobG9hZF9wYXRocyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwgKGdzdF9kcF9jYXBzX2Zyb21fcGFja2V0KToKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6ICh4bWxsYXVuY2hfcGFyc2VfY21kbGluZSk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllcyk6CgkgIEdDQyA0IGZpeGVuLgoKMjAwNS0wNS0wNCAxOTo0MTowNSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZpbGUgdG8gd29yayBmb3IgMC45IGJyYW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIHNwZWMgZmlsZSB0byB3b3JrIGZvciAwLjkgYnJhbmNoCgoyMDA1LTA1LTAzIDEyOjQ2OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogYXBwbHkgcGF0Y2ggZnJvbSAjMTcyNTI2IHRvIG1ha2UgcmVnaXN0ZXIgd29yayBvbiBNYWNPU1gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9jaGVja19tb2R1bGUpLAoJICAoZ3N0X3BsdWdpbl9jaGVja19maWxlKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgYXBwbHkgcGF0Y2ggZnJvbSAjMTcyNTI2IHRvIG1ha2UgcmVnaXN0ZXIgd29yayBvbiBNYWNPU1gKCjIwMDUtMDUtMDIgMTY6NTA6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNS0wMiAxNTozMTozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJICBtb3JlIHByaW50IGZvcm1hdCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBwcmludCBmb3JtYXQgZml4ZXMKCjIwMDUtMDUtMDIgMTU6MjA6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJICBtZXJnZXMgZnJvbSAwLjggZm9yIDY0IGJpdCBpc3N1ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1lcmdlcyBmcm9tIDAuOCBmb3IgNjQgYml0IGlzc3VlcwoKMjAwNS0wNS0wMiAxMzo1NToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIGRyYWZ0IGZvciBuZXcgcXVlcnkgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzcmNfc3RhcnQpOgoJICBBZGRlZCBkcmFmdCBmb3IgbmV3IHF1ZXJ5IEFQSS4KCSAgQWRkZWQgZHJhZnQgZm9yIGJldHRlciBzZWxlY3Rpbmcgc2NoZWR1bGluZyBtZXRob2RzLgoJICBNYWtlIGJhc2VzcmMgaWdub3JlIGxlbmd0aCBpZiB0aGUgc3ViY2xhc3MgZG9lcyBub3Qgc3VwcG9ydAoJICBpdC4KCjIwMDUtMDUtMDIgMTE6NTQ6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGF1dG9tYWtlIDEuNSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b21ha2UgMS41IGZpeGVzCgoyMDA1LTA1LTAyIDExOjQ3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbHMubWFrOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBwb3NzaWJsZSBmaXhlcyBmb3IgYXV0b21ha2UtMS41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwb3NzaWJsZSBmaXhlcyBmb3IgYXV0b21ha2UtMS41CgoyMDA1LTA0LTI4IDE2OjI4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQmV0dGVyIGRlYnVnZ2luZyBvZiBjbG9ja2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZGlzY29udF9nZXRfdmFsdWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAocGlwZWxpbmVfYnVzX2hhbmRsZXIpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfdW5sb2NrZWQpOgoJICBCZXR0ZXIgZGVidWdnaW5nIG9mIGNsb2NraW5nIGluZm8uCgkgIEFsbG93IE5VTEwgdmFsdWVzIHdoZW4gZ2V0dGluZyBkaXNjb250IHZhbHVlcy4KCjIwMDUtMDQtMjcgMTQ6MTk6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvOiBJbmNyZWFzZSB0aW1lb3V0IGZvciBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEluY3JlYXNlIHRpbWVvdXQgZm9yIGNoZWNrcy4KCjIwMDUtMDQtMjcgMTM6NTI6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGZpeCB0aGUgYnJva2VuIHJ1bGUgZm9yIGNsZWFudXAuICBBcHBhcmVudGx5IHRoaXMgcnVsZSBpcyBvbmx5IG5lZWRlZCBvbiBGQzIsIHNvIG1heWJlIHRoaXMgd2FycmFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggdGhlIGJyb2tlbiBydWxlIGZvciBjbGVhbnVwLiAgQXBwYXJlbnRseSB0aGlzIHJ1bGUgaXMKCSAgb25seSBuZWVkZWQgb24gRkMyLCBzbyBtYXliZSB0aGlzIHdhcnJhbnRzIGZ1cnRoZXIgYXV0b3Rvb2wKCSAgaW5zcGVjdGlvbi4KCjIwMDUtMDQtMjYgMTg6MDc6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dHJhc2hzdGFjay5oOiBPb29oaC4gYSBuYXN0eSBvbmUhIEFmdGVyIGhhdmluZyBhIGZhaWxlZCBwb3AoKSBmcm9tIHRoZSBzdGFjaywgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBzdGFjayBpcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgT29vaGguIGEgbmFzdHkgb25lISBBZnRlciBoYXZpbmcgYSBmYWlsZWQgcG9wKCkgZnJvbSB0aGUgc3RhY2ssCgkgIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgc3RhY2sgaXMgZW1wdHkuIEluIHRoYXQgY2FzZSwgZG9uJ3QKCSAgZm9sbG93IHRoZSBOVUxMIHBvaW50ZXIuCgoyMDA1LTA0LTI1IDEzOjAwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIGdzdF9saWJyYXJ5X2xvYWQgYXMgaXQgZG9lcyBtb3JlIGhhcm0gdGhhbiBnb29kIHdpdGggdGhlIG5ldyBnX21vZHVsZSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLAoJICAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWQpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgUmVtb3ZlIGdzdF9saWJyYXJ5X2xvYWQgYXMgaXQgZG9lcyBtb3JlIGhhcm0gdGhhbiBnb29kIHdpdGgKCSAgdGhlIG5ldyBnX21vZHVsZSBmbGFncy4KCSAgUmV2ZXJ0IGJvZ3VzIGNhcHMgdGVtcGxhdGUgY2hlY2sgaW4gcGFkIGxpbmtpbmcsIHBhZCBjYXBzCgkgIGFyZSBpbXBvcnRhbnQgd2hlbiBsaW5raW5nIG5vdCB0aGUgdGVtcGxhdGUsIHdoaWNoIGlzIG1vcmUKCSAgZ2VuZXJhbCB0aGFuIHRoZSBjdXJyZW50IGNhcHMuCgoyMDA1LTA0LTI1IDExOjUxOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICB0aGVyZSBpcyBubyBzcGVlZC4gIHJlYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZXJlIGlzIG5vIHNwZWVkLiAgcmVhbGx5LgoKMjAwNS0wNC0yNSAwOTo1MTowNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2F1dG9wbHVnLzogRGllLCBzcGlkZXIsIGRpZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9wbHVnLy5jdnNpZ25vcmU6CgkgICogZ3N0L2F1dG9wbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5oOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyLmg6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5LmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5Lmg6CgkgICogZ3N0L2F1dG9wbHVnL3NwaWRlcnRlc3QuYzoKCSAgRGllLCBzcGlkZXIsIGRpZS4KCjIwMDUtMDQtMjUgMDk6NDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IEFkZGVkIHN0dWJzIGZvciB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIHN0dWJzIGZvciB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4KCjIwMDUtMDQtMjUgMDM6NTQ6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZmlsZSBweXRob24tZWxlbWVudHMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBweXRob24tZWxlbWVudHMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0yNCAyMzo1MzowNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkLmg6IERpc2FibGUgc29tZSB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4gIFdpbSwgcGxlYXNlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOiBEaXNhYmxlIHNvbWUgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuICBXaW0sCgkgIHBsZWFzZSBmaXguCgoyMDA1LTA0LTI0IDIyOjQ5OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIENvbnZlcnQgZXZlcnl0aGluZyBmcm9tIEdzdEF0b21pY0ludCB0byBnX2F0b21pY19pbnRfKiwgYW5kIHJlbW92ZSBnc3RhdG9taWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDb252ZXJ0IGV2ZXJ5dGhpbmcgZnJvbSBHc3RBdG9taWNJbnQgdG8gZ19hdG9taWNfaW50XyosIGFuZAoJICByZW1vdmUgZ3N0YXRvbWljLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YXRvbWljLmM6CgkgICogZ3N0L2dzdGF0b21pYy5oOgoJICAqIGdzdC9nc3RhdG9taWNfaW1wbC5oOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRhdGEuYzoKCSAgKiBnc3QvZ3N0ZGF0YS5oOgoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IEFkZCBnc3RfYXRvbWljX2ludF9zZXQoKSBjb21wYWl0aWJpbGl0eSBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCjIwMDUtMDQtMjQgMjI6NDQ6MTMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jOiBPaCB5ZWFoLCBpdCdzIGFsd2F5cyBuaWNlIHRvIG1ha2UgdGhlIHJlZ3Jlc3Npb25zIHRlc3RzIHdvcmsuICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpOiBPaCB5ZWFoLCBpdCdzIGFsd2F5cyBuaWNlIHRvCgkgIG1ha2UgdGhlIHJlZ3Jlc3Npb25zIHRlc3RzIHdvcmsuICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgbm8KCSAgbG9uZ2VyIHRydWUuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX3RlbXBsYXRlc19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgRGlzYWJsZSB3YXJuaW5nIGZvciBwYWRzIHdpdGhvdXQgdGVtcGxhdGVzLgoKMjAwNS0wNC0yNCAyMToxNjo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBoYW5kbGluZyBvZiBmaWx0ZXJlZCBjYXBzLiAgRml4L21lcmdlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBmaWx0ZXJlZCBsaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiBSZW1vdmUgaGFuZGxpbmcgb2YgZmlsdGVyZWQgY2Fwcy4gIEZpeC9tZXJnZQoJICBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgZmlsdGVyZWQgbGlua3MuCgkgICogZ3N0L2dzdHBhZC5oOiBSZW1vdmUgJ2FwcGZpbHRlcicgZmllbGQgYW5kIHByb3RvdHlwZXMgb2YKCSAgcmVtb3ZlZCBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IEZpeC9yZW1vdmUgdXRpbGl0eSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUKCSAgZmlsdGVyZWQgY2Fwcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogQWRkIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uIG9mIGNhcHMKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OiBJZ25vcmUgZmlsdGVyZWQgY2FwcyB3aGVuIGxpbmtpbmcuICBUaGlzCgkgIHJlcXVpcmVzIGZpeGluZyBzbyB0aGF0IHRoZSBmaWx0ZXIgY2FwcyBub3RhdGlvbiBjcmVhdGVzCgkgIGEgY2Fwc2ZpbHRlciBlbGVtZW50IGFuZCBzZXRzIHRoZSBmaWx0ZXJfY2FwcyBwcm9wZXJ0eS4gIEkKCSAgdGhpbmsgZXZlcnlvbmUgcHJvYmFibHkgd2FudHMgdG8ga2VlcCB0aGUgc2hvcnRoYW5kIG5vdGF0aW9uLgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOiB1cGRhdGVzIGZvciBBUEkgY2hhbmdlcy4KCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBSZWdpc3RlciBjYXBzZmlsdGVyIGVsZW1lbnQuCgkgICogZ3N0L01ha2VmaWxlLmFtOiBmaXggc3BhY2luZwoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczogcmFuZG9tCgoyMDA1LTA0LTIzIDIzOjI5OjQ3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy86IE5ldyBlbGVtZW50IHRoYXQgYWN0cyBsaWtlIGFuIGlkZW50aXR5LCBidXQgZmlsdGVycyBjYXBzLiAgV2lsbCBldmVudHVhbGx5IHJlcGxhY2UgZmlsdGVyZWQgY2FwcyBpbiBwYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogTmV3IGVsZW1lbnQgdGhhdCBhY3RzIGxpa2UgYW4KCSAgaWRlbnRpdHksIGJ1dCBmaWx0ZXJzIGNhcHMuICBXaWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBmaWx0ZXJlZAoJICBjYXBzIGluIHBhZCBsaW5raW5nLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfY3JlYXRlX2FsbF9wYWRzKTogTmV3IGZ1bmN0aW9uCgkgIHRvIGNyZWF0ZSBhbGwgdGhlIEFMV0FZUyBwYWRzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgd2l0aCBhbgoJICBlbGVtZW50IGNsYXNzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IHNob3VsZCBldmVudHVhbGx5IGJlCgkgIG1lcmdlZCBpbiB3aXRoIEdzdEVsZW1lbnQgaW5pdGlhbGl6YXRpb24uCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvUkVBRE1FOiBwYXJ0IG9mIHRyaWdnZXIgdGVzdCBjb2RlIHRoYXQgc2hvdWxkCgkgIGhhdmUgYmVlbiBjaGVja2VkIGluIGEgbG9uZyB0aW1lIGFnby4KCjIwMDUtMDQtMjMgMjM6MjU6MDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBSZW1vdmUgYXMtbGlidG9vbCBzdHVmZi4gIEl0J3MgbGlrZWx5IG5vdCBhbmQgaGFyZCB0byBjYXJyeSBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogUmVtb3ZlIGFzLWxpYnRvb2wgc3R1ZmYuICBJdCdzIGxpa2VseSBub3QKCSAgbmVlZGVkIHdpdGggbmV3IHZlcnNpb25zIG9mIGxpYnRvb2wgKG5vYm9keSB3aWxsIGNvbmZpcm0gdGhpcyksCgkgIGFuZCBoYXJkIHRvIGNhcnJ5IGFyb3VuZC4KCSAgKiBnc3QvYXV0b3BsdWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvTWFrZWZpbGUuYW06CgoyMDA1LTA0LTIxIDE3OjEwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIE1ha2VmaWxlLmFtIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBNYWtlZmlsZS5hbSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMjEgMDk6Mzc6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgU29tZSBtb3JlIGRvY3MuCgoyMDA1LTA0LTIxIDA5OjMzOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVXNlIHBhcmVudCByZWZjb3VudCBpbiBHc3RNZXNzYWdlIHRvIGVuc3VyZSBHc3RTdHJ1Y3R1cmUgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfY29weSksIChfZ3N0X21lc3NhZ2VfZnJlZSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfcGFyZW50X3JlZmNvdW50KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfY29weV9jb25kaXRpb25hbCk6CgkgIFVzZSBwYXJlbnQgcmVmY291bnQgaW4gR3N0TWVzc2FnZSB0byBlbnN1cmUgR3N0U3RydWN0dXJlCgkgIGNvbnNpc3RlbmN5LgoJICBDbGVhbmVkIHVwIGhlYWRlcnMgYSBiaXQuCgoyMDA1LTA0LTIwIDA5OjEwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBnc3RfY2Fwc19yZXBsYWNlKCkgd29yayBsaWtlIG90aGVyIF9yZXBsYWNlKCkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKToKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpLCAoZG9fdHlwZWZpbmQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9zdWJfZnJlZSksCgkgIChnc3RfYnVmZmVyX2RlZmF1bHRfZnJlZSksIChnc3RfYnVmZmVyX2RlZmF1bHRfY29weSksCgkgIChnc3RfYnVmZmVyX3NldF9jYXBzKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVmKSwgKGdzdF9jYXBzX3VucmVmKSwKCSAgKGdzdF9jYXBzX3JlcGxhY2UpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlX2ZpbHRlcmVkKSwgKGdzdF9wYWRfcmVsaW5rX2ZpbHRlcmVkKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgIE1ha2UgZ3N0X2NhcHNfcmVwbGFjZSgpIHdvcmsgbGlrZSBvdGhlciBfcmVwbGFjZSgpIGZ1bmN0aW9ucy4KCSAgVXNlIF9jYXBzX3JlcGxhY2UoKSB3aGVyZSBwb3NzaWJsZS4KCSAgTWFrZSBzdXJlIF9tZXNzYWdlX25ldygpIGluaXRpYWxpc2VzIGl0cyBmaWVsZC4KCSAgQWRkIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKCkKCjIwMDUtMDQtMTggMDg6NTM6MDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IHMvQVJHXy9QUk9QXy8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IHMvQVJHXy9QUk9QXy8uCgoyMDA1LTA0LTE4IDA4OjI0OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSkKCSAgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSk6IEJMT0NLU0laRSBpcyBhIFVMT05HLiBSZW5hbWUgQVJHXy4uLgoJICB0byBQUk9QXy4uLi4KCjIwMDUtMDQtMTYgMjA6Mjc6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTkVXUzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIE5FV1MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5FV1MgYnVpbGQKCjIwMDUtMDQtMTYgMjA6MTY6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlZCBzb21lIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgc29tZSBsaW5lCgoyMDA1LTA0LTE2IDE2OjI4OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UgdG8gcGtnY29uZmlnIHBhdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlIHRvIHBrZ2NvbmZpZyBwYXRoCgoyMDA1LTA0LTE0IDE3OjE3OjMwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL2ZhcS91c2luZy54bWw6IEFkZCBub3RlIG9uIGdzdHJlYW1lci1wcm9wZXJ0aWVzICgjMTU0OTk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBBZGQgbm90ZSBvbiBnc3RyZWFtZXItcHJvcGVydGllcyAoIzE1NDk5NikuCgoyMDA1LTA0LTEzIDE3OjQxOjI5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3JhbmRvbS9iYmIvb3B0aW9uYWwtcHJvcGVydGllczogU29tZSBhbmFseXNpcyBvbiBvcHRpb25hbCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9iYmIvb3B0aW9uYWwtcHJvcGVydGllczoKCSAgU29tZSBhbmFseXNpcyBvbiBvcHRpb25hbCBwcm9wZXJ0aWVzLgoKMjAwNS0wNC0xMiAxNTowMDozMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgVXNlIGxpYnhtbDIgZm9yIHJlZ2lzdHJ5IHBhcnNpbmcsIHVzZSBzdGF0aWNwYWR0ZW1wbGF0ZXMgaW4gZWxlbWVudGZhY3Rvcmllcy4gTWFrZXMgZ3N0X2luaXQoKSArLy0gMTB4IGZhc3Rlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jbGVhbnVwKSwgKGdzdF9lbGVtZW50X3JlZ2lzdGVyKSwKCSAgKF9fZ3N0X2VsZW1lbnRfZmFjdG9yeV9hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9zdGF0aWNfcGFkX3RlbXBsYXRlcyksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9zcmNfY2FwcyksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9zaW5rX2NhcHMpOgoJICAqIGdzdC9yZWdpc3RyaWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChnc3RfeG1sX3JlZ2lzdHJ5X2dldF90eXBlKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfY2xhc3NfaW5pdCksIChnc3RfeG1sX3JlZ2lzdHJ5X2luaXQpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9uZXcpLCAoZ3N0X3htbF9yZWdpc3RyeV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcHJvcGVydHkpLCAoZ2V0X3RpbWUpLCAobWFrZV9kaXIpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcGVybXNfZnVuYyksCgkgIChwbHVnaW5fdGltZXNfb2xkZXJfdGhhbl9yZWN1cnNlKSwgKHBsdWdpbl90aW1lc19vbGRlcl90aGFuKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfb3Blbl9mdW5jKSwgKGdzdF94bWxfcmVnaXN0cnlfbG9hZF9mdW5jKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9mdW5jKSwgKGdzdF94bWxfcmVnaXN0cnlfY2xvc2VfZnVuYyksCgkgIChhZGRfdG9fY2hhcl9hcnJheSksIChyZWFkX3N0cmluZyksIChyZWFkX3VpbnQpLCAocmVhZF9lbnVtKSwKCSAgKGxvYWRfcGFkX3RlbXBsYXRlKSwgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbiksIChsb2FkX3BhdGhzKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfbG9hZCksIChnc3RfeG1sX3JlZ2lzdHJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9jYXBzKSwgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2ZlYXR1cmUpLCAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmUpLCAoZ3N0X3htbF9yZWdpc3RyeV9yZWJ1aWxkX3JlY3Vyc2UpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9yZWJ1aWxkKToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BhZF90ZW1wbGF0ZXNfaW5mbyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFVzZSBsaWJ4bWwyIGZvciByZWdpc3RyeSBwYXJzaW5nLCB1c2Ugc3RhdGljcGFkdGVtcGxhdGVzIGluCgkgIGVsZW1lbnRmYWN0b3JpZXMuIE1ha2VzIGdzdF9pbml0KCkgKy8tIDEweCBmYXN0ZXIuCgoyMDA1LTA0LTEyIDEwOjUyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIEFkZGVkIHR5cGVmaW5kIGhlbHBlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHR5cGVmaW5kIGhlbHBlci4KCSAgU21hbGwgcHJlcm9sbCBmaXggaW4gdGhlIGJhc2Ugc2luay4KCSAgRGlzYWJsZSB0eXBlZmluZCBjb2RlIGluIGJhc2VzcmMuCgkgIENydWRlIHBvcnQgb2YgdHlwZWZpbmRlbGVtZW50LgoJICBGYWtlc3JjIGNsZWFudXBzLgoKMjAwNS0wNC0xMiAwOToxNjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGNoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRhLmM6CgkgIEluY3JlYXNlIHRpbWVvdXQgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbmNyZWFzZSB0aW1lb3V0IHNvbWUgbW9yZQoKMjAwNS0wNC0xMSAxMjowMjoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG9ubHkgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb25seSBkaXJzCgoyMDA1LTA0LTExIDExOjQwOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0wNC0xMSAxMToyNDo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogRml4IHVwIHRoZSB0aW1lb3V0IHNvIHRoYXQgdGhlIHRlc3QgZG9lcyBub3QgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAoZ3N0YnVzX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOiAodGhyZWFkX3JlZiksIChnc3RfZGF0YV9zdWl0ZSk6CgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IHVwIHRoZSB0aW1lb3V0IHNvIHRoYXQgdGhlIHRlc3QgZG9lcyBub3QgZmFpbC4KCjIwMDUtMDQtMTEgMDk6NTM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJICBkaXN0IHRyaWdnZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc3QgdHJpZ2dlcgoKMjAwNS0wNC0xMCAyMTo0MjozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoKMjAwNS0wNC0xMCAyMDoyOTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTA0LTEwIDE4OjE5OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGlnbm9yZSBhbHJlYWR5IGFwcGxpZWQgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBhbHJlYWR5IGFwcGxpZWQgcGF0Y2gKCjIwMDUtMDQtMDggMTE6MzQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgZ3N0cGFyZW50LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdHBhcmVudC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0wOCAxMTozNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBnc3RwYXJlbnQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0cGFyZW50Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTA2IDE3OjMwOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW9yZSB3b3JrIG9uIHRoZSBnZW5lcmljIHNvdXJjZSBiYXNlIGNsYXNzLCBpbXBsZW1lbnQgc2Vla2luZywgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX2dldF9mb3JtYXRzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9ldmVudF9tYXNrKSwgKGdzdF9iYXNlc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2VzcmNfZXZlbnRfaGFuZGxlciksIChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzcmNfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwgKGdzdF9iYXNlc3JjX2dldF9zaXplKSwgKGdzdF9iYXNlc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlc3JjX3N0b3ApLCAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKSwgKGJhc2VzcmNfZmluZF9wZWVrKSwKCSAgKGJhc2VzcmNfZmluZF9zdWdnZXN0KSwgKGdzdF9iYXNlc3JjX3R5cGVfZmluZCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZXNyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVzcmNfY2xhc3NfaW5pdCksIChnc3RfZmlsZXNyY19pbml0KSwKCSAgKGdzdF9maWxlc3JjX2ZpbmFsaXplKSwgKGdzdF9maWxlc3JjX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlc3JjX2ZyZWVfcGFyZW50X21tYXApLCAoZ3N0X2ZpbGVzcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZXNyY19tYXBfc21hbGxfcmVnaW9uKSwgKGdzdF9maWxlc3JjX2NyZWF0ZV9tbWFwKSwKCSAgKGdzdF9maWxlc3JjX2NyZWF0ZV9yZWFkKSwgKGdzdF9maWxlc3JjX2NyZWF0ZSksCgkgIChnc3RfZmlsZXNyY19nZXRfc2l6ZSksIChnc3RfZmlsZXNyY19zdGFydCksIChnc3RfZmlsZXNyY19zdG9wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTW9yZSB3b3JrIG9uIHRoZSBnZW5lcmljIHNvdXJjZSBiYXNlIGNsYXNzLCBpbXBsZW1lbnQgc2Vla2luZywKCSAgcXVlcnkuCgkgIE1ha2UgZmlsZXNyYyBleHRlbmQgdGhlIGJhc2Ugc291cmNlIGNsYXNzLgoJICBBZGRlZCBnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uIHRvIEdzdFBhZC4KCjIwMDUtMDQtMDYgMTE6MDg6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBrZ2NvbmZpZy86IE5ldyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjogTmV3IGZpbGVzLgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWMgKEFDX09VVFBVVCk6IEFkZCBnc3RyZWFtZXItYmFzZSBwa2djb25maWcgZmlsZXMuCgoyMDA1LTA0LTA1IDE3OjQxOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGFkZCBhIG5vdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIG5vdGUKCjIwMDUtMDQtMDUgMDg6NDQ6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWRlIGJhc2Ugc291cmNlIGNsYXNzLCBtYWtlIGZha2VzcmMgZXh0ZW5kIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19wYWRfc2V0Y2FwcyksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc3JjX2Jhc2VfaW5pdCksIChnc3RfYmFzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X2Zvcm1hdHMpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9ldmVudF9tYXNrKSwgKGdzdF9iYXNlc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlc3JjX2xvb3ApLCAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZXNyY19jbGFzc19pbml0KSwgKGdzdF9mYWtlc3JjX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfZXZlbnRfaGFuZGxlciksIChnc3RfZmFrZXNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2VzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVzcmNfZ2V0cmFuZ2UpLAoJICAoZ3N0X2ZpbGVzcmNfb3Blbl9maWxlKSwgKGdzdF9maWxlc3JjX2xvb3ApLAoJICAoZ3N0X2ZpbGVzcmNfYWN0aXZhdGUpLCAoZmlsZXNyY19maW5kX3BlZWspLAoJICAoZ3N0X2ZpbGVzcmNfdHlwZV9maW5kKToKCSAgTWFkZSBiYXNlIHNvdXJjZSBjbGFzcywgbWFrZSBmYWtlc3JjIGV4dGVuZCBpdC4KCSAgQWRkIGNvbW1lbnRzIHRvIGJhc2VzaW5rIGNsYXNzLgoJICBTb21lIGZpbGVzcmMgY2xlYW51cC4KCjIwMDUtMDQtMDEgMTA6MTQ6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgYWRkIHN1cHBvcnQgZm9yIGdvb2dsZSBtYWxsb2MgaWYgYXZhaWxhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3VwcG9ydCBmb3IgZ29vZ2xlIG1hbGxvYyBpZiBhdmFpbGFibGUKCjIwMDUtMDQtMDEgMDI6NDE6MzUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBTd2l0Y2ggdG8gdXNpbmcgR19NT0RVTEVfQklORF9MT0NBTCwgd2hpY2ggbWVhbnMgcGx1Z2lucyBhcmUgbm93IGV4cGVjdGVkIHRvIGxpbmsgYWdhaW5zdCBsaWJnc3RyZWFtZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fY2hlY2tfZmlsZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFN3aXRjaCB0byB1c2luZyBHX01PRFVMRV9CSU5EX0xPQ0FMLCB3aGljaCBtZWFucyBwbHVnaW5zIGFyZSBub3cKCSAgZXhwZWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lci4KCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lcgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogc2FtZQoKMjAwNS0wMy0zMSAxNTowMDoxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvaW5zdGFudGlhdGUvOiBBZGQgdGVzdCB0byB0ZXN0IHNwZWVkIG9mIGNhcHMgY29weSBhbmQgZnJlZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMzEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaW5zdGFudGlhdGUvY2Fwcy5jOiBBZGQgdGVzdCB0byB0ZXN0IHNwZWVkIG9mIGNhcHMgY29weQoJICBhbmQgZnJlZS4KCSAgKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmMgKG1haW4pOiBVc2UgYWxsb2Mgb25seSBvbiB0aGUKCSAgR01lbUNodW5rIHRvIGJlIGZhaXIuCgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDogUmVtb3ZlIHdhcm5pbmcgYWJvdXQgdXNpbmcgdGhlIGZhbGxiYWNrCgkgIHRyYXNoIHN0YWNrIGltcGxlbWVudGF0aW9uLCBpdCdzIHN0aWxsIGZhc3RlciB0aGFuIG1hbGxvYy4KCjIwMDUtMDMtMzEgMTA6MTA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBzdGFydC9zdG9wIG1ldGhvZHMgdG8gdHJhbnNmb3JtIGJhc2UgY2xhc3Mgc28gc3ViY2xhc3NlcyBkb24ndCBuZWVkIHRvIGRlYWwgd2l0aCBzdGF0ZSBjaGFuZ2VzIGV2ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9ldmVudCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKSwgKGdzdF9pZGVudGl0eV9zdGFydCksCgkgIChnc3RfaWRlbnRpdHlfc3RvcCk6CgkgIEFkZGVkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byB0cmFuc2Zvcm0gYmFzZSBjbGFzcyBzbyBzdWJjbGFzc2VzCgkgIGRvbid0IG5lZWQgdG8gZGVhbCB3aXRoIHN0YXRlIGNoYW5nZXMgZXZlbi4KCjIwMDUtMDMtMzEgMTA6MTA6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgYWRkIHBlci10aHJlYWQgc3RhdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBwZXItdGhyZWFkIHN0YXRzCgoyMDA1LTAzLTMxIDA5OjQ2OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgcmF0ZSB0byB0aGUgZGlzY29udCBldmVudCB0byBwcmVwYXJlIGZvciB2YXJpYWJsZSBzcGVlZCBhbmQgcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2Rpc2NvbnRpbnVvdXNfdmFsaXN0KSwKCSAgKGdzdF9ldmVudF9uZXdfZGlzY29udGludW91cyksIChnc3RfZXZlbnRfZGlzY29udF9nZXRfdmFsdWUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBBZGRlZCByYXRlIHRvIHRoZSBkaXNjb250IGV2ZW50IHRvIHByZXBhcmUgZm9yIHZhcmlhYmxlIHNwZWVkCgkgIGFuZCByZXZlcnNlIHBsYXliYWNrLgoKMjAwNS0wMy0zMCAxNDowOTowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBDb21taXQgbWVtIGNodW5rIHRlc3Q7IHByb2JhYmx5IHdpbGwgYmUgcmVtb3ZlZCBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvbW1pdCBtZW0gY2h1bmsgdGVzdDsgcHJvYmFibHkgd2lsbCBiZSByZW1vdmVkIGxhdGVyLgoKMjAwNS0wMy0zMCAwMzo1NzozOSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBBIGxpdHRsZSBleGFtcGxlIHByb2dyYW0gdG8gc2hvdyBob3cgdHJpZ2dlci1iYXNlZCBlbGVtZW50cyBjYW4gd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL3RyaWdnZXIuYzogQSBsaXR0bGUgZXhhbXBsZSBwcm9ncmFtIHRvIHNob3cKCSAgaG93IHRyaWdnZXItYmFzZWQgZWxlbWVudHMgY2FuIHdvcmsuCgoyMDA1LTAzLTI5IDE2OjE4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU2ltcGxpZnkgcGFkIGFjdGl2YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLCAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdHlwZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYmFzZV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZmluYWxpemUpLAoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLCAoZ3N0X2lkZW50aXR5X2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2V2ZW50KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KSwgKGdzdF9pZGVudGl0eV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNpbXBsaWZ5IHBhZCBhY3RpdmF0aW9uLgoJICBBZGRlZCBmdW5jdGlvbiB0byBjaGVjayBpZiBwdWxsX3JhbmdlIGNhbiBiZSBwZXJmb3JtZWQuCgkgIEVycm9yIG91dCB3aGVuIHB1bGxpbmcgaW5hY3RpdmUgb3IgZmx1c2hpbmcgcGFkcy4KCSAgUmVtb3ZlZCBjb25zdCBmcm9tIHJlZmNvdW50ZWQgdHlwZXMgYXMgaXQgZG9lcyBub3QgbWFrZSBzZW5zZS4KCSAgU2ltcGxpZnkgcGFkIHRlbXBsYXRlcyBpbiBiYXNlc2luawoJICBBZGRlZCBiYXNlIGNsYXNzIGZvciBzaW1wbGUgMS10by0xIHRyYW5zZm9ybXMuCgkgIE1ha2UgaWRlbnRpdHkgc3ViY2xhc3MgdGhlIGJhc2UgdHJhbnNmb3JtLgoKMjAwNS0wMy0yOSAxNDozNDo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy86IEFkZCB0aGVzZSBmaWxlcyB0byBDVlMuIE5vdyBJIHJlYWxseSBkb24ndCB1bmRlcnN0YW5kIHdoYXQncyBnb2luZyBvbiwgYnV0IGxpa2Ugd2hhdGV2ZXIuIEkgd2FudCBncmVlbiBidWlsZGJvdCEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLW92ZXJyaWRlcy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLW92ZXJyaWRlcy50eHQ6IEFkZCB0aGVzZSBmaWxlcyB0byBDVlMuIE5vdyBJCgkgIHJlYWxseSBkb24ndCB1bmRlcnN0YW5kIHdoYXQncyBnb2luZyBvbiwgYnV0IGxpa2Ugd2hhdGV2ZXIuIEkgd2FudAoJICBncmVlbiBidWlsZGJvdCEKCjIwMDUtMDMtMjkgMTQ6MTI6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvOiBEaXN0IHRoZSBvdmVycmlkZXMgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogRGlzdCB0aGUgb3ZlcnJpZGVzIGZpbGVzLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtIChjbGVhbi1sb2NhbCk6IFJlbW92ZSAubGlicyBkaXJlY3Rvcmllcy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgYWxsIHRoZSBhdHRpYwoJICBlbGVtZW50cyB0byBFWFRSQV9ESVNULCBzbyBwby8gZmlsZXMgYXJlIGhhcHB5LgoKMjAwNS0wMy0yOSAxMzoxMDoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcG8vUE9URklMRVM6IFJlbW92ZSBnc3RzcGlkZXIuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcG8vUE9URklMRVM6IFJlbW92ZSBnc3RzcGlkZXIuYy4KCSAgKiBjb25maWd1cmUuYWMgKEFDX09VVFBVVCk6IEFkZCBtaXNzaW5nIHRlc3RzdWl0ZSBtYWtlZmlsZXMuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBSZW1vdmUgdGhlIHNlY3Rpb24gb24KCSAgYnl0ZXN0cmVhbS4KCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmMgKG1haW4pOiBTZXQgdGhlIGxlbmd0aCBvZiB0aGUgcHJlcm9sbCBxdWV1ZQoJICBvbiB0aGUgc2lua3MgdG8gcHJldmVudCBhIGxvY2t1cC4KCjIwMDUtMDMtMjkgMTE6Mzk6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC86IFJlbW92ZSB0ZXN0LCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4gY2hlY2svZ3N0LWxpYnMvZ2RwLmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLXRlc3QuYzogUmVtb3ZlIHRlc3QsIGl0J3MKCSAgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBjaGVjay9nc3QtbGlicy9nZHAuYy4KCjIwMDUtMDMtMjkgMTA6NTU6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBvLywgZG9jcy9nc3QvOiBDb21taXQgYXV0b21hdGljIGNoYW5nZXMgdG8gZG9jcyBhbmQgcG8gZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBvLywgZG9jcy9nc3QvOiBDb21taXQgYXV0b21hdGljIGNoYW5nZXMgdG8gZG9jcyBhbmQgcG8gZmlsZXMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtIChsaWJnc3RlbGVtZW50c19sYV9MREZMQUdTKTogTGluayB0bwoJICB0aGUgdmVyc2lvbmVkIGxpYmdzdGJhc2UuCgkgICogY2hlY2svTWFrZWZpbGUuYW06IERlcGVuZCBvbiBhbiB1bnZlcnNpb25lZCBnc3QtcmVnaXN0ZXIsIHNlZW1zCgkgIHRvIG1ha2UgYXV0b2NvbmYgaGFwcGllci4KCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogTWFrZSBsaWJnc3RiYXNlIGEgdmVyc2lvbmVkIGxpYi4KCjIwMDUtMDMtMjggMTQ6NTQ6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL1JFQURNRToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBBZGRlZCBzdGF0ZSBjaGFuZ2UgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHN0YXRlIGNoYW5nZSBjb2RlLgoJICBBZGRlZC91cGRhdGVkIGRvY3MuCgkgIEFkZGVkIHNpbmsgYmFzZSBjbGFzcywgbWFrZSBmYWtlc2luayBleHRlbmQgdGhlIGJhc2UgY2xhc3MuCgkgIFNtYWxsIGNsZWFudXBzIGluIEdzdFBpcGVsaW5lLgoKMjAwNS0wMy0yNiAyMjowNzo1MyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBnc3RjcHUuW2NoXS4gIFRoZSBnc3RfY3B1IGZ1bmN0aW9uYWxpdHkgaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gYSBkaWZmZXJlbnQgbGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgZ3N0Y3B1LltjaF0uICBUaGUgZ3N0X2NwdSBmdW5jdGlvbmFsaXR5CgkgIGlzIGJyb2tlbiBhbmQgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIGEgZGlmZmVyZW50IGxpYnJhcnkuCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KTogZG9uJ3QgY2FsbCBfZ3N0X2NwdV9pbml0aWFsaXplKCkKCSAgKiBnc3QvZ3N0Lmg6IHJlbW92ZSBnc3RjcHUuaAoJICAqIGdzdC9nc3RjcHUuYzogcmVtb3ZlCgkgICogZ3N0L2dzdGNwdS5oOiByZW1vdmUKCSAgKiBnc3QvTWFrZWZpbGUuYW0uZnV0dXJlOiBSZW1vdmUgdGhpcyBmaWxlLiAgSXQncyBhbmNpZW50LgoKMjAwNS0wMy0yNSAwOTo1Nzo0MiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgZGVmYXVsdCBldmVudC9zZXRfbWFuYWdlciBoYW5kbGVycy4gVGhlIHNldF9tYW5hZ2VyIGhhbmRsZXIgdGFrZXMgY2FyZSB0aGF0IHRoZSBtYW5hZ2VyIGlzIGRpc3RyaWJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3NldF9tYW5hZ2VyKSwKCSAgKGdzdF9iaW5fc2VuZF9ldmVudCk6CgkgIEFkZCBkZWZhdWx0IGV2ZW50L3NldF9tYW5hZ2VyIGhhbmRsZXJzLiBUaGUgc2V0X21hbmFnZXIgaGFuZGxlcgoJICB0YWtlcyBjYXJlIHRoYXQgdGhlIG1hbmFnZXIgaXMgZGlzdHJpYnV0ZWQgb3ZlciBraWRzIHRoYXQgd2VyZQoJICBhbHJlYWR5IGluIHRoZSBiaW4gYmVmb3JlIHRoZSBtYW5hZ2VyIHdhcyBzZXQuIFRoZSBldmVudCBoYW5kbGVyCgkgIGlzIGEgdXRpbGl0eSB2aXJ0dWFsIGZ1bmN0aW9uIHRoYXQgc2VuZHMgdGhlIGV2ZW50IG92ZXIgYWxsIHNpbmtzLAoJICBzbyB0aGF0IGdzdF9lbGVtZW50X3NlbmRfZXZlbnQgKGJpbiwgZXZlbnQpOyBoYXMgdGhlIGV4cGVjdGVkCgkgIGJlaGF2aW91ci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICBSZS1pbnN0YWxsIGRlZmF1bHQgZXZlbnQgaGFuZGxpbmcgZm9yIGRpc2NvbnRpbnVpdGllcywgc28gdGhhdAoJICBzZWVraW5nIHdvcmtzIHdpdGhvdXQgcmVxdWlyaW5nIGhhY2tzIGluIGFwcGxpY2F0aW9ucyBvciBleHRyYQoJICBjb2RlIGluIHNpbmtzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBIYWxmIGhhY2ssIGhhbGYgdXRpbGl0eTogc2V0IGEgcGlwZWxpbmUgdG8gUEFVU0VEIGZvciBzZWVrIGV2ZW50cywKCSAgc2luY2UgdGhhdCBpcyB0aGUgb25seSB3YXkgd2UgY2FuIGd1YXJhbnRlZSBhL3Ygc3luYy4gTWVhbnMgdGhhdAoJICB5b3UgY2FuIGRvIGdzdF9lbGVtZW50X3NlZWsgKHBpcGVsaW5lLCBtZXRob2QsIHBvcyk7IG9uIGEgcGlwZWxpbmUKCSAgYW5kIGl0ICJqdXN0IHdvcmtzIi4KCjIwMDUtMDMtMjUgMDk6MzU6MDEgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBMb2NrL3VubG9jayBtaXNtYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKToKCSAgTG9jay91bmxvY2sgbWlzbWF0Y2guCgoyMDA1LTAzLTI1IDAwOjM1OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogYWRkIGdzdC1wbHVnaW5zLWJhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZQoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb24ndCBlcnJvciBvdXQgdW50aWwgZG9jcyBhcmUgZml4ZWQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIHJlbW92ZSB0aHJlYWQKCjIwMDUtMDMtMjIgMTQ6MjM6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBY3RpdmF0ZWQgbW9yZSB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2RhdGFfc3VpdGUpLCAobWFpbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfY29weV9jb25kaXRpb25hbCk6CgkgIEFjdGl2YXRlZCBtb3JlIHRlc3RzLgoJICBBZGRlZCBtZXNzYWdlIHRlc3QuCgkgIEFkZGVkIEdfVFlQRV9QT0lOVEVSIHRvIEdzdFN0cnVjdHVyZS4KCjIwMDUtMDMtMjIgMTE6MzI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRG9jcyB1cGRhdGVzCgoyMDA1LTAzLTIxIDE4OjE3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggY29weS1hbmQtcGFzdGUgZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIEZpeCBjb3B5LWFuZC1wYXN0ZSBlcnJvci4KCjIwMDUtMDMtMjEgMTc6MzQ6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkYXRhLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHByb2JlLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3QvZ3N0dGhyZWFkLmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSogZ3N0L3NjaGVkdWxlcnMvY290aHJlYWRzX2NvbXBhdC5oOgoJKiBnc3Qvc2NoZWR1bGVycy9lbnRyeXNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyY290aHJlYWRzLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2d0aHJlYWQtY290aHJlYWRzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vZmlsZXBhZC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvbWFzc19lbGVtZW50cy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgTmV4dCBiaWcgbWVyZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBOZXh0IGJpZyBtZXJnZS4KCSAgQWRkZWQgR3N0QnVzIGZvciBtYWlubG9vcCBpbnRlZ3JhdGlvbi4KCSAgQWRkZWQgR3N0TWVzc2FnZSBmb3Igc2VuZGluZyBub3RpZmljYXRpb25zIG9uIHRoZSBidXMuCgkgIEFkZGVkIEdzdFRhc2sgYXMgYW4gYWJzdHJhY3Rpb24gZm9yIHBpcGVsaW5lIGVudHJ5IHBvaW50cy4KCSAgUmVtb3ZlZCBHc3RUaHJlYWQuCgkgIFJlbW92ZWQgU2NoZWR1bGVycy4KCSAgU2ltcGxpZmllZCBHc3RRdWV1ZSBmb3IgbXVsdGl0aHJlYWRlZCBjb3JlLgoJICBNYWRlIF9saW5rIHRocmVhZHNhZmUsIHJlbW92ZWQgb2xkIGNhcHNuZWdvLgoJICBBZGRlZCBTVFJFQU1fTE9DSyBhbmQgUFJFUk9MTF9MT0NLIGluIEdzdFBhZC4KCSAgQWRkZWQgcGFkIGJsb2NraW5nIGZ1bmN0aW9ucy4KCSAgUmV3b3JrZWQgc2NoZWR1bGluZyBmdW5jdGlvbnMgaW4gR3N0UGFkIHRvIHByZXBhcmUgZm9yCgkgIHNjaGVkdWxpbmcgdXBkYXRlcyBzb29uLgoJICBNb3ZlZCBldmVudHMgb3V0IG9mIGRhdGEgc3RyZWFtLgoJICBTaW1wbGlmaWVkIEdzdEV2ZW50IHR5cGVzLgoJICBBZGRlZCByZXR1cm4gdmFsdWVzIHRvIHB1c2gvcHVsbC4KCSAgUmVtb3ZlZCBjbG9ja2luZyBmcm9tIEdzdEVsZW1lbnQuCgkgIEFkZGVkIHByb3RvdHlwZXMgZm9yIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBmb3IgbmV4dCBtZXJnZS4KCSAgUmVtb3ZlZCBpdGVyYXRlIGZyb20gYmlucyBhbmQgc3RhdGUgY2hhbmdlIG1hbmFnZW1lbnQuCgkgIEZpeGVkIHNvbWUgZWxlbWVudHMsIGRpc2FibGVkIG90aGVycyBmb3Igbm93LgoJICBGaXhlZCAtaW5zcGVjdCBhbmQgLWxhdW5jaC4KCSAgQWRkZWQgY2hlY2sgZm9yIEdzdEJ1cy4KCjIwMDUtMDMtMTAgMTI6NTE6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6IChnc3RfY2xvY2tfZGVidWcpLCAoZWxlbWVudF93YWl0KSwKCSAgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9kbG9wZW4vbG9hZGdzdC5jOiAoZG9fdGVzdCk6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOiAoYWRkX3JlbW92ZV90ZXN0MSksCgkgIChhZGRfcmVtb3ZlX3Rlc3QyKSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50LmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudF9wYWQuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9wYWQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHNpZ2ludF9oYW5kbGVyX3NpZ2hhbmRsZXIpOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIERvYyB1cGRhdGVzLgoJICBBZGRlZCBkb2MgYWJvdXQgY2xvY2suCgkgIHJlbW92ZWQgZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2VfdXAoKSwgbWFya2VkIG1ldGhvZHMKCSAgZm9yIHJlbW92YWwuCgkgIEZpeCBtb3JlIHRlc3RzdWl0ZXMuCgoyMDA1LTAzLTA5IDE3OjI4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IF9wYWRfZ2V0X2RpcmVjdGlvbiB3cnQgZ2hvc3RwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9kaXJlY3Rpb24pLAoJICAoX2dzdF9wYWRfZGVmYXVsdF9maXhhdGVfZm9yZWFjaCksIChnc3RfcGFkX2NvbGxlY3R2KSwKCSAgKGdzdF9wYWRfY29sbGVjdF92YWxpc3QpOgoJICAqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvYXVkaW9zY2FsZS5jOiAodGVzdF9jYXBzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6ICh0ZXN0MSksICh0ZXN0MiksICh0ZXN0Myk6CgkgICogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2VudW1jYXBzLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9maWx0ZXJjYXBzLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3JlbmVnb3RpYXRlLmM6IChteV9maXhhdGUpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvc2V0cy5jOiAoY2hlY2tfY2Fwcyk6CgkgICogdGVzdHN1aXRlL2NhcHMvc2ltcGxpZnkuYzogKGNoZWNrX2NhcHMpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzogKGNoZWNrX2NhcHMpOgoJICBGaXggX3BhZF9nZXRfZGlyZWN0aW9uIHdydCBnaG9zdHBhZHMuCgkgIEZpeCBjYXBzIHRlc3RzdWl0ZS4KCjIwMDUtMDMtMDkgMTY6MTA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9lbnRyeXNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSAgQWRkZWQgR3N0QmluIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBHc3RCaW4gdGVzdC4KCSAgQWRkZWQgR3N0U3lzdGVtQ2xvY2sgdGVzdC4KCSAgSW1wbGVtZW50ZWQgY2xvY2sgZGlzdHJpYnV0aW9uIGNvZGUgaW4gR3N0QmluLgoJICBJbXBsZW1lbnRlZCBpdGVyYXRlIHNpbmtzIG1ldGhvZCBmb3IgZnV0dXJlIHVzZS4KCSAgUmVhcnJhbmdlZCBnc3RlbGVtZW50LmgKCSAgRml4IEdzdEl0ZXJhdG9yIGNvbXBhcmlzb24gYnVnLgoJICBNb3ZlZCBzb21lIGNvZGUgdG8gR3N0UGlwZWxpbmUsIG1vc3RseSBjbG9ja2luZyByZWxhdGVkLgoKMjAwNS0wMy0wOSAxMTowODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIsIHdlJ3JlIG5vdyAwLjkuMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2FkZCksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWVfcmVjdXJzZV91cCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfcmVmKSwgKGdzdF9jbG9ja19pZF91bnJlZiksCgkgIChnc3RfY2xvY2tfaWRfY29tcGFyZV9mdW5jKSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19pbml0KSwKCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLCAoZ3N0X2Nsb2NrX2dldF90aW1lKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZV9mb3JlYWNoKSwKCSAgKGdzdF9wYWRfY29sbGVjdHYpLCAoZ3N0X3BhZF9jb2xsZWN0X3ZhbGlzdCksIChnc3RfcGFkX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIsIHdlJ3JlIG5vdyAwLjkuMAoJICBBZGQgZnV0dXJlIGRlYnVnZ2luZyBjYXRlZ29yeS4KCSAgRml4IE5VTEwgX3VucmVmKCkgaW4gX2dldF9ieV9uYW1lX3JlY3Vyc2VfdXAKCSAgUmVhcnJhbmdlIGdzdHBhZC5oLgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwNS0wMy0wOCAxNzo0MjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0b3B0aW1hbHNjaGVkdWxlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBSZW1vdmUgdGhyZWFkc2FmZSBwcm9wZXJ0aWVzLiBGaXggZWxlbWVudHMgYmVjYXVzZSBHT2JqZWN0IGNvbXBsYWlucyB3aGVuIGluc3RhbGxpbmcgYSBwcm9wZXJ0eSBiZWZvcmUgZGVjbGFyaW5nIGEgc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSB0aHJlYWRzYWZlIHByb3BlcnRpZXMuIEZpeCBlbGVtZW50cyBiZWNhdXNlIEdPYmplY3QKCSAgY29tcGxhaW5zIHdoZW4gaW5zdGFsbGluZyBhIHByb3BlcnR5IGJlZm9yZSBkZWNsYXJpbmcgYQoJICBzZXQvZ2V0X3Byb3BlcnR5IGhhbmRsZXIuCgkgIFJlYXJyYW5nZSBnc3RlbGVtZW50LmggZmlsZSwgdXNlIFNUQVRFIG1hY3JvcyBmb3Igc3RhdGUgbG9ja3MuCgkgIEZyZWUgbXV0ZXhlcyBpbiB0aGUgZmluYWxpemUgbWV0aG9kIGluc3RlYWQgb2YgZGlzcG9zZS4KCjIwMDUtMDMtMDggMTU6NTc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBwYXJlbnRhZ2UgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogZ3N0L2dzdHRocmVhZC5jOiAoZ3N0X3RocmVhZF9yZWxlYXNlX2NoaWxkcmVuX2xvY2tzKToKCSAgQWRkZWQgcGFyZW50YWdlIGNoZWNrLgoJICBGaXggYnVpbGQgb2cgR3N0VGhyZWFkIGFnYWluLgoKMjAwNS0wMy0wOCAxNDozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgdXBkYXRlcywgY2xlYW4gdXAgc29tZSBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpLCAoZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2UpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZSksIChnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X2xvb3BfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpLCAoZ3N0X29iamVjdF9zaW5rKSwgKGdzdF9vYmplY3RfZGlzcG9zZSksCgkgIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCksIChnc3Rfb2JqZWN0X3NldF9uYW1lKSwKCSAgKGdzdF9vYmplY3Rfc2V0X3BhcmVudCksIChnc3Rfb2JqZWN0X3VucGFyZW50KSwKCSAgKGdzdF9vYmplY3RfY2hlY2tfdW5pcXVlbmVzcyk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2NzIHVwZGF0ZXMsIGNsZWFuIHVwIHNvbWUgaGVhZGVycy4KCSAgRnJlZSBpdGVyYXRvcnMgaW4gR3N0QmluLgoJICBHc3RPYmplY3QgaXMgbm93IGxvb2tpbmcgZ29vZC4KCjIwMDUtMDMtMDcgMTg6MzM6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IEFkZGVkIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svLmN2c2lnbm9yZToKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QtbGlicy8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKHBvdW5kX2J1c193aXRoX21lc3NhZ2VzKSwgKHB1bGxfbWVzc2FnZXMpLAoJICAoU1RBUlRfVEVTVCksIChnc3RidXNfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGRhdGEuYzogKFNUQVJUX1RFU1QpLCAodGhyZWFkX3JlZiksICh0aHJlYWRfdW5yZWYpLAoJICAoZ3N0X2RhdGFfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChtYWtlX2xpc3Rfb2ZfaW50cyksIChTVEFSVF9URVNUKSwKCSAgKGFkZF9mb2xkX2Z1bmMpLCAoZ3N0aXRlcmF0b3Jfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X2Zha2Vfb2JqZWN0X2dldF90eXBlKSwgKFNUQVJUX1RFU1QpLAoJICAodGhyZWFkX25hbWVfb2JqZWN0KSwgKHRocmVhZF9uYW1lX29iamVjdF9kZWZhdWx0KSwKCSAgKGdzdF9vYmplY3RfbmFtZV9jb21wYXJlKSwgKGdzdF9vYmplY3Rfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCksICh0aHJlYWRfbGlua191bmxpbmspLAoJICAoZ3N0X3BhZF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKSwgKGdzdF9jaGVja19pbml0KToKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChydW5fcGlwZWxpbmUpLCAoU1RBUlRfVEVTVCksIChzaW1wbGVfbGF1bmNoX2xpbmVzX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBjaGVja3MuCgoyMDA1LTAzLTA3IDE4OjI5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEFkZGVkIG1pc3NpbmcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2luaXQpLCAoZ3N0X2l0ZXJhdG9yX25ldyksCgkgIChnc3RfbGlzdF9pdGVyYXRvcl9uZXh0KSwgKGdzdF9saXN0X2l0ZXJhdG9yX3Jlc3luYyksCgkgIChnc3RfbGlzdF9pdGVyYXRvcl9mcmVlKSwgKGdzdF9pdGVyYXRvcl9uZXdfbGlzdCksCgkgIChnc3RfaXRlcmF0b3JfcG9wKSwgKGdzdF9pdGVyYXRvcl9uZXh0KSwgKGdzdF9pdGVyYXRvcl9yZXN5bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZyZWUpLCAoZ3N0X2l0ZXJhdG9yX3B1c2gpLCAoZmlsdGVyX25leHQpLAoJICAoZmlsdGVyX3Jlc3luYyksIChmaWx0ZXJfdW5pbml0KSwgKGZpbHRlcl9mcmVlKSwKCSAgKGdzdF9pdGVyYXRvcl9maWx0ZXIpLCAoZ3N0X2l0ZXJhdG9yX2ZvbGQpLCAoZm9yZWFjaF9mb2xkX2Z1bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZvcmVhY2gpLCAoZmluZF9jdXN0b21fZm9sZF9mdW5jKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZGVkIG1pc3NpbmcgZmlsZXMuCgoyMDA1LTAzLTA3IDE4OjI3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJKiBleGFtcGxlcy9taXhlci9taXhlci5jOgoJKiBleGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmM6CgkqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuYzoKCSogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RjcHUuYzoKCSogZ3N0L2dzdGRhdGEuYzoKCSogZ3N0L2dzdGRhdGEuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lbWNodW5rLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwcm9iZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWcuYzoKCSogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcG8vbmIucG86CgkqIHBvL3J1LnBvOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6CgkqIHRvb2xzL2dzdC1jb21wcHJlcC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1tZDVzdW0uYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgRmlyc3QgVEhSRUFERUQgYmFja3BvcnQgYXR0ZW1wdCwgZm9jdXNpbmcgb24gYWRkaW5nIGxvY2tzIGFuZCBtYWtpbmcgc3VyZSB0aGUgQVBJIGlzIHRocmVhZHNhZmUuIE5lZWRzIG1vcmUgd29yay4gTW9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXJzdCBUSFJFQURFRCBiYWNrcG9ydCBhdHRlbXB0LCBmb2N1c2luZyBvbiBhZGRpbmcgbG9ja3MgYW5kCgkgIG1ha2luZyBzdXJlIHRoZSBBUEkgaXMgdGhyZWFkc2FmZS4gTmVlZHMgbW9yZSB3b3JrLiBNb3JlIGRvY3MKCSAgZm9sbG93IHRoaXMgd2Vlay4KCjIwMDUtMDItMjUgMDA6MTA6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYW5vdGhlciBuby1kZWJ1ZyBidWlsZCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgbm8tZGVidWcgYnVpbGQgZml4CgoyMDA1LTAyLTI0IDIzOjQxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuYzoKCSAgZGlzYWJsZSBkZWJ1ZyBidWlsZCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgZGVidWcgYnVpbGQgZml4CgoyMDA1LTAyLTI0IDE3OjEyOjE5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IE5ldyBmaWxlcywgZ29vZCBmb3IgcnVubmluZyBjb21wbGV4aXR5IGJlbmNobWFya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2JlbmNoLWNvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuZ251cGxvdDogTmV3IGZpbGVzLCBnb29kIGZvciBydW5uaW5nIGNvbXBsZXhpdHkKCSAgYmVuY2htYXJrcy4KCjIwMDUtMDItMjQgMTU6MzY6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogTmV3IHRlc3QsIHNldHMgdXAgTiBlbGVtZW50cywgYXQgZWFjaCBsZXZlbCB0ZWVpbmcgaW50byBNIHN0cmVhbXMgcGVyIGVsZW1lbnQuIEVlZWVudGVyZXN0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmM6IE5ldyB0ZXN0LCBzZXRzIHVwIE4gZWxlbWVudHMsIGF0IGVhY2ggbGV2ZWwKCSAgdGVlaW5nIGludG8gTSBzdHJlYW1zIHBlciBlbGVtZW50LiBFZWVlbnRlcmVzdGluZy4KCjIwMDUtMDItMjQgMTI6MzE6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL21hc3NfZWxlbWVudHMuZ251cGxvdDogZ251cGxvdCBmaWxlIGZvciB0aGUgbWFzc19lbGVtZW50cyBiZW5jaG1hcmsuIFJ1biBhcyBnbnVwbG90IG1hc3NfZWxlbWVudHMuZ251cGxvdCA+IGZvby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmdudXBsb3Q6IGdudXBsb3QgZmlsZSBmb3IgdGhlIG1hc3NfZWxlbWVudHMKCSAgYmVuY2htYXJrLiBSdW4gYXMgZ251cGxvdCBtYXNzX2VsZW1lbnRzLmdudXBsb3QgPiBmb28ucHMsIGFmdGVyCgkgIHJ1bm5pbmcgYmVuY2gtbWFzc19lbGVtZW50cy5zY20uCgkgICogdGVzdHMvYmVuY2gtbWFzc19lbGVtZW50cy5zY206IE5ldyBzY3JpcHQsIHJ1bnMgbWFzc19lbGVtZW50cwoJICBmb3IgdmFyaW91cyBudW1iZXJzIG9mIGlkZW50aXRpZXMsIG91dHB1dHRpbmcgdGhlIHJlc3VsdHMgdG8gYQoJICBmaWxlLiBSZXF1aXJlcyBndWlsZSAxLjYuIEp1c3QgZm9yIHRlc3RpbmcuCgoyMDA1LTAyLTIzIDE1OjE0OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSAgb25lIG1vcmUgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmUgbW9yZSBmaXgKCjIwMDUtMDItMjMgMTU6MDY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkgIGNvbXBpbGUgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tcGlsZSB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTAyLTIyIDE2OjM0OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBodW50aW5nIHNlYXNvbiBvbiAwLjkgaXMgbm93IE9QRU4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGh1bnRpbmcgc2Vhc29uIG9uIDAuOSBpcyBub3cgT1BFTgoK