Please keep the following tables alphabetical.

Organization Tag	Organization Name
----------------	-----------------
csl			CodeSourcery, LLC

This table lists branches created by particular organizations.  Please
include the branch name, and a description of the branch.  The branch
description should name the owner of the branch (i.e., the person to
contact regarding the branch) and a description of the commit policy
for the branch (e.g., "no commits without permission of X or Y").

Organization Branches	Description
---------------------	-----------
binutils-csl-arm-2005q1-branch
			CodeSourcery toolchain release branches.
			Please do not commit to these branches without
			permission from a CodeSourcery developer.

binutils-csl-gxxpro-3_4-branch
binutils-csl-2_17-branch
			CodeSourcery branded GNU Toolchain release branches.
			Please do not commit to this branch without
			permission from a CodeSourcery developer.

Release Branches
----------------
binutils-2_10-branch
binutils-2_11-branch
binutils-2_12-branch
binutils-2_13-branch
binutils-2_14-branch
binutils-2_15-branch
binutils-2_16-branch
binutils-2_17-branch
binutils-2_18-branch
binutils-2_19-branch
binutils-2_20-branch
binutils-2_21-branch
binutils-2_22-branch
binutils-2_23-branch
binutils-2_24-branch
binutils-2_25-branch
binutils-2_26-branch
binutils-2_27-branch
binutils-2_28-branch
binutils-2_29-branch
binutils-2_30-branch
binutils-2_31-branch
binutils-2_32-branch
binutils-2_33-branch
binutils-2_34-branch
binutils-2_35-branch
binutils-2_36-branch
binutils-2_37-branch

Copyright (C) 2012-2021 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

