code: public DeterministicKey deriveChild(List<ChildNumber> parentPath, boolean relative, boolean createParent, ChildNumber createChildNumber) {
          return deriveChild(get(parentPath, relative, createParent), createChildNumber);
      }
docs: Extends the tree by calculating the requested child for the given path. For example, to get the key at position
  1/2/3 you would pass 1/2 as the parent path and 3 as the child number.
  
  @param parentPath the path to the parent
  @param relative whether the path is relative to the root path
  @param createParent whether the parent corresponding to path should be created (with any necessary ancestors) if it doesn't exist already
  @return the requested key.
  @throws IllegalArgumentException if the parent doesn't exist and createParent is false.