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B2QDjQJzcnQCoANkCHwGoQIBAHFybtJ8AmQJawJytnwDRABdEn0GfABqBHwGZAdkA40CfQdxoG6wfAJkCmsCcuZ8A0QAXSB9BnwAagF8BnwEZAuNAnPCdAKgA2QMfAZ8BKEDAQBxwm6AfAJkDWsCkAFyCnwDRABdEn0GfABqBHwGfARkC40CfQdx9G5cfAJkDmsCkAFyMnwAagFkD3wFZAuNApABc2Z0AqADZBB8BaECAQBuNHwCZBFrApABclp8AGoEZA98BWQLjQKQAXNmdAKgA2QSfAWhAgEAbgx0BWQTfAIWAIMBggFkD1MAKRRhdgEAAAogICAgICAgIFByb2Nlc3MgYSBkaXJlY3RpdmUgd2hpY2ggZWl0aGVyIGFkZHMgc29tZSBmaWxlcyBmcm9tIGBgYWxsZmlsZXNgYCB0bwogICAgICAgIGBgZmlsZXNgYCwgb3IgcmVtb3ZlcyBzb21lIGZpbGVzIGZyb20gYGBmaWxlc2BgLgoKICAgICAgICA6cGFyYW0gZGlyZWN0aXZlOiBUaGUgZGlyZWN0aXZlIHRvIHByb2Nlc3MuIFRoaXMgc2hvdWxkIGJlIGluIGEgZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgd2l0aCBkaXN0dXRpbHMgYGBNQU5JRkVTVC5pbmBgIGZpbGVzOgoKICAgICAgICAgICAgICAgICAgICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy9kaXN0dXRpbHMvc291cmNlZGlzdC5odG1sI2NvbW1hbmRzCiAgICAgICAg2gdpbmNsdWRlVCkB2gZhbmNob3J6Gm5vIGZpbGVzIGZvdW5kIG1hdGNoaW5nICVy2gdleGNsdWRl+g5nbG9iYWwtaW5jbHVkZUZ6M25vIGZpbGVzIGZvdW5kIG1hdGNoaW5nICVyIGFueXdoZXJlIGluIGRpc3RyaWJ1dGlvbvoOZ2xvYmFsLWV4Y2x1ZGX6EXJlY3Vyc2l2ZS1pbmNsdWRlKQFyEAAAAHotbm8gZmlsZXMgZm91bmQgbWF0Y2hpbmcgJXIgdW5kZXIgZGlyZWN0b3J5ICVy+hFyZWN1cnNpdmUtZXhjbHVkZdoFZ3JhZnROeiBubyBkaXJlY3RvcmllcyBmb3VuZCBtYXRjaGluZyAlctoFcHJ1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IHRoZSAnZm5tYXRjaCcKICAgICAgICBtb2R1bGU6ICcqJyBhbmQgJz8nICBtYXRjaCBub24tc3BlY2lhbCBjaGFyYWN0ZXJzLCB3aGVyZSAic3BlY2lhbCIKICAgICAgICBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQ6IHNsYXNoIG9uIFVuaXg7IGNvbG9uLCBzbGFzaCwgYW5kIGJhY2tzbGFzaCBvbgogICAgICAgIERPUy9XaW5kb3dzOyBhbmQgY29sb24gb24gTWFjIE9TLgoKICAgICAgICBJZiAnYW5jaG9yJyBpcyB0cnVlICh0aGUgZGVmYXVsdCksIHRoZW4gdGhlIHBhdHRlcm4gbWF0Y2ggaXMgbW9yZQogICAgICAgIHN0cmluZ2VudDogIioucHkiIHdpbGwgbWF0Y2ggImZvby5weSIgYnV0IG5vdCAiZm9vL2Jhci5weSIuICBJZgogICAgICAgICdhbmNob3InIGlzIGZhbHNlLCBib3RoIG9mIHRoZXNlIHdpbGwgbWF0Y2guCgogICAgICAgIElmICdwcmVmaXgnIGlzIHN1cHBsaWVkLCB0aGVuIG9ubHkgZmlsZW5hbWVzIHN0YXJ0aW5nIHdpdGggJ3ByZWZpeCcKICAgICAgICAoaXRzZWxmIGEgcGF0dGVybikgYW5kIGVuZGluZyB3aXRoICdwYXR0ZXJuJywgd2l0aCBhbnl0aGluZyBpbiBiZXR3ZWVuCiAgICAgICAgdGhlbSwgd2lsbCBtYXRjaC4gICdhbmNob3InIGlzIGlnbm9yZWQgaW4gdGhpcyBjYXNlLgoKICAgICAgICBJZiAnaXNfcmVnZXgnIGlzIHRydWUsICdhbmNob3InIGFuZCAncHJlZml4JyBhcmUgaWdub3JlZCwgYW5kCiAgICAgICAgJ3BhdHRlcm4nIGlzIGFzc3VtZWQgdG8gYmUgZWl0aGVyIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSByZWdleCBvciBhCiAgICAgICAgcmVnZXggb2JqZWN0IC0tIG5vIHRyYW5zbGF0aW9uIGlzIGRvbmUsIHRoZSByZWdleCBpcyBqdXN0IGNvbXBpbGVkCiAgICAgICAgYW5kIHVzZWQgYXMtaXMuCgogICAgICAgIFNlbGVjdGVkIHN0cmluZ3Mgd2ls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