# 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
a2x
aa
aaa
abc
abcompile
actions
adopted
affected
albeit
allocations
alt
amortized
analyses
anon
aoo
approval
approximation
arbitrarily
asdf
asserter
assure
auth
authority
auto
autobianchi
automatic
b0x
b1x
b2x
ba
baba
backed
bail
bailout
bash
bat
bbb
bc
bench
benchmark
besides
beta
bigger
denylist
blah
blindly
blocked
blorp
boo
bootstrap
bots
bowtie
boz
bq
brand
brave
brown
builddir
bulk2
bulkcompile
c's
cafebabe
callable
camel
capitalized
casing
cc
ccc
charcode
charset
checkout
cipd
circular
cli
cloneable
cmp
cnn
coded
codepath
collisions
commented
commit
companion
comparator
comparer
comparisons
compilations
compiler's
complement
completers
confidence
confident
confirm
consecutive
considering
consolidated
constrains
consts
contract
conversion
conversions
coo
cov
crashes
cumulative
dacoharkes
dadd
daemon
dartanalyzer
dartfile
dartfmt
dash
dashes
day
db
debugger
decrease
decrements
def
deleting
depended
depfile
desc
descriptors
detector
deviation
dfast
di
dictionaries
dictionary
differences
differs
dijkstra
dijkstras
dillfile
dills
dinteractive
dirname
disagree
disagreement
disallowed
disconnect
discovering
dispatcher
dispose
dist
doctype
doesnt
dog
doo
downstream
dumping
dupe
durations
dw
dyn
e's
e2e
ease
ec
edits
elapse
ell
entrypoint
entrypoints
eoo
epoch
err
everytime
evicting
exceed
excess
exe
execute
exercised
exercises
exitcode
exiting
exits
expanded
expands
expansion
expansive
explain
extern
fac
faking
falling
favors
fetched
fibonacci
filesystem
filler
finder
fisk
five
flagged
floor
fluctuate
foo1
foo10
foo12
foo13
foo14
foo15
foo2
foo4
foo5
foo6
foo7
foo8
foo9
foos
forbidden
forces
foreign
forrest
fox
fulfill
func
futures
gallery
gamma
gave
gc
gen
generators
git
goo
google
greeting
gtgt
gulp
gunk
hackish
harness
helper2
hest
heuristics
hi
hints
home
hoo
hosting
hot
hotreload
hunk
hurray
i'm
ia
ikg
illustrate
implementor
inclosure
increased
incrementally
increments
infinity
inspect
insufficient
intact
interactive
internet
interpolate
inv
invalidating
ioo
isolate
isolates
issue41210b
issue41436c
issue41496b
issue41498b
issue41499b
it'll
iter
joo
jumped
kernels
kill
ko
koo
la
launching
lc
ld
le
lengths
lightly
likewise
lily
linebreaks
lints
linux
listening
ll
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
mc
mds
measured
met
metric
metrics
mf
micro
minimize
minutes
mismatched
misnamed
miss
misspelled
mistake
mistakes
modelled
month
moo
mx
mysdk
naturally
negatable
newest
newworld
nil
ninja
nondefault
nonexisting
noo
numerator
observable
observatory
oh
okay
ooo
operate
ops
optimal
oracle
outbound
overlay
party
pause
paused
pc
periodic
periodically
person
phrase
pink
places
plug
pointed
policy
pooled
population
portions
pp
preliminary
prematurely
pretends
producer
profile
profiler
promotes
propagated
protected
proved
provider
pseudocode
pubspec
pv
px
py
python
quot
r"
r"\s
r"k
r"tools
rd
reachability
reality
recompile
recompiles
redir
redirections
reducer
referring
reflectee
reflective
regenerate
regressions
reify
reload
remap
remaps
repeating
repro
resource
respected
response
retaining
retainingpath
retains
rev
risky
runtimes
say
scans
screen
scripts
sdkroot
sdks
secondary
segment
sensitive
severe
sheets
shipped
shortest
shot
signalled
slight
smoke
somehow
spans
spell
spellcheck
spelled
spelling
spent
splay
splitting
spurious
sqrt
squared
sssp
stashed
stat
stats
std
stdio
strip
strongest
stub's
stupid
subcommand
subdir
subtool
subtools
subtyping1a
subtyping1b
subtyping2a
subtyping2b
suite
summarization
summarized
superinterface
supermixin
supplement
suspension
tails
talk
templates
thereof
thing
threw
timeout
timer
timing
timings
tinv
title
tpt
transitively
translators
triangle
trigger
triggers
trimming
tripped
tripping
trivially
truncated
tt
ttest
txt
typeargs
typeparam
typeparambounds
ugly
unassignment
unawaited
unbreak
unpacked
unregistered
untransformed
untrimmed
upload
uppercase
upward
uses8
usual
val
vars
verbatim
versioning
waiting
walt
warmup
wherever
allowlist
allowlisting
wins
workflow
worlds
wrongly
ws
x's
xlate
xrequired
xxx
y's
year
