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ICVzKS4gICVzACVzICVzIHBhY2thZ2VzACVzICVzIHBhY2thZ2VzIGluIHNlY3Rpb24gJXMAJXMgJXMgcGFja2FnZXMgd2l0aG91dCBhIHNlY3Rpb24AJXMgZm9yIG1vcmUAJXMgcGFja2FnZXMgaW4gc2VjdGlvbiAlcwAlcyBwYWNrYWdlcyB3aXRob3V0IGEgc2VjdGlvbgAlcyB0byBnbyBiYWNrACogSGlnaGxpZ2h0OiBPbmUgbGluZSBpbiB0aGUgcGFja2FnZSBsaXN0IHdpbGwgYmUgaGlnaGxpZ2h0ZWQuICBJdCBpbmRpY2F0ZXMKICB3aGljaCBwYWNrYWdlKHMpIHdpbGwgYmUgYWZmZWN0ZWQgYnkgcHJlc3NlcyBvZiBgKycsIGAtJyBhbmQgYF8nLgoKKiBUaGUgZGl2aWRpbmcgbGluZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3JlZW4gc2hvd3MgYSBicmllZiBleHBsYW5hdGlvbiBvZgogIHRoZSBzdGF0dXMgb2YgdGhlIGN1cnJlbnRseS1oaWdobGlnaHRlZCBwYWNrYWdlLCBvciBhIGRlc2NyaXB0aW9uIG9mIHdoaWNoCiAgZ3JvdXAgaXMgaGlnaGxpZ2h0ZWQgaWYgYSBncm91cCBsaW5lIGlzLiAgSWYgeW91IGRvbid0IHVuZGVyc3RhbmQgdGhlCiAgbWVhbmluZyBvZiBzb21lIG9mIHRoZSBzdGF0dXMgY2hhcmFjdGVycyBkaXNwbGF5ZWQsIGdvIHRvIHRoZSByZWxldmFudAogIHBhY2thZ2UgYW5kIGxvb2sgYXQgdGhpcyBkaXZpZGVyIGxpbmUsIG9yIHVzZSB0aGUgYHYnIGtleSBmb3IgYSB2ZXJib3NlCiAgZGlzcGxheSAocHJlc3MgYHYnIGFnYWluIHRvIGdvIGJhY2sgdG8gdGhlIHRlcnNlIGRpc3BsYXkpLgoKKiBUaGUgYm90dG9tIG9mIHRoZSBzY3JlZW4gc2hvd3MgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKICBjdXJyZW50bHktaGlnaGxpZ2h0ZWQgcGFja2FnZSAoaWYgdGhlcmUgaXMgb25seSBvbmUpLgoKICBJdCBjYW4gc2hvdyBhbiBleHRlbmRlZCBkZXNjcmlwdGlvbiBvZiB0aGUgcGFja2FnZSwgdGhlIGludGVybmFsIHBhY2thZ2UKICBjb250cm9sIGRldGFpbHMgKGVpdGhlciBmb3IgdGhlIGluc3RhbGxlZCBvciBhdmFpbGFibGUgdmVyc2lvbiBvZiB0aGUKICBwYWNrYWdlKSwgb3IgaW5mb3JtYXRpb24gYWJvdXQgY29uZmxpY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW52b2x2aW5nIHRoZQogIGN1cnJlbnQgcGFja2FnZSAoaW4gY29uZmxpY3QvZGVwZW5kZW5jeSByZXNvbHV0aW9uIHN1Ymxpc3RzKS4KCiAgVXNlIHRoZSBgaScga2V5IHRvIGN5Y2xlIHRocm91Z2ggdGhlIGRpc3BsYXlzLCBhbmQgYEknIHRvIGhpZGUgdGhlCiAgaW5mb3JtYXRpb24gZGlzcGxheSBvciBleHBhbmQgaXQgdG8gdXNlIGFsbW9zdCBhbGwgb2YgdGhlIHNjcmVlbi4KAD8AQWJicmV2LgBBYm9ydCAtIHF1aXQgd2l0aG91dCBtYWtpbmcgY2hhbmdlcwBBY2Nlc3MgbWV0aG9kIGAlcycuAEFjdGlvbnM6CiAgYWNjZXNzIHVwZGF0ZSBzZWxlY3QgaW5zdGFsbCBjb25maWcgcmVtb3ZlIHF1aXQKCgBBbGwAQWxsIHBhY2thZ2VzAEF0dHJpYnV0ZXM6CgBBdmFpbC52ZXIAQXZhaWxhYmxlAEF2YWlsYWJsZSBjb250cm9sIGZpbGUgaW5mb3JtYXRpb24AQXZhaWxhYmxlIHBhY2thZ2VzIChub3QgY3VycmVudGx5IGluc3RhbGxlZCkAQnJva2VuAEJyb2tlbmx5IGluc3RhbGxlZCBwYWNrYWdlcwBDaG9vc2UgdGhlIGFjY2VzcyBtZXRob2QgdG8gdXNlLgBDb2xvdXJzOgoAQ29uZmlndXJlIGFueSBwYWNrYWdlcyB0aGF0IGFyZSB1bmNvbmZpZ3VyZWQuAENvcHlyaWdodCAoQykgMTk5NC0xOTk2IElhbiBKYWNrc29uLgpDb3B5cmlnaHQgKEMpIDIwMDAsMjAwMSBXaWNoZXJ0IEFra2VybWFuLgoAQ3ljbGUgdGhyb3VnaCBpbmZvcm1hdGlvbiBkaXNwbGF5cwBEZWJpYW4gYCVzJyBwYWNrYWdlIGhhbmRsaW5nIGZyb250ZW5kIHZlcnNpb24gJXMuCgBEZXBlbmRlbmN5L2NvbmZsaWN0IHJlc29sdXRpb24gLSBpbnRyb2R1Y3Rpb24uCgpPbmUgb3IgbW9yZSBvZiB5b3VyIGNob2ljZXMgaGF2ZSByYWlzZWQgYSBjb25mbGljdCBvciBkZXBlbmRlbmN5IHByb2JsZW0gLQpzb21lIHBhY2thZ2VzIHNob3VsZCBvbmx5IGJlIGluc3RhbGxlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGNlcnRhaW4gb3RoZXJzLCBhbmQKc29tZSBjb21iaW5hdGlvbnMgb2YgcGFja2FnZXMgbWF5IG5vdCBiZSBpbnN0YWxsZWQgdG9nZXRoZXIuCgpZb3Ugd2lsbCBzZWUgYSBzdWItbGlzdCBjb250YWluaW5nIHRoZSBwYWNrYWdlcyBpbnZvbHZlZC4gIFRoZSBib3R0b20gaGFsZiBvZgp0aGUgZGlzcGxheSBzaG93cyByZWxldmFudCBjb25mbGljdHMgYW5kIGRlcGVuZGVuY2llczsgdXNlIGBpJyB0byBjeWNsZSBiZXR3ZWVuCnRoYXQsIHRoZSBwYWNrYWdlIGRlc2NyaXB0aW9ucyBhbmQgdGhlIGludGVybmFsIGNvbnRyb2wgaW5mb3JtYXRpb24uCgpBIHNldCBvZiBgc3VnZ2VzdGVkJyBwYWNrYWdlcyBoYXMgYmVlbiBjYWxjdWxhdGVkLCBhbmQgdGhlIGluaXRpYWwgbWFya2luZ3MgaW4KdGhpcyBzdWItbGlzdCBoYXZlIGJlZW4gc2V0IHRvIG1hdGNoIHRob3NlLCBzbyB5b3UgY2FuIGp1c3QgaGl0IFJldHVybiB0bwphY2NlcHQgdGhlIHN1Z2dlc3Rpb25zIGlmIHlvdSB3aXNoLiAgWW91IG1heSBhYm9ydCB0aGUgY2hhbmdlKHMpIHdoaWNoIGNhdXNlZAp0aGUgcHJvYmxlbShzKSwgYW5kIGdvIGJhY2sgdG8gdGhlIG1haW4gbGlzdCwgYnkgcHJlc3NpbmcgY2FwaXRhbCBgWCcuCgpZb3UgY2FuIGFsc28gbW92ZSBhcm91bmQgdGhlIGxpc3QgYW5kIGNoYW5nZSB0aGUgbWFya2luZ3Mgc28gdGhhdCB0aGV5IGFyZSBtb3JlCmxpa2Ugd2hhdCB5b3Ugd2FudCwgYW5kIHlvdSBjYW4gYHJlamVjdCcgbXkgc3VnZ2VzdGlvbnMgYnkgdXNpbmcgdGhlIGNhcGl0YWwKYEQnIG9yIGBSJyBrZXlzIChzZWUgdGhlIGtleWJpbmRpbmdzIGhlbHAgc2NyZWVuKS4gIFlvdSBjYW4gdXNlIGNhcGl0YWwgYFEnIHRvCmZvcmNlIG1lIHRvIGFjY2VwdCB0aGUgc2l0dWF0aW9uIGN1cnJlbnRseSBkaXNwbGF5ZWQsIGluIGNhc2UgeW91IHdhbnQgdG8Kb3ZlcnJpZGUgYSByZWNvbW1lbmRhdGlvbiBvciB0aGluayB0aGF0IHRoZSBwcm9ncmFtIGlzIG1pc3Rha2VuLgoKUHJlc3MgPHNwYWNlPiB0byBsZWF2ZSBoZWxwIGFuZCBlbnRlciB0aGUgc3ViLWxpc3Q7IHJlbWVtYmVyOiBwcmVzcyBgPycgZm9yIGhlbHAuCgBEZXNjcmlwdGlvbgBEaXNwbGF5LCBwYXJ0IDE6IHBhY2thZ2UgbGlzdGluZyBhbmQgc3RhdHVzIGNoYXJzAERpc3BsYXksIHBhcnQgMjogbGlzdCBoaWdobGlnaHQ7IGluZm9ybWF0aW9uIGRpc3BsYXkARUlPTQBFT0YgYmVmb3JlIG9wdGlvbiBuYW1lIHN0YXJ0AEVPRiBiZWZvcmUgc3VtbWFyeQBFT0YgaW4gaW5kZXggc3RyaW5nAEVPRiBpbiBvcHRpb24gbmFtZQBFT0YgaW4gc3VtbWFyeSAtIG1pc3NpbmcgbmV3bGluZQBFcnJvcgBFcnJvcjogAEV4cGxhbmF0aW9uAEV4dHJhAEdvIHRvIGVuZCBvZiBsaXN0AEdvIHRvIHRvcCBvZiBsaXN0AEhlbHAgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgdG9waWNzOgBIZWxwOiAASW1wAEltcG9ydGFudABJbnN0LnZlcgBJbnN0YWxsIGFuZCB1cGdyYWRlIHdhbnRlZCBwYWNrYWdlcy4ASW5zdGFsbGVkAEluc3RhbGxlZCBjb250cm9sIGZpbGUgaW5mb3JtYXRpb24ASW5zdGFsbGVkIHBhY2thZ2VzAEluc3RhbGxlZD8ASW50ZXJyZWxhdGlvbnNoaXBzAEludHJvZHVjdGlvbiB0byBjb25mbGljdC9kZXBlbmRlbmN5IHJlc29sdXRpb24gc3ViLWxpc3QASW50cm9kdWN0aW9uIHRvIG1ldGhvZCBzZWxlY3Rpb24gZGlzcGxheQBJbnRyb2R1Y3Rpb24gdG8gcGFja2FnZSBzZWxlY3Rpb25zAEludHJvZHVjdGlvbiB0byByZWFkLW9ubHkgcGFja2FnZSBsaXN0IGJyb3dzZXIASW52YWxpZCAlcyBgJXMnCgBLZXliaW5kaW5ncwBLZXlzdHJva2VzAEtleXN0cm9rZXMgZm9yIG1ldGhvZCBzZWxlY3Rpb24ATWFrZSBoaWdobGlnaHQgbGVzcyBzcGVjaWZpYwBNYWtlIGhpZ2hsaWdodCBtb3JlIHNwZWNpZmljAE1hcmsgcGFja2FnZShzKSBmb3IgZGVpbnN0YWxsIGFuZCBwdXJnZQBNYXJrIHBhY2thZ2UocykgZm9yIGRlaW5zdGFsbGF0aW9uAE1hcmsgcGFja2FnZShzKSBmb3IgaW5zdGFsbGF0aW9uAE1hcmtlZCBmb3IATW90aW9uIGtleXM6IE5leHQvUHJldmlvdXMsIFRvcC9FbmQsIFVwL0Rvd24sIEJhY2t3YXJkcy9Gb3J3YXJkczoKICBqLCBEb3duLWFycm93ICAgICAgICAgaywgVXAtYXJyb3cgICAgICAgICAgICAgbW92ZSBoaWdobGlnaHQKICBOLCBQYWdlLWRvd24sIFNwYWNlICAgUCwgUGFnZS11cCwgQmFja3NwYWNlICAgc2Nyb2xsIGxpc3QgYnkgMSBwYWdlCiAgXm4gICAgICAgICAgICAgICAgICAgIF5wICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBsaXN0IGJ5IDEgbGluZQogIHQsIEhvbWUgICAgICAgICAgICAgICBlLCBFbmQgICAgICAgICAgICAgICAgICBqdW1wIHRvIHRvcC9lbmQgb2YgbGlzdAogIHUgICAgICAgICAgICAgICAgICAgICBkICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgaW5mbyBieSAxIHBhZ2UKICBedSAgICAgICAgICAgICAgICAgICAgXmQgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGluZm8gYnkgMSBsaW5lCiAgQiwgTGVmdC1hcnJvdyAgICAgICAgIEYsIFJpZ2h0LWFycm93ICAgICAgICAgIHBhbiBkaXNwbGF5IGJ5IDEvMyBzY3JlZW4KICBeYiAgICAgICAgICAgICAgICAgICAgXmYgICAgICAgICAgICAgICAgICAgICAgcGFuIGRpc3BsYXkgYnkgMSBjaGFyYWN0ZXIKCk1hcmsgcGFja2FnZXMgZm9yIGxhdGVyIHByb2Nlc3Npbmc6CiArLCBJbnNlcnQgIGluc3RhbGwgb3IgdXBncmFkZSAgICAgID0sIEggIGhvbGQgaW4gcHJlc2VudCBzdGF0ZQogLSwgRGVsZXRlICByZW1vdmUgICAgICAgICAgICAgICAgICA6LCBHICB1bmhvbGQ6IHVwZ3JhZGUgb3IgbGVhdmUgdW5pbnN0YWxsZWQKIF8gICAgICAgICAgcmVtb3ZlICYgcHVyZ2UgY29uZmlnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2NlbGxhbmVvdXM6ClF1aXQsIGV4aXQsIG92ZXJ3cml0ZSAobm90ZSBjYXBpdGFscyEpOiAgICAgICA/LCBGMSByZXF1ZXN0IGhlbHAgKGFsc28gSGVscCkKIFJldHVybiAgQ29uZmlybSwgcXVpdCAoY2hlY2sgZGVwZW5kZW5jaWVzKSAgIGksIEkgIHRvZ2dsZS9jeWNsZSBpbmZvIGRpc3BsYXlzCiAgIFEgICAgIENvbmZpcm0sIHF1aXQgKG92ZXJyaWRlIGRlcC5zKSAgICAgICBvLCBPICBjeWNsZSB0aHJvdWdoIHNvcnQgb3B0aW9ucwogWCwgRXNjICBlWGl0LCBhYmFuZG9uaW5nIGFueSBjaGFuZ2VzIG1hZGUgICAgdiwgViAgY2hhbmdlIHN0YXR1cyBkaXNwbGF5IG9wdHMKICAgUiAgICAgUmV2ZXJ0IHRvIHN0YXRlIGJlZm9yZSB0aGlzIGxpc3QgICAgICBebCAgIHJlZHJhdyBkaXNwbGF5CiAgIFUgICAgIHNldCBhbGwgdG8gc1VnZ2VzdGVkIHN0YXRlICAgICAgICAgICAgIC8gICBzZWFyY2ggKFJldHVybiB0byBjYW5jZWwpCiAgIEQgICAgIHNldCBhbGwgdG8gRGlyZWN0bHkgcmVxdWVzdGVkIHN0YXRlICBuLCBcICByZXBlYXQgbGFzdCBzZWFyY2gKAE1vdGlvbiBrZXlzOiBOZXh0L1ByZXZpb3VzLCBUb3AvRW5kLCBVcC9Eb3duLCBCYWNrd2FyZHMvRm9yd2FyZHM6CiAgaiwgRG93bi1hcnJvdyAgICAgICAgIGssIFVwLWFycm93ICAgICAgICAgICAgIG1vdmUgaGlnaGxpZ2h0CiAgTiwgUGFnZS1kb3duLCBTcGFjZSAgIFAsIFBhZ2UtdXAsIEJhY2tzcGFjZSAgIHNjcm9sbCBsaXN0IGJ5IDEgcGFnZQogIF5uICAgICAgICAgICAgICAgICAgICBecCAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgbGlzdCBieSAxIGxpbmUKICB0LCBIb21lICAgICAgICAgICAgICAgZSwgRW5kICAgICAgICAgICAgICAgICAganVtcCB0byB0b3AvZW5kIG9mIGxpc3QKICB1ICAgICAgICAgICAgICAgICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGluZm8gYnkgMSBwYWdlCiAgXnUgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBpbmZvIGJ5IDEgbGluZQogIEIsIExlZnQtYXJyb3cgICAgICAgICBGLCBSaWdodC1hcnJvdyAgICAgICAgICBwYW4gZGlzcGxheSBieSAxLzMgc2NyZWVuCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgIHBhbiBkaXNwbGF5IGJ5IDEgY2hhcmFjdGVyCihUaGVzZSBhcmUgdGhlIHNhbWUgbW90aW9uIGtleXMgYXMgaW4gdGhlIHBhY2thZ2UgbGlzdCBkaXNwbGF5LikKClF1aXQ6CiBSZXR1cm4sIEVudGVyICAgIHNlbGVjdCB0aGlzIG1ldGhvZCBhbmQgZ28gdG8gaXRzIGNvbmZpZ3VyYXRpb24gZGlhbG9ndWUKIHgsIFggICAgICAgICAgICAgZXhpdCB3aXRob3V0IGNoYW5naW5nIG9yIHNldHRpbmcgdXAgdGhlIGluc3RhbGxhdGlvbiBtZXRob2QKCk1pc2NlbGxhbmVvdXM6CiAgPywgSGVscCwgRjEgICAgICByZXF1ZXN0IGhlbHAKIF5sICAgICAgICAgICAgICAgIHJlZHJhdyBkaXNwbGF5CiAgLyAgICAgICAgICAgICAgICBzZWFyY2ggKGp1c3QgcmV0dXJuIHRvIGNhbmNlbCkKICBcICAgICAgICAgICAgICAgIHJlcGVhdCBsYXN0IHNlYXJjaAoATW92ZSBkb3duAE1vdmUgdXAATmV3AE5ld2x5IGF2YWlsYWJsZSBwYWNrYWdlcwBObyBkZXNjcmlwdGlvbiBhdmFpbGFibGUuAE5vIGV4cGxhbmF0aW9uIGF2YWlsYWJsZS4ATnVsbCBjb2xvdXIgc3BlY2lmaWNhdGlvbgoAT2Jzb2xldGUgYW5kIGxvY2FsIHBhY2thZ2VzIHByZXNlbnQgb24gc3lzdGVtAE9ic29sZXRlL2xvY2FsAE9sZCBtYXJrAE9wdABPcHRpb25hbABPcHRpb25zOgogIC0tYWRtaW5kaXIgPGRpcmVjdG9yeT4gICAgIFVzZSA8ZGlyZWN0b3J5PiBpbnN0ZWFkIG9mICVzLgogIC0tZXhwZXJ0ICAgICAgICAgICAgICAgICAgIFR1cm4gb24gZXhwZXJ0IG1vZGUuCiAgLS1kZWJ1ZyA8ZmlsZT4gfCAtRDxmaWxlPiAgVHVybiBvbiBkZWJ1Z2dpbmcsIHNlbmRpbmcgb3V0cHV0IHRvIDxmaWxlPi4KICAtLWNvbG91ciB8IC0tY29sb3Igc2NyZWVucGFydDpbZm9yZWdyb3VuZF0sW2JhY2tncm91bmRdWzphdHRyWythdHRyKy4uXV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmUgc2NyZWVuIGNvbG91cnMuCgoAUGFja2FnZQBQcmVzcyA8ZW50ZXI+IHRvIGNvbnRpbnVlLgoAUHJlc3MgPyBmb3IgaGVscCBtZW51LCAuIGZvciBuZXh0IHRvcGljLCA8c3BhY2U+IHRvIGV4aXQgaGVscC4AUHJlc3MgYSBrZXkgZnJvbSB0aGUgbGlzdCBhYm92ZSwgPHNwYWNlPiBvciBgcScgdG8gZXhpdCBoZWxwLAogIG9yIGAuJyAoZnVsbCBzdG9wKSB0byByZWFkIGVhY2ggaGVscCBwYWdlIGluIHR1cm4uIABQcmlvcml0eQBQdXJnZWQAUHVyZ2VkIHBhY2thZ2VzIGFuZCB0aG9zZSBuZXZlciBpbnN0YWxsZWQAUXVpdCBkc2VsZWN0LgBRdWl0IHdpdGhvdXQgY2hhbmdpbmcgc2VsZWN0ZWQgYWNjZXNzIG1ldGhvZABRdWl0LCBjb25maXJtaW5nIHdpdGhvdXQgY2hlY2sAUXVpdCwgY29uZmlybWluZywgYW5kIGNoZWNraW5nIGRlcGVuZGVuY2llcwBRdWl0LCByZWplY3RpbmcgY29uZmxpY3QvZGVwZW5kZW5jeSBzdWdnZXN0aW9ucwBSRUlOU1RBTEwAUmVkcmF3IGRpc3BsYXkAUmVtb3ZlIHVud2FudGVkIHNvZnR3YXJlLgBSZW1vdmVkAFJlbW92ZWQgYW5kIG5vIGxvbmdlciBhdmFpbGFibGUgcGFja2FnZXMAUmVtb3ZlZCBwYWNrYWdlcyAoY29uZmlndXJhdGlvbiBzdGlsbCBwcmVzZW50KQBSZXBlYXQgbGFzdCBzZWFyY2guAFJlcQBSZXF1ZXN0IGhlbHAgKGN5Y2xlIHRocm91Z2ggaGVscCBzY3JlZW5zKQBSZXF1ZXN0IHdoaWNoIHBhY2thZ2VzIHlvdSB3YW50IG9uIHlvdXIgc3lzdGVtLgBSZXF1aXJlZABSZXZlcnQgdG8gY3VycmVudGx5IGluc3RhbGxlZCBzdGF0ZSBmb3IgYWxsIHBhY2thZ2VzAFJldmVydCB0byBkaXJlY3RseSByZXF1ZXN0ZWQgc3RhdGUgZm9yIGFsbCBwYWNrYWdlcwBSZXZlcnQgdG8gb2xkIHN0YXRlIGZvciBhbGwgcGFja2FnZXMAUmV2ZXJ0IHRvIHN1Z2dlc3RlZCBzdGF0ZSBmb3IgYWxsIHBhY2thZ2VzAFNjcmVlbnBhcnRzOgoAU2Nyb2xsIGJhY2t3YXJkcyB0aHJvdWdoIGhlbHAvaW5mb3JtYXRpb24AU2Nyb2xsIGJhY2t3YXJkcyB0aHJvdWdoIGhlbHAvaW5mb3JtYXRpb24gYnkgMSBsaW5lAFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBsaXN0AFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBsaXN0IGJ5IDEgbGluZQBTY3JvbGwgb253YXJkcyB0aHJvdWdoIGhlbHAvaW5mb3JtYXRpb24AU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uIGJ5IDEgbGluZQBTY3JvbGwgb253YXJkcyB0aHJvdWdoIGxpc3QAU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBsaXN0IGJ5IDEgbGluZQBTZWFyY2ggZm9yID8gAFNlYXJjaCBmb3IgYSBwYWNrYWdlIHdob3NlIG5hbWUgY29udGFpbnMgYSBzdHJpbmcAU2VjdGlvbgBTZWxlY3QgY3VycmVudGx5LWhpZ2hsaWdodGVkIGFjY2VzcyBtZXRob2QAU2V0IHlvdXIgVEVSTSB2YXJpYWJsZSBjb3JyZWN0bHksIHVzZSBhIGJldHRlciB0ZXJtaW5hbCwKb3IgbWFrZSBkbyB3aXRoIHRoZSBwZXItcGFja2FnZSBtYW5hZ2VtZW50IHRvb2wgJXMuCgBTdGFuZGFyZABTdGQAU3dhcCBzb3J0IG9yZGVyIHByaW9yaXR5L3NlY3Rpb24AVGVybWluYWwgZG9lcyBub3QgYXBwZWFyIHRvIHN1cHBvcnQgY3Vyc29yIGFkZHJlc3NpbmcuCgBUZXJtaW5hbCBkb2VzIG5vdCBhcHBlYXIgdG8gc3VwcG9ydCBoaWdobGlnaHRpbmcuCgBUaGUgbGluZSB5b3UgaGF2ZSBoaWdobGlnaHRlZCByZXByZXNlbnRzIG1hbnkgcGFja2FnZXM7IGlmIHlvdSBhc2sgdG8gaW5zdGFsbCwgcmVtb3ZlLCBob2xkLCBldGMuIGl0IHlvdSB3aWxsIGFmZmVjdCBhbGwgdGhlIHBhY2thZ2VzIHdoaWNoIG1hdGNoIHRoZSBjcml0ZXJpb24gc2hvd24uCgpJZiB5b3UgbW92ZSB0aGUgaGlnaGxpZ2h0IHRvIGEgbGluZSBmb3IgYSBwYXJ0aWN1bGFyIHBhY2thZ2UgeW91IHdpbGwgc2VlIGluZm9ybWF0aW9uIGFib3V0IHRoYXQgcGFja2FnZSBkaXNwbGF5ZWQgaGVyZS4KWW91IGNhbiB1c2UgYG8nIGFuZCBgTycgdG8gY2hhbmdlIHRoZSBzb3J0IG9yZGVyIGFuZCBnaXZlIHlvdXJzZWxmIHRoZSBvcHBvcnR1bml0eSB0byBtYXJrIHBhY2thZ2VzIGluIGRpZmZlcmVudCBraW5kcyBvZiBncm91cHMuAFRoZSB0b3AgaGFsZiBvZiB0aGUgc2NyZWVuIHNob3dzIGEgbGlzdCBvZiBwYWNrYWdlcy4gIEZvciBlYWNoIHBhY2thZ2UgeW91IHNlZQpmb3VyIGNvbHVtbnMgZm9yIGl0cyBjdXJyZW50IHN0YXR1cyBvbiB0aGUgc3lzdGVtIGFuZCBtYXJrLiAgSW4gdGVyc2UgbW9kZSAodXNlCmB2JyB0byB0b2dnbGUgdmVyYm9zZSBkaXNwbGF5KSB0aGVzZSBhcmUgc2luZ2xlIGNoYXJhY3RlcnMsIGZyb20gbGVmdCB0byByaWdodDoKCiBFcnJvciBmbGFnOiBTcGFjZSAtIG5vIGVycm9yIChidXQgcGFja2FnZSBtYXkgYmUgaW4gYnJva2VuIHN0YXRlIC0gc2VlIGJlbG93KQogICAgICAgICAgICAgIGBSJyAgLSBzZXJpb3VzIGVycm9yIGR1cmluZyBpbnN0YWxsYXRpb24sIG5lZWRzIHJlaW5zdGFsbGF0aW9uOwogSW5zdGFsbGVkIHN0YXRlOiAgICAgU3BhY2UgICAgLSBub3QgaW5zdGFsbGVkOwogICAgICAgICAgICAgICAgICAgICAgIGAqJyAgICAgLSBpbnN0YWxsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgYC0nICAgICAtIG5vdCBpbnN0YWxsZWQgYnV0IGNvbmZpZyBmaWxlcyByZW1haW47CiAgIHBhY2thZ2VzIGluIHRoZXNlIHsgYFUnICAgICAtIHVucGFja2VkIGJ1dCBub3QgeWV0IGNvbmZpZ3VyZWQ7CiAgIHN0YXRlcyBhcmUgbm90ICAgIHsgYEMnICAgICAtIGhhbGYtY29uZmlndXJlZCAoYW4gZXJyb3IgaGFwcGVuZWQpOwogICAocXVpdGUpIHByb3Blcmx5ICB7IGBJJyAgICAgLSBoYWxmLWluc3RhbGxlZCAoYW4gZXJyb3IgaGFwcGVuZWQpOwogICBpbnN0YWxsZWQgICAgICAgICB7IGBXJyxgdCcgLSB0cmlnZ2VycyBhcmUgYXdhaXRlZCByZXNwLiBwZW5kaW5nLgogT2xkIG1hcms6IHdoYXQgd2FzIHJlcXVlc3RlZCBmb3IgdGhpcyBwYWNrYWdlIGJlZm9yZSBwcmVzZW50aW5nIHRoaXMgbGlzdDsKIE1hcms6IHdoYXQgaXMgcmVxdWVzdGVkIGZvciB0aGlzIHBhY2thZ2U6CiAgYConOiBtYXJrZWQgZm9yIGluc3RhbGxhdGlvbiBvciB1cGdyYWRlOwogIGAtJzogbWFya2VkIGZvciByZW1vdmFsLCBidXQgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgd2lsbCByZW1haW47CiAgYD0nOiBvbiBob2xkOiBwYWNrYWdlIHdpbGwgbm90IGJlIHByb2Nlc3NlZCBhdCBhbGw7CiAgYF8nOiBtYXJrZWQgZm9yIHB1cmdlIGNvbXBsZXRlbHkgLSBldmVuIHJlbW92ZSBjb25maWd1cmF0aW9uOwogIGBuJzogcGFja2FnZSBpcyBuZXcgYW5kIGhhcyB5ZXQgdG8gYmUgbWFya2VkIGZvciBpbnN0YWxsL3JlbW92ZS8mYy4KCkFsc28gZGlzcGxheWVkIGFyZSBlYWNoIHBhY2thZ2UncyBQcmlvcml0eSwgU2VjdGlvbiwgbmFtZSwgaW5zdGFsbGVkIGFuZAphdmFpbGFibGUgdmVyc2lvbiBudW1iZXJzIChzaGlmdC1WIHRvIGRpc3BsYXkvaGlkZSkgYW5kIHN1bW1hcnkgZGVzY3JpcHRpb24uCgBUeXBlIGRzZWxlY3QgLS1oZWxwIGZvciBoZWxwLgBVbmNsYXNzaWZpZWQAVXAgdG8gZGF0ZSBpbnN0YWxsZWQgcGFja2FnZXMAVXAtdG8tZGF0ZQBVcGRhdGUgbGlzdCBvZiBhdmFpbGFibGUgcGFja2FnZXMsIGlmIHBvc3NpYmxlLgBVcGRhdGVkAFVwZGF0ZWQgcGFja2FnZXMgKG5ld2VyIHZlcnNpb24gaXMgYXZhaWxhYmxlKQBVc2FnZTogJXMgWzxvcHRpb24+IC4uLl0gWzxhY3Rpb24+IC4uLl0KCgBXZWxjb21lIHRvIGRzZWxlY3QncyBtYWluIHBhY2thZ2UgbGlzdGluZy4KCllvdSB3aWxsIGJlIHByZXNlbnRlZCB3aXRoIGEgbGlzdCBvZiBwYWNrYWdlcyB3aGljaCBhcmUgaW5zdGFsbGVkIG9yIGF2YWlsYWJsZQpmb3IgaW5zdGFsbGF0aW9uLiAgU2luY2UgeW91IGRvIG5vdCBoYXZlIHRoZSBwcml2aWxlZ2UgbmVjZXNzYXJ5IHRvIHVwZGF0ZQpwYWNrYWdlIHN0YXRlcywgeW91IGFyZSBpbiBhIHJlYWQtb25seSBtb2RlLiAgWW91IGNhbiBuYXZpZ2F0ZSBhcm91bmQgdGhlCmxpc3QgdXNpbmcgdGhlIGN1cnNvciBrZXlzIChwbGVhc2Ugc2VlIHRoZSBgS2V5c3Ryb2tlcycgaGVscCBzY3JlZW4pLCBvYnNlcnZlCnRoZSBzdGF0dXMgb2YgdGhlIHBhY2thZ2VzIGFuZCByZWFkIGluZm9ybWF0aW9uIGFib3V0IHRoZW0uCgpZb3Ugc2hvdWxkIHJlYWQgdGhlIGxpc3Qgb2Yga2V5cyBhbmQgdGhlIGV4cGxhbmF0aW9ucyBvZiB0aGUgZGlzcGxheS4KTXVjaCBvbi1saW5lIGhlbHAgaXMgYXZhaWxhYmxlLCBwbGVhc2UgbWFrZSB1c2Ugb2YgaXQgLSBwcmVzcyBgPycgYXQKYW55IHRpbWUgZm9yIGhlbHAuCgpXaGVuIHlvdSBoYXZlIGZpbmlzaGVkIGJyb3dzaW5nLCBwcmVzcyBgUScgb3IgPGVudGVyPiB0byBxdWl0LgoKUHJlc3MgPHNwYWNlPiB0byBsZWF2ZSBoZWxwIGFuZCBlbnRlciB0aGUgbGlzdCBub3cuCgBXZWxjb21lIHRvIGRzZWxlY3QncyBtYWluIHBhY2thZ2UgbGlzdGluZy4KCllvdSB3aWxsIGJlIHByZXNlbnRlZCB3aXRoIGEgbGlzdCBvZiBwYWNrYWdlcyB3aGljaCBhcmUgaW5zdGFsbGVkIG9yIGF2YWlsYWJsZQpmb3IgaW5zdGFsbGF0aW9uLiAgWW91IGNhbiBuYXZpZ2F0ZSBhcm91bmQgdGhlIGxpc3QgdXNpbmcgdGhlIGN1cnNvciBrZXlzLAptYXJrIHBhY2thZ2VzIGZvciBpbnN0YWxsYXRpb24gKHVzaW5nIGArJykgb3IgZGVpbnN0YWxsYXRpb24gKHVzaW5nIGAtJykuClBhY2thZ2VzIGNhbiBiZSBtYXJrZWQgZWl0aGVyIHNpbmdseSBvciBpbiBncm91cHM7IGluaXRpYWxseSB5b3Ugd2lsbCBzZWUgdGhhdAp0aGUgbGluZSBgQWxsIHBhY2thZ2VzJyBpcyBzZWxlY3RlZC4gIGArJywgYC0nIGFuZCBzbyBvbiB3aWxsIGFmZmVjdCBhbGwgdGhlCnBhY2thZ2VzIGRlc2NyaWJlZCBieSB0aGUgaGlnaGxpZ2h0ZWQgbGluZS4KClNvbWUgb2YgeW91ciBjaG9pY2VzIHdpbGwgY2F1c2UgY29uZmxpY3RzIG9yIGRlcGVuZGVuY3kgcHJvYmxlbXM7IHlvdSB3aWxsIGJlCmdpdmVuIGEgc3ViLWxpc3Qgb2YgdGhlIHJlbGV2YW50IHBhY2thZ2VzLCBzbyB0aGF0IHlvdSBjYW4gc29sdmUgdGhlIHByb2JsZW1zLgoKWW91IHNob3VsZCByZWFkIHRoZSBsaXN0IG9mIGtleXMgYW5kIHRoZSBleHBsYW5hdGlvbnMgb2YgdGhlIGRpc3BsYXkuCk11Y2ggb24tbGluZSBoZWxwIGlzIGF2YWlsYWJsZSwgcGxlYXNlIG1ha2UgdXNlIG9mIGl0IC0gcHJlc3MgYD8nIGF0CmFueSB0aW1lIGZvciBoZWxwLgoKV2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBzZWxlY3RpbmcgcGFja2FnZXMsIHByZXNzIDxlbnRlcj4gdG8gY29uZmlybSBjaGFuZ2VzLApvciBgWCcgdG8gcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzLiBBIGZpbmFsIGNoZWNrIG9uIGNvbmZsaWN0cyBhbmQKZGVwZW5kZW5jaWVzIHdpbGwgYmUgZG9uZSAtIGhlcmUgdG9vIHlvdSBtYXkgc2VlIGEgc3VibGlzdC4KClByZXNzIDxzcGFjZT4gdG8gbGVhdmUgaGVscCBhbmQgZW50ZXIgdGhlIGxpc3Qgbm93LgoAWHRyAFtBXWNjZXNzAFtDXW9uZmlnAFtJXW5zdGFsbABbUV11aXQAW1JdZW1vdmUAW1NdZWxlY3QAW1VdcGRhdGUAW25vdCBib3VuZF0AW3VuazogJWRdAGEAYXdhaXRpbmcgdHJpZ2dlciBwcm9jZXNzaW5nAGJVRwBicmVha3MAYwBjb2xvdXIAY29sb3VyIGF0dHJpYnV0ZQBjb25mbGljdHMgd2l0aABjb3VsZG4ndCBvcGVuIGRlYnVnIGZpbGUgYCUuMjU1cycKAGRlcGVuZHMgb24AZG91cGRhdGUgZmFpbGVkAGRvdXBkYXRlIGluIFNJR1dJTkNIIGhhbmRsZXIgZmFpbGVkAGRzZWxlY3QgLSBpbnNwZWN0aW9uIG9mIHBhY2thZ2Ugc3RhdGVzAGRzZWxlY3QgLSBsaXN0IG9mIGFjY2VzcyBtZXRob2RzAGRzZWxlY3QgLSBtYWluIHBhY2thZ2UgbGlzdGluZwBkc2VsZWN0IC0gcmVjdXJzaXZlIHBhY2thZ2UgbGlzdGluZwBkc2VsZWN0IGFuZCBkcGtnIGNhbiBkbyBhdXRvbWF0aWMgaW5zdGFsbGF0aW9uLCBsb2FkaW5nIHRoZSBwYWNrYWdlIGZpbGVzIHRvIGJlCmluc3RhbGxlZCBmcm9tIG9uZSBvZiBhIG51bWJlciBvZiBkaWZmZXJlbnQgcG9zc2libGUgcGxhY2VzLgoKVGhpcyBsaXN0IGFsbG93cyB5b3UgdG8gc2VsZWN0IG9uZSBvZiB0aGVzZSBpbnN0YWxsYXRpb24gbWV0aG9kcy4KCk1vdmUgdGhlIGhpZ2hsaWdodCB0byB0aGUgbWV0aG9kIHlvdSB3aXNoIHRvIHVzZSwgYW5kIGhpdCBFbnRlci4gIFlvdSB3aWxsIHRoZW4KYmUgcHJvbXB0ZWQgZm9yIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBkbyB0aGUgaW5zdGFsbGF0aW9uLgoKQXMgeW91IG1vdmUgdGhlIGhpZ2hsaWdodCBhIGRlc2NyaXB0aW9uIG9mIGVhY2ggbWV0aG9kLCB3aGVyZSBhdmFpbGFibGUsIGlzCmRpc3BsYXllZCBpbiB0aGUgYm90dG9tIGhhbGYgb2YgdGhlIHNjcmVlbi4KCklmIHlvdSB3aXNoIHRvIHF1aXQgd2l0aG91dCBjaGFuZ2luZyBhbnl0aGluZyB1c2UgdGhlIGB4JyBrZXkgd2hpbGUgaW4gdGhlIGxpc3QKb2YgaW5zdGFsbGF0aW9uIG1ldGhvZHMuCgpBIGZ1bGwgbGlzdCBvZiBrZXlzdHJva2VzIGlzIGF2YWlsYWJsZSBieSBwcmVzc2luZyBgaycgbm93LCBvciBmcm9tIHRoZSBoZWxwCm1lbnUgcmVhY2hhYmxlIGJ5IHByZXNzaW5nIGA/Jy4KAGVuaGFuY2VzAGVycm9yIGR1cmluZyByZWFkIG9mIG1ldGhvZCBvcHRpb25zIGZpbGUgYCUuMjUwcycAZXJyb3IgZHVyaW5nIHJlYWQgb2Ygb3B0aW9uIGRlc2NyaXB0aW9uIGZpbGUgYCUuMjUwcycAZXJyb3IgaW4gcmVndWxhciBleHByZXNzaW9uAGVycm9yIHJlYWRpbmcgYWNrbm93bGVkZ2VtZW50IG9mIHByb2dyYW0gZmFpbHVyZSBtZXNzYWdlAGVycm9yIHJlYWRpbmcga2V5Ym9hcmQgaW4gaGVscABlcnJvciByZWFkaW5nIG9wdGlvbnMgZmlsZSBgJS4yNTBzJwBmYWlsZWQgdG8gYWxsb2NhdGUgY29sb3VyIHBhaXIAZmFpbGVkIHRvIGJsb2NrIFNJR1dJTkNIAGZhaWxlZCB0byBjcmVhdGUgYmFzZWxpc3QgcGFkAGZhaWxlZCB0byBjcmVhdGUgaGVhZGluZyBwYWQAZmFpbGVkIHRvIGNyZWF0ZSBpbmZvIHBhZABmYWlsZWQgdG8gY3JlYXRlIHF1ZXJ5IHdpbmRvdwBmYWlsZWQgdG8gY3JlYXRlIHRoaXNzdGF0ZSBwYWQAZmFpbGVkIHRvIGNyZWF0ZSB0aXRsZSB3aW5kb3cAZmFpbGVkIHRvIGNyZWF0ZSB3aGF0aW5mbyB3aW5kb3cAZmFpbGVkIHRvIGdldCBvbGQgU0lHV0lOQ0ggc2lnYWN0AGZhaWxlZCB0byBnZXQgb2xkIHNpZ25hbCBtYXNrAGZhaWxlZCB0byBnZXRjaCBpbiBtYWluIG1lbnUAZmFpbGVkIHRvIHJlLWJsb2NrIFNJR1dJTkNIAGZhaWxlZCB0byByZWFkIG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAGZhaWxlZCB0byByZXN0b3JlIG9sZCBTSUdXSU5DSCBzaWdhY3QAZmFpbGVkIHRvIHJlc3RvcmUgb2xkIHNpZ25hbCBtYXNrAGZhaWxlZCB0byBzZXQgbmV3IFNJR1dJTkNIIHNpZ2FjdABmYWlsZWQgdG8gdW5ibG9jayBTSUdXSU5DSABnZXRjaCBmYWlsZWQAaGFsZiBpbnN0YWxsZWQAaG9sZABpAGluZGV4IHN0cmluZyB0b28gbG9uZwBpbnN0YWxsAGluc3RhbGxhdGlvbiBzY3JpcHQAaW5zdGFsbGVkAGludmFsaWQgc2VhcmNoIG9wdGlvbiBnaXZlbgBpb2N0bChUSU9DR1dJTlNaKSBmYWlsZWQAbWVudQBtZXRob2QgYCUuMjUwcycgaGFzIG5hbWUgdGhhdCBpcyB0b28gbG9uZyAoJWQgPiAlZCBjaGFyYWN0ZXJzKQBuZXcgcGFja2FnZQBuZXdsaW5lIGJlZm9yZSBvcHRpb24gbmFtZSBzdGFydABuZXdsaW5lIGJlZm9yZSBzdW1tYXJ5AG5vbi1hbHBoYW51bSBpbiBvcHRpb24gbmFtZQBub24tZGlnaXQgd2hlcmUgZGlnaXQgd2FudGVkAG5vbmFscGhhIHdoZXJlIG9wdGlvbiBuYW1lIHN0YXJ0IHdhbnRlZABub3QgaW5zdGFsbGVkAHByZS1kZXBlbmRzIG9uAHByb3ZpZGVzAHB1cmdlAHEAcXVlcnkvc2V0dXAgc2NyaXB0AHIAcmVjb21tZW5kcwByZW1vdmUAcmVtb3ZlZCAoY29uZmlncyByZW1haW4pAHJlcGxhY2VzAHMAc2NyZWVuIHBhcnQAc3VnZ2VzdHMAc3ludGF4IGVycm9yIGluIG1ldGhvZCBvcHRpb25zIGZpbGUgYCUuMjUwcycgLS0gJXMAdGVybWluYWwgbGFja3MgbmVjZXNzYXJ5IGZlYXR1cmVzLCBnaXZpbmcgdXAAdHJpZ2dlcmVkAHUAdW5hYmxlIHRvIGFjY2VzcyBtZXRob2Qgc2NyaXB0IGAlLjI1MHMnAHVuYWJsZSB0byBjbG9zZSBuZXcgb3B0aW9uIGZpbGUgYCUuMjUwcycAdW5hYmxlIHRvIGluc3RhbGwgbmV3IG9wdGlvbiBhcyBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBjdXJyZW50IG9wdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBvcGVuIG5ldyBvcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gcmVhZCBgJS4yNTBzJyBkaXJlY3RvcnkgZm9yIHJlYWRpbmcgbWV0aG9kcwB1bmFibGUgdG8gcmVhZCBtZXRob2Qgb3B0aW9ucyBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBzdGF0IG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byB3cml0ZSBuZXcgb3B0aW9uIHRvIGAlLjI1MHMnAHVua25vd24gYWN0aW9uIHN0cmluZyBgJS41MHMnAHVucGFja2VkIChub3Qgc2V0IHVwKQB1cGRhdGUgYXZhaWxhYmxlIGxpc3Qgc2NyaXB0AFByb2plY3QtSWQtVmVyc2lvbjogZHBrZyAxLjEzClJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBkZWJpYW4tZHBrZ0BsaXN0cy5kZWJpYW4ub3JnClBPVC1DcmVhdGlvbi1EYXRlOiAyMDExLTEwLTE0IDA3OjExKzAyMDAKUE8tUmV2aXNpb24tRGF0ZTogMjAwOC0wNi0wOSAwMjo1My0wMzAwCkxhc3QtVHJhbnNsYXRvcjogRmVsaXBlIEF1Z3VzdG8gdmFuIGRlIFdpZWwgPGZhd0BkZWJpYW4ub3JnPgpMYW5ndWFnZS1UZWFtOiBCcmF6aWxpYW4gUG9ydHVndWVzZSA8ZGViaWFuLWwxMG4tcG9ydHVndWVzZUBsaXN0cy5kZWJpYW4ub3JnPgpMYW5ndWFnZTogcHRfQlIKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDgtYml0CgAKCiVzOiAlcwoACgpNb3ZhLXNlIGNvbSBeUCBlIF5OLCB0ZWNsYXMgZGlyZWNpb25haXMsIGxldHJhcyBpbmljaWFpcywgb3UgZMOtZ2l0b3M7ClByZXNzaW9uZSA8ZW50ZXI+IHBhcmEgY29uZmlybWFyIGEgc2VsZcOnw6NvLiAgIF5MIHJlZGVzZW5oYSBhIHRlbGEuCgAKCkFjZXNzbyBzb21lbnRlLWxlaXR1cmE6IGFwZW5hcyBhIHByw6ktdmlzdWFsaXphw6fDo28gZGFzIHNlbGXDp8O1ZXMgZXN0w6EgZGlzcG9uw612ZWwhAApQcmVzc2lvbmUgPGVudGVyPiBwYXJhIGNvbnRpbnVhci4AIAAgIC0tICVkJSUsIHByZXNzaW9uZSAAIChvcmRlbSBhbGZhYsOpdGljYSkAIChkaXNwLiwgcHJpb3JpZGFkZSkAIChkaXNwLiwgc2XDp8OjbykAIChwb3IgZGlzcG9uaWJpbGlkYWRlKQAgKHBvciBwcmlvcmlkYWRlKQAgKHBvciBzZcOnw6NvKQAgKHBvciBlc3RhZG8pACAoZXN0YWRvLCBwcmlvcmlkYWRlKQAgKGVzdGFkbywgc2XDp8OjbykAIG7Do28gcGFyZWNlIGVzdGFyIGRpc3BvbsOtdmVsCgAgbWFyY2E6Ky89Ly0gcmVzdW1vOnYgYWp1ZGE6PwAgbWFyY2E6Ky89Ly0gZGV0YWxoYWRvOnYgYWp1ZGE6PwAgb3UgACByZXN1bW86diBhanVkYTo/ACBkZXRhbGhhZG86diBhanVkYTo/ACFCdWchACUtKnMgJXMlcyVzOyAgJXMgKGVyYTogJXMpLiAgJXMAUGFjb3RlcyAlcyAlcwBQYWNvdGVzICVzICVzIG5hIHNlw6fDo28gJXMAUGFjb3RlcyAlcyAlcyBzZW0gc2XDp8OjbwAlcyBwYXJhIG1haXMAUGFjb3RlcyAlcyBuYSBzZcOnw6NvICVzAFBhY290ZXMgJXMgc2VtIHNlw6fDo28AJXMgcGFyYSB2b2x0YXIAKiBSZWFsY2U6IFVtYSBsaW5oYSBuYSBsaXN0YSBkZSBwYWNvdGVzIHNlcsOhIHJlYWzDp2FkYS4gRWxhIGluZGljYQogIHF1YWwoaXMpIHBhY290ZShzKSBzZXLDoSjDo28pIGFmZXRhZG8ocykgcGVsYXMgdGVjbGFzICcrJywgJy0nIGUgJ18nLgoKKiBBIGxpbmhhIGRpdmlzw7NyaWEgbm8gbWVpbyBkYSB0ZWxhIG1vc3RyYSB1bWEgZXhwbGljYcOnw6NvIGJyZXZlIGRvIGVzdGFkbwogIGRvIHBhY290ZSBhdHVhbG1lbnRlIHJlYWzDp2Fkbywgb3UgdW1hIGRlc2NyacOnw6NvIGRvIGdydXBvIHF1ZSBlc3RpdmVyCiAgcmVhbMOnYWRvLCBzZSBmb3IgdW1hIGxpbmhhIGRlIGdydXBvLiBTZSB2b2PDqiBuw6NvIGVudGVuZGVyIG8gc2lnbmlmaWNhZG8KICBkZSBhbGd1bnMgZG9zIGNhcmFjdGVyZXMgZGUgZXN0YWRvIG1vc3RyYWRvcywgdsOhIGFvIHBhY290ZSBlbSBxdWVzdMOjbyBlCiAgb2xoZSBwYXJhIGVzdGEgbGluaGEgZGl2aXPDs3JpYSwgb3UgdXNlIGEgdGVjbGEgJ3YnIHBhcmEgdW1hIGV4aWJpw6fDo28KICBtYWlzIHZlcmJvc2EgKHByZXNzaW9uZSAndicgbm92YW1lbnRlIHBhcmEgdm9sdGFyIGFvIG1vZG8gcmVzdW1pZG8pLgoKKiBBIHBhcnRlIGRlIGJhaXhvIGRhIHRlbGEgbW9zdHJhIG1haXMgaW5mb3JtYcOnw7VlcyBzb2JyZSBvIHBhY290ZQogIGF0dWFsbWVudGUgcmVhbMOnYWRvIChzZSBob3V2ZXIgc29tZW50ZSB1bSkuCgogIEVsYSBwb2RlIG1vc3RyYXIgdW1hIGRlc2NyacOnw6NvIG1haXMgbG9uZ2EgZG8gcGFjb3RlLCBvcyBkZXRhbGhlcyBpbnRlcm5vcwogIGRlIGNvbnRyb2xlIGRvIHBhY290ZSAob3UgcGFyYSBhIHZlcnPDo28gaW5zdGFsYWRhIG91IHBhcmEgYSB2ZXJzw6NvCiAgZGlzcG9uw612ZWwgZG8gcGFjb3RlKSwgb3UgaW5mb3JtYcOnw6NvIHNvYnJlIGNvbmZsaXRvcyBlIGRlcGVuZMOqbmNpYXMKICBlbnZvbHZlbmRvIG8gcGFjb3RlIGF0dWFsIChlbSBzdWItbGlzdGFzIGRlIHJlc29sdcOnw6NvIGRlCiAgY29uZmxpdG9zL2RlcGVuZMOqbmNpYXMpLgoKICBVc2UgYSB0ZWNsYSAnaScgcGFyYSBjaXJjdWxhciBwZWxhcyB0ZWxhcywgZSAnSScgcGFyYSBvY3VsdGFyIGEgdGVsYSBkZQogIGluZm9ybWHDp8O1ZXMgb3UgZXhwYW5kw60tbGEgcG9yIHF1YXNlIHRvZGEgYSB0ZWxhLgoAPwBBYnJldi4AQWJvcnRhciAtIHNhaXIgc2VtIGZhemVyIG11ZGFuw6dhcwBNw6l0b2RvIGRlIGFjZXNzbyAnJXMnLgBBw6fDtWVzIDoKICBhY2Nlc3MgdXBkYXRlIHNlbGVjdCBpbnN0YWxsIGNvbmZpZyByZW1vdmUgcXVpdAoKAFRvZG9zAFRvZG9zIG9zIHBhY290ZXMAQXRyaWJ1dG9zOgoAVmVyLmRpc3AuAERpc3BvbsOtdmVpcwBJbmZvcm1hw6fDo28gZG8gYXJxdWl2byBkZSBjb250cm9sZSBkaXNwb27DrXZlbABQYWNvdGVzIGRpc3BvbsOtdmVpcyAobsOjbyBpbnN0YWxhZG9zIG5vIG1vbWVudG8pAFF1ZWJyYWRvAFBhY290ZXMgaW5zdGFsYWRvcyBxdWVicmFkb3MARXNjb2xoZXIgbyBtw6l0b2RvIGRlIGFjZXNzbyBhIHVzYXIuAENvcmVzOgoAQ29uZmlndXJhciBxdWFpc3F1ZXIgcGFjb3RlcyBxdWUgZXN0ZWphbSBkZXNjb25maWd1cmFkb3MuAENvcHlyaWdodCAoQykgMTk5NC0xOTk2IElhbiBKYWNrc29uLgpDb3B5cmlnaHQgKEMpIDIwMDAsMjAwMSBXaWNoZXJ0IEFra2VybWFuLgoAUGVyY29ycmVyIGFzIHRlbGFzIGRlIGluZm9ybWHDp8O1ZXMASW50ZXJmYWNlIGRvIGdlcmVuY2lhZG9yIGRlIHBhY290ZXMgZG8gRGViaWFuICclcycgdmVyc8OjbyAlcy4KAFJlc29sdcOnw6NvIGRlIGRlcGVuZMOqbmNpYXMvY29uZmxpdG9zIC0gaW50cm9kdcOnw6NvLgoKVW1hIG91IG1haXMgZGUgc3VhcyBlc2NvbGhhcyBmaXplcmFtIHN1cmdpciB1bSBwcm9ibGVtYSBkZSBjb25mbGl0byBvdSBkZQpkZXBlbmTDqm5jaWEgLSBhbGd1bnMgcGFjb3RlcyBzw7MgZGV2ZW0gc2VyIGluc3RhbGFkb3MgZW0gY29uanVudG8gY29tIG91dHJvcywKZSBhbGd1bWFzIGNvbWJpbmHDp8O1ZXMgZGUgcGFjb3RlcyBuw6NvIHBvZGVtIHNlciBpbnN0YWxhZGFzIGFvIG1lc21vIHRlbXBvLgoKVm9jw6ogdmVyw6EgdW1hIHN1Yi1saXN0YSBjb250ZW5kbyBvcyBwYWNvdGVzIGVudm9sdmlkb3MuICBBIG1ldGFkZSBkZSBiYWl4byBkYQp0ZWxhIG1vc3RyYSBjb25mbGl0b3MgZSBkZXBlbmTDqm5jaWFzIHJlbGV2YW50ZXM7IHVzZSAnaScgcGFyYSBjaXJjdWxhciBlbnRyZQplc3NlcywgYXMgZGVzY3Jpw6fDtWVzIGRvcyBwYWNvdGVzIGUgYXMgaW5mb3JtYcOnw7VlcyBkZSBjb250cm9sZSBpbnRlcm5hcy4KClVtIGNvbmp1bnRvIGRlIHBhY290ZXMgJ3N1Z2VyaWRvcycgZm9pIGNhbGN1bGFkbywgZSBhcyBtYXJjYcOnw7VlcyBpbmljaWFpcyBuZXNzYQpzdWItbGlzdGEgZm9yYW0gZGVmaW5pZGFzIHBhcmEgY29tYmluYXIgY29tIGFxdWVsYXMsIHBhcmEgcXVlIHZvY8OqIHBvc3NhIGFwZW5hcwpwcmVzc2lvbmFyIEVudGVyIHBhcmEgYWNlaXRhciBhcyBzdWdlc3TDtWVzLCBzZSBhc3NpbSBkZXNlamFyLiBWb2PDqiBwb2RlIGFib3J0YXIKYShzKSBtdWRhbsOnYShzKSBxdWUgY2F1c291L2NhdXNhcmFtIG8ocykgcHJvYmxlbWEocyksIGUgdm9sdGFyIHBhcmEgYSBsaXN0YQpwcmluY2lwYWwsIHByZXNzaW9uYW5kbyAnWCcgbWFpw7pzY3Vsby4KClZvY8OqIHRhbWLDqW0gcG9kZSBtb3ZpbWVudGFyLXNlIHBlbGEgbGlzdGEgZSBtdWRhciBhcyBtYXJjYcOnw7VlcyBkZSBtb2RvIHF1ZSBlbGFzCmZpcXVlbSBtYWlzIGRlIGFjb3JkbyBjb20gbyBxdWUgdm9jw6ogcXVlciwgZSB2b2PDqiBwb2RlICdyZWplaXRhcicgbWluaGFzCnN1Z2VzdMO1ZXMgdXNhbmRvIGFzIHRlY2xhcyAnRCcgb3UgJ1InIG1hacO6c2N1bGFzICh2ZWphIGEgdGVsYSBkZSBhanVkYSBkZQpUZWNsYXMgZGUgQXRhbGhvKS4gVm9jw6ogcG9kZSB1c2FyICdRJyBtYWnDunNjdWxvIHBhcmEgbWUgZm9yw6dhciBhIGFjZWl0YXIgYQpzaXR1YcOnw6NvIGNvbW8gZWxhIGVzdMOhLCBjYXNvIHZvY8OqIHF1ZWlyYSBpZ25vcmFyIHVtYSByZWNvbWVuZGHDp8OjbyBvdSBwZW5zYXIKcXVlIG8gcHJvZ3JhbWEgZXN0w6EgZXJyYWRvLgoKUHJlc3Npb25lIDxlc3Bhw6dvPiBwYXJhIHNhaXIgZGEgYWp1ZGEgZSBlbnRyYXIgbmEgc3ViLWxpc3RhOyBsZW1icmUtc2U6CnByZXNzaW9uZSAnPycgcGFyYSBhanVkYS4KAERlc2NyacOnw6NvAFRlbGEsIHBhcnRlIDE6IGxpc3RhIGRlIHBhY290ZXMgZSBjYXJhY3RlcmVzIGRlIGVzdGFkbwBUZWxhLCBwYXJ0ZSAyOiByZWFsY2VzIG5hIGxpc3RhOyB0ZWxhIGRlIGluZm9ybWHDp8OjbwBFSU9NAEVPRiBhbnRlcyBkbyBpbsOtY2lvIGRvIG5vbWUgZGEgb3DDp8OjbwBFT0YgYW50ZXMgZG8gc3Vtw6FyaW8ARU9GIG5vIMOtbmRpY2UgZGEgc3RyaW5nAEVPRiBubyBub21lIGRhIG9ww6fDo28ARU9GIG5vIHN1bcOhcmlvIC0gbm92YSBsaW5oYSBmYWx0YW5kbwBFcnJvAEVycm86IABFeHBsaWNhw6fDo28gZGUARXh0cmFzAElyIGFvIGZpbSBkYSBsaXN0YQBJciBhbyB0b3BvIGRhIGxpc3RhAEluZm9ybWHDp8O1ZXMgZGUgYWp1ZGEgZXN0w6NvIGRpc3BvbsOtdmVpcyBub3Mgc2VndWludGVzIHTDs3BpY29zOgBBanVkYTogAEltcABJbXBvcnRhbnRlcwBWZXIuaW5zdC4ASW5zdGFsYXIgZSBhdHVhbGl6YXIgcGFjb3RlcyBkZXNlamFkb3MuAEluc3RhbGFkbwBJbmZvcm1hw6fDo28gZG8gYXJxdWl2byBkZSBjb250cm9sZSBpbnN0YWxhZG8AUGFjb3RlcyBpbnN0YWxhZG9zAEluc3RhbGFkbz8ASW50ZXItcmVsYcOnw7VlcwBJbnRyb2R1w6fDo28gw6Agc3ViLWxpc3RhIGRlIHJlc29sdcOnw6NvIGRlIGNvbmZsaXRvcy9kZXBlbmTDqm5jaWFzAEludHJvZHXDp8OjbyDDoCB0ZWxhIGRlIHNlbGXDp8OjbyBkZSBtw6l0b2RvcwBJbnRyb2R1w6fDo28gw6BzIHNlbGXDp8O1ZXMgZGUgcGFjb3RlcwBJbnRyb2R1w6fDo28gYW8gbmF2ZWdhZG9yIGRhIGxpc3RhIGRlIHBhY290ZXMgc29tZW50ZS1sZWl0dXJhACVzIGludsOhbGlkbyAnJXMnCgBBc3NvY2lhw6fDtWVzIGRlIHRlY2xhcwBUZWNsYXMgZGUgYXRhbGhvAFRlY2xhcyBwYXJhIHNlbGXDp8OjbyBkZSBtw6l0b2RvAEZhemVyIHJlYWxjZSBtZW5vcyBlc3BlY8OtZmljbwBGYXplciByZWFsY2UgbWFpcyBlc3BlY8OtZmljbwBNYXJjYXIgcGFjb3RlKHMpIHBhcmEgZGVzaW5zdGFsYcOnw6NvIGUgZXhwdXJnYW1lbnRvAE1hcmNhciBwYWNvdGUocykgcGFyYSBkZXNpbnN0YWxhw6fDo28ATWFyY2FyIHBhY290ZShzKSBwYXJhIGluc3RhbGHDp8OjbwBNYXJjYWRvIHBhcmEAVGVjbGFzIGRlIG1vdmltZW50YcOnw6NvOiBQcsOzeGltby9BbnRlcmlvciwgVG9wby9GaW0sIENpbWEvQmFpeG8sIFRyw6FzL0ZyZW50ZToKICBqLCBTZXRhLWFiYWl4byAgICAgICAgaywgU2V0YS1hY2ltYSAgICAgICAgICAgbW92ZSByZWFsY2UKICBOLCBQYWdlLWRvd24sIEVzcGHDp28gIFAsIFBhZ2UtdXAsIEJhY2tzcGFjZSAgIHJvbGEgbGlzdGEgZW0gMSBww6FnaW5hCiAgXm4gICAgICAgICAgICAgICAgICAgIF5wICAgICAgICAgICAgICAgICAgICAgIHJvbGEgbGlzdGEgZW0gMSBsaW5oYQogIHQsIEhvbWUgICAgICAgICAgICAgICBlLCBFbmQgICAgICAgICAgICAgICAgICBwdWxhIHBhcmEgdG9wby9maW0gZGEgbGlzdGEKICB1ICAgICAgICAgICAgICAgICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgcm9sYSBpbmZvcm1hw6fDo28gZW0gMSBww6FnaW5hCiAgXnUgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgIHJvbGEgaW5mb3JtYcOnw6NvIGVtIDEgbGluaGEKICBCLCBTZXRhLcOgLWVzcXVlcmRhICAgIEYsIFNldGEtw6AtZGlyZWl0YSAgICAgICByb2xhIDEvMyBkYSB0ZWxhIHBhcmEgbyBsYWRvCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgIHJvbGEgMSBjYXJhY3RlciBwYXJhIG8gbGFkbwoKTWFyY2EgcGFjb3RlcyBwYXJhIHByb2Nlc3NhbWVudG8gcG9zdGVyaW9yOgogKywgSW5zZXJlICBpbnN0YWxhIG91IGF0dWFsaXphICAgICA9LCBIICByZXRlciBubyBlc3RhZG8gYXR1YWwKIC0sIEV4Y2x1aSAgcmVtb3ZlICAgICAgICAgICAgICAgICAgOiwgRyAgbGliZXJhcjogYXR1YWxpemFyIG91IGRlaXhhciBkZXNpbnN0LgogXyAgICAgICAgICByZW1vdmVyIGUgZXhwdXJnYXIgY29uZmlndXJhw6fDo28KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzY2Vsw6JuZWE6ClNhaXIgKFEpLCBzb2JyZXNjcmV2ZXIgKG5vdGUgbWFpw7pzY3VsYXMhKSAgICAgPywgRjEgc29saWNpdGFyIGFqdWRhICh0YW1iw6ltCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBanVkYSAoSCkpCiBFbnRlciAgIENvbmZpcm1hLCBzYWkgKGNoZWNhIGRlcGVuZMOqbmNpYXMpICAgaSwgSSAgYWx0ZXJuYXIvcGVyY29ycmVyIHRlbGFzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZSBpbmZvcm1hw6fDtWVzCiAgIFEgICAgIENvbmZpcm1hLCBzYWkgKHNvYnJlcMO1ZSBkZXBlbmQuKSAgICAgbywgTyAgcGVyY29ycmVyIGF0cmF2w6lzIGRhcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3DDp8O1ZXMgZGUgb3JkZW5hw6fDo28KIFgsIEVzYyAgU2FpciAoWCksIGFiYW5kb25hbmRvIG11ZGFuw6dhcyAgICAgICB2LCBWICBtdWRhIG9ww6fDtWVzIGRlIGVzdGFkbyBkZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpYmnDp8OjbwogICBSICAgICBSZXZlcnRlIGFvIGVzdGFkbyBhbnRlcmlvciAgICAgICAgICAgIF5sICAgcmVkZXNlbmhhciB0ZWxhCiAgIFUgICAgIGNvbG9jYXIgdHVkbyBubyBlc3RhZG8gc1VnZXJpZG8gICAgICAgIC8gICBwcm9jdXJhciAoRW50ZXIgcGFyYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsYXIpCiAgIEQgICAgIGNvbmZpZ3VyYXIgdHVkbyBwYXJhIG8gZXN0YWRvCiAgICAgICAgIGVzdGFkbyBEaXJldGFtZW50ZSByZXF1aXNpdGFkbyAgICAgICBuLCBcICByZXBldGlyIMO6bHRpbWEgYnVzY2EKAFRlY2xhcyBkZSBtb3ZpbWVudGHDp8OjbzogUHLDs3hpbW8vQW50ZXJpb3IsIFRvcG8vRmltLCBDaW1hL0JhaXhvLCBUcsOhcy9GcmVudGU6CiAgaiwgU2V0YS1hYmFpeG8gICAgICAgIGssIFNldGEtYWNpbWEgICAgICAgICAgIG1vdmUgcmVhbGNlCiAgTiwgUGFnZS1kb3duLCBFc3Bhw6dvICBQLCBQYWdlLXVwLCBCYWNrc3BhY2UgICByb2xhIGxpc3RhIGVtIDEgcMOhZ2luYQogIF5uICAgICAgICAgICAgICAgICAgICBecCAgICAgICAgICAgICAgICAgICAgICByb2xhIGxpc3RhIGVtIDEgbGluaGEKICB0LCBIb21lICAgICAgICAgICAgICAgZSwgRW5kICAgICAgICAgICAgICAgICAgcHVsYSBwYXJhIHRvcG8vZmltIGRhIGxpc3RhCiAgdSAgICAgICAgICAgICAgICAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgIHJvbGEgaW5mb3JtYcOnw6NvIGVtIDEgcMOhZ2luYQogIF51ICAgICAgICAgICAgICAgICAgICBeZCAgICAgICAgICAgICAgICAgICAgICByb2xhIGluZm9ybWHDp8OjbyBlbSAxIGxpbmhhCiAgQiwgU2V0YS3DoC1lc3F1ZXJkYSAgICBGLCBTZXRhLcOgLWRpcmVpdGEgICAgICAgcm9sYSAxLzMgZGEgdGVsYSBwYXJhIG8gbGFkbwogIF5iICAgICAgICAgICAgICAgICAgICBeZiAgICAgICAgICAgICAgICAgICAgICByb2xhIDEgY2FyYWN0ZXIgcGFyYSBvIGxhZG8KKEVzdGFzIHPDo28gYXMgbWVzbWFzIHRlY2xhcyBkZSBtb3ZpbWVudGHDp8OjbyBkYSB0ZWxhIGRhIGxpc3RhIGRlIHBhY290ZXMpLgoKU2FpcjoKIFJldHVybiwgRW50ZXIgICAgc2VsZWNpb25hIGVzdGUgbcOpdG9kbyBlIHZhaSBwYXJhIHN1YSBjb25maWd1cmHDp8OjbwogeCwgWCAgICAgICAgICAgICBzYWkgc2VtIG11ZGFyIG91IGNvbmZpZ3VyYXIgbyBtw6l0b2RvIGRlIGluc3RhbGHDp8OjbwoKTWlzY2Vsw6JuZWE6CiAgPywgQWp1ZGEsIEYxICAgICBzb2xpY2l0YSBhanVkYQogXmwgICAgICAgICAgICAgICAgcmVkZXNlbmhhIGEgdGVsYQogIC8gICAgICAgICAgICAgICAgcHJvY3VyYSAoZW50ZXIgcGFyYSBjYW5jZWxhcikKICBcICAgICAgICAgICAgICAgIHJlcGV0aXIgw7psdGltYSBidXNjYQoATW92ZXIgcGFyYSBhYmFpeG8ATW92ZXIgcGFyYSBhY2ltYQBOb3ZvcwBOb3ZvcyBwYWNvdGVzIGRpc3BvbsOtdmVpcwBOZW5odW1hIGRlc2NyacOnw6NvIGRpc3BvbsOtdmVsLgBTZW0gZXhwbGljYcOnw6NvIGRpc3BvbsOtdmVsAEVzcGVjaWZpY2HDp8OjbyBkZSBjb3IgbnVsYQoAUGFjb3RlcyBvYnNvbGV0b3MgZSBsb2NhaXMgcHJlc2VudGVzIG5vIHNpc3RlbWEAT2Jzb2xldG9zL2xvY2FpcwBNYXJjYSBhbnRpZ2EAT3BjAE9wY2lvbmFpcwBPcMOnw7VlczoKICAtLWFkbWluZGlyIDxkaXJldMOzcmlvPiAgICAgVXNlIDxkaXJldMOzcmlvPiBhbyBpbnbDqXMgZGUgJXMuCiAgLS1leHBlcnQgICAgICAgICAgICAgICAgICAgQXRpdmUgbW9kbyBleHBlcnQuCiAgLS1kZWJ1ZyA8YXJxPiB8IC1EPGFycT4gICAgQXRpdmUgZGVwdXJhw6fDo28sIGVudmlhbmRvIHNhw61kYSBwYXJhIDxhcnE+LgogIC0tY29sb3VyIHwgLS1jb2xvciBwYXJ0ZS1kYS10ZWxhOltmcmVudGVdLFtmdW5kb11bOmF0cmliWythdHJpYisuLl1dCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhIGNvcmVzIGRhIHRlbGEuCgoAUGFjb3RlAFByZXNzaW9uZSA8ZW50ZXI+IHBhcmEgY29udGludWFyLgoAUHJlc3Npb25lID8gcGFyYSBvIG1lbnUgZGUgYWp1ZGEsIC4gcGFyYSBvIHByw7N4aW1vIHTDs3BpY28sIDxlc3Bhw6dvPiBwYXJhIHNhaXIgZGEgYWp1ZGEuAFByZXNzaW9uZSB1bWEgZGFzIHRlY2xhcyBkYSBsaXN0YSBhY2ltYSwgPGVzcGHDp28+IG91ICdxJyBwYXJhCiAgc2FpciBkYSBhanVkYSwgb3UgJy4nIChwb250byBmaW5hbCkgcGFyYSBsZXIgdW1hIHDDoWdpbmEgZGUKICBhanVkYSBwb3IgdmV6LiAAUHJpb3JpZGFkZQBFeHB1cmdhZG8AUGFjb3RlcyBleHB1cmdhZG9zIGUgb3MgbnVuY2EgaW5zdGFsYWRvcwBTYWlyIGRvIGRzZWxlY3QuAFNhaXIgc2VtIG11ZGFyIG3DqXRvZG8gZGUgYWNlc3NvIHNlbGVjaW9uYWRvAFNhaXIsIGNvbmZpcm1hbmRvIHNlbSBjaGVjYXIAU2FpciwgY29uZmlybWFuZG8sIGUgY2hlY2FuZG8gZGVwZW5kw6puY2lhcwBTYWlyLCByZWplaXRhbmRvIHN1Z2VzdMO1ZXMgZGUgY29uZmxpdG9zL2RlcGVuZMOqbmNpYXMAUkVJTlNUQUxBUgBSZWRlc2VuaGFyIGEgdGVsYQBSZW1vdmVyIHByb2dyYW1hcyBpbmRlc2VqYWRvcy4AUmVtb3ZpZG9zAFBhY290ZXMgcmVtb3ZpZG9zIGUgbsOjbyBtYWlzIGRpc3BvbsOtdmVpcwBQYWNvdGVzIHJlbW92aWRvcyAoY29uZmlndXJhw6fDo28gYWluZGEgcHJlc2VudGUpAFJlcGV0aXIgw7psdGltYSBidXNjYS4AUmVxAFNvbGljaXRhciBhanVkYSAocGVyY29ycmVyIGFzIHRlbGFzIGRlIGFqdWRhKQBTb2xpY2l0YSBxdWFpcyBwYWNvdGVzIHZvY8OqIHF1ZXIgZW0gc2V1IHNpc3RlbWEuAFJlcXVlcmlkb3MAUmV2ZXJ0ZXIgYW8gZXN0YWRvIGF0dWFsbWVudGUgaW5zdGFsYWRvIGVtIHRvZG9zIG9zIHBhY290ZXMAUmV2ZXJ0ZXIgYW8gZXN0YWRvIGRpcmV0YW1lbnRlIHJlcXVpc2l0YWRvIGVtIHRvZG9zIG9zIHBhY290ZXMAUmV2ZXJ0ZXIgYW8gZXN0YWRvIGFudGlnbyBlbSB0b2RvcyBvcyBwYWNvdGVzAFJldmVydGVyIGFvIGVzdGFkbyBzdWdlcmlkbyBlbSB0b2RvcyBvcyBwYWNvdGVzAFBhcnRlcyBkYSB0ZWxhOgoAUm9sYWdlbSByZWdyZXNzaXZhIGF0cmF2w6lzIGRhIGFqdWRhL2luZm9ybWHDp8OjbwBSb2xhZ2VtIHJlZ3Jlc3NpdmEgZGUgMSBsaW5oYSBhdHJhdsOpcyBkYSBhanVkYS9pbmZvcm1hw6fDo28AUm9sYWdlbSByZWdyZXNzaXZhIGF0cmF2w6lzIGRhIGxpc3RhAFJvbGFnZW0gcmVncmVzc2l2YSBkZSAxIGxpbmhhIGF0cmF2w6lzIGRhIGxpc3RhAFJvbGFnZW0gcHJvZ3Jlc3NpdmEgYXRyYXbDqXMgZGEgYWp1ZGEvaW5mb3JtYcOnw6NvAFJvbGFnZW0gcHJvZ3Jlc3NpdmEgZGUgMSBsaW5oYSBhdHJhdsOpcyBkYSBhanVkYS9pbmZvcm1hw6fDo28AUm9sYWdlbSBwcm9ncmVzc2l2YSBhdHJhdsOpcyBkYSBsaXN0YQBSb2xhZ2VtIHByb2dyZXNzaXZhIGRlIDEgbGluaGEgYXRyYXbDqXMgbGlzdGEAUHJvY3VyYXIgcG9yPyAAUHJvY3VyYXIgcG9yIHVtIHBhY290ZSBjdWpvIG5vbWUgY29udMOpbSB1bWEgc3RyaW5nAFNlw6fDo28AU2VsZWNpb25hciBtw6l0b2RvIGRlIGFjZXNzbyBlbSBkZXN0YXF1ZQBEZWZpbmEgc3VhIHZhcmnDoXZlbCBURVJNIGNvcnJldGFtZW50ZSwgdXNlIHVtIHRlcm1pbmFsIG1lbGhvciwKb3UgZmHDp2EgY29tIGEgZmVycmFtZW50YSBkZSBnZXJlbmNpYW1lbnRvIHBvci1wYWNvdGUgJXMuCgBQYWRyw7VlcwBQZHIAVHJvY2FyIG9yZGVuYcOnw6NvIGRlIHByaW9yaWRhZGUvc2XDp8OjbwBUZXJtaW5hbCBuw6NvIHBhcmVjZSBkYXIgc3Vwb3J0ZSBhbyBlbmRlcmXDp2FtZW50byBkZSBjdXJzb3IuCgBUZXJtaW5hbCBuw6NvIHBhcmVjZSBkYXIgc3Vwb3J0ZSBhbyByZWFsY2UgKCJoaWdobGlnaHRpbmciKS4KAEEgbGluaGEgcXVlIHZvY8OqIHJlYWzDp291IHJlcHJlc2VudGEgbXVpdG9zIHBhY290ZXM7IHNlIHZvY8OqIHBlZGlyIHBhcmEgaW5zdGFsw6EtbGEsIHJlbW92w6otbGEsIHJldMOqLWxhLCBldGMsIHZvY8OqIGFmZXRhcsOhIHRvZG9zIG9zIHBhY290ZXMgcXVlIGNvbWJpbmFtIGNvbSBvIGNyaXTDqXJpbyBleGliaWRvLgoKU2Ugdm9jw6ogbW92ZXIgbyByZWFsY2UgcGFyYSB1bWEgbGluaGEgZGUgdW0gcGFjb3RlIGVtIHBhcnRpY3VsYXIgdm9jw6ogdmVyw6EgaW5mb3JtYcOnw7VlcyBzb2JyZSBlc3RlIHBhY290ZSBleGliaWRhcyBhcXVpLgpWb2PDqiBwb2RlIHVzYXIgJ28nIGUgJ08nIHBhcmEgbXVkYXIgYSBvcmRlbmHDp8OjbyBlIHRlciBhIG9wb3J0dW5pZGFkZSBkZSBtYXJjYXIgcGFjb3RlcyBlbSBkaWZlcmVudGVzIHRpcG9zIGRlIGdydXBvcy4AQSBtZXRhZGUgZGUgY2ltYSBkYSB0ZWxhIG1vc3RyYSB1bWEgbGlzdGEgZGUgcGFjb3Rlcy4gUGFyYSBjYWRhIHBhY290ZSB2b2PDqiB2w6oKcXVhdHJvIGNvbHVuYXMgcGFyYSBzZXUgZXN0YWRvIGF0dWFsIG5vIHNpc3RlbWEgZSBtYXJjYcOnw6NvLiBObyBtb2RvIHJlc3VtaWRvCih1c2UgJ3YnIHBhcmEgbGlnYXIgZXhpYmnDp8OjbyB2ZXJib3NhKSwgZXN0ZXMgc8OjbyBjYXJhY3RlcmVzIMO6bmljb3MsIGRhIGVzcXVlcmRhCnBhcmEgYSBkaXJlaXRhOgoKIE1hcmNhIGRlIEVycm86IEVzcGHDp28gLSBzZW0gZXJyb3MgKHBhY290ZSBwb2RlIGVzdGFyIHF1ZWJyYWRvIC0gdmVqYSBhYmFpeG8pCiAgICAgICAgICAgICAgICAgJ1InICAgLSBlcnJvIHPDqXJpbyBkdXJhbnRlIGluc3RhbGHDp8OjbywgcmVxdWVyIHJlaW5zdGFsYcOnw6NvOwogRXN0YWRvIGRlIGluc3RhbGHDp8OjbzogIEVzcGHDp28gLSBuw6NvIGluc3RhbGFkbzsKICAgICAgICAgICAgICAgICAgICAgICAgICcqJyAgIC0gaW5zdGFsYWRvOwogICAgICAgICAgICAgICAgICAgICAgICAgJy0nICAgLSBuw6NvIGluc3RhbGFkbyBtYXMgYXJxdWl2b3MgZGUgY29uZmlndXJhw6fDo28KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybWFuZWNlbTsKICAgcGFjb3RlcyBuZXN0ZXMgICAgeyAnVScgICAgIC0gZGVzY29tcGFjdGFkbyBtYXMgYWluZGEgbsOjbyBjb25maWd1cmFkbzsKICAgZXN0YWRvcyBuw6NvIGVzdMOjbyB7ICdDJyAgICAgLSBtZWlvLWNvbmZpZ3VyYWRvICh1bSBlcnJvIGFjb250ZWNldSk7CiAgIGNvcnJldGFtZW50ZSAgICAgIHsgJ0knICAgICAtIG1laW8taW5zdGFsYWRvICh1bSBlcnJvIGFjb250ZWNldSkuCiAgIGluc3RhbGFkb3MgICAgICAgIHsgJ1cnLCd0JyAtIGdhdGlsaG9zIGVzdMOjbyBlbSBlc3BlcmEgLyBwZW5kZW50ZXMuCiBNYXJjYSBhbnRpZ2E6IG8gcXVlIGZvaSByZXF1aXNpdGFkbyBwYXJhIGVzdGUgcGFjb3RlIGFudGVzIGRlIGFwcmVzZW50YXIKICAgICAgICAgICAgICAgZXN0YSBsaXN0YTsKIE1hcmNhOiBvIHF1ZSDDqSByZXF1aXNpdGFkbyBwYXJhIGVzdGUgcGFjb3RlOgogICcqJzogbWFyY2FkbyBwYXJhIGluc3RhbGHDp8OjbyBvdSBhdHVhbGl6YcOnw6NvOwogICctJzogbWFyY2FkbyBwYXJhIHJlbW/Dp8OjbywgbWFzIG9zIGFycXVpdm9zIGRlIGNvbmZpZ3VyYcOnw6NvIHBlcm1hbmVjZXLDo287CiAgJz0nOiByZXRpZG86IHBhY290ZSBuw6NvIHNlcsOhIHByb2Nlc3NhZG8gZGUgZm9ybWEgYWxndW1hOwogICdfJzogbWFyY2FkbyBwYXJhIHNlciBjb21wbGV0YW1lbnRlIGV4cHVyZ2FkbyAtIHJlbW92ZXIgYXTDqSBhIGNvbmZpZ3VyYcOnw6NvOwogICduJzogcGFjb3RlIMOpIG5vdm8gZSBhaW5kYSB0ZW0gcXVlIHNlciBtYXJjYWRvIHBhcmEgaW5zdGFsYcOnw6NvL3JlbW/Dp8Ojby9ldGMuCgpUYW1iw6ltIHPDo28gZXhpYmlkYXMgY2FkYSBQcmlvcmlkYWRlLCBTZcOnw6NvLCBub21lLCBuw7ptZXJvcyBkZSB2ZXJzw6NvCmluc3RhbGFkYSBlIGRpc3BvbsOtdmVpcyBkZSBjYWRhIHBhY290ZSAoc2hpZnQtViBwYXJhIGV4aWJlci9vY3VsdGFyKQplIGRlc2NyacOnw6NvIHJlc3VtaWRhLgoARGlnaXRlIGRzZWxlY3QgLS1oZWxwIHBhcmEgYWp1ZGEuAFNlbSBjbGFzc2lmaWNhw6fDo28AUGFjb3RlcyBpbnN0YWxhZG9zIGF0dWFsaXphZG9zAEF0dWFsaXphZG9zAEF0dWFsaXphciBsaXN0YSBkZSBwYWNvdGVzIGRpc3BvbsOtdmVpcywgc2UgcG9zc8OtdmVsLgBBdHVhbGl6YWRvcwBQYWNvdGVzIGF0dWFsaXphZG9zIChub3ZhIHZlcnPDo28gZXN0w6EgZGlzcG9uw612ZWwpAFVzbzogJXMgWzxvcMOnw7Vlcz4gLi4uXSBbPGHDp8Ojbz4gLi4uXQoKAEJlbS12aW5kbyDDoCBsaXN0YSBwcmluY2lwYWwgZGUgcGFjb3RlcyBkbyBkc2VsZWN0LgoKU2Vyw6EgYXByZXNlbnRhZGEgYSB2b2PDqiB1bWEgbGlzdGEgZGUgcGFjb3RlcyBxdWUgZXN0w6NvIGluc3RhbGFkb3Mgb3UKZGlzcG9uw612ZWlzIHBhcmEgaW5zdGFsYcOnw6NvLiBVbWEgdmV6IHF1ZSB2b2PDqiBuw6NvIHBvc3N1aSBvcyBwcml2aWzDqWdpb3MKbmVjZXNzw6FyaW9zIHBhcmEgYXR1YWxpemFyIG8gZXN0YWRvIGRvcyBwYWNvdGVzLCB2b2PDqiBlc3TDoSBubyBtb2RvCnNvbWVudGUtbGVpdHVyYS4gVm9jw6ogcG9kZSBuYXZlZ2FyIHBlbGEgbGlzdGEgdXNhbmRvIGFzIHRlY2xhcyBkaXJlY2lvbmFpcwoocG9yIGZhdm9yLCB2ZWphIGEgdGVsYSBkZSBhanVkYSBzb2JyZSAnVGVjbGFzIGRlIGF0YWxobycpLCBvYnNlcnZlIG8gZXN0YWRvCmRvcyBwYWNvdGVzIGUgbGVpYSBhcyBpbmZvcm1hw6fDtWVzIHNvYnJlIGVsZXMuCgpWb2PDqiBkZXZlcsOhIGxlciBhIGxpc3RhIGRlIHRlY2xhcyBlIHN1YXMgZXhwbGljYcOnw7VlcyBuYSB0ZWxhLgpNdWl0YSBhanVkYSBvbi1saW5lIGVzdMOhIGRpc3BvbsOtdmVsLCBwb3IgZmF2b3IsIHVzZS1hIC0gcHJlc3Npb25lICc/JyBhCnF1YWxxdWVyIG1vbWVudG8gcGFyYSBhanVkYS4KClF1YW5kbyB0aXZlciB0ZXJtaW5hZG8gYSBuYXZlZ2HDp8OjbywgcHJlc3Npb25lICdRJyBvdSA8ZW50ZXI+IHBhcmEgc2Fpci4KClByZXNzaW9uZSA8ZXNwYcOnbz4gcGFyYSBzYWlyIGRhIGFqdWRhIGUgZW50cmFyIG5hIGxpc3RhIGFnb3JhLgoAQmVtLXZpbmRvIMOgIGxpc3RhIHByaW5jaXBhbCBkZSBwYWNvdGVzIGRvIGRzZWxlY3QuCgpTZXLDoSBhcHJlc2VudGFkYSBhIHZvY8OqIHVtYSBsaXN0YSBkZSBwYWNvdGVzIHF1ZSBlc3TDo28gaW5zdGFsYWRvcyBvdQpkaXNwb27DrXZlaXMgcGFyYSBpbnN0YWxhw6fDo28uIFZvY8OqIHBvZGUgbmF2ZWdhciBwZWxhIGxpc3RhIHVzYW5kbyBhcyB0ZWNsYXMKZGlyZWNpb25haXMsIG1hcmNhciBwYWNvdGVzIHBhcmEgaW5zdGFsYcOnw6NvICh1c2FuZG8gJysnKSBvdSBkZXNpbnN0YWxhw6fDo28KKHVzYW5kbyBgLScpLgpQYWNvdGVzIHBvZGVtIHNlciBtYXJjYWRvcyBpbmRpdmlkdWFsbWVudGUgb3UgZW0gZ3J1cG9zOyBpbmljaWFsbWVudGUsIHZvY8OqCnZhaSB2ZXIgcXVlIGEgbGluaGEgJ1RvZG9zIG9zIHBhY290ZXMnIGVzdMOhIHNlbGVjaW9uYWRhLiBDb21hbmRvcyBjb21vICcrJywKJy0nLCBlIG91dHJvcyBhZmV0YXLDo28gdG9kb3Mgb3MgcGFjb3RlcyBkZXNjcml0b3MgcGVsYSBsaW5oYSByZWFsw6dhZGEuCgpBbGd1bWFzIGRlIHN1YXMgZXNjb2xoYXMgY2F1c2Fyw6NvIGNvbmZsaXRvcyBvdSBwcm9ibGVtYXMgZGUgZGVwZW5kw6puY2lhczsKc2Vyw6EgYXByZXNlbnRhZGEgdW1hIHN1Yi1saXN0YSBkb3MgcGFjb3RlcyByZWxldmFudGVzLCBwYXJhIHF1ZSBkZXNzYSBmb3JtYQp2b2PDqiBwb3NzYSByZXNvbHZlciBvcyBwcm9ibGVtYXMuCgpWb2PDqiBkZXZlcsOhIGxlciBhIGxpc3RhIGRlIHRlY2xhcyBlIGFzIGV4cGxpY2HDp8O1ZXMgbmEgdGVsYS4KTXVpdGEgYWp1ZGEgb24tbGluZSBlc3TDoSBkaXNwb27DrXZlbCwgcG9yIGZhdm9yLCB1c2UtYSAtIHByZXNzaW9uZSAnPycgYQpxdWFscXVlciBtb21lbnRvIHBhcmEgYWp1ZGEuCgpRdWFuZG8gdGl2ZXIgdGVybWluYWRvIGEgc2VsZcOnw6NvIGRlIHBhY290ZXMsIHByZXNzaW9uZSA8ZW50ZXI+IHBhcmEgY29uZmlybWFyCnN1YXMgbXVkYW7Dp2FzIG91ICdYJyBwYXJhIHNhaXIgc2VtIGdyYXZhciBhcyBtdWRhbsOnYXMuIFVtYSBjaGVjYWdlbSBmaW5hbCBkZQpjb25mbGl0b3MgZSBkZSBkZXBlbmTDqm5jaWFzIHNlcsOhIGZlaXRhIC0gcG9kZSBzZXIgcXVlIGFxdWkgdm9jw6ogdGFtYsOpbSB2ZWphCnVtYSBzdWItbGlzdGEuCgpQcmVzc2lvbmUgPGVzcGHDp28+IHBhcmEgc2FpciBkYSBhanVkYSBlIGVudHJhciBuYSBsaXN0YSBhZ29yYS4KAEV4dABbQV1jZXNzbwBbQ11vbmZpZ3VyYXIAW0ldbnN0YWxhcgBbUV1TYWlyAFtSXWVtb3ZlcgBbU11lbGVjaW9uYXIAW1VdcGRhdGUAW27Do28gYXRyaWJ1w61kb10AW2RlczogJWRdAGEAcHJvY2Vzc2FtZW50byBkZSBnYXRpbGhvcyBlbSBlc3BlcmEAYlVHAHF1ZWJyYQBjAGNvcgBhdHJpYnV0byBjb3IAY29uZmxpdGEgY29tAG7Do28gZm9pIHBvc3PDrXZlbCBhYnJpciBhcnF1aXZvIGRlIGRlcHVyYcOnw6NvICclLjI1MHMnCgBkZXBlbmRlIGRlAGRvdXBkYXRlIGZhbGhvdQBkb3VwZGF0ZSBubyBoYW5kbGVyIFNJR1dJTkNIIGZhbGhvdQBkc2VsZWN0IC0gaW5zcGXDp8OjbyBkb3MgZXN0YWRvcyBkb3MgcGFjb3RlcwBkc2VsZWN0IC0gbGlzdGEgZGUgbcOpdG9kb3MgZGUgYWNlc3NvAGRzZWxlY3QgLSBsaXN0YSBwcmluY2lwYWwgZGUgcGFjb3RlcwBkc2VsZWN0IC0gbGlzdGEgcmVjdXJzaXZhIGRlIHBhY290ZXMAZHNlbGVjdCBlIGRwa2cgcG9kZW0gZmF6ZXIgaW5zdGFsYcOnw7VlcyBhdXRvbcOhdGljYXMsIGNhcnJlZ2FuZG8gb3MgYXJxdWl2b3MKZGUgcGFjb3RlIGEgc2VyZW0gaW5zdGFsYWRvcyBhIHBhcnRpciBkZSB1bWEgc8OpcmllIGRlIHBvc3PDrXZlaXMgZGlmZXJlbnRlcwpsdWdhcmVzLgoKRXN0YSBsaXN0YSBwZXJtaXRlIHF1ZSB2b2PDqiBzZWxlY2lvbmUgdW0gZGVzdGVzIG3DqXRvZG9zIGRlIGluc3RhbGHDp8Ojby4KCk1vdmEgbyByZWFsY2UgcGFyYSBvIG3DqXRvZG8gcXVlIHZvY8OqIHF1ZXIgdXNhciwgZSBhcGVydGUgRW50ZXIuIFZvY8OqIHNlcsOhCnF1ZXN0aW9uYWRvIHNvYnJlIGFzIGluZm9ybWHDp8O1ZXMgbmVjZXNzw6FyaWFzIHBhcmEgcmVhbGl6YXIgYSBpbnN0YWxhw6fDo28uCgrDgCBtZWRpZGEgcXVlIHZvY8OqIG1vdmUgbyByZWFsY2UsIHVtYSBkZXNjcmnDp8OjbyBkZSBjYWRhIG3DqXRvZG8sIHF1YW5kbwpkaXNwb27DrXZlbCwgw6kgZXhpYmlkYSBuYSBwYXJ0ZSBkZSBiYWl4byBkYSB0ZWxhLgoKU2Ugdm9jw6ogcXVpc2VyIHNhaXIgc2VtIG11ZGFyIG5hZGEgYXBlcnRlIGEgdGVjbGEgJ3gnIGVucXVhbnRvIGVzdGl2ZXIgbmEKbGlzdGEgZGUgbcOpdG9kb3MgZGUgaW5zdGFsYcOnw6NvLgoKVW1hIGxpc3RhIGNvbXBsZXRhIGRlIHRlY2xhcyBkZSBhdGFsaG8gZXN0w6EgZGlzcG9uw612ZWwgcHJlc3Npb25hbmRvICdrJwphZ29yYSwgb3Ugbm8gbWVudSBkZSBhanVkYSBhY2Vzc8OtdmVsIHByZXNzaW9uYW5kbyAnPycuCgBtZWxob3JhAGVycm8gZHVyYW50ZSBhIGxlaXR1cmEgZG8gYXJxdWl2byBkZSBvcMOnw7VlcyBkZSBtw6l0b2RvICclLjI1MHMnAGVycm8gZHVyYW50ZSBhIGxlaXR1cmEgZG8gYXJxdWl2byBkZSBkZXNjcmnDp8OjbyBkZSBvcMOnw6NvICclLjI1MHMnAGVycm8gbmEgZXhwcmVzc8OjbyByZWd1bGFyAGVycm8gbGVuZG8gcmVjb25oZWNpbWVudG8gZGEgbWVuc2FnZW0gZGUgZmFsaGEgZG8gcHJvZ3JhbWEAZXJybyBsZW5kbyB0ZWNsYWRvIG5hIGFqdWRhAGVycm8gbGVuZG8gYXJxdWl2byBkZSBvcMOnw7VlcyAnJS4yNTBzJwBmYWxob3UgYW8gYWxvY2FyIHBhciBkZSBjb3JlcwBmYWxob3UgYW8gYmxvcXVlYXIgU0lHV0lOQ0gAZmFsaG91IGFvIGNyaWFyICJiYXNlbGlzdCBwYWQiAGZhbGhvdSBhbyBjcmlhciAiaGVhZGluZyBwYWQiAGZhbGhvdSBhbyBjcmlhciAiaW5mbyBwYWQiAGZhbGhvdSBhbyBjcmlhciBqYW5lbGEgZGUgY29uc3VsdGEAZmFsaG91IGFvIGNyaWFyICJ0aGlzc3RhdGUgcGFkIgBmYWxob3UgYW8gY3JpYXIgdMOtdHVsbyBkYSBqYW5lbGEAZmFsaG91IGFvIGNyaWFyIGphbmVsYSAid2hhdGluZm8iAGZhbGhvdSBhbyBvYnRlciBhbnRpZ2Egc2lnYWN0IFNJR1dJTkNIAGZhbGhvdSBhbyBvYnRlciBhbnRpZ2EgbcOhc2NhcmEgZGUgc2luYWwAZmFsaG91IGFvIGV4ZWN1dGFyICJnZXRjaCIgbm8gbWVudSBwcmluY2lwYWwAZmFsaG91IGFvIHJlLWJsb3F1ZWFyIFNJR1dJTkNIAGZhbGhvdSBhbyBsZXIgYXJxdWl2byBkZSBkZXNjcmnDp8OjbyBkZSBvcMOnw6NvICclLjI1MHMnAGZhbGhvdSBhbyByZXN0YXVyYXIgYW50aWdvIHNpZ2FjdCBTSUdXSU5DSABmYWxob3UgYW8gcmVzdGF1cmFyIGFudGlnYSBtw6FzY2FyYSBkZSBzaW5hbABmYWxob3UgYW8gZGVmaW5pciBub3ZvIHNpZ2FjdCBTSUdXSU5DSABmYWxob3UgYW8gZGVzYmxvcXVlYXIgU0lHV0lOQ0gAImdldGNoIiBmYWxob3UAc2VtaS1pbnN0YWxhZG8AcmV0ZXIAaQDDrW5kaWNlIGRhIHN0cmluZyBtdWl0byBsb25nbwBpbnN0YWxhcgBzY3JpcHQgZGUgaW5zdGFsYcOnw6NvAGluc3RhbGFkbwBmb3JuZWNpZGEgb3DDp8OjbyBkZSBidXNjYSBpbnbDoWxpZGEAaW9jdGwoVElPQ0dXSU5TWikgZmFsaG91AG1lbnUAbcOpdG9kbyAnJS4yNTBzJyBwb3NzdWkgdW0gbm9tZSBtdWl0byBsb25nbyAoJWQgPiAlZCBjYXJhY3RlcmVzKQBub3ZvIHBhY290ZQBub3ZhIGxpbmhhIGFudGVzIGRvIGluw61jaW8gZG8gbm9tZSBkYSBvcMOnw6NvAG5vdmEgbGluaGEgYW50ZXMgZG8gc3Vtw6FyaW8AbsOjbyBhbGZhbnVtw6lyaWNvIG5vIG5vbWUgZGEgb3DDp8OjbwBuw6NvLWTDrWdpdG8gb25kZSBlcmEgbmVjZXNzw6FyaW8gZMOtZ2l0bwBuw6NvLWFscGhhIG9uZGUgZXJhIG5lY2Vzc8OhcmlvIGluw61jaW8gZG8gbm9tZSBkYSBvcMOnw6NvAG7Do28gaW5zdGFsYWRvAHByw6ktZGVwZW5kZSBkZQBpbmNsdWkAZXhwdXJnYXIAcQBzY3JpcHQgZGUgcGVzcXVpc2EvY29uZmlndXJhw6fDo28AcgByZWNvbWVuZGEAcmVtb3ZlcgByZW1vdmlkbyAoY29uZmlndXJhw6fDtWVzIHBlcm1hbmVjZW0pAHN1YnN0aXR1aQBzAHBhcnRlIGRhIHRlbGEAc3VnZXJlAGVycm8gZGUgc2ludGF4ZSBubyBhcnF1aXZvIGRlIG9ww6fDtWVzIGRlIG3DqXRvZG8gJyUuMjUwcycgLS0gJXMAdGVybWluYWwgbsOjbyBwb3NzdWkgYWxndW5zIHJlY3Vyc29zIG5lY2Vzc8OhcmlvcywgZGVzaXN0aW5kbwBkaXNwYXJhZG8AdQBpbXBvc3PDrXZlbCBhY2Vzc2FyIHNjcmlwdCBkZSBtw6l0b2RvICclLjI1MHMnAGltcG9zc8OtdmVsIGZlY2hhciBub3ZvIGFycXVpdm8gZGUgb3DDp8OjbyAnJS4yNTBzJwBpbXBvc3PDrXZlbCBpbnN0YWxhciBub3ZhIG9ww6fDo28gY29tbyAnJS4yNTBzJwBpbXBvc3PDrXZlbCBhYnJpciBhcnF1aXZvIGRlIG9ww6fDo28gYXR1YWwgJyUuMjUwcycAaW1wb3Nzw612ZWwgYWJyaXIgbm92byBhcnF1aXZvIGRlIG9ww6fDo28gJyUuMjUwcycAaW1wb3Nzw612ZWwgYWJyaXIgYXJxdWl2byBkZSBkZXNjcmnDp8OjbyBkZSBvcMOnw6NvICclLjI1MHMnAGltcG9zc8OtdmVsIGxlciBkaXJldMOzcmlvICclLjI1MHMnIHBhcmEgbcOpdG9kb3MgZGUgbGVpdHVyYQBpbXBvc3PDrXZlbCBsZXIgYXJxdWl2byBkZSBvcMOnw7VlcyBkZSBtw6l0b2RvICclLjI1MHMnAGltcG9zc8OtdmVsIGV4ZWN1dGFyICJzdGF0IiBubyBhcnF1aXZvIGRlIGRlc2NyacOnw6NvIGRlIG9ww6fDo28gJyUuMjUwcycAaW1wb3Nzw612ZWwgZXNjcmV2ZXIgbm92YSBvcMOnw6NvIHBhcmEgJyUuMjUwcycAc3RyaW5nIGRlIGHDp8OjbyBkZXNjb25oZWNpZGEgJyUuNTBzJwBkZXNlbXBhY290YWRvIChuw6NvIGNvbmZpZ3VyYWRvKQBzY3JpcHQgZGUgYXR1YWxpemHDp8OjbyBkYSBsaXN0YSBkZSBkaXNwb27DrXZlaXMA