# Copyright (c) 2005-2007 International Business Machines 
# Corporation and others. All Rights Reserved.
## see NOTE below.
#
# suffix matches - start with '*'.  They are turned into as RE, '.brk$'
*.brk
*.bz2
*.csproj
*.dat
*.doc
*.gif
*.gz
*.ico
*.jar
*.jpg
*.otf
*.pdf
*.png
*.ppt
*.res
*.rtf
*.sln
*.sxd
*.sxg
*.sxw
*.ttf
*.TTF
*.vcproj
*.zip
*.cvsignore
## NOTE: the hook uses SHORTENED* paths.  the tag,trunk,branch stuff is taken out.
##
## So,
##
#      icu/asdf
##
##  is treated as "^icu/asdf" to the shortened path
##
##  and so matches all of the following
##
##     icu/tags/release-3-4-3-d02/asdf
##     icu/branches/srl-hacky-btf5-support/asdf
##     icu/trunk/asdf
##
##
## *contains partially hydrogenated vegetable oil.
#
#
# ICU4C files that don't need an IBM copyright
icu/debian/changelog
icu/debian/control
icu/debian/icu-doc.doc-base
icu/debian/icu-doc.install
icu/debian/icu.conffiles.in
icu/source/config.guess
icu/source/config.sub
icu/source/configure
icu/source/data/brkitr/thaidict.brk
icu/source/data/misc/NamePrepProfile.txt
icu/source/data/unidata/UnicodeData.txt
icu/source/data/unidata/FractionalUCA.txt
icu/source/data/unidata/UCARules.txt
icu/source/extra/uconv/pkgdatain.txt
icu/source/extra/uconv/samples/danish-ISO-8859-1.txt
icu/source/extra/uconv/samples/eucJP.txt
icu/source/extra/uconv/samples/hangul-eucKR.txt
icu/source/extra/uconv/samples/hania-eucKR.txt
icu/source/extra/uconv/samples/ISO-8859-2.txt
icu/source/extra/uconv/samples/ISO-8859-3.txt
icu/source/extra/uconv/samples/iso8859-1.txt
icu/source/extra/uconv/samples/koi8r.txt
icu/source/extra/uconv/samples/utf8/armenian.txt
icu/source/extra/uconv/samples/utf8/banviet.txt
icu/source/extra/uconv/samples/utf8/chinese-ulysses.txt
icu/source/extra/uconv/samples/utf8/croat.txt
icu/source/extra/uconv/samples/utf8/danish.txt
icu/source/extra/uconv/samples/utf8/greek.txt
icu/source/extra/uconv/samples/utf8/hangul.txt
icu/source/extra/uconv/samples/utf8/hania.txt
icu/source/extra/uconv/samples/utf8/jap.txt
icu/source/extra/uconv/samples/utf8/korean.txt
icu/source/extra/uconv/samples/utf8/linji.txt
icu/source/extra/uconv/samples/utf8/many.txt
icu/source/extra/uconv/samples/utf8/maopoem.txt
icu/source/extra/uconv/samples/utf8/russian.txt
icu/source/extra/uconv/samples/utf8/simplechinese.txt
icu/source/extra/uconv/samples/utf8/turkish.txt
icu/source/extra/uconv/samples/utf8/utf-8-demo.txt
icu/source/install-sh
icu/source/samples/layout/Sample.txt
icu/source/samples/ucnv/data01.txt
icu/source/samples/ufortune/resources/res-file-list.txt
icu/source/test/testdata/CollationTest_NON_IGNORABLE_STUB.txt
icu/source/test/testdata/CollationTest_SHIFTED_STUB.txt
icu/source/test/testdata/GraphemeBreakTest.txt
icu/source/test/testdata/GraphemeClusterBreakTest.txt
icu/source/test/testdata/ra.xlf
icu/source/test/testdata/re_tests.txt
icu/source/test/testdata/riwords.txt
icu/source/test/testdata/SentenceBreakTest.txt
icu/source/test/testdata/WordBreakTest.txt
icu/source/test/testdata/idna_conf.txt
icu/source/test/thaitest/space.txt
icu/source/tools/tzcode/patch-icu-tzcode
icu/unicode-license.txt
# Following are Public Domain
icu/source/tools/tzcode/asctime.c
icu/source/tools/tzcode/ialloc.c
icu/source/tools/tzcode/localtime.c
icu/source/tools/tzcode/private.h
icu/source/tools/tzcode/scheck.c
icu/source/tools/tzcode/tzfile.h
icu/source/tools/tzcode/tzselect.ksh
icu/source/tools/tzcode/zdump.c
icu/source/tools/tzcode/zic.c
#ICU4JNI files that don't need an IBM copyright
icu4jni/src/classes/com/ibm/icu4jni/test/text/NormalizationTest.txt
icu4jni/src/native/converter/ConverterInterface.h
icu4jni/configure
#ICU4J files that don't need an IBM copyright
icu4j/.classpath
icu4j/.project
icu4j/.settings/org.eclipse.core.resources.prefs
icu4j/.settings/org.eclipse.jdt.core.prefs
icu4j/.settings/org.eclipse.jdt.ui.prefs
icu4j/src/com/ibm/icu/dev/data/CollationTest_NON_IGNORABLE_STUB.txt
icu4j/src/com/ibm/icu/dev/data/CollationTest_SHIFTED_STUB.txt
icu4j/src/com/ibm/icu/dev/data/holidays_jp.ucs
icu4j/src/com/ibm/icu/dev/data/rbbi/english.dict
icu4j/src/com/ibm/icu/dev/data/rbbi/words.txt
icu4j/src/com/ibm/icu/dev/data/riwords.txt
icu4j/src/com/ibm/icu/dev/data/thai6.ucs
icu4j/src/com/ibm/icu/dev/data/ThaiWordFreq.xls
icu4j/src/com/ibm/icu/dev/data/unicode/CompositionExclusions.txt
icu4j/src/com/ibm/icu/dev/data/unicode/NormalizationCorrections.txt
icu4j/src/com/ibm/icu/dev/data/unicode/NormalizationTest-3.2.0.txt
icu4j/src/com/ibm/icu/dev/data/unicode/NormalizationTest.txt
icu4j/src/com/ibm/icu/dev/data/unicode/SpecialCasing.txt
icu4j/src/com/ibm/icu/dev/data/unicode/ucdterms.txt
icu4j/src/com/ibm/icu/dev/data/unicode/UnicodeData.txt
icu4j/src/com/ibm/icu/dev/data/IDNATestInput.txt
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/.classpath
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/.project
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/build.properties
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/build.xml
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/.classpath
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/.project
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/build.properties
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/build.xml
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base.tests/.classpath
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base.tests/.project
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base.tests/build.properties
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base-feature/.project
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base-feature/build.properties
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base-feature/feature.xml
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.tests/.classpath
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.tests/.project
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.tests/build.properties
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu-feature/.project
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu-feature/build.properties
icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu-feature/feature.xml
icu4j/src/com/ibm/icu/dev/eclipse/misc/about.html
icu4j/src/com/ibm/icu/dev/tool/ime/indic/services/java.awt.im.spi.InputMethodDescriptor
icu4j/src/com/ibm/icu/dev/tool/ime/translit/services/java.awt.im.spi.InputMethodDescriptor
icu4j/src/com/ibm/richtext/textapps/resources/unicode.arabic.red
icu4j/src/com/ibm/richtext/textapps/resources/unicode.hebrew.red
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/arabic.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/english.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/french.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/greek.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/hebrew.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/hindi.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/japanese.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/korean.txt
icu4j/src/com/ibm/icu/dev/test/perf/data/conversion/s-chinese.txt
#Userguide html template file.  Skip because adding one would cause multiple 
#copyright notices to appear in each generated userguide html file.
icuhtml/userguide/html-template/ugtemplate.html
icuapps/redemo/readme
icuapps/datacustom/gendatadep/resources/pkgdatain.txt
icuapps/configure
icuapps/*
data/test/perf/*
