Obtaining new classes of optimal linear codes by puncturing and shortening optimal cyclic codes | Synapse