Measures Claude token counts via model.complete usage

A Claude Code mod that makes sessions cheaper in tokens, turns and dollars. Four parts, each usable by itself:
read returns ID§code lines. The IDs are numeric, permuted, and always above the file's line count, so a line number is never mistaken for one. A Myers diff keeps them stable across edits made by any tool.read has three modes: pattern (a regex over a file or directory), symbol (a definition plus every reference, with the definition found through the code graph), and ranges. Everything it returns carries IDs, so the agent edits straight from the results.edit call can change many files, and create, delete or rename them (those three only inside the project). Every part is checked first, and nothing is changed if any of them fails. Edits can replace or insert lines by ID, or do find/replace within a range, a file or a directory. Results show only the new lines plus their neighbours, a syntax check, and warnings for duplicated boundary lines and lost indentation.sed -i or a Python one-liner. The shellEdits setting decides what happens then: warn (default) lets the command run and tells the model to use edit next time, enforce refuses it with the edit call to make instead, off does nothing. Detection reads the command's text, so it is best effort: on a 217-command test set it flagged no ordinary command and missed some rarer spellings./codegraph-setup reopens it), then pinned to v1.6.2 and SHA-256 verified.~/.local/share/plusplus/codegraph..codegraph/ folder; the mod never indexes a project itself.Each task is graded for how much reasoning it needs (mechanical, routine, involved, hard) and sent to the cheapest model trusted with it: Haiku, Sonnet, Opus, or wherever you put the session for hard work. It never goes above your own model or effort.
jev uses TypeSafe's Jev instead, which sends each task's text to api.typesafe.ai and needs a key./router setup opens the settings pane (mode, floor, grader, Jev key, live figures); /router prints what was routed and what it cost at list price; /router on | shadow | off; /router redo asks the last prompt again on your own model. shadow decides and reports without changing anything.shadow or the sonnet floor where that matters.A per-project tree of records (areas, specs, decisions) that the model consults before it touches governed code and adds to when it makes a decision later sessions must respect. Nothing exists until you run /spec init.
spec tool reads the tree, looks up a file or an id, searches, and adds records. A record an agent adds is proposed until a person accepts it..plusplus/specs/ in the repository, made of immutable files named by the hash of their content. A change lands as a small text segment (one JSON line per change, readable in a pull request); /spec compact seals segments into compressed binary packs (raw DEFLATE; mod/tools/aesp.py reads them with nothing but Python). Files are only ever added or sealed, so branches merge through git without conflicts./spec status, /spec log [id], /spec show <id>, /spec diff [git ref], plus /spec accept, /spec drop, /spec export, /spec browse (a tree browser) and /spec stats. Branches, commits and merges stay git's./spec init asks the agent to survey the codebase and propose a first tree, or to interview you when the repository is empty; /spec init --bare does neither.At a Claude Code prompt in a terminal:
/plugin install plusplus --marketplace HEAPTRASH/plusplus
Answer y to add the marketplace, then pick a scope.
Settings (in the config menu, or under pluginConfigs in managed settings):
codegraph: ask or off. off means no prompt and no download.codegraphMirror: a URL to download releases from instead of GitHub.shellEdits: warn, enforce or off.router: on, shadow or off; routerFloor: the cheapest model it may use; routerGrader: haiku or jev.specs: auto, read (agents may read but not add) or off.claude --plugin-dir mod # run a session with the mod loaded from this folder
claude plugin validate mod # what the engine would refuse
claude plugin test mod # hooks/*.test.ts
mod/hooks/register.tsx is the hooks module; it wires in routing.tsx (router), specs.ts (tracker) and the panes in panes.tsx and ui.tsx. The pure logic is in core.ts (Myers diff, IDs, edits, the shell-edit judge), router.ts, spec.ts, pack.ts and deflate.ts.
bench/)bench/run.py runs one public suite under headless Claude, once per arm, and checks every run without a model.
python3 bench/fetch.py refactorbench # download a suite's data into bench/data/, at a pinned revision
python3 bench/run.py refactorbench --selftest # no model: each task must fail untouched and pass with its reference solution
python3 bench/run.py refactorbench --arms standard,anchored,routed
Main flags of run.py, with their defaults:
--arms standard,anchored: which arms to compare (below).--tasks quick: the suite's fixed quick subset. Also all, a number N (the first N), or a comma-separated list of task ids.--model sonnet, --effort (unset), --reps 2 (runs per task and arm), --jobs 3 (runs in parallel).--budget 2 (dollars per run), --timeout 900 (seconds per run).--tag v1: names the output folder, bench/runs/<suite>-<model>-<tag>/, which gets one transcript per run and rows.json.Arms:
standard: the built-in Read and Edit.anchored: the mod, router off.routed: the mod with the router on, graded by the session's small model.jev: the router graded by TypeSafe's Jev. Needs TYPESAFE_API_KEY in the environment.Every arm also gets Grep and Glob, plus any built-in tool a task needs.
Suites (bench/suites/):
click: 5 hand-written edit tasks on click 8.1.7 (renames, replacements and two small changes). A pass is the task's own Python check, and every file still compiles.orchestrate: 2 tasks that hand three of the click edits to subagents, or run them as a workflow with a verifier, so the router has agents to seat. A pass is all three edits passing their click checks. Uses the click data.quixbugs: 40 classic algorithms from QuixBugs (Python half), each with a one-line defect; 14 in the quick subset. A pass is upstream's pytest file for that program.canitedit: CanItEdit, edit one small Python file as instructed. 98 of the 105 problems, each as two tasks (descriptive and terse instruction); 15 in the quick subset. A pass is the edited file with the hidden tests appended exiting 0 within 15 seconds.polyglot: the Python and JavaScript part of Aider's polyglot benchmark, 82 Exercism exercises to implement from a one-file stub; 16 in the quick subset. A pass is the exercise's own unit tests (pytest or jest), which the agent never sees, in one attempt.refactor: Aider's refactoring benchmark, 88 tasks that move a method out of its class into a top-level function in one real Python file of 91 to 22,390 lines; 16 in the quick subset. A pass is upstream's syntax-tree node-count test, plus a check that the method was moved rather than copied and the file compiles.refactorbench: RefactorBench, 100 multi-file refactorings of nine Python repositories; 18 in the quick subset. A pass is the authors' test, which parses the edited source for the expected shape, and no rewritten file has stopped compiling.swebench: SWE-bench Verified, real GitHub issues from Python projects, without the psf/requests ones; 10 in the quick subset. A pass is "resolved" from the official harness in Docker. Every instance pulls its own image of about 1 GB, so run the quick subset or named ids, not all.The checks of quixbugs, canitedit, polyglot, refactorbench and swebench run through uv; polyglot also needs node and npm, and swebench needs git and a running Docker.
Also in bench/:
static.ts: replays real commits through both edit formats and counts tokens. It uses o200k as a proxy tokenizer, not Claude's.tokprobe/: a small mod that measures token counts with Claude's real tokenizer (via model.complete usage).Downloaded data (bench/data/) and agent transcripts (bench/runs/) are not committed.
RefactorBench quick subset: 18 multi-file refactoring tasks, one run per arm. Logs are in bench/results/.
| Session model | Built-in tools | The mod | Mod + router | Mod + router graded by Jev |
|---|---|---|---|---|
| Sonnet 5.5 | 13/18 for $1.36 | 14/18 for $0.77 | 13/18 for $0.61 | not run |
| Opus 5.5 | 15/18 for $2.48 | 15/18 for $1.82 | 14/18 for $1.14 | 13/18 for $1.03 |
bench/results/live-*.log) predate the router.hooks/register.ts 77 lines1// /tokprobe <model> <out.json> <sample N, 0 = all> [files...]: counts tokens with the real Claude tokenizer
2// (input_tokens of a 1-token completion), since Claude's tokenizer is not public.
3import type { EngineInterface, Register } from 'claude-code'
4import { WORDS } from './words'
5
6const gcd = (a: number, b: number): number => (b ? gcd(b, a % b) : a)
7
8async function tok($: EngineInterface, model: string, prompt: string): Promise<number> {
9 const r = await $.model.complete({ model, prompt, maxTokens: 1 })
10 if (!r.usage) throw new Error(`no usage: ${JSON.stringify(r)}`)
11 return r.usage.input_tokens
12}
13
14// extra tokens the words cost over single-token "A", split down until each word is known
15async function extra($: EngineInterface, model: string, ws: string[], out: Record<string, number>): Promise<void> {
16 const body = (f: (w: string) => string) => 'Ok\n' + ws.map(w => f(w) + '§x = 1').join('\n')
17 const [t, ref] = await Promise.all([tok($, model, body(w => w)), tok($, model, body(() => 'A'))])
18 const d = t - ref
19 if (d === 0 || ws.length === 1) return void ws.forEach(w => (out[w] = ws.length === 1 ? d : 0))
20 const half = ws.length >> 1
21 await extra($, model, ws.slice(0, half), out)
22 await extra($, model, ws.slice(half), out)
23}
24
25export const register: Register = on => {
26 on('session.start', async ($, e, next) => {
27 await $.command.register({ name: 'tokprobe', description: 'Count Claude tokens of anchor words and read formats' })
28 return next(e)
29 })
30
31 on('command.run', { command: 'tokprobe' }, async ($, e) => {
32 const [model = 'claude-opus-5-5', outPath = 'tokprobe.json', sample = '0', ...files] = e.args.trim().split(/\s+/)
33 // sample=N probes every (len/N)-th word only, for a quick estimate
34 const pick = sample === 'fmt' ? [] : Number(sample) ? WORDS.filter((_, i) => i % Math.ceil(WORDS.length / Number(sample)) === 0) : WORDS
35 const words: Record<string, number> = {}
36 const batches = []
37 for (let i = 0; i < pick.length; i += 16) batches.push(pick.slice(i, i + 16))
38 for (let i = 0; i < batches.length; i += 8) // ponytail: 8 batches at a time, gentle on rate limits
39 await Promise.all(batches.slice(i, i + 8).map(b => extra($, model, b, words)))
40
41 if (sample.startsWith('items:')) { // per-item cost at line start, before the delimiter
42 const items = sample.slice(6).split(',')
43 const base = await tok($, model, 'Ok\n§x = 1\n§y = 2')
44 const cost: Record<string, number> = {}
45 for (let i = 0; i < items.length; i += 16)
46 await Promise.all(items.slice(i, i + 16).map(async x => {
47 cost[x] = ((await tok($, model, `Ok\n${x}§x = 1\n${x}§y = 2`)) - base) / 2
48 }))
49 await $.fs.write(outPath, JSON.stringify(cost, null, 1))
50 return { text: JSON.stringify(cost) }
51 }
52 const formats: Record<string, Record<string, number>> = {}
53 const W = (i: number) => WORDS[(i * 1013) % WORDS.length]!
54 for (const f of files) {
55 const lines = (await $.fs.read(f)).replace(/\n$/, '').split('\n')
56 const pre = (p: (i: number) => string) => lines.map((l, i) => p(i) + l).join('\n')
57 const L = lines.length, from = L + Math.max(L, 100) + 1 // same scheme as the mod's fresh()
58 let st = Math.max(1, Math.floor(L * 0.618))
59 while (gcd(st, L) !== 1) st++
60 const fmt: Record<string, string> = {
61 raw: lines.join('\n'),
62 'Read (cat -n)': pre(i => `${String(i + 1).padStart(6)}\t`),
63 'Word§ (v1-v3)': pre(i => `${W(i)}§`),
64 'ID§ (v4)': pre(i => `${from + ((i * st) % L)}§`),
65 'no indent': lines.map(l => l.trimStart()).join('\n'),
66 'tabs': lines.map(l => l.replace(/^( {4})+/, m => '\t'.repeat(m.length / 4))).join('\n'),
67 }
68 const raw = await tok($, model, fmt.raw!)
69 formats[f] = Object.fromEntries(await Promise.all(Object.entries(fmt).map(async ([k, s]) =>
70 [k, k === 'raw' ? raw : +(((await tok($, model, s)) - raw) / lines.length).toFixed(2)])))
71 }
72 const single = Object.values(words).filter(x => x === 0).length
73 await $.fs.write(outPath, JSON.stringify({ model, single, total: pick.length, words, formats }, null, 1))
74 return { text: `${model}: ${single}/${pick.length} sampled anchor words are single tokens; extra tokens per line by format\n${JSON.stringify(formats, null, 1)}` }
75 })
76}
77hooks/words.ts 3 lines1// Single-token words under o200k_base (tiktoken), from /usr/share/dict/words. Regenerate, do not edit.
2export const WORDS: readonly string[] = ["Ability", "Able", "Abort", "About", "Above", "Absent", "Absolute", "Abstract", "Academic", "Accent", "Accept", "Accepted", "Access", "Accessory", "According", "Accordion", "Account", "Accuracy", "Ache", "Acquire", "Across", "Action", "Activate", "Activator", "Active", "Activity", "Actor", "Actual", "Actually", "Adapt", "Adapter", "Adaptive", "Adaptor", "Added", "Adder", "Addition", "Address", "Adjacent", "Adjust", "Admin", "Admission", "Adobe", "Adornment", "Adult", "Advance", "Advanced", "Adventure", "Advert", "Advice", "Advisor", "Affected", "Affiliate", "Affine", "Affinity", "After", "Again", "Against", "Agency", "Agenda", "Agent", "Aggregate", "Agora", "Agree", "Agreement", "Ahead", "Aircraft", "Airport", "Alan", "Alarm", "Album", "Alchemy", "Alcohol", "Alert", "Algorithm", "Alias", "Alien", "Align", "Alignment", "Alive", "Alliance", "Allocate", "Allocator", "Allow", "Allowance", "Almost", "Along", "Alpha", "Alphabet", "Already", "Alright", "Also", "Alter", "Altern", "Alternate", "Although", "Altitude", "Always", "Amazing", "Amber", "Ambient", "Amen", "Ammo", "Among", "Amount", "Amplitude", "Anal", "Analyse", "Analysis", "Analytics", "Analyze", "Analyzer", "Ancestor", "Anchor", "Anda", "Android", "Angel", "Angle", "Angular", "Animal", "Animate", "Animated", "Animating", "Animation", "Animator", "Anime", "Anna", "Annual", "Anon", "Anonymous", "Another", "Answer", "Ante", "Anterior", "Antes", "Anti", "Anybody", "Anyone", "Anything", "Anyway", "Anywhere", "Apache", "Apart", "Apartment", "Appear", "Append", "Apple", "Applicant", "Applied", "Apply", "Approval", "Approve", "Arch", "Architect", "Archive", "Area", "Arena", "Argument", "Armor", "Army", "Around", "Arrange", "Array", "Arrival", "Arrow", "Article", "Artifact", "Artist", "Ascending", "Ascii", "Aside", "Aspect", "Assembler", "Assembly", "Assert", "Assertion", "Assess", "Asset", "Assets", "Assign", "Assigned", "Assist", "Assistant", "Associate", "Atlantic", "Atlas", "Atmos", "Atom", "Atomic", "Attach", "Attached", "Attack", "Attempt", "Attend", "Attention", "Attorney", "Attribute", "Auction", "Audience", "Audio", "Audit", "August", "Aura", "Author", "Authority", "Authorize", "Auto", "Automatic", "Avail", "Available", "Aval", "Average", "Avoid", "Await", "Award", "Aware", "Away", "Awesome", "Axes", "Axis", "Azure", "Baby", "Bachelor", "Back", "Backdrop", "Backing", "Backup", "Backward", "Badge", "Bake", "Balance", "Balanced", "Balancer", "Ball", "Banco", "Band", "Bang", "Bank", "Banner", "Barcelona", "Bare", "Barn", "Barrier", "Barry", "Base", "Based", "Bases", "Basic", "Basically", "Basis", "Basket", "Bass", "Batch", "Bath", "Bathroom", "Batman", "Batt", "Battery", "Battle", "Beach", "Beacon", "Beam", "Bean", "Bear", "Bearer", "Bearing", "Beat", "Beaut", "Beautiful", "Beauty", "Because", "Become", "Bedroom", "Been", "Beer", "Before", "Begin", "Beginning", "Behavior", "Behind", "Being", "Believe", "Bell", "Belle", "Below", "Bench", "Benefit", "Benjamin", "Bent", "Bere", "Berlin", "Berry", "Besides", "Best", "Beta", "Beth", "Better", "Between", "Beyond", "Bias", "Bien", "Bike", "Bill", "Billing", "Billy", "Binary", "Bind", "Binder", "Binding", "Biography", "Biome", "Bird", "Birth", "Birthday", "Black", "Blade", "Blank", "Blast", "Blend", "Bless", "Blind", "Blink", "Blob", "Bloc", "Block", "Blocked", "Blocking", "Blood", "Bloom", "Blue", "Blueprint", "Blur", "Board", "Boat", "Body", "Bold", "Bolt", "Bomb", "Bond", "Bone", "Bonus", "Book", "Booked", "Booking", "Bookmark", "Bool", "Boom", "Boost", "Boot", "Bootstrap", "Border", "Born", "Borrow", "Boss", "Boston", "Both", "Bottle", "Bottom", "Bought", "Bounce", "Bound", "Boundary", "Bounding", "Bout", "Brace", "Bracket", "Brad", "Brain", "Brains", "Brake", "Branch", "Brand", "Bravo", "Brazil", "Bread", "Break", "Breaker", "Breakfast", "Breaking", "Breed", "Brick", "Bride", "Bridge", "Brief", "Bright", "Bring", "Brit", "Broad", "Broadcast", "Broken", "Broker", "Brook", "Brother", "Brown", "Browse", "Browser", "Browsing", "Brush", "Bubble", "Buck", "Bucket", "Buddy", "Budget", "Buff", "Buffer", "Build", "Builder", "Building", "Built", "Bulk", "Bull", "Bullet", "Bund", "Bundle", "Burn", "Burst", "Bush", "Business", "Bust", "Busy", "Butter", "Button", "Buttons", "Buyer", "Buzz", "Cable", "Cache", "Cain", "Cake", "Calculate", "Calendar", "Call", "Callable", "Caller", "Calling", "Camb", "Camel", "Camera", "Camp", "Campaign", "Campo", "Campus", "Canada", "Cancel", "Cancer", "Cand", "Candidate", "Candy", "Cannot", "Canon", "Canonical", "Cant", "Canvas", "Capacity", "Cape", "Capital", "Captain", "Caption", "Captor", "Capture", "Caracter", "Carbon", "Card", "Care", "Career", "Caret", "Carga", "Cargo", "Carl", "Carol", "Carr", "Carrier", "Carry", "Cart", "Carte", "Cascade", "Case", "Cash", "Casino", "Cass", "Cast", "Caster", "Casting", "Castle", "Catalogue", "Catch", "Cate", "Category", "Caught", "Cause", "Celebrate", "Celebrity", "Cell", "Cent", "Center", "Centered", "Central", "Century", "Certain", "Certainly", "Certified", "Chain", "Chair", "Challenge", "Cham", "Champ", "Champion", "Chance", "Chang", "Change", "Changer", "Channel", "Chaos", "Chap", "Chapter", "Char", "Character", "Charge", "Charging", "Charm", "Chart", "Chat", "Cheap", "Check", "Checked", "Checker", "Checkout", "Chef", "Chemical", "Cheque", "Cherry", "Chess", "Chest", "Chevron", "Chicken", "Chief", "Child", "Children", "Chile", "China", "Chip", "Chocolate", "Choice", "Choose", "Chooser", "Choosing", "Chord", "Chosen", "Chrome", "Chuck", "Chunk", "Church", "Cinema", "Cipher", "Circle", "Circuit", "Circular", "Cisco", "Citation", "Citizen", "City", "Civil", "Claim", "Clamp", "Clan", "Clark", "Claro", "Class", "Classes", "Classic", "Clause", "Clave", "Clay", "Clean", "Cleaner", "Cleaning", "Cleanup", "Clear", "Clearly", "Click", "Client", "Climate", "Clinic", "Clinical", "Clip", "Clique", "Clock", "Clone", "Closable", "Close", "Closed", "Closer", "Closure", "Cloud", "Club", "Cluster", "Coach", "Coal", "Cock", "Code", "Coder", "Coffee", "Coin", "Cold", "Cole", "Coll", "Collapse", "Collect", "Collected", "Collector", "College", "Collision", "Colon", "Color", "Colorado", "Colored", "Colors", "Column", "Comb", "Combat", "Combine", "Combined", "Come", "Comedy", "Comfort", "Comic", "Coming", "Comma", "Command", "Commander", "Comment", "Commerce", "Commit", "Committee", "Commodity", "Common", "Commons", "Community", "Compact", "Company", "Compare", "Comparer", "Compart", "Compass", "Compile", "Compiler", "Complaint", "Complete", "Complex", "Component", "Compose", "Composer", "Composite", "Compound", "Compress", "Compute", "Computer", "Concept", "Concern", "Concert", "Concrete", "Cond", "Condition", "Conduct", "Cone", "Configure", "Confirm", "Confirmed", "Conflict", "Congress", "Conn", "Connect", "Connected", "Connector", "Connexion", "Consensus", "Consent", "Consider", "Console", "Constant", "Construct", "Consult", "Consume", "Consumer", "Contact", "Contain", "Container", "Conte", "Content", "Contents", "Contest", "Context", "Continue", "Contour", "Contra", "Contract", "Contrast", "Control", "Convert", "Converted", "Converter", "Cook", "Cooking", "Cool", "Cooling", "Copied", "Copper", "Copy", "Copyright", "Cord", "Core", "Corm", "Corn", "Corner", "Corona", "Corp", "Corporate", "Corpus", "Correct", "Cost", "Costa", "Could", "Council", "Count", "Counter", "Counting", "Country", "County", "Coupon", "Courier", "Course", "Court", "Courtesy", "Cover", "Coverage", "Covered", "Covid", "Craft", "Crash", "Crawler", "Crazy", "Cream", "Creat", "Create", "Creation", "Creative", "Creator", "Creature", "Credit", "Crew", "Crime", "Criteria", "Criterion", "Critical", "Crop", "Cross", "Crow", "Crunch", "Crusher", "Crypt", "Crystal", "Cube", "Cubit", "Cuisine", "Cull", "Cult", "Culture", "Curl", "Curr", "Currency", "Current", "Currently", "Cursor", "Curt", "Curve", "Custom", "Customer", "Cute", "Cycle", "Cylinder", "Daddy", "Daemon", "Daily", "Damage", "Dance", "Dang", "Danger", "Dank", "Dark", "Dash", "Dashboard", "Data", "Date", "Dating", "Datum", "Days", "Dead", "Deadline", "Deal", "Dealer", "Dean", "Dear", "Death", "Debit", "Debt", "Decay", "Decimal", "Decision", "Deck", "Declare", "Declared", "Decode", "Decorator", "Decrease", "Deep", "Default", "Defense", "Deferred", "Define", "Defined", "Degree", "Delay", "Delegate", "Delete", "Deletion", "Delimiter", "Deliver", "Delivery", "Dell", "Delta", "Demand", "Dense", "Density", "Dent", "Dental", "Depart", "Departure", "Depend", "Dependent", "Depending", "Deploy", "Deposit", "Depot", "Depth", "Dere", "Derived", "Derm", "Dern", "Describe", "Design", "Designed", "Designer", "Desired", "Desk", "Despite", "Dess", "Destroy", "Detach", "Detached", "Detail", "Detailed", "Detect", "Detection", "Detector", "Determine", "Develop", "Developer", "Deviation", "Device", "Diagnosis", "Diagonal", "Diagram", "Dial", "Dialect", "Dialogue", "Diameter", "Diamond", "Diary", "Dice", "Dick", "Diet", "Differ", "Different", "Diffuse", "Digest", "Digit", "Digital", "Dimension", "Dining", "Dinner", "Dire", "Direct", "Directed", "Direction", "Directive", "Director", "Directory", "Dirty", "Disable", "Disabled", "Disappear", "Disc", "Discard", "Discord", "Discount", "Discover", "Discovery", "Discrete", "Discuss", "Disease", "Dish", "Disk", "Dismiss", "Dispatch", "Display", "Displayed", "Dispose", "Disposed", "Distance", "Distinct", "District", "Dive", "Divers", "Divide", "Dividend", "Divider", "Division", "Dock", "Docker", "Doctor", "Doctrine", "Document", "Does", "Dogs", "Doing", "Dollar", "Domain", "Domestic", "Donate", "Donation", "Done", "Dong", "Donna", "Dont", "Door", "Dorm", "Dose", "Double", "Down", "Draft", "Drag", "Dragged", "Dragging", "Dragon", "Drain", "Drama", "Draw", "Drawable", "Drawer", "Drawing", "Dream", "Dress", "Drink", "Drive", "Driven", "Driver", "Driving", "Drone", "Drop", "Drug", "Drupal", "Dual", "Duck", "Duff", "Dummy", "Dump", "Dung", "Dungeon", "Duplicate", "Duration", "During", "Dust", "Dutch", "Duty", "Dynamic", "Dynamics", "Each", "Early", "Earn", "Earth", "Ease", "East", "Eastern", "Easy", "Eating", "Echo", "Economic", "Edge", "Edit", "Edition", "Editor", "Editorial", "Education", "Effect", "Effective", "Effects", "Eight", "Either", "Elastic", "Elect", "Election", "Electric", "Electron", "Elegant", "Element", "Elevation", "Eligible", "Elite", "Elle", "Ellipse", "Else", "Embed", "Emergency", "Emission", "Emit", "Emitter", "Emma", "Emotion", "Empire", "Employ", "Employee", "Employer", "Empty", "Enable", "Enchant", "Encode", "Encore", "Encounter", "Encrypt", "Ended", "Ending", "Enemy", "Energy", "Engine", "Engineer", "Enhanced", "Enjoy", "Enough", "Enroll", "Ensure", "Enter", "Entering", "Entire", "Entity", "Entrance", "Entropy", "Entry", "Envelope", "Epic", "Episode", "Epoch", "Equal", "Equality", "Equation", "Equip", "Equipment", "Erase", "Eric", "Error", "Escape", "Escort", "Especial", "Essay", "Essential", "Estado", "Estate", "Estimate", "Estimator", "Ether", "Evaluate", "Even", "Event", "Ever", "Every", "Everybody", "Everyone", "Evidence", "Evolution", "Exact", "Exactly", "Exam", "Example", "Excel", "Excelente", "Excellent", "Except", "Exception", "Excerpt", "Exchange", "Exclude", "Exclusive", "Execute", "Executed", "Execution", "Executive", "Executor", "Exercise", "Exist", "Exit", "Expand", "Expanded", "Expansion", "Expect", "Expense", "Expert", "Expire", "Expiry", "Explain", "Explicit", "Explore", "Explorer", "Explosion", "Exponent", "Export", "Exporter", "Expose", "Exposure", "Express", "Extend", "Extended", "Extension", "Extent", "Exterior", "Extern", "External", "Extra", "Extract", "Extractor", "Extreme", "Fabric", "Facade", "Face", "Facet", "Facility", "Facing", "Fact", "Faction", "Factor", "Factory", "Faculty", "Fade", "Fail", "Failure", "Fair", "Faith", "Fake", "Fall", "Fallback", "False", "Family", "Fancy", "Fant", "Fantastic", "Fantasy", "Fare", "Farm", "Fashion", "Fast", "Fatal", "Father", "Fault", "Favor", "Favorite", "Fear", "Feat", "Feature", "Featured", "Federal", "Feed", "Feedback", "Feel", "Feeling", "Feign", "Female", "Fence", "Fern", "Fest", "Festival", "Fetch", "Fetched", "Fetcher", "Fetching", "Fiber", "Field", "Fight", "Figure", "File", "Fill", "Filled", "Film", "Filter", "Filtering", "Final", "Finalize", "Finally", "Finance", "Financial", "Find", "Finder", "Finding", "Fine", "Finger", "Finish", "Finished", "Finite", "Fire", "Firewall", "Firm", "First", "Firstly", "Fiscal", "Fish", "Fishing", "Fitness", "Five", "Fixed", "Fixture", "Fizz", "Flag", "Flash", "Flat", "Flatten", "Flavor", "Fleet", "Flex", "Flexible", "Flight", "Flip", "Float", "Floating", "Flood", "Floor", "Flow", "Flower", "Fluid", "Flush", "Flutter", "Flux", "Flying", "Focus", "Focusable", "Fold", "Folder", "Follow", "Follower", "Following", "Fond", "Font", "Food", "Foot", "Football", "Footer", "Forbidden", "Force", "Forced", "Ford", "Fore", "Forecast", "Foreign", "Forest", "Forever", "Forge", "Forgery", "Forget", "Forgot", "Fork", "Form", "Formal", "Format", "Formation", "Former", "Formula", "Fort", "Forum", "Forward", "Found", "Founder", "Four", "Fourth", "Fraction", "Fragment", "Frame", "Framework", "Franc", "Frank", "Free", "Freedom", "Freeze", "Frequency", "Fresh", "Friend", "Friendly", "From", "Front", "Frozen", "Fruit", "Fuel", "Full", "Fully", "Function", "Fund", "Funds", "Funny", "Furniture", "Further", "Fuse", "Fusion", "Future", "Gain", "Galaxy", "Gall", "Gallery", "Game", "Gaming", "Gamma", "Gang", "Garage", "Garden", "Gast", "Gate", "Gateway", "Gather", "Gauge", "Gear", "Geek", "Gender", "Gene", "General", "Generally", "Generate", "Generator", "Generic", "Genesis", "Genome", "Genre", "Gent", "Geometry", "German", "Gest", "Gestion", "Gesture", "Getter", "Getting", "Ghost", "Gift", "Gill", "Girl", "Give", "Given", "Giving", "Glad", "Glass", "Global", "Gloss", "Glow", "Glue", "Glyph", "Goal", "Going", "Gold", "Golden", "Golf", "Gone", "Good", "Goods", "Govern", "Governor", "Grab", "Grace", "Grad", "Grade", "Gradient", "Graduate", "Gram", "Grammar", "Grand", "Grant", "Graph", "Graphic", "Graphics", "Grass", "Gratis", "Gravity", "Gray", "Great", "Greater", "Green", "Greeting", "Grey", "Grid", "Grinding", "Grip", "Gross", "Ground", "Group", "Grouped", "Grouping", "Grow", "Growing", "Growth", "Guard", "Guardian", "Guess", "Guest", "Guide", "Guild", "Guru", "Habit", "Hack", "Hair", "Half", "Hall", "Halo", "Hammer", "Hand", "Handle", "Handled", "Handler", "Handling", "Handshake", "Happy", "Hard", "Hardware", "Harmony", "Harness", "Harry", "Hart", "Harvest", "Hash", "Hasher", "Hasta", "Have", "Head", "Header", "Heading", "Headline", "Heal", "Healing", "Health", "Healthy", "Heap", "Hear", "Heart", "Heartbeat", "Heat", "Heather", "Heating", "Heavy", "Heel", "Height", "Hell", "Hello", "Helmet", "Help", "Helper", "Helpful", "Helping", "Hence", "Henry", "Here", "Hero", "Hibernate", "Hidden", "Hide", "Hierarchy", "High", "Higher", "Highest", "Highlight", "Highly", "Hill", "Hint", "Hire", "Hist", "Histogram", "Historic", "History", "Hive", "Hold", "Holder", "Holding", "Hole", "Holiday", "Holy", "Home", "Homework", "Honda", "Honestly", "Honey", "Hong", "Honor", "Hook", "Hope", "Hopefully", "Hora", "Horn", "Horse", "Hospital", "Host", "Hosting", "Hotel", "Hour", "Hourly", "House", "Housing", "Hover", "Howdy", "However", "Huge", "Hull", "Human", "Humidity", "Hung", "Hybrid", "Hyper", "Icon", "Idea", "Ideal", "Identify", "Identity", "Idle", "Ignore", "Illegal", "Image", "Imagine", "Immediate", "Immutable", "Impact", "Implement", "Implicit", "Import", "Important", "Importer", "Improve", "Impulse", "Inactive", "Inbound", "Incident", "Include", "Included", "Inclusive", "Income", "Incoming", "Incorrect", "Increase", "Increment", "Indeed", "Indent", "Indented", "Index", "Indexed", "Indexer", "Indic", "Indicator", "Indices", "Indirect", "Indoor", "Industry", "Infer", "Inference", "Infinite", "Infinity", "Inflater", "Inform", "Informer", "Infra", "Ingress", "Initial", "Initially", "Inject", "Injection", "Injector", "Inner", "Input", "Inquiry", "Insert", "Inserted", "Insertion", "Inset", "Inside", "Insight", "Inspect", "Inspector", "Inspired", "Install", "Installer", "Instance", "Instant", "Instead", "Institute", "Insurance", "Integer", "Integral", "Integrity", "Intensity", "Intent", "Inter", "Interact", "Intercept", "Interest", "Interface", "Interior", "Intern", "Internal", "Interpret", "Interrupt", "Intersect", "Interval", "Interview", "Into", "Intrinsic", "Introduce", "Invalid", "Invariant", "Invent", "Inventory", "Inverse", "Invert", "Invest", "Investor", "Invisible", "Invite", "Invoice", "Invoke", "Invoker", "Iron", "Island", "Isolation", "Issue", "Issuer", "Item", "Iter", "Iterable", "Iteration", "Jack", "Jake", "Jane", "Japan", "Jazz", "Jean", "Jeff", "Jenny", "Jerry", "Jess", "Jimmy", "Join", "Joining", "Joint", "Jordan", "Josh", "Journal", "Journey", "Judge", "Jump", "June", "Junior", "Just", "Justice", "Kala", "Kana", "Kath", "Keep", "Keeper", "Keeping", "Kelly", "Kent", "Kernel", "Keyboard", "Kick", "Kill", "Kind", "King", "Kitchen", "Knife", "Knight", "Know", "Knowing", "Knowledge", "Known", "Kung", "Kyle", "Label", "Labor", "Ladies", "Lady", "Lake", "Lambda", "Lamp", "Land", "Landing", "Landscape", "Lane", "Language", "Large", "Larry", "Laser", "Last", "Lastly", "Latch", "Late", "Latency", "Later", "Latest", "Latitude", "Laugh", "Launch", "Launcher", "Laundry", "Laur", "Laura", "Layer", "Layout", "Lazy", "Lead", "Leader", "Leading", "Leaf", "League", "Leak", "Lean", "Leap", "Lear", "Learn", "Learning", "Lease", "Least", "Leather", "Leave", "Leaves", "Leaving", "Lecture", "Ledger", "Leer", "Lees", "Left", "Legacy", "Legal", "Legend", "Legenda", "Lemma", "Length", "Lens", "Less", "Lesson", "Letter", "Level", "Lever", "Lewis", "Liber", "Library", "License", "Licensed", "Lien", "Lieu", "Life", "Lifetime", "Lift", "Light", "Lighting", "Lightning", "Like", "Limit", "Limited", "Limiter", "Line", "Linea", "Linear", "Ling", "Linha", "Link", "Linked", "Links", "Lint", "Lion", "Liquid", "Liquidity", "Lire", "List", "Listed", "Listen", "Listener", "Listening", "Lister", "Listing", "Lite", "Liter", "Literal", "Lith", "Little", "Live", "Living", "Livre", "Load", "Loaded", "Loader", "Loading", "Loan", "Lobby", "Local", "Locale", "Locate", "Location", "Locator", "Lock", "Locked", "Locker", "Logged", "Logger", "Logging", "Logic", "Logical", "Login", "Logo", "Long", "Longitude", "Look", "Looking", "Lookup", "Loop", "Looper", "Loose", "Loot", "Lord", "Lore", "Lors", "Lose", "Loss", "Lost", "Lots", "Lottery", "Love", "Lovely", "Lower", "Luck", "Luckily", "Lucky", "Lucy", "Luke", "Lunch", "Luxury", "Machine", "Macro", "Made", "Magazine", "Mage", "Magic", "Magnitude", "Mail", "Mailbox", "Mailer", "Main", "Maint", "Maintain", "Major", "Make", "Maker", "Making", "Male", "Malformed", "Mall", "Mana", "Manage", "Manager", "Mand", "Mandatory", "Mang", "Manifest", "Mant", "Manual", "Many", "Mapper", "Marc", "March", "Marco", "Margin", "Maria", "Marine", "Mark", "Markdown", "Marked", "Marker", "Market", "Marketing", "Markup", "Marriage", "Marshal", "Mart", "Martin", "Marvel", "Mary", "Mash", "Mask", "Masked", "Mass", "Massage", "Master", "Match", "Matcher", "Matching", "Mate", "Mater", "Material", "Math", "Matrices", "Matrix", "Matter", "Maximum", "Maybe", "Mayor", "Maze", "Meal", "Mean", "Meaning", "Meanwhile", "Measure", "Measured", "Media", "Median", "Mediator", "Medic", "Medical", "Medicine", "Medium", "Meet", "Meeting", "Mein", "Member", "Memo", "Memory", "Meng", "Mental", "Mention", "Menu", "Merchant", "Merge", "Merk", "Mesa", "Mesh", "Mess", "Message", "Messenger", "Meta", "Metal", "Meteor", "Meter", "Method", "Metric", "Metrics", "Michigan", "Micro", "Middle", "Migration", "Mike", "Mileage", "Military", "Milk", "Mill", "Million", "Millions", "Mime", "Mind", "Mine", "Miner", "Minimal", "Minimum", "Mining", "Minister", "Minor", "Mint", "Minus", "Minute", "Mirror", "Mismatch", "Miss", "Missing", "Mission", "Mist", "Mitt", "Mixed", "Mixer", "Mnemonic", "Mobile", "Mock", "Modal", "Mode", "Model", "Moderator", "Modern", "Modifier", "Modify", "Module", "Modulo", "Moment", "Momentum", "Monad", "Money", "Monitor", "Monkey", "Mono", "Monster", "Monte", "Month", "Monthly", "Mood", "Moon", "More", "Moreover", "Morgan", "Morning", "Morph", "Mort", "Mortgage", "Most", "Mostly", "Mother", "Motion", "Motor", "Mount", "Mountain", "Mounted", "Mouse", "Move", "Movement", "Mover", "Movie", "Moving", "Much", "Mult", "Multiple", "Multiply", "Muse", "Museum", "Music", "Must", "Mutable", "Mutation", "Mute", "Myst", "Naam", "Nach", "Name", "Naming", "Nancy", "Narr", "Natal", "Nation", "National", "Native", "Natural", "Nature", "Navigate", "Navigator", "Near", "Nearby", "Nearest", "Nearly", "Necessary", "Need", "Needs", "Neem", "Negative", "Neighbor", "Neither", "Nest", "Network", "Neuron", "Neutral", "Never", "News", "Newton", "Next", "Nice", "Nick", "Nickname", "Night", "Nimbus", "Nine", "Nobody", "Node", "Noise", "Nome", "Nonce", "None", "Norm", "Normal", "Normalize", "Normally", "North", "Northern", "Notation", "Note", "Notebook", "Nothing", "Notice", "Notifier", "Notify", "Nous", "Nova", "Novel", "Nowadays", "Null", "Nullable", "Number", "Numero", "Nutrition", "Object", "Objective", "Observe", "Observer", "Obstacle", "Obviously", "Ocean", "Odds", "Offer", "Offering", "Office", "Officer", "Official", "Offset", "Often", "Older", "Omega", "Once", "Only", "Ontology", "Opacity", "Opaque", "Open", "Opening", "Opera", "Operand", "Operate", "Operating", "Operation", "Operator", "Opinion", "Opponent", "Optimal", "Optimize", "Option", "Optional", "Oracle", "Orange", "Orbit", "Order", "Ordered", "Ordinal", "Organ", "Organic", "Organizer", "Orient", "Origin", "Original", "Other", "Otherwise", "Outbound", "Outcome", "Outdoor", "Outer", "Outgoing", "Outlet", "Outline", "Outlined", "Output", "Outside", "Oval", "Over", "Overall", "Overflow", "Overlap", "Overlay", "Override", "Overview", "Overwrite", "Owner", "Ownership", "Pacific", "Pack", "Package", "Packet", "Padding", "Page", "Pager", "Pagina", "Pain", "Paint", "Painter", "Painting", "Pair", "Pais", "Palette", "Palm", "Pand", "Pane", "Panel", "Pant", "Papa", "Paper", "Paperback", "Para", "Paragraph", "Parallel", "Param", "Parameter", "Parcel", "Pare", "Paren", "Parent", "Parity", "Park", "Parking", "Parse", "Parser", "Part", "Partial", "Particle", "Partition", "Partner", "Party", "Pass", "Passe", "Passenger", "Passing", "Passive", "Passport", "Password", "Past", "Paste", "Patch", "Patent", "Path", "Patient", "Pattern", "Pause", "Pawn", "Payment", "Payroll", "Peace", "Peak", "Pear", "Pedro", "Peek", "Peer", "Penalty", "Pend", "Pendant", "Pending", "Pent", "People", "Percent", "Perfect", "Perform", "Perhaps", "Period", "Periodic", "Perm", "Permanent", "Permit", "Persist", "Person", "Persona", "Personal", "Personnel", "Pert", "Peso", "Pete", "Peter", "Petit", "Phase", "Phoenix", "Phone", "Phot", "Photo", "Photon", "Phrase", "Physical", "Physics", "Pick", "Picked", "Picker", "Pickup", "Picture", "Piece", "Pier", "Pile", "Pilot", "Ping", "Pink", "Pinned", "Pipe", "Pipeline", "Pitch", "Pivot", "Pizza", "Place", "Placement", "Plain", "Plan", "Plane", "Planet", "Planner", "Plant", "Plastic", "Plat", "Plate", "Platform", "Play", "Playable", "Playback", "Player", "Please", "Plot", "Plug", "Plural", "Plus", "Pocket", "Point", "Pointer", "Poker", "Polar", "Pole", "Police", "Policy", "Political", "Politics", "Poll", "Polling", "Poly", "Polygon", "Pont", "Pool", "Poor", "Popover", "Popular", "Populate", "Port", "Portable", "Portal", "Portfolio", "Portlet", "Portrait", "Pose", "Position", "Positive", "Poss", "Possible", "Post", "Postal", "Posted", "Poster", "Posting", "Potential", "Potion", "Pour", "Power", "Powered", "Practice", "Praise", "Prayer", "Precis", "Precision", "Predicate", "Predict", "Prefab", "Prefer", "Preferred", "Prefix", "Prelude", "Premier", "Premium", "Prep", "Prepare", "Prepared", "Presence", "Present", "Presenter", "Preset", "President", "Press", "Pressure", "Prest", "Pretty", "Prevent", "Preview", "Previous", "Price", "Prim", "Prima", "Primary", "Prime", "Primer", "Primitive", "Prince", "Princess", "Principal", "Print", "Printable", "Printed", "Printer", "Printing", "Prior", "Priority", "Privacy", "Private", "Privilege", "Prize", "Prob", "Probably", "Probe", "Problem", "Procedure", "Proceed", "Process", "Processor", "Prod", "Produce", "Produced", "Producer", "Product", "Prof", "Professor", "Profile", "Profiler", "Profit", "Prog", "Program", "Progress", "Project", "Promise", "Promotion", "Prompt", "Proof", "Prop", "Proper", "Property", "Proposal", "Props", "Prote", "Protect", "Protein", "Proto", "Protocol", "Prototype", "Provide", "Provided", "Provider", "Providing", "Province", "Provision", "Proxy", "Psalm", "Pseudo", "Psych", "Public", "Publish", "Publisher", "Pull", "Pulse", "Pump", "Punch", "Purchase", "Pure", "Purple", "Purpose", "Push", "Puzzle", "Python", "Quad", "Qualified", "Qualifier", "Quality", "Quan", "Quant", "Quantity", "Quantum", "Quart", "Quarter", "Quartz", "Quat", "Queen", "Query", "Quest", "Question", "Queue", "Quick", "Quiet", "Quit", "Quite", "Quiz", "Quota", "Quotation", "Quote", "Rabbit", "Race", "Rack", "Radar", "Radio", "Radius", "Raid", "Rail", "Rain", "Rainbow", "Raise", "Raised", "Ramp", "Rand", "Random", "Range", "Rank", "Rapid", "Rare", "Raster", "Rate", "Rated", "Rather", "Rating", "Ratio", "Reach", "React", "Reaction", "Reactive", "Read", "Readable", "Reader", "Reading", "Ready", "Real", "Reality", "Really", "Realm", "Rear", "Reason", "Recall", "Receipt", "Receive", "Received", "Receiver", "Recent", "Recently", "Reception", "Recharge", "Recherche", "Recipe", "Recipient", "Recommend", "Recon", "Reconnect", "Record", "Recorder", "Recording", "Recover", "Recovery", "Recruit", "Rect", "Rectangle", "Recurring", "Recursive", "Recycle", "Rede", "Redirect", "Redo", "Reduce", "Reduced", "Reducer", "Reduction", "Redux", "Refer", "Reference", "Referral", "Reflect", "Refresh", "Refund", "Regarding", "Region", "Regional", "Register", "Registrar", "Registry", "Regular", "Reject", "Related", "Relation", "Relative", "Relax", "Relay", "Release", "Relevant", "Reliable", "Religion", "Reload", "Remain", "Remark", "Remember", "Reminder", "Remote", "Removal", "Remove", "Removed", "Removing", "Rename", "Render", "Renderer", "Rendering", "Renew", "Rent", "Rental", "Repair", "Repeat", "Repeated", "Replace", "Replay", "Replica", "Reply", "Report", "Reporter", "Represent", "Republic", "Request", "Requester", "Require", "Research", "Reserve", "Reserved", "Reset", "Residence", "Resident", "Residual", "Resize", "Resolve", "Resolved", "Resolver", "Resource", "Resp", "Respect", "Respond", "Responder", "Response", "Rest", "Restart", "Restore", "Result", "Resume", "Retail", "Retention", "Retour", "Retrieve", "Retriever", "Retry", "Return", "Returned", "Reuse", "Reveal", "Revenue", "Reverse", "Review", "Reviewer", "Revision", "Reward", "Rewrite", "Ribbon", "Rice", "Rich", "Rick", "Ride", "Right", "Rigid", "Ring", "Ripple", "Rise", "Risk", "River", "Road", "Robin", "Robot", "Rock", "Rocket", "Roger", "Role", "Roll", "Rollback", "Rolling", "Roof", "Room", "Root", "Rose", "Ross", "Roster", "Rotate", "Rotation", "Rotor", "Round", "Rounded", "Route", "Router", "Routine", "Routing", "Royal", "Ruby", "Rule", "Rune", "Runnable", "Runner", "Running", "Rush", "Russia", "Rust", "Sadly", "Safari", "Safe", "Safety", "Saga", "Saint", "Salary", "Sale", "Salle", "Salon", "Salt", "Same", "Samen", "Sample", "Sampler", "Sampling", "Sand", "Sandbox", "Sans", "Sant", "Satellite", "Satisfied", "Save", "Saved", "Saver", "Saving", "Saya", "Scala", "Scalar", "Scale", "Scaled", "Scaler", "Scaling", "Scan", "Scanner", "Scanning", "Scar", "Scatter", "Scenario", "Scene", "Schedule", "Schema", "Scheme", "Scholar", "School", "Science", "Scient", "Scope", "Score", "Scout", "Scratch", "Screen", "Script", "Scroll", "Scrolled", "Seal", "Search", "Searcher", "Searching", "Season", "Seat", "Second", "Secondary", "Secondly", "Secret", "Secretary", "Sect", "Section", "Sector", "Secure", "Security", "Seed", "Seeder", "Seeing", "Seek", "Seeking", "Seen", "Segment", "Segue", "Seit", "Sele", "Select", "Selected", "Selection", "Selective", "Selector", "Self", "Sell", "Seller", "Selling", "Semantic", "Semaphore", "Semester", "Semi", "Send", "Sender", "Sending", "Senior", "Sense", "Sensitive", "Sensor", "Sent", "Sentence", "Separate", "Separator", "Sept", "Sequence", "Serial", "Serialize", "Series", "Seriously", "Serve", "Server", "Service", "Servidor", "Serving", "Servo", "Sess", "Session", "Sessions", "Sett", "Setter", "Setting", "Setup", "Seven", "Several", "Severity", "Sexy", "Shade", "Shader", "Shadow", "Shake", "Shanghai", "Shape", "Shard", "Share", "Sharp", "Sharper", "Sheet", "Shelf", "Shell", "Sher", "Shield", "Shift", "Shim", "Ship", "Shipment", "Shipping", "Shock", "Shoot", "Shop", "Shopping", "Short", "Shot", "Should", "Show", "Showing", "Shown", "Shrink", "Shuffle", "Shutdown", "Sibling", "Side", "Sides", "Sight", "Sigma", "Sign", "Signal", "Signature", "Signer", "Silent", "Silver", "Similar", "Similarly", "Simple", "Simply", "Simulator", "Since", "Sind", "Sing", "Singer", "Single", "Singles", "Singleton", "Sinh", "Sink", "Site", "Situated", "Situation", "Size", "Sized", "Sizer", "Sizes", "Sizing", "Skeleton", "Sketch", "Skill", "Skin", "Skip", "Skipping", "Slack", "Slash", "Slate", "Slave", "Slee", "Sleep", "Sleeping", "Slice", "Slide", "Slider", "Sliding", "Slim", "Slinky", "Slip", "Slope", "Slot", "Slow", "Slug", "Small", "Smart", "Smarty", "Smile", "Smith", "Smoke", "Smoking", "Smooth", "Snack", "Snake", "Snap", "Snapshot", "Snippet", "Snow", "Soap", "Social", "Sock", "Socket", "Soft", "Software", "Solar", "Sold", "Solid", "Solo", "Solution", "Solve", "Solver", "Some", "Someone", "Something", "Sometimes", "Song", "Soon", "Soph", "Sorry", "Sort", "Sortable", "Sorted", "Sorter", "Soul", "Sound", "Soup", "Source", "South", "Southern", "Space", "Spacer", "Spacing", "Spam", "Span", "Spark", "Sparse", "Spatial", "Spawn", "Spawner", "Speak", "Speaker", "Speaking", "Spec", "Special", "Species", "Specific", "Specifier", "Specify", "Specs", "Spectrum", "Speech", "Speed", "Spell", "Spend", "Spent", "Sphere", "Spider", "Spiel", "Spike", "Spin", "Spinner", "Spirit", "Splash", "Spline", "Split", "Splitter", "Sponsor", "Sport", "Sports", "Spot", "Spread", "Spring", "Sprint", "Sprite", "Square", "Squared", "Stable", "Stack", "Staff", "Stage", "Stake", "Stamp", "Stand", "Standard", "Standing", "Stap", "Star", "Start", "Starter", "Starting", "State", "Statement", "Static", "Statics", "Station", "Statistic", "Status", "Stay", "Stayed", "Steam", "Steel", "Stem", "Stencil", "Step", "Stepper", "Stereo", "Steven", "Stick", "Sticker", "Sticky", "Still", "Stim", "Stock", "Stocks", "Stone", "Stop", "Stopped", "Stopping", "Storage", "Store", "Storm", "Story", "Stra", "Straight", "Strategy", "Stream", "Streamer", "Streaming", "Street", "Strength", "Stress", "Stretch", "Strict", "Stride", "Strike", "String", "Strip", "Stripe", "Stroke", "Strong", "Structure", "Stub", "Stud", "Student", "Studio", "Study", "Stuff", "Style", "Subclass", "Subject", "Submit", "Subscribe", "Subset", "Subsystem", "Subtitle", "Subtotal", "Subtract", "Subtype", "Success", "Such", "Suffix", "Sugar", "Suggest", "Suit", "Suitable", "Suite", "Summary", "Summer", "Sunny", "Super", "Superior", "Supplier", "Supply", "Support", "Suppress", "Sure", "Surf", "Surface", "Surname", "Survey", "Suspend", "Swagger", "Swap", "Sweep", "Sweet", "Swift", "Swimming", "Swing", "Swipe", "Swiper", "Swiss", "Switch", "Switcher", "Sword", "Symbol", "Sync", "Synopsis", "Syntax", "Synthetic", "System", "Tabla", "Table", "Tables", "Tablet", "Tagged", "Tail", "Take", "Taken", "Taking", "Talent", "Talk", "Talking", "Tall", "Tang", "Tank", "Tape", "Target", "Task", "Taste", "Taxi", "Teach", "Teacher", "Teaching", "Team", "Tech", "Technical", "Technique", "Teen", "Teil", "Tele", "Telegram", "Telemetry", "Telephone", "Tell", "Temp", "Temper", "Template", "Temple", "Tempo", "Temporal", "Temporary", "Tenant", "Tender", "Tensor", "Tent", "Term", "Termin", "Terminal", "Terminate", "Terrain", "Test", "Teste", "Tester", "Testing", "Text", "Texture", "Than", "Thank", "Thanks", "That", "Their", "Them", "Theme", "Then", "Theory", "There", "Therefore", "These", "Theta", "They", "Thickness", "Thin", "Thing", "Think", "Thinking", "Third", "Thirty", "This", "Thong", "Those", "Though", "Thought", "Thread", "Threat", "Three", "Thresh", "Threshold", "Throttle", "Through", "Throw", "Thrown", "Thumb", "Thumbnail", "Thunder", "Thus", "Tick", "Ticker", "Ticket", "Tien", "Tier", "Tiger", "Tile", "Till", "Tilt", "Time", "Timed", "Timer", "Times", "Timing", "Tint", "Tiny", "Title", "Titre", "Toast", "Today", "Together", "Toggle", "Token", "Tolerance", "Tomorrow", "Tone", "Tong", "Tonight", "Tony", "Tool", "Topic", "Topo", "Topology", "Torch", "Toro", "Torque", "Torrent", "Total", "Touch", "Touchable", "Touched", "Tour", "Tout", "Towards", "Tower", "Town", "Trace", "Tracer", "Tracing", "Track", "Tracked", "Tracker", "Trade", "Trademark", "Trader", "Trading", "Traffic", "Trail", "Trailer", "Trailing", "Train", "Trainer", "Training", "Trait", "Transfer", "Transform", "Transient", "Transit", "Translate", "Transmit", "Transport", "Transpose", "Trap", "Trash", "Travel", "Traveler", "Traveller", "Traversal", "Traverse", "Tray", "Treat", "Treatment", "Tree", "Trend", "Trial", "Triangle", "Trig", "Trigger", "Triggered", "Trim", "Trip", "Triple", "Trivia", "Truck", "True", "Trump", "Trust", "Truth", "Truthy", "Trying", "Tube", "Tune", "Tunnel", "Turbo", "Turkey", "Turn", "Turning", "Turns", "Tutor", "Tutorial", "Tween", "Tweet", "Twenty", "Twig", "Twin", "Twitter", "Type", "Typical", "Typically", "Ultimate", "Ultra", "Unable", "Unary", "Unchecked", "Undefined", "Under", "Underline", "Undo", "Unhandled", "Unified", "Uniform", "Union", "Unique", "Unit", "United", "Unity", "Universal", "Universe", "Unknown", "Unless", "Unlike", "Unlimited", "Unload", "Unlock", "Unlocked", "Unmount", "Unnamed", "Unread", "Unsafe", "Unset", "Unsigned", "Until", "Unused", "Upcoming", "Update", "Upgrade", "Upload", "Upon", "Upper", "Urban", "Usage", "Used", "Useful", "User", "Usually", "Utility", "Vacation", "Vale", "Valid", "Validate", "Validity", "Valor", "Value", "Valve", "Vari", "Variable", "Variance", "Variant", "Variation", "Various", "Vault", "Vector", "Vehicle", "Velocity", "Vend", "Vendor", "Vent", "Venue", "Verb", "Verbose", "Verd", "Verifier", "Verify", "Verse", "Version", "Vert", "Vertex", "Vertical", "Vertices", "Very", "Vest", "Vice", "Victor", "Victory", "Video", "Vier", "View", "Viewer", "Vill", "Villa", "Village", "Ville", "Vintage", "Viol", "Violation", "Virgin", "Virtual", "Virus", "Visa", "Visible", "Vision", "Visit", "Visitor", "Vista", "Visual", "Vital", "Vitals", "Vitamin", "Voice", "Void", "Volley", "Volt", "Voltage", "Volume", "Volunteer", "Vote", "Voting", "Voucher", "Waar", "Wait", "Waiting", "Wake", "Walk", "Walker", "Walking", "Wall", "Wallet", "Wallpaper", "Walter", "Want", "Ward", "Ware", "Warehouse", "Warm", "Warn", "Warning", "Warp", "Warranty", "Wash", "Waste", "Watch", "Watcher", "Watching", "Water", "Wave", "Ways", "Weak", "Weapon", "Wear", "Weather", "Wedding", "Week", "Weekend", "Weekly", "Weight", "Weighted", "Welcome", "Well", "Went", "Were", "West", "Western", "What", "Whatever", "Whats", "Wheel", "When", "Whenever", "Where", "Whether", "Which", "While", "Whilst", "Whit", "White", "Whoa", "Whole", "Wholesale", "Wide", "Width", "Wild", "Will", "Wilt", "Wind", "Window", "Wine", "Wing", "Winner", "Winning", "Winter", "Wire", "Wireless", "Wise", "Wish", "With", "Withdraw", "Within", "Without", "Witness", "Wizard", "Wolf", "Woman", "Wonder", "Wonderful", "Wood", "Word", "Work", "Workbench", "Workbook", "Worked", "Worker", "Working", "Workout", "Works", "Workshop", "World", "Worst", "Worth", "Would", "Wrap", "Wrapped", "Wrapper", "Wrapping", "Writable", "Write", "Writer", "Writing", "Written", "Wrong", "Yahoo", "Yang", "Yeah", "Year", "Yellow", "Yeni", "Yesterday", "Yield", "Yoga", "York", "Young", "Your", "Youth", "Zero", "Zimbabwe", "Zombie", "Zone", "Zoom"]
3