Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUJsYW5rZXQgV3JpdGUgUHJpdnMuCgpSaWNoYXJkIEVhcm5zaGF3CQkJCXJlYXJuc2hhQGFybS5jb20KUmljaGFyZCBIZW5kZXJzb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRoQHJlZGhhdC5jb20KR2VvZmZyZXkgS2VhdGluZwkJCQlnZW9mZmtAZ2VvZmZrLm9yZwpSaWNoYXJkIEtlbm5lcgkJCQkJa2VubmVyQG55dS5lZHUKSmVmZiBMYXcJCQkJCWxhd0ByZWRoYXQuY29tCk1pY2hhZWwgTWVpc3NuZXIJCQkJbWVpc3NuZXJAcmVkaGF0LmNvbQpKYXNvbiBNZXJyaWxsCQkJCQlqYXNvbkByZWRoYXQuY29tCkRhdmlkIFMuIE1pbGxlcgkJCQkJZGF2ZW1AcmVkaGF0LmNvbQpNYXJrIE1pdGNoZWxsCQkJCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KQmVybmQgU2NobWlkdAkJCQkJYmVybmRzQHJlZGhhdC5jb20KWmFjayBXZWluYmVyZwkJCQkJemFja0Bjb2Rlc291cmNlcnkuY29tCkppbSBXaWxzb24JCQkJCXdpbHNvbkB0dWxpcHRyZWUub3JnCgoKCQkJQ1BVIFBvcnQgTWFpbnRhaW5lcnMJKENQVSBhbHBoYWJldGljYWwgb3JkZXIpCgphbHBoYSBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQphcmMgcG9ydAkJUmljaGFyZCBLZW5uZXIJCWtlbm5lckBueXUuZWR1CmFybSBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KYXJtIHBvcnQJCVJpY2hhcmQgRWFybnNoYXcJcmVhcm5zaGFAYXJtLmNvbQphdnIgcG9ydAkJRGVuaXMgQ2hlcnR5a292CQlkZW5pc2NAb3ZlcnRhLnJ1CmF2ciBwb3J0CQlNYXJlayBNaWNoYWxraWV3aWN6CW1hcmVrbUBsaW51eC5vcmcucGwKYzR4IHBvcnQJCU1pY2hhZWwgSGF5ZXMJCW0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56CmNyaXMgcG9ydAkJSGFucy1QZXRlciBOaWxzc29uCWhwQGF4aXMuY29tCmZyMzAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmg4IHBvcnQJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaDggcG9ydAkJCUthenUgSGlyYXRhCQlrYXp1QGNzLnVtYXNzLmVkdQpocHBhIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpocHBhIHBvcnQJCURhdmUgQW5nbGluCQlkYXZlLmFuZ2xpbkBucmMuY2EKaTM4NiBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQppOTYwIHBvcnQJCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCmlhNjQgcG9ydAkJSmltIFdpbHNvbgkJd2lsc29uQHR1bGlwdHJlZS5vcmcKaXAyayBwb3J0CQlEZW5pcyBDaGVydHlrb3YJCWRlbmlzY0BvdmVydGEucnUKbTMyciBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KbTMyciBwb3J0CQlNaWNoYWVsIE1laXNzbmVyCW1laXNzbmVyQHJlZGhhdC5jb20KbTY4aGMxMSBwb3J0CQlTdGVwaGFuZSBDYXJyZXoJCXN0Y2FycmV6QG5lcmltLmZyCm02OGsgcG9ydCAoPykJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptNjhrLW1vdG9yb2xhLXN5c3YgcG9ydAlQaGlsaXBwZSBEZSBNdXl0ZXIJcGhkbUBtYWNxZWwuYmUKbWNvcmUgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm1pcHMgcG9ydCAgICAgICAgICAgICAgIEVyaWMgQ2hyaXN0b3BoZXIgICAgICAgIGVjaHJpc3RvQHJlZGhhdC5jb20KbWlwcyBwb3J0CQlSaWNoYXJkIFNhbmRpZm9yZAlyc2FuZGlmb0ByZWRoYXQuY29tCm1taXggcG9ydAkJSGFucy1QZXRlciBOaWxzc29uCWhwQGJpdHJhbmdlLmNvbQptbjEwMjAwIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptbjEwMzAwIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptbjEwMzAwIHBvcnQJCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20KcnM2MDAwIHBvcnQJCUdlb2ZmIEtlYXRpbmcJCWdlb2Zma0BnZW9mZmsub3JnCnJzNjAwMCBwb3J0CQlEYXZpZCBFZGVsc29obgkJZGplQHdhdHNvbi5pYm0uY29tCnJzNjAwMCB2ZWN0b3IgZXh0bnMJQWxkeSBIZXJuYW5kZXoJCWFsZHloQHJlZGhhdC5jb20KczM5MCBwb3J0CQlIYXJ0bXV0IFBlbm5lcgkJaHBlbm5lckBkZS5pYm0uY29tCnMzOTAgcG9ydAkJVWxyaWNoIFdlaWdhbmQJCXV3ZWlnYW5kQGRlLmlibS5jb20Kc2ggcG9ydAkJCUpvZXJuIFJlbm5lY2tlCQlqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tCnNoIHBvcnQJCQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCnNwYXJjIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCnNwYXJjIHBvcnQJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQpzcGFyYyBwb3J0CQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCnNwYXJjIHBvcnQJCUVyaWMgQm90Y2F6b3UJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgp2ODUwIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQp2ODUwIHBvcnQJCU1pY2hhZWwgTWVpc3NuZXIJbWVpc3NuZXJAcmVkaGF0LmNvbQp2YXggcG9ydAkJRGF2ZSBBbmdsaW4JCWRhdmUuYW5nbGluQG5yYy5jYQp2YXggcG9ydAkJTWF0dCBUaG9tYXMJCW1hdHRAM2FtLXNvZnR3YXJlLmNvbQp4ODYtNjQgcG9ydAkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKeHN0b3JteTE2IHBvcnQJCUdlb2ZmcmV5IEtlYXRpbmcJZ2VvZmZrQGdlb2Zmay5vcmcKeHRlbnNhIHBvcnQJCUJvYiBXaWxzb24JCWJvYi53aWxzb25AYWNtLm9yZwoKCQkJT1MgUG9ydCBNYWludGFpbmVycwkoT1MgYWxwaGFiZXRpY2FsIG9yZGVyKQoKZGFyd2luIHBvcnQJCVN0YW4gU2hlYnMJCXNoZWJzQGFwcGxlLmNvbQpuZXRic2QJCQlKYXNvbiBUaG9ycGUJCXRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20Kc2NvNSwgdW5peHdhcmUsIHNjbyB1ZGsJUm9iZXJ0IExpcGUJCXJvYmVydGxpcGVAdXNhLm5ldApzaC1saW51eC1nbnUJCUtheiBLb2ppbWEJCWtrb2ppbWFAZ2NjLmdudS5vcmcKCgkJCVZhcmlvdXMgTWFpbnRhaW5lcnMKCkMgZnJvbnQgZW5kL0lTTyBDOTkJSm9zZXBoIE15ZXJzCQlqc20yOEBjYW0uYWMudWsKQyBmcm9udCBlbmQvSVNPIEM5OQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQpBZGEgZnJvbnQgZW5kCQlHZWVydCBCb3NjaAkJYm9zY2hAZ25hdC5jb20KQWRhIGZyb250IGVuZAkJUm9iZXJ0IERld2FyCQlkZXdhckBnbmF0LmNvbQpmb3J0cmFuCQkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KZm9ydHJhbgkJCVRvb24gTW9lbmUJCXRvb25AbW9lbmUuaW5kaXYubmx1dWcubmwKYysrCQkJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpjKysgICAgICAgICAgICAgICAgICAgICBNYXJrIE1pdGNoZWxsCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KY3BwbGliCQkJRGF2ZSBCcm9sbGV5CQlicm9sbGV5QHJlZGhhdC5jb20KY3BwbGliCQkJUGVyIEJvdGhuZXIJCXBlckBib3RobmVyLmNvbQpjcHBsaWIJCQlaYWNrIFdlaW5iZXJnCQl6YWNrQGNvZGVzb3VyY2VyeS5jb20KY3BwbGliCQkJTmVpbCBCb290aAkJbmVpbEBkYWlrb2t1eWEuY28udWsKamF2YQkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KamF2YQkJCUFsZXhhbmRyZSBQZXRpdC1CaWFuY28JYXBiaWFuY29AcmVkaGF0LmNvbQpqYXZhCQkJQW5kcmV3IEhhbGV5CQlhcGhAcmVkaGF0LmNvbQpsaWJnY2oJCQlUb20gVHJvbWV5CQl0cm9tZXlAcmVkaGF0LmNvbQpsaWJnY2oJCQlCcnljZSBNY0tpbmxheQkJYnJ5Y2VAZ2NjLmdudS5vcmcKbWVyY3VyeQkJCUZlcmd1cyBIZW5kZXJzb24JZmpoQGNzLm11Lm96LmF1Cm9iamVjdGl2ZS1jCQlTdGFuIFNoZWJzCQlzaGVic0BhcHBsZS5jb20Kb2JqZWN0aXZlLWMJCU92aWRpdSBQcmVkZXNjdQkJb3ZpZGl1QGN1cC5ocC5jb20KYWxpYXMgYW5hbHlzaXMJCUpvaG4gQ2FycgkJamZjQG1pdC5lZHUKbG9vcCB1bnJvbGxpbmcJCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCmxvb3AgZGlzY292ZXJ5CQlNaWNoYWVsIEhheWVzCQltLmhheWVzQGVsZWMuY2FudGVyYnVyeS5hYy5uegpzY2hlZHVsZXIgKCsgaGFpZmEpCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCnNjaGVkdWxlciAoKyBoYWlmYSkJTWljaGFlbCBNZWlzc25lcgltZWlzc25lckByZWRoYXQuY29tCnNjaGVkdWxlciAoKyBoYWlmYSkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCnJlb3JnCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmNhbGxlci1zYXZlLmMJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpkZWJ1Z2dpbmcgY29kZQkJSmltIFdpbHNvbgkJd2lsc29uQHR1bGlwdHJlZS5vcmcKZHdhcmYgZGVidWdnaW5nIGNvZGUJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpjKysgcnVudGltZSBsaWJzCVBhb2xvIENhcmxpbmkJCXBjYXJsaW5pQHVuaXR1cy5pdApjKysgcnVudGltZSBsaWJzICAgICAgICBHYWJyaWVsIERvcyBSZWlzICAgICAgICBnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0CmMrKyBydW50aW1lIGxpYnMJVWxyaWNoIERyZXBwZXIJCWRyZXBwZXJAcmVkaGF0LmNvbQpjKysgcnVudGltZSBsaWJzCVBoaWwgRWR3YXJkcwkJcG1lQGdjYy5nbnUub3JnCmMrKyBydW50aW1lIGxpYnMJQmVuamFtaW4gS29zbmlrCQlia296QHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKKnN5bnRoZXRpYyBtdWx0aXBseQlUb3Jiam9ybiBHcmFubHVuZAl0ZWdlQHN3b3guY29tCipjLXRvcnR1cmUJCVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAc3dveC5jb20KZml4aW5jbHVkZXMJCUJydWNlIEtvcmIJCWJrb3JiQGdudS5vcmcKZ2NzZS5jIAkJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpnbG9iYWwgb3B0IGZyYW1ld29yawlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KanVtcC5jCQkJRGF2aWQgUy4gTWlsbGVyCQlkYXZlbUByZWRoYXQuY29tCndlYiBwYWdlcwkJR2VyYWxkIFBmZWlmZXIJCWdlcmFsZEBwZmVpZmVyLmNvbQp3ZWIgcGFnZXMJCUphbmlzIEpvaG5zb24JCWphbmlzMTg3QHVzLmlibS5jb20KY29uZmlnLnN1Yi9jb25maWcuZ3Vlc3MJQmVuIEVsbGlzdG9uCQljb25maWctcGF0Y2hlc0BnbnUub3JnCmJhc2ljIGJsb2NrIHJlb3JkZXJpbmcJSmFzb24gRWNraGFyZHQJCWpsZUByaWNlLmVkdQppMThuCQkJUGhpbGlwcCBUaG9tYXMJCXB0aG9tYXNAc3VzZS5kZQpkaWFnbm9zdGljIG1lc3NhZ2VzCUdhYnJpZWwgRG9zIFJlaXMJZ2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldAp3aW5kb3dzLCBjeWd3aW4sIG1pbmd3CUNocmlzdG9waGVyIEZheWxvcgljZ2ZAcmVkaGF0LmNvbQp3aW5kb3dzLCBjeWd3aW4sIG1pbmd3CURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KREpHUFAJCQlESiBEZWxvcmllCQlkakBkZWxvcmllLmNvbQpsaWJpYmVydHkJCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpkb2NzIGNvLW1haW50YWluZXIJR2VyYWxkIFBmZWlmZXIJCWdlcmFsZEBwZmVpZmVyLmNvbQpkb2NzIGNvLW1haW50YWluZXIJSm9zZXBoIE15ZXJzCQlqc20yOEBjYW0uYWMudWsKUGljby1KYXZhIHBvcnQJCVN0ZXZlIENoYW1iZXJsYWluCXNhY0B0cmFuc21ldGEuY29tClJURU1TIFBvcnRzCQlKb2VsIFNoZXJyaWxsCQlqb2VsQG9hcmNvcnAuY29tClZ4V29ya3MJcG9ydHMJCVphY2sgV2VpbmJlcmcJCXphY2tAY29kZXNvdXJjZXJ5LmNvbQpWeFdvcmtzCXBvcnRzCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20KcHJlZGljdC5kZWYJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmNvbnRyaWIvcmVncmVzc2lvbglHZW9mZiBLZWF0aW5nCQlnZW9mZmtAZ2VvZmZrLm9yZwp0cmVlbGFuZyAgICAgICAgICAgICAgICBUaW0gSm9zbGluZyAgICAgICAgICAgICB0ZWpAbWVsYnBjLm9yZy5hdQpuZXcgcmVnYWxsb2MgKHJhKikJTWljaGFlbCBNYXR6CQltYXR6QHN1c2UuZGUKCk5vdGUgaW5kaXZpZHVhbHMgd2hvIG1haW50YWluIHBhcnRzIG9mIHRoZSBjb21waWxlciBuZWVkIGFwcHJvdmFsIHRvIGNoZWNrCmluIGNoYW5nZXMgb3V0c2lkZSBvZiB0aGUgcGFydHMgb2YgdGhlIGNvbXBpbGVyIHRoZXkgbWFpbnRhaW4uCgoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwJKGxhc3QgbmFtZSBhbHBoYWJldGljYWwgb3JkZXIpCgpNYXR0IEF1c3Rlcm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXN0ZXJuQGFwcGxlLmNvbQpTY290dCBCYW1icm91Z2gJCQkJCXNjb3R0YkBuZXR3aW5kZXIub3JnCkRhbmllbCBCZXJsaW4JCQkJCWRhbkBkYmVybGluLm9yZwpEYXZpZCBCaWxsaW5naHVyc3QJCQkJRGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbQpMYXVyeW5hcyBCaXZlaW5pcwkJCSAgICAgICAgbGF1cnluYXMuYml2ZWluaXNAbWlmLnZ1Lmx0CkVyaWMgQmxha2UJCQkJCWVyaWNiQGdjYy5nbnUub3JnCkppbSBCbGFuZHkJCQkJCWppbWJAcmVkaGF0LmNvbQpQaGlsIEJsdW5kZWxsCQkJCQlwYkBmdXR1cmV0di5jb20KSGFucyBCb2VobQkJCQkJaGJvZWhtQGdjYy5nbnUub3JnCkFuZHJldyBDYWduZXkJCQkJCWNhZ25leUByZWRoYXQuY29tCkNoYW5kcmEgQ2hhdnZhCQkJCQljY2hhdnZhQHJlZGhhdC5jb20KV2lsbGlhbSBDb2hlbgkJCQkJd2NvaGVuQHJlZGhhdC5jb20KQ2hyaXN0aWFuIENvcm5lbHNzZW4JCQkJY2Nvcm5AY3MudHUtYmVybGluLmRlCkNocmlzIERlbWV0cmlvdQkJCQkJY2dkQGJyb2FkY29tLmNvbQpTdGV2ZSBFbGxjZXkJCQkJCXNqZUBjdXAuaHAuY29tCkJlbiBFbGxpc3RvbgkJCQkJYmplQHdhc2FiaXN5c3RlbXMuY29tCk1hcmMgRXNwaWUJCQkJCWVzcGllQGN2cy5vcGVuYnNkLm9yZwpEb3VnIEV2YW5zCQkJCQlkamVAdHJhbnNtZXRhLmNvbQpLYXZlaCBHaGF6aQkJCQkJZ2hhemlAY2FpcC5ydXRnZXJzLmVkdQpNYXR0aGV3IEdpbmdlbGwJCQkJCWdpbmdlbGxAZ25hdC5jb20KQW50aG9ueSBHcmVlbgkJCQkJZ3JlZW5AcmVkaGF0LmNvbQpTdHUgR3Jvc3NtYW4JCQkJCWdyb3NzbWFuQHJlZGhhdC5jb20KTGF1cmVudCBHdWVyYnkJCQkJCWd1ZXJieUBhY20ub3JnClN0dWFydCBIYXN0aW5ncwkJCQkJc3R1YXJ0QGFwcGxlLmNvbQpNYXR0aGV3IEhpbGxlcgkJCQkJaGlsbGVyQHJlZGhhdC5jb20KTWFuZnJlZCBIb2xsc3RlaW4JCQkJbWhvbGxzdGVpbkByZWRoYXQuY29tCkJlcm5hcmRvIElubm9jZW50aQkJCQliZXJuaWVAZGV2ZWxlci5jb20KQW5kcmVhcyBKYWVnZXIJCQkJCWFqQHN1c2UuZGUKRmFyaWJvcnogSmFoYW5pYW4JCQkJZmphaGFuaWFuQGFwcGxlLmNvbQpEYWxlIEpvaGFubmVzZW4gCQkJCWRhbGVqQGFwcGxlLmNvbQpLbGF1cyBLYWVtcGYJCQkJCWtrYWVtcGZAcHJvZ2lzLmRlCkJyZW5kYW4gS2Vob2UJCQkJCWJyZW5kYW5AemVuLm9yZwpNdW1pdCBLaGFuCQkJCQlraGFuQHhyYXlsaXRoLndpc2MuZWR1Ck1hdHRoaWFzIEtsb3NlCQkJCQlkb2tvQGRlYmlhbi5vcmcKSmVmZiBLbmFnZ3MJCQkJCWprbmFnZ3NAcmVkaGF0LmNvbQpQYXVsIEtvbmluZwkJCQkJbmkxZEBhcnJsLm5ldApNYXR0IEtyYWFpCQkJCQlrcmFhaUBhbHVtbmkuY211LmVkdQpaaWVtb3dpdCBMYXNraQkJCQkJemxhc2tpQGFwcGxlLmNvbQpNYXJjIExlaG1hbm4JCQkJCXBjZ0Bnb29mLmNvbQpBbGFuIExlaG90c2t5CQkJCQlhcGxAYWx1bS5taXQuZWR1CktyaWFuZyBMZXJkc3V3YW5ha2lqCQkJCWxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApXYXJyZW4gTGV2eQkJCQkJd2FycmVubEBjcnV6aW8uY29tCkRvbiBMaW5kc2F5CQkJCQlkbGluZHNheUByZWRoYXQuY29tCkRhdmUgTG92ZQkJCQkJZC5sb3ZlQGRsLmFjLnVrCk1hcnRpbiB2LiBM9ndpcwkJCQkJbG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlCkhKIEx1CQkJCQkJaGpsQGx1Y29uLm9yZwpBbmRyZXcgTWFjbGVvZAkJCQkJYW1hY2xlb2RAcmVkaGF0LmNvbQpWbGFkaW1pciBNYWthcm92CQkJCXZtYWthcm92QHJlZGhhdC5jb20KR3JlZyBNY0dhcnkJCQkJCWdrbUBnbnUub3JnCkFkYW0gTWVnYWN6CQkJCQlhZGFtQHh3dC5vcmcKQWxhbiBNb2RyYQkJCQkJYW1vZHJhQGJpZ3BvbmQubmV0LmF1CkNhdGhlcmluZSBNb29yZQkJCQkJY2xtQHJlZGhhdC5jb20KQWRhbSBOZW1ldAkJCQkJYW5lbWV0QGxueHcuY29tCk5hdGhhbmFlbCBOZXJvZGUJCQkJbmVyb2RlbkBnY2MuZ251Lm9yZwpEaWVnbyBOb3ZpbGxvCQkJCQlkbm92aWxsb0ByZWRoYXQuY29tCkRhdmlkIE8nQnJpZW4JCQkJCW9icmllbkBGcmVlQlNELm9yZwpUdXJseSBPJ0Nvbm5vcgkJCQkJdHVybHlAYXBwbGUuY29tCkplZmZyZXkgRC4gT2xkaGFtCQkJCW9sZGhhbUBjb2Rlc291cmNlcnkuY29tClJhaW5lciBPcnRoCQkJCQlyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREUKRGV2YW5nIFBhdGVsCQkJCQlkcGF0ZWxAYXBwbGUuY29tCk5pY29sYSBQZXJvCQkJCQluLnBlcm9AbWkuZmxhc2huZXQuaXQKQWxleGFuZHJlIFBldGl0LUJpYW5jbwkJCQlhcGJpYW5jb0ByZWRoYXQuY29tCkFuZHJldyBQaW5za2kJCQkJCXBpbnNraWFAcGh5c2ljcy51Yy5lZHUKU2ViYXN0aWFuIFBvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5wb3BAbGFwb3N0ZS5uZXQKQ2xpbnRvbiBQb3BldHoJCQkJCWNwb3BldHpAY3BvcGV0ei5jb20KS2VuIFJhZWJ1cm4JCQkJCXJhZWJ1cm5AcmVkaGF0LmNvbQpSb2xmIFJhc211c3NlbgkJCQkJcm9sZndyQGdjYy5nbnUub3JnClZvbGtlciBSZWljaGVsdAkJCQkJcmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZQpUb20gUml4CQkJCQkJdHJpeEByZWRoYXQuY29tCkNyYWlnIFJvZHJpZ3VlcwkJCQkJcm9kcmlnY0BnY2MuZ251Lm9yZwpHYXZpbiBSb21pZy1Lb2NoCQkJCWdhdmluQHJlZGhhdC5jb20KSXJhIFJ1YmVuCQkJCQlpcmFAYXBwbGUuY29tCkRvdWdsYXMgUnVwcAkJCQkJcnVwcEBnbmF0LmNvbQpBbGV4IFNhbXVlbAkJCQkJc2FtdWVsQGNvZGVzb3VyY2VyeS5jb20KUm9nZXIgU2F5bGUJCQkJCXJvZ2VyQGV5ZXNvcGVuLmNvbQpBbmRyZWFzIFNjaHdhYgkJCQkJc2Nod2FiQHN1c2UuZGUKU3ZlaW4gU2VsZGFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZlaW4uc2VsZGFsQHNvbGlkYXMuY29tCk5hdGhhbiBTaWR3ZWxsCQkJCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpGcmFueiBTaXJsCQkJCQlmcmFuei5zaXJsLWtlcm5lbEBsYXV0ZXJiYWNoLmNvbQpEYW5ueSBTbWl0aAkJCQkJZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKTWljaGFlbCBTb2tvbG92CQkJCQltc29rb2xvdkBpdmFuLkhhcmhhbi5PUkcKUmljaGFyZCBTdGFsbG1hbgkJCQlybXNAZ251Lm9yZwpHcmFoYW0gU3RvdHQJCQkJCWdyYWhhbS5zdG90dEBidGludGVybmV0LmNvbQpNaWtlIFN0dW1wCQkJCQltcnNAYXBwbGUuY29tCkplZmYgU3R1cm0JCQkJCWpzdHVybUBnY2MuZ251Lm9yZwpJYW4gVGF5bG9yCQkJCQlpYW5AemVtYnUuY29tCk1pY2hhZWwgVGllbWFubgkJCQkJdGllbWFubkByZWRoYXQuY29tCktyZXN0ZW4gS3JhYiBUaG9ydXAJCQkJa3JhYkBnY2MuZ251Lm9yZwpBbmRyZWFzIFRvYmxlcgkJCQkJYW5kcmVhc3RAZ2NjLmdudS5vcmcKSm9uYXRoYW4gV2FrZWx5CQkJCQlyZWRpQGdjYy5nbnUub3JnCktyaXN0ZXIgV2FsZnJpZHNzb24JCQkJY2F0b0BkZi5sdGguc2UKSm9obiBXZWhsZQkJCQkJam9obkBmZWl0aC5jb20KRmxvcmlhbiBXZWltZXIJCQkJCWZ3QGRlbmViLmVueW8uZGUKTWFyayBXaWVsYWFyZAkJCQkJbWFya0BnY2MuZ251Lm9yZwpKb3NlZiBabG9tZWsJCQkJCWpvc2VmLnpsb21la0BlbWFpbC5jegoKR05BVFMgb25seSBhY2NvdW50cwoKV29sZmdhbmcgQmFuZ2VydGgJYmFuZ2VydGgJCWJhbmdlcnRoQHRpY2FtLnV0ZXhhcy5lZHUKSmFtZXMgRGVubmV0dAkJamRlbm5ldHQJCWpkZW5uZXR0QGFjbS5vcmcKQ2hyaXN0aWFuIEVocmhhcmR0CWNhZQkJCWVocmhhcmR0QG1hdGhlbWF0aWsudW5pLXVsbS5kZQo=