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aCAncGF0dGVybicsIGEgVW5peC1zdHlsZSB3aWxkY2FyZCAoZ2xvYikgcGF0dGVybi4gIFBhdHRlcm5zCiAgICAgICAgYXJlIG5vdCBxdWl0ZSB0aGUgc2FtZSBhcyBpbXBsZW1lbnRlZCBieSB0aGUgJ2ZubWF0Y2gnIG1vZHVsZTogJyonCiAgICAgICAgYW5kICc/JyAgbWF0Y2ggbm9uLXNwZWNpYWwgY2hhcmFjdGVycywgd2hlcmUgInNwZWNpYWwiIGlzIHBsYXRmb3JtLQogICAgICAgIGRlcGVuZGVudDogc2xhc2ggb24gVW5peDsgY29sb24sIHNsYXNoLCBhbmQgYmFja3NsYXNoIG9uCiAgICAgICAgRE9TL1dpbmRvd3M7IGFuZCBjb2xvbiBvbiBNYWMgT1MuCgogICAgICAgIElmICdhbmNob3InIGlzIHRydWUgKHRoZSBkZWZhdWx0KSwgdGhlbiB0aGUgcGF0dGVybiBtYXRjaCBpcyBtb3JlCiAgICAgICAgc3RyaW5nZW50OiAiKi5weSIgd2lsbCBtYXRjaCAiZm9vLnB5IiBidXQgbm90ICJmb28vYmFyLnB5Ii4gIElmCiAgICAgICAgJ2FuY2hvcicgaXMgZmFsc2UsIGJvdGggb2YgdGhlc2Ugd2lsbCBtYXRjaC4KCiAgICAgICAgSWYgJ3ByZWZpeCcgaXMgc3VwcGxpZWQsIHRoZW4gb25seSBmaWxlbmFtZXMgc3RhcnRpbmcgd2l0aCAncHJlZml4JwogICAgICAgIChpdHNlbGYgYSBwYXR0ZXJuKSBhbmQgZW5kaW5nIHdpdGggJ3BhdHRlcm4nLCB3aXRoIGFueXRoaW5nIGluIGJldHdlZW4KICAgICAgICB0aGVtLCB3aWxsIG1hdGNoLiAgJ2FuY2hvcicgaXMgaWdub3JlZCBpbiB0aGlzIGNhc2UuCgogICAgICAgIElmICdpc19yZWdleCcgaXMgdHJ1ZSwgJ2FuY2hvcicgYW5kICdwcmVmaXgnIGFyZSBpZ25vcmVkLCBhbmQKICAgICAgICAncGF0dGVybicgaXMgYXNzdW1lZCB0byBiZSBlaXRoZXIgYSBzdHJpbmcgY29udGFpbmluZyBhIHJlZ2V4IG9yIGEKICAgICAgICByZWdleCBvYmpl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