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