# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# Blank lines and comments are ignored.
# Comments can also be inline like 'correct # this is ok'.
# Note that at least one space before the hash is required.

# Comments on a line by itself will be considered a header of the file and
# automatic tools might move it to the top of the file.

a0x
a1x
a2i
a2x
a3i
a4i
aa
aaa
abc
abcompile
adapter
adaptor
adopted
advantages
albeit
allocations
allowlist
allowlisting
alt
amortized
analyses
animal
animated
annoying
anon
aoo
aot
approval
approximation
arbitrarily
asdf
asserter
assure
auth
authority
autobianchi
automatic
axis
b0x
b1x
b2x
ba
baba
backed
background
bail
bailing
bailout
bar1a
bar1b
bar2a
bar2b
bar3a
bar3b
barbar
bash
bat
bazbaz
bbb
bc
bench
besides
beta
bigger
bitmask
bkonyi
bla
blah
blindly
blocked
blorp
bold
boo
bootstrap
bots
boundarykey
bowtie
boz
bq
brand
brave
brown
bt
bt3a
bt3b
bt4a
bt4b
btw
builddir
bulk2
bulkcompile
busy
busywait
bye
c's
c59cdee365b94ce066344840f9e3412d642019b
ca
cafebabe
calloc
camel
capitalized
causal
cb
cc
ccc
cell
cf
characteristics
charset
checkme
checkout
chunked
cipd
circular
class1a
class1b
class2c
class2d
class2e
class2f
class3d
class5a
class5b
class5c
class5d
cloneable
cm
cmd
cmp
cnn
coded
codepath
collisions
columns
commented
commit
companion
comparative
comparer
compilations
compiler's
complement
completers
complicated
concurrently
confidence
confident
confirm
consecutive
considering
constrains
consts
contract
conversion
conversions
coo
corners
costly
cov
coverage
coverages
cp
csi
ct3a
ct3b
ct4a
ct4b
ctrl
cumulative
cursor
cuts
cx
d1a
d1b
dacoharkes
dadd
daemon
dartanalyzer
dartfile
dartfmt
dash
dashes
day
db
ddart
dds
debugger
decrease
decrements
dectcem
deduplication
defaulting
defintions
deleting
denylist
depended
depfile
desc
descending
descriptors
detector
deviation
dfast
di
diagnosticable
dictionaries
dictionary
differences
differs
dijkstra
dijkstras
dillfile
dinteractive
dirname
disagree
disagreement
disallowed
disconnect
discovering
dispatcher
dispose
dist
div
divergent
doctype
doesnt
dog
donly
doo
downstream
draw
dsemi
dumping
dumps
dupe
durations
dw
dyn
e's
e2e
ease
ec
echo
edits
elapse
ell
entrypoint
entrypoints
eoo
epoch
erase
erased
err
esc
everytime
evicting
exceed
excess
exe
execute
exercised
exercises
existence
exitcode
exiting
expanded
expansive
extern
fac
faking
falling
favors
fi
fibonacci
field1c
field2a
field2b
field2c
field3a
field3b
field3c
field4a
field4b
filesystem
filler
filters
fisk
five
floor
fluctuate
foo"bar"baz
foo'bar'baz
foo1
foo10
foo12
foo13
foo14
foo15
foo1a
foo1b
foo2
foo2a
foo2b
foo3a
foo3b
foo4
foo4a
foo4b
foo5
foo5a
foo5b
foo6
foo6a
foo6b
foo7
foo7a
foo7b
foo8
foo9
foo\"bar'baz
foo\"bar\"baz
foo\"bar\'baz
foos
forbidden
forces
foreground
forrest
forty
foundation
fox
frozen
fulfill
func
futures
fuzz
fuzzing
fx
gallery
gamma
gave
gc
gcd
gesture
getter1c
getter1d
getter1e
goo
google
graphic
greeting
gtgt
gulp
gunk
hackish
hardly
helper2
hest
heuristics
hi
hints
hits
home
hoo
hook
hosted
hosting
hot
hotreload
hunk
hurray
i'm
ia
ideal
identification
idle
ikg
illustrate
image
images
implementor
imprecision
in1
in2
inclosure
inconsistencies
increased
incrementally
increments
indents
ing
initializer2
inlinable
inlineable
inlines
insights
instance2
instrument
insufficient
intdiv
interactive
internet
interpolate
introducer
inv
invocation1a
invocation1b
invocation2a
invocation2b
invocation3a
invocation3b
invocation4a
invocation4b
invocation5a
invocation5b
invocation6a
invocation6b
invocation7a
invocation7b
invocation7c
invocation7d
invocation7e
ioo
ish
isolate
isolates
issue41210b
issue41436c
issue41496b
issue41498b
issue41499b
it'll
italic
iter
jlcontreras
joo
jumped
kernels
kill
kitty
ko
koo
la
launch
launching
layers
le
legs
lengths
lightly
likewise
lily
linebreaks
lints
linux
listening
listing
literal2
ln
local1a
local1b
local1c
local1d
local1e
local1f
local1g
local1h
local1i
local2a
local2b
local2c
local2d
local2e
local2f
local2g
local2h
local3a
local3b
local3c
local3d
local3e
local3f
local3g
local3h
logd
logs
loo
loopback
mac
maker
matters
mds
measured
method1d
metric
metrics
mf
micro
minimize
minimizer
minimizing
mintty
minutes
mismatched
misnamed
miss
misses
misspelled
mistake
mistakes
mod
modelled
month
moo
mouse
mul
mx
mxn
mysdk
n1a
n1b
naively
naturally
negatable
newworld
nil
ninja
noisy
nondefault
nonexisting
noo
numerator
ob
obool
observable
offers
oh
okay
ol
onull
oo
oocf
ooo
oovf
opacity
operate
ops
optimal
oracle
out1
out2
outbound
outlined
overhead
overlay
ox
pack
paging
paint
parameterized
party
pause
paused
pc
periodic
periodically
person
phrase
pink
placement
plug
pointed
policy
pooled
population
portions
pp
preliminary
prematurely
press
pretends
processes
processors
producer
profile
profiler
propagated
property2a
property2b
property4a
property4b
property5a
property5b
property8a
property8b
proportional
protected
proved
provider
proxy
pseudocode
pubspec
pv
px
py
python
quicker
quit
quot
quux
quuz
qux
r"
r"\s
r"k
r"tools
rd
reachability
reality
recompile
recompiles
redir
redirections
rediscover
reducer
referring
reflectee
refusing
regards
regenerate
regressions
reify
reload
remap
remaps
rendition
reorder
reordering
repaint
repro
reproduce
reproduction
response
result1
result2
resuming
retaining
retainingpath
retains
rev
revealed
risky
rk
row
rows
runtimes
rv
saves
scans
scheduler
screen
scripts
scroll
sdkroot
sdks
secondary
segment
selection
semifuzz
sensitive
services
setter1a
setter1b
setter1c
setter1d
setter1e
setups
severe
sheets
shipped
shortest
shot
sigint
signalled
sigwinch
slight
sliver
smoke
snull
somehow
sorter
spans
spawn
spell
spellcheck
spelled
spelling
spent
splay
splitting
spurious
sqrt
squared
sssp
stacks
stashed
stat
stats
stay
std
stress
string2
strip
strongest
stub's
stupid
subcommand
subdir
subfolder
subtool
subtools
subtyping1a
subtyping1b
subtyping2a
subtyping2b
successes
suite
summarization
summarized
supermixin
supplement
suspension
symbolic
t3a
t3b
t4a
t4b
t\b\f\u
t\u0008\f\u
tails
talk
templates
test3a
test3b
theoretically
thereof
thread
timed
timeout
timer
timings
tinv
told
touch
tpt
transitively
translators
transparent
triangle
triggers
trimming
tripped
tripping
trivially
truncated
tt
ttest
txt
typeargs
typeparam
typeparambounds
u250c
ugly
unassignment
unawaited
unbreak
unconverted
uncover
uncovers
underline
unpacked
unpatched
unpaused
unregistered
unsurprisingly
untransformed
untrimmed
unusual
unversioned
upload
upward
usages
uses8
uuid
v1
v2
val
vars
verbatim
versioned
vf
vp
vt
vte
waited
waiting
waits
walt
warmup
week
wherever
whiskers
wins
wording
workflow
worlds
wrongly
ws
x's
xlate
xrequired
xxx
xxxxxxxx
xxxxxxxxxxxx
y's
year
yxxx
yy
zz
