code: @SuppressWarnings("unchecked")
  	public static <T> CoreSubscriber<? super T> toCoreSubscriber(Subscriber<? super T> actual) {
  
  		Objects.requireNonNull(actual, "actual");
  
  		CoreSubscriber<? super T> _actual;
  
  		if (actual instanceof CoreSubscriber){
  			_actual = (CoreSubscriber<? super T>) actual;
  		}
  		else {
  			_actual = new StrictSubscriber<>(actual);
  		}
  
  		return _actual;
  	}
docs: If the actual {@link Subscriber} is not a {@link CoreSubscriber}, it will apply
  safe strict wrapping to apply all reactive streams rules including the ones
  relaxed by internal operators based on {@link CoreSubscriber}.
  
  @param <T> passed subscriber type
  
  @param actual the {@link Subscriber} to apply hook on
  @return an eventually transformed {@link Subscriber}