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b3JpdHkpACAoYnkgc2VjdGlvbikAIChieSBzdGF0dXMpACAoc3RhdHVzLCBwcmlvcml0eSkAIChzdGF0dXMsIHNlY3Rpb24pACBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYXZhaWxhYmxlCgAgbWFyazorLz0vLSB0ZXJzZTp2IGhlbHA6PwAgbWFyazorLz0vLSB2ZXJib3NlOnYgaGVscDo/ACBvciAAIHRlcnNlOnYgaGVscDo/ACB2ZXJib3NlOnYgaGVscDo/ACFCdWchACUtKnMgJXMlcyVzOyAgJXMgKHdhczogJXMpLiAgJXMAJXMgJXMgcGFja2FnZXMAJXMgJXMgcGFja2FnZXMgaW4gc2VjdGlvbiAlcwAlcyAlcyBwYWNrYWdlcyB3aXRob3V0IGEgc2VjdGlvbgAlcyBmb3IgbW9yZQAlcyBwYWNrYWdlcyBpbiBzZWN0aW9uICVzACVzIHBhY2thZ2VzIHdpdGhvdXQgYSBzZWN0aW9uACVzIHRvIGdvIGJhY2sAKiBIaWdobGlnaHQ6IE9uZSBsaW5lIGluIHRoZSBwYWNrYWdlIGxpc3Qgd2lsbCBiZSBoaWdobGlnaHRlZC4gIEl0IGluZGljYXRlcwogIHdoaWNoIHBhY2thZ2Uocykgd2lsbCBiZSBhZmZlY3RlZCBieSBwcmVzc2VzIG9mIGArJywgYC0nIGFuZCBgXycuCgoqIFRoZSBkaXZpZGluZyBsaW5lIGluIHRoZSBtaWRkbGUgb2YgdGhlIHNjcmVlbiBzaG93cyBhIGJyaWVmIGV4cGxhbmF0aW9uIG9mCiAgdGhlIHN0YXR1cyBvZiB0aGUgY3VycmVudGx5LWhpZ2hsaWdodGVkIHBhY2thZ2UsIG9yIGEgZGVzY3JpcHRpb24gb2Ygd2hpY2gKICBncm91cCBpcyBoaWdobGlnaHRlZCBpZiBhIGdyb3VwIGxpbmUgaXMuICBJZiB5b3UgZG9uJ3QgdW5kZXJzdGFuZCB0aGUKICBtZWFuaW5nIG9mIHNvbWUgb2YgdGhlIHN0YXR1cyBjaGFyYWN0ZXJzIGRpc3BsYXllZCwgZ28gdG8gdGhlIHJlbGV2YW50CiAgcGFja2FnZSBhbmQgbG9vayBhdCB0aGlzIGRpdmlkZXIgbGluZSwgb3IgdXNlIHRoZSBgdicga2V5IGZvciBhIHZlcmJvc2UKICBkaXNwbGF5IChwcmVzcyBgdicgYWdhaW4gdG8gZ28gYmFjayB0byB0aGUgdGVyc2UgZGlzcGxheSkuCgoqIFRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiBzaG93cyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZQogIGN1cnJlbnRseS1oaWdobGlnaHRlZCBwYWNrYWdlIChpZiB0aGVyZSBpcyBvbmx5IG9uZSkuCgogIEl0IGNhbiBzaG93IGFuIGV4dGVuZGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBwYWNrYWdlLCB0aGUgaW50ZXJuYWwgcGFja2FnZQogIGNvbnRyb2wgZGV0YWlscyAoZWl0aGVyIGZvciB0aGUgaW5zdGFsbGVkIG9yIGF2YWlsYWJsZSB2ZXJzaW9uIG9mIHRoZQogIHBhY2thZ2UpLCBvciBpbmZvcm1hdGlvbiBhYm91dCBjb25mbGljdHMgYW5kIGRlcGVuZGVuY2llcyBpbnZvbHZpbmcgdGhlCiAgY3VycmVudCBwYWNrYWdlIChpbiBjb25mbGljdC9kZXBlbmRlbmN5IHJlc29sdXRpb24gc3VibGlzdHMpLgoKICBVc2UgdGhlIGBpJyBrZXkgdG8gY3ljbGUgdGhyb3VnaCB0aGUgZGlzcGxheXMsIGFuZCBgSScgdG8gaGlkZSB0aGUKICBpbmZvcm1hdGlvbiBkaXNwbGF5IG9yIGV4cGFuZCBpdCB0byB1c2UgYWxtb3N0IGFsbCBvZiB0aGUgc2NyZWVuLgoAPHN0YW5kYXJkIGVycm9yPgA8c3RhbmRhcmQgb3V0cHV0PgA/AEFiYnJldi4AQWJvcnQgLSBxdWl0IHdpdGhvdXQgbWFraW5nIGNoYW5nZXMAQWNjZXNzIG1ldGhvZCBgJXMnLgBBY3Rpb25zOgogIGFjY2VzcyB1cGRhdGUgc2VsZWN0IGluc3RhbGwgY29uZmlnIHJlbW92ZSBxdWl0CgoAQWxsAEFsbCBwYWNrYWdlcwBBdHRyaWJ1dGVzOgoAQXZhaWwudmVyAEF2YWlsYWJsZQBBdmFpbGFibGUgY29udHJvbCBmaWxlIGluZm9ybWF0aW9uAEF2YWlsYWJsZSBwYWNrYWdlcyAobm90IGN1cnJlbnRseSBpbnN0YWxsZWQpAEJyb2tlbgBCcm9rZW5seSBpbnN0YWxsZWQgcGFja2FnZXMAQ2hvb3NlIHRoZSBhY2Nlc3MgbWV0aG9kIHRvIHVzZS4AQ29sb3VyczoKAENvbmZpZ3VyZSBhbnkgcGFja2FnZXMgdGhhdCBhcmUgdW5jb25maWd1cmVkLgBDb3B5cmlnaHQgKEMpIDE5OTQtMTk5NiBJYW4gSmFja3Nvbi4KQ29weXJpZ2h0IChDKSAyMDAwLDIwMDEgV2ljaGVydCBBa2tlcm1hbi4KAEN5Y2xlIHRocm91Z2ggaW5mb3JtYXRpb24gZGlzcGxheXMARGViaWFuIGAlcycgcGFja2FnZSBoYW5kbGluZyBmcm9udGVuZCB2ZXJzaW9uICVzLgoARGVwZW5kZW5jeS9jb25mbGljdCByZXNvbHV0aW9uIC0gaW50cm9kdWN0aW9uLgoKT25lIG9yIG1vcmUgb2YgeW91ciBjaG9pY2VzIGhhdmUgcmFpc2VkIGEgY29uZmxpY3Qgb3IgZGVwZW5kZW5jeSBwcm9ibGVtIC0Kc29tZSBwYWNrYWdlcyBzaG91bGQgb25seSBiZSBpbnN0YWxsZWQgaW4gY29uanVuY3Rpb24gd2l0aCBjZXJ0YWluIG90aGVycywgYW5kCnNvbWUgY29tYmluYXRpb25zIG9mIHBhY2thZ2VzIG1heSBub3QgYmUgaW5zdGFsbGVkIHRvZ2V0aGVyLgoKWW91IHdpbGwgc2VlIGEgc3ViLWxpc3QgY29udGFpbmluZyB0aGUgcGFja2FnZXMgaW52b2x2ZWQuICBUaGUgYm90dG9tIGhhbGYgb2YKdGhlIGRpc3BsYXkgc2hvd3MgcmVsZXZhbnQgY29uZmxpY3RzIGFuZCBkZXBlbmRlbmNpZXM7IHVzZSBgaScgdG8gY3ljbGUgYmV0d2Vlbgp0aGF0LCB0aGUgcGFja2FnZSBkZXNjcmlwdGlvbnMgYW5kIHRoZSBpbnRlcm5hbCBjb250cm9sIGluZm9ybWF0aW9uLgoKQSBzZXQgb2YgYHN1Z2dlc3RlZCcgcGFja2FnZXMgaGFzIGJlZW4gY2FsY3VsYXRlZCwgYW5kIHRoZSBpbml0aWFsIG1hcmtpbmdzIGluCnRoaXMgc3ViLWxpc3QgaGF2ZSBiZWVuIHNldCB0byBtYXRjaCB0aG9zZSwgc28geW91IGNhbiBqdXN0IGhpdCBSZXR1cm4gdG8KYWNjZXB0IHRoZSBzdWdnZXN0aW9ucyBpZiB5b3Ugd2lzaC4gIFlvdSBtYXkgYWJvcnQgdGhlIGNoYW5nZShzKSB3aGljaCBjYXVzZWQKdGhlIHByb2JsZW0ocyksIGFuZCBnbyBiYWNrIHRvIHRoZSBtYWluIGxpc3QsIGJ5IHByZXNzaW5nIGNhcGl0YWwgYFgnLgoKWW91IGNhbiBhbHNvIG1vdmUgYXJvdW5kIHRoZSBsaXN0IGFuZCBjaGFuZ2UgdGhlIG1hcmtpbmdzIHNvIHRoYXQgdGhleSBhcmUgbW9yZQpsaWtlIHdoYXQgeW91IHdhbnQsIGFuZCB5b3UgY2FuIGByZWplY3QnIG15IHN1Z2dlc3Rpb25zIGJ5IHVzaW5nIHRoZSBjYXBpdGFsCmBEJyBvciBgUicga2V5cyAoc2VlIHRoZSBrZXliaW5kaW5ncyBoZWxwIHNjcmVlbikuICBZb3UgY2FuIHVzZSBjYXBpdGFsIGBRJyB0bwpmb3JjZSBtZSB0byBhY2NlcHQgdGhlIHNpdHVhdGlvbiBjdXJyZW50bHkgZGlzcGxheWVkLCBpbiBjYXNlIHlvdSB3YW50IHRvCm92ZXJyaWRlIGEgcmVjb21tZW5kYXRpb24gb3IgdGhpbmsgdGhhdCB0aGUgcHJvZ3JhbSBpcyBtaXN0YWtlbi4KClByZXNzIDxzcGFjZT4gdG8gbGVhdmUgaGVscCBhbmQgZW50ZXIgdGhlIHN1Yi1saXN0OyByZW1lbWJlcjogcHJlc3MgYD8nIGZvciBoZWxwLgoARGVzY3JpcHRpb24ARGlzcGxheSwgcGFydCAxOiBwYWNrYWdlIGxpc3RpbmcgYW5kIHN0YXR1cyBjaGFycwBEaXNwbGF5LCBwYXJ0IDI6IGxpc3QgaGlnaGxpZ2h0OyBpbmZvcm1hdGlvbiBkaXNwbGF5AEVJT00ARU9GIGJlZm9yZSBvcHRpb24gbmFtZSBzdGFydABFT0YgYmVmb3JlIHN1bW1hcnkARU9GIGluIGluZGV4IHN0cmluZwBFT0YgaW4gb3B0aW9uIG5hbWUARU9GIGluIHN1bW1hcnkgLSBtaXNzaW5nIG5ld2xpbmUARXJyb3IARXJyb3I6IABFeHBsYW5hdGlvbgBFeHRyYQBHbyB0byBlbmQgb2YgbGlzdABHbyB0byB0b3Agb2YgbGlzdABIZWxwIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIHRvcGljczoASGVscDogAEltcABJbXBvcnRhbnQASW5zdC52ZXIASW5zdGFsbCBhbmQgdXBncmFkZSB3YW50ZWQgcGFja2FnZXMuAEluc3RhbGxlZABJbnN0YWxsZWQgY29udHJvbCBmaWxlIGluZm9ybWF0aW9uAEluc3RhbGxlZCBwYWNrYWdlcwBJbnN0YWxsZWQ/AEludGVycmVsYXRpb25zaGlwcwBJbnRyb2R1Y3Rpb24gdG8gY29uZmxpY3QvZGVwZW5kZW5jeSByZXNvbHV0aW9uIHN1Yi1saXN0AEludHJvZHVjdGlvbiB0byBtZXRob2Qgc2VsZWN0aW9uIGRpc3BsYXkASW50cm9kdWN0aW9uIHRvIHBhY2thZ2Ugc2VsZWN0aW9ucwBJbnRyb2R1Y3Rpb24gdG8gcmVhZC1vbmx5IHBhY2thZ2UgbGlzdCBicm93c2VyAEludmFsaWQgJXMgYCVzJwoAS2V5YmluZGluZ3MAS2V5c3Ryb2tlcwBLZXlzdHJva2VzIGZvciBtZXRob2Qgc2VsZWN0aW9uAE1ha2UgaGlnaGxpZ2h0IGxlc3Mgc3BlY2lmaWMATWFrZSBoaWdobGlnaHQgbW9yZSBzcGVjaWZpYwBNYXJrIHBhY2thZ2UocykgZm9yIGRlaW5zdGFsbCBhbmQgcHVyZ2UATWFyayBwYWNrYWdlKHMpIGZvciBkZWluc3RhbGxhdGlvbgBNYXJrIHBhY2thZ2UocykgZm9yIGluc3RhbGxhdGlvbgBNYXJrZWQgZm9yAE1vdGlvbiBrZXlzOiBOZXh0L1ByZXZpb3VzLCBUb3AvRW5kLCBVcC9Eb3duLCBCYWNrd2FyZHMvRm9yd2FyZHM6CiAgaiwgRG93bi1hcnJvdyAgICAgICAgIGssIFVwLWFycm93ICAgICAgICAgICAgIG1vdmUgaGlnaGxpZ2h0CiAgTiwgUGFnZS1kb3duLCBTcGFjZSAgIFAsIFBhZ2UtdXAsIEJhY2tzcGFjZSAgIHNjcm9sbCBsaXN0IGJ5IDEgcGFnZQogIF5uICAgICAgICAgICAgICAgICAgICBecCAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgbGlzdCBieSAxIGxpbmUKICB0LCBIb21lICAgICAgICAgICAgICAgZSwgRW5kICAgICAgICAgICAgICAgICAganVtcCB0byB0b3AvZW5kIG9mIGxpc3QKICB1ICAgICAgICAgICAgICAgICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGluZm8gYnkgMSBwYWdlCiAgXnUgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBpbmZvIGJ5IDEgbGluZQogIEIsIExlZnQtYXJyb3cgICAgICAgICBGLCBSaWdodC1hcnJvdyAgICAgICAgICBwYW4gZGlzcGxheSBieSAxLzMgc2NyZWVuCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgIHBhbiBkaXNwbGF5IGJ5IDEgY2hhcmFjdGVyCgpNYXJrIHBhY2thZ2VzIGZvciBsYXRlciBwcm9jZXNzaW5nOgogKywgSW5zZXJ0ICBpbnN0YWxsIG9yIHVwZ3JhZGUgICAgICA9LCBIICBob2xkIGluIHByZXNlbnQgc3RhdGUKIC0sIERlbGV0ZSAgcmVtb3ZlICAgICAgICAgICAgICAgICAgOiwgRyAgdW5ob2xkOiB1cGdyYWRlIG9yIGxlYXZlIHVuaW5zdGFsbGVkCiBfICAgICAgICAgIHJlbW92ZSAmIHB1cmdlIGNvbmZpZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzOgpRdWl0LCBleGl0LCBvdmVyd3JpdGUgKG5vdGUgY2FwaXRhbHMhKTogICAgICAgPywgRjEgcmVxdWVzdCBoZWxwIChhbHNvIEhlbHApCiBSZXR1cm4gIENvbmZpcm0sIHF1aXQgKGNoZWNrIGRlcGVuZGVuY2llcykgICBpLCBJICB0b2dnbGUvY3ljbGUgaW5mbyBkaXNwbGF5cwogICBRICAgICBDb25maXJtLCBxdWl0IChvdmVycmlkZSBkZXAucykgICAgICAgbywgTyAgY3ljbGUgdGhyb3VnaCBzb3J0IG9wdGlvbnMKIFgsIEVzYyAgZVhpdCwgYWJhbmRvbmluZyBhbnkgY2hhbmdlcyBtYWRlICAgIHYsIFYgIGNoYW5nZSBzdGF0dXMgZGlzcGxheSBvcHRzCiAgIFIgICAgIFJldmVydCB0byBzdGF0ZSBiZWZvcmUgdGhpcyBsaXN0ICAgICAgXmwgICByZWRyYXcgZGlzcGxheQogICBVICAgICBzZXQgYWxsIHRvIHNVZ2dlc3RlZCBzdGF0ZSAgICAgICAgICAgICAvICAgc2VhcmNoIChSZXR1cm4gdG8gY2FuY2VsKQogICBEICAgICBzZXQgYWxsIHRvIERpcmVjdGx5IHJlcXVlc3RlZCBzdGF0ZSAgbiwgXCAgcmVwZWF0IGxhc3Qgc2VhcmNoCgBNb3Rpb24ga2V5czogTmV4dC9QcmV2aW91cywgVG9wL0VuZCwgVXAvRG93biwgQmFja3dhcmRzL0ZvcndhcmRzOgogIGosIERvd24tYXJyb3cgICAgICAgICBrLCBVcC1hcnJvdyAgICAgICAgICAgICBtb3ZlIGhpZ2hsaWdodAogIE4sIFBhZ2UtZG93biwgU3BhY2UgICBQLCBQYWdlLXVwLCBCYWNrc3BhY2UgICBzY3JvbGwgbGlzdCBieSAxIHBhZ2UKICBebiAgICAgICAgICAgICAgICAgICAgXnAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGxpc3QgYnkgMSBsaW5lCiAgdCwgSG9tZSAgICAgICAgICAgICAgIGUsIEVuZCAgICAgICAgICAgICAgICAgIGp1bXAgdG8gdG9wL2VuZCBvZiBsaXN0CiAgdSAgICAgICAgICAgICAgICAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBpbmZvIGJ5IDEgcGFnZQogIF51ICAgICAgICAgICAgICAgICAgICBeZCAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgaW5mbyBieSAxIGxpbmUKICBCLCBMZWZ0LWFycm93ICAgICAgICAgRiwgUmlnaHQtYXJyb3cgICAgICAgICAgcGFuIGRpc3BsYXkgYnkgMS8zIHNjcmVlbgogIF5iICAgICAgICAgICAgICAgICAgICBeZiAgICAgICAgICAgICAgICAgICAgICBwYW4gZGlzcGxheSBieSAxIGNoYXJhY3RlcgooVGhlc2UgYXJlIHRoZSBzYW1lIG1vdGlvbiBrZXlzIGFzIGluIHRoZSBwYWNrYWdlIGxpc3QgZGlzcGxheS4pCgpRdWl0OgogUmV0dXJuLCBFbnRlciAgICBzZWxlY3QgdGhpcyBtZXRob2QgYW5kIGdvIHRvIGl0cyBjb25maWd1cmF0aW9uIGRpYWxvZ3VlCiB4LCBYICAgICAgICAgICAgIGV4aXQgd2l0aG91dCBjaGFuZ2luZyBvciBzZXR0aW5nIHVwIHRoZSBpbnN0YWxsYXRpb24gbWV0aG9kCgpNaXNjZWxsYW5lb3VzOgogID8sIEhlbHAsIEYxICAgICAgcmVxdWVzdCBoZWxwCiBebCAgICAgICAgICAgICAgICByZWRyYXcgZGlzcGxheQogIC8gICAgICAgICAgICAgICAgc2VhcmNoIChqdXN0IHJldHVybiB0byBjYW5jZWwpCiAgXCAgICAgICAgICAgICAgICByZXBlYXQgbGFzdCBzZWFyY2gKAE1vdmUgZG93bgBNb3ZlIHVwAE5ldwBOZXdseSBhdmFpbGFibGUgcGFja2FnZXMATm8gZGVzY3JpcHRpb24gYXZhaWxhYmxlLgBObyBleHBsYW5hdGlvbiBhdmFpbGFibGUuAE51bGwgY29sb3VyIHNwZWNpZmljYXRpb24KAE9ic29sZXRlIGFuZCBsb2NhbCBwYWNrYWdlcyBwcmVzZW50IG9uIHN5c3RlbQBPYnNvbGV0ZS9sb2NhbABPbGQgbWFyawBPcHQAT3B0aW9uYWwAT3B0aW9uczoKICAtLWFkbWluZGlyIDxkaXJlY3Rvcnk+ICAgICBVc2UgPGRpcmVjdG9yeT4gaW5zdGVhZCBvZiAlcy4KICAtLWV4cGVydCAgICAgICAgICAgICAgICAgICBUdXJuIG9uIGV4cGVydCBtb2RlLgogIC0tZGVidWcgPGZpbGU+IHwgLUQ8ZmlsZT4gIFR1cm4gb24gZGVidWdnaW5nLCBzZW5kaW5nIG91dHB1dCB0byA8ZmlsZT4uCiAgLS1jb2xvdXIgfCAtLWNvbG9yIHNjcmVlbnBhcnQ6W2ZvcmVncm91bmRdLFtiYWNrZ3JvdW5kXVs6YXR0clsrYXR0cisuLl1dCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJlIHNjcmVlbiBjb2xvdXJzLgoKAFBhY2thZ2UAUHJlc3MgPGVudGVyPiB0byBjb250aW51ZS4KAFByZXNzID8gZm9yIGhlbHAgbWVudSwgLiBmb3IgbmV4dCB0b3BpYywgPHNwYWNlPiB0byBleGl0IGhlbHAuAFByZXNzIGEga2V5IGZyb20gdGhlIGxpc3QgYWJvdmUsIDxzcGFjZT4gb3IgYHEnIHRvIGV4aXQgaGVscCwKICBvciBgLicgKGZ1bGwgc3RvcCkgdG8gcmVhZCBlYWNoIGhlbHAgcGFnZSBpbiB0dXJuLiAAUHJpb3JpdHkAUHVyZ2VkAFB1cmdlZCBwYWNrYWdlcyBhbmQgdGhvc2UgbmV2ZXIgaW5zdGFsbGVkAFF1aXQgZHNlbGVjdC4AUXVpdCB3aXRob3V0IGNoYW5naW5nIHNlbGVjdGVkIGFjY2VzcyBtZXRob2QAUXVpdCwgY29uZmlybWluZyB3aXRob3V0IGNoZWNrAFF1aXQsIGNvbmZpcm1pbmcsIGFuZCBjaGVja2luZyBkZXBlbmRlbmNpZXMAUXVpdCwgcmVqZWN0aW5nIGNvbmZsaWN0L2RlcGVuZGVuY3kgc3VnZ2VzdGlvbnMAUkVJTlNUQUxMAFJlZHJhdyBkaXNwbGF5AFJlbW92ZSB1bndhbnRlZCBzb2Z0d2FyZS4AUmVtb3ZlZABSZW1vdmVkIGFuZCBubyBsb25nZXIgYXZhaWxhYmxlIHBhY2thZ2VzAFJlbW92ZWQgcGFja2FnZXMgKGNvbmZpZ3VyYXRpb24gc3RpbGwgcHJlc2VudCkAUmVwZWF0IGxhc3Qgc2VhcmNoLgBSZXEAUmVxdWVzdCBoZWxwIChjeWNsZSB0aHJvdWdoIGhlbHAgc2NyZWVucykAUmVxdWVzdCB3aGljaCBwYWNrYWdlcyB5b3Ugd2FudCBvbiB5b3VyIHN5c3RlbS4AUmVxdWlyZWQAUmV2ZXJ0IHRvIGN1cnJlbnRseSBpbnN0YWxsZWQgc3RhdGUgZm9yIGFsbCBwYWNrYWdlcwBSZXZlcnQgdG8gZGlyZWN0bHkgcmVxdWVzdGVkIHN0YXRlIGZvciBhbGwgcGFja2FnZXMAUmV2ZXJ0IHRvIG9sZCBzdGF0ZSBmb3IgYWxsIHBhY2thZ2VzAFJldmVydCB0byBzdWdnZXN0ZWQgc3RhdGUgZm9yIGFsbCBwYWNrYWdlcwBTY3JlZW5wYXJ0czoKAFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uAFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uIGJ5IDEgbGluZQBTY3JvbGwgYmFja3dhcmRzIHRocm91Z2ggbGlzdABTY3JvbGwgYmFja3dhcmRzIHRocm91Z2ggbGlzdCBieSAxIGxpbmUAU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uAFNjcm9sbCBvbndhcmRzIHRocm91Z2ggaGVscC9pbmZvcm1hdGlvbiBieSAxIGxpbmUAU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBsaXN0AFNjcm9sbCBvbndhcmRzIHRocm91Z2ggbGlzdCBieSAxIGxpbmUAU2VhcmNoIGZvciA/IABTZWFyY2ggZm9yIGEgcGFja2FnZSB3aG9zZSBuYW1lIGNvbnRhaW5zIGEgc3RyaW5nAFNlY3Rpb24AU2VsZWN0IGN1cnJlbnRseS1oaWdobGlnaHRlZCBhY2Nlc3MgbWV0aG9kAFNldCB5b3VyIFRFUk0gdmFyaWFibGUgY29ycmVjdGx5LCB1c2UgYSBiZXR0ZXIgdGVybWluYWwsCm9yIG1ha2UgZG8gd2l0aCB0aGUgcGVyLXBhY2thZ2UgbWFuYWdlbWVudCB0b29sICVzLgoAU3RhbmRhcmQAU3RkAFN3YXAgc29ydCBvcmRlciBwcmlvcml0eS9zZWN0aW9uAFRlcm1pbmFsIGRvZXMgbm90IGFwcGVhciB0byBzdXBwb3J0IGN1cnNvciBhZGRyZXNzaW5nLgoAVGVybWluYWwgZG9lcyBub3QgYXBwZWFyIHRvIHN1cHBvcnQgaGlnaGxpZ2h0aW5nLgoAVGhlIGxpbmUgeW91IGhhdmUgaGlnaGxpZ2h0ZWQgcmVwcmVzZW50cyBtYW55IHBhY2thZ2VzOyBpZiB5b3UgYXNrIHRvIGluc3RhbGwsIHJlbW92ZSwgaG9sZCwgZXRjLiBpdCB5b3Ugd2lsbCBhZmZlY3QgYWxsIHRoZSBwYWNrYWdlcyB3aGljaCBtYXRjaCB0aGUgY3JpdGVyaW9uIHNob3duLgoKSWYgeW91IG1vdmUgdGhlIGhpZ2hsaWdodCB0byBhIGxpbmUgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlIHlvdSB3aWxsIHNlZSBpbmZvcm1hdGlvbiBhYm91dCB0aGF0IHBhY2thZ2UgZGlzcGxheWVkIGhlcmUuCllvdSBjYW4gdXNlIGBvJyBhbmQgYE8nIHRvIGNoYW5nZSB0aGUgc29ydCBvcmRlciBhbmQgZ2l2ZSB5b3Vyc2VsZiB0aGUgb3Bwb3J0dW5pdHkgdG8gbWFyayBwYWNrYWdlcyBpbiBkaWZmZXJlbnQga2luZHMgb2YgZ3JvdXBzLgBUaGUgdG9wIGhhbGYgb2YgdGhlIHNjcmVlbiBzaG93cyBhIGxpc3Qgb2YgcGFja2FnZXMuICBGb3IgZWFjaCBwYWNrYWdlIHlvdSBzZWUKZm91ciBjb2x1bW5zIGZvciBpdHMgY3VycmVudCBzdGF0dXMgb24gdGhlIHN5c3RlbSBhbmQgbWFyay4gIEluIHRlcnNlIG1vZGUgKHVzZQpgdicgdG8gdG9nZ2xlIHZlcmJvc2UgZGlzcGxheSkgdGhlc2UgYXJlIHNpbmdsZSBjaGFyYWN0ZXJzLCBmcm9tIGxlZnQgdG8gcmlnaHQ6CgogRXJyb3IgZmxhZzogU3BhY2UgLSBubyBlcnJvciAoYnV0IHBhY2thZ2UgbWF5IGJlIGluIGJyb2tlbiBzdGF0ZSAtIHNlZSBiZWxvdykKICAgICAgICAgICAgICBgUicgIC0gc2VyaW91cyBlcnJvciBkdXJpbmcgaW5zdGFsbGF0aW9uLCBuZWVkcyByZWluc3RhbGxhdGlvbjsKIEluc3RhbGxlZCBzdGF0ZTogICAgIFNwYWNlICAgIC0gbm90IGluc3RhbGxlZDsKICAgICAgICAgICAgICAgICAgICAgICBgKicgICAgIC0gaW5zdGFsbGVkOwogICAgICAgICAgICAgICAgICAgICAgIGAtJyAgICAgLSBub3QgaW5zdGFsbGVkIGJ1dCBjb25maWcgZmlsZXMgcmVtYWluOwogICBwYWNrYWdlcyBpbiB0aGVzZSB7IGBVJyAgICAgLSB1bnBhY2tlZCBidXQgbm90IHlldCBjb25maWd1cmVkOwogICBzdGF0ZXMgYXJlIG5vdCAgICB7IGBDJyAgICAgLSBoYWxmLWNvbmZpZ3VyZWQgKGFuIGVycm9yIGhhcHBlbmVkKTsKICAgKHF1aXRlKSBwcm9wZXJseSAgeyBgSScgICAgIC0gaGFsZi1pbnN0YWxsZWQgKGFuIGVycm9yIGhhcHBlbmVkKTsKICAgaW5zdGFsbGVkICAgICAgICAgeyBgVycsYHQnIC0gdHJpZ2dlcnMgYXJlIGF3YWl0ZWQgcmVzcC4gcGVuZGluZy4KIE9sZCBtYXJrOiB3aGF0IHdhcyByZXF1ZXN0ZWQgZm9yIHRoaXMgcGFja2FnZSBiZWZvcmUgcHJlc2VudGluZyB0aGlzIGxpc3Q7CiBNYXJrOiB3aGF0IGlzIHJlcXVlc3RlZCBmb3IgdGhpcyBwYWNrYWdlOgogIGAqJzogbWFya2VkIGZvciBpbnN0YWxsYXRpb24gb3IgdXBncmFkZTsKICBgLSc6IG1hcmtlZCBmb3IgcmVtb3ZhbCwgYnV0IGFueSBjb25maWd1cmF0aW9uIGZpbGVzIHdpbGwgcmVtYWluOwogIGA9Jzogb24gaG9sZDogcGFja2FnZSB3aWxsIG5vdCBiZSBwcm9jZXNzZWQgYXQgYWxsOwogIGBfJzogbWFya2VkIGZvciBwdXJnZSBjb21wbGV0ZWx5IC0gZXZlbiByZW1vdmUgY29uZmlndXJhdGlvbjsKICBgbic6IHBhY2thZ2UgaXMgbmV3IGFuZCBoYXMgeWV0IHRvIGJlIG1hcmtlZCBmb3IgaW5zdGFsbC9yZW1vdmUvJmMuCgpBbHNvIGRpc3BsYXllZCBhcmUgZWFjaCBwYWNrYWdlJ3MgUHJpb3JpdHksIFNlY3Rpb24sIG5hbWUsIGluc3RhbGxlZCBhbmQKYXZhaWxhYmxlIHZlcnNpb24gbnVtYmVycyAoc2hpZnQtViB0byBkaXNwbGF5L2hpZGUpIGFuZCBzdW1tYXJ5IGRlc2NyaXB0aW9uLgoAVGhlcmUgYXJlIG5vIHBhY2thZ2VzLgBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIG9yCmxhdGVyIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuIFRoZXJlIGlzIE5PIHdhcnJhbnR5LgoAVHlwZSBkc2VsZWN0IC0taGVscCBmb3IgaGVscC4AVW5jbGFzc2lmaWVkAFVwIHRvIGRhdGUgaW5zdGFsbGVkIHBhY2thZ2VzAFVwLXRvLWRhdGUAVXBkYXRlIGxpc3Qgb2YgYXZhaWxhYmxlIHBhY2thZ2VzLCBpZiBwb3NzaWJsZS4AVXBkYXRlZABVcGRhdGVkIHBhY2thZ2VzIChuZXdlciB2ZXJzaW9uIGlzIGF2YWlsYWJsZSkAVXNhZ2U6ICVzIFs8b3B0aW9uPiAuLi5dIFs8YWN0aW9uPiAuLi5dCgoAV2VsY29tZSB0byBkc2VsZWN0J3MgbWFpbiBwYWNrYWdlIGxpc3RpbmcuCgpZb3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGxpc3Qgb2YgcGFja2FnZXMgd2hpY2ggYXJlIGluc3RhbGxlZCBvciBhdmFpbGFibGUKZm9yIGluc3RhbGxhdGlvbi4gIFNpbmNlIHlvdSBkbyBub3QgaGF2ZSB0aGUgcHJpdmlsZWdlIG5lY2Vzc2FyeSB0byB1cGRhdGUKcGFja2FnZSBzdGF0ZXMsIHlvdSBhcmUgaW4gYSByZWFkLW9ubHkgbW9kZS4gIFlvdSBjYW4gbmF2aWdhdGUgYXJvdW5kIHRoZQpsaXN0IHVzaW5nIHRoZSBjdXJzb3Iga2V5cyAocGxlYXNlIHNlZSB0aGUgYEtleXN0cm9rZXMnIGhlbHAgc2NyZWVuKSwgb2JzZXJ2ZQp0aGUgc3RhdHVzIG9mIHRoZSBwYWNrYWdlcyBhbmQgcmVhZCBpbmZvcm1hdGlvbiBhYm91dCB0aGVtLgoKWW91IHNob3VsZCByZWFkIHRoZSBsaXN0IG9mIGtleXMgYW5kIHRoZSBleHBsYW5hdGlvbnMgb2YgdGhlIGRpc3BsYXkuCk11Y2ggb24tbGluZSBoZWxwIGlzIGF2YWlsYWJsZSwgcGxlYXNlIG1ha2UgdXNlIG9mIGl0IC0gcHJlc3MgYD8nIGF0CmFueSB0aW1lIGZvciBoZWxwLgoKV2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBicm93c2luZywgcHJlc3MgYFEnIG9yIDxlbnRlcj4gdG8gcXVpdC4KClByZXNzIDxzcGFjZT4gdG8gbGVhdmUgaGVscCBhbmQgZW50ZXIgdGhlIGxpc3Qgbm93LgoAV2VsY29tZSB0byBkc2VsZWN0J3MgbWFpbiBwYWNrYWdlIGxpc3RpbmcuCgpZb3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGxpc3Qgb2YgcGFja2FnZXMgd2hpY2ggYXJlIGluc3RhbGxlZCBvciBhdmFpbGFibGUKZm9yIGluc3RhbGxhdGlvbi4gIFlvdSBjYW4gbmF2aWdhdGUgYXJvdW5kIHRoZSBsaXN0IHVzaW5nIHRoZSBjdXJzb3Iga2V5cywKbWFyayBwYWNrYWdlcyBmb3IgaW5zdGFsbGF0aW9uICh1c2luZyBgKycpIG9yIGRlaW5zdGFsbGF0aW9uICh1c2luZyBgLScpLgpQYWNrYWdlcyBjYW4gYmUgbWFya2VkIGVpdGhlciBzaW5nbHkgb3IgaW4gZ3JvdXBzOyBpbml0aWFsbHkgeW91IHdpbGwgc2VlIHRoYXQKdGhlIGxpbmUgYEFsbCBwYWNrYWdlcycgaXMgc2VsZWN0ZWQuICBgKycsIGAtJyBhbmQgc28gb24gd2lsbCBhZmZlY3QgYWxsIHRoZQpwYWNrYWdlcyBkZXNjcmliZWQgYnkgdGhlIGhpZ2hsaWdodGVkIGxpbmUuCgpTb21lIG9mIHlvdXIgY2hvaWNlcyB3aWxsIGNhdXNlIGNvbmZsaWN0cyBvciBkZXBlbmRlbmN5IHByb2JsZW1zOyB5b3Ugd2lsbCBiZQpnaXZlbiBhIHN1Yi1saXN0IG9mIHRoZSByZWxldmFudCBwYWNrYWdlcywgc28gdGhhdCB5b3UgY2FuIHNvbHZlIHRoZSBwcm9ibGVtcy4KCllvdSBzaG91bGQgcmVhZCB0aGUgbGlzdCBvZiBrZXlzIGFuZCB0aGUgZXhwbGFuYXRpb25zIG9mIHRoZSBkaXNwbGF5LgpNdWNoIG9uLWxpbmUgaGVscCBpcyBhdmFpbGFibGUsIHBsZWFzZSBtYWtlIHVzZSBvZiBpdCAtIHByZXNzIGA/JyBhdAphbnkgdGltZSBmb3IgaGVscC4KCldoZW4geW91IGhhdmUgZmluaXNoZWQgc2VsZWN0aW5nIHBhY2thZ2VzLCBwcmVzcyA8ZW50ZXI+IHRvIGNvbmZpcm0gY2hhbmdlcywKb3IgYFgnIHRvIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcy4gQSBmaW5hbCBjaGVjayBvbiBjb25mbGljdHMgYW5kCmRlcGVuZGVuY2llcyB3aWxsIGJlIGRvbmUgLSBoZXJlIHRvbyB5b3UgbWF5IHNlZSBhIHN1Ymxpc3QuCgpQcmVzcyA8c3BhY2U+IHRvIGxlYXZlIGhlbHAgYW5kIGVudGVyIHRoZSBsaXN0IG5vdy4KAFh0cgBbQV1jY2VzcwBbQ11vbmZpZwBbSV1uc3RhbGwAW1FddWl0AFtSXWVtb3ZlAFtTXWVsZWN0AFtVXXBkYXRlAFtub3QgYm91bmRdAFt1bms6ICVkXQBhAGF3YWl0aW5nIHRyaWdnZXIgcHJvY2Vzc2luZwBiVUcAYnJlYWtzAGMAY29sb3VyAGNvbG91ciBhdHRyaWJ1dGUAY29uZmxpY3RzIHdpdGgAY291bGRuJ3Qgb3BlbiBkZWJ1ZyBmaWxlIGAlLjI1NXMnCgBkZXBlbmRzIG9uAGRvdXBkYXRlIGZhaWxlZABkb3VwZGF0ZSBpbiBTSUdXSU5DSCBoYW5kbGVyIGZhaWxlZABkc2VsZWN0IC0gaW5zcGVjdGlvbiBvZiBwYWNrYWdlIHN0YXRlcwBkc2VsZWN0IC0gbGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwBkc2VsZWN0IC0gbWFpbiBwYWNrYWdlIGxpc3RpbmcAZHNlbGVjdCAtIHJlY3Vyc2l2ZSBwYWNrYWdlIGxpc3RpbmcAZHNlbGVjdCBhbmQgZHBrZyBjYW4gZG8gYXV0b21hdGljIGluc3RhbGxhdGlvbiwgbG9hZGluZyB0aGUgcGFja2FnZSBmaWxlcyB0byBiZQppbnN0YWxsZWQgZnJvbSBvbmUgb2YgYSBudW1iZXIgb2YgZGlmZmVyZW50IHBvc3NpYmxlIHBsYWNlcy4KClRoaXMgbGlzdCBhbGxvd3MgeW91IHRvIHNlbGVjdCBvbmUgb2YgdGhlc2UgaW5zdGFsbGF0aW9uIG1ldGhvZHMuCgpNb3ZlIHRoZSBoaWdobGlnaHQgdG8gdGhlIG1ldGhvZCB5b3Ugd2lzaCB0byB1c2UsIGFuZCBoaXQgRW50ZXIuICBZb3Ugd2lsbCB0aGVuCmJlIHByb21wdGVkIGZvciB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gZG8gdGhlIGluc3RhbGxhdGlvbi4KCkFzIHlvdSBtb3ZlIHRoZSBoaWdobGlnaHQgYSBkZXNjcmlwdGlvbiBvZiBlYWNoIG1ldGhvZCwgd2hlcmUgYXZhaWxhYmxlLCBpcwpkaXNwbGF5ZWQgaW4gdGhlIGJvdHRvbSBoYWxmIG9mIHRoZSBzY3JlZW4uCgpJZiB5b3Ugd2lzaCB0byBxdWl0IHdpdGhvdXQgY2hhbmdpbmcgYW55dGhpbmcgdXNlIHRoZSBgeCcga2V5IHdoaWxlIGluIHRoZSBsaXN0Cm9mIGluc3RhbGxhdGlvbiBtZXRob2RzLgoKQSBmdWxsIGxpc3Qgb2Yga2V5c3Ryb2tlcyBpcyBhdmFpbGFibGUgYnkgcHJlc3NpbmcgYGsnIG5vdywgb3IgZnJvbSB0aGUgaGVscAptZW51IHJlYWNoYWJsZSBieSBwcmVzc2luZyBgPycuCgBlbmhhbmNlcwBlcnJvciBkdXJpbmcgcmVhZCBvZiBtZXRob2Qgb3B0aW9ucyBmaWxlIGAlLjI1MHMnAGVycm9yIGR1cmluZyByZWFkIG9mIG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAGVycm9yIGluIHJlZ3VsYXIgZXhwcmVzc2lvbgBlcnJvciByZWFkaW5nIGFja25vd2xlZGdlbWVudCBvZiBwcm9ncmFtIGZhaWx1cmUgbWVzc2FnZQBlcnJvciByZWFkaW5nIGtleWJvYXJkIGluIGhlbHAAZXJyb3IgcmVhZGluZyBvcHRpb25zIGZpbGUgYCUuMjUwcycAZmFpbGVkIHRvIGFsbG9jYXRlIGNvbG91ciBwYWlyAGZhaWxlZCB0byBibG9jayBTSUdXSU5DSABmYWlsZWQgdG8gY3JlYXRlIGJhc2VsaXN0IHBhZABmYWlsZWQgdG8gY3JlYXRlIGhlYWRpbmcgcGFkAGZhaWxlZCB0byBjcmVhdGUgaW5mbyBwYWQAZmFpbGVkIHRvIGNyZWF0ZSBxdWVyeSB3aW5kb3cAZmFpbGVkIHRvIGNyZWF0ZSB0aGlzc3RhdGUgcGFkAGZhaWxlZCB0byBjcmVhdGUgdGl0bGUgd2luZG93AGZhaWxlZCB0byBjcmVhdGUgd2hhdGluZm8gd2luZG93AGZhaWxlZCB0byBnZXQgb2xkIFNJR1dJTkNIIHNpZ2FjdABmYWlsZWQgdG8gZ2V0IG9sZCBzaWduYWwgbWFzawBmYWlsZWQgdG8gZ2V0Y2ggaW4gbWFpbiBtZW51AGZhaWxlZCB0byByZS1ibG9jayBTSUdXSU5DSABmYWlsZWQgdG8gcmVhZCBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwBmYWlsZWQgdG8gcmVzdG9yZSBvbGQgU0lHV0lOQ0ggc2lnYWN0AGZhaWxlZCB0byByZXN0b3JlIG9sZCBzaWduYWwgbWFzawBmYWlsZWQgdG8gc2V0IG5ldyBTSUdXSU5DSCBzaWdhY3QAZmFpbGVkIHRvIHVuYmxvY2sgU0lHV0lOQ0gAZ2V0Y2ggZmFpbGVkAGhhbGYgY29uZmlndXJlZCAoY29uZmlnIGZhaWxlZCkAaGFsZiBpbnN0YWxsZWQAaG9sZABpAGluZGV4IHN0cmluZyB0b28gbG9uZwBpbnN0YWxsAGluc3RhbGxhdGlvbiBzY3JpcHQAaW5zdGFsbGVkAGludmFsaWQgc2VhcmNoIG9wdGlvbiBnaXZlbgBpb2N0bChUSU9DR1dJTlNaKSBmYWlsZWQAbWVudQBtZXRob2QgYCUuMjUwcycgaGFzIG5hbWUgdGhhdCBpcyB0b28gbG9uZyAoJWQgPiAlZCBjaGFyYWN0ZXJzKQBuZXcgcGFja2FnZQBuZXdsaW5lIGJlZm9yZSBvcHRpb24gbmFtZSBzdGFydABuZXdsaW5lIGJlZm9yZSBzdW1tYXJ5AG5vbi1hbHBoYW51bSBpbiBvcHRpb24gbmFtZQBub24tZGlnaXQgd2hlcmUgZGlnaXQgd2FudGVkAG5vbmFscGhhIHdoZXJlIG9wdGlvbiBuYW1lIHN0YXJ0IHdhbnRlZABub3QgaW5zdGFsbGVkAHByZS1kZXBlbmRzIG9uAHByb3ZpZGVzAHB1cmdlAHEAcXVlcnkvc2V0dXAgc2NyaXB0AHIAcmVjb21tZW5kcwByZW1vdmUAcmVtb3ZlZCAoY29uZmlncyByZW1haW4pAHJlcGxhY2VzAHMAc2NyZWVuIHBhcnQAc3VnZ2VzdHMAc3ludGF4IGVycm9yIGluIG1ldGhvZCBvcHRpb25zIGZpbGUgYCUuMjUwcycgLS0gJXMAdGVybWluYWwgbGFja3MgbmVjZXNzYXJ5IGZlYXR1cmVzLCBnaXZpbmcgdXAAdHJpZ2dlcmVkAHUAdW5hYmxlIHRvIGFjY2VzcyBtZXRob2Qgc2NyaXB0IGAlLjI1MHMnAHVuYWJsZSB0byBjbG9zZSBuZXcgb3B0aW9uIGZpbGUgYCUuMjUwcycAdW5hYmxlIHRvIGluc3RhbGwgbmV3IG9wdGlvbiBhcyBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBjdXJyZW50IG9wdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBvcGVuIG5ldyBvcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gcmVhZCBgJS4yNTBzJyBkaXJlY3RvcnkgZm9yIHJlYWRpbmcgbWV0aG9kcwB1bmFibGUgdG8gcmVhZCBtZXRob2Qgb3B0aW9ucyBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBzdGF0IG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byB3cml0ZSBuZXcgb3B0aW9uIHRvIGAlLjI1MHMnAHVua25vd24gYWN0aW9uIHN0cmluZyBgJS41MHMnAHVucGFja2VkIChub3Qgc2V0IHVwKQB1cGRhdGUgYXZhaWxhYmxlIGxpc3Qgc2NyaXB0AFByb2plY3QtSWQtVmVyc2lvbjogZHNlbGVjdApSZXBvcnQtTXNnaWQtQnVncy1UbzogZGViaWFuLWRwa2dAbGlzdHMuZGViaWFuLm9yZwpQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMS0xMC0xNCAwNzoxMSswMjAwClBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDMtMDggMTM6MzcrMDEwMApMYXN0LVRyYW5zbGF0b3I6IFBldGVyIEtyZWZ0aW5nIDxwZXRlcmtAZGViaWFuLm9yZz4KTGFuZ3VhZ2UtVGVhbTogU3dlZGlzaCA8ZGViaWFuLWwxMG4tc3dlZGlzaEBsaXN0cy5kZWJpYW4ub3JnPgpMYW5ndWFnZTogc3YKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKAAoKJXM6ICVzCgAKCkFudsOkbmQgXlAgb2NoIF5OLCBwaWx0YW5nZW50ZXIsIGbDtnJzdGEgYm9rc3TDpHZlciBlbGxlciBzaWZmcm9yLgpUcnljayA8RW50ZXI+IGbDtnIgYXR0IGJla3LDpGZ0YSB2YWwuIF5MIHJpdGFyIG9tIHNrw6RybWVuLgoACgpTa3JpdnNreWRkYXQgbMOkZ2U6IGR1IGthbiBiYXJhIHRpdHRhIHDDpSBpbm5laMOlbGxldCEAClRyeWNrIDxFbnRlcj4gZsO2ciBhdHQgZm9ydHPDpHR0YS4AIAAgIC0tICVkJSUsIHRyeWNrIAAgIC0taGVscCAgICAgICAgICAgICAgICAgICAgIFZpc2EgZGV0dGEgaGrDpGxwbWVkZGVsYW5kZS4KICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICBWaXNhIHZlcnNpb25zbnVtbWVyLgoKACAoYWxmYWJldGlza3QpACAodGlsbGcuLCBwcmlvcml0ZXQpACAodGlsbGcuLCBhdmRlbG5pbmcpACAoZWZ0ZXIgdGlsbGfDpG5nbGlnaGV0KQAgKGVmdGVyIHByaW9yaXRldCkAIChwZXIgYXZkZWxuaW5nKQAgKGVmdGVyIHN0YXR1cykAIChzdGF0dXMsIHByaW9yaXRldCkAIChzdGF0dXMsIGF2ZGVsbmluZykAIHZlcmthciBpbnRlIHZhcmEgdGlsbGfDpG5nbGlnCgAgbWFya2VyYTorLz0vLSBrb25jaXM6diBoasOkbHA6PwAgbWFya2VyYTorLz0vLSBwcmF0c2FtOnYgaGrDpGxwOj8AIGVsbGVyIAAga29uY2lzOnYgaGrDpGxwOj8AIHByYXRzYW06diBoasOkbHA6PwAhRmVsIQAlLSpzICVzJXMlczsgICVzICh2YXI6ICVzKS4gICVzACVzICVzIHBha2V0ACVzICVzIHBha2V0IGkgYXZkZWxuaW5nICVzACVzICVzIHBha2V0IHV0YW4gYXZkZWxuaW5nACVzIGbDtnIgbWVyACVzIGkgYXZkZWxuaW5nICVzACVzIHBha2V0IHV0YW4gYXZkZWxuaW5nACVzIMOldGVyZ8OlcgAqIE1hcmtlcmluZ3NyYWQ6IEVuIHJhZCBpIHBha2V0bGlzdGFuIGtvbW1lciBhdHQgbWFya2VyYXMuIERlbiBhbmdlciB2aWxrYQogIHBha2V0IHNvbSBrb21tZXIgYXR0IHDDpXZlcmthcyBvbSAiKyIsICItIiBvY2ggIl8iIHRyeWNrcy4KCiogQXZkZWxuaW5nc2xpbmplbiBpIG1pdHRlbiBhdiBza8Okcm1lbiB2aXNhciBlbiBrb3J0IGbDtnJrbGFyaW5nIGF2IGRldCBudQogIG1hcmtlcmFkZSBwYWtldGV0cyBzdGF0dXMsIGVsbGVyIGVuIGJlc2tyaXZuaW5nIGF2IHZpbGtlbiBncnVwcCBzb20gbWFya2VyYXMKICBvbSBtYXJrZXJpbmdzcmFkZW4gc3TDpXIgcMOlIGVuIHPDpWRhbiByYWQuIE9tIGR1IGludGUgZsO2cnN0w6VyIGJldHlkZWxzZW4gYXYKICBuw6Vnb24gYXYgc3RhdHVzc3ltYm9sZXJuYSBzb20gdmlzYXMga2FuIGR1IGfDpSB0aWxsIHBha2V0ZXQgb2NoIHRpdHRhIHDDpQogIGF2ZGVsbmluZ3NsaW5qZW4sIGVsbGVyIGFudsOkbmRhICJ2IiBmw7ZyIGF0dCBzbMOlIHDDpSBkZXQgcHJhdHNhbW1hIGzDpGdldAogICh0cnljayAidiIgaWdlbiBmw7ZyIGF0dCDDpXRlcmfDpSB0aWxsIGRlbiBrb25jaXNhIHZpc25pbmdlbikuCgoqIERlbiBuZWRyZSBkZWxlbiBhdiBza8Okcm1lbiB2aXNhciB5dHRlcmxpZ2FyZSBpbmZvcm1hdGlvbiBvbSBkZXQgbnUgbWFya2VyYWRlCiAgcGFrZXRldCAob20gZW5kYXN0IGV0dCBwYWtldCBtYXJrZXJhdHMpLgoKICBEZW4ga2FuIHZpc2EgZGVuIHV0w7ZrYWRlIGJlc2tyaXZuaW5nZW4gYXYgcGFrZXRldCwgZGV0YWxqZXIgb20gaW50ZXJuIHBha2V0LQogIGluZm9ybWF0aW9uIChhbnRpbmdlbiBmw7ZyIGRlbiBpbnN0YWxsZXJhZGUgZWxsZXIgZGVuIHRpbGxnw6RuZ2xpZ2EgdmVyc2lvbmVuCiAgYXYgcGFrZXRldCksIGVsbGVyIGluZm9ybWF0aW9uIG9tIGtvbmZsaWt0ZXIgb2NoIGJlcm9lbmRlbiBzb20gZ8OkbGxlciBkZXQKICBha3R1ZWxsYSBwZWt0ZXQgKGkgdW5kZXJsaXN0b3IgZMOkciBrb25mbGlrdGVyL2Jlcm9lbmRlbiBoYW50ZXJhcykuCgogIEFudsOkbmQgImkiLXRhbmdlbnRlbiBmw7ZyIGF0dCBjeWtsYSBnZW5vbSBkZSBvbGlrYSB2aXNuaW5nc2zDpGdlbmEsIG9jaCAiSSIKICBmw7ZyIGF0dCBnw7ZtbWEgaW5mb3JtYXRpb25zdmlzbmluZ2VuLCBlbGxlciB1dMO2a2EgZGVuIHRpbGwgYXR0IGFudsOkbmRhIG7DpHN0YW4KICBoZWxhIHNrw6RybWVuLgoAPHN0YW5kYXJkIGZlbD4APHN0YW5kYXJkIHV0PgA/AEbDtnJrLgBBdmJyeXQgLSBzbHV0YSB1dGFuIGF0dCDDpG5kcmEAw4V0a29tc3RtZXRvZCAiJXMiLgDDhXRnw6RyZGVyOgogIGFjY2VzcyB1cGRhdGUgc2VsZWN0IGluc3RhbGwgY29uZmlnIHJlbW92ZSBxdWl0CgoAQWxsYQBBbGxhIHBha2V0AEF0dHJpYnV0OgoAVGlsbGcudmVyAFRpbGxnw6RuZ2xpZ2EAVGlsbGfDpG5nbGlnIGtvbnRyb2xsZmlsc2luZm9ybWF0aW9uIGbDtnIAVGlsbGfDpG5nbGlnYSBwYWtldCAoZWogaW5zdGFsbGVyYWRlIGp1c3QgbnUpAFRyYXNpZ2EAVHJhc2lnYSBpbnN0YWxsZXJhZGUgcGFrZXQAVsOkbGogYW52w6RuZCDDpXRrb21zdG1ldG9kLgBGw6RyZ2VyOgoAS29uZmlndXJlcmEgcGFrZXQgc29tIMOkbm51IGVqIGtvbmZpZ3VyZXJhdHMuAENvcHlyaWdodCDCqSAxOTk0LTE5OTYgSWFuIEphY2tzb24uCkNvcHlyaWdodCDCqSAyMDAwLDIwMDEgV2ljaGVydCBBa2tlcm1hbi4KAEfDpSBnZW5vbSBpbmZvcm1hdGlvbnN2aXNuaW5nYXJuYQBEZWJpYW4gIiVzIiBwYWtldGhhbnRlcmluZ3NncsOkbnNzbml0dCB2ZXJzaW9uICVzLgoASGFudGVyaW5nIGF2IGJlcm9lbmRlbi9rb25mbGlrdGVyIC0gaW50cm9kdWt0aW9uLgoKRXR0IGVsbGVyIGZsZXJhIGF2IGRpbmEgdmFsIGhhciBvcnNha2F0IGVuIGtvbmZsaWt0IGVsbGVyIGV0dCBiZXJvZW5kZXByb2JsZW0gLQp2aXNzYSBwYWtldCBiw7ZyIGVuZGFzdCBpbnN0YWxsZXJhcyBpIHNhbWJhbmQgbWVkIHZpc3NhIGFuZHJhLCBvY2ggdmlzc2EKa29tYmluYXRpb25lciBhdiBwYWtldCBrYW4gaW50ZSBpbnN0YWxsZXJhcyBzYW10aWRpZ3QuCgpEdSBrb21tZXIgYXR0IHNlIGVuIHVuZGVybGlzdGEgbWVkIGRlIGludm9sdmVyYW5kZSBwYWtldGVuLiBOZWRyZSBoYWx2YW4gYXYKc2vDpHJtZW4gdmlzYXIgcmVsZXZhbnRhIGtvbmZsaWt0ZXIgb2NoIGJlcm9lbmRlbi4gQW52w6RuZCAiaSIgZsO2ciBhdHQgY3lrbGEKbWVsbGFuIGRlbSwgcGFrZXRiZXNrcml2bmluZ2FybmEgb2NoIGRlbiBpbnRlcm5hIGtvbnRyb2xsaW5mb3JtYXRpb25lbi4KCkVuIHNhbWxpbmcgImbDtnJlc2xhZ25hIiBwYWtldCBoYXIgYmVyw6RrbmF0cywgb2NoIGRlIHVyc3BydW5nbGlnYQppbnN0w6RsbG5pbmdhcm5hIGkgdW5kZXJsaXN0YW4gaGFyIHNhdHRzIHRpbGwgYXR0IG1hdGNoYSBkZXNzYSwgc8OlIGF0dCBkdQpoZWx0IGVua2VsdCBrYW4gdHJ5Y2thIEVudGVyIGbDtnIgYXR0IGFjY2VwdGVyYSB2YWxlbiBvbSBkdSB2aWxsLiBEdSBrYW4KYXZicnl0YSDDpG5kcmluZ2FybmEgc29tIG9yc2FrYWRlIHByb2JsZW1lbiBvY2ggZ8OlIHRpbGxiYWthIHRpbGwgaHV2dWRsaXN0YW4KZ2Vub20gYXR0IHRyeWNrYSBldHQgdmVyc2FsdCAiWCIuCgpEdSBrYW4gb2Nrc8OlIHN0ZWdhIGdlbm9tIGxpc3RhbiBvY2ggw6RuZHJhIGluc3TDpGxsbmluZ2FybmEgc8OlIGF0dCBkZSBibGlyIG1lcgp2YWQgZHUgw7Zuc2thciwgb2NoIGR1IGthbiAiZsO2cmthc3RhIiBtaXR0IGbDtnJzbGFnIGdlbm9tIGF0dCBhbnbDpG5kYSB2ZXJzYWx0CiJEIiBlbGxlciAiUiIgKHNlIHRhbmdlbnRib3Jkc2hqw6RscGVuKS4gRHUga2FuIGFudsOkbmRhIHZlcnNhbHQgIlEiIGbDtnIKYXR0IHR2aW5nYSBtaWcgYXR0IGFjY2VwdGVyYSBudXZhcmFuZGUgaW5zdMOkbGxuaW5nYXIsIG9tIGR1IMO2bnNrYXIgZ8OlIGbDtnJiaQpyZWtvbW1lbmRhdGlvbmVuLCBlbGxlciB0eWNrZXIgYXR0IHByb2dyYW1tZXQgbWlzc3RhZ2l0IHNpZy4KClRyeWNrIDxCbGFua3N0ZWc+IGbDtnIgYXR0IGzDpG1uYSBoasOkbHBlbiBvY2gga29tbWEgdGlsbCB1bmRlcmxpc3Rhbi4gS29tIGlow6VnOgp0cnljayAiPyIgZsO2ciBoasOkbHAuCgBCZXNrcml2bmluZwBWaXNuaW5nLCBkZWwgMTogcGFrZXRsaXN0bmluZyBvY2ggc3RhdHVzc3ltYm9sZXIAVmlzbmluZywgZGVsIDI6IGxpc3RtYXJrZXJpbmcsIGluZm9ybWF0aW9uc3Zpc25pbmcARklHTQBmaWxzbHV0IGbDtnIgdmFsbmFtbmV0cyBiw7ZyamFuAGZpbHNsdXQgZsO2cmUgc2FtbWFuZmF0dG5pbmcAZmlsc2x1dCBpIGluZGV4c3Ryw6RuZwBmaWxzbHV0IGkgdmFsbmFtbgBmaWxzbHV0IGkgc2FtbWFuZmF0dG5pbmcgLSByYWRzbHV0IHNha25hcwBGZWwARmVsOiAARsO2cmtsYXJpbmcAZXh0cmEAR8OlIHRpbGwgbGlzdGFucyBzbHV0AEfDpSB0aWxsIGxpc3RhbnMgYsO2cmphbgBIasOkbHBpbmZvcm1hdGlvbiBmaW5ucyBmw7ZyIGbDtmxqYW5kZSDDpG1uZW46AEhqw6RscDogAFZpawB2aWt0aWdhAEluc3QudmVyAEluc3RhbGxlcmEgb2NoIHVwcGdyYWRlcmEgw7Zuc2thZGUgcGFrZXQuAEluc3RhbGxlcmFkZQBJbnN0YWxsZXJhZCBrb250cm9sbGZpbHNpbmZvcm1hdGlvbiBmw7ZyIABJbnN0YWxsZXJhZGUgcGFrZXQASW5zdGFsbGVyYWQ/AEluYsO2cmRlcyBiZXJvZW5kZW4ASW50cm9kdWt0aW9uIHRpbGwga29uZmxpa3QtL2Jlcm9lbmRlaGFudGVyaW5nc3VuZGVybGlzdGFuAEludHJvZHVrdGlvbiB0aWxsIG1ldG9kdmFsc3Nrw6RybWVuAEludHJvZHVrdGlvbiB0aWxsIHBha2V0dmFsZW4ASW50cm9kdWt0aW9uIHRpbGwgZGVuIHNrcml2c2t5ZGRhZGUgcGFrZXRsaXN0ZWJsw6RkZHJhcmVuAE9naWx0aWcgJXMgIiVzIgoAVGFuZ2VudGJpbmRuaW5nYXIAVGFuZ2VudGVyAFRhbmdlbnRlciBmw7ZyIG1ldG9kdmFsAEfDtnIgbWFya2VyaW5nIG1pbmRyZSBzcGVjaWZpawBHw7ZyIG1hcmtlcmluZyBtZXIgc3BlY2lmaWsATWFya2VyYSBwYWtldCBmw7ZyIGF2aW5zdGFsbGF0aW9uIG9jaCByYWRlcmluZwBNYXJrZXJhIHBha2V0IGbDtnIgYXZpbnN0YWxsYXRpb24ATWFya2VyYSBwYWtldCBmw7ZyIGluc3RhbGxhdGlvbgBNYXJrZXJhZCBmw7ZyAFLDtnJlbHNldGFuZ2VudGVyOiBOw6RzdGEvRsO2cmVnw6VlbmRlLCBCw7ZyamFuL1NsdXQsIFVwcC9OZXIsIEZyYW3DpXQvQmFrw6V0OgogIGosIE5lZMOldHBpbCAgICAgICAgICAgaywgVXBww6V0cGlsICAgICAgICAgICAgIGZseXR0YSBtYXJrZXJpbmdzcmFkCiAgTiwgUGdEbiwgYmxhbmtzdGVnICAgIFAsIFBnVXAsIGJhY2tzdGVnICAgICAgIHJ1bGxhIGxpc3RhbiBlbiBzaWRhCiAgXm4gICAgICAgICAgICAgICAgICAgIF5wICAgICAgICAgICAgICAgICAgICAgIHJ1bGxhIGxpc3RhbiBlbiByYWQKICB0LCBIb21lICAgICAgICAgICAgICAgZSwgRW5kICAgICAgICAgICAgICAgICAgYsO2cmphbi9zbHV0ZXQgYXYgbGlzdGFuCiAgdSAgICAgICAgICAgICAgICAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgIHJ1bGxhIGluZm90ZXh0IGVuIHNpZGEKICBedSAgICAgICAgICAgICAgICAgICAgXmQgICAgICAgICAgICAgICAgICAgICAgcnVsbGEgaW5mb3RleHQgZW4gcmFkCiAgQiwgdsOkbnN0ZXJwaWwgICAgICAgICBGLCBow7ZnZXJwaWwgICAgICAgICAgICAgcGFub3JlcmEgdmlzbmluZyAxLzMgc2vDpHJtCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgIHBhbm9yZXJhIHZpc25pbmcgZXR0IHRlY2tlbgoKTWFya2VyYSBwYWtldCBmw7ZyIHNlbmFyZSBoYW50ZXJpbmc6CiArLCBJbnNlcnQgIGluc3RhbGxlcmEvdXBwZ3JhZGVyYSAgID0sIEggIGjDpWxsIGkgbnV2YXJhbmRlIHRpbGxzdMOlbmQKIC0sIERlbGV0ZSAgdGEgYm9ydCAgICAgICAgICAgICAgICAgOiwgRyAgc3TDpG5nIGF2ICJow6VsbCI6CiBfICAgICAgICAgIHRhIGJvcnQgJiByYWRlcmEga29uZmlnLiAgICAgICAgICAgIHVwcGdyYWRlcmEvbMOkbW5hIG9pbnN0YWxsZXJhdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXZlcnNlOgpBdnNsdXRhLCBsw6RtbmEsIHNrcml2IMO2dmVyICh2ZXJzYWxlciEpOiAgICAgICA/LCBGMSBiZWfDpHIgaGrDpGxwICjDpHZlbiBIZWxwKQogRW50ZXIgICBCZWtyw6RmdGEsIGzDpG1uYSAodW5kZXJzw7ZrIGJlcm9lbmRlbikgaSwgSSAgdsOkeGxhL2N5a2xhIGluZm92aXNuaW5nYXIKICAgUSAgICAgQmVrcsOkZnRhLCBsw6RtbmEgKGlnbm9yZXJhIGJlcm9lbmRlbikgbywgTyAgY3lrbGEgc29ydGVyaW5nc3ZhbAogWCwgRXNjICBBdnNsdXRhIHV0YW4gYXR0IGdlbm9tZsO2cmEgw6RuZHJpbmdhciB2LCBWICDDpG5kcmEgc3RhdHVzdmlzbmluZ3N2YWwKICAgUiAgICAgw4V0ZXJnw6UgdGlsbCBmw7ZyZWfDpWVuZGUgdGlsbHN0w6VuZCAgICAgIF5sICAgcml0YSBvbSBza8Okcm1lbgogICBVICAgICBTdMOkbGwgdGlsbCBmw7ZyZXNsYWdldCB0aWxsc3TDpW5kICAgICAgICAvICAgc8O2ayAoRW50ZXIgYXZicnl0ZXIpCiAgIEQgICAgIFPDpHR0IGFsbGEgdGlsbCDDtm5za2F0IHRpbGxzdMOlbmQgICAgICBuLCBcICByZXBldGVyYSBzZW5hc3RlIHPDtmtuaW5nZW4KAFLDtnJlbHNldGFuZ2VudGVyOiBOw6RzdGEvRsO2cmVnw6VlbmRlLCBCw7ZyamFuL1NsdXQsIFVwcC9OZXIsIEZyYW3DpXQvQmFrw6V0OgogIGosIE5lZMOldHBpbCAgICAgICAgICAgaywgVXBww6V0cGlsICAgICAgICAgICAgIGZseXR0YSBtYXJrZXJpbmdzcmFkCiAgTiwgUGdEbiwgYmxhbmtzdGVnICAgIFAsIFBnVXAsIGJhY2tzdGVnICAgICAgIHJ1bGxhIGxpc3RhbiBlbiBzaWRhCiAgXm4gICAgICAgICAgICAgICAgICAgIF5wICAgICAgICAgICAgICAgICAgICAgIHJ1bGxhIGxpc3RhbiBlbiByYWQKICB0LCBIb21lICAgICAgICAgICAgICAgZSwgRW5kICAgICAgICAgICAgICAgICAgYsO2cmphbi9zbHV0ZXQgYXYgbGlzdGFuCiAgdSAgICAgICAgICAgICAgICAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgIHJ1bGxhIGluZm90ZXh0IGVuIHNpZGEKICBedSAgICAgICAgICAgICAgICAgICAgXmQgICAgICAgICAgICAgICAgICAgICAgcnVsbGEgaW5mb3RleHQgZW4gcmFkCiAgQiwgdsOkbnN0ZXJwaWwgICAgICAgICBGLCBow7ZnZXJwaWwgICAgICAgICAgICAgcGFub3JlcmEgdmlzbmluZyAxLzMgc2vDpHJtCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgIHBhbm9yZXJhIHZpc25pbmcgZXR0IHRlY2tlbgooRGV0dGEgw6RyIHNhbW1hIGbDtnJmbHl0dG5pbmdzdGFuZ2VudGVyIHNvbSBpIHBha2V0bGlzdGFuLikKCkF2c2x1dGE6CiBFbnRlciAgIHbDpGxqZXIgbWV0b2RlbiBvY2ggZ8OlciB0aWxsIGRlc3Mga29uZmlndXJhdGlvbnNkaWFsb2cKIHgsIFggICAgYXZzbHV0YXIgdXRhbiBhdHQgw6RuZHJhIGVsbGVyIHN0w6RsbGEgaW4gaW5zdGFsbGF0aW9uc21ldG9kZW4KCkRpdmVyc2U6CiAgPywgSGVscCwgRjEgICBiZSBvbSBoasOkbHAKIF5sICAgICAgICAgICAgIHJpdGEgb20gc2vDpHJtZW4KICAvICAgICAgICAgICAgIHPDtmsgKEVudGVyIGF2YnJ5dGVyKQogIFwgICAgICAgICAgICAgcmVwZXRlcmEgc2VuYXN0ZSBzw7ZrbmluZwoAR8OlIG5lcgBHw6UgdXBwAE55YQBOeWEgdGlsbGfDpG5nbGlnYSBwYWtldABJbmdlbiBiZXNrcml2bmluZyBmaW5ucy4ASW5nZW4gZsO2cmtsYXJpbmcgZmlubnMuAFRvbSBmw6RyZ2FuZ2l2ZWxzZQoAR2FtbGEgb2NoIGxva2FsYSBwYWtldCBzb20gZmlubnMgcMOlIHN5c3RlbWV0AEdhbWxhL2xva2FsYQBHYW1tYWwgbWFya2VyaW5nAFZhbAB2YWxiYXJhAEZsYWdnb3I6CiAgLS1hZG1pbmRpciA8a2F0YWxvZz4gICAgICAgQW52w6RuZCA8a2F0YWxvZz4gaXN0w6RsbGV0IGbDtnIgJXMuCiAgLS1leHBlcnQgICAgICAgICAgICAgICAgICAgU2zDpSBww6UgZXhwZXJ0bMOkZ2V0LgogIC0tZGVidWcgPGZpbD4gfCAtRDxmaWw+ICAgIFNsw6UgcMOlIGZlbHPDtmtuaW5nLCBza2lja2EgdXRza3JpZnQgdGlsbCA8ZmlsPi4KICAtLWNvbG91ciB8IC0tY29sb3Igc2NyZWVucGFydDpbZm9yZWdyb3VuZF0sW2JhY2tncm91bmRdWzphdHRyWythdHRyKy4uXV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLb25maWd1cmVyYSBza8Okcm1mw6RyZ2VyLgoKAFBha2V0AFRyeWNrIDxFbnRlcj4gZsO2ciBhdHQgZm9ydHPDpHR0YS4KAFRyeWNrID8gZsO2ciBoasOkbHBtZW55biwgLiBmw7ZyIG7DpHN0YSDDpG1uZSwgPGJsYW5rc3RlZz4gbMOkbW5hciBoasOkbHBlbi4AVHJ5Y2sgZW4gdGFuZ2VudCBmcsOlbiBsaXN0YW4gb3ZhbiwgPGJsYW5rc3RlZz4sICJxIiBlbGxlciAiUSIgYXZzbHV0YXIgaGrDpGxwZW4sCiAgZWxsZXIgIi4iIChwdW5rdCkgZsO2ciBhdHQgbMOkc2EgaGrDpGxwc2lkb3JuYSBpIHNla3ZlbnMuIABQcmlvcml0ZXQAUmFkZXJhZGUAUmFkZXJhZGUgcGFrZXQgb2NoIGRlIHNvbSBhbGRyaWcgaW5zdGFsbGVyYXRzAEzDpG1uYXIgZHNlbGVjdC4AQXZzbHV0YSB1dGFuIGF0dCDDpG5kcmEgdmFsZCDDpXRrb21zdG1ldG9kAEF2c2x1dGEgYmVrcsOkZnRhbmRlIHV0YW4ga29udHJvbGwAQXZzbHV0YSBiZWtyw6RmdGFuZGUgb2NoIGtvbnRyb2xsZXJhIGJlcm9lbmRlbgBBdnNsdXRhIG9jaCBzdHJ1bnRhIGkgZsO2cnNsYWdlbgBPTUlOU1RBTExFUkEAUml0YSBvbSBiaWxkZW4AVGEgYm9ydCBvw7Zuc2thZCBwcm9ncmFtdmFyYS4AQm9ydHRhZ25hAEJvcnR0YWduYSBvY2ggZWogbMOkbmdyZSB0aWxsZ8OkbmdsaWdhIHBha2V0AEJvcnR0YWduYSBwYWtldCAoa29uZmlndXJhdGlvbiBrdmFyKQBSZXBldGVyYSBzZW5hc3RlIHPDtmtuaW5nLgBLcnYAQmUgb20gaGrDpGxwIChnw6UgZ2Vub20gaGrDpGxwc2vDpHJtYXJuYSkAVsOkbGogcGFrZXQgZHUgdmlsbCBoYSBww6UgZGl0dCBzeXN0ZW0uAGtyw6R2ZGEAw4V0ZXJnw6UgdGlsbCBudXZhcmFuZGUgaW5zdGFsbGVyYXQgdGlsbHN0w6VuZCBmw7ZyIGFsbGEgcGFrZXQAw4V0ZXJnw6UgdGlsbCBkaXJla3QgZsO2cmVzbGFnbmEgdGlsbHN0w6VuZCBmw7ZyIGFsbGEgcGFrZXQAw4V0ZXJnw6UgdGlsbCB0aWRpZ2FyZSB0aWxsc3TDpW5kIGbDtnIgYWxsYSBwYWtldADDhXRlcmfDpSB0aWxsIGbDtnJlc2xhZ25hIHRpbGxzdMOlbmQgZsO2ciBhbGxhIHBha2V0AFNrw6RybWRlbGFyOgoAUnVsbGEgYmFrw6V0IGdlbm9tIGhqw6RscC9pbmZvcm1hdGlvbgBSdWxsYSB0aWxsYmFrYSBoasOkbHBlbi9pbmZvcm1hdGlvbmVuIGVuIHJhZABSdWxsYSBiYWvDpXQgZ2Vub20gbGlzdGFuAFJ1bGxhIHRpbGxiYWthIGxpc3RhbiBlbiByYWQAUnVsbGEgZnJhbcOldCBnZW5vbSBoasOkbHAvaW5mb3JtYXRpb24AUnVsbGFmcmFtIGhqw6RscGVuL2luZm9ybWF0aW9uZW4gZW4gcmFkAFJ1bGxhIGZyYW3DpXQgZ2Vub20gbGlzdGFuAFJ1bGxhIGZyYW0gbGlzdGFuIGVuIHJhZABTw7ZrIGVmdGVyPyAAU8O2ayBlZnRlciBwYWtldCB2YXJzIG5hbW4gaW5uZWjDpWxsZXIgZW4gc3Ryw6RuZwBBdmRlbG4uAFbDpGxqIG51IG1hcmtlcmFkIMOldGtvbXN0bWV0b2QAU3TDpGxsIGluIGRpbiBURVJNLXZhcmlhYmVsIGtvcnJla3QsIGFudsOkbmQgZW4gYsOkdHRyZSB0ZXJtaW5hbAplbGxlciBsZXYgbWVkIGRldCBwZXItcGFrZXRoYW50ZXJhbmRlIHZlcmt0eWdldCAlcy4KAG5vcm1hbGEAU3RkAEJ5dCBzb3J0ZXJpbmdzb3JkbmluZyBwcmlvcml0ZXQvc2VrdGlvbgBUZXJtaW5hbGVuIHZlcmthciBpbnRlIHRpbGzDpXRhIG1hcmvDtnJhZHJlc3NlcmluZy4KAFRlcm1pbmFsZW4gdmVya2FyIGludGUgdGlsbMOldGEgbGp1c21hcmtlcmluZy4KAFJhZGVuIGR1IGhhciBtYXJrZXJhdCByZXByZXNlbnRlcmFyIGZsZXJhIHBha2V0LCBvbSBkdSBiZXIgb20gaW5zdGFsbGF0aW9uLCBib3J0dGFnbmluZywga3ZhcmjDpWxsbmluZywgZXRjLiBrb21tZXIgZGV0IGF0dCBww6V2ZXJrYSBhbGxhIHBha2V0IHNvbSBtYXRjaGFyIGRldCB2aXNhZGUga3JpdGVyaWV0LgoKT20gZHUgZmx5dHRhciBtYXJrZXJpbmdlbiB0aWxsIGVuIHJhZCBmw7ZyIGV0dCBzcGVjaWZpa3QgcGFrZXQga29tbWVyIGR1IGF0dCBzZSBpbmZvcm1hdGlvbiBvbSBkZXQgcGFrZXRldCBow6RyLgpEdSBrYW4gYW52w6RuZGEgIm8iIG9jaCAiTyIgZsO2ciBhdHQgdsOkbGphIHNvcnRlcmluZ3NvcmRuaW5nZW4gb2NoIGdlIGRpZyBzasOkbHYgbcO2amxpZ2hldGVuIGF0dCBtYXJrZXJhIHBha2V0IGkgb2xpa2Egc29ydGVycyBncnVwcGVyLgDDlnZyZSBoYWx2YW4gYXYgc2vDpHJtZW4gdmlzYXIgZW4gbGlzdGEgw7Z2ZXIgcGFrZXQuIEbDtnIgdmFyamUgcGFrZXQgc2VyIGR1IGZ5cmEKa29sdW1uZXIgZsO2ciBkZXJhcyBudXZhcmFuZGUgc3RhdHVzIG9jaCBtYXJrZXJpbmcuIEkgZGV0IGtvbmNpc2EgbMOkZ2V0ICh0cnljawoidiIgZsO2ciBhdHQgZsOlIHByYXRzYW10IGzDpGdlKSDDpHIgZGVzc2EgZW5rbGEgYm9rc3TDpHZlciwgZnLDpW4gdsOkbnN0ZXIgdGlsbApow7ZnZXI6CgogRmVsZmxhZ2dhOiBibGFua3N0ZWcgIC0gaW5nZXQgZmVsIChtZW4gcGFrZXRldCBrYW4gdmFyYSB0cmFzaWd0IC0gc2UgbmVkYW4pCiAgICAgICAgICAgICAiUiIgICAgICAgLSBhbGx2YXJsaWd0IGZlbCB2aWQgaW5zdGFsbGF0aW9uLCBtw6VzdGUgb21pbnN0YWxsZXJhcwogVGlsbHN0w6VuZDogICAgICAgYmxhbmtzdGVnICAgIC0gZWogaW5zdGFsbGVyYXQKICAgICAgICAgICAgICAgICAgICAgICBgKicgICAgIC0gaW5zdGFsbGVyYXQKICAgICAgICAgICAgICAgICAgICAgICBgLScgICAgIC0gZWogaW5zdGFsbGVyYXQsIGtvbmZpZ3VyYXRpb25zZmlsZXIga3ZhcnN0w6VyCiAgIHBha2V0IGkgZGVzc2EgICAgIHsgYFUnICAgICAtIHVwcGFja2F0LCBtZW4gw6RubnUgZWoga29uZmlndXJlcmF0CiAgIHRpbGxzdMOlbmQgw6RyIGludGUgeyBgQycgICAgIC0gaGFsdnQga29uZmlndXJlcmF0IChldHQgZmVsIHVwcHN0b2QpCiAgIChoZWx0KSBrb3JyZWt0ICAgIHsgYEknICAgICAtIGhhbHZ0IGluc3RhbGxlcmF0IChldHQgZmVsIHVwcHN0b2QpCiAgIGluc3RhbGxlcmFkZSAgICAgIHsgYFcnLGB0JyAtIHV0bMO2c2FyZSB2w6RudGFyIHJlc3AuIGbDtnJlc3TDpWVuZGUKIEdhbW1hbCBtYXJrZXJpbmc6IHZhZCBzb20gw7Zuc2thZGVzIGlubmFuIGxpc3RhbiB2aXNhZGVzCiBNYXJrZXJpbmc6IHZhZCDDtm5za2FzIGbDtnIgZGV0dGEgcGFrZXQ6CiAgIioiOiBtYXJrZXJhdCBmw7ZyIGF0dCBpbnN0YWxsZXJhcyBlbGxlciB1cHBncmFkZXJhcwogICItIjogbWFya2VyYXQgZsO2ciBhdHQgdGFzIGJvcnQsIG1lbiBhdHQgYmVow6VsbGEga29uZmlndXJhdGlvbnNmaWxlcm5hCiAgIj0iOiBow6VsbDogcGFrZXRldCBrb21tZXIgw7Z2ZXIgaHV2dWQgdGFnZXQgaW50ZSBhdHQgaGFudGVyYXMKICAiXyI6IG1hcmtlcmF0IGbDtnIgcmFkZXJpbmcsIMOkdmVuIGtvbmZpZ3VyYXRpb25zZmlsZXIga29tbWVyIGF0dCB0YXMgYm9ydAogICJuIjogcGFrZXRldCDDpHIgbnl0dCBoYXIgw6RubnUgaW50ZSBtYXJrZXJhdHMgZsO2ciBuw6Vnb250aW5nCgpWYXJqZSBwYWtldHMgcHJpb3JpdGV0LCBzZWt0aW9uLCBuYW1uLCBpbnN0YWxsZXJhZCBvY2ggdGlsbGfDpG5nbGlnIHZlcnNpb24KKHNraWZ0LVYgZsO2ciBhdHQgdmlzYS9kw7ZsamEpIG9jaCBzYW1tYW5mYXR0YWQgYmVza3Jpdm5pbmcgdmlzYXMgb2Nrc8OlLgoARGV0IGZpbm5zIGludGUgbsOlZ3JhIHBha2V0LgBEZXR0YSBwcm9ncmFtIMOkciBmcmkgcHJvZ3JhbXZhcmEuIFNlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMgplbGxlciBzZW5hcmUgZsO2ciBrb3BpZXJpbmdzdmlsbGtvci4gRGV0IGZpbm5zIElOR0VOIGdhcmFudGkuCgBTa3JpdiBkc2VsZWN0IC0taGVscCBmw7ZyIGhqw6RscC4Ab2tsYXNzaWZpY2VyYWRlAFBha2V0IHNvbSDDpHIgw6Agam91cgBBa3R1ZWxsYQBVcHBkYXRlcmEgbGlzdGFuIMO2dmVyIHRpbGxnw6RuZ2xpZ2EgcGFrZXQsIG9tIG3DtmpsaWd0LgBVcHBkYXRlcmFkZQBVcHBkYXRlcmFkZSBwYWtldCAobnlhcmUgdmVyc2lvbiBmaW5ucykAQW52w6RuZG5pbmc6ICVzIFs8ZmxhZ2dhPiAuLi5dIFs8w6V0Z8OkcmQ+IC4uLl0KCgBWw6Rsa29tZW4gdGlsbCBkc2VsZWN0cyBodXZ1ZHBha2V0bGlzdGEuCgpEdSBrb21tZXIgYXR0IGbDpSBzZSBlbiBsaXN0YSDDtnZlciBwYWtldCBzb20gw6RyIGluc3RhbGxlcmFkZSBlbGxlciB0aWxsZ8OkbmdsaWdhCmbDtnIgaW5zdGFsbGF0aW9uLiBFZnRlcnNvbSBkdSBpbnRlIGhhciB0aWxscsOkY2tsaWcgYmVow7ZyaWdoZXQgZsO2ciBhdHQKdXBwZGF0ZXJhIGluZm9ybWF0aW9uZW4gw6RyIGR1IGkgc2tyaXZza3lkZGF0IGzDpGdlLiBEdSBrYW4gbmF2aWdlcmEgaSBsaXN0YW4KbWVkIHBpbHRhbmdlbnRlcm5hIChzZSBoasOkbHBza8Okcm1lbiAiVGFuZ2VudGVyIikgb2NoIHNlIHDDpSBwYWtldGVucyBzdGF0dXMKc2FtdCBsw6RzYSBpbmZvcm1hdGlvbiBvbSBkZW0uCgpEdSBiw7ZyIGzDpHNhIGxpc3RhbiDDtnZlciB0YW5nZW50ZXIgb2NoIGbDtnJrbGFyaW5nZW4gYXYgdmlzbmluZ2VuLgpEZXQgZmlubnMgbXlja2V0IGRpcmVrdGhqw6RscCBhdHQgdGlsbGfDpSwgYW52w6RuZCBkZW4gLSB0cnljayAiPyIgbsOkciBzb20KaGVsc3QgZsO2ciBoasOkbHAuCgpOw6RyIGR1IHRpdHRhdCBmw6RyZGlndCB0cnlja2VyIGR1ICJRIiBlbGxlciA8RW50ZXI+IGbDtnIgYXR0IGF2c2x1dGEuCgpUcnljayA8QmxhbmtzdGVnPiBmw7ZyIGF0dCBsw6RtbmEgaGrDpGxwZW4gb2NoIGfDpSB0aWxsIGxpc3RhbiBudS4KAFbDpGxrb21lbiB0aWxsIGRzZWxlY3RzIGh1dnVkcGFrZXRsaXN0YS4KCkR1IGtvbW1lciBhdHQgdmlzYXMgZW4gbGlzdGEgw7Z2ZXIgcGFrZXQgc29tIMOkciBpbnN0YWxsZXJhZGUgZWxsZXIgdGlsbGfDpG5nbGlnYQpmw7ZyIGluc3RhbGxhdGlvbi4gRHUga2FuIG5hdmlnZXJhIGkgbGlzdGFuIGdlbm9tIGF0dCBhbnbDpG5kYSBwaWx0YW5nZW50ZXJuYSwKbWFya2VyYSBwYWtldCBmw7ZyIGluc3RhbGxhdGlvbiAobWVkICIrIikgZWxsZXIgYXZpbnN0YWxsYXRpb24gKG1lZCAiLSIpLgpQYWtldCBrYW4gbWFya2VyYXMgYW50aW5nZW4gc2rDpGx2YSBlbGxlciBpIGdydXBwZXIuIFRpbGwgYXR0IGLDtnJqYSBtZWQga29tbWVyCmR1IGF0dCBzZSBhdHQgcmFkZW4gIkFsbGEgcGFrZXQiIMOkciB2YWxkLiAiKyIsICItIiBvc3YuIGtvbW1lciBhdHQgcMOldmVya2EKYWxsYSBwYWtldCBzb20gYmVza3JpdnMgYXYgZGVuIG1hcmtlcmFkZSByYWRlbi4KVmlzc2EgYXYgZGluYSB2YWwga29tbWVyIGF0dCBvcnNha2Ega29uZmxpa3RlciBlbGxlciBiZXJvZW5kZXByb2JsZW0uIER1IGtvbW1lcgpkw6UgYXR0IGdlcyBlbiBkZWxsaXN0YSBtZWQgcmVsZXZhbnRhIHBha2V0LCBzw6UgYXR0IGR1IGthbiBsw7ZzYSBwcm9ibGVtZW4uCgpEdSBiw7ZyIGzDpHNhIGxpc3RhbiDDtnZlciB0YW5nZW50ZXIgb2NoIGbDtnJrbGFyaW5nZW4gYXYgdmlzbmluZ2VuLgpEZXQgZmlubnMgbXlja2V0IGRpcmVrdGhqw6RscCBhdHQgdGlsbGfDpSwgYW52w6RuZCBkZW4gLSB0cnljayAiPyIgbsOkciBzb20KaGVsc3QgZsO2ciBoasOkbHAuCgpOw6RyIGR1IMOkciBmw6RyZGlnIG1lZCBkaW5hIHZhbCB0cnlja2VyIGR1IDxFbnRlcj4gZsO2ciBhdHQgYmVrcsOkZnRhIGRpbmEgdmFsLAplbGxlciAiWCIgZsO2ciBhdHQgYXZzbHV0YSB1dGFuIGF0dCBzcGFyYS4gRW4gc2lzdGEga29udHJvbGwgYXYga29uZmxpa3RlcgpvY2ggYmVyb2VuZGVuIGtvbW1lciBhdHQgZ8O2cmFzLCBvY2ggw6R2ZW4gaMOkciBrYW4gZHUga29tbWEgYXR0IHNlIGVuIGRlbGxpc3RhLgoKVHJ5Y2sgPEJsYW5rc3RlZz4gZsO2ciBhdHQgbMOkbW5hIGhqw6RscGVuIG9jaCBnw6UgdGlsbCBsaXN0YW4gbnUuCgBYdHIAw4V0W2tdb21zdABbS11vbmZpZ3VyZXJhAFtJXW5zdGFsbGVyYQBbQV12c2x1dGEAW1JdYWRlcmEAW1Zdw6RsagBbVV1wcGRhdGVyYQBbZWogZnVubmV0XQBbb2vDpG5kOiAlZF0AawB2w6RudGFyIHDDpSBoYW50ZXJpbmcgYXYgdXRsw7ZzYXJlAEZFTABmw7Zyc3TDtnIAawBmw6RyZwBmw6RyZ2F0dHJpYnV0AGtyb2NrYXIgbWVkAGt1bmRlIGludGUgw7ZwcG5hIGZlbHPDtmtuaW5nc2ZpbCAiJS4yNTVzIgoAYmVyb3IgcMOlAGRvdXBkYXRlIG1pc3NseWNrYWRlcwBkb3VwZGF0ZSBtaXNzbHlja2FkZXMgaSBoYW50ZXJhcmUgZsO2ciBmw7Zuc3RlcsOkbmRyaW5nAGRzZWxlY3QgLSBpbnNwZWt0aW9uIGF2IHBha2V0c3RhdHVzAGRzZWxlY3QgLSBsaXN0YSDDtnZlciDDpXRrb21zdG1ldG9kZXIAZHNlbGVjdCAtIGh1dnVkcGFrZXRsaXN0YQBkc2VsZWN0IC0gcmVrdXJzaXYgcGFrZXRsaXN0bmluZwBkc2VsZWN0IG9jaCBkcGtnIGthbiBnw7ZyYSBhdXRvbWF0aXNrYSBpbnN0YWxsYXRpb25lciBnZW5vbSBhdHQgbGFkZGEgcGFrZXQtCmZpbGVybmEgZnLDpW4gZW4gYXYgZmxlcmEgb2xpa2EgcGxhdHNlci4KCkxpc3RhbiBsw6V0ZXIgZGlnIHbDpGxqYSBlbiBhdiBkZXNzYSBpbnN0YWxsYXRpb25zbWV0b2Rlci4KCkZseXR0YSBtYXJrZXJpbmdzcmFkZW4gdGlsbCBkZW4gbWV0b2QgZHUgdmlsbCBhbnbDpG5kYSBvY2ggdHJ5Y2sgRW50ZXIuIE51CmtvbW1lciBkdSBmcsOlZ2FzIG9tIGtyw6R2ZCBpbmZvcm1hdGlvbiBmw7ZyIGF0dCBnZW5vbWbDtnJhIGluc3RhbGxhdGlvbmVuLgoKTsOkciBkdSBmbHl0dGFyIG1hcmtlcmluZ3NyYWRlbiB2aXNhcyBlbiBiZXNrcml2bmluZyBhdiB2YXJqZSBtZXRvZCwgb20gZW4Kc8OlZGFuIGZpbm5zLCBww6Ugc2vDpHJtZW5zIG5lZHJlIGhhbHZhLgoKT20gZHUgw7Zuc2thciBhdnNsdXRhIHV0YW4gYXR0IMOkbmRyYSBuw6Vnb250aW5nIGthbiBkdSBhbnbDpG5kYSAieCItdGFuZ2VudGVuCm1lZGFuIGxpc3RhbiDDtnZlciBpbnN0YWxsYXRpb25zbWV0b2RlciB2aXNhcy4KCkVuIGtvbXBsZXR0IGxpc3RhIGF2IHRhbmdlbnRib3Jkc2Z1bmt0aW9uZXIgZsOlciBkdSBvbSBkdSB0cnlja2VyICJrIiBudSBlbGxlcgpmcsOlbiBoasOkbHBtZW55biBkdSBuw6VyIGdlbm9tIGF0dCB0cnlja2EgIj8iLgoAdXTDtmthcgBmZWwgdmlkIGzDpHNuaW5nIGF2IG1ldG9kdmFsZmlsICIlLjI1MHMiAGZlbCB2aWQgbMOkc25pbmcgYXYgYmVza3Jpdm5pbmdzZmlsICIlLjI1MHMiAGZlbCBpIHJlZ3VsasOkcnQgdXR0cnljawBrdW5kZSBpbnRlIGzDpHNhIGJla3LDpGZ0ZWxzZSBhdiBtZWRkZWxhbmRlIG9tIHByb2dyYW1zIG1pc3NseWNrYW5kZQBmZWwgdmlkIGzDpHNuaW5nIGF2IHRhbmdlbnRib3JkZXQgaSBoasOkbHBmdW5rdGlvbmVuAGZlbCB2aWQgbMOkc25pbmcgYXYgZmxhZ2dmaWwgIiUuMjUwcyIAa3VuZGUgYWxsb2tlcmEgZsOkcmdwYXIAa3VuZGUgaW50ZSBibG9ja2VyYSBmw7Zuc3RlcsOkbmRyaW5nAGt1bmRlIGludGUgc2thcGEgYmFzbGlzdGVmbGlrAGt1bmRlIGludGUgc2thcGEgcnVicmlrZmxpawBrdW5kZSBpbnRlIHNrYXBhIGluZm9ybWF0aW9uc2ZsaWsAa3VuZGUgaW50ZSBza2FwYSBmcsOlZ2Vmw7Zuc3RlcgBrdW5kZSBpbnRlIHNrYXBhICJkZXR0YSB0aWxsc3TDpW5kIi1mbGlrAGt1bmRlIGludGUgc2thcGEgdGl0ZWxmw7Zuc3RlcgBrdW5kZSBpbnRlIHNrYXBhIGluZm9ybWF0aW9uZsO2bnN0ZXIAa3VuZGUgaW50ZSBow6RtdGEgdGlkaWdhcmUgZsO2bnN0ZXJ1cHBkYXRlcmluZ3NoYW50ZXJhcmUAa3VuZGUgaW50ZSBow6RtdGEgZ2FtbWFsIHNpZ25hbG1hc2sAa3VuZGUgaW50ZSBsw6RzYSB0ZWNrZW4gaSBodXZ1ZG1lbnluAGt1bmRlIGludGUgw6V0ZXIgYmxvY2tlcmEgZsO2bnN0ZXJ1cHBkYXRlcmluZwBrdW5kZSBpbnRlIGzDpHNhIGJlc2tyaXZuaW5nc2ZpbCAiJS4yNTBzIgBrdW5kZSBpbnRlIMOldGVyc3TDpGxsYSB0aWRpZ2FyZSBmw7Zuc3RlcnVwcGRhdGVyaW5nc2hhbnRlcmFyZQBrdW5kZSBpbnRlIMOldGVyc3TDpGxsYSBnYW1tYWwgc2lnbmFsbWFzawBrdW5kZSBpbnRlIHPDpHR0YSBueSBmw7Zuc3RlcnVwcGRhdGVyaW5nc2hhbnRlcmFyZQBrdW5kZSBpbnRlIGF2YmxvY2tlcmEgZsO2bnN0ZXJ1cHBkYXRlcmluZwBnZXRjaCBtaXNzbHlja2FkZXMAaGFsdmtvbmZpZ3VyZXJhdCAoa29uZi4gbWlzc2x5Y2thZCkAaGFsdmluc3RhbGxlcmF0AGjDpWxsAGkAaW5kZXhzdHLDpG5nIGbDtnIgbMOlbmcAaW5zdGFsbGVyYQBpbnN0YWxsYXRpb25zc2tyaXB0AGluc3RhbGxlcmF0AG9naWx0aWd0IHPDtmtmbGFnZ2EgZ2l2ZW4AaW9jdGwoVElPQ0dXSU5TWikgbWlzc2x5Y2thZGVzAG1lbnkAbWV0b2RlbiAiJS4yNTBzIiBoYXIgZXR0IG5hbW4gc29tIMOkciBmw7ZyIGzDpW5ndCAoJWQgPiAlZCB0ZWNrZW4pAG55dHQgcGFrZXQAbnlyYWQgZsO2cmUgdmFsbmFtbnMgYsO2cmphbgByYWRzbHV0IGbDtnJlIHNhbW1hbmZhdHRuaW5nAGlja2UtYWxmYW51bWVyaXNrYSB0ZWNrZW4gaSB2YWxuYW1uAGlja2Utc2lmZnJhIGTDpHIgc2lmZnJhIMO2bnNrYWRlcwBpY2tlLWJva3N0YXYgZMOkciB2YWxuYW1uZXRzIGLDtnJqYW4gw7Zuc2thZGVzAGVqIGluc3RhbGxlcmF0AGJlcm9yIGkgZsO2cnbDpGcgcMOlAHRpbGxoYW5kYWjDpWxsZXIAcmFkZXJhAGEAZnLDpWdlLS9pbnN0w6RsbG5pbmdzc2tyaXB0AHIAcmVrb21tZW5kZXJhcgByYWRlcmEAYm9ydHRhZ2V0IChrb25maWcuIGt2YXIpAGVyc8OkdHRlcgB2AHNrw6RybWRlbABmw7ZyZXNsw6VyAHN5bnRheGZlbCBpIG1ldG9kZmxhZ2dmaWwgIiUuMjUwcyIgLS0gJXMAdGVybWluYWxlbiBzYWtuYXIgZnVua3Rpb25lciBzb20gYmVow7Z2cywgZ2VyIHVwcAB1dGzDtnN0AHUAa3VuZGUgaW50ZSBrb21tYSDDpXQgbWV0b2Rza3JpcHQgIiUuMjUwcyIAa3VuZGUgaW50ZSBzdMOkbmdhIG55IHZhbGZpbCAiJS4yNTBzIgBrdW5kZSBpbnRlIGluc3RhbGxlcmEgbnl0dCB2YWwgc29tICIlLjI1MHMiAGt1bmRlIGludGUgw7ZwcG5hIGFrdHVlbGwgdmFsZmlsICIlLjI1MHMiAGt1bmRlIGludGUgw7ZwcG5hIG55IHZhbGZpbCAiJS4yNTBzIgBrdW5kZSBpbnRlIMO2cHBuYSBiZXNrcml2bmluZ3NmaWwgIiUuMjUwcyIAa3VuZGUgaW50ZSBsw6RzYSBrYXRhbG9nZW4gIiUuMjUwcyIgZsO2ciBsw6RzbmluZyBhdiBtZXRvZGVyAGt1bmRlIGludGUgbMOkc2EgbWV0b2RmbGFnZ2ZpbGVuICIlLjI1MHMiAGt1bmRlIGludGUgdGEgc3RhdHVzIHDDpSBiZXNrcml2bmluZ3NmaWwgIiUuMjUwcyIAa3VuZGUgaW50ZSBza3JpdmEgbnkgdmFsZmlsICIlLjI1MHMiAG9rw6RuZCDDpXRnw6RyZHNzdHLDpG5nICIlLjUwcyIAdXBwYWNrYXQgKGVqIGtvbmYuKQBza3JpcHQgZsO2ciBhdHQgdXBwZGF0ZXJhIGxpc3RhIMO2dmVyIHRpbGxnw6RuZ2xpZ2EgcGFrZXQA