# 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.

a0x
a1x
a2x
aa
aaa
abc
abcompile
actions
affected
albeit
allocations
anon
approval
approximation
asserter
auth
auto
autobianchi
b0x
b1x
b2x
ba
backed
bailout
bash
bat
bbb
bc
bench
benchmark
besides
beta
bigger
blacklist
blah
blindly
blocked
blorp
bootstrap
bots
bowtie
brave
brown
builddir
bulk2
bulkcompile
c's
cafebabe
callable
camel
capitalized
casing
cc
ccc
charcode
charset
checkout
circular
cli
cloneable
cmp
cnn
coded
codepath
collisions
commit
companion
comparer
comparisons
compilations
compiler's
complement
completers
confirm
consecutive
considering
constrains
consts
contract
conversion
conversions
crashes
cumulative
dacoharkes
daemon
dartanalyzer
dartfile
dashes
day
db
decrements
def
depended
depfile
desc
deviation
dfast
dictionaries
dictionary
differs
dillfile
dills
dirname
disagree
disallowed
disconnect
discovering
dispatcher
doctype
doesnt
dog
downstream
dumping
dupe
durations
dyn
e's
e2e
ease
ec
edits
elapse
ell
entrypoint
entrypoints
epoch
err
everytime
evicting
exe
execute
exercised
exercises
exitcode
exiting
exits
expanded
expands
expansion
expansive
explain
extern
fac
falling
favors
fibonacci
filesystem
finder
fisk
five
floor
forbidden
forces
foreign
fox
fulfill
func
futures
gallery
gamma
gen
generators
git
greeting
gtgt
gulp
gunk
hackish
harness
hest
heuristics
hi
hints
home
hosting
hot
hotreload
hunk
hurray
i'm
ia
ikg
illustrate
implementor
inclosure
increased
incrementally
increments
inspect
insufficient
intact
internet
interpolate
inv
invalidating
isolate
isolates
iter
jumped
kernels
ko
la
lc
ld
le
lengths
lightly
likewise
linebreaks
lints
linux
listening
ll
logd
logs
loopback
mac
maker
matters
mc
mds
measured
met
metric
metrics
mf
micro
mismatched
miss
misspelled
mistake
mistakes
month
mx
mysdk
negatable
ninja
nonexisting
numerator
observable
observatory
oh
okay
oracle
overlay
party
pause
periodic
periodically
person
phrase
pink
places
policy
portions
pp
preliminary
prematurely
pretends
producer
profiler
promotes
propagated
protected
provider
pubspec
pv
px
py
python
quot
r"
r"\s
r"k
rd
reachability
reality
recompile
redir
redirections
reducer
referring
reflectee
reflective
regenerate
regressions
reload
remap
remaps
repeating
repro
resource
respected
response
retains
rev
risky
say
scans
screen
scripts
sdkroot
sdks
secondary
segment
shipped
shot
signalled
somehow
spans
spell
spellcheck
spelling
spent
splitting
sqrt
std
stdio
strip
strongest
stub's
stupid
subcommand
subdir
subtool
subtools
suite
summarization
summarized
superinterface
supermixin
supplement
templates
thereof
thing
threw
timeout
timer
timing
timings
title
tpt
transitively
triangle
trigger
triggers
trimming
tripped
tripping
trivially
truncated
tt
txt
typeargs
typeparam
typeparambounds
unawaited
unbreak
unregistered
untransformed
untrimmed
uppercase
upward
uses8
usual
val
vars
verbatim
versioning
waiting
walt
warmup
whitelist
whitelisting
wins
workflow
x's
xxx
y's
year
