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