def get_darwin_arches(major, minor, machine):<EOL>
arches = []<EOL>def _supports_arch(major, minor, arch):<EOL><INDENT>if arch == '<STR_LIT>':<EOL><INDENT>return (major, minor) <= (<NUM_LIT:10>, <NUM_LIT:5>)<EOL><DEDENT>if arch == '<STR_LIT>':<EOL><INDENT>return (major, minor) == (<NUM_LIT:10>, <NUM_LIT:5>)<EOL><DEDENT>if arch == '<STR_LIT>':<EOL><INDENT>return (major, minor) >= (<NUM_LIT:10>, <NUM_LIT:4>)<EOL><DEDENT>if arch == '<STR_LIT>':<EOL><INDENT>return (major, minor) >= (<NUM_LIT:10>, <NUM_LIT:5>)<EOL><DEDENT>if arch in groups:<EOL><INDENT>for garch in groups[arch]:<EOL><INDENT>if _supports_arch(major, minor, garch):<EOL><INDENT>return True<EOL><DEDENT><DEDENT><DEDENT>return False<EOL><DEDENT>groups = OrderedDict([<EOL>("<STR_LIT>", ("<STR_LIT>", "<STR_LIT>")),<EOL>("<STR_LIT>", ("<STR_LIT>", "<STR_LIT>")),<EOL>("<STR_LIT>", ("<STR_LIT>", "<STR_LIT>")),<EOL>("<STR_LIT>", ("<STR_LIT>", "<STR_LIT>", "<STR_LIT>")),<EOL>])  <EOL>if _supports_arch(major, minor, machine):<EOL><INDENT>arches.append(machine)<EOL><DEDENT>for garch in groups:<EOL><INDENT>if machine in groups[garch] and _supports_arch(major, minor, garch):<EOL><INDENT>arches.append(garch)<EOL><DEDENT><DEDENT>arches.append('<STR_LIT>')<EOL>return arches<EOL>
Return a list of supported arches (including group arches) for
    the given major, minor and machine architecture of an macOS machine.