UNPKG

webwriter-chart

Version:

ww-chart is an interactive data visualization widget for the WebWriter tool that implements various charts and diagrams for static and exploratory data visualization.

2,292 lines (2,281 loc) 1.46 MB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name); var __typeError = (msg) => { throw TypeError(msg); }; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to3, from2, except, desc) => { if (from2 && typeof from2 === "object" || typeof from2 === "function") { for (let key of __getOwnPropNames(from2)) if (!__hasOwnProp.call(to3, key) && key !== except) __defProp(to3, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable }); } return to3; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)]; var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"]; var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn; var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) }); var __decoratorMetadata = (array2, target) => __defNormalProp(target, __knownSymbol("metadata"), array2[3]); var __runInitializers = (array2, flags, self2, value) => { for (var i4 = 0, fns = array2[flags >> 1], n6 = fns && fns.length; i4 < n6; i4++) flags & 1 ? fns[i4].call(self2) : value = fns[i4].call(self2, value); return value; }; var __decorateElement = (array2, flags, name, decorators, target, extra) => { var fn, it, done, ctx, access, k3 = flags & 7, s3 = !!(flags & 8), p3 = !!(flags & 16); var j3 = k3 > 3 ? array2.length + 1 : k3 ? s3 ? 1 : 2 : 0, key = __decoratorStrings[k3 + 5]; var initializers = k3 > 3 && (array2[j3 - 1] = []), extraInitializers = array2[j3] || (array2[j3] = []); var desc = k3 && (!p3 && !s3 && (target = target.prototype), k3 < 5 && (k3 > 3 || !p3) && __getOwnPropDesc(k3 < 4 ? target : { get [name]() { return __privateGet(this, extra); }, set [name](x4) { return __privateSet(this, extra, x4); } }, name)); k3 ? p3 && k3 < 4 && __name(extra, (k3 > 2 ? "set " : k3 > 1 ? "get " : "") + name) : __name(target, name); for (var i4 = decorators.length - 1; i4 >= 0; i4--) { ctx = __decoratorContext(k3, name, done = {}, array2[3], extraInitializers); if (k3) { ctx.static = s3, ctx.private = p3, access = ctx.access = { has: p3 ? (x4) => __privateIn(target, x4) : (x4) => name in x4 }; if (k3 ^ 3) access.get = p3 ? (x4) => (k3 ^ 1 ? __privateGet : __privateMethod)(x4, target, k3 ^ 4 ? extra : desc.get) : (x4) => x4[name]; if (k3 > 2) access.set = p3 ? (x4, y4) => __privateSet(x4, target, y4, k3 ^ 4 ? extra : desc.set) : (x4, y4) => x4[name] = y4; } it = (0, decorators[i4])(k3 ? k3 < 4 ? p3 ? extra : desc[key] : k3 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1; if (k3 ^ 4 || it === void 0) __expectFn(it) && (k3 > 4 ? initializers.unshift(it) : k3 ? p3 ? extra = it : desc[key] = it : target = it); else if (typeof it !== "object" || it === null) __typeError("Object expected"); else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn); } return k3 || __decoratorMetadata(array2, target), desc && __defProp(target, name, desc), p3 ? k3 ^ 4 ? extra : desc : target; }; var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg); var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj); var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value); var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); // node_modules/seedrandom/lib/alea.js var require_alea = __commonJS({ "node_modules/seedrandom/lib/alea.js"(exports, module) { (function(global, module2, define2) { function Alea(seed) { var me = this, mash = Mash(); me.next = function() { var t7 = 2091639 * me.s0 + me.c * 23283064365386963e-26; me.s0 = me.s1; me.s1 = me.s2; return me.s2 = t7 - (me.c = t7 | 0); }; me.c = 1; me.s0 = mash(" "); me.s1 = mash(" "); me.s2 = mash(" "); me.s0 -= mash(seed); if (me.s0 < 0) { me.s0 += 1; } me.s1 -= mash(seed); if (me.s1 < 0) { me.s1 += 1; } me.s2 -= mash(seed); if (me.s2 < 0) { me.s2 += 1; } mash = null; } function copy2(f5, t7) { t7.c = f5.c; t7.s0 = f5.s0; t7.s1 = f5.s1; t7.s2 = f5.s2; return t7; } function impl(seed, opts) { var xg = new Alea(seed), state = opts && opts.state, prng = xg.next; prng.int32 = function() { return xg.next() * 4294967296 | 0; }; prng.double = function() { return prng() + (prng() * 2097152 | 0) * 11102230246251565e-32; }; prng.quick = prng; if (state) { if (typeof state == "object") copy2(state, xg); prng.state = function() { return copy2(xg, {}); }; } return prng; } function Mash() { var n6 = 4022871197; var mash = function(data) { data = String(data); for (var i4 = 0; i4 < data.length; i4++) { n6 += data.charCodeAt(i4); var h5 = 0.02519603282416938 * n6; n6 = h5 >>> 0; h5 -= n6; h5 *= n6; n6 = h5 >>> 0; h5 -= n6; n6 += h5 * 4294967296; } return (n6 >>> 0) * 23283064365386963e-26; }; return mash; } if (module2 && module2.exports) { module2.exports = impl; } else if (define2 && define2.amd) { define2(function() { return impl; }); } else { this.alea = impl; } })( exports, typeof module == "object" && module, // present in node.js typeof define == "function" && define // present with an AMD loader ); } }); // node_modules/seedrandom/lib/xor128.js var require_xor128 = __commonJS({ "node_modules/seedrandom/lib/xor128.js"(exports, module) { (function(global, module2, define2) { function XorGen(seed) { var me = this, strseed = ""; me.x = 0; me.y = 0; me.z = 0; me.w = 0; me.next = function() { var t7 = me.x ^ me.x << 11; me.x = me.y; me.y = me.z; me.z = me.w; return me.w ^= me.w >>> 19 ^ t7 ^ t7 >>> 8; }; if (seed === (seed | 0)) { me.x = seed; } else { strseed += seed; } for (var k3 = 0; k3 < strseed.length + 64; k3++) { me.x ^= strseed.charCodeAt(k3) | 0; me.next(); } } function copy2(f5, t7) { t7.x = f5.x; t7.y = f5.y; t7.z = f5.z; t7.w = f5.w; return t7; } function impl(seed, opts) { var xg = new XorGen(seed), state = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { do { var top2 = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top2 + bot) / (1 << 21); } while (result === 0); return result; }; prng.int32 = xg.next; prng.quick = prng; if (state) { if (typeof state == "object") copy2(state, xg); prng.state = function() { return copy2(xg, {}); }; } return prng; } if (module2 && module2.exports) { module2.exports = impl; } else if (define2 && define2.amd) { define2(function() { return impl; }); } else { this.xor128 = impl; } })( exports, typeof module == "object" && module, // present in node.js typeof define == "function" && define // present with an AMD loader ); } }); // node_modules/seedrandom/lib/xorwow.js var require_xorwow = __commonJS({ "node_modules/seedrandom/lib/xorwow.js"(exports, module) { (function(global, module2, define2) { function XorGen(seed) { var me = this, strseed = ""; me.next = function() { var t7 = me.x ^ me.x >>> 2; me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v; return (me.d = me.d + 362437 | 0) + (me.v = me.v ^ me.v << 4 ^ (t7 ^ t7 << 1)) | 0; }; me.x = 0; me.y = 0; me.z = 0; me.w = 0; me.v = 0; if (seed === (seed | 0)) { me.x = seed; } else { strseed += seed; } for (var k3 = 0; k3 < strseed.length + 64; k3++) { me.x ^= strseed.charCodeAt(k3) | 0; if (k3 == strseed.length) { me.d = me.x << 10 ^ me.x >>> 4; } me.next(); } } function copy2(f5, t7) { t7.x = f5.x; t7.y = f5.y; t7.z = f5.z; t7.w = f5.w; t7.v = f5.v; t7.d = f5.d; return t7; } function impl(seed, opts) { var xg = new XorGen(seed), state = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { do { var top2 = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top2 + bot) / (1 << 21); } while (result === 0); return result; }; prng.int32 = xg.next; prng.quick = prng; if (state) { if (typeof state == "object") copy2(state, xg); prng.state = function() { return copy2(xg, {}); }; } return prng; } if (module2 && module2.exports) { module2.exports = impl; } else if (define2 && define2.amd) { define2(function() { return impl; }); } else { this.xorwow = impl; } })( exports, typeof module == "object" && module, // present in node.js typeof define == "function" && define // present with an AMD loader ); } }); // node_modules/seedrandom/lib/xorshift7.js var require_xorshift7 = __commonJS({ "node_modules/seedrandom/lib/xorshift7.js"(exports, module) { (function(global, module2, define2) { function XorGen(seed) { var me = this; me.next = function() { var X2 = me.x, i4 = me.i, t7, v3, w3; t7 = X2[i4]; t7 ^= t7 >>> 7; v3 = t7 ^ t7 << 24; t7 = X2[i4 + 1 & 7]; v3 ^= t7 ^ t7 >>> 10; t7 = X2[i4 + 3 & 7]; v3 ^= t7 ^ t7 >>> 3; t7 = X2[i4 + 4 & 7]; v3 ^= t7 ^ t7 << 7; t7 = X2[i4 + 7 & 7]; t7 = t7 ^ t7 << 13; v3 ^= t7 ^ t7 << 9; X2[i4] = v3; me.i = i4 + 1 & 7; return v3; }; function init2(me2, seed2) { var j3, w3, X2 = []; if (seed2 === (seed2 | 0)) { w3 = X2[0] = seed2; } else { seed2 = "" + seed2; for (j3 = 0; j3 < seed2.length; ++j3) { X2[j3 & 7] = X2[j3 & 7] << 15 ^ seed2.charCodeAt(j3) + X2[j3 + 1 & 7] << 13; } } while (X2.length < 8) X2.push(0); for (j3 = 0; j3 < 8 && X2[j3] === 0; ++j3) ; if (j3 == 8) w3 = X2[7] = -1; else w3 = X2[j3]; me2.x = X2; me2.i = 0; for (j3 = 256; j3 > 0; --j3) { me2.next(); } } init2(me, seed); } function copy2(f5, t7) { t7.x = f5.x.slice(); t7.i = f5.i; return t7; } function impl(seed, opts) { if (seed == null) seed = +/* @__PURE__ */ new Date(); var xg = new XorGen(seed), state = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { do { var top2 = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top2 + bot) / (1 << 21); } while (result === 0); return result; }; prng.int32 = xg.next; prng.quick = prng; if (state) { if (state.x) copy2(state, xg); prng.state = function() { return copy2(xg, {}); }; } return prng; } if (module2 && module2.exports) { module2.exports = impl; } else if (define2 && define2.amd) { define2(function() { return impl; }); } else { this.xorshift7 = impl; } })( exports, typeof module == "object" && module, // present in node.js typeof define == "function" && define // present with an AMD loader ); } }); // node_modules/seedrandom/lib/xor4096.js var require_xor4096 = __commonJS({ "node_modules/seedrandom/lib/xor4096.js"(exports, module) { (function(global, module2, define2) { function XorGen(seed) { var me = this; me.next = function() { var w3 = me.w, X2 = me.X, i4 = me.i, t7, v3; me.w = w3 = w3 + 1640531527 | 0; v3 = X2[i4 + 34 & 127]; t7 = X2[i4 = i4 + 1 & 127]; v3 ^= v3 << 13; t7 ^= t7 << 17; v3 ^= v3 >>> 15; t7 ^= t7 >>> 12; v3 = X2[i4] = v3 ^ t7; me.i = i4; return v3 + (w3 ^ w3 >>> 16) | 0; }; function init2(me2, seed2) { var t7, v3, i4, j3, w3, X2 = [], limit = 128; if (seed2 === (seed2 | 0)) { v3 = seed2; seed2 = null; } else { seed2 = seed2 + "\0"; v3 = 0; limit = Math.max(limit, seed2.length); } for (i4 = 0, j3 = -32; j3 < limit; ++j3) { if (seed2) v3 ^= seed2.charCodeAt((j3 + 32) % seed2.length); if (j3 === 0) w3 = v3; v3 ^= v3 << 10; v3 ^= v3 >>> 15; v3 ^= v3 << 4; v3 ^= v3 >>> 13; if (j3 >= 0) { w3 = w3 + 1640531527 | 0; t7 = X2[j3 & 127] ^= v3 + w3; i4 = 0 == t7 ? i4 + 1 : 0; } } if (i4 >= 128) { X2[(seed2 && seed2.length || 0) & 127] = -1; } i4 = 127; for (j3 = 4 * 128; j3 > 0; --j3) { v3 = X2[i4 + 34 & 127]; t7 = X2[i4 = i4 + 1 & 127]; v3 ^= v3 << 13; t7 ^= t7 << 17; v3 ^= v3 >>> 15; t7 ^= t7 >>> 12; X2[i4] = v3 ^ t7; } me2.w = w3; me2.X = X2; me2.i = i4; } init2(me, seed); } function copy2(f5, t7) { t7.i = f5.i; t7.w = f5.w; t7.X = f5.X.slice(); return t7; } ; function impl(seed, opts) { if (seed == null) seed = +/* @__PURE__ */ new Date(); var xg = new XorGen(seed), state = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { do { var top2 = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top2 + bot) / (1 << 21); } while (result === 0); return result; }; prng.int32 = xg.next; prng.quick = prng; if (state) { if (state.X) copy2(state, xg); prng.state = function() { return copy2(xg, {}); }; } return prng; } if (module2 && module2.exports) { module2.exports = impl; } else if (define2 && define2.amd) { define2(function() { return impl; }); } else { this.xor4096 = impl; } })( exports, // window object or global typeof module == "object" && module, // present in node.js typeof define == "function" && define // present with an AMD loader ); } }); // node_modules/seedrandom/lib/tychei.js var require_tychei = __commonJS({ "node_modules/seedrandom/lib/tychei.js"(exports, module) { (function(global, module2, define2) { function XorGen(seed) { var me = this, strseed = ""; me.next = function() { var b3 = me.b, c5 = me.c, d3 = me.d, a3 = me.a; b3 = b3 << 25 ^ b3 >>> 7 ^ c5; c5 = c5 - d3 | 0; d3 = d3 << 24 ^ d3 >>> 8 ^ a3; a3 = a3 - b3 | 0; me.b = b3 = b3 << 20 ^ b3 >>> 12 ^ c5; me.c = c5 = c5 - d3 | 0; me.d = d3 << 16 ^ c5 >>> 16 ^ a3; return me.a = a3 - b3 | 0; }; me.a = 0; me.b = 0; me.c = 2654435769 | 0; me.d = 1367130551; if (seed === Math.floor(seed)) { me.a = seed / 4294967296 | 0; me.b = seed | 0; } else { strseed += seed; } for (var k3 = 0; k3 < strseed.length + 20; k3++) { me.b ^= strseed.charCodeAt(k3) | 0; me.next(); } } function copy2(f5, t7) { t7.a = f5.a; t7.b = f5.b; t7.c = f5.c; t7.d = f5.d; return t7; } ; function impl(seed, opts) { var xg = new XorGen(seed), state = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { do { var top2 = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top2 + bot) / (1 << 21); } while (result === 0); return result; }; prng.int32 = xg.next; prng.quick = prng; if (state) { if (typeof state == "object") copy2(state, xg); prng.state = function() { return copy2(xg, {}); }; } return prng; } if (module2 && module2.exports) { module2.exports = impl; } else if (define2 && define2.amd) { define2(function() { return impl; }); } else { this.tychei = impl; } })( exports, typeof module == "object" && module, // present in node.js typeof define == "function" && define // present with an AMD loader ); } }); // (disabled):crypto var require_crypto = __commonJS({ "(disabled):crypto"() { } }); // node_modules/seedrandom/seedrandom.js var require_seedrandom = __commonJS({ "node_modules/seedrandom/seedrandom.js"(exports, module) { (function(global, pool, math) { var width = 256, chunks = 6, digits = 52, rngname = "random", startdenom = math.pow(width, chunks), significance = math.pow(2, digits), overflow = significance * 2, mask = width - 1, nodecrypto; function seedrandom(seed, options, callback2) { var key = []; options = options == true ? { entropy: true } : options || {}; var shortseed = mixkey(flatten( options.entropy ? [seed, tostring(pool)] : seed == null ? autoseed() : seed, 3 ), key); var arc4 = new ARC4(key); var prng = function() { var n6 = arc4.g(chunks), d3 = startdenom, x4 = 0; while (n6 < significance) { n6 = (n6 + x4) * width; d3 *= width; x4 = arc4.g(1); } while (n6 >= overflow) { n6 /= 2; d3 /= 2; x4 >>>= 1; } return (n6 + x4) / d3; }; prng.int32 = function() { return arc4.g(4) | 0; }; prng.quick = function() { return arc4.g(4) / 4294967296; }; prng.double = prng; mixkey(tostring(arc4.S), pool); return (options.pass || callback2 || function(prng2, seed2, is_math_call, state) { if (state) { if (state.S) { copy2(state, arc4); } prng2.state = function() { return copy2(arc4, {}); }; } if (is_math_call) { math[rngname] = prng2; return seed2; } else return prng2; })( prng, shortseed, "global" in options ? options.global : this == math, options.state ); } function ARC4(key) { var t7, keylen = key.length, me = this, i4 = 0, j3 = me.i = me.j = 0, s3 = me.S = []; if (!keylen) { key = [keylen++]; } while (i4 < width) { s3[i4] = i4++; } for (i4 = 0; i4 < width; i4++) { s3[i4] = s3[j3 = mask & j3 + key[i4 % keylen] + (t7 = s3[i4])]; s3[j3] = t7; } (me.g = function(count) { var t8, r7 = 0, i5 = me.i, j4 = me.j, s4 = me.S; while (count--) { t8 = s4[i5 = mask & i5 + 1]; r7 = r7 * width + s4[mask & (s4[i5] = s4[j4 = mask & j4 + t8]) + (s4[j4] = t8)]; } me.i = i5; me.j = j4; return r7; })(width); } function copy2(f5, t7) { t7.i = f5.i; t7.j = f5.j; t7.S = f5.S.slice(); return t7; } ; function flatten(obj, depth) { var result = [], typ = typeof obj, prop; if (depth && typ == "object") { for (prop in obj) { try { result.push(flatten(obj[prop], depth - 1)); } catch (e7) { } } } return result.length ? result : typ == "string" ? obj : obj + "\0"; } function mixkey(seed, key) { var stringseed = seed + "", smear, j3 = 0; while (j3 < stringseed.length) { key[mask & j3] = mask & (smear ^= key[mask & j3] * 19) + stringseed.charCodeAt(j3++); } return tostring(key); } function autoseed() { try { var out; if (nodecrypto && (out = nodecrypto.randomBytes)) { out = out(width); } else { out = new Uint8Array(width); (global.crypto || global.msCrypto).getRandomValues(out); } return tostring(out); } catch (e7) { var browser = global.navigator, plugins2 = browser && browser.plugins; return [+/* @__PURE__ */ new Date(), global, plugins2, global.screen, tostring(pool)]; } } function tostring(a3) { return String.fromCharCode.apply(0, a3); } mixkey(math.random(), pool); if (typeof module == "object" && module.exports) { module.exports = seedrandom; try { nodecrypto = require_crypto(); } catch (ex) { } } else if (typeof define == "function" && define.amd) { define(function() { return seedrandom; }); } else { math["seed" + rngname] = seedrandom; } })( // global: `self` in browsers (including strict mode and web workers), // otherwise `this` in Node and other environments typeof self !== "undefined" ? self : exports, [], // pool: entropy pool starts empty Math // math: package containing random, pow, and seedrandom ); } }); // node_modules/seedrandom/index.js var require_seedrandom2 = __commonJS({ "node_modules/seedrandom/index.js"(exports, module) { var alea = require_alea(); var xor128 = require_xor128(); var xorwow = require_xorwow(); var xorshift7 = require_xorshift7(); var xor4096 = require_xor4096(); var tychei = require_tychei(); var sr = require_seedrandom(); sr.alea = alea; sr.xor128 = xor128; sr.xorwow = xorwow; sr.xorshift7 = xorshift7; sr.xor4096 = xor4096; sr.tychei = tychei; module.exports = sr; } }); // node_modules/random-words/index.js var require_random_words = __commonJS({ "node_modules/random-words/index.js"(exports, module) { var seedrandom = require_seedrandom2(); var wordList = [ // Borrowed from xkcd password generator which borrowed it from wherever "ability", "able", "aboard", "about", "above", "accept", "accident", "according", "account", "accurate", "acres", "across", "act", "action", "active", "activity", "actual", "actually", "add", "addition", "additional", "adjective", "adult", "adventure", "advice", "affect", "afraid", "after", "afternoon", "again", "against", "age", "ago", "agree", "ahead", "aid", "air", "airplane", "alike", "alive", "all", "allow", "almost", "alone", "along", "aloud", "alphabet", "already", "also", "although", "am", "among", "amount", "ancient", "angle", "angry", "animal", "announced", "another", "answer", "ants", "any", "anybody", "anyone", "anything", "anyway", "anywhere", "apart", "apartment", "appearance", "apple", "applied", "appropriate", "are", "area", "arm", "army", "around", "arrange", "arrangement", "arrive", "arrow", "art", "article", "as", "aside", "ask", "asleep", "at", "ate", "atmosphere", "atom", "atomic", "attached", "attack", "attempt", "attention", "audience", "author", "automobile", "available", "average", "avoid", "aware", "away", "baby", "back", "bad", "badly", "bag", "balance", "ball", "balloon", "band", "bank", "bar", "bare", "bark", "barn", "base", "baseball", "basic", "basis", "basket", "bat", "battle", "be", "bean", "bear", "beat", "beautiful", "beauty", "became", "because", "become", "becoming", "bee", "been", "before", "began", "beginning", "begun", "behavior", "behind", "being", "believed", "bell", "belong", "below", "belt", "bend", "beneath", "bent", "beside", "best", "bet", "better", "between", "beyond", "bicycle", "bigger", "biggest", "bill", "birds", "birth", "birthday", "bit", "bite", "black", "blank", "blanket", "blew", "blind", "block", "blood", "blow", "blue", "board", "boat", "body", "bone", "book", "border", "born", "both", "bottle", "bottom", "bound", "bow", "bowl", "box", "boy", "brain", "branch", "brass", "brave", "bread", "break", "breakfast", "breath", "breathe", "breathing", "breeze", "brick", "bridge", "brief", "bright", "bring", "broad", "broke", "broken", "brother", "brought", "brown", "brush", "buffalo", "build", "building", "built", "buried", "burn", "burst", "bus", "bush", "business", "busy", "but", "butter", "buy", "by", "cabin", "cage", "cake", "call", "calm", "came", "camera", "camp", "can", "canal", "cannot", "cap", "capital", "captain", "captured", "car", "carbon", "card", "care", "careful", "carefully", "carried", "carry", "case", "cast", "castle", "cat", "catch", "cattle", "caught", "cause", "cave", "cell", "cent", "center", "central", "century", "certain", "certainly", "chain", "chair", "chamber", "chance", "change", "changing", "chapter", "character", "characteristic", "charge", "chart", "check", "cheese", "chemical", "chest", "chicken", "chief", "child", "children", "choice", "choose", "chose", "chosen", "church", "circle", "circus", "citizen", "city", "class", "classroom", "claws", "clay", "clean", "clear", "clearly", "climate", "climb", "clock", "close", "closely", "closer", "cloth", "clothes", "clothing", "cloud", "club", "coach", "coal", "coast", "coat", "coffee", "cold", "collect", "college", "colony", "color", "column", "combination", "combine", "come", "comfortable", "coming", "command", "common", "community", "company", "compare", "compass", "complete", "completely", "complex", "composed", "composition", "compound", "concerned", "condition", "congress", "connected", "consider", "consist", "consonant", "constantly", "construction", "contain", "continent", "continued", "contrast", "control", "conversation", "cook", "cookies", "cool", "copper", "copy", "corn", "corner", "correct", "correctly", "cost", "cotton", "could", "count", "country", "couple", "courage", "course", "court", "cover", "cow", "cowboy", "crack", "cream", "create", "creature", "crew", "crop", "cross", "crowd", "cry", "cup", "curious", "current", "curve", "customs", "cut", "cutting", "daily", "damage", "dance", "danger", "dangerous", "dark", "darkness", "date", "daughter", "dawn", "day", "dead", "deal", "dear", "death", "decide", "declared", "deep", "deeply", "deer", "definition", "degree", "depend", "depth", "describe", "desert", "design", "desk", "detail", "determine", "develop", "development", "diagram", "diameter", "did", "die", "differ", "difference", "different", "difficult", "difficulty", "dig", "dinner", "direct", "direction", "directly", "dirt", "dirty", "disappear", "discover", "discovery", "discuss", "discussion", "disease", "dish", "distance", "distant", "divide", "division", "do", "doctor", "does", "dog", "doing", "doll", "dollar", "done", "donkey", "door", "dot", "double", "doubt", "down", "dozen", "draw", "drawn", "dream", "dress", "drew", "dried", "drink", "drive", "driven", "driver", "driving", "drop", "dropped", "drove", "dry", "duck", "due", "dug", "dull", "during", "dust", "duty", "each", "eager", "ear", "earlier", "early", "earn", "earth", "easier", "easily", "east", "easy", "eat", "eaten", "edge", "education", "effect", "effort", "egg", "eight", "either", "electric", "electricity", "element", "elephant", "eleven", "else", "empty", "end", "enemy", "energy", "engine", "engineer", "enjoy", "enough", "enter", "entire", "entirely", "environment", "equal", "equally", "equator", "equipment", "escape", "especially", "essential", "establish", "even", "evening", "event", "eventually", "ever", "every", "everybody", "everyone", "everything", "everywhere", "evidence", "exact", "exactly", "examine", "example", "excellent", "except", "exchange", "excited", "excitement", "exciting", "exclaimed", "exercise", "exist", "expect", "experience", "experiment", "explain", "explanation", "explore", "express", "expression", "extra", "eye", "face", "facing", "fact", "factor", "factory", "failed", "fair", "fairly", "fall", "fallen", "familiar", "family", "famous", "far", "farm", "farmer", "farther", "fast", "fastened", "faster", "fat", "father", "favorite", "fear", "feathers", "feature", "fed", "feed", "feel", "feet", "fell", "fellow", "felt", "fence", "few", "fewer", "field", "fierce", "fifteen", "fifth", "fifty", "fight", "fighting", "figure", "fill", "film", "final", "finally", "find", "fine", "finest", "finger", "finish", "fire", "fireplace", "firm", "first", "fish", "five", "fix", "flag", "flame", "flat", "flew", "flies", "flight", "floating", "floor", "flow", "flower", "fly", "fog", "folks", "follow", "food", "foot", "football", "for", "force", "foreign", "forest", "forget", "forgot", "forgotten", "form", "former", "fort", "forth", "forty", "forward", "fought", "found", "four", "fourth", "fox", "frame", "free", "freedom", "frequently", "fresh", "friend", "friendly", "frighten", "frog", "from", "front", "frozen", "fruit", "fuel", "full", "fully", "fun", "function", "funny", "fur", "furniture", "further", "future", "gain", "game", "garage", "garden", "gas", "gasoline", "gate", "gather", "gave", "general", "generally", "gentle", "gently", "get", "getting", "giant", "gift", "girl", "give", "given", "giving", "glad", "glass", "globe", "go", "goes", "gold", "golden", "gone", "good", "goose", "got", "government", "grabbed", "grade", "gradually", "grain", "grandfather", "grandmother", "graph", "grass", "gravity", "gray", "great", "greater", "greatest", "greatly", "green", "grew", "ground", "group", "grow", "grown", "growth", "guard", "guess", "guide", "gulf", "gun", "habit", "had", "hair", "half", "halfway", "hall", "hand", "handle", "handsome", "hang", "happen", "happened", "happily", "happy", "harbor", "hard", "harder", "hardly", "has", "hat", "have", "having", "hay", "he", "headed", "heading", "health", "heard", "hearing", "heart", "heat", "heavy", "height", "held", "hello", "help", "helpful", "her", "herd", "here", "herself", "hidden", "hide", "high", "higher", "highest", "highway", "hill", "him", "himself", "his", "history", "hit", "hold", "hole", "hollow", "home", "honor", "hope", "horn", "horse", "hospital", "hot", "hour", "house", "how", "however", "huge", "human", "hundred", "hung", "hungry", "hunt", "hunter", "hurried", "hurry", "hurt", "husband", "ice", "idea", "identity", "if", "ill", "image", "imagine", "immediately", "importance", "important", "impossible", "improve", "in", "inch", "include", "including", "income", "increase", "indeed", "independent", "indicate", "individual", "industrial", "industry", "influence", "information", "inside", "instance", "instant", "instead", "instrument", "interest", "interior", "into", "introduced", "invented", "involved", "iron", "is", "island", "it", "its", "itself", "jack", "jar", "jet", "job", "join", "joined", "journey", "joy", "judge", "jump", "jungle", "just", "keep", "kept", "key", "kids", "kill", "kind", "kitchen", "knew", "knife", "know", "knowledge", "known", "label", "labor", "lack", "lady", "laid", "lake", "lamp", "land", "language", "large", "larger", "largest", "last", "late", "later", "laugh", "law", "lay", "layers", "lead", "leader", "leaf", "learn", "least", "leather", "leave", "leaving", "led", "left", "leg", "length", "lesson", "let", "letter", "level", "library", "lie", "life", "lift", "light", "like", "likely", "limited", "line", "lion", "lips", "liquid", "list", "listen", "little", "live", "living", "load", "local", "locate", "location", "log", "lonely", "long", "longer", "look", "loose", "lose", "loss", "lost", "lot", "loud", "love", "lovely", "low", "lower", "luck", "lucky", "lunch", "lungs", "lying", "machine", "machinery", "mad", "made", "magic", "magnet", "mail", "main", "mainly", "major", "make", "making", "man", "managed", "manner", "manufacturing", "many", "map", "mark", "market", "married", "mass", "massage", "master", "material", "mathematics", "matter", "may", "maybe", "me", "meal", "mean", "means", "meant", "measure", "meat", "medicine", "meet", "melted", "member", "memory", "men", "mental", "merely", "met", "metal", "method", "mice", "middle", "might", "mighty", "mile", "military", "milk", "mill", "mind", "mine", "minerals", "minute", "mirror", "missing", "mission", "mistake", "mix", "mixture", "model", "modern", "molecular", "moment", "money", "monkey", "month", "mood", "moon", "more", "morning", "most", "mostly", "mother", "motion", "motor", "mountain", "mouse", "mouth", "move", "movement", "movie", "moving", "mud", "muscle", "music", "musical", "must", "my", "myself", "mysterious", "nails", "name", "nation", "national", "native", "natural", "naturally", "nature", "near", "nearby", "nearer", "nearest", "nearly", "necessary", "neck", "needed", "needle", "needs", "negative", "neighbor", "neighborhood", "nervous", "nest", "never", "new", "news", "newspaper", "next", "nice", "night", "nine", "no", "nobody", "nodded", "noise", "none", "noon", "nor", "north", "nose", "not", "note", "noted", "nothing", "notice", "noun", "now", "number", "numeral", "nuts", "object", "observe", "obtain", "occasionally", "occur", "ocean", "of", "off", "offer", "office", "officer", "official", "oil", "old", "older", "oldest", "on", "once", "one", "only", "onto", "open", "operation", "opinion", "opportunity", "opposite", "or", "orange", "orbit", "order", "ordinary", "organization", "organized", "origin", "original", "other", "ought", "our", "ourselves", "out", "outer", "outline", "outside", "over", "own", "owner", "oxygen", "pack", "package", "page", "paid", "pain", "paint", "pair", "palace", "pale", "pan", "paper", "paragraph", "parallel", "parent", "park", "part", "particles", "particular", "particularly", "partly", "parts", "party", "pass", "passage", "past", "path", "pattern", "pay", "peace", "pen", "pencil", "people", "per", "percent", "perfect", "perfectly", "perhaps", "period", "person", "personal", "pet", "phrase", "physical", "piano", "pick", "picture", "pictured", "pie", "piece", "pig", "pile", "pilot", "pine", "pink", "pipe", "pitch", "place", "plain", "plan", "plane", "planet", "planned", "planning", "plant", "plastic", "plate", "plates", "play", "pleasant", "please", "pleasure", "plenty", "plural", "plus", "pocket", "poem", "poet", "poetry", "point", "pole", "police", "policeman", "political", "pond", "pony", "pool", "poor", "popular", "population", "porch", "port", "position", "positive", "possible", "possibly", "post", "pot", "potatoes", "pound", "pour", "powder", "power", "powerful", "practical", "practice", "prepare", "present", "president", "press", "pressure", "pretty", "prevent", "previous", "price", "pride", "primitive", "principal", "principle", "printed", "private", "prize", "probably", "problem", "process", "produce", "product", "production", "program", "progress", "promised", "proper", "properly", "property", "protection", "proud", "prove", "provide", "public", "pull", "pupil", "pure", "purple", "purpose", "push", "put", "putting", "quarter", "queen", "question", "quick", "quickly", "quiet", "quietly", "quite", "rabbit", "race", "radio", "railroad", "rain", "raise", "ran", "ranch", "range", "rapidly", "rate", "rather", "raw", "rays", "reach", "read", "reader", "ready", "real", "realize", "rear", "reason", "recall", "receive", "recent", "recently", "recognize", "record", "red", "refer", "refused", "region", "regular", "related", "relationship", "religious", "remain", "remarkable", "remember", "remove", "repeat", "replace", "replied", "report", "represent", "require", "research", "respect", "rest", "result", "return", "review", "rhyme", "rhythm", "rice", "rich", "ride", "riding", "right", "ring", "rise", "rising", "river", "road", "roar", "rock", "rocket", "rocky", "rod", "roll", "roof", "room", "root", "rope", "rose", "rough", "round", "route", "row", "rubbed", "rubber", "rule", "ruler", "run", "running", "rush", "sad", "saddle", "safe", "safety", "said", "sail", "sale", "salmon", "salt", "same", "sand", "sang", "sat", "satellites", "satisfied", "save", "saved", "saw", "say", "scale", "scared", "scene", "school", "science", "scientific", "scientist", "score", "screen", "sea", "search", "season", "seat", "second", "secret", "section", "see", "seed", "seeing", "seems", "seen", "seldom", "select", "selection", "sell", "send", "sense", "sent", "sentence", "separate", "series", "serious", "serve", "service", "sets", "setting", "settle", "settlers", "seven", "several", "shade", "shadow", "shake", "shaking", "shall", "shallow", "shape", "share", "sharp", "she", "sheep", "sheet", "shelf", "shells", "shelter", "shine", "shinning", "ship", "shirt", "shoe", "shoot", "shop", "shore", "short", "shorter", "shot", "should", "shoulder", "shout", "show", "shown", "shut", "sick", "sides", "sight", "sign", "signal", "silence", "silent", "silk", "silly", "silver", "similar", "simple", "simplest", "simply", "since", "sing", "single", "sink", "sister",