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