abstractpattern