Stackedit/public/res-min/main.js
2013-10-06 23:29:08 +01:00

31660 lines
2.1 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*!
* jQuery JavaScript Library v2.0.3
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2013-07-03T13:30Z
*/
/*!
* Sizzle CSS Selector Engine v1.9.4-pre
* http://sizzlejs.com/
*
* Copyright 2013 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2013-06-03
*/
// Underscore.js 1.5.1
// http://underscorejs.org
// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
// Underscore may be freely distributed under the MIT license.
//Copyright (C) 2012 Kory Nunn
//Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
/*
* Based on code from:
*
* XRegExp 1.5.0
* (c) 2007-2010 Steven Levithan
* MIT License
* <http://xregexp.com>
* Provides an augmented, extensible, cross-browser implementation of regular expressions,
* including support for additional syntax, flags, and methods
*/
// https://github.com/kriskowal/es5-shim
// Copyright 2009-2012 by contributors, MIT License
// vim:set ts=4 sts=4 sw=4 st:
// -- kriskowal Kris Kowal Copyright (C) 2009-2010 MIT License
// -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project)
// -- dantman Daniel Friesen Copyright(C) 2010 XXX No License Specified
// -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License
// -- Irakli Gozalishvili Copyright (C) 2010 MIT License
/*!
Copyright (c) 2009, 280 North Inc. http://280north.com/
MIT License. http://github.com/280north/narwhal/blob/master/README.md
*/
/* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license:
*
* Copyright (c) 2010, Ajax.org B.V.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Ajax.org B.V. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* ***** END LICENSE BLOCK ***** */
/*! @license
==========================================================================
SproutCore -- JavaScript Application Framework
copyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
SproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.
For more information about SproutCore, visit http://www.sproutcore.com
==========================================================================
@license */
/* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license:
*
* Copyright (c) 2010, Ajax.org B.V.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Ajax.org B.V. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* ***** END LICENSE BLOCK ***** */
/*
* based on code from:
*
* @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/jrburke/requirejs for details
*/
/*
XRegExp Unicode plugin pack: Categories 1.0
(c) 2010 Steven Levithan
MIT License
<http://xregexp.com>
Uses the Unicode 5.2 character database
This package for the XRegExp Unicode plugin enables the following Unicode categories (aka properties):
L - Letter (the top-level Letter category is included in the Unicode plugin base script)
Ll - Lowercase letter
Lu - Uppercase letter
Lt - Titlecase letter
Lm - Modifier letter
Lo - Letter without case
M - Mark
Mn - Non-spacing mark
Mc - Spacing combining mark
Me - Enclosing mark
N - Number
Nd - Decimal digit
Nl - Letter number
No - Other number
P - Punctuation
Pd - Dash punctuation
Ps - Open punctuation
Pe - Close punctuation
Pi - Initial punctuation
Pf - Final punctuation
Pc - Connector punctuation
Po - Other punctuation
S - Symbol
Sm - Math symbol
Sc - Currency symbol
Sk - Modifier symbol
So - Other symbol
Z - Separator
Zs - Space separator
Zl - Line separator
Zp - Paragraph separator
C - Other
Cc - Control
Cf - Format
Co - Private use
Cs - Surrogate
Cn - Unassigned
Example usage:
\p{N}
\p{Cn}
*/
/*!
* XRegExp-All 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2012 MIT License
*/
/*!
* XRegExp 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2007-2012 MIT License
*/
/*!
* XRegExp.build 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2012 MIT License
* Inspired by Lea Verou's RegExp.create <http://lea.verou.me/>
*/
/*!
* XRegExp.matchRecursive 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2009-2012 MIT License
*/
/*!
* XRegExp Unicode Base 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2008-2012 MIT License
* Uses Unicode 6.2.0 <http://unicode.org/>
* Unicode data generated by Mathias Bynens <http://mathiasbynens.be/>
*/
/*!
* XRegExp Unicode Blocks 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2010-2012 MIT License
* Uses Unicode 6.2.0 <http://unicode.org/>
* Unicode data generated by Mathias Bynens <http://mathiasbynens.be/>
*/
/*!
* XRegExp Unicode Categories 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2010-2012 MIT License
* Uses Unicode 6.2.0 <http://unicode.org/>
* Unicode data generated by Mathias Bynens <http://mathiasbynens.be/>
*/
/*!
* XRegExp Unicode Properties 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2012 MIT License
* Uses Unicode 6.2.0 <http://unicode.org/>
* Unicode data generated by Mathias Bynens <http://mathiasbynens.be/>
*/
/*!
* XRegExp Unicode Scripts 3.0.0-pre
* <http://xregexp.com/>
* Steven Levithan <20> 2010-2012 MIT License
* Uses Unicode 6.2.0 <http://unicode.org/>
* Unicode data generated by Mathias Bynens <http://mathiasbynens.be/>
*/
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
/**
* @license RequireJS text 2.0.10 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/requirejs/text for details
*/
/*!
* Copyright (C) 2011, 2013 by Vitaly Puzrin
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/*
Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
Copyright (C) 2012 Mathias Bynens <mathias@qiwi.be>
Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>
Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* to-markdown - an HTML to Markdown converter
*
* Copyright 2011-2012, Dom Christie
* Licenced under the MIT licence
*
*/
/**
* Copyright 2013 Craig Campbell
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Mousetrap is a simple keyboard shortcut library for Javascript with
* no external dependencies
*
* @version 1.4.5
* @url craig.is/killing/mice
*/
/**
* jGrowl 1.2.10
*
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*
* Written by Stan Lemon <stosh1985@gmail.com>
* Last updated: 2013.02.14
*
* jGrowl is a jQuery plugin implementing unobtrusive userland notifications. These
* notifications function similarly to the Growl Framework available for
* Mac OS X (http://growl.info).
*
* To Do:
* - Move library settings to containers and allow them to be changed per container
*
* Changes in 1.2.10
* - Fix beforeClose to be called in click event
*
* Changes in 1.2.9
* - Fixed BC break in jQuery 2.0 beta
*
* Changes in 1.2.8
* - Fixes for jQuery 1.9 and the MSIE6 check, note that with jQuery 2.0 support
* jGrowl intends to drop support for IE6 altogether
*
* Changes in 1.2.6
* - Fixed js error when a notification is opening and closing at the same time
*
* Changes in 1.2.5
* - Changed wrapper jGrowl's options usage to "o" instead of $.jGrowl.defaults
* - Added themeState option to control 'highlight' or 'error' for jQuery UI
* - Ammended some CSS to provide default positioning for nested usage.
* - Changed some CSS to be prefixed with jGrowl- to prevent namespacing issues
* - Added two new options - openDuration and closeDuration to allow
* better control of notification open and close speeds, respectively
* Patch contributed by Jesse Vincet.
* - Added afterOpen callback. Patch contributed by Russel Branca.
*
* Changes in 1.2.4
* - Fixed IE bug with the close-all button
* - Fixed IE bug with the filter CSS attribute (special thanks to gotwic)
* - Update IE opacity CSS
* - Changed font sizes to use "em", and only set the base style
*
* Changes in 1.2.3
* - The callbacks no longer use the container as context, instead they use the actual notification
* - The callbacks now receive the container as a parameter after the options parameter
* - beforeOpen and beforeClose now check the return value, if it's false - the notification does
* not continue. The open callback will also halt execution if it returns false.
* - Fixed bug where containers would get confused
* - Expanded the pause functionality to pause an entire container.
*
* Changes in 1.2.2
* - Notification can now be theme rolled for jQuery UI, special thanks to Jeff Chan!
*
* Changes in 1.2.1
* - Fixed instance where the interval would fire the close method multiple times.
* - Added CSS to hide from print media
* - Fixed issue with closer button when div { position: relative } is set
* - Fixed leaking issue with multiple containers. Special thanks to Matthew Hanlon!
*
* Changes in 1.2.0
* - Added message pooling to limit the number of messages appearing at a given time.
* - Closing a notification is now bound to the notification object and triggered by the close button.
*
* Changes in 1.1.2
* - Added iPhone styled example
* - Fixed possible IE7 bug when determining if the ie6 class shoudl be applied.
* - Added template for the close button, so that it's content could be customized.
*
* Changes in 1.1.1
* - Fixed CSS styling bug for ie6 caused by a mispelling
* - Changes height restriction on default notifications to min-height
* - Added skinned examples using a variety of images
* - Added the ability to customize the content of the [close all] box
* - Added jTweet, an example of using jGrowl + Twitter
*
* Changes in 1.1.0
* - Multiple container and instances.
* - Standard $.jGrowl() now wraps $.fn.jGrowl() by first establishing a generic jGrowl container.
* - Instance methods of a jGrowl container can be called by $.fn.jGrowl(methodName)
* - Added glue preferenced, which allows notifications to be inserted before or after nodes in the container
* - Added new log callback which is called before anything is done for the notification
* - Corner's attribute are now applied on an individual notification basis.
*
* Changes in 1.0.4
* - Various CSS fixes so that jGrowl renders correctly in IE6.
*
* Changes in 1.0.3
* - Fixed bug with options persisting across notifications
* - Fixed theme application bug
* - Simplified some selectors and manipulations.
* - Added beforeOpen and beforeClose callbacks
* - Reorganized some lines of code to be more readable
* - Removed unnecessary this.defaults context
* - If corners plugin is present, it's now customizable.
* - Customizable open animation.
* - Customizable close animation.
* - Customizable animation easing.
* - Added customizable positioning (top-left, top-right, bottom-left, bottom-right, center)
*
* Changes in 1.0.2
* - All CSS styling is now external.
* - Added a theme parameter which specifies a secondary class for styling, such
* that notifications can be customized in appearance on a per message basis.
* - Notification life span is now customizable on a per message basis.
* - Added the ability to disable the global closer, enabled by default.
* - Added callbacks for when a notification is opened or closed.
* - Added callback for the global closer.
* - Customizable animation speed.
* - jGrowl now set itself up and tears itself down.
*
* Changes in 1.0.1:
* - Removed dependency on metadata plugin in favor of .data()
* - Namespaced all events
*/
// Copyright (C) 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* bootstrap.js v3.0.0 by @fat and @mdo
* Copyright 2013 Twitter Inc.
* http://www.apache.org/licenses/LICENSE-2.0
*/
/* ========================================================================
* Bootstrap: transition.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#transitions
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: alert.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#alerts
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: button.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#buttons
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: carousel.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#carousel
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: collapse.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#collapse
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: dropdown.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#dropdowns
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: modal.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#modals
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: tooltip.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: popover.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#popovers
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: scrollspy.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#scrollspy
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: tab.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tabs
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: affix.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#affix
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ===========================================================
# bootstrap-tour - v0.6.1
# http://bootstraptour.com
# ==============================================================
# Copyright 2012-2013 Ulrich Sossou
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
*/
/*
* waitForImages 1.4.2
* -------------------
* Provides a callback when all images have loaded in your given selector.
* https://github.com/alexanderdickson/waitForImages
*
* Copyright (c) 2013 Alex Dickson
* Licensed under the MIT license.
*/
/*!
* jQuery UI Core 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/category/ui-core/
*/
/*!
* jQuery UI Widget 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/jQuery.widget/
*/
/*!
* jQuery UI Mouse 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/mouse/
*
* Depends:
* jquery.ui.widget.js
*/
/*!
* jQuery UI Draggable 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/draggable/
*
* Depends:
* jquery.ui.core.js
* jquery.ui.mouse.js
* jquery.ui.widget.js
*/
/*!
* jQuery UI Effects 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/category/effects-core/
*/
/*!
* jQuery Color Animations v2.1.2
* https://github.com/jquery/jquery-color
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* Date: Wed Jan 16 08:47:09 2013 -0600
*/
/*!
* jQuery UI Effects Slide 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/slide-effect/
*
* Depends:
* jquery.ui.effect.js
*/
/**
* @preserve
* jquery.layout 1.3.0 - Release Candidate 30.79
* $Date: 2013-01-12 08:00:00 (Sat, 12 Jan 2013) $
* $Rev: 303007 $
*
* Copyright (c) 2013 Kevin Dalman (http://allpro.net)
* Based on work by Fabrizio Balliano (http://www.fabrizioballiano.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* SEE: http://layout.jquery-dev.net/LICENSE.txt
*
* Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc30.79
*
* Docs: http://layout.jquery-dev.net/documentation.html
* Tips: http://layout.jquery-dev.net/tips.html
* Help: http://groups.google.com/group/jquery-ui-layout
*/
/**
* jquery.layout.state 1.0
* $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $
*
* Copyright (c) 2012
* Kevin Dalman (http://allpro.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* @requires: UI Layout 1.3.0.rc30.1 or higher
* @requires: $.ui.cookie (above)
*
* @see: http://groups.google.com/group/jquery-ui-layout
*/
/**
* jquery.layout.buttons 1.0
* $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $
*
* Copyright (c) 2012
* Kevin Dalman (http://allpro.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* @requires: UI Layout 1.3.0.rc30.1 or higher
*
* @see: http://groups.google.com/group/jquery-ui-layout
*
* Docs: [ to come ]
* Tips: [ to come ]
*/
/**
* jquery.layout.browserZoom 1.0
* $Date: 2011-12-29 08:00:00 (Thu, 29 Dec 2011) $
*
* Copyright (c) 2012
* Kevin Dalman (http://allpro.net)
*
* Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
*
* @requires: UI Layout 1.3.0.rc30.1 or higher
*
* @see: http://groups.google.com/group/jquery-ui-layout
*
* TODO: Extend logic to handle other problematic zooming in browsers
* TODO: Add hotkey/mousewheel bindings to _instantly_ respond to these zoom event
*/
function printStackTrace(n) {
n = n || {
guess: !0
};
var e = n.e || null, t = !!n.guess, i = new printStackTrace.implementation(), a = i.run(e);
return t ? i.guessAnonymousFunctions(a) : a;
}
function runDelayedFunction() {
void 0 !== delayedFunction && delayedFunction();
}
(function(n, e) {
function t(n) {
var e = n.length, t = re.type(n);
return re.isWindow(n) ? !1 : 1 === n.nodeType && e ? !0 : "array" === t || "function" !== t && (0 === e || "number" == typeof e && e > 0 && e - 1 in n);
}
function i(n) {
var e = Se[n] = {};
return re.each(n.match(se) || [], function(n, t) {
e[t] = !0;
}), e;
}
function a() {
Object.defineProperty(this.cache = {}, 0, {
get: function() {
return {};
}
}), this.expando = re.expando + Math.random();
}
function r(n, t, i) {
var a;
if (i === e && 1 === n.nodeType) if (a = "data-" + t.replace(fe, "-$1").toLowerCase(),
i = n.getAttribute(a), "string" == typeof i) {
try {
i = "true" === i ? !0 : "false" === i ? !1 : "null" === i ? null : +i + "" === i ? +i : ge.test(i) ? JSON.parse(i) : i;
} catch (r) {}
pe.set(n, t, i);
} else i = e;
return i;
}
function o() {
return !0;
}
function s() {
return !1;
}
function l() {
try {
return O.activeElement;
} catch (n) {}
}
function c(n, e) {
for (;(n = n[e]) && 1 !== n.nodeType; ) ;
return n;
}
function M(n, e, t) {
if (re.isFunction(e)) return re.grep(n, function(n, i) {
return !!e.call(n, i, n) !== t;
});
if (e.nodeType) return re.grep(n, function(n) {
return n === e !== t;
});
if ("string" == typeof e) {
if (Ae.test(e)) return re.filter(e, n, t);
e = re.filter(e, n);
}
return re.grep(n, function(n) {
return ee.call(e, n) >= 0 !== t;
});
}
function u(n, e) {
return re.nodeName(n, "table") && re.nodeName(1 === e.nodeType ? e : e.firstChild, "tr") ? n.getElementsByTagName("tbody")[0] || n.appendChild(n.ownerDocument.createElement("tbody")) : n;
}
function d(n) {
return n.type = (null !== n.getAttribute("type")) + "/" + n.type, n;
}
function h(n) {
var e = Ie.exec(n.type);
return e ? n.type = e[1] : n.removeAttribute("type"), n;
}
function S(n, e) {
for (var t = n.length, i = 0; t > i; i++) me.set(n[i], "globalEval", !e || me.get(e[i], "globalEval"));
}
function p(n, e) {
var t, i, a, r, o, s, l, c;
if (1 === e.nodeType) {
if (me.hasData(n) && (r = me.access(n), o = me.set(e, r), c = r.events)) {
delete o.handle, o.events = {};
for (a in c) for (t = 0, i = c[a].length; i > t; t++) re.event.add(e, a, c[a][t]);
}
pe.hasData(n) && (s = pe.access(n), l = re.extend({}, s), pe.set(e, l));
}
}
function m(n, t) {
var i = n.getElementsByTagName ? n.getElementsByTagName(t || "*") : n.querySelectorAll ? n.querySelectorAll(t || "*") : [];
return t === e || t && re.nodeName(n, t) ? re.merge([ n ], i) : i;
}
function g(n, e) {
var t = e.nodeName.toLowerCase();
"input" === t && Le.test(n.type) ? e.checked = n.checked : ("input" === t || "textarea" === t) && (e.defaultValue = n.defaultValue);
}
function f(n, e) {
if (e in n) return e;
for (var t = e.charAt(0).toUpperCase() + e.slice(1), i = e, a = Qe.length; a--; ) if (e = Qe[a] + t,
e in n) return e;
return i;
}
function b(n, e) {
return n = e || n, "none" === re.css(n, "display") || !re.contains(n.ownerDocument, n);
}
function y(e) {
return n.getComputedStyle(e, null);
}
function v(n, e) {
for (var t, i, a, r = [], o = 0, s = n.length; s > o; o++) i = n[o], i.style && (r[o] = me.get(i, "olddisplay"),
t = i.style.display, e ? (r[o] || "none" !== t || (i.style.display = ""), "" === i.style.display && b(i) && (r[o] = me.access(i, "olddisplay", k(i.nodeName)))) : r[o] || (a = b(i),
(t && "none" !== t || !a) && me.set(i, "olddisplay", a ? t : re.css(i, "display"))));
for (o = 0; s > o; o++) i = n[o], i.style && (e && "none" !== i.style.display && "" !== i.style.display || (i.style.display = e ? r[o] || "" : "none"));
return n;
}
function D(n, e, t) {
var i = He.exec(e);
return i ? Math.max(0, i[1] - (t || 0)) + (i[2] || "px") : e;
}
function w(n, e, t, i, a) {
for (var r = t === (i ? "border" : "content") ? 4 : "width" === e ? 1 : 0, o = 0; 4 > r; r += 2) "margin" === t && (o += re.css(n, t + Xe[r], !0, a)),
i ? ("content" === t && (o -= re.css(n, "padding" + Xe[r], !0, a)), "margin" !== t && (o -= re.css(n, "border" + Xe[r] + "Width", !0, a))) : (o += re.css(n, "padding" + Xe[r], !0, a),
"padding" !== t && (o += re.css(n, "border" + Xe[r] + "Width", !0, a)));
return o;
}
function G(n, e, t) {
var i = !0, a = "width" === e ? n.offsetWidth : n.offsetHeight, r = y(n), o = re.support.boxSizing && "border-box" === re.css(n, "boxSizing", !1, r);
if (0 >= a || null == a) {
if (a = $e(n, e, r), (0 > a || null == a) && (a = n.style[e]), qe.test(a)) return a;
i = o && (re.support.boxSizingReliable || a === n.style[e]), a = parseFloat(a) || 0;
}
return a + w(n, e, t || (o ? "border" : "content"), i, r) + "px";
}
function k(n) {
var e = O, t = We[n];
return t || (t = R(n, e), "none" !== t && t || (je = (je || re("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(e.documentElement),
e = (je[0].contentWindow || je[0].contentDocument).document, e.write("<!doctype html><html><body>"),
e.close(), t = R(n, e), je.detach()), We[n] = t), t;
}
function R(n, e) {
var t = re(e.createElement(n)).appendTo(e.body), i = re.css(t[0], "display");
return t.remove(), i;
}
function C(n, e, t, i) {
var a;
if (re.isArray(e)) re.each(e, function(e, a) {
t || et.test(n) ? i(n, a) : C(n + "[" + ("object" == typeof a ? e : "") + "]", a, t, i);
}); else if (t || "object" !== re.type(e)) i(n, e); else for (a in e) C(n + "[" + a + "]", e[a], t, i);
}
function A(n) {
return function(e, t) {
"string" != typeof e && (t = e, e = "*");
var i, a = 0, r = e.toLowerCase().match(se) || [];
if (re.isFunction(t)) for (;i = r[a++]; ) "+" === i[0] ? (i = i.slice(1) || "*",
(n[i] = n[i] || []).unshift(t)) : (n[i] = n[i] || []).push(t);
};
}
function x(n, e, t, i) {
function a(s) {
var l;
return r[s] = !0, re.each(n[s] || [], function(n, s) {
var c = s(e, t, i);
return "string" != typeof c || o || r[c] ? o ? !(l = c) : void 0 : (e.dataTypes.unshift(c),
a(c), !1);
}), l;
}
var r = {}, o = n === ft;
return a(e.dataTypes[0]) || !r["*"] && a("*");
}
function E(n, t) {
var i, a, r = re.ajaxSettings.flatOptions || {};
for (i in t) t[i] !== e && ((r[i] ? n : a || (a = {}))[i] = t[i]);
return a && re.extend(!0, n, a), n;
}
function P(n, t, i) {
for (var a, r, o, s, l = n.contents, c = n.dataTypes; "*" === c[0]; ) c.shift(),
a === e && (a = n.mimeType || t.getResponseHeader("Content-Type"));
if (a) for (r in l) if (l[r] && l[r].test(a)) {
c.unshift(r);
break;
}
if (c[0] in i) o = c[0]; else {
for (r in i) {
if (!c[0] || n.converters[r + " " + c[0]]) {
o = r;
break;
}
s || (s = r);
}
o = o || s;
}
return o ? (o !== c[0] && c.unshift(o), i[o]) : void 0;
}
function T(n, e, t, i) {
var a, r, o, s, l, c = {}, M = n.dataTypes.slice();
if (M[1]) for (o in n.converters) c[o.toLowerCase()] = n.converters[o];
for (r = M.shift(); r; ) if (n.responseFields[r] && (t[n.responseFields[r]] = e),
!l && i && n.dataFilter && (e = n.dataFilter(e, n.dataType)), l = r, r = M.shift()) if ("*" === r) r = l; else if ("*" !== l && l !== r) {
if (o = c[l + " " + r] || c["* " + r], !o) for (a in c) if (s = a.split(" "), s[1] === r && (o = c[l + " " + s[0]] || c["* " + s[0]])) {
o === !0 ? o = c[a] : c[a] !== !0 && (r = s[0], M.unshift(s[1]));
break;
}
if (o !== !0) if (o && n["throws"]) e = o(e); else try {
e = o(e);
} catch (u) {
return {
state: "parsererror",
error: o ? u : "No conversion from " + l + " to " + r
};
}
}
return {
state: "success",
data: e
};
}
function F() {
return setTimeout(function() {
Ct = e;
}), Ct = re.now();
}
function B(n, e, t) {
for (var i, a = (Ft[e] || []).concat(Ft["*"]), r = 0, o = a.length; o > r; r++) if (i = a[r].call(t, e, n)) return i;
}
function Y(n, e, t) {
var i, a, r = 0, o = Tt.length, s = re.Deferred().always(function() {
delete l.elem;
}), l = function() {
if (a) return !1;
for (var e = Ct || F(), t = Math.max(0, c.startTime + c.duration - e), i = t / c.duration || 0, r = 1 - i, o = 0, l = c.tweens.length; l > o; o++) c.tweens[o].run(r);
return s.notifyWith(n, [ c, r, t ]), 1 > r && l ? t : (s.resolveWith(n, [ c ]),
!1);
}, c = s.promise({
elem: n,
props: re.extend({}, e),
opts: re.extend(!0, {
specialEasing: {}
}, t),
originalProperties: e,
originalOptions: t,
startTime: Ct || F(),
duration: t.duration,
tweens: [],
createTween: function(e, t) {
var i = re.Tween(n, c.opts, e, t, c.opts.specialEasing[e] || c.opts.easing);
return c.tweens.push(i), i;
},
stop: function(e) {
var t = 0, i = e ? c.tweens.length : 0;
if (a) return this;
for (a = !0; i > t; t++) c.tweens[t].run(1);
return e ? s.resolveWith(n, [ c, e ]) : s.rejectWith(n, [ c, e ]), this;
}
}), M = c.props;
for (L(M, c.opts.specialEasing); o > r; r++) if (i = Tt[r].call(c, n, M, c.opts)) return i;
return re.map(M, B, c), re.isFunction(c.opts.start) && c.opts.start.call(n, c),
re.fx.timer(re.extend(l, {
elem: n,
anim: c,
queue: c.opts.queue
})), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always);
}
function L(n, e) {
var t, i, a, r, o;
for (t in n) if (i = re.camelCase(t), a = e[i], r = n[t], re.isArray(r) && (a = r[1],
r = n[t] = r[0]), t !== i && (n[i] = r, delete n[t]), o = re.cssHooks[i], o && "expand" in o) {
r = o.expand(r), delete n[i];
for (t in r) t in n || (n[t] = r[t], e[t] = a);
} else e[i] = a;
}
function N(n, t, i) {
var a, r, o, s, l, c, M = this, u = {}, d = n.style, h = n.nodeType && b(n), S = me.get(n, "fxshow");
i.queue || (l = re._queueHooks(n, "fx"), null == l.unqueued && (l.unqueued = 0,
c = l.empty.fire, l.empty.fire = function() {
l.unqueued || c();
}), l.unqueued++, M.always(function() {
M.always(function() {
l.unqueued--, re.queue(n, "fx").length || l.empty.fire();
});
})), 1 === n.nodeType && ("height" in t || "width" in t) && (i.overflow = [ d.overflow, d.overflowX, d.overflowY ],
"inline" === re.css(n, "display") && "none" === re.css(n, "float") && (d.display = "inline-block")),
i.overflow && (d.overflow = "hidden", M.always(function() {
d.overflow = i.overflow[0], d.overflowX = i.overflow[1], d.overflowY = i.overflow[2];
}));
for (a in t) if (r = t[a], xt.exec(r)) {
if (delete t[a], o = o || "toggle" === r, r === (h ? "hide" : "show")) {
if ("show" !== r || !S || S[a] === e) continue;
h = !0;
}
u[a] = S && S[a] || re.style(n, a);
}
if (!re.isEmptyObject(u)) {
S ? "hidden" in S && (h = S.hidden) : S = me.access(n, "fxshow", {}), o && (S.hidden = !h),
h ? re(n).show() : M.done(function() {
re(n).hide();
}), M.done(function() {
var e;
me.remove(n, "fxshow");
for (e in u) re.style(n, e, u[e]);
});
for (a in u) s = B(h ? S[a] : 0, a, M), a in S || (S[a] = s.start, h && (s.end = s.start,
s.start = "width" === a || "height" === a ? 1 : 0));
}
}
function z(n, e, t, i, a) {
return new z.prototype.init(n, e, t, i, a);
}
function I(n, e) {
var t, i = {
height: n
}, a = 0;
for (e = e ? 1 : 0; 4 > a; a += 2 - e) t = Xe[a], i["margin" + t] = i["padding" + t] = n;
return e && (i.opacity = i.width = n), i;
}
function _(n) {
return re.isWindow(n) ? n : 9 === n.nodeType && n.defaultView;
}
var U, $, j = typeof e, Z = n.location, O = n.document, H = O.documentElement, q = n.jQuery, J = n.$, W = {}, V = [], K = "2.0.3", X = V.concat, Q = V.push, ne = V.slice, ee = V.indexOf, te = W.toString, ie = W.hasOwnProperty, ae = K.trim, re = function(n, e) {
return new re.fn.init(n, e, U);
}, oe = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, se = /\S+/g, le = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, ce = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, Me = /^-ms-/, ue = /-([\da-z])/gi, de = function(n, e) {
return e.toUpperCase();
}, he = function() {
O.removeEventListener("DOMContentLoaded", he, !1), n.removeEventListener("load", he, !1),
re.ready();
};
re.fn = re.prototype = {
jquery: K,
constructor: re,
init: function(n, t, i) {
var a, r;
if (!n) return this;
if ("string" == typeof n) {
if (a = "<" === n.charAt(0) && ">" === n.charAt(n.length - 1) && n.length >= 3 ? [ null, n, null ] : le.exec(n),
!a || !a[1] && t) return !t || t.jquery ? (t || i).find(n) : this.constructor(t).find(n);
if (a[1]) {
if (t = t instanceof re ? t[0] : t, re.merge(this, re.parseHTML(a[1], t && t.nodeType ? t.ownerDocument || t : O, !0)),
ce.test(a[1]) && re.isPlainObject(t)) for (a in t) re.isFunction(this[a]) ? this[a](t[a]) : this.attr(a, t[a]);
return this;
}
return r = O.getElementById(a[2]), r && r.parentNode && (this.length = 1, this[0] = r),
this.context = O, this.selector = n, this;
}
return n.nodeType ? (this.context = this[0] = n, this.length = 1, this) : re.isFunction(n) ? i.ready(n) : (n.selector !== e && (this.selector = n.selector,
this.context = n.context), re.makeArray(n, this));
},
selector: "",
length: 0,
toArray: function() {
return ne.call(this);
},
get: function(n) {
return null == n ? this.toArray() : 0 > n ? this[this.length + n] : this[n];
},
pushStack: function(n) {
var e = re.merge(this.constructor(), n);
return e.prevObject = this, e.context = this.context, e;
},
each: function(n, e) {
return re.each(this, n, e);
},
ready: function(n) {
return re.ready.promise().done(n), this;
},
slice: function() {
return this.pushStack(ne.apply(this, arguments));
},
first: function() {
return this.eq(0);
},
last: function() {
return this.eq(-1);
},
eq: function(n) {
var e = this.length, t = +n + (0 > n ? e : 0);
return this.pushStack(t >= 0 && e > t ? [ this[t] ] : []);
},
map: function(n) {
return this.pushStack(re.map(this, function(e, t) {
return n.call(e, t, e);
}));
},
end: function() {
return this.prevObject || this.constructor(null);
},
push: Q,
sort: [].sort,
splice: [].splice
}, re.fn.init.prototype = re.fn, re.extend = re.fn.extend = function() {
var n, t, i, a, r, o, s = arguments[0] || {}, l = 1, c = arguments.length, M = !1;
for ("boolean" == typeof s && (M = s, s = arguments[1] || {}, l = 2), "object" == typeof s || re.isFunction(s) || (s = {}),
c === l && (s = this, --l); c > l; l++) if (null != (n = arguments[l])) for (t in n) i = s[t],
a = n[t], s !== a && (M && a && (re.isPlainObject(a) || (r = re.isArray(a))) ? (r ? (r = !1,
o = i && re.isArray(i) ? i : []) : o = i && re.isPlainObject(i) ? i : {}, s[t] = re.extend(M, o, a)) : a !== e && (s[t] = a));
return s;
}, re.extend({
expando: "jQuery" + (K + Math.random()).replace(/\D/g, ""),
noConflict: function(e) {
return n.$ === re && (n.$ = J), e && n.jQuery === re && (n.jQuery = q), re;
},
isReady: !1,
readyWait: 1,
holdReady: function(n) {
n ? re.readyWait++ : re.ready(!0);
},
ready: function(n) {
(n === !0 ? --re.readyWait : re.isReady) || (re.isReady = !0, n !== !0 && --re.readyWait > 0 || ($.resolveWith(O, [ re ]),
re.fn.trigger && re(O).trigger("ready").off("ready")));
},
isFunction: function(n) {
return "function" === re.type(n);
},
isArray: Array.isArray,
isWindow: function(n) {
return null != n && n === n.window;
},
isNumeric: function(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
},
type: function(n) {
return null == n ? String(n) : "object" == typeof n || "function" == typeof n ? W[te.call(n)] || "object" : typeof n;
},
isPlainObject: function(n) {
if ("object" !== re.type(n) || n.nodeType || re.isWindow(n)) return !1;
try {
if (n.constructor && !ie.call(n.constructor.prototype, "isPrototypeOf")) return !1;
} catch (e) {
return !1;
}
return !0;
},
isEmptyObject: function(n) {
var e;
for (e in n) return !1;
return !0;
},
error: function(n) {
throw new Error(n);
},
parseHTML: function(n, e, t) {
if (!n || "string" != typeof n) return null;
"boolean" == typeof e && (t = e, e = !1), e = e || O;
var i = ce.exec(n), a = !t && [];
return i ? [ e.createElement(i[1]) ] : (i = re.buildFragment([ n ], e, a), a && re(a).remove(),
re.merge([], i.childNodes));
},
parseJSON: JSON.parse,
parseXML: function(n) {
var t, i;
if (!n || "string" != typeof n) return null;
try {
i = new DOMParser(), t = i.parseFromString(n, "text/xml");
} catch (a) {
t = e;
}
return (!t || t.getElementsByTagName("parsererror").length) && re.error("Invalid XML: " + n),
t;
},
noop: function() {},
globalEval: function(n) {
var e, t = eval;
n = re.trim(n), n && (1 === n.indexOf("use strict") ? (e = O.createElement("script"),
e.text = n, O.head.appendChild(e).parentNode.removeChild(e)) : t(n));
},
camelCase: function(n) {
return n.replace(Me, "ms-").replace(ue, de);
},
nodeName: function(n, e) {
return n.nodeName && n.nodeName.toLowerCase() === e.toLowerCase();
},
each: function(n, e, i) {
var a, r = 0, o = n.length, s = t(n);
if (i) {
if (s) for (;o > r && (a = e.apply(n[r], i), a !== !1); r++) ; else for (r in n) if (a = e.apply(n[r], i),
a === !1) break;
} else if (s) for (;o > r && (a = e.call(n[r], r, n[r]), a !== !1); r++) ; else for (r in n) if (a = e.call(n[r], r, n[r]),
a === !1) break;
return n;
},
trim: function(n) {
return null == n ? "" : ae.call(n);
},
makeArray: function(n, e) {
var i = e || [];
return null != n && (t(Object(n)) ? re.merge(i, "string" == typeof n ? [ n ] : n) : Q.call(i, n)),
i;
},
inArray: function(n, e, t) {
return null == e ? -1 : ee.call(e, n, t);
},
merge: function(n, t) {
var i = t.length, a = n.length, r = 0;
if ("number" == typeof i) for (;i > r; r++) n[a++] = t[r]; else for (;t[r] !== e; ) n[a++] = t[r++];
return n.length = a, n;
},
grep: function(n, e, t) {
var i, a = [], r = 0, o = n.length;
for (t = !!t; o > r; r++) i = !!e(n[r], r), t !== i && a.push(n[r]);
return a;
},
map: function(n, e, i) {
var a, r = 0, o = n.length, s = t(n), l = [];
if (s) for (;o > r; r++) a = e(n[r], r, i), null != a && (l[l.length] = a); else for (r in n) a = e(n[r], r, i),
null != a && (l[l.length] = a);
return X.apply([], l);
},
guid: 1,
proxy: function(n, t) {
var i, a, r;
return "string" == typeof t && (i = n[t], t = n, n = i), re.isFunction(n) ? (a = ne.call(arguments, 2),
r = function() {
return n.apply(t || this, a.concat(ne.call(arguments)));
}, r.guid = n.guid = n.guid || re.guid++, r) : e;
},
access: function(n, t, i, a, r, o, s) {
var l = 0, c = n.length, M = null == i;
if ("object" === re.type(i)) {
r = !0;
for (l in i) re.access(n, t, l, i[l], !0, o, s);
} else if (a !== e && (r = !0, re.isFunction(a) || (s = !0), M && (s ? (t.call(n, a),
t = null) : (M = t, t = function(n, e, t) {
return M.call(re(n), t);
})), t)) for (;c > l; l++) t(n[l], i, s ? a : a.call(n[l], l, t(n[l], i)));
return r ? n : M ? t.call(n) : c ? t(n[0], i) : o;
},
now: Date.now,
swap: function(n, e, t, i) {
var a, r, o = {};
for (r in e) o[r] = n.style[r], n.style[r] = e[r];
a = t.apply(n, i || []);
for (r in e) n.style[r] = o[r];
return a;
}
}), re.ready.promise = function(e) {
return $ || ($ = re.Deferred(), "complete" === O.readyState ? setTimeout(re.ready) : (O.addEventListener("DOMContentLoaded", he, !1),
n.addEventListener("load", he, !1))), $.promise(e);
}, re.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(n, e) {
W["[object " + e + "]"] = e.toLowerCase();
}), U = re(O), function(n, e) {
function t(n, e, t, i) {
var a, r, o, s, l, c, M, u, S, p;
if ((e ? e.ownerDocument || e : _) !== T && P(e), e = e || T, t = t || [], !n || "string" != typeof n) return t;
if (1 !== (s = e.nodeType) && 9 !== s) return [];
if (B && !i) {
if (a = be.exec(n)) if (o = a[1]) {
if (9 === s) {
if (r = e.getElementById(o), !r || !r.parentNode) return t;
if (r.id === o) return t.push(r), t;
} else if (e.ownerDocument && (r = e.ownerDocument.getElementById(o)) && z(e, r) && r.id === o) return t.push(r),
t;
} else {
if (a[2]) return ne.apply(t, e.getElementsByTagName(n)), t;
if ((o = a[3]) && w.getElementsByClassName && e.getElementsByClassName) return ne.apply(t, e.getElementsByClassName(o)),
t;
}
if (w.qsa && (!Y || !Y.test(n))) {
if (u = M = I, S = e, p = 9 === s && n, 1 === s && "object" !== e.nodeName.toLowerCase()) {
for (c = d(n), (M = e.getAttribute("id")) ? u = M.replace(De, "\\$&") : e.setAttribute("id", u),
u = "[id='" + u + "'] ", l = c.length; l--; ) c[l] = u + h(c[l]);
S = he.test(n) && e.parentNode || e, p = c.join(",");
}
if (p) try {
return ne.apply(t, S.querySelectorAll(p)), t;
} catch (m) {} finally {
M || e.removeAttribute("id");
}
}
}
return v(n.replace(Me, "$1"), e, t, i);
}
function i() {
function n(t, i) {
return e.push(t += " ") > k.cacheLength && delete n[e.shift()], n[t] = i;
}
var e = [];
return n;
}
function a(n) {
return n[I] = !0, n;
}
function r(n) {
var e = T.createElement("div");
try {
return !!n(e);
} catch (t) {
return !1;
} finally {
e.parentNode && e.parentNode.removeChild(e), e = null;
}
}
function o(n, e) {
for (var t = n.split("|"), i = n.length; i--; ) k.attrHandle[t[i]] = e;
}
function s(n, e) {
var t = e && n, i = t && 1 === n.nodeType && 1 === e.nodeType && (~e.sourceIndex || W) - (~n.sourceIndex || W);
if (i) return i;
if (t) for (;t = t.nextSibling; ) if (t === e) return -1;
return n ? 1 : -1;
}
function l(n) {
return function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && e.type === n;
};
}
function c(n) {
return function(e) {
var t = e.nodeName.toLowerCase();
return ("input" === t || "button" === t) && e.type === n;
};
}
function M(n) {
return a(function(e) {
return e = +e, a(function(t, i) {
for (var a, r = n([], t.length, e), o = r.length; o--; ) t[a = r[o]] && (t[a] = !(i[a] = t[a]));
});
});
}
function u() {}
function d(n, e) {
var i, a, r, o, s, l, c, M = Z[n + " "];
if (M) return e ? 0 : M.slice(0);
for (s = n, l = [], c = k.preFilter; s; ) {
(!i || (a = ue.exec(s))) && (a && (s = s.slice(a[0].length) || s), l.push(r = [])),
i = !1, (a = de.exec(s)) && (i = a.shift(), r.push({
value: i,
type: a[0].replace(Me, " ")
}), s = s.slice(i.length));
for (o in k.filter) !(a = ge[o].exec(s)) || c[o] && !(a = c[o](a)) || (i = a.shift(),
r.push({
value: i,
type: o,
matches: a
}), s = s.slice(i.length));
if (!i) break;
}
return e ? s.length : s ? t.error(n) : Z(n, l).slice(0);
}
function h(n) {
for (var e = 0, t = n.length, i = ""; t > e; e++) i += n[e].value;
return i;
}
function S(n, e, t) {
var i = e.dir, a = t && "parentNode" === i, r = $++;
return e.first ? function(e, t, r) {
for (;e = e[i]; ) if (1 === e.nodeType || a) return n(e, t, r);
} : function(e, t, o) {
var s, l, c, M = U + " " + r;
if (o) {
for (;e = e[i]; ) if ((1 === e.nodeType || a) && n(e, t, o)) return !0;
} else for (;e = e[i]; ) if (1 === e.nodeType || a) if (c = e[I] || (e[I] = {}),
(l = c[i]) && l[0] === M) {
if ((s = l[1]) === !0 || s === G) return s === !0;
} else if (l = c[i] = [ M ], l[1] = n(e, t, o) || G, l[1] === !0) return !0;
};
}
function p(n) {
return n.length > 1 ? function(e, t, i) {
for (var a = n.length; a--; ) if (!n[a](e, t, i)) return !1;
return !0;
} : n[0];
}
function m(n, e, t, i, a) {
for (var r, o = [], s = 0, l = n.length, c = null != e; l > s; s++) (r = n[s]) && (!t || t(r, i, a)) && (o.push(r),
c && e.push(s));
return o;
}
function g(n, e, t, i, r, o) {
return i && !i[I] && (i = g(i)), r && !r[I] && (r = g(r, o)), a(function(a, o, s, l) {
var c, M, u, d = [], h = [], S = o.length, p = a || y(e || "*", s.nodeType ? [ s ] : s, []), g = !n || !a && e ? p : m(p, d, n, s, l), f = t ? r || (a ? n : S || i) ? [] : o : g;
if (t && t(g, f, s, l), i) for (c = m(f, h), i(c, [], s, l), M = c.length; M--; ) (u = c[M]) && (f[h[M]] = !(g[h[M]] = u));
if (a) {
if (r || n) {
if (r) {
for (c = [], M = f.length; M--; ) (u = f[M]) && c.push(g[M] = u);
r(null, f = [], c, l);
}
for (M = f.length; M--; ) (u = f[M]) && (c = r ? te.call(a, u) : d[M]) > -1 && (a[c] = !(o[c] = u));
}
} else f = m(f === o ? f.splice(S, f.length) : f), r ? r(null, o, f, l) : ne.apply(o, f);
});
}
function f(n) {
for (var e, t, i, a = n.length, r = k.relative[n[0].type], o = r || k.relative[" "], s = r ? 1 : 0, l = S(function(n) {
return n === e;
}, o, !0), c = S(function(n) {
return te.call(e, n) > -1;
}, o, !0), M = [ function(n, t, i) {
return !r && (i || t !== x) || ((e = t).nodeType ? l(n, t, i) : c(n, t, i));
} ]; a > s; s++) if (t = k.relative[n[s].type]) M = [ S(p(M), t) ]; else {
if (t = k.filter[n[s].type].apply(null, n[s].matches), t[I]) {
for (i = ++s; a > i && !k.relative[n[i].type]; i++) ;
return g(s > 1 && p(M), s > 1 && h(n.slice(0, s - 1).concat({
value: " " === n[s - 2].type ? "*" : ""
})).replace(Me, "$1"), t, i > s && f(n.slice(s, i)), a > i && f(n = n.slice(i)), a > i && h(n));
}
M.push(t);
}
return p(M);
}
function b(n, e) {
var i = 0, r = e.length > 0, o = n.length > 0, s = function(a, s, l, c, M) {
var u, d, h, S = [], p = 0, g = "0", f = a && [], b = null != M, y = x, v = a || o && k.find.TAG("*", M && s.parentNode || s), D = U += null == y ? 1 : Math.random() || .1;
for (b && (x = s !== T && s, G = i); null != (u = v[g]); g++) {
if (o && u) {
for (d = 0; h = n[d++]; ) if (h(u, s, l)) {
c.push(u);
break;
}
b && (U = D, G = ++i);
}
r && ((u = !h && u) && p--, a && f.push(u));
}
if (p += g, r && g !== p) {
for (d = 0; h = e[d++]; ) h(f, S, s, l);
if (a) {
if (p > 0) for (;g--; ) f[g] || S[g] || (S[g] = X.call(c));
S = m(S);
}
ne.apply(c, S), b && !a && S.length > 0 && p + e.length > 1 && t.uniqueSort(c);
}
return b && (U = D, x = y), f;
};
return r ? a(s) : s;
}
function y(n, e, i) {
for (var a = 0, r = e.length; r > a; a++) t(n, e[a], i);
return i;
}
function v(n, e, t, i) {
var a, r, o, s, l, c = d(n);
if (!i && 1 === c.length) {
if (r = c[0] = c[0].slice(0), r.length > 2 && "ID" === (o = r[0]).type && w.getById && 9 === e.nodeType && B && k.relative[r[1].type]) {
if (e = (k.find.ID(o.matches[0].replace(we, Ge), e) || [])[0], !e) return t;
n = n.slice(r.shift().value.length);
}
for (a = ge.needsContext.test(n) ? 0 : r.length; a-- && (o = r[a], !k.relative[s = o.type]); ) if ((l = k.find[s]) && (i = l(o.matches[0].replace(we, Ge), he.test(r[0].type) && e.parentNode || e))) {
if (r.splice(a, 1), n = i.length && h(r), !n) return ne.apply(t, i), t;
break;
}
}
return A(n, c)(i, e, !B, t, he.test(n)), t;
}
var D, w, G, k, R, C, A, x, E, P, T, F, B, Y, L, N, z, I = "sizzle" + -new Date(), _ = n.document, U = 0, $ = 0, j = i(), Z = i(), O = i(), H = !1, q = function(n, e) {
return n === e ? (H = !0, 0) : 0;
}, J = typeof e, W = 1 << 31, V = {}.hasOwnProperty, K = [], X = K.pop, Q = K.push, ne = K.push, ee = K.slice, te = K.indexOf || function(n) {
for (var e = 0, t = this.length; t > e; e++) if (this[e] === n) return e;
return -1;
}, ie = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", ae = "[\\x20\\t\\r\\n\\f]", oe = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", se = oe.replace("w", "w#"), le = "\\[" + ae + "*(" + oe + ")" + ae + "*(?:([*^$|!~]?=)" + ae + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + se + ")|)|)" + ae + "*\\]", ce = ":(" + oe + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + le.replace(3, 8) + ")*)|.*)\\)|)", Me = new RegExp("^" + ae + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ae + "+$", "g"), ue = new RegExp("^" + ae + "*," + ae + "*"), de = new RegExp("^" + ae + "*([>+~]|" + ae + ")" + ae + "*"), he = new RegExp(ae + "*[+~]"), Se = new RegExp("=" + ae + "*([^\\]'\"]*)" + ae + "*\\]", "g"), pe = new RegExp(ce), me = new RegExp("^" + se + "$"), ge = {
ID: new RegExp("^#(" + oe + ")"),
CLASS: new RegExp("^\\.(" + oe + ")"),
TAG: new RegExp("^(" + oe.replace("w", "w*") + ")"),
ATTR: new RegExp("^" + le),
PSEUDO: new RegExp("^" + ce),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ae + "*(even|odd|(([+-]|)(\\d*)n|)" + ae + "*(?:([+-]|)" + ae + "*(\\d+)|))" + ae + "*\\)|)", "i"),
bool: new RegExp("^(?:" + ie + ")$", "i"),
needsContext: new RegExp("^" + ae + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ae + "*((?:-\\d)?\\d*)" + ae + "*\\)|)(?=[^-]|$)", "i")
}, fe = /^[^{]+\{\s*\[native \w/, be = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ye = /^(?:input|select|textarea|button)$/i, ve = /^h\d$/i, De = /'|\\/g, we = new RegExp("\\\\([\\da-f]{1,6}" + ae + "?|(" + ae + ")|.)", "ig"), Ge = function(n, e, t) {
var i = "0x" + e - 65536;
return i !== i || t ? e : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i);
};
try {
ne.apply(K = ee.call(_.childNodes), _.childNodes), K[_.childNodes.length].nodeType;
} catch (ke) {
ne = {
apply: K.length ? function(n, e) {
Q.apply(n, ee.call(e));
} : function(n, e) {
for (var t = n.length, i = 0; n[t++] = e[i++]; ) ;
n.length = t - 1;
}
};
}
C = t.isXML = function(n) {
var e = n && (n.ownerDocument || n).documentElement;
return e ? "HTML" !== e.nodeName : !1;
}, w = t.support = {}, P = t.setDocument = function(n) {
var e = n ? n.ownerDocument || n : _, t = e.defaultView;
return e !== T && 9 === e.nodeType && e.documentElement ? (T = e, F = e.documentElement,
B = !C(e), t && t.attachEvent && t !== t.top && t.attachEvent("onbeforeunload", function() {
P();
}), w.attributes = r(function(n) {
return n.className = "i", !n.getAttribute("className");
}), w.getElementsByTagName = r(function(n) {
return n.appendChild(e.createComment("")), !n.getElementsByTagName("*").length;
}), w.getElementsByClassName = r(function(n) {
return n.innerHTML = "<div class='a'></div><div class='a i'></div>", n.firstChild.className = "i",
2 === n.getElementsByClassName("i").length;
}), w.getById = r(function(n) {
return F.appendChild(n).id = I, !e.getElementsByName || !e.getElementsByName(I).length;
}), w.getById ? (k.find.ID = function(n, e) {
if (typeof e.getElementById !== J && B) {
var t = e.getElementById(n);
return t && t.parentNode ? [ t ] : [];
}
}, k.filter.ID = function(n) {
var e = n.replace(we, Ge);
return function(n) {
return n.getAttribute("id") === e;
};
}) : (delete k.find.ID, k.filter.ID = function(n) {
var e = n.replace(we, Ge);
return function(n) {
var t = typeof n.getAttributeNode !== J && n.getAttributeNode("id");
return t && t.value === e;
};
}), k.find.TAG = w.getElementsByTagName ? function(n, e) {
return typeof e.getElementsByTagName !== J ? e.getElementsByTagName(n) : void 0;
} : function(n, e) {
var t, i = [], a = 0, r = e.getElementsByTagName(n);
if ("*" === n) {
for (;t = r[a++]; ) 1 === t.nodeType && i.push(t);
return i;
}
return r;
}, k.find.CLASS = w.getElementsByClassName && function(n, e) {
return typeof e.getElementsByClassName !== J && B ? e.getElementsByClassName(n) : void 0;
}, L = [], Y = [], (w.qsa = fe.test(e.querySelectorAll)) && (r(function(n) {
n.innerHTML = "<select><option selected=''></option></select>", n.querySelectorAll("[selected]").length || Y.push("\\[" + ae + "*(?:value|" + ie + ")"),
n.querySelectorAll(":checked").length || Y.push(":checked");
}), r(function(n) {
var t = e.createElement("input");
t.setAttribute("type", "hidden"), n.appendChild(t).setAttribute("t", ""), n.querySelectorAll("[t^='']").length && Y.push("[*^$]=" + ae + "*(?:''|\"\")"),
n.querySelectorAll(":enabled").length || Y.push(":enabled", ":disabled"), n.querySelectorAll("*,:x"),
Y.push(",.*:");
})), (w.matchesSelector = fe.test(N = F.webkitMatchesSelector || F.mozMatchesSelector || F.oMatchesSelector || F.msMatchesSelector)) && r(function(n) {
w.disconnectedMatch = N.call(n, "div"), N.call(n, "[s!='']:x"), L.push("!=", ce);
}), Y = Y.length && new RegExp(Y.join("|")), L = L.length && new RegExp(L.join("|")),
z = fe.test(F.contains) || F.compareDocumentPosition ? function(n, e) {
var t = 9 === n.nodeType ? n.documentElement : n, i = e && e.parentNode;
return n === i || !(!i || 1 !== i.nodeType || !(t.contains ? t.contains(i) : n.compareDocumentPosition && 16 & n.compareDocumentPosition(i)));
} : function(n, e) {
if (e) for (;e = e.parentNode; ) if (e === n) return !0;
return !1;
}, q = F.compareDocumentPosition ? function(n, t) {
if (n === t) return H = !0, 0;
var i = t.compareDocumentPosition && n.compareDocumentPosition && n.compareDocumentPosition(t);
return i ? 1 & i || !w.sortDetached && t.compareDocumentPosition(n) === i ? n === e || z(_, n) ? -1 : t === e || z(_, t) ? 1 : E ? te.call(E, n) - te.call(E, t) : 0 : 4 & i ? -1 : 1 : n.compareDocumentPosition ? -1 : 1;
} : function(n, t) {
var i, a = 0, r = n.parentNode, o = t.parentNode, l = [ n ], c = [ t ];
if (n === t) return H = !0, 0;
if (!r || !o) return n === e ? -1 : t === e ? 1 : r ? -1 : o ? 1 : E ? te.call(E, n) - te.call(E, t) : 0;
if (r === o) return s(n, t);
for (i = n; i = i.parentNode; ) l.unshift(i);
for (i = t; i = i.parentNode; ) c.unshift(i);
for (;l[a] === c[a]; ) a++;
return a ? s(l[a], c[a]) : l[a] === _ ? -1 : c[a] === _ ? 1 : 0;
}, e) : T;
}, t.matches = function(n, e) {
return t(n, null, null, e);
}, t.matchesSelector = function(n, e) {
if ((n.ownerDocument || n) !== T && P(n), e = e.replace(Se, "='$1']"), !(!w.matchesSelector || !B || L && L.test(e) || Y && Y.test(e))) try {
var i = N.call(n, e);
if (i || w.disconnectedMatch || n.document && 11 !== n.document.nodeType) return i;
} catch (a) {}
return t(e, T, null, [ n ]).length > 0;
}, t.contains = function(n, e) {
return (n.ownerDocument || n) !== T && P(n), z(n, e);
}, t.attr = function(n, t) {
(n.ownerDocument || n) !== T && P(n);
var i = k.attrHandle[t.toLowerCase()], a = i && V.call(k.attrHandle, t.toLowerCase()) ? i(n, t, !B) : e;
return a === e ? w.attributes || !B ? n.getAttribute(t) : (a = n.getAttributeNode(t)) && a.specified ? a.value : null : a;
}, t.error = function(n) {
throw new Error("Syntax error, unrecognized expression: " + n);
}, t.uniqueSort = function(n) {
var e, t = [], i = 0, a = 0;
if (H = !w.detectDuplicates, E = !w.sortStable && n.slice(0), n.sort(q), H) {
for (;e = n[a++]; ) e === n[a] && (i = t.push(a));
for (;i--; ) n.splice(t[i], 1);
}
return n;
}, R = t.getText = function(n) {
var e, t = "", i = 0, a = n.nodeType;
if (a) {
if (1 === a || 9 === a || 11 === a) {
if ("string" == typeof n.textContent) return n.textContent;
for (n = n.firstChild; n; n = n.nextSibling) t += R(n);
} else if (3 === a || 4 === a) return n.nodeValue;
} else for (;e = n[i]; i++) t += R(e);
return t;
}, k = t.selectors = {
cacheLength: 50,
createPseudo: a,
match: ge,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(n) {
return n[1] = n[1].replace(we, Ge), n[3] = (n[4] || n[5] || "").replace(we, Ge),
"~=" === n[2] && (n[3] = " " + n[3] + " "), n.slice(0, 4);
},
CHILD: function(n) {
return n[1] = n[1].toLowerCase(), "nth" === n[1].slice(0, 3) ? (n[3] || t.error(n[0]),
n[4] = +(n[4] ? n[5] + (n[6] || 1) : 2 * ("even" === n[3] || "odd" === n[3])), n[5] = +(n[7] + n[8] || "odd" === n[3])) : n[3] && t.error(n[0]),
n;
},
PSEUDO: function(n) {
var t, i = !n[5] && n[2];
return ge.CHILD.test(n[0]) ? null : (n[3] && n[4] !== e ? n[2] = n[4] : i && pe.test(i) && (t = d(i, !0)) && (t = i.indexOf(")", i.length - t) - i.length) && (n[0] = n[0].slice(0, t),
n[2] = i.slice(0, t)), n.slice(0, 3));
}
},
filter: {
TAG: function(n) {
var e = n.replace(we, Ge).toLowerCase();
return "*" === n ? function() {
return !0;
} : function(n) {
return n.nodeName && n.nodeName.toLowerCase() === e;
};
},
CLASS: function(n) {
var e = j[n + " "];
return e || (e = new RegExp("(^|" + ae + ")" + n + "(" + ae + "|$)")) && j(n, function(n) {
return e.test("string" == typeof n.className && n.className || typeof n.getAttribute !== J && n.getAttribute("class") || "");
});
},
ATTR: function(n, e, i) {
return function(a) {
var r = t.attr(a, n);
return null == r ? "!=" === e : e ? (r += "", "=" === e ? r === i : "!=" === e ? r !== i : "^=" === e ? i && 0 === r.indexOf(i) : "*=" === e ? i && r.indexOf(i) > -1 : "$=" === e ? i && r.slice(-i.length) === i : "~=" === e ? (" " + r + " ").indexOf(i) > -1 : "|=" === e ? r === i || r.slice(0, i.length + 1) === i + "-" : !1) : !0;
};
},
CHILD: function(n, e, t, i, a) {
var r = "nth" !== n.slice(0, 3), o = "last" !== n.slice(-4), s = "of-type" === e;
return 1 === i && 0 === a ? function(n) {
return !!n.parentNode;
} : function(e, t, l) {
var c, M, u, d, h, S, p = r !== o ? "nextSibling" : "previousSibling", m = e.parentNode, g = s && e.nodeName.toLowerCase(), f = !l && !s;
if (m) {
if (r) {
for (;p; ) {
for (u = e; u = u[p]; ) if (s ? u.nodeName.toLowerCase() === g : 1 === u.nodeType) return !1;
S = p = "only" === n && !S && "nextSibling";
}
return !0;
}
if (S = [ o ? m.firstChild : m.lastChild ], o && f) {
for (M = m[I] || (m[I] = {}), c = M[n] || [], h = c[0] === U && c[1], d = c[0] === U && c[2],
u = h && m.childNodes[h]; u = ++h && u && u[p] || (d = h = 0) || S.pop(); ) if (1 === u.nodeType && ++d && u === e) {
M[n] = [ U, h, d ];
break;
}
} else if (f && (c = (e[I] || (e[I] = {}))[n]) && c[0] === U) d = c[1]; else for (;(u = ++h && u && u[p] || (d = h = 0) || S.pop()) && ((s ? u.nodeName.toLowerCase() !== g : 1 !== u.nodeType) || !++d || (f && ((u[I] || (u[I] = {}))[n] = [ U, d ]),
u !== e)); ) ;
return d -= a, d === i || 0 === d % i && d / i >= 0;
}
};
},
PSEUDO: function(n, e) {
var i, r = k.pseudos[n] || k.setFilters[n.toLowerCase()] || t.error("unsupported pseudo: " + n);
return r[I] ? r(e) : r.length > 1 ? (i = [ n, n, "", e ], k.setFilters.hasOwnProperty(n.toLowerCase()) ? a(function(n, t) {
for (var i, a = r(n, e), o = a.length; o--; ) i = te.call(n, a[o]), n[i] = !(t[i] = a[o]);
}) : function(n) {
return r(n, 0, i);
}) : r;
}
},
pseudos: {
not: a(function(n) {
var e = [], t = [], i = A(n.replace(Me, "$1"));
return i[I] ? a(function(n, e, t, a) {
for (var r, o = i(n, null, a, []), s = n.length; s--; ) (r = o[s]) && (n[s] = !(e[s] = r));
}) : function(n, a, r) {
return e[0] = n, i(e, null, r, t), !t.pop();
};
}),
has: a(function(n) {
return function(e) {
return t(n, e).length > 0;
};
}),
contains: a(function(n) {
return function(e) {
return (e.textContent || e.innerText || R(e)).indexOf(n) > -1;
};
}),
lang: a(function(n) {
return me.test(n || "") || t.error("unsupported lang: " + n), n = n.replace(we, Ge).toLowerCase(),
function(e) {
var t;
do if (t = B ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return t = t.toLowerCase(),
t === n || 0 === t.indexOf(n + "-"); while ((e = e.parentNode) && 1 === e.nodeType);
return !1;
};
}),
target: function(e) {
var t = n.location && n.location.hash;
return t && t.slice(1) === e.id;
},
root: function(n) {
return n === F;
},
focus: function(n) {
return n === T.activeElement && (!T.hasFocus || T.hasFocus()) && !!(n.type || n.href || ~n.tabIndex);
},
enabled: function(n) {
return n.disabled === !1;
},
disabled: function(n) {
return n.disabled === !0;
},
checked: function(n) {
var e = n.nodeName.toLowerCase();
return "input" === e && !!n.checked || "option" === e && !!n.selected;
},
selected: function(n) {
return n.parentNode && n.parentNode.selectedIndex, n.selected === !0;
},
empty: function(n) {
for (n = n.firstChild; n; n = n.nextSibling) if (n.nodeName > "@" || 3 === n.nodeType || 4 === n.nodeType) return !1;
return !0;
},
parent: function(n) {
return !k.pseudos.empty(n);
},
header: function(n) {
return ve.test(n.nodeName);
},
input: function(n) {
return ye.test(n.nodeName);
},
button: function(n) {
var e = n.nodeName.toLowerCase();
return "input" === e && "button" === n.type || "button" === e;
},
text: function(n) {
var e;
return "input" === n.nodeName.toLowerCase() && "text" === n.type && (null == (e = n.getAttribute("type")) || e.toLowerCase() === n.type);
},
first: M(function() {
return [ 0 ];
}),
last: M(function(n, e) {
return [ e - 1 ];
}),
eq: M(function(n, e, t) {
return [ 0 > t ? t + e : t ];
}),
even: M(function(n, e) {
for (var t = 0; e > t; t += 2) n.push(t);
return n;
}),
odd: M(function(n, e) {
for (var t = 1; e > t; t += 2) n.push(t);
return n;
}),
lt: M(function(n, e, t) {
for (var i = 0 > t ? t + e : t; --i >= 0; ) n.push(i);
return n;
}),
gt: M(function(n, e, t) {
for (var i = 0 > t ? t + e : t; ++i < e; ) n.push(i);
return n;
})
}
}, k.pseudos.nth = k.pseudos.eq;
for (D in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) k.pseudos[D] = l(D);
for (D in {
submit: !0,
reset: !0
}) k.pseudos[D] = c(D);
u.prototype = k.filters = k.pseudos, k.setFilters = new u(), A = t.compile = function(n, e) {
var t, i = [], a = [], r = O[n + " "];
if (!r) {
for (e || (e = d(n)), t = e.length; t--; ) r = f(e[t]), r[I] ? i.push(r) : a.push(r);
r = O(n, b(a, i));
}
return r;
}, w.sortStable = I.split("").sort(q).join("") === I, w.detectDuplicates = H, P(),
w.sortDetached = r(function(n) {
return 1 & n.compareDocumentPosition(T.createElement("div"));
}), r(function(n) {
return n.innerHTML = "<a href='#'></a>", "#" === n.firstChild.getAttribute("href");
}) || o("type|href|height|width", function(n, e, t) {
return t ? void 0 : n.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2);
}), w.attributes && r(function(n) {
return n.innerHTML = "<input/>", n.firstChild.setAttribute("value", ""), "" === n.firstChild.getAttribute("value");
}) || o("value", function(n, e, t) {
return t || "input" !== n.nodeName.toLowerCase() ? void 0 : n.defaultValue;
}), r(function(n) {
return null == n.getAttribute("disabled");
}) || o(ie, function(n, e, t) {
var i;
return t ? void 0 : (i = n.getAttributeNode(e)) && i.specified ? i.value : n[e] === !0 ? e.toLowerCase() : null;
}), re.find = t, re.expr = t.selectors, re.expr[":"] = re.expr.pseudos, re.unique = t.uniqueSort,
re.text = t.getText, re.isXMLDoc = t.isXML, re.contains = t.contains;
}(n);
var Se = {};
re.Callbacks = function(n) {
n = "string" == typeof n ? Se[n] || i(n) : re.extend({}, n);
var t, a, r, o, s, l, c = [], M = !n.once && [], u = function(e) {
for (t = n.memory && e, a = !0, l = o || 0, o = 0, s = c.length, r = !0; c && s > l; l++) if (c[l].apply(e[0], e[1]) === !1 && n.stopOnFalse) {
t = !1;
break;
}
r = !1, c && (M ? M.length && u(M.shift()) : t ? c = [] : d.disable());
}, d = {
add: function() {
if (c) {
var e = c.length;
(function i(e) {
re.each(e, function(e, t) {
var a = re.type(t);
"function" === a ? n.unique && d.has(t) || c.push(t) : t && t.length && "string" !== a && i(t);
});
})(arguments), r ? s = c.length : t && (o = e, u(t));
}
return this;
},
remove: function() {
return c && re.each(arguments, function(n, e) {
for (var t; (t = re.inArray(e, c, t)) > -1; ) c.splice(t, 1), r && (s >= t && s--,
l >= t && l--);
}), this;
},
has: function(n) {
return n ? re.inArray(n, c) > -1 : !(!c || !c.length);
},
empty: function() {
return c = [], s = 0, this;
},
disable: function() {
return c = M = t = e, this;
},
disabled: function() {
return !c;
},
lock: function() {
return M = e, t || d.disable(), this;
},
locked: function() {
return !M;
},
fireWith: function(n, e) {
return !c || a && !M || (e = e || [], e = [ n, e.slice ? e.slice() : e ], r ? M.push(e) : u(e)),
this;
},
fire: function() {
return d.fireWith(this, arguments), this;
},
fired: function() {
return !!a;
}
};
return d;
}, re.extend({
Deferred: function(n) {
var e = [ [ "resolve", "done", re.Callbacks("once memory"), "resolved" ], [ "reject", "fail", re.Callbacks("once memory"), "rejected" ], [ "notify", "progress", re.Callbacks("memory") ] ], t = "pending", i = {
state: function() {
return t;
},
always: function() {
return a.done(arguments).fail(arguments), this;
},
then: function() {
var n = arguments;
return re.Deferred(function(t) {
re.each(e, function(e, r) {
var o = r[0], s = re.isFunction(n[e]) && n[e];
a[r[1]](function() {
var n = s && s.apply(this, arguments);
n && re.isFunction(n.promise) ? n.promise().done(t.resolve).fail(t.reject).progress(t.notify) : t[o + "With"](this === i ? t.promise() : this, s ? [ n ] : arguments);
});
}), n = null;
}).promise();
},
promise: function(n) {
return null != n ? re.extend(n, i) : i;
}
}, a = {};
return i.pipe = i.then, re.each(e, function(n, r) {
var o = r[2], s = r[3];
i[r[1]] = o.add, s && o.add(function() {
t = s;
}, e[1 ^ n][2].disable, e[2][2].lock), a[r[0]] = function() {
return a[r[0] + "With"](this === a ? i : this, arguments), this;
}, a[r[0] + "With"] = o.fireWith;
}), i.promise(a), n && n.call(a, a), a;
},
when: function(n) {
var e, t, i, a = 0, r = ne.call(arguments), o = r.length, s = 1 !== o || n && re.isFunction(n.promise) ? o : 0, l = 1 === s ? n : re.Deferred(), c = function(n, t, i) {
return function(a) {
t[n] = this, i[n] = arguments.length > 1 ? ne.call(arguments) : a, i === e ? l.notifyWith(t, i) : --s || l.resolveWith(t, i);
};
};
if (o > 1) for (e = new Array(o), t = new Array(o), i = new Array(o); o > a; a++) r[a] && re.isFunction(r[a].promise) ? r[a].promise().done(c(a, i, r)).fail(l.reject).progress(c(a, t, e)) : --s;
return s || l.resolveWith(i, r), l.promise();
}
}), re.support = function(e) {
var t = O.createElement("input"), i = O.createDocumentFragment(), a = O.createElement("div"), r = O.createElement("select"), o = r.appendChild(O.createElement("option"));
return t.type ? (t.type = "checkbox", e.checkOn = "" !== t.value, e.optSelected = o.selected,
e.reliableMarginRight = !0, e.boxSizingReliable = !0, e.pixelPosition = !1, t.checked = !0,
e.noCloneChecked = t.cloneNode(!0).checked, r.disabled = !0, e.optDisabled = !o.disabled,
t = O.createElement("input"), t.value = "t", t.type = "radio", e.radioValue = "t" === t.value,
t.setAttribute("checked", "t"), t.setAttribute("name", "t"), i.appendChild(t), e.checkClone = i.cloneNode(!0).cloneNode(!0).lastChild.checked,
e.focusinBubbles = "onfocusin" in n, a.style.backgroundClip = "content-box", a.cloneNode(!0).style.backgroundClip = "",
e.clearCloneStyle = "content-box" === a.style.backgroundClip, re(function() {
var t, i, r = "padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box", o = O.getElementsByTagName("body")[0];
o && (t = O.createElement("div"), t.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",
o.appendChild(t).appendChild(a), a.innerHTML = "", a.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",
re.swap(o, null != o.style.zoom ? {
zoom: 1
} : {}, function() {
e.boxSizing = 4 === a.offsetWidth;
}), n.getComputedStyle && (e.pixelPosition = "1%" !== (n.getComputedStyle(a, null) || {}).top,
e.boxSizingReliable = "4px" === (n.getComputedStyle(a, null) || {
width: "4px"
}).width, i = a.appendChild(O.createElement("div")), i.style.cssText = a.style.cssText = r,
i.style.marginRight = i.style.width = "0", a.style.width = "1px", e.reliableMarginRight = !parseFloat((n.getComputedStyle(i, null) || {}).marginRight)),
o.removeChild(t));
}), e) : e;
}({});
var pe, me, ge = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, fe = /([A-Z])/g;
a.uid = 1, a.accepts = function(n) {
return n.nodeType ? 1 === n.nodeType || 9 === n.nodeType : !0;
}, a.prototype = {
key: function(n) {
if (!a.accepts(n)) return 0;
var e = {}, t = n[this.expando];
if (!t) {
t = a.uid++;
try {
e[this.expando] = {
value: t
}, Object.defineProperties(n, e);
} catch (i) {
e[this.expando] = t, re.extend(n, e);
}
}
return this.cache[t] || (this.cache[t] = {}), t;
},
set: function(n, e, t) {
var i, a = this.key(n), r = this.cache[a];
if ("string" == typeof e) r[e] = t; else if (re.isEmptyObject(r)) re.extend(this.cache[a], e); else for (i in e) r[i] = e[i];
return r;
},
get: function(n, t) {
var i = this.cache[this.key(n)];
return t === e ? i : i[t];
},
access: function(n, t, i) {
var a;
return t === e || t && "string" == typeof t && i === e ? (a = this.get(n, t), a !== e ? a : this.get(n, re.camelCase(t))) : (this.set(n, t, i),
i !== e ? i : t);
},
remove: function(n, t) {
var i, a, r, o = this.key(n), s = this.cache[o];
if (t === e) this.cache[o] = {}; else {
re.isArray(t) ? a = t.concat(t.map(re.camelCase)) : (r = re.camelCase(t), t in s ? a = [ t, r ] : (a = r,
a = a in s ? [ a ] : a.match(se) || [])), i = a.length;
for (;i--; ) delete s[a[i]];
}
},
hasData: function(n) {
return !re.isEmptyObject(this.cache[n[this.expando]] || {});
},
discard: function(n) {
n[this.expando] && delete this.cache[n[this.expando]];
}
}, pe = new a(), me = new a(), re.extend({
acceptData: a.accepts,
hasData: function(n) {
return pe.hasData(n) || me.hasData(n);
},
data: function(n, e, t) {
return pe.access(n, e, t);
},
removeData: function(n, e) {
pe.remove(n, e);
},
_data: function(n, e, t) {
return me.access(n, e, t);
},
_removeData: function(n, e) {
me.remove(n, e);
}
}), re.fn.extend({
data: function(n, t) {
var i, a, o = this[0], s = 0, l = null;
if (n === e) {
if (this.length && (l = pe.get(o), 1 === o.nodeType && !me.get(o, "hasDataAttrs"))) {
for (i = o.attributes; s < i.length; s++) a = i[s].name, 0 === a.indexOf("data-") && (a = re.camelCase(a.slice(5)),
r(o, a, l[a]));
me.set(o, "hasDataAttrs", !0);
}
return l;
}
return "object" == typeof n ? this.each(function() {
pe.set(this, n);
}) : re.access(this, function(t) {
var i, a = re.camelCase(n);
if (o && t === e) {
if (i = pe.get(o, n), i !== e) return i;
if (i = pe.get(o, a), i !== e) return i;
if (i = r(o, a, e), i !== e) return i;
} else this.each(function() {
var i = pe.get(this, a);
pe.set(this, a, t), -1 !== n.indexOf("-") && i !== e && pe.set(this, n, t);
});
}, null, t, arguments.length > 1, null, !0);
},
removeData: function(n) {
return this.each(function() {
pe.remove(this, n);
});
}
}), re.extend({
queue: function(n, e, t) {
var i;
return n ? (e = (e || "fx") + "queue", i = me.get(n, e), t && (!i || re.isArray(t) ? i = me.access(n, e, re.makeArray(t)) : i.push(t)),
i || []) : void 0;
},
dequeue: function(n, e) {
e = e || "fx";
var t = re.queue(n, e), i = t.length, a = t.shift(), r = re._queueHooks(n, e), o = function() {
re.dequeue(n, e);
};
"inprogress" === a && (a = t.shift(), i--), a && ("fx" === e && t.unshift("inprogress"),
delete r.stop, a.call(n, o, r)), !i && r && r.empty.fire();
},
_queueHooks: function(n, e) {
var t = e + "queueHooks";
return me.get(n, t) || me.access(n, t, {
empty: re.Callbacks("once memory").add(function() {
me.remove(n, [ e + "queue", t ]);
})
});
}
}), re.fn.extend({
queue: function(n, t) {
var i = 2;
return "string" != typeof n && (t = n, n = "fx", i--), arguments.length < i ? re.queue(this[0], n) : t === e ? this : this.each(function() {
var e = re.queue(this, n, t);
re._queueHooks(this, n), "fx" === n && "inprogress" !== e[0] && re.dequeue(this, n);
});
},
dequeue: function(n) {
return this.each(function() {
re.dequeue(this, n);
});
},
delay: function(n, e) {
return n = re.fx ? re.fx.speeds[n] || n : n, e = e || "fx", this.queue(e, function(e, t) {
var i = setTimeout(e, n);
t.stop = function() {
clearTimeout(i);
};
});
},
clearQueue: function(n) {
return this.queue(n || "fx", []);
},
promise: function(n, t) {
var i, a = 1, r = re.Deferred(), o = this, s = this.length, l = function() {
--a || r.resolveWith(o, [ o ]);
};
for ("string" != typeof n && (t = n, n = e), n = n || "fx"; s--; ) i = me.get(o[s], n + "queueHooks"),
i && i.empty && (a++, i.empty.add(l));
return l(), r.promise(t);
}
});
var be, ye, ve = /[\t\r\n\f]/g, De = /\r/g, we = /^(?:input|select|textarea|button)$/i;
re.fn.extend({
attr: function(n, e) {
return re.access(this, re.attr, n, e, arguments.length > 1);
},
removeAttr: function(n) {
return this.each(function() {
re.removeAttr(this, n);
});
},
prop: function(n, e) {
return re.access(this, re.prop, n, e, arguments.length > 1);
},
removeProp: function(n) {
return this.each(function() {
delete this[re.propFix[n] || n];
});
},
addClass: function(n) {
var e, t, i, a, r, o = 0, s = this.length, l = "string" == typeof n && n;
if (re.isFunction(n)) return this.each(function(e) {
re(this).addClass(n.call(this, e, this.className));
});
if (l) for (e = (n || "").match(se) || []; s > o; o++) if (t = this[o], i = 1 === t.nodeType && (t.className ? (" " + t.className + " ").replace(ve, " ") : " ")) {
for (r = 0; a = e[r++]; ) i.indexOf(" " + a + " ") < 0 && (i += a + " ");
t.className = re.trim(i);
}
return this;
},
removeClass: function(n) {
var e, t, i, a, r, o = 0, s = this.length, l = 0 === arguments.length || "string" == typeof n && n;
if (re.isFunction(n)) return this.each(function(e) {
re(this).removeClass(n.call(this, e, this.className));
});
if (l) for (e = (n || "").match(se) || []; s > o; o++) if (t = this[o], i = 1 === t.nodeType && (t.className ? (" " + t.className + " ").replace(ve, " ") : "")) {
for (r = 0; a = e[r++]; ) for (;i.indexOf(" " + a + " ") >= 0; ) i = i.replace(" " + a + " ", " ");
t.className = n ? re.trim(i) : "";
}
return this;
},
toggleClass: function(n, e) {
var t = typeof n;
return "boolean" == typeof e && "string" === t ? e ? this.addClass(n) : this.removeClass(n) : re.isFunction(n) ? this.each(function(t) {
re(this).toggleClass(n.call(this, t, this.className, e), e);
}) : this.each(function() {
if ("string" === t) for (var e, i = 0, a = re(this), r = n.match(se) || []; e = r[i++]; ) a.hasClass(e) ? a.removeClass(e) : a.addClass(e); else (t === j || "boolean" === t) && (this.className && me.set(this, "__className__", this.className),
this.className = this.className || n === !1 ? "" : me.get(this, "__className__") || "");
});
},
hasClass: function(n) {
for (var e = " " + n + " ", t = 0, i = this.length; i > t; t++) if (1 === this[t].nodeType && (" " + this[t].className + " ").replace(ve, " ").indexOf(e) >= 0) return !0;
return !1;
},
val: function(n) {
var t, i, a, r = this[0];
{
if (arguments.length) return a = re.isFunction(n), this.each(function(i) {
var r;
1 === this.nodeType && (r = a ? n.call(this, i, re(this).val()) : n, null == r ? r = "" : "number" == typeof r ? r += "" : re.isArray(r) && (r = re.map(r, function(n) {
return null == n ? "" : n + "";
})), t = re.valHooks[this.type] || re.valHooks[this.nodeName.toLowerCase()], t && "set" in t && t.set(this, r, "value") !== e || (this.value = r));
});
if (r) return t = re.valHooks[r.type] || re.valHooks[r.nodeName.toLowerCase()],
t && "get" in t && (i = t.get(r, "value")) !== e ? i : (i = r.value, "string" == typeof i ? i.replace(De, "") : null == i ? "" : i);
}
}
}), re.extend({
valHooks: {
option: {
get: function(n) {
var e = n.attributes.value;
return !e || e.specified ? n.value : n.text;
}
},
select: {
get: function(n) {
for (var e, t, i = n.options, a = n.selectedIndex, r = "select-one" === n.type || 0 > a, o = r ? null : [], s = r ? a + 1 : i.length, l = 0 > a ? s : r ? a : 0; s > l; l++) if (t = i[l],
!(!t.selected && l !== a || (re.support.optDisabled ? t.disabled : null !== t.getAttribute("disabled")) || t.parentNode.disabled && re.nodeName(t.parentNode, "optgroup"))) {
if (e = re(t).val(), r) return e;
o.push(e);
}
return o;
},
set: function(n, e) {
for (var t, i, a = n.options, r = re.makeArray(e), o = a.length; o--; ) i = a[o],
(i.selected = re.inArray(re(i).val(), r) >= 0) && (t = !0);
return t || (n.selectedIndex = -1), r;
}
}
},
attr: function(n, t, i) {
var a, r, o = n.nodeType;
if (n && 3 !== o && 8 !== o && 2 !== o) return typeof n.getAttribute === j ? re.prop(n, t, i) : (1 === o && re.isXMLDoc(n) || (t = t.toLowerCase(),
a = re.attrHooks[t] || (re.expr.match.bool.test(t) ? ye : be)), i === e ? a && "get" in a && null !== (r = a.get(n, t)) ? r : (r = re.find.attr(n, t),
null == r ? e : r) : null !== i ? a && "set" in a && (r = a.set(n, i, t)) !== e ? r : (n.setAttribute(t, i + ""),
i) : (re.removeAttr(n, t), void 0));
},
removeAttr: function(n, e) {
var t, i, a = 0, r = e && e.match(se);
if (r && 1 === n.nodeType) for (;t = r[a++]; ) i = re.propFix[t] || t, re.expr.match.bool.test(t) && (n[i] = !1),
n.removeAttribute(t);
},
attrHooks: {
type: {
set: function(n, e) {
if (!re.support.radioValue && "radio" === e && re.nodeName(n, "input")) {
var t = n.value;
return n.setAttribute("type", e), t && (n.value = t), e;
}
}
}
},
propFix: {
"for": "htmlFor",
"class": "className"
},
prop: function(n, t, i) {
var a, r, o, s = n.nodeType;
if (n && 3 !== s && 8 !== s && 2 !== s) return o = 1 !== s || !re.isXMLDoc(n), o && (t = re.propFix[t] || t,
r = re.propHooks[t]), i !== e ? r && "set" in r && (a = r.set(n, i, t)) !== e ? a : n[t] = i : r && "get" in r && null !== (a = r.get(n, t)) ? a : n[t];
},
propHooks: {
tabIndex: {
get: function(n) {
return n.hasAttribute("tabindex") || we.test(n.nodeName) || n.href ? n.tabIndex : -1;
}
}
}
}), ye = {
set: function(n, e, t) {
return e === !1 ? re.removeAttr(n, t) : n.setAttribute(t, t), t;
}
}, re.each(re.expr.match.bool.source.match(/\w+/g), function(n, t) {
var i = re.expr.attrHandle[t] || re.find.attr;
re.expr.attrHandle[t] = function(n, t, a) {
var r = re.expr.attrHandle[t], o = a ? e : (re.expr.attrHandle[t] = e) != i(n, t, a) ? t.toLowerCase() : null;
return re.expr.attrHandle[t] = r, o;
};
}), re.support.optSelected || (re.propHooks.selected = {
get: function(n) {
var e = n.parentNode;
return e && e.parentNode && e.parentNode.selectedIndex, null;
}
}), re.each([ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable" ], function() {
re.propFix[this.toLowerCase()] = this;
}), re.each([ "radio", "checkbox" ], function() {
re.valHooks[this] = {
set: function(n, e) {
return re.isArray(e) ? n.checked = re.inArray(re(n).val(), e) >= 0 : void 0;
}
}, re.support.checkOn || (re.valHooks[this].get = function(n) {
return null === n.getAttribute("value") ? "on" : n.value;
});
});
var Ge = /^key/, ke = /^(?:mouse|contextmenu)|click/, Re = /^(?:focusinfocus|focusoutblur)$/, Ce = /^([^.]*)(?:\.(.+)|)$/;
re.event = {
global: {},
add: function(n, t, i, a, r) {
var o, s, l, c, M, u, d, h, S, p, m, g = me.get(n);
if (g) {
for (i.handler && (o = i, i = o.handler, r = o.selector), i.guid || (i.guid = re.guid++),
(c = g.events) || (c = g.events = {}), (s = g.handle) || (s = g.handle = function(n) {
return typeof re === j || n && re.event.triggered === n.type ? e : re.event.dispatch.apply(s.elem, arguments);
}, s.elem = n), t = (t || "").match(se) || [ "" ], M = t.length; M--; ) l = Ce.exec(t[M]) || [],
S = m = l[1], p = (l[2] || "").split(".").sort(), S && (d = re.event.special[S] || {},
S = (r ? d.delegateType : d.bindType) || S, d = re.event.special[S] || {}, u = re.extend({
type: S,
origType: m,
data: a,
handler: i,
guid: i.guid,
selector: r,
needsContext: r && re.expr.match.needsContext.test(r),
namespace: p.join(".")
}, o), (h = c[S]) || (h = c[S] = [], h.delegateCount = 0, d.setup && d.setup.call(n, a, p, s) !== !1 || n.addEventListener && n.addEventListener(S, s, !1)),
d.add && (d.add.call(n, u), u.handler.guid || (u.handler.guid = i.guid)), r ? h.splice(h.delegateCount++, 0, u) : h.push(u),
re.event.global[S] = !0);
n = null;
}
},
remove: function(n, e, t, i, a) {
var r, o, s, l, c, M, u, d, h, S, p, m = me.hasData(n) && me.get(n);
if (m && (l = m.events)) {
for (e = (e || "").match(se) || [ "" ], c = e.length; c--; ) if (s = Ce.exec(e[c]) || [],
h = p = s[1], S = (s[2] || "").split(".").sort(), h) {
for (u = re.event.special[h] || {}, h = (i ? u.delegateType : u.bindType) || h,
d = l[h] || [], s = s[2] && new RegExp("(^|\\.)" + S.join("\\.(?:.*\\.|)") + "(\\.|$)"),
o = r = d.length; r--; ) M = d[r], !a && p !== M.origType || t && t.guid !== M.guid || s && !s.test(M.namespace) || i && i !== M.selector && ("**" !== i || !M.selector) || (d.splice(r, 1),
M.selector && d.delegateCount--, u.remove && u.remove.call(n, M));
o && !d.length && (u.teardown && u.teardown.call(n, S, m.handle) !== !1 || re.removeEvent(n, h, m.handle),
delete l[h]);
} else for (h in l) re.event.remove(n, h + e[c], t, i, !0);
re.isEmptyObject(l) && (delete m.handle, me.remove(n, "events"));
}
},
trigger: function(t, i, a, r) {
var o, s, l, c, M, u, d, h = [ a || O ], S = ie.call(t, "type") ? t.type : t, p = ie.call(t, "namespace") ? t.namespace.split(".") : [];
if (s = l = a = a || O, 3 !== a.nodeType && 8 !== a.nodeType && !Re.test(S + re.event.triggered) && (S.indexOf(".") >= 0 && (p = S.split("."),
S = p.shift(), p.sort()), M = S.indexOf(":") < 0 && "on" + S, t = t[re.expando] ? t : new re.Event(S, "object" == typeof t && t),
t.isTrigger = r ? 2 : 3, t.namespace = p.join("."), t.namespace_re = t.namespace ? new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
t.result = e, t.target || (t.target = a), i = null == i ? [ t ] : re.makeArray(i, [ t ]),
d = re.event.special[S] || {}, r || !d.trigger || d.trigger.apply(a, i) !== !1)) {
if (!r && !d.noBubble && !re.isWindow(a)) {
for (c = d.delegateType || S, Re.test(c + S) || (s = s.parentNode); s; s = s.parentNode) h.push(s),
l = s;
l === (a.ownerDocument || O) && h.push(l.defaultView || l.parentWindow || n);
}
for (o = 0; (s = h[o++]) && !t.isPropagationStopped(); ) t.type = o > 1 ? c : d.bindType || S,
u = (me.get(s, "events") || {})[t.type] && me.get(s, "handle"), u && u.apply(s, i),
u = M && s[M], u && re.acceptData(s) && u.apply && u.apply(s, i) === !1 && t.preventDefault();
return t.type = S, r || t.isDefaultPrevented() || d._default && d._default.apply(h.pop(), i) !== !1 || !re.acceptData(a) || M && re.isFunction(a[S]) && !re.isWindow(a) && (l = a[M],
l && (a[M] = null), re.event.triggered = S, a[S](), re.event.triggered = e, l && (a[M] = l)),
t.result;
}
},
dispatch: function(n) {
n = re.event.fix(n);
var t, i, a, r, o, s = [], l = ne.call(arguments), c = (me.get(this, "events") || {})[n.type] || [], M = re.event.special[n.type] || {};
if (l[0] = n, n.delegateTarget = this, !M.preDispatch || M.preDispatch.call(this, n) !== !1) {
for (s = re.event.handlers.call(this, n, c), t = 0; (r = s[t++]) && !n.isPropagationStopped(); ) for (n.currentTarget = r.elem,
i = 0; (o = r.handlers[i++]) && !n.isImmediatePropagationStopped(); ) (!n.namespace_re || n.namespace_re.test(o.namespace)) && (n.handleObj = o,
n.data = o.data, a = ((re.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, l),
a !== e && (n.result = a) === !1 && (n.preventDefault(), n.stopPropagation()));
return M.postDispatch && M.postDispatch.call(this, n), n.result;
}
},
handlers: function(n, t) {
var i, a, r, o, s = [], l = t.delegateCount, c = n.target;
if (l && c.nodeType && (!n.button || "click" !== n.type)) for (;c !== this; c = c.parentNode || this) if (c.disabled !== !0 || "click" !== n.type) {
for (a = [], i = 0; l > i; i++) o = t[i], r = o.selector + " ", a[r] === e && (a[r] = o.needsContext ? re(r, this).index(c) >= 0 : re.find(r, this, null, [ c ]).length),
a[r] && a.push(o);
a.length && s.push({
elem: c,
handlers: a
});
}
return l < t.length && s.push({
elem: this,
handlers: t.slice(l)
}), s;
},
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(n, e) {
return null == n.which && (n.which = null != e.charCode ? e.charCode : e.keyCode),
n;
}
},
mouseHooks: {
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(n, t) {
var i, a, r, o = t.button;
return null == n.pageX && null != t.clientX && (i = n.target.ownerDocument || O,
a = i.documentElement, r = i.body, n.pageX = t.clientX + (a && a.scrollLeft || r && r.scrollLeft || 0) - (a && a.clientLeft || r && r.clientLeft || 0),
n.pageY = t.clientY + (a && a.scrollTop || r && r.scrollTop || 0) - (a && a.clientTop || r && r.clientTop || 0)),
n.which || o === e || (n.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), n;
}
},
fix: function(n) {
if (n[re.expando]) return n;
var e, t, i, a = n.type, r = n, o = this.fixHooks[a];
for (o || (this.fixHooks[a] = o = ke.test(a) ? this.mouseHooks : Ge.test(a) ? this.keyHooks : {}),
i = o.props ? this.props.concat(o.props) : this.props, n = new re.Event(r), e = i.length; e--; ) t = i[e],
n[t] = r[t];
return n.target || (n.target = O), 3 === n.target.nodeType && (n.target = n.target.parentNode),
o.filter ? o.filter(n, r) : n;
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
return this !== l() && this.focus ? (this.focus(), !1) : void 0;
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === l() && this.blur ? (this.blur(), !1) : void 0;
},
delegateType: "focusout"
},
click: {
trigger: function() {
return "checkbox" === this.type && this.click && re.nodeName(this, "input") ? (this.click(),
!1) : void 0;
},
_default: function(n) {
return re.nodeName(n.target, "a");
}
},
beforeunload: {
postDispatch: function(n) {
n.result !== e && (n.originalEvent.returnValue = n.result);
}
}
},
simulate: function(n, e, t, i) {
var a = re.extend(new re.Event(), t, {
type: n,
isSimulated: !0,
originalEvent: {}
});
i ? re.event.trigger(a, null, e) : re.event.dispatch.call(e, a), a.isDefaultPrevented() && t.preventDefault();
}
}, re.removeEvent = function(n, e, t) {
n.removeEventListener && n.removeEventListener(e, t, !1);
}, re.Event = function(n, e) {
return this instanceof re.Event ? (n && n.type ? (this.originalEvent = n, this.type = n.type,
this.isDefaultPrevented = n.defaultPrevented || n.getPreventDefault && n.getPreventDefault() ? o : s) : this.type = n,
e && re.extend(this, e), this.timeStamp = n && n.timeStamp || re.now(), this[re.expando] = !0,
void 0) : new re.Event(n, e);
}, re.Event.prototype = {
isDefaultPrevented: s,
isPropagationStopped: s,
isImmediatePropagationStopped: s,
preventDefault: function() {
var n = this.originalEvent;
this.isDefaultPrevented = o, n && n.preventDefault && n.preventDefault();
},
stopPropagation: function() {
var n = this.originalEvent;
this.isPropagationStopped = o, n && n.stopPropagation && n.stopPropagation();
},
stopImmediatePropagation: function() {
this.isImmediatePropagationStopped = o, this.stopPropagation();
}
}, re.each({
mouseenter: "mouseover",
mouseleave: "mouseout"
}, function(n, e) {
re.event.special[n] = {
delegateType: e,
bindType: e,
handle: function(n) {
var t, i = this, a = n.relatedTarget, r = n.handleObj;
return (!a || a !== i && !re.contains(i, a)) && (n.type = r.origType, t = r.handler.apply(this, arguments),
n.type = e), t;
}
};
}), re.support.focusinBubbles || re.each({
focus: "focusin",
blur: "focusout"
}, function(n, e) {
var t = 0, i = function(n) {
re.event.simulate(e, n.target, re.event.fix(n), !0);
};
re.event.special[e] = {
setup: function() {
0 === t++ && O.addEventListener(n, i, !0);
},
teardown: function() {
0 === --t && O.removeEventListener(n, i, !0);
}
};
}), re.fn.extend({
on: function(n, t, i, a, r) {
var o, l;
if ("object" == typeof n) {
"string" != typeof t && (i = i || t, t = e);
for (l in n) this.on(l, t, i, n[l], r);
return this;
}
if (null == i && null == a ? (a = t, i = t = e) : null == a && ("string" == typeof t ? (a = i,
i = e) : (a = i, i = t, t = e)), a === !1) a = s; else if (!a) return this;
return 1 === r && (o = a, a = function(n) {
return re().off(n), o.apply(this, arguments);
}, a.guid = o.guid || (o.guid = re.guid++)), this.each(function() {
re.event.add(this, n, a, i, t);
});
},
one: function(n, e, t, i) {
return this.on(n, e, t, i, 1);
},
off: function(n, t, i) {
var a, r;
if (n && n.preventDefault && n.handleObj) return a = n.handleObj, re(n.delegateTarget).off(a.namespace ? a.origType + "." + a.namespace : a.origType, a.selector, a.handler),
this;
if ("object" == typeof n) {
for (r in n) this.off(r, t, n[r]);
return this;
}
return (t === !1 || "function" == typeof t) && (i = t, t = e), i === !1 && (i = s),
this.each(function() {
re.event.remove(this, n, i, t);
});
},
trigger: function(n, e) {
return this.each(function() {
re.event.trigger(n, e, this);
});
},
triggerHandler: function(n, e) {
var t = this[0];
return t ? re.event.trigger(n, e, t, !0) : void 0;
}
});
var Ae = /^.[^:#\[\.,]*$/, xe = /^(?:parents|prev(?:Until|All))/, Ee = re.expr.match.needsContext, Pe = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
re.fn.extend({
find: function(n) {
var e, t = [], i = this, a = i.length;
if ("string" != typeof n) return this.pushStack(re(n).filter(function() {
for (e = 0; a > e; e++) if (re.contains(i[e], this)) return !0;
}));
for (e = 0; a > e; e++) re.find(n, i[e], t);
return t = this.pushStack(a > 1 ? re.unique(t) : t), t.selector = this.selector ? this.selector + " " + n : n,
t;
},
has: function(n) {
var e = re(n, this), t = e.length;
return this.filter(function() {
for (var n = 0; t > n; n++) if (re.contains(this, e[n])) return !0;
});
},
not: function(n) {
return this.pushStack(M(this, n || [], !0));
},
filter: function(n) {
return this.pushStack(M(this, n || [], !1));
},
is: function(n) {
return !!M(this, "string" == typeof n && Ee.test(n) ? re(n) : n || [], !1).length;
},
closest: function(n, e) {
for (var t, i = 0, a = this.length, r = [], o = Ee.test(n) || "string" != typeof n ? re(n, e || this.context) : 0; a > i; i++) for (t = this[i]; t && t !== e; t = t.parentNode) if (t.nodeType < 11 && (o ? o.index(t) > -1 : 1 === t.nodeType && re.find.matchesSelector(t, n))) {
t = r.push(t);
break;
}
return this.pushStack(r.length > 1 ? re.unique(r) : r);
},
index: function(n) {
return n ? "string" == typeof n ? ee.call(re(n), this[0]) : ee.call(this, n.jquery ? n[0] : n) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
},
add: function(n, e) {
var t = "string" == typeof n ? re(n, e) : re.makeArray(n && n.nodeType ? [ n ] : n), i = re.merge(this.get(), t);
return this.pushStack(re.unique(i));
},
addBack: function(n) {
return this.add(null == n ? this.prevObject : this.prevObject.filter(n));
}
}), re.each({
parent: function(n) {
var e = n.parentNode;
return e && 11 !== e.nodeType ? e : null;
},
parents: function(n) {
return re.dir(n, "parentNode");
},
parentsUntil: function(n, e, t) {
return re.dir(n, "parentNode", t);
},
next: function(n) {
return c(n, "nextSibling");
},
prev: function(n) {
return c(n, "previousSibling");
},
nextAll: function(n) {
return re.dir(n, "nextSibling");
},
prevAll: function(n) {
return re.dir(n, "previousSibling");
},
nextUntil: function(n, e, t) {
return re.dir(n, "nextSibling", t);
},
prevUntil: function(n, e, t) {
return re.dir(n, "previousSibling", t);
},
siblings: function(n) {
return re.sibling((n.parentNode || {}).firstChild, n);
},
children: function(n) {
return re.sibling(n.firstChild);
},
contents: function(n) {
return n.contentDocument || re.merge([], n.childNodes);
}
}, function(n, e) {
re.fn[n] = function(t, i) {
var a = re.map(this, e, t);
return "Until" !== n.slice(-5) && (i = t), i && "string" == typeof i && (a = re.filter(i, a)),
this.length > 1 && (Pe[n] || re.unique(a), xe.test(n) && a.reverse()), this.pushStack(a);
};
}), re.extend({
filter: function(n, e, t) {
var i = e[0];
return t && (n = ":not(" + n + ")"), 1 === e.length && 1 === i.nodeType ? re.find.matchesSelector(i, n) ? [ i ] : [] : re.find.matches(n, re.grep(e, function(n) {
return 1 === n.nodeType;
}));
},
dir: function(n, t, i) {
for (var a = [], r = i !== e; (n = n[t]) && 9 !== n.nodeType; ) if (1 === n.nodeType) {
if (r && re(n).is(i)) break;
a.push(n);
}
return a;
},
sibling: function(n, e) {
for (var t = []; n; n = n.nextSibling) 1 === n.nodeType && n !== e && t.push(n);
return t;
}
});
var Te = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, Fe = /<([\w:]+)/, Be = /<|&#?\w+;/, Ye = /<(?:script|style|link)/i, Le = /^(?:checkbox|radio)$/i, Ne = /checked\s*(?:[^=]|=\s*.checked.)/i, ze = /^$|\/(?:java|ecma)script/i, Ie = /^true\/(.*)/, _e = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, Ue = {
option: [ 1, "<select multiple='multiple'>", "</select>" ],
thead: [ 1, "<table>", "</table>" ],
col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
tr: [ 2, "<table><tbody>", "</tbody></table>" ],
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
_default: [ 0, "", "" ]
};
Ue.optgroup = Ue.option, Ue.tbody = Ue.tfoot = Ue.colgroup = Ue.caption = Ue.thead,
Ue.th = Ue.td, re.fn.extend({
text: function(n) {
return re.access(this, function(n) {
return n === e ? re.text(this) : this.empty().append((this[0] && this[0].ownerDocument || O).createTextNode(n));
}, null, n, arguments.length);
},
append: function() {
return this.domManip(arguments, function(n) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var e = u(this, n);
e.appendChild(n);
}
});
},
prepend: function() {
return this.domManip(arguments, function(n) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var e = u(this, n);
e.insertBefore(n, e.firstChild);
}
});
},
before: function() {
return this.domManip(arguments, function(n) {
this.parentNode && this.parentNode.insertBefore(n, this);
});
},
after: function() {
return this.domManip(arguments, function(n) {
this.parentNode && this.parentNode.insertBefore(n, this.nextSibling);
});
},
remove: function(n, e) {
for (var t, i = n ? re.filter(n, this) : this, a = 0; null != (t = i[a]); a++) e || 1 !== t.nodeType || re.cleanData(m(t)),
t.parentNode && (e && re.contains(t.ownerDocument, t) && S(m(t, "script")), t.parentNode.removeChild(t));
return this;
},
empty: function() {
for (var n, e = 0; null != (n = this[e]); e++) 1 === n.nodeType && (re.cleanData(m(n, !1)),
n.textContent = "");
return this;
},
clone: function(n, e) {
return n = null == n ? !1 : n, e = null == e ? n : e, this.map(function() {
return re.clone(this, n, e);
});
},
html: function(n) {
return re.access(this, function(n) {
var t = this[0] || {}, i = 0, a = this.length;
if (n === e && 1 === t.nodeType) return t.innerHTML;
if ("string" == typeof n && !Ye.test(n) && !Ue[(Fe.exec(n) || [ "", "" ])[1].toLowerCase()]) {
n = n.replace(Te, "<$1></$2>");
try {
for (;a > i; i++) t = this[i] || {}, 1 === t.nodeType && (re.cleanData(m(t, !1)),
t.innerHTML = n);
t = 0;
} catch (r) {}
}
t && this.empty().append(n);
}, null, n, arguments.length);
},
replaceWith: function() {
var n = re.map(this, function(n) {
return [ n.nextSibling, n.parentNode ];
}), e = 0;
return this.domManip(arguments, function(t) {
var i = n[e++], a = n[e++];
a && (i && i.parentNode !== a && (i = this.nextSibling), re(this).remove(), a.insertBefore(t, i));
}, !0), e ? this : this.remove();
},
detach: function(n) {
return this.remove(n, !0);
},
domManip: function(n, e, t) {
n = X.apply([], n);
var i, a, r, o, s, l, c = 0, M = this.length, u = this, S = M - 1, p = n[0], g = re.isFunction(p);
if (g || !(1 >= M || "string" != typeof p || re.support.checkClone) && Ne.test(p)) return this.each(function(i) {
var a = u.eq(i);
g && (n[0] = p.call(this, i, a.html())), a.domManip(n, e, t);
});
if (M && (i = re.buildFragment(n, this[0].ownerDocument, !1, !t && this), a = i.firstChild,
1 === i.childNodes.length && (i = a), a)) {
for (r = re.map(m(i, "script"), d), o = r.length; M > c; c++) s = i, c !== S && (s = re.clone(s, !0, !0),
o && re.merge(r, m(s, "script"))), e.call(this[c], s, c);
if (o) for (l = r[r.length - 1].ownerDocument, re.map(r, h), c = 0; o > c; c++) s = r[c],
ze.test(s.type || "") && !me.access(s, "globalEval") && re.contains(l, s) && (s.src ? re._evalUrl(s.src) : re.globalEval(s.textContent.replace(_e, "")));
}
return this;
}
}), re.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(n, e) {
re.fn[n] = function(n) {
for (var t, i = [], a = re(n), r = a.length - 1, o = 0; r >= o; o++) t = o === r ? this : this.clone(!0),
re(a[o])[e](t), Q.apply(i, t.get());
return this.pushStack(i);
};
}), re.extend({
clone: function(n, e, t) {
var i, a, r, o, s = n.cloneNode(!0), l = re.contains(n.ownerDocument, n);
if (!(re.support.noCloneChecked || 1 !== n.nodeType && 11 !== n.nodeType || re.isXMLDoc(n))) for (o = m(s),
r = m(n), i = 0, a = r.length; a > i; i++) g(r[i], o[i]);
if (e) if (t) for (r = r || m(n), o = o || m(s), i = 0, a = r.length; a > i; i++) p(r[i], o[i]); else p(n, s);
return o = m(s, "script"), o.length > 0 && S(o, !l && m(n, "script")), s;
},
buildFragment: function(n, e, t, i) {
for (var a, r, o, s, l, c, M = 0, u = n.length, d = e.createDocumentFragment(), h = []; u > M; M++) if (a = n[M],
a || 0 === a) if ("object" === re.type(a)) re.merge(h, a.nodeType ? [ a ] : a); else if (Be.test(a)) {
for (r = r || d.appendChild(e.createElement("div")), o = (Fe.exec(a) || [ "", "" ])[1].toLowerCase(),
s = Ue[o] || Ue._default, r.innerHTML = s[1] + a.replace(Te, "<$1></$2>") + s[2],
c = s[0]; c--; ) r = r.lastChild;
re.merge(h, r.childNodes), r = d.firstChild, r.textContent = "";
} else h.push(e.createTextNode(a));
for (d.textContent = "", M = 0; a = h[M++]; ) if ((!i || -1 === re.inArray(a, i)) && (l = re.contains(a.ownerDocument, a),
r = m(d.appendChild(a), "script"), l && S(r), t)) for (c = 0; a = r[c++]; ) ze.test(a.type || "") && t.push(a);
return d;
},
cleanData: function(n) {
for (var t, i, r, o, s, l, c = re.event.special, M = 0; (i = n[M]) !== e; M++) {
if (a.accepts(i) && (s = i[me.expando], s && (t = me.cache[s]))) {
if (r = Object.keys(t.events || {}), r.length) for (l = 0; (o = r[l]) !== e; l++) c[o] ? re.event.remove(i, o) : re.removeEvent(i, o, t.handle);
me.cache[s] && delete me.cache[s];
}
delete pe.cache[i[pe.expando]];
}
},
_evalUrl: function(n) {
return re.ajax({
url: n,
type: "GET",
dataType: "script",
async: !1,
global: !1,
"throws": !0
});
}
}), re.fn.extend({
wrapAll: function(n) {
var e;
return re.isFunction(n) ? this.each(function(e) {
re(this).wrapAll(n.call(this, e));
}) : (this[0] && (e = re(n, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && e.insertBefore(this[0]),
e.map(function() {
for (var n = this; n.firstElementChild; ) n = n.firstElementChild;
return n;
}).append(this)), this);
},
wrapInner: function(n) {
return re.isFunction(n) ? this.each(function(e) {
re(this).wrapInner(n.call(this, e));
}) : this.each(function() {
var e = re(this), t = e.contents();
t.length ? t.wrapAll(n) : e.append(n);
});
},
wrap: function(n) {
var e = re.isFunction(n);
return this.each(function(t) {
re(this).wrapAll(e ? n.call(this, t) : n);
});
},
unwrap: function() {
return this.parent().each(function() {
re.nodeName(this, "body") || re(this).replaceWith(this.childNodes);
}).end();
}
});
var $e, je, Ze = /^(none|table(?!-c[ea]).+)/, Oe = /^margin/, He = new RegExp("^(" + oe + ")(.*)$", "i"), qe = new RegExp("^(" + oe + ")(?!px)[a-z%]+$", "i"), Je = new RegExp("^([+-])=(" + oe + ")", "i"), We = {
BODY: "block"
}, Ve = {
position: "absolute",
visibility: "hidden",
display: "block"
}, Ke = {
letterSpacing: 0,
fontWeight: 400
}, Xe = [ "Top", "Right", "Bottom", "Left" ], Qe = [ "Webkit", "O", "Moz", "ms" ];
re.fn.extend({
css: function(n, t) {
return re.access(this, function(n, t, i) {
var a, r, o = {}, s = 0;
if (re.isArray(t)) {
for (a = y(n), r = t.length; r > s; s++) o[t[s]] = re.css(n, t[s], !1, a);
return o;
}
return i !== e ? re.style(n, t, i) : re.css(n, t);
}, n, t, arguments.length > 1);
},
show: function() {
return v(this, !0);
},
hide: function() {
return v(this);
},
toggle: function(n) {
return "boolean" == typeof n ? n ? this.show() : this.hide() : this.each(function() {
b(this) ? re(this).show() : re(this).hide();
});
}
}), re.extend({
cssHooks: {
opacity: {
get: function(n, e) {
if (e) {
var t = $e(n, "opacity");
return "" === t ? "1" : t;
}
}
}
},
cssNumber: {
columnCount: !0,
fillOpacity: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": "cssFloat"
},
style: function(n, t, i, a) {
if (n && 3 !== n.nodeType && 8 !== n.nodeType && n.style) {
var r, o, s, l = re.camelCase(t), c = n.style;
return t = re.cssProps[l] || (re.cssProps[l] = f(c, l)), s = re.cssHooks[t] || re.cssHooks[l],
i === e ? s && "get" in s && (r = s.get(n, !1, a)) !== e ? r : c[t] : (o = typeof i,
"string" === o && (r = Je.exec(i)) && (i = (r[1] + 1) * r[2] + parseFloat(re.css(n, t)),
o = "number"), null == i || "number" === o && isNaN(i) || ("number" !== o || re.cssNumber[l] || (i += "px"),
re.support.clearCloneStyle || "" !== i || 0 !== t.indexOf("background") || (c[t] = "inherit"),
s && "set" in s && (i = s.set(n, i, a)) === e || (c[t] = i)), void 0);
}
},
css: function(n, t, i, a) {
var r, o, s, l = re.camelCase(t);
return t = re.cssProps[l] || (re.cssProps[l] = f(n.style, l)), s = re.cssHooks[t] || re.cssHooks[l],
s && "get" in s && (r = s.get(n, !0, i)), r === e && (r = $e(n, t, a)), "normal" === r && t in Ke && (r = Ke[t]),
"" === i || i ? (o = parseFloat(r), i === !0 || re.isNumeric(o) ? o || 0 : r) : r;
}
}), $e = function(n, t, i) {
var a, r, o, s = i || y(n), l = s ? s.getPropertyValue(t) || s[t] : e, c = n.style;
return s && ("" !== l || re.contains(n.ownerDocument, n) || (l = re.style(n, t)),
qe.test(l) && Oe.test(t) && (a = c.width, r = c.minWidth, o = c.maxWidth, c.minWidth = c.maxWidth = c.width = l,
l = s.width, c.width = a, c.minWidth = r, c.maxWidth = o)), l;
}, re.each([ "height", "width" ], function(n, e) {
re.cssHooks[e] = {
get: function(n, t, i) {
return t ? 0 === n.offsetWidth && Ze.test(re.css(n, "display")) ? re.swap(n, Ve, function() {
return G(n, e, i);
}) : G(n, e, i) : void 0;
},
set: function(n, t, i) {
var a = i && y(n);
return D(n, t, i ? w(n, e, i, re.support.boxSizing && "border-box" === re.css(n, "boxSizing", !1, a), a) : 0);
}
};
}), re(function() {
re.support.reliableMarginRight || (re.cssHooks.marginRight = {
get: function(n, e) {
return e ? re.swap(n, {
display: "inline-block"
}, $e, [ n, "marginRight" ]) : void 0;
}
}), !re.support.pixelPosition && re.fn.position && re.each([ "top", "left" ], function(n, e) {
re.cssHooks[e] = {
get: function(n, t) {
return t ? (t = $e(n, e), qe.test(t) ? re(n).position()[e] + "px" : t) : void 0;
}
};
});
}), re.expr && re.expr.filters && (re.expr.filters.hidden = function(n) {
return n.offsetWidth <= 0 && n.offsetHeight <= 0;
}, re.expr.filters.visible = function(n) {
return !re.expr.filters.hidden(n);
}), re.each({
margin: "",
padding: "",
border: "Width"
}, function(n, e) {
re.cssHooks[n + e] = {
expand: function(t) {
for (var i = 0, a = {}, r = "string" == typeof t ? t.split(" ") : [ t ]; 4 > i; i++) a[n + Xe[i] + e] = r[i] || r[i - 2] || r[0];
return a;
}
}, Oe.test(n) || (re.cssHooks[n + e].set = D);
});
var nt = /%20/g, et = /\[\]$/, tt = /\r?\n/g, it = /^(?:submit|button|image|reset|file)$/i, at = /^(?:input|select|textarea|keygen)/i;
re.fn.extend({
serialize: function() {
return re.param(this.serializeArray());
},
serializeArray: function() {
return this.map(function() {
var n = re.prop(this, "elements");
return n ? re.makeArray(n) : this;
}).filter(function() {
var n = this.type;
return this.name && !re(this).is(":disabled") && at.test(this.nodeName) && !it.test(n) && (this.checked || !Le.test(n));
}).map(function(n, e) {
var t = re(this).val();
return null == t ? null : re.isArray(t) ? re.map(t, function(n) {
return {
name: e.name,
value: n.replace(tt, "\r\n")
};
}) : {
name: e.name,
value: t.replace(tt, "\r\n")
};
}).get();
}
}), re.param = function(n, t) {
var i, a = [], r = function(n, e) {
e = re.isFunction(e) ? e() : null == e ? "" : e, a[a.length] = encodeURIComponent(n) + "=" + encodeURIComponent(e);
};
if (t === e && (t = re.ajaxSettings && re.ajaxSettings.traditional), re.isArray(n) || n.jquery && !re.isPlainObject(n)) re.each(n, function() {
r(this.name, this.value);
}); else for (i in n) C(i, n[i], t, r);
return a.join("&").replace(nt, "+");
}, re.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(n, e) {
re.fn[e] = function(n, t) {
return arguments.length > 0 ? this.on(e, null, n, t) : this.trigger(e);
};
}), re.fn.extend({
hover: function(n, e) {
return this.mouseenter(n).mouseleave(e || n);
},
bind: function(n, e, t) {
return this.on(n, null, e, t);
},
unbind: function(n, e) {
return this.off(n, null, e);
},
delegate: function(n, e, t, i) {
return this.on(e, n, t, i);
},
undelegate: function(n, e, t) {
return 1 === arguments.length ? this.off(n, "**") : this.off(e, n || "**", t);
}
});
var rt, ot, st = re.now(), lt = /\?/, ct = /#.*$/, Mt = /([?&])_=[^&]*/, ut = /^(.*?):[ \t]*([^\r\n]*)$/gm, dt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, ht = /^(?:GET|HEAD)$/, St = /^\/\//, pt = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, mt = re.fn.load, gt = {}, ft = {}, bt = "*/".concat("*");
try {
ot = Z.href;
} catch (yt) {
ot = O.createElement("a"), ot.href = "", ot = ot.href;
}
rt = pt.exec(ot.toLowerCase()) || [], re.fn.load = function(n, t, i) {
if ("string" != typeof n && mt) return mt.apply(this, arguments);
var a, r, o, s = this, l = n.indexOf(" ");
return l >= 0 && (a = n.slice(l), n = n.slice(0, l)), re.isFunction(t) ? (i = t,
t = e) : t && "object" == typeof t && (r = "POST"), s.length > 0 && re.ajax({
url: n,
type: r,
dataType: "html",
data: t
}).done(function(n) {
o = arguments, s.html(a ? re("<div>").append(re.parseHTML(n)).find(a) : n);
}).complete(i && function(n, e) {
s.each(i, o || [ n.responseText, e, n ]);
}), this;
}, re.each([ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function(n, e) {
re.fn[e] = function(n) {
return this.on(e, n);
};
}), re.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: ot,
type: "GET",
isLocal: dt.test(rt[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": bt,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /xml/,
html: /html/,
json: /json/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": re.parseJSON,
"text xml": re.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(n, e) {
return e ? E(E(n, re.ajaxSettings), e) : E(re.ajaxSettings, n);
},
ajaxPrefilter: A(gt),
ajaxTransport: A(ft),
ajax: function(n, t) {
function i(n, t, i, s) {
var c, u, f, b, v, w = t;
2 !== y && (y = 2, l && clearTimeout(l), a = e, o = s || "", D.readyState = n > 0 ? 4 : 0,
c = n >= 200 && 300 > n || 304 === n, i && (b = P(d, D, i)), b = T(d, b, D, c),
c ? (d.ifModified && (v = D.getResponseHeader("Last-Modified"), v && (re.lastModified[r] = v),
v = D.getResponseHeader("etag"), v && (re.etag[r] = v)), 204 === n || "HEAD" === d.type ? w = "nocontent" : 304 === n ? w = "notmodified" : (w = b.state,
u = b.data, f = b.error, c = !f)) : (f = w, (n || !w) && (w = "error", 0 > n && (n = 0))),
D.status = n, D.statusText = (t || w) + "", c ? p.resolveWith(h, [ u, w, D ]) : p.rejectWith(h, [ D, w, f ]),
D.statusCode(g), g = e, M && S.trigger(c ? "ajaxSuccess" : "ajaxError", [ D, d, c ? u : f ]),
m.fireWith(h, [ D, w ]), M && (S.trigger("ajaxComplete", [ D, d ]), --re.active || re.event.trigger("ajaxStop")));
}
"object" == typeof n && (t = n, n = e), t = t || {};
var a, r, o, s, l, c, M, u, d = re.ajaxSetup({}, t), h = d.context || d, S = d.context && (h.nodeType || h.jquery) ? re(h) : re.event, p = re.Deferred(), m = re.Callbacks("once memory"), g = d.statusCode || {}, f = {}, b = {}, y = 0, v = "canceled", D = {
readyState: 0,
getResponseHeader: function(n) {
var e;
if (2 === y) {
if (!s) for (s = {}; e = ut.exec(o); ) s[e[1].toLowerCase()] = e[2];
e = s[n.toLowerCase()];
}
return null == e ? null : e;
},
getAllResponseHeaders: function() {
return 2 === y ? o : null;
},
setRequestHeader: function(n, e) {
var t = n.toLowerCase();
return y || (n = b[t] = b[t] || n, f[n] = e), this;
},
overrideMimeType: function(n) {
return y || (d.mimeType = n), this;
},
statusCode: function(n) {
var e;
if (n) if (2 > y) for (e in n) g[e] = [ g[e], n[e] ]; else D.always(n[D.status]);
return this;
},
abort: function(n) {
var e = n || v;
return a && a.abort(e), i(0, e), this;
}
};
if (p.promise(D).complete = m.add, D.success = D.done, D.error = D.fail, d.url = ((n || d.url || ot) + "").replace(ct, "").replace(St, rt[1] + "//"),
d.type = t.method || t.type || d.method || d.type, d.dataTypes = re.trim(d.dataType || "*").toLowerCase().match(se) || [ "" ],
null == d.crossDomain && (c = pt.exec(d.url.toLowerCase()), d.crossDomain = !(!c || c[1] === rt[1] && c[2] === rt[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (rt[3] || ("http:" === rt[1] ? "80" : "443")))),
d.data && d.processData && "string" != typeof d.data && (d.data = re.param(d.data, d.traditional)),
x(gt, d, t, D), 2 === y) return D;
M = d.global, M && 0 === re.active++ && re.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(),
d.hasContent = !ht.test(d.type), r = d.url, d.hasContent || (d.data && (r = d.url += (lt.test(r) ? "&" : "?") + d.data,
delete d.data), d.cache === !1 && (d.url = Mt.test(r) ? r.replace(Mt, "$1_=" + st++) : r + (lt.test(r) ? "&" : "?") + "_=" + st++)),
d.ifModified && (re.lastModified[r] && D.setRequestHeader("If-Modified-Since", re.lastModified[r]),
re.etag[r] && D.setRequestHeader("If-None-Match", re.etag[r])), (d.data && d.hasContent && d.contentType !== !1 || t.contentType) && D.setRequestHeader("Content-Type", d.contentType),
D.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + bt + "; q=0.01" : "") : d.accepts["*"]);
for (u in d.headers) D.setRequestHeader(u, d.headers[u]);
if (d.beforeSend && (d.beforeSend.call(h, D, d) === !1 || 2 === y)) return D.abort();
v = "abort";
for (u in {
success: 1,
error: 1,
complete: 1
}) D[u](d[u]);
if (a = x(ft, d, t, D)) {
D.readyState = 1, M && S.trigger("ajaxSend", [ D, d ]), d.async && d.timeout > 0 && (l = setTimeout(function() {
D.abort("timeout");
}, d.timeout));
try {
y = 1, a.send(f, i);
} catch (w) {
if (!(2 > y)) throw w;
i(-1, w);
}
} else i(-1, "No Transport");
return D;
},
getJSON: function(n, e, t) {
return re.get(n, e, t, "json");
},
getScript: function(n, t) {
return re.get(n, e, t, "script");
}
}), re.each([ "get", "post" ], function(n, t) {
re[t] = function(n, i, a, r) {
return re.isFunction(i) && (r = r || a, a = i, i = e), re.ajax({
url: n,
type: t,
dataType: r,
data: i,
success: a
});
};
}), re.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /(?:java|ecma)script/
},
converters: {
"text script": function(n) {
return re.globalEval(n), n;
}
}
}), re.ajaxPrefilter("script", function(n) {
n.cache === e && (n.cache = !1), n.crossDomain && (n.type = "GET");
}), re.ajaxTransport("script", function(n) {
if (n.crossDomain) {
var e, t;
return {
send: function(i, a) {
e = re("<script>").prop({
async: !0,
charset: n.scriptCharset,
src: n.url
}).on("load error", t = function(n) {
e.remove(), t = null, n && a("error" === n.type ? 404 : 200, n.type);
}), O.head.appendChild(e[0]);
},
abort: function() {
t && t();
}
};
}
});
var vt = [], Dt = /(=)\?(?=&|$)|\?\?/;
re.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var n = vt.pop() || re.expando + "_" + st++;
return this[n] = !0, n;
}
}), re.ajaxPrefilter("json jsonp", function(t, i, a) {
var r, o, s, l = t.jsonp !== !1 && (Dt.test(t.url) ? "url" : "string" == typeof t.data && !(t.contentType || "").indexOf("application/x-www-form-urlencoded") && Dt.test(t.data) && "data");
return l || "jsonp" === t.dataTypes[0] ? (r = t.jsonpCallback = re.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback,
l ? t[l] = t[l].replace(Dt, "$1" + r) : t.jsonp !== !1 && (t.url += (lt.test(t.url) ? "&" : "?") + t.jsonp + "=" + r),
t.converters["script json"] = function() {
return s || re.error(r + " was not called"), s[0];
}, t.dataTypes[0] = "json", o = n[r], n[r] = function() {
s = arguments;
}, a.always(function() {
n[r] = o, t[r] && (t.jsonpCallback = i.jsonpCallback, vt.push(r)), s && re.isFunction(o) && o(s[0]),
s = o = e;
}), "script") : void 0;
}), re.ajaxSettings.xhr = function() {
try {
return new XMLHttpRequest();
} catch (n) {}
};
var wt = re.ajaxSettings.xhr(), Gt = {
0: 200,
1223: 204
}, kt = 0, Rt = {};
n.ActiveXObject && re(n).on("unload", function() {
for (var n in Rt) Rt[n]();
Rt = e;
}), re.support.cors = !!wt && "withCredentials" in wt, re.support.ajax = wt = !!wt,
re.ajaxTransport(function(n) {
var t;
return re.support.cors || wt && !n.crossDomain ? {
send: function(i, a) {
var r, o, s = n.xhr();
if (s.open(n.type, n.url, n.async, n.username, n.password), n.xhrFields) for (r in n.xhrFields) s[r] = n.xhrFields[r];
n.mimeType && s.overrideMimeType && s.overrideMimeType(n.mimeType), n.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest");
for (r in i) s.setRequestHeader(r, i[r]);
t = function(n) {
return function() {
t && (delete Rt[o], t = s.onload = s.onerror = null, "abort" === n ? s.abort() : "error" === n ? a(s.status || 404, s.statusText) : a(Gt[s.status] || s.status, s.statusText, "string" == typeof s.responseText ? {
text: s.responseText
} : e, s.getAllResponseHeaders()));
};
}, s.onload = t(), s.onerror = t("error"), t = Rt[o = kt++] = t("abort"), s.send(n.hasContent && n.data || null);
},
abort: function() {
t && t();
}
} : void 0;
});
var Ct, At, xt = /^(?:toggle|show|hide)$/, Et = new RegExp("^(?:([+-])=|)(" + oe + ")([a-z%]*)$", "i"), Pt = /queueHooks$/, Tt = [ N ], Ft = {
"*": [ function(n, e) {
var t = this.createTween(n, e), i = t.cur(), a = Et.exec(e), r = a && a[3] || (re.cssNumber[n] ? "" : "px"), o = (re.cssNumber[n] || "px" !== r && +i) && Et.exec(re.css(t.elem, n)), s = 1, l = 20;
if (o && o[3] !== r) {
r = r || o[3], a = a || [], o = +i || 1;
do s = s || ".5", o /= s, re.style(t.elem, n, o + r); while (s !== (s = t.cur() / i) && 1 !== s && --l);
}
return a && (o = t.start = +o || +i || 0, t.unit = r, t.end = a[1] ? o + (a[1] + 1) * a[2] : +a[2]),
t;
} ]
};
re.Animation = re.extend(Y, {
tweener: function(n, e) {
re.isFunction(n) ? (e = n, n = [ "*" ]) : n = n.split(" ");
for (var t, i = 0, a = n.length; a > i; i++) t = n[i], Ft[t] = Ft[t] || [], Ft[t].unshift(e);
},
prefilter: function(n, e) {
e ? Tt.unshift(n) : Tt.push(n);
}
}), re.Tween = z, z.prototype = {
constructor: z,
init: function(n, e, t, i, a, r) {
this.elem = n, this.prop = t, this.easing = a || "swing", this.options = e, this.start = this.now = this.cur(),
this.end = i, this.unit = r || (re.cssNumber[t] ? "" : "px");
},
cur: function() {
var n = z.propHooks[this.prop];
return n && n.get ? n.get(this) : z.propHooks._default.get(this);
},
run: function(n) {
var e, t = z.propHooks[this.prop];
return this.pos = e = this.options.duration ? re.easing[this.easing](n, this.options.duration * n, 0, 1, this.options.duration) : n,
this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this),
t && t.set ? t.set(this) : z.propHooks._default.set(this), this;
}
}, z.prototype.init.prototype = z.prototype, z.propHooks = {
_default: {
get: function(n) {
var e;
return null == n.elem[n.prop] || n.elem.style && null != n.elem.style[n.prop] ? (e = re.css(n.elem, n.prop, ""),
e && "auto" !== e ? e : 0) : n.elem[n.prop];
},
set: function(n) {
re.fx.step[n.prop] ? re.fx.step[n.prop](n) : n.elem.style && (null != n.elem.style[re.cssProps[n.prop]] || re.cssHooks[n.prop]) ? re.style(n.elem, n.prop, n.now + n.unit) : n.elem[n.prop] = n.now;
}
}
}, z.propHooks.scrollTop = z.propHooks.scrollLeft = {
set: function(n) {
n.elem.nodeType && n.elem.parentNode && (n.elem[n.prop] = n.now);
}
}, re.each([ "toggle", "show", "hide" ], function(n, e) {
var t = re.fn[e];
re.fn[e] = function(n, i, a) {
return null == n || "boolean" == typeof n ? t.apply(this, arguments) : this.animate(I(e, !0), n, i, a);
};
}), re.fn.extend({
fadeTo: function(n, e, t, i) {
return this.filter(b).css("opacity", 0).show().end().animate({
opacity: e
}, n, t, i);
},
animate: function(n, e, t, i) {
var a = re.isEmptyObject(n), r = re.speed(e, t, i), o = function() {
var e = Y(this, re.extend({}, n), r);
(a || me.get(this, "finish")) && e.stop(!0);
};
return o.finish = o, a || r.queue === !1 ? this.each(o) : this.queue(r.queue, o);
},
stop: function(n, t, i) {
var a = function(n) {
var e = n.stop;
delete n.stop, e(i);
};
return "string" != typeof n && (i = t, t = n, n = e), t && n !== !1 && this.queue(n || "fx", []),
this.each(function() {
var e = !0, t = null != n && n + "queueHooks", r = re.timers, o = me.get(this);
if (t) o[t] && o[t].stop && a(o[t]); else for (t in o) o[t] && o[t].stop && Pt.test(t) && a(o[t]);
for (t = r.length; t--; ) r[t].elem !== this || null != n && r[t].queue !== n || (r[t].anim.stop(i),
e = !1, r.splice(t, 1));
(e || !i) && re.dequeue(this, n);
});
},
finish: function(n) {
return n !== !1 && (n = n || "fx"), this.each(function() {
var e, t = me.get(this), i = t[n + "queue"], a = t[n + "queueHooks"], r = re.timers, o = i ? i.length : 0;
for (t.finish = !0, re.queue(this, n, []), a && a.stop && a.stop.call(this, !0),
e = r.length; e--; ) r[e].elem === this && r[e].queue === n && (r[e].anim.stop(!0),
r.splice(e, 1));
for (e = 0; o > e; e++) i[e] && i[e].finish && i[e].finish.call(this);
delete t.finish;
});
}
}), re.each({
slideDown: I("show"),
slideUp: I("hide"),
slideToggle: I("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(n, e) {
re.fn[n] = function(n, t, i) {
return this.animate(e, n, t, i);
};
}), re.speed = function(n, e, t) {
var i = n && "object" == typeof n ? re.extend({}, n) : {
complete: t || !t && e || re.isFunction(n) && n,
duration: n,
easing: t && e || e && !re.isFunction(e) && e
};
return i.duration = re.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in re.fx.speeds ? re.fx.speeds[i.duration] : re.fx.speeds._default,
(null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function() {
re.isFunction(i.old) && i.old.call(this), i.queue && re.dequeue(this, i.queue);
}, i;
}, re.easing = {
linear: function(n) {
return n;
},
swing: function(n) {
return .5 - Math.cos(n * Math.PI) / 2;
}
}, re.timers = [], re.fx = z.prototype.init, re.fx.tick = function() {
var n, t = re.timers, i = 0;
for (Ct = re.now(); i < t.length; i++) n = t[i], n() || t[i] !== n || t.splice(i--, 1);
t.length || re.fx.stop(), Ct = e;
}, re.fx.timer = function(n) {
n() && re.timers.push(n) && re.fx.start();
}, re.fx.interval = 13, re.fx.start = function() {
At || (At = setInterval(re.fx.tick, re.fx.interval));
}, re.fx.stop = function() {
clearInterval(At), At = null;
}, re.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, re.fx.step = {}, re.expr && re.expr.filters && (re.expr.filters.animated = function(n) {
return re.grep(re.timers, function(e) {
return n === e.elem;
}).length;
}), re.fn.offset = function(n) {
if (arguments.length) return n === e ? this : this.each(function(e) {
re.offset.setOffset(this, n, e);
});
var t, i, a = this[0], r = {
top: 0,
left: 0
}, o = a && a.ownerDocument;
if (o) return t = o.documentElement, re.contains(t, a) ? (typeof a.getBoundingClientRect !== j && (r = a.getBoundingClientRect()),
i = _(o), {
top: r.top + i.pageYOffset - t.clientTop,
left: r.left + i.pageXOffset - t.clientLeft
}) : r;
}, re.offset = {
setOffset: function(n, e, t) {
var i, a, r, o, s, l, c, M = re.css(n, "position"), u = re(n), d = {};
"static" === M && (n.style.position = "relative"), s = u.offset(), r = re.css(n, "top"),
l = re.css(n, "left"), c = ("absolute" === M || "fixed" === M) && (r + l).indexOf("auto") > -1,
c ? (i = u.position(), o = i.top, a = i.left) : (o = parseFloat(r) || 0, a = parseFloat(l) || 0),
re.isFunction(e) && (e = e.call(n, t, s)), null != e.top && (d.top = e.top - s.top + o),
null != e.left && (d.left = e.left - s.left + a), "using" in e ? e.using.call(n, d) : u.css(d);
}
}, re.fn.extend({
position: function() {
if (this[0]) {
var n, e, t = this[0], i = {
top: 0,
left: 0
};
return "fixed" === re.css(t, "position") ? e = t.getBoundingClientRect() : (n = this.offsetParent(),
e = this.offset(), re.nodeName(n[0], "html") || (i = n.offset()), i.top += re.css(n[0], "borderTopWidth", !0),
i.left += re.css(n[0], "borderLeftWidth", !0)), {
top: e.top - i.top - re.css(t, "marginTop", !0),
left: e.left - i.left - re.css(t, "marginLeft", !0)
};
}
},
offsetParent: function() {
return this.map(function() {
for (var n = this.offsetParent || H; n && !re.nodeName(n, "html") && "static" === re.css(n, "position"); ) n = n.offsetParent;
return n || H;
});
}
}), re.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(t, i) {
var a = "pageYOffset" === i;
re.fn[t] = function(r) {
return re.access(this, function(t, r, o) {
var s = _(t);
return o === e ? s ? s[i] : t[r] : (s ? s.scrollTo(a ? n.pageXOffset : o, a ? o : n.pageYOffset) : t[r] = o,
void 0);
}, t, r, arguments.length, null);
};
}), re.each({
Height: "height",
Width: "width"
}, function(n, t) {
re.each({
padding: "inner" + n,
content: t,
"": "outer" + n
}, function(i, a) {
re.fn[a] = function(a, r) {
var o = arguments.length && (i || "boolean" != typeof a), s = i || (a === !0 || r === !0 ? "margin" : "border");
return re.access(this, function(t, i, a) {
var r;
return re.isWindow(t) ? t.document.documentElement["client" + n] : 9 === t.nodeType ? (r = t.documentElement,
Math.max(t.body["scroll" + n], r["scroll" + n], t.body["offset" + n], r["offset" + n], r["client" + n])) : a === e ? re.css(t, i, s) : re.style(t, i, a, s);
}, t, o ? a : e, o, null);
};
});
}), re.fn.size = function() {
return this.length;
}, re.fn.andSelf = re.fn.addBack, "object" == typeof module && module && "object" == typeof module.exports ? module.exports = re : "function" == typeof define && define.amd && define("jquery", [], function() {
return re;
}), "object" == typeof n && "object" == typeof n.document && (n.jQuery = n.$ = re);
})(window), function() {
var n = this, e = n._, t = {}, i = Array.prototype, a = Object.prototype, r = Function.prototype, o = i.push, s = i.slice, l = i.concat, c = a.toString, M = a.hasOwnProperty, u = i.forEach, d = i.map, h = i.reduce, S = i.reduceRight, p = i.filter, m = i.every, g = i.some, f = i.indexOf, b = i.lastIndexOf, y = Array.isArray, v = Object.keys, D = r.bind, w = function(n) {
return n instanceof w ? n : this instanceof w ? (this._wrapped = n, void 0) : new w(n);
};
"undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = w),
exports._ = w) : n._ = w, w.VERSION = "1.5.1";
var G = w.each = w.forEach = function(n, e, i) {
if (null != n) if (u && n.forEach === u) n.forEach(e, i); else if (n.length === +n.length) {
for (var a = 0, r = n.length; r > a; a++) if (e.call(i, n[a], a, n) === t) return;
} else for (var o in n) if (w.has(n, o) && e.call(i, n[o], o, n) === t) return;
};
w.map = w.collect = function(n, e, t) {
var i = [];
return null == n ? i : d && n.map === d ? n.map(e, t) : (G(n, function(n, a, r) {
i.push(e.call(t, n, a, r));
}), i);
};
var k = "Reduce of empty array with no initial value";
w.reduce = w.foldl = w.inject = function(n, e, t, i) {
var a = arguments.length > 2;
if (null == n && (n = []), h && n.reduce === h) return i && (e = w.bind(e, i)),
a ? n.reduce(e, t) : n.reduce(e);
if (G(n, function(n, r, o) {
a ? t = e.call(i, t, n, r, o) : (t = n, a = !0);
}), !a) throw new TypeError(k);
return t;
}, w.reduceRight = w.foldr = function(n, e, t, i) {
var a = arguments.length > 2;
if (null == n && (n = []), S && n.reduceRight === S) return i && (e = w.bind(e, i)),
a ? n.reduceRight(e, t) : n.reduceRight(e);
var r = n.length;
if (r !== +r) {
var o = w.keys(n);
r = o.length;
}
if (G(n, function(s, l, c) {
l = o ? o[--r] : --r, a ? t = e.call(i, t, n[l], l, c) : (t = n[l], a = !0);
}), !a) throw new TypeError(k);
return t;
}, w.find = w.detect = function(n, e, t) {
var i;
return R(n, function(n, a, r) {
return e.call(t, n, a, r) ? (i = n, !0) : void 0;
}), i;
}, w.filter = w.select = function(n, e, t) {
var i = [];
return null == n ? i : p && n.filter === p ? n.filter(e, t) : (G(n, function(n, a, r) {
e.call(t, n, a, r) && i.push(n);
}), i);
}, w.reject = function(n, e, t) {
return w.filter(n, function(n, i, a) {
return !e.call(t, n, i, a);
}, t);
}, w.every = w.all = function(n, e, i) {
e || (e = w.identity);
var a = !0;
return null == n ? a : m && n.every === m ? n.every(e, i) : (G(n, function(n, r, o) {
return (a = a && e.call(i, n, r, o)) ? void 0 : t;
}), !!a);
};
var R = w.some = w.any = function(n, e, i) {
e || (e = w.identity);
var a = !1;
return null == n ? a : g && n.some === g ? n.some(e, i) : (G(n, function(n, r, o) {
return a || (a = e.call(i, n, r, o)) ? t : void 0;
}), !!a);
};
w.contains = w.include = function(n, e) {
return null == n ? !1 : f && n.indexOf === f ? -1 != n.indexOf(e) : R(n, function(n) {
return n === e;
});
}, w.invoke = function(n, e) {
var t = s.call(arguments, 2), i = w.isFunction(e);
return w.map(n, function(n) {
return (i ? e : n[e]).apply(n, t);
});
}, w.pluck = function(n, e) {
return w.map(n, function(n) {
return n[e];
});
}, w.where = function(n, e, t) {
return w.isEmpty(e) ? t ? void 0 : [] : w[t ? "find" : "filter"](n, function(n) {
for (var t in e) if (e[t] !== n[t]) return !1;
return !0;
});
}, w.findWhere = function(n, e) {
return w.where(n, e, !0);
}, w.max = function(n, e, t) {
if (!e && w.isArray(n) && n[0] === +n[0] && n.length < 65535) return Math.max.apply(Math, n);
if (!e && w.isEmpty(n)) return -1/0;
var i = {
computed: -1/0,
value: -1/0
};
return G(n, function(n, a, r) {
var o = e ? e.call(t, n, a, r) : n;
o > i.computed && (i = {
value: n,
computed: o
});
}), i.value;
}, w.min = function(n, e, t) {
if (!e && w.isArray(n) && n[0] === +n[0] && n.length < 65535) return Math.min.apply(Math, n);
if (!e && w.isEmpty(n)) return 1/0;
var i = {
computed: 1/0,
value: 1/0
};
return G(n, function(n, a, r) {
var o = e ? e.call(t, n, a, r) : n;
o < i.computed && (i = {
value: n,
computed: o
});
}), i.value;
}, w.shuffle = function(n) {
var e, t = 0, i = [];
return G(n, function(n) {
e = w.random(t++), i[t - 1] = i[e], i[e] = n;
}), i;
};
var C = function(n) {
return w.isFunction(n) ? n : function(e) {
return e[n];
};
};
w.sortBy = function(n, e, t) {
var i = C(e);
return w.pluck(w.map(n, function(n, e, a) {
return {
value: n,
index: e,
criteria: i.call(t, n, e, a)
};
}).sort(function(n, e) {
var t = n.criteria, i = e.criteria;
if (t !== i) {
if (t > i || void 0 === t) return 1;
if (i > t || void 0 === i) return -1;
}
return n.index < e.index ? -1 : 1;
}), "value");
};
var A = function(n, e, t, i) {
var a = {}, r = C(null == e ? w.identity : e);
return G(n, function(e, o) {
var s = r.call(t, e, o, n);
i(a, s, e);
}), a;
};
w.groupBy = function(n, e, t) {
return A(n, e, t, function(n, e, t) {
(w.has(n, e) ? n[e] : n[e] = []).push(t);
});
}, w.countBy = function(n, e, t) {
return A(n, e, t, function(n, e) {
w.has(n, e) || (n[e] = 0), n[e]++;
});
}, w.sortedIndex = function(n, e, t, i) {
t = null == t ? w.identity : C(t);
for (var a = t.call(i, e), r = 0, o = n.length; o > r; ) {
var s = r + o >>> 1;
t.call(i, n[s]) < a ? r = s + 1 : o = s;
}
return r;
}, w.toArray = function(n) {
return n ? w.isArray(n) ? s.call(n) : n.length === +n.length ? w.map(n, w.identity) : w.values(n) : [];
}, w.size = function(n) {
return null == n ? 0 : n.length === +n.length ? n.length : w.keys(n).length;
}, w.first = w.head = w.take = function(n, e, t) {
return null == n ? void 0 : null == e || t ? n[0] : s.call(n, 0, e);
}, w.initial = function(n, e, t) {
return s.call(n, 0, n.length - (null == e || t ? 1 : e));
}, w.last = function(n, e, t) {
return null == n ? void 0 : null == e || t ? n[n.length - 1] : s.call(n, Math.max(n.length - e, 0));
}, w.rest = w.tail = w.drop = function(n, e, t) {
return s.call(n, null == e || t ? 1 : e);
}, w.compact = function(n) {
return w.filter(n, w.identity);
};
var x = function(n, e, t) {
return e && w.every(n, w.isArray) ? l.apply(t, n) : (G(n, function(n) {
w.isArray(n) || w.isArguments(n) ? e ? o.apply(t, n) : x(n, e, t) : t.push(n);
}), t);
};
w.flatten = function(n, e) {
return x(n, e, []);
}, w.without = function(n) {
return w.difference(n, s.call(arguments, 1));
}, w.uniq = w.unique = function(n, e, t, i) {
w.isFunction(e) && (i = t, t = e, e = !1);
var a = t ? w.map(n, t, i) : n, r = [], o = [];
return G(a, function(t, i) {
(e ? i && o[o.length - 1] === t : w.contains(o, t)) || (o.push(t), r.push(n[i]));
}), r;
}, w.union = function() {
return w.uniq(w.flatten(arguments, !0));
}, w.intersection = function(n) {
var e = s.call(arguments, 1);
return w.filter(w.uniq(n), function(n) {
return w.every(e, function(e) {
return w.indexOf(e, n) >= 0;
});
});
}, w.difference = function(n) {
var e = l.apply(i, s.call(arguments, 1));
return w.filter(n, function(n) {
return !w.contains(e, n);
});
}, w.zip = function() {
for (var n = w.max(w.pluck(arguments, "length").concat(0)), e = new Array(n), t = 0; n > t; t++) e[t] = w.pluck(arguments, "" + t);
return e;
}, w.object = function(n, e) {
if (null == n) return {};
for (var t = {}, i = 0, a = n.length; a > i; i++) e ? t[n[i]] = e[i] : t[n[i][0]] = n[i][1];
return t;
}, w.indexOf = function(n, e, t) {
if (null == n) return -1;
var i = 0, a = n.length;
if (t) {
if ("number" != typeof t) return i = w.sortedIndex(n, e), n[i] === e ? i : -1;
i = 0 > t ? Math.max(0, a + t) : t;
}
if (f && n.indexOf === f) return n.indexOf(e, t);
for (;a > i; i++) if (n[i] === e) return i;
return -1;
}, w.lastIndexOf = function(n, e, t) {
if (null == n) return -1;
var i = null != t;
if (b && n.lastIndexOf === b) return i ? n.lastIndexOf(e, t) : n.lastIndexOf(e);
for (var a = i ? t : n.length; a--; ) if (n[a] === e) return a;
return -1;
}, w.range = function(n, e, t) {
arguments.length <= 1 && (e = n || 0, n = 0), t = arguments[2] || 1;
for (var i = Math.max(Math.ceil((e - n) / t), 0), a = 0, r = new Array(i); i > a; ) r[a++] = n,
n += t;
return r;
};
var E = function() {};
w.bind = function(n, e) {
var t, i;
if (D && n.bind === D) return D.apply(n, s.call(arguments, 1));
if (!w.isFunction(n)) throw new TypeError();
return t = s.call(arguments, 2), i = function() {
if (!(this instanceof i)) return n.apply(e, t.concat(s.call(arguments)));
E.prototype = n.prototype;
var a = new E();
E.prototype = null;
var r = n.apply(a, t.concat(s.call(arguments)));
return Object(r) === r ? r : a;
};
}, w.partial = function(n) {
var e = s.call(arguments, 1);
return function() {
return n.apply(this, e.concat(s.call(arguments)));
};
}, w.bindAll = function(n) {
var e = s.call(arguments, 1);
if (0 === e.length) throw new Error("bindAll must be passed function names");
return G(e, function(e) {
n[e] = w.bind(n[e], n);
}), n;
}, w.memoize = function(n, e) {
var t = {};
return e || (e = w.identity), function() {
var i = e.apply(this, arguments);
return w.has(t, i) ? t[i] : t[i] = n.apply(this, arguments);
};
}, w.delay = function(n, e) {
var t = s.call(arguments, 2);
return setTimeout(function() {
return n.apply(null, t);
}, e);
}, w.defer = function(n) {
return w.delay.apply(w, [ n, 1 ].concat(s.call(arguments, 1)));
}, w.throttle = function(n, e, t) {
var i, a, r, o = null, s = 0;
t || (t = {});
var l = function() {
s = t.leading === !1 ? 0 : new Date(), o = null, r = n.apply(i, a);
};
return function() {
var c = new Date();
s || t.leading !== !1 || (s = c);
var M = e - (c - s);
return i = this, a = arguments, 0 >= M ? (clearTimeout(o), o = null, s = c, r = n.apply(i, a)) : o || t.trailing === !1 || (o = setTimeout(l, M)),
r;
};
}, w.debounce = function(n, e, t) {
var i, a = null;
return function() {
var r = this, o = arguments, s = function() {
a = null, t || (i = n.apply(r, o));
}, l = t && !a;
return clearTimeout(a), a = setTimeout(s, e), l && (i = n.apply(r, o)), i;
};
}, w.once = function(n) {
var e, t = !1;
return function() {
return t ? e : (t = !0, e = n.apply(this, arguments), n = null, e);
};
}, w.wrap = function(n, e) {
return function() {
var t = [ n ];
return o.apply(t, arguments), e.apply(this, t);
};
}, w.compose = function() {
var n = arguments;
return function() {
for (var e = arguments, t = n.length - 1; t >= 0; t--) e = [ n[t].apply(this, e) ];
return e[0];
};
}, w.after = function(n, e) {
return function() {
return --n < 1 ? e.apply(this, arguments) : void 0;
};
}, w.keys = v || function(n) {
if (n !== Object(n)) throw new TypeError("Invalid object");
var e = [];
for (var t in n) w.has(n, t) && e.push(t);
return e;
}, w.values = function(n) {
var e = [];
for (var t in n) w.has(n, t) && e.push(n[t]);
return e;
}, w.pairs = function(n) {
var e = [];
for (var t in n) w.has(n, t) && e.push([ t, n[t] ]);
return e;
}, w.invert = function(n) {
var e = {};
for (var t in n) w.has(n, t) && (e[n[t]] = t);
return e;
}, w.functions = w.methods = function(n) {
var e = [];
for (var t in n) w.isFunction(n[t]) && e.push(t);
return e.sort();
}, w.extend = function(n) {
return G(s.call(arguments, 1), function(e) {
if (e) for (var t in e) n[t] = e[t];
}), n;
}, w.pick = function(n) {
var e = {}, t = l.apply(i, s.call(arguments, 1));
return G(t, function(t) {
t in n && (e[t] = n[t]);
}), e;
}, w.omit = function(n) {
var e = {}, t = l.apply(i, s.call(arguments, 1));
for (var a in n) w.contains(t, a) || (e[a] = n[a]);
return e;
}, w.defaults = function(n) {
return G(s.call(arguments, 1), function(e) {
if (e) for (var t in e) void 0 === n[t] && (n[t] = e[t]);
}), n;
}, w.clone = function(n) {
return w.isObject(n) ? w.isArray(n) ? n.slice() : w.extend({}, n) : n;
}, w.tap = function(n, e) {
return e(n), n;
};
var P = function(n, e, t, i) {
if (n === e) return 0 !== n || 1 / n == 1 / e;
if (null == n || null == e) return n === e;
n instanceof w && (n = n._wrapped), e instanceof w && (e = e._wrapped);
var a = c.call(n);
if (a != c.call(e)) return !1;
switch (a) {
case "[object String]":
return n == String(e);
case "[object Number]":
return n != +n ? e != +e : 0 == n ? 1 / n == 1 / e : n == +e;
case "[object Date]":
case "[object Boolean]":
return +n == +e;
case "[object RegExp]":
return n.source == e.source && n.global == e.global && n.multiline == e.multiline && n.ignoreCase == e.ignoreCase;
}
if ("object" != typeof n || "object" != typeof e) return !1;
for (var r = t.length; r--; ) if (t[r] == n) return i[r] == e;
var o = n.constructor, s = e.constructor;
if (o !== s && !(w.isFunction(o) && o instanceof o && w.isFunction(s) && s instanceof s)) return !1;
t.push(n), i.push(e);
var l = 0, M = !0;
if ("[object Array]" == a) {
if (l = n.length, M = l == e.length) for (;l-- && (M = P(n[l], e[l], t, i)); ) ;
} else {
for (var u in n) if (w.has(n, u) && (l++, !(M = w.has(e, u) && P(n[u], e[u], t, i)))) break;
if (M) {
for (u in e) if (w.has(e, u) && !l--) break;
M = !l;
}
}
return t.pop(), i.pop(), M;
};
w.isEqual = function(n, e) {
return P(n, e, [], []);
}, w.isEmpty = function(n) {
if (null == n) return !0;
if (w.isArray(n) || w.isString(n)) return 0 === n.length;
for (var e in n) if (w.has(n, e)) return !1;
return !0;
}, w.isElement = function(n) {
return !(!n || 1 !== n.nodeType);
}, w.isArray = y || function(n) {
return "[object Array]" == c.call(n);
}, w.isObject = function(n) {
return n === Object(n);
}, G([ "Arguments", "Function", "String", "Number", "Date", "RegExp" ], function(n) {
w["is" + n] = function(e) {
return c.call(e) == "[object " + n + "]";
};
}), w.isArguments(arguments) || (w.isArguments = function(n) {
return !(!n || !w.has(n, "callee"));
}), "function" != typeof /./ && (w.isFunction = function(n) {
return "function" == typeof n;
}), w.isFinite = function(n) {
return isFinite(n) && !isNaN(parseFloat(n));
}, w.isNaN = function(n) {
return w.isNumber(n) && n != +n;
}, w.isBoolean = function(n) {
return n === !0 || n === !1 || "[object Boolean]" == c.call(n);
}, w.isNull = function(n) {
return null === n;
}, w.isUndefined = function(n) {
return void 0 === n;
}, w.has = function(n, e) {
return M.call(n, e);
}, w.noConflict = function() {
return n._ = e, this;
}, w.identity = function(n) {
return n;
}, w.times = function(n, e, t) {
for (var i = Array(Math.max(0, n)), a = 0; n > a; a++) i[a] = e.call(t, a);
return i;
}, w.random = function(n, e) {
return null == e && (e = n, n = 0), n + Math.floor(Math.random() * (e - n + 1));
};
var T = {
escape: {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"/": "&#x2F;"
}
};
T.unescape = w.invert(T.escape);
var F = {
escape: new RegExp("[" + w.keys(T.escape).join("") + "]", "g"),
unescape: new RegExp("(" + w.keys(T.unescape).join("|") + ")", "g")
};
w.each([ "escape", "unescape" ], function(n) {
w[n] = function(e) {
return null == e ? "" : ("" + e).replace(F[n], function(e) {
return T[n][e];
});
};
}), w.result = function(n, e) {
if (null == n) return void 0;
var t = n[e];
return w.isFunction(t) ? t.call(n) : t;
}, w.mixin = function(n) {
G(w.functions(n), function(e) {
var t = w[e] = n[e];
w.prototype[e] = function() {
var n = [ this._wrapped ];
return o.apply(n, arguments), z.call(this, t.apply(w, n));
};
});
};
var B = 0;
w.uniqueId = function(n) {
var e = ++B + "";
return n ? n + e : e;
}, w.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var Y = /(.)^/, L = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
" ": "t",
"\u2028": "u2028",
"\u2029": "u2029"
}, N = /\\|'|\r|\n|\t|\u2028|\u2029/g;
w.template = function(n, e, t) {
var i;
t = w.defaults({}, t, w.templateSettings);
var a = new RegExp([ (t.escape || Y).source, (t.interpolate || Y).source, (t.evaluate || Y).source ].join("|") + "|$", "g"), r = 0, o = "__p+='";
n.replace(a, function(e, t, i, a, s) {
return o += n.slice(r, s).replace(N, function(n) {
return "\\" + L[n];
}), t && (o += "'+\n((__t=(" + t + "))==null?'':_.escape(__t))+\n'"), i && (o += "'+\n((__t=(" + i + "))==null?'':__t)+\n'"),
a && (o += "';\n" + a + "\n__p+='"), r = s + e.length, e;
}), o += "';\n", t.variable || (o = "with(obj||{}){\n" + o + "}\n"), o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o + "return __p;\n";
try {
i = new Function(t.variable || "obj", "_", o);
} catch (s) {
throw s.source = o, s;
}
if (e) return i(e, w);
var l = function(n) {
return i.call(this, n, w);
};
return l.source = "function(" + (t.variable || "obj") + "){\n" + o + "}", l;
}, w.chain = function(n) {
return w(n).chain();
};
var z = function(n) {
return this._chain ? w(n).chain() : n;
};
w.mixin(w), G([ "pop", "push", "reverse", "shift", "sort", "splice", "unshift" ], function(n) {
var e = i[n];
w.prototype[n] = function() {
var t = this._wrapped;
return e.apply(t, arguments), "shift" != n && "splice" != n || 0 !== t.length || delete t[0],
z.call(this, t);
};
}), G([ "concat", "join", "slice" ], function(n) {
var e = i[n];
w.prototype[n] = function() {
return z.call(this, e.apply(this._wrapped, arguments));
};
}), w.extend(w.prototype, {
chain: function() {
return this._chain = !0, this;
},
value: function() {
return this._wrapped;
}
});
}.call(this), define("underscore", function(n) {
return function() {
var e;
return e || n._;
};
}(this)), function(n, e) {
"object" == typeof exports ? module.exports = e() : "function" == typeof define && define.amd ? define("crel", e) : n.crel = e();
}(this, function() {
function n() {
var t, i = window.document, a = arguments, r = i.createElement(a[0]), o = a[1], s = 2, l = a.length, c = n.attrMap;
if (1 === l) return r;
if (("object" != typeof o || e(o)) && (--s, o = null), 1 === l - s && "string" == typeof a[s] && void 0 !== r.textContent) r.textContent = a[s]; else for (;l > s; ++s) t = a[s],
null != t && (e(t) || (t = i.createTextNode(t)), r.appendChild(t));
for (var M in o) if (c[M]) {
var u = n.attrMap[M];
"function" == typeof u ? u(r, o[M]) : r.setAttribute(u, o[M]);
} else r.setAttribute(M, o[M]);
return r;
}
var e = "object" == typeof Node ? function(n) {
return n instanceof Node;
} : function(n) {
return n && "object" == typeof n && "number" == typeof n.nodeType && "string" == typeof n.nodeName;
};
return n.attrMap = {}, n.isNode = e, n;
}), define("ace/lib/regexp", [ "require", "exports", "module" ], function() {
function n(n) {
return (n.global ? "g" : "") + (n.ignoreCase ? "i" : "") + (n.multiline ? "m" : "") + (n.extended ? "x" : "") + (n.sticky ? "y" : "");
}
function e(n, e, t) {
if (Array.prototype.indexOf) return n.indexOf(e, t);
for (var i = t || 0; i < n.length; i++) if (n[i] === e) return i;
return -1;
}
var t = {
exec: RegExp.prototype.exec,
test: RegExp.prototype.test,
match: String.prototype.match,
replace: String.prototype.replace,
split: String.prototype.split
}, i = void 0 === t.exec.call(/()??/, "")[1], a = function() {
var n = /^/g;
return t.test.call(n, ""), !n.lastIndex;
}();
a && i || (RegExp.prototype.exec = function(r) {
var o, s, l = t.exec.apply(this, arguments);
if ("string" == typeof r && l) {
if (!i && l.length > 1 && e(l, "") > -1 && (s = RegExp(this.source, t.replace.call(n(this), "g", "")),
t.replace.call(r.slice(l.index), s, function() {
for (var n = 1; n < arguments.length - 2; n++) void 0 === arguments[n] && (l[n] = void 0);
})), this._xregexp && this._xregexp.captureNames) for (var c = 1; c < l.length; c++) o = this._xregexp.captureNames[c - 1],
o && (l[o] = l[c]);
!a && this.global && !l[0].length && this.lastIndex > l.index && this.lastIndex--;
}
return l;
}, a || (RegExp.prototype.test = function(n) {
var e = t.exec.call(this, n);
return e && this.global && !e[0].length && this.lastIndex > e.index && this.lastIndex--,
!!e;
}));
}), define("ace/lib/es5-shim", [ "require", "exports", "module" ], function() {
function n() {}
function e(n) {
try {
return Object.defineProperty(n, "sentinel", {}), "sentinel" in n;
} catch (e) {}
}
function t(n) {
return n = +n, n !== n ? n = 0 : 0 !== n && n !== 1 / 0 && n !== -(1 / 0) && (n = (n > 0 || -1) * Math.floor(Math.abs(n))),
n;
}
Function.prototype.bind || (Function.prototype.bind = function(e) {
var t = this;
if ("function" != typeof t) throw new TypeError("Function.prototype.bind called on incompatible " + t);
var i = u.call(arguments, 1), a = function() {
if (this instanceof a) {
var n = t.apply(this, i.concat(u.call(arguments)));
return Object(n) === n ? n : this;
}
return t.apply(e, i.concat(u.call(arguments)));
};
return t.prototype && (n.prototype = t.prototype, a.prototype = new n(), n.prototype = null),
a;
});
var i, a, r, o, s, l = Function.prototype.call, c = Array.prototype, M = Object.prototype, u = c.slice, d = l.bind(M.toString), h = l.bind(M.hasOwnProperty);
if ((s = h(M, "__defineGetter__")) && (i = l.bind(M.__defineGetter__), a = l.bind(M.__defineSetter__),
r = l.bind(M.__lookupGetter__), o = l.bind(M.__lookupSetter__)), 2 != [ 1, 2 ].splice(0).length) if (function() {
function n(n) {
var e = new Array(n + 2);
return e[0] = e[1] = 0, e;
}
var e, t = [];
return t.splice.apply(t, n(20)), t.splice.apply(t, n(26)), e = t.length, t.splice(5, 0, "XXX"),
e + 1 == t.length, e + 1 == t.length ? !0 : void 0;
}()) {
var S = Array.prototype.splice;
Array.prototype.splice = function(n, e) {
return arguments.length ? S.apply(this, [ void 0 === n ? 0 : n, void 0 === e ? this.length - n : e ].concat(u.call(arguments, 2))) : [];
};
} else Array.prototype.splice = function(n, e) {
var t = this.length;
n > 0 ? n > t && (n = t) : void 0 == n ? n = 0 : 0 > n && (n = Math.max(t + n, 0)),
t > n + e || (e = t - n);
var i = this.slice(n, n + e), a = u.call(arguments, 2), r = a.length;
if (n === t) r && this.push.apply(this, a); else {
var o = Math.min(e, t - n), s = n + o, l = s + r - o, c = t - s, M = t - o;
if (s > l) for (var d = 0; c > d; ++d) this[l + d] = this[s + d]; else if (l > s) for (d = c; d--; ) this[l + d] = this[s + d];
if (r && n === M) this.length = M, this.push.apply(this, a); else for (this.length = M + r,
d = 0; r > d; ++d) this[n + d] = a[d];
}
return i;
};
Array.isArray || (Array.isArray = function(n) {
return "[object Array]" == d(n);
});
var p = Object("a"), m = "a" != p[0] || !(0 in p);
if (Array.prototype.forEach || (Array.prototype.forEach = function(n) {
var e = F(this), t = m && "[object String]" == d(this) ? this.split("") : e, i = arguments[1], a = -1, r = t.length >>> 0;
if ("[object Function]" != d(n)) throw new TypeError();
for (;++a < r; ) a in t && n.call(i, t[a], a, e);
}), Array.prototype.map || (Array.prototype.map = function(n) {
var e = F(this), t = m && "[object String]" == d(this) ? this.split("") : e, i = t.length >>> 0, a = Array(i), r = arguments[1];
if ("[object Function]" != d(n)) throw new TypeError(n + " is not a function");
for (var o = 0; i > o; o++) o in t && (a[o] = n.call(r, t[o], o, e));
return a;
}), Array.prototype.filter || (Array.prototype.filter = function(n) {
var e, t = F(this), i = m && "[object String]" == d(this) ? this.split("") : t, a = i.length >>> 0, r = [], o = arguments[1];
if ("[object Function]" != d(n)) throw new TypeError(n + " is not a function");
for (var s = 0; a > s; s++) s in i && (e = i[s], n.call(o, e, s, t) && r.push(e));
return r;
}), Array.prototype.every || (Array.prototype.every = function(n) {
var e = F(this), t = m && "[object String]" == d(this) ? this.split("") : e, i = t.length >>> 0, a = arguments[1];
if ("[object Function]" != d(n)) throw new TypeError(n + " is not a function");
for (var r = 0; i > r; r++) if (r in t && !n.call(a, t[r], r, e)) return !1;
return !0;
}), Array.prototype.some || (Array.prototype.some = function(n) {
var e = F(this), t = m && "[object String]" == d(this) ? this.split("") : e, i = t.length >>> 0, a = arguments[1];
if ("[object Function]" != d(n)) throw new TypeError(n + " is not a function");
for (var r = 0; i > r; r++) if (r in t && n.call(a, t[r], r, e)) return !0;
return !1;
}), Array.prototype.reduce || (Array.prototype.reduce = function(n) {
var e = F(this), t = m && "[object String]" == d(this) ? this.split("") : e, i = t.length >>> 0;
if ("[object Function]" != d(n)) throw new TypeError(n + " is not a function");
if (!i && 1 == arguments.length) throw new TypeError("reduce of empty array with no initial value");
var a, r = 0;
if (arguments.length >= 2) a = arguments[1]; else for (;;) {
if (r in t) {
a = t[r++];
break;
}
if (++r >= i) throw new TypeError("reduce of empty array with no initial value");
}
for (;i > r; r++) r in t && (a = n.call(void 0, a, t[r], r, e));
return a;
}), Array.prototype.reduceRight || (Array.prototype.reduceRight = function(n) {
var e = F(this), t = m && "[object String]" == d(this) ? this.split("") : e, i = t.length >>> 0;
if ("[object Function]" != d(n)) throw new TypeError(n + " is not a function");
if (!i && 1 == arguments.length) throw new TypeError("reduceRight of empty array with no initial value");
var a, r = i - 1;
if (arguments.length >= 2) a = arguments[1]; else for (;;) {
if (r in t) {
a = t[r--];
break;
}
if (--r < 0) throw new TypeError("reduceRight of empty array with no initial value");
}
do r in this && (a = n.call(void 0, a, t[r], r, e)); while (r--);
return a;
}), Array.prototype.indexOf && -1 == [ 0, 1 ].indexOf(1, 2) || (Array.prototype.indexOf = function(n) {
var e = m && "[object String]" == d(this) ? this.split("") : F(this), i = e.length >>> 0;
if (!i) return -1;
var a = 0;
for (arguments.length > 1 && (a = t(arguments[1])), a = a >= 0 ? a : Math.max(0, i + a); i > a; a++) if (a in e && e[a] === n) return a;
return -1;
}), Array.prototype.lastIndexOf && -1 == [ 0, 1 ].lastIndexOf(0, -3) || (Array.prototype.lastIndexOf = function(n) {
var e = m && "[object String]" == d(this) ? this.split("") : F(this), i = e.length >>> 0;
if (!i) return -1;
var a = i - 1;
for (arguments.length > 1 && (a = Math.min(a, t(arguments[1]))), a = a >= 0 ? a : i - Math.abs(a); a >= 0; a--) if (a in e && n === e[a]) return a;
return -1;
}), Object.getPrototypeOf || (Object.getPrototypeOf = function(n) {
return n.__proto__ || (n.constructor ? n.constructor.prototype : M);
}), !Object.getOwnPropertyDescriptor) {
var g = "Object.getOwnPropertyDescriptor called on a non-object: ";
Object.getOwnPropertyDescriptor = function(n, e) {
if ("object" != typeof n && "function" != typeof n || null === n) throw new TypeError(g + n);
if (h(n, e)) {
var t, i, a;
if (t = {
enumerable: !0,
configurable: !0
}, s) {
var l = n.__proto__;
n.__proto__ = M;
var i = r(n, e), a = o(n, e);
if (n.__proto__ = l, i || a) return i && (t.get = i), a && (t.set = a), t;
}
return t.value = n[e], t;
}
};
}
if (Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function(n) {
return Object.keys(n);
}), !Object.create) {
var f;
f = null === Object.prototype.__proto__ ? function() {
return {
__proto__: null
};
} : function() {
var n = {};
for (var e in n) n[e] = null;
return n.constructor = n.hasOwnProperty = n.propertyIsEnumerable = n.isPrototypeOf = n.toLocaleString = n.toString = n.valueOf = n.__proto__ = null,
n;
}, Object.create = function(n, e) {
var t;
if (null === n) t = f(); else {
if ("object" != typeof n) throw new TypeError("typeof prototype[" + typeof n + "] != 'object'");
var i = function() {};
i.prototype = n, t = new i(), t.__proto__ = n;
}
return void 0 !== e && Object.defineProperties(t, e), t;
};
}
if (Object.defineProperty) {
var b = e({}), y = "undefined" == typeof document || e(document.createElement("div"));
if (!b || !y) var v = Object.defineProperty;
}
if (!Object.defineProperty || v) {
var D = "Property description must be an object: ", w = "Object.defineProperty called on non-object: ", G = "getters & setters can not be defined on this javascript engine";
Object.defineProperty = function(n, e, t) {
if ("object" != typeof n && "function" != typeof n || null === n) throw new TypeError(w + n);
if ("object" != typeof t && "function" != typeof t || null === t) throw new TypeError(D + t);
if (v) try {
return v.call(Object, n, e, t);
} catch (l) {}
if (h(t, "value")) if (s && (r(n, e) || o(n, e))) {
var c = n.__proto__;
n.__proto__ = M, delete n[e], n[e] = t.value, n.__proto__ = c;
} else n[e] = t.value; else {
if (!s) throw new TypeError(G);
h(t, "get") && i(n, e, t.get), h(t, "set") && a(n, e, t.set);
}
return n;
};
}
Object.defineProperties || (Object.defineProperties = function(n, e) {
for (var t in e) h(e, t) && Object.defineProperty(n, t, e[t]);
return n;
}), Object.seal || (Object.seal = function(n) {
return n;
}), Object.freeze || (Object.freeze = function(n) {
return n;
});
try {
Object.freeze(function() {});
} catch (k) {
Object.freeze = function(n) {
return function(e) {
return "function" == typeof e ? e : n(e);
};
}(Object.freeze);
}
if (Object.preventExtensions || (Object.preventExtensions = function(n) {
return n;
}), Object.isSealed || (Object.isSealed = function() {
return !1;
}), Object.isFrozen || (Object.isFrozen = function() {
return !1;
}), Object.isExtensible || (Object.isExtensible = function(n) {
if (Object(n) === n) throw new TypeError();
for (var e = ""; h(n, e); ) e += "?";
n[e] = !0;
var t = h(n, e);
return delete n[e], t;
}), !Object.keys) {
var R = !0, C = [ "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor" ], A = C.length;
for (var x in {
toString: null
}) R = !1;
Object.keys = function B(n) {
if ("object" != typeof n && "function" != typeof n || null === n) throw new TypeError("Object.keys called on a non-object");
var B = [];
for (var e in n) h(n, e) && B.push(e);
if (R) for (var t = 0, i = A; i > t; t++) {
var a = C[t];
h(n, a) && B.push(a);
}
return B;
};
}
Date.now || (Date.now = function() {
return new Date().getTime();
});
var E = " \n \f\r    \u2028\u2029";
if (!String.prototype.trim || E.trim()) {
E = "[" + E + "]";
var P = new RegExp("^" + E + E + "*"), T = new RegExp(E + E + "*$");
String.prototype.trim = function() {
return String(this).replace(P, "").replace(T, "");
};
}
var F = function(n) {
if (null == n) throw new TypeError("can't convert " + n + " to object");
return Object(n);
};
}), define("ace/lib/fixoldbrowsers", [ "require", "exports", "module", "./regexp", "./es5-shim" ], function(n) {
n("./regexp"), n("./es5-shim");
}), define("ace/lib/dom", [ "require", "exports", "module" ], function(n, e) {
if ("undefined" != typeof document) {
var t = "http://www.w3.org/1999/xhtml";
e.getDocumentHead = function(n) {
return n || (n = document), n.head || n.getElementsByTagName("head")[0] || n.documentElement;
}, e.createElement = function(n, e) {
return document.createElementNS ? document.createElementNS(e || t, n) : document.createElement(n);
}, e.hasCssClass = function(n, e) {
var t = n.className.split(/\s+/g);
return -1 !== t.indexOf(e);
}, e.addCssClass = function(n, t) {
e.hasCssClass(n, t) || (n.className += " " + t);
}, e.removeCssClass = function(n, e) {
for (var t = n.className.split(/\s+/g); ;) {
var i = t.indexOf(e);
if (-1 == i) break;
t.splice(i, 1);
}
n.className = t.join(" ");
}, e.toggleCssClass = function(n, e) {
for (var t = n.className.split(/\s+/g), i = !0; ;) {
var a = t.indexOf(e);
if (-1 == a) break;
i = !1, t.splice(a, 1);
}
return i && t.push(e), n.className = t.join(" "), i;
}, e.setCssClass = function(n, t, i) {
i ? e.addCssClass(n, t) : e.removeCssClass(n, t);
}, e.hasCssString = function(n, e) {
var t, i = 0;
if (e = e || document, e.createStyleSheet && (t = e.styleSheets)) {
for (;i < t.length; ) if (t[i++].owningElement.id === n) return !0;
} else if (t = e.getElementsByTagName("style")) for (;i < t.length; ) if (t[i++].id === n) return !0;
return !1;
}, e.importCssString = function(n, i, a) {
if (a = a || document, i && e.hasCssString(i, a)) return null;
var r;
a.createStyleSheet ? (r = a.createStyleSheet(), r.cssText = n, i && (r.owningElement.id = i)) : (r = a.createElementNS ? a.createElementNS(t, "style") : a.createElement("style"),
r.appendChild(a.createTextNode(n)), i && (r.id = i), e.getDocumentHead(a).appendChild(r));
}, e.importCssStylsheet = function(n, t) {
if (t.createStyleSheet) t.createStyleSheet(n); else {
var i = e.createElement("link");
i.rel = "stylesheet", i.href = n, e.getDocumentHead(t).appendChild(i);
}
}, e.getInnerWidth = function(n) {
return parseInt(e.computedStyle(n, "paddingLeft"), 10) + parseInt(e.computedStyle(n, "paddingRight"), 10) + n.clientWidth;
}, e.getInnerHeight = function(n) {
return parseInt(e.computedStyle(n, "paddingTop"), 10) + parseInt(e.computedStyle(n, "paddingBottom"), 10) + n.clientHeight;
}, void 0 !== window.pageYOffset ? (e.getPageScrollTop = function() {
return window.pageYOffset;
}, e.getPageScrollLeft = function() {
return window.pageXOffset;
}) : (e.getPageScrollTop = function() {
return document.body.scrollTop;
}, e.getPageScrollLeft = function() {
return document.body.scrollLeft;
}), e.computedStyle = window.getComputedStyle ? function(n, e) {
return e ? (window.getComputedStyle(n, "") || {})[e] || "" : window.getComputedStyle(n, "") || {};
} : function(n, e) {
return e ? n.currentStyle[e] : n.currentStyle;
}, e.scrollbarWidth = function(n) {
var t = e.createElement("ace_inner");
t.style.width = "100%", t.style.minWidth = "0px", t.style.height = "200px", t.style.display = "block";
var i = e.createElement("ace_outer"), a = i.style;
a.position = "absolute", a.left = "-10000px", a.overflow = "hidden", a.width = "200px",
a.minWidth = "0px", a.height = "150px", a.display = "block", i.appendChild(t);
var r = n.documentElement;
r.appendChild(i);
var o = t.offsetWidth;
a.overflow = "scroll";
var s = t.offsetWidth;
return o == s && (s = i.clientWidth), r.removeChild(i), o - s;
}, e.setInnerHtml = function(n, e) {
var t = n.cloneNode(!1);
return t.innerHTML = e, n.parentNode.replaceChild(t, n), t;
}, "textContent" in document.documentElement ? (e.setInnerText = function(n, e) {
n.textContent = e;
}, e.getInnerText = function(n) {
return n.textContent;
}) : (e.setInnerText = function(n, e) {
n.innerText = e;
}, e.getInnerText = function(n) {
return n.innerText;
}), e.getParentWindow = function(n) {
return n.defaultView || n.parentWindow;
};
}
}), define("ace/lib/oop", [ "require", "exports", "module" ], function(n, e) {
e.inherits = function() {
var n = function() {};
return function(e, t) {
n.prototype = t.prototype, e.super_ = t.prototype, e.prototype = new n(), e.prototype.constructor = e;
};
}(), e.mixin = function(n, e) {
for (var t in e) n[t] = e[t];
return n;
}, e.implement = function(n, t) {
e.mixin(n, t);
};
}), define("ace/lib/keys", [ "require", "exports", "module", "./oop" ], function(n, e) {
var t = n("./oop"), i = function() {
var n = {
MODIFIER_KEYS: {
16: "Shift",
17: "Ctrl",
18: "Alt",
224: "Meta"
},
KEY_MODS: {
ctrl: 1,
alt: 2,
option: 2,
shift: 4,
meta: 8,
command: 8,
cmd: 8
},
FUNCTION_KEYS: {
8: "Backspace",
9: "Tab",
13: "Return",
19: "Pause",
27: "Esc",
32: "Space",
33: "PageUp",
34: "PageDown",
35: "End",
36: "Home",
37: "Left",
38: "Up",
39: "Right",
40: "Down",
44: "Print",
45: "Insert",
46: "Delete",
96: "Numpad0",
97: "Numpad1",
98: "Numpad2",
99: "Numpad3",
100: "Numpad4",
101: "Numpad5",
102: "Numpad6",
103: "Numpad7",
104: "Numpad8",
105: "Numpad9",
"-13": "NumpadEnter",
112: "F1",
113: "F2",
114: "F3",
115: "F4",
116: "F5",
117: "F6",
118: "F7",
119: "F8",
120: "F9",
121: "F10",
122: "F11",
123: "F12",
144: "Numlock",
145: "Scrolllock"
},
PRINTABLE_KEYS: {
32: " ",
48: "0",
49: "1",
50: "2",
51: "3",
52: "4",
53: "5",
54: "6",
55: "7",
56: "8",
57: "9",
59: ";",
61: "=",
65: "a",
66: "b",
67: "c",
68: "d",
69: "e",
70: "f",
71: "g",
72: "h",
73: "i",
74: "j",
75: "k",
76: "l",
77: "m",
78: "n",
79: "o",
80: "p",
81: "q",
82: "r",
83: "s",
84: "t",
85: "u",
86: "v",
87: "w",
88: "x",
89: "y",
90: "z",
107: "+",
109: "-",
110: ".",
188: ",",
190: ".",
191: "/",
192: "`",
219: "[",
220: "\\",
221: "]",
222: "'"
}
};
for (var e in n.FUNCTION_KEYS) {
var i = n.FUNCTION_KEYS[e].toLowerCase();
n[i] = parseInt(e, 10);
}
return t.mixin(n, n.MODIFIER_KEYS), t.mixin(n, n.PRINTABLE_KEYS), t.mixin(n, n.FUNCTION_KEYS),
n.enter = n["return"], n.escape = n.esc, n.del = n["delete"], n[173] = "-", n;
}();
t.mixin(e, i), e.keyCodeToString = function(n) {
return (i[n] || String.fromCharCode(n)).toLowerCase();
};
}), define("ace/lib/useragent", [ "require", "exports", "module" ], function(n, e) {
if (e.OS = {
LINUX: "LINUX",
MAC: "MAC",
WINDOWS: "WINDOWS"
}, e.getOS = function() {
return e.isMac ? e.OS.MAC : e.isLinux ? e.OS.LINUX : e.OS.WINDOWS;
}, "object" == typeof navigator) {
var t = (navigator.platform.match(/mac|win|linux/i) || [ "other" ])[0].toLowerCase(), i = navigator.userAgent;
e.isWin = "win" == t, e.isMac = "mac" == t, e.isLinux = "linux" == t, e.isIE = ("Microsoft Internet Explorer" == navigator.appName || navigator.appName.indexOf("MSAppHost") >= 0) && parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),
e.isOldIE = e.isIE && e.isIE < 9, e.isGecko = e.isMozilla = window.controllers && "Gecko" === window.navigator.product,
e.isOldGecko = e.isGecko && parseInt((navigator.userAgent.match(/rv\:(\d+)/) || [])[1], 10) < 4,
e.isOpera = window.opera && "[object Opera]" == Object.prototype.toString.call(window.opera),
e.isWebKit = parseFloat(i.split("WebKit/")[1]) || void 0, e.isChrome = parseFloat(i.split(" Chrome/")[1]) || void 0,
e.isAIR = i.indexOf("AdobeAIR") >= 0, e.isIPad = i.indexOf("iPad") >= 0, e.isTouchPad = i.indexOf("TouchPad") >= 0;
}
}), define("ace/lib/event", [ "require", "exports", "module", "./keys", "./useragent", "./dom" ], function(n, e) {
function t(n, e, t) {
var s = 0;
if (s = !a.isOpera || "KeyboardEvent" in window || !a.isMac ? 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0) : 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0),
!a.isMac && r) {
if ((r[91] || r[92]) && (s |= 8), r.altGr) {
if (3 == (3 & s)) return;
r.altGr = 0;
}
if (18 === t || 17 === t) {
var l = e.location || e.keyLocation;
if (17 === t && 1 === l) o = e.timeStamp; else if (18 === t && 3 === s && 2 === l) {
var c = -o;
o = e.timeStamp, c += o, 3 > c && (r.altGr = !0);
}
}
}
if (t in i.MODIFIER_KEYS) {
switch (i.MODIFIER_KEYS[t]) {
case "Alt":
s = 2;
break;
case "Shift":
s = 4;
break;
case "Ctrl":
s = 1;
break;
default:
s = 8;
}
t = 0;
}
return 8 & s && (91 === t || 93 === t) && (t = 0), s || 13 !== t || !e.location && 3 !== e.keyLocation || (n(e, s, -t),
!e.defaultPrevented) ? s || t in i.FUNCTION_KEYS || t in i.PRINTABLE_KEYS ? n(e, s, t) : !1 : void 0;
}
var i = n("./keys"), a = n("./useragent");
n("./dom"), e.addListener = function(n, e, t) {
if (n.addEventListener) return n.addEventListener(e, t, !1);
if (n.attachEvent) {
var i = function() {
t(window.event);
};
t._wrapper = i, n.attachEvent("on" + e, i);
}
}, e.removeListener = function(n, e, t) {
return n.removeEventListener ? n.removeEventListener(e, t, !1) : (n.detachEvent && n.detachEvent("on" + e, t._wrapper || t),
void 0);
}, e.stopEvent = function(n) {
return e.stopPropagation(n), e.preventDefault(n), !1;
}, e.stopPropagation = function(n) {
n.stopPropagation ? n.stopPropagation() : n.cancelBubble = !0;
}, e.preventDefault = function(n) {
n.preventDefault ? n.preventDefault() : n.returnValue = !1;
}, e.getButton = function(n) {
return "dblclick" == n.type ? 0 : "contextmenu" == n.type || n.ctrlKey && a.isMac ? 2 : n.preventDefault ? n.button : {
1: 0,
2: 2,
4: 1
}[n.button];
}, e.capture = document.documentElement.setCapture ? function(n, t, i) {
function a(o) {
t(o), r || (r = !0, i(o)), e.removeListener(n, "mousemove", t), e.removeListener(n, "mouseup", a),
e.removeListener(n, "losecapture", a), n.releaseCapture();
}
var r = !1;
e.addListener(n, "mousemove", t), e.addListener(n, "mouseup", a), e.addListener(n, "losecapture", a),
n.setCapture();
} : function(n, e, t) {
function i(n) {
e && e(n), t && t(n), document.removeEventListener("mousemove", e, !0), document.removeEventListener("mouseup", i, !0);
}
document.addEventListener("mousemove", e, !0), document.addEventListener("mouseup", i, !0);
}, e.addMouseWheelListener = function(n, t) {
if ("onmousewheel" in n) {
var i = 8;
e.addListener(n, "mousewheel", function(n) {
void 0 !== n.wheelDeltaX ? (n.wheelX = -n.wheelDeltaX / i, n.wheelY = -n.wheelDeltaY / i) : (n.wheelX = 0,
n.wheelY = -n.wheelDelta / i), t(n);
});
} else "onwheel" in n ? e.addListener(n, "wheel", function(n) {
n.wheelX = 5 * (n.deltaX || 0), n.wheelY = 5 * (n.deltaY || 0), t(n);
}) : e.addListener(n, "DOMMouseScroll", function(n) {
n.axis && n.axis == n.HORIZONTAL_AXIS ? (n.wheelX = 5 * (n.detail || 0), n.wheelY = 0) : (n.wheelX = 0,
n.wheelY = 5 * (n.detail || 0)), t(n);
});
}, e.addMultiMouseDownListener = function(n, t, i, r) {
var o, s, l, c = 0, M = {
2: "dblclick",
3: "tripleclick",
4: "quadclick"
};
e.addListener(n, "mousedown", function(n) {
if (0 != e.getButton(n)) c = 0; else {
var a = Math.abs(n.clientX - o) > 5 || Math.abs(n.clientY - s) > 5;
(!l || a) && (c = 0), c += 1, l && clearTimeout(l), l = setTimeout(function() {
l = null;
}, t[c - 1] || 600);
}
if (1 == c && (o = n.clientX, s = n.clientY), i[r]("mousedown", n), c > 4) c = 0; else if (c > 1) return i[r](M[c], n);
}), a.isOldIE && e.addListener(n, "dblclick", function(n) {
c = 2, l && clearTimeout(l), l = setTimeout(function() {
l = null;
}, t[c - 1] || 600), i[r]("mousedown", n), i[r](M[c], n);
});
};
var r = null, o = 0;
if (e.addCommandKeyListener = function(n, i) {
var o = e.addListener;
if (a.isOldGecko || a.isOpera && !("KeyboardEvent" in window)) {
var s = null;
o(n, "keydown", function(n) {
s = n.keyCode;
}), o(n, "keypress", function(n) {
return t(i, n, s);
});
} else {
var l = null;
o(n, "keydown", function(n) {
r[n.keyCode] = !0;
var e = t(i, n, n.keyCode);
return l = n.defaultPrevented, e;
}), o(n, "keypress", function(n) {
l && (n.ctrlKey || n.altKey || n.shiftKey || n.metaKey) && (e.stopEvent(n), l = null);
}), o(n, "keyup", function(n) {
r[n.keyCode] = null;
}), r || (r = Object.create(null), o(window, "focus", function() {
r = Object.create(null);
}));
}
}, window.postMessage && !a.isOldIE) {
var s = 1;
e.nextTick = function(n, t) {
t = t || window;
var i = "zero-timeout-message-" + s;
e.addListener(t, "message", function a(r) {
r.data == i && (e.stopPropagation(r), e.removeListener(t, "message", a), n());
}), t.postMessage(i, "*");
};
}
e.nextFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame,
e.nextFrame = e.nextFrame ? e.nextFrame.bind(window) : function(n) {
setTimeout(n, 17);
};
}), define("ace/lib/lang", [ "require", "exports", "module" ], function(n, e) {
e.stringReverse = function(n) {
return n.split("").reverse().join("");
}, e.stringRepeat = function(n, e) {
for (var t = ""; e > 0; ) 1 & e && (t += n), (e >>= 1) && (n += n);
return t;
};
var t = /^\s\s*/, i = /\s\s*$/;
e.stringTrimLeft = function(n) {
return n.replace(t, "");
}, e.stringTrimRight = function(n) {
return n.replace(i, "");
}, e.copyObject = function(n) {
var e = {};
for (var t in n) e[t] = n[t];
return e;
}, e.copyArray = function(n) {
for (var e = [], t = 0, i = n.length; i > t; t++) e[t] = n[t] && "object" == typeof n[t] ? this.copyObject(n[t]) : n[t];
return e;
}, e.deepCopy = function(n) {
if ("object" != typeof n) return n;
var e = n.constructor();
for (var t in n) e[t] = "object" == typeof n[t] ? this.deepCopy(n[t]) : n[t];
return e;
}, e.arrayToMap = function(n) {
for (var e = {}, t = 0; t < n.length; t++) e[n[t]] = 1;
return e;
}, e.createMap = function(n) {
var e = Object.create(null);
for (var t in n) e[t] = n[t];
return e;
}, e.arrayRemove = function(n, e) {
for (var t = 0; t <= n.length; t++) e === n[t] && n.splice(t, 1);
}, e.escapeRegExp = function(n) {
return n.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1");
}, e.escapeHTML = function(n) {
return n.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
}, e.getMatchOffsets = function(n, e) {
var t = [];
return n.replace(e, function(n) {
t.push({
offset: arguments[arguments.length - 2],
length: n.length
});
}), t;
}, e.deferredCall = function(n) {
var e = null, t = function() {
e = null, n();
}, i = function(n) {
return i.cancel(), e = setTimeout(t, n || 0), i;
};
return i.schedule = i, i.call = function() {
return this.cancel(), n(), i;
}, i.cancel = function() {
return clearTimeout(e), e = null, i;
}, i;
}, e.delayedCall = function(n, e) {
var t = null, i = function() {
t = null, n();
}, a = function(n) {
t && clearTimeout(t), t = setTimeout(i, n || e);
};
return a.delay = a, a.schedule = function(n) {
null == t && (t = setTimeout(i, n || 0));
}, a.call = function() {
this.cancel(), n();
}, a.cancel = function() {
t && clearTimeout(t), t = null;
}, a.isPending = function() {
return t;
}, a;
};
}), define("ace/keyboard/textinput", [ "require", "exports", "module", "../lib/event", "../lib/useragent", "../lib/dom", "../lib/lang" ], function(n, e) {
var t = n("../lib/event"), i = n("../lib/useragent"), a = n("../lib/dom"), r = n("../lib/lang"), o = i.isChrome < 18, s = function(n, e) {
function s(n) {
if (!p) {
if (A) e = 0, t = n ? 0 : M.value.length - 1; else var e = n ? 2 : 1, t = 2;
try {
M.setSelectionRange(e, t);
} catch (i) {}
}
}
function l() {
p || (M.value = u, i.isWebKit && v.schedule());
}
function c() {
setTimeout(function() {
m && (M.style.cssText = m, m = ""), null == e.renderer.$keepTextAreaAtCursor && (e.renderer.$keepTextAreaAtCursor = !0,
e.renderer.$moveTextAreaToCursor());
}, 0);
}
var M = a.createElement("textarea");
M.className = "ace_text-input", i.isTouchPad && M.setAttribute("x-palm-disable-auto-cap", !0),
M.wrap = "off", M.autocorrect = "off", M.autocapitalize = "off", M.spellcheck = !1,
M.style.bottom = "2000em", n.insertBefore(M, n.firstChild);
var u = "", d = !1, h = !1, S = !1, p = !1, m = "", g = !0;
try {
var f = document.activeElement === M;
} catch (b) {}
t.addListener(M, "blur", function() {
e.onBlur(), f = !1;
}), t.addListener(M, "focus", function() {
f = !0, e.onFocus(), s();
}), this.focus = function() {
M.focus();
}, this.blur = function() {
M.blur();
}, this.isFocused = function() {
return f;
};
var y = r.delayedCall(function() {
f && s(g);
}), v = r.delayedCall(function() {
p || (M.value = u, f && s());
});
i.isWebKit || e.addEventListener("changeSelection", function() {
e.selection.isEmpty() != g && (g = !g, y.schedule());
}), l(), f && e.onFocus();
var D = function(n) {
return 0 === n.selectionStart && n.selectionEnd === n.value.length;
};
if (!M.setSelectionRange && M.createTextRange && (M.setSelectionRange = function(n, e) {
var t = this.createTextRange();
t.collapse(!0), t.moveStart("character", n), t.moveEnd("character", e), t.select();
}, D = function(n) {
try {
var e = n.ownerDocument.selection.createRange();
} catch (t) {}
return e && e.parentElement() == n ? e.text == n.value : !1;
}), i.isOldIE) {
var w = !1, G = function(n) {
if (!w) {
var e = M.value;
if (!p && e && e != u) {
if (n && e == u[0]) return k.schedule();
E(e), w = !0, l(), w = !1;
}
}
}, k = r.delayedCall(G);
t.addListener(M, "propertychange", G);
var R = {
13: 1,
27: 1
};
t.addListener(M, "keyup", function(n) {
return !p || M.value && !R[n.keyCode] || setTimeout(N, 0), (M.value.charCodeAt(0) || 0) < 129 ? k.call() : (p ? L() : Y(),
void 0);
}), t.addListener(M, "keydown", function() {
k.schedule(50);
});
}
var C = function() {
d ? d = !1 : h ? h = !1 : D(M) ? (e.selectAll(), s()) : A && s(e.selection.isEmpty());
}, A = null;
this.setInputHandler = function(n) {
A = n;
}, this.getInputHandler = function() {
return A;
};
var x = !1, E = function(n) {
A && (n = A(n), A = null), S ? (s(), n && e.onPaste(n), S = !1) : n == u.charAt(0) ? x && e.execCommand("del", {
source: "ace"
}) : (n.substring(0, 2) == u ? n = n.substr(2) : n.charAt(0) == u.charAt(0) ? n = n.substr(1) : n.charAt(n.length - 1) == u.charAt(0) && (n = n.slice(0, -1)),
n.charAt(n.length - 1) == u.charAt(0) && (n = n.slice(0, -1)), n && e.onTextInput(n)),
x && (x = !1);
}, P = function() {
if (!p) {
var n = M.value;
E(n), l();
}
}, T = function(n) {
var i = e.getCopyText();
if (!i) return t.preventDefault(n), void 0;
var a = n.clipboardData || window.clipboardData;
if (a && !o) {
var r = a.setData("Text", i);
r && (e.onCut(), t.preventDefault(n));
}
r || (d = !0, M.value = i, M.select(), setTimeout(function() {
d = !1, l(), s(), e.onCut();
}));
}, F = function(n) {
var i = e.getCopyText();
if (!i) return t.preventDefault(n), void 0;
var a = n.clipboardData || window.clipboardData;
if (a && !o) {
var r = a.setData("Text", i);
r && (e.onCopy(), t.preventDefault(n));
}
r || (h = !0, M.value = i, M.select(), setTimeout(function() {
h = !1, l(), s(), e.onCopy();
}));
}, B = function(n) {
var a = n.clipboardData || window.clipboardData;
if (a) {
var r = a.getData("Text");
r && e.onPaste(r), i.isIE && setTimeout(s), t.preventDefault(n);
} else M.value = "", S = !0;
};
t.addCommandKeyListener(M, e.onCommandKey.bind(e)), t.addListener(M, "select", C),
t.addListener(M, "input", P), t.addListener(M, "cut", T), t.addListener(M, "copy", F),
t.addListener(M, "paste", B), "oncut" in M && "oncopy" in M && "onpaste" in M || t.addListener(n, "keydown", function(n) {
if ((!i.isMac || n.metaKey) && n.ctrlKey) switch (n.keyCode) {
case 67:
F(n);
break;
case 86:
B(n);
break;
case 88:
T(n);
}
});
var Y = function() {
p || (p = {}, e.onCompositionStart(), setTimeout(L, 0), e.on("mousedown", N), e.selection.isEmpty() || (e.insert(""),
e.session.markUndoGroup(), e.selection.clearSelection()), e.session.markUndoGroup());
}, L = function() {
if (p && (e.onCompositionUpdate(M.value), p.lastValue && e.undo(), p.lastValue = M.value.replace(/\x01/g, ""),
p.lastValue)) {
var n = e.selection.getRange();
e.insert(p.lastValue), e.session.markUndoGroup(), p.range = e.selection.getRange(),
e.selection.setRange(n), e.selection.clearSelection();
}
}, N = function(n) {
var t = p;
p = !1;
var i = setTimeout(function() {
var n = M.value.replace(/\x01/g, "");
p || (n == t.lastValue ? l() : !t.lastValue && n && (l(), E(n)));
});
A = function(n) {
return clearTimeout(i), n = n.replace(/\x01/g, ""), n == t.lastValue ? "" : (t.lastValue && e.undo(),
n);
}, e.onCompositionEnd(), e.removeListener("mousedown", N), "compositionend" == n.type && t.range && e.selection.setRange(t.range);
}, z = r.delayedCall(L, 50);
t.addListener(M, "compositionstart", Y), t.addListener(M, i.isGecko ? "text" : "keyup", function() {
z.schedule();
}), t.addListener(M, "compositionend", N), this.getElement = function() {
return M;
}, this.setReadOnly = function(n) {
M.readOnly = n;
}, this.onContextMenu = function(n) {
x = !0, m || (m = M.style.cssText), M.style.cssText = "z-index:100000;" + (i.isIE ? "opacity:0.1;" : ""),
s(e.selection.isEmpty()), e._emit("nativecontextmenu", {
target: e,
domEvent: n
});
var r = e.container.getBoundingClientRect(), o = a.computedStyle(e.container), l = r.top + (parseInt(o.borderTopWidth) || 0), u = r.left + (parseInt(r.borderLeftWidth) || 0), d = r.bottom - l - M.clientHeight, h = function(n) {
M.style.left = n.clientX - u - 2 + "px", M.style.top = Math.min(n.clientY - l - 2, d) + "px";
};
h(n), "mousedown" == n.type && (e.renderer.$keepTextAreaAtCursor && (e.renderer.$keepTextAreaAtCursor = null),
i.isWin && t.capture(e.container, h, c));
}, this.onContextMenuClose = c, (!i.isGecko || i.isMac) && t.addListener(M, "contextmenu", function(n) {
e.textInput.onContextMenu(n), c();
});
};
e.TextInput = s;
}), define("ace/mouse/default_handlers", [ "require", "exports", "module", "../lib/dom", "../lib/useragent" ], function(n, e) {
function t(n) {
n.$clickSelection = null;
var e = n.editor;
e.setDefaultHandler("mousedown", this.onMouseDown.bind(n)), e.setDefaultHandler("dblclick", this.onDoubleClick.bind(n)),
e.setDefaultHandler("tripleclick", this.onTripleClick.bind(n)), e.setDefaultHandler("quadclick", this.onQuadClick.bind(n)),
e.setDefaultHandler("mousewheel", this.onMouseWheel.bind(n));
var t = [ "select", "startSelect", "drag", "dragEnd", "dragWait", "dragWaitEnd", "startDrag", "focusWait" ];
t.forEach(function(e) {
n[e] = this[e];
}, this), n.selectByLines = this.extendSelectionBy.bind(n, "getLineRange"), n.selectByWords = this.extendSelectionBy.bind(n, "getWordRange");
}
function i(n, e, t, i) {
return Math.sqrt(Math.pow(t - n, 2) + Math.pow(i - e, 2));
}
function a(n, e) {
if (n.start.row == n.end.row) var t = 2 * e.column - n.start.column - n.end.column; else if (n.start.row != n.end.row - 1 || n.start.column || n.end.column) var t = 2 * e.row - n.start.row - n.end.row; else var t = e.column - 4;
return 0 > t ? {
cursor: n.start,
anchor: n.end
} : {
cursor: n.end,
anchor: n.start
};
}
var r = n("../lib/dom");
n("../lib/useragent");
var o = 0;
(function() {
this.onMouseDown = function(n) {
var e = n.inSelection(), t = n.getDocumentPosition();
this.mousedownEvent = n;
var i = this.editor, a = n.getButton();
if (0 !== a) {
var r = i.getSelectionRange(), o = r.isEmpty();
return o && (i.moveCursorToPosition(t), i.selection.clearSelection()), i.textInput.onContextMenu(n.domEvent),
void 0;
}
return !e || i.isFocused() || (i.focus(), !this.$focusTimout || this.$clickSelection || i.inMultiSelectMode) ? (!e || this.$clickSelection || n.getShiftKey() || i.inMultiSelectMode ? this.startSelect(t) : e && (this.mousedownEvent.time = new Date().getTime(),
this.setState("dragWait")), this.captureMouse(n), n.preventDefault()) : (this.setState("focusWait"),
this.captureMouse(n), n.preventDefault());
}, this.startSelect = function(n) {
n = n || this.editor.renderer.screenToTextCoordinates(this.x, this.y), this.mousedownEvent.getShiftKey() ? this.editor.selection.selectToPosition(n) : this.$clickSelection || (this.editor.moveCursorToPosition(n),
this.editor.selection.clearSelection()), this.setState("select");
}, this.select = function() {
var n, e = this.editor, t = e.renderer.screenToTextCoordinates(this.x, this.y);
if (this.$clickSelection) {
var i = this.$clickSelection.comparePoint(t);
if (-1 == i) n = this.$clickSelection.end; else if (1 == i) n = this.$clickSelection.start; else {
var r = a(this.$clickSelection, t);
t = r.cursor, n = r.anchor;
}
e.selection.setSelectionAnchor(n.row, n.column);
}
e.selection.selectToPosition(t), e.renderer.scrollCursorIntoView();
}, this.extendSelectionBy = function(n) {
var e, t = this.editor, i = t.renderer.screenToTextCoordinates(this.x, this.y), r = t.selection[n](i.row, i.column);
if (this.$clickSelection) {
var o = this.$clickSelection.comparePoint(r.start), s = this.$clickSelection.comparePoint(r.end);
if (-1 == o && 0 >= s) e = this.$clickSelection.end, (r.end.row != i.row || r.end.column != i.column) && (i = r.start); else if (1 == s && o >= 0) e = this.$clickSelection.start,
(r.start.row != i.row || r.start.column != i.column) && (i = r.end); else if (-1 == o && 1 == s) i = r.end,
e = r.start; else {
var l = a(this.$clickSelection, i);
i = l.cursor, e = l.anchor;
}
t.selection.setSelectionAnchor(e.row, e.column);
}
t.selection.selectToPosition(i), t.renderer.scrollCursorIntoView();
}, this.startDrag = function() {
var n = this.editor;
this.setState("drag"), this.dragRange = n.getSelectionRange();
var e = n.getSelectionStyle();
this.dragSelectionMarker = n.session.addMarker(this.dragRange, "ace_selection", e),
n.clearSelection(), r.addCssClass(n.container, "ace_dragging"), this.$dragKeybinding || (this.$dragKeybinding = {
handleKeyboard: function(n, e, t) {
return "esc" == t ? {
command: this.command
} : void 0;
},
command: {
exec: function(n) {
var e = n.$mouseHandler;
e.dragCursor = null, e.dragEnd(), e.startSelect();
}
}
}), n.keyBinding.addKeyboardHandler(this.$dragKeybinding);
}, this.focusWait = function() {
var n = i(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y), e = new Date().getTime();
(n > o || e - this.mousedownEvent.time > this.$focusTimout) && this.startSelect(this.mousedownEvent.getDocumentPosition());
}, this.dragWait = function() {
var n = i(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y), e = new Date().getTime(), t = this.editor;
n > o ? this.startSelect(this.mousedownEvent.getDocumentPosition()) : e - this.mousedownEvent.time > t.$mouseHandler.$dragDelay && this.startDrag();
}, this.dragWaitEnd = function(n) {
this.mousedownEvent.domEvent = n, this.startSelect();
}, this.drag = function() {
var n = this.editor;
this.dragCursor = n.renderer.screenToTextCoordinates(this.x, this.y), n.moveCursorToPosition(this.dragCursor),
n.renderer.scrollCursorIntoView();
}, this.dragEnd = function(n) {
var e = this.editor, t = this.dragCursor, i = this.dragRange;
if (r.removeCssClass(e.container, "ace_dragging"), e.session.removeMarker(this.dragSelectionMarker),
e.keyBinding.removeKeyboardHandler(this.$dragKeybinding), t) {
if (e.clearSelection(), n && (n.ctrlKey || n.altKey)) {
var a = e.session, o = i;
o.end = a.insert(t, a.getTextRange(i)), o.start = t;
} else {
if (i.contains(t.row, t.column)) return;
var o = e.moveText(i, t);
}
o && e.selection.setSelectionRange(o);
}
}, this.onDoubleClick = function(n) {
var e = n.getDocumentPosition(), t = this.editor, i = t.session, a = i.getBracketRange(e);
return a ? (a.isEmpty() && (a.start.column--, a.end.column++), this.$clickSelection = a,
this.setState("select"), void 0) : (this.$clickSelection = t.selection.getWordRange(e.row, e.column),
this.setState("selectByWords"), void 0);
}, this.onTripleClick = function(n) {
var e = n.getDocumentPosition(), t = this.editor;
this.setState("selectByLines"), this.$clickSelection = t.selection.getLineRange(e.row);
}, this.onQuadClick = function() {
var n = this.editor;
n.selectAll(), this.$clickSelection = n.getSelectionRange(), this.setState("null");
}, this.onMouseWheel = function(n) {
if (!n.getShiftKey() && !n.getAccelKey()) {
var e = n.domEvent.timeStamp, t = e - (this.$lastScrollTime || 0), i = this.editor, a = i.renderer.isScrollableBy(n.wheelX * n.speed, n.wheelY * n.speed);
return a || 200 > t ? (this.$lastScrollTime = e, i.renderer.scrollBy(n.wheelX * n.speed, n.wheelY * n.speed),
n.stop()) : void 0;
}
};
}).call(t.prototype), e.DefaultHandlers = t;
}), define("ace/mouse/default_gutter_handler", [ "require", "exports", "module", "../lib/dom", "../lib/event" ], function(n, e) {
function t(n) {
function e() {
u = i.createElement("div"), u.className = "ace_gutter-tooltip", u.style.display = "none",
s.container.appendChild(u);
}
function t() {
u || e();
var n = M.getDocumentPosition().row, t = l.$annotations[n];
if (!t) return r();
var i = s.session.getLength();
if (n == i) {
var a = s.renderer.pixelToScreenCoordinates(0, M.y).row, c = M.$pos;
if (a > s.session.documentToScreenRow(c.row, c.column)) return r();
}
d != t && (d = t.text.join("<br/>"), u.style.display = "block", u.innerHTML = d,
s.on("mousewheel", r), o(M));
}
function r() {
c && (c = clearTimeout(c)), d && (u.style.display = "none", d = null, s.removeEventListener("mousewheel", r));
}
function o(n) {
var e = s.renderer.$gutter.getBoundingClientRect();
u.style.left = n.x + 15 + "px", n.y + 3 * s.renderer.lineHeight + 15 < e.bottom ? (u.style.bottom = "",
u.style.top = n.y + 15 + "px") : (u.style.top = "", u.style.bottom = e.bottom - n.y + 5 + "px");
}
var s = n.editor, l = s.renderer.$gutterLayer;
n.editor.setDefaultHandler("guttermousedown", function(e) {
if (s.isFocused() && 0 == e.getButton()) {
var t = l.getRegion(e);
if ("foldWidgets" != t) {
var i = e.getDocumentPosition().row, a = s.session.selection;
if (e.getShiftKey()) a.selectTo(i, 0); else {
if (2 == e.domEvent.detail) return s.selectAll(), e.preventDefault();
n.$clickSelection = s.selection.getLineRange(i);
}
return n.captureMouse(e, "selectByLines"), e.preventDefault();
}
}
});
var c, M, u, d;
n.editor.setDefaultHandler("guttermousemove", function(e) {
var a = e.domEvent.target || e.domEvent.srcElement;
return i.hasCssClass(a, "ace_fold-widget") ? r() : (d && o(e), M = e, c || (c = setTimeout(function() {
c = null, M && !n.isMousePressed ? t() : r();
}, 50)), void 0);
}), a.addListener(s.renderer.$gutter, "mouseout", function() {
M = null, d && !c && (c = setTimeout(function() {
c = null, r();
}, 50));
}), s.on("changeSession", r);
}
var i = n("../lib/dom"), a = n("../lib/event");
e.GutterHandler = t;
}), define("ace/mouse/mouse_event", [ "require", "exports", "module", "../lib/event", "../lib/useragent" ], function(n, e) {
var t = n("../lib/event"), i = n("../lib/useragent"), a = e.MouseEvent = function(n, e) {
this.domEvent = n, this.editor = e, this.x = this.clientX = n.clientX, this.y = this.clientY = n.clientY,
this.$pos = null, this.$inSelection = null, this.propagationStopped = !1, this.defaultPrevented = !1;
};
(function() {
this.stopPropagation = function() {
t.stopPropagation(this.domEvent), this.propagationStopped = !0;
}, this.preventDefault = function() {
t.preventDefault(this.domEvent), this.defaultPrevented = !0;
}, this.stop = function() {
this.stopPropagation(), this.preventDefault();
}, this.getDocumentPosition = function() {
return this.$pos ? this.$pos : (this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY),
this.$pos);
}, this.inSelection = function() {
if (null !== this.$inSelection) return this.$inSelection;
var n = this.editor;
if (n.getReadOnly()) this.$inSelection = !1; else {
var e = n.getSelectionRange();
if (e.isEmpty()) this.$inSelection = !1; else {
var t = this.getDocumentPosition();
this.$inSelection = e.contains(t.row, t.column);
}
}
return this.$inSelection;
}, this.getButton = function() {
return t.getButton(this.domEvent);
}, this.getShiftKey = function() {
return this.domEvent.shiftKey;
}, this.getAccelKey = i.isMac ? function() {
return this.domEvent.metaKey;
} : function() {
return this.domEvent.ctrlKey;
};
}).call(a.prototype);
}), define("ace/mouse/dragdrop", [ "require", "exports", "module", "../lib/event" ], function(n, e) {
var t = n("../lib/event"), i = function(n) {
function e() {
c = u.selection.toOrientedRange(), r = u.session.addMarker(c, "ace_selection", u.getSelectionStyle()),
u.clearSelection(), clearInterval(l), l = setInterval(S, 20), d = 0, t.addListener(document, "mousemove", a);
}
function i() {
clearInterval(l), u.session.removeMarker(r), r = null, u.selection.fromOrientedRange(c),
d = 0, t.removeListener(document, "mousemove", a);
}
function a() {
null == p && (p = setTimeout(function() {
null != p && r && i();
}, 20));
}
var r, o, s, l, c, M, u = n.editor, d = 0, h = u.container;
t.addListener(h, "dragenter", function(n) {
if (!u.getReadOnly()) {
var i = n.dataTransfer.types;
if (!i || -1 !== Array.prototype.indexOf.call(i, "text/plain")) return r || e(),
d++, t.preventDefault(n);
}
}), t.addListener(h, "dragover", function(n) {
if (!u.getReadOnly()) {
var e = n.dataTransfer.types;
if (!e || -1 !== Array.prototype.indexOf.call(e, "text/plain")) return null !== p && (p = null),
o = n.clientX, s = n.clientY, t.preventDefault(n);
}
});
var S = function() {
M = u.renderer.screenToTextCoordinates(o, s), u.moveCursorToPosition(M), u.renderer.scrollCursorIntoView();
};
t.addListener(h, "dragleave", function(n) {
return d--, 0 >= d && r ? (i(), t.preventDefault(n)) : void 0;
}), t.addListener(h, "drop", function(n) {
return r ? (c.end = u.session.insert(M, n.dataTransfer.getData("Text")), c.start = M,
i(), u.focus(), t.preventDefault(n)) : void 0;
});
var p = null;
};
e.DragdropHandler = i;
}), define("ace/lib/net", [ "require", "exports", "module", "./dom" ], function(n, e) {
var t = n("./dom");
e.get = function(n, e) {
var t = new XMLHttpRequest();
t.open("GET", n, !0), t.onreadystatechange = function() {
4 === t.readyState && e(t.responseText);
}, t.send(null);
}, e.loadScript = function(n, e) {
var i = t.getDocumentHead(), a = document.createElement("script");
a.src = n, i.appendChild(a), a.onload = a.onreadystatechange = function(n, t) {
(t || !a.readyState || "loaded" == a.readyState || "complete" == a.readyState) && (a = a.onload = a.onreadystatechange = null,
t || e());
};
};
}), define("ace/lib/event_emitter", [ "require", "exports", "module" ], function(n, e) {
var t = {}, i = function() {
this.propagationStopped = !0;
}, a = function() {
this.defaultPrevented = !0;
};
t._emit = t._dispatchEvent = function(n, e) {
this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
var t = this._eventRegistry[n] || [], r = this._defaultHandlers[n];
if (t.length || r) {
"object" == typeof e && e || (e = {}), e.type || (e.type = n), e.stopPropagation || (e.stopPropagation = i),
e.preventDefault || (e.preventDefault = a), t = t.slice();
for (var o = 0; o < t.length && (t[o](e, this), !e.propagationStopped); o++) ;
return r && !e.defaultPrevented ? r(e, this) : void 0;
}
}, t._signal = function(n, e) {
var t = (this._eventRegistry || {})[n];
if (t) {
t = t.slice();
for (var i = 0; i < t.length; i++) t[i](e, this);
}
}, t.once = function(n, e) {
var t = this;
e && this.addEventListener(n, function i() {
t.removeEventListener(n, i), e.apply(null, arguments);
});
}, t.setDefaultHandler = function(n, e) {
var t = this._defaultHandlers;
if (t || (t = this._defaultHandlers = {
_disabled_: {}
}), t[n]) {
var i = t[n], a = t._disabled_[n];
a || (t._disabled_[n] = a = []), a.push(i);
var r = a.indexOf(e);
-1 != r && a.splice(r, 1);
}
t[n] = e;
}, t.removeDefaultHandler = function(n, e) {
var t = this._defaultHandlers;
if (t) {
var i = t._disabled_[n];
if (t[n] == e) t[n], i && this.setDefaultHandler(n, i.pop()); else if (i) {
var a = i.indexOf(e);
-1 != a && i.splice(a, 1);
}
}
}, t.on = t.addEventListener = function(n, e, t) {
this._eventRegistry = this._eventRegistry || {};
var i = this._eventRegistry[n];
return i || (i = this._eventRegistry[n] = []), -1 == i.indexOf(e) && i[t ? "unshift" : "push"](e),
e;
}, t.off = t.removeListener = t.removeEventListener = function(n, e) {
this._eventRegistry = this._eventRegistry || {};
var t = this._eventRegistry[n];
if (t) {
var i = t.indexOf(e);
-1 !== i && t.splice(i, 1);
}
}, t.removeAllListeners = function(n) {
this._eventRegistry && (this._eventRegistry[n] = []);
}, e.EventEmitter = t;
}), define("ace/config", [ "require", "exports", "module", "./lib/lang", "./lib/oop", "./lib/net", "./lib/event_emitter" ], function(n, e, t) {
"no use strict";
function i(n) {
return n.replace(/-(.)/g, function(n, e) {
return e.toUpperCase();
});
}
var a = n("./lib/lang"), r = n("./lib/oop"), o = n("./lib/net"), s = n("./lib/event_emitter").EventEmitter, l = function() {
return this;
}(), c = {
packaged: !1,
workerPath: null,
modePath: null,
themePath: null,
basePath: "",
suffix: ".js",
$moduleUrls: {}
};
e.get = function(n) {
if (!c.hasOwnProperty(n)) throw new Error("Unknown config key: " + n);
return c[n];
}, e.set = function(n, e) {
if (!c.hasOwnProperty(n)) throw new Error("Unknown config key: " + n);
c[n] = e;
}, e.all = function() {
return a.copyObject(c);
}, r.implement(e, s), e.moduleUrl = function(n, e) {
if (c.$moduleUrls[n]) return c.$moduleUrls[n];
var t = n.split("/");
e = e || t[t.length - 2] || "";
var i = "snippets" == e ? "/" : "-", a = t[t.length - 1];
if ("-" == i) {
var r = new RegExp("^" + e + "[-_]|[-_]" + e + "$", "g");
a = a.replace(r, "");
}
(!a || a == e) && t.length > 1 && (a = t[t.length - 2]);
var o = c[e + "Path"];
return null == o ? o = c.basePath : "/" == i && (e = i = ""), o && "/" != o.slice(-1) && (o += "/"),
o + e + i + a + this.get("suffix");
}, e.setModuleUrl = function(n, e) {
return c.$moduleUrls[n] = e;
}, e.$loading = {}, e.loadModule = function(t, i) {
var a, r;
Array.isArray(t) && (r = t[0], t = t[1]);
try {
a = n(t);
} catch (s) {}
if (a && !e.$loading[t]) return i && i(a);
if (e.$loading[t] || (e.$loading[t] = []), e.$loading[t].push(i), !(e.$loading[t].length > 1)) {
var l = function() {
n([ t ], function(n) {
e._emit("load.module", {
name: t,
module: n
});
var i = e.$loading[t];
e.$loading[t] = null, i.forEach(function(e) {
e && e(n);
});
});
};
return e.get("packaged") ? (o.loadScript(e.moduleUrl(t, r), l), void 0) : l();
}
}, e.init = function() {
if (c.packaged = n.packaged || t.packaged || l.define && define.packaged, !l.document) return "";
for (var a = {}, r = "", o = document.getElementsByTagName("script"), s = 0; s < o.length; s++) {
var M = o[s], u = M.src || M.getAttribute("src");
if (u) {
for (var d = M.attributes, h = 0, S = d.length; S > h; h++) {
var p = d[h];
0 === p.name.indexOf("data-ace-") && (a[i(p.name.replace(/^data-ace-/, ""))] = p.value);
}
var m = u.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);
m && (r = m[1]);
}
}
r && (a.base = a.base || r, a.packaged = !0), a.basePath = a.base, a.workerPath = a.workerPath || a.base,
a.modePath = a.modePath || a.base, a.themePath = a.themePath || a.base, delete a.base;
for (var g in a) "undefined" != typeof a[g] && e.set(g, a[g]);
};
var M = {
setOptions: function(n) {
Object.keys(n).forEach(function(e) {
this.setOption(e, n[e]);
}, this);
},
getOptions: function(n) {
var e = {};
return n ? Array.isArray(n) || (e = n, n = Object.keys(e)) : n = Object.keys(this.$options),
n.forEach(function(n) {
e[n] = this.getOption(n);
}, this), e;
},
setOption: function(n, e) {
if (this["$" + n] !== e) {
var t = this.$options[n];
if (!t) return void 0;
if (t.forwardTo) return this[t.forwardTo] && this[t.forwardTo].setOption(n, e);
t.handlesSet || (this["$" + n] = e), t && t.set && t.set.call(this, e);
}
},
getOption: function(n) {
var e = this.$options[n];
return e ? e.forwardTo ? this[e.forwardTo] && this[e.forwardTo].getOption(n) : e && e.get ? e.get.call(this) : this["$" + n] : void 0;
}
}, u = {};
e.defineOptions = function(n, e, t) {
return n.$options || (u[e] = n.$options = {}), Object.keys(t).forEach(function(e) {
var i = t[e];
"string" == typeof i && (i = {
forwardTo: i
}), i.name || (i.name = e), n.$options[i.name] = i, "initialValue" in i && (n["$" + i.name] = i.initialValue);
}), r.implement(n, M), this;
}, e.resetOptions = function(n) {
Object.keys(n.$options).forEach(function(e) {
var t = n.$options[e];
"value" in t && n.setOption(e, t.value);
});
}, e.setDefaultValue = function(n, t, i) {
var a = u[n] || (u[n] = {});
a[t] && (a.forwardTo ? e.setDefaultValue(a.forwardTo, t, i) : a[t].value = i);
}, e.setDefaultValues = function(n, t) {
Object.keys(t).forEach(function(i) {
e.setDefaultValue(n, i, t[i]);
});
};
}), define("ace/mouse/mouse_handler", [ "require", "exports", "module", "../lib/event", "../lib/useragent", "./default_handlers", "./default_gutter_handler", "./mouse_event", "./dragdrop", "../config" ], function(n, e) {
var t = n("../lib/event"), i = n("../lib/useragent"), a = n("./default_handlers").DefaultHandlers, r = n("./default_gutter_handler").GutterHandler, o = n("./mouse_event").MouseEvent, s = n("./dragdrop").DragdropHandler, l = n("../config"), c = function(n) {
this.editor = n, new a(this), new r(this), new s(this);
var e = n.renderer.getMouseEventTarget();
t.addListener(e, "click", this.onMouseEvent.bind(this, "click")), t.addListener(e, "mousemove", this.onMouseMove.bind(this, "mousemove")),
t.addMultiMouseDownListener(e, [ 300, 300, 250 ], this, "onMouseEvent"), n.renderer.scrollBarV && (t.addMultiMouseDownListener(n.renderer.scrollBarV.inner, [ 300, 300, 250 ], this, "onMouseEvent"),
t.addMultiMouseDownListener(n.renderer.scrollBarH.inner, [ 300, 300, 250 ], this, "onMouseEvent")),
t.addMouseWheelListener(n.container, this.onMouseWheel.bind(this, "mousewheel"));
var i = n.renderer.$gutter;
t.addListener(i, "mousedown", this.onMouseEvent.bind(this, "guttermousedown")),
t.addListener(i, "click", this.onMouseEvent.bind(this, "gutterclick")), t.addListener(i, "dblclick", this.onMouseEvent.bind(this, "gutterdblclick")),
t.addListener(i, "mousemove", this.onMouseEvent.bind(this, "guttermousemove")),
t.addListener(e, "mousedown", function(e) {
return n.focus(), t.preventDefault(e);
}), t.addListener(i, "mousedown", function(e) {
return n.focus(), t.preventDefault(e);
});
};
(function() {
this.onMouseEvent = function(n, e) {
this.editor._emit(n, new o(e, this.editor));
}, this.onMouseMove = function(n, e) {
var t = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;
t && t.length && this.editor._emit(n, new o(e, this.editor));
}, this.onMouseWheel = function(n, e) {
var t = new o(e, this.editor);
t.speed = 2 * this.$scrollSpeed, t.wheelX = e.wheelX, t.wheelY = e.wheelY, this.editor._emit(n, t);
}, this.setState = function(n) {
this.state = n;
}, this.captureMouse = function(n, e) {
e && this.setState(e), this.x = n.x, this.y = n.y, this.isMousePressed = !0;
var a = this.editor.renderer;
a.$keepTextAreaAtCursor && (a.$keepTextAreaAtCursor = null);
var r = this, o = function(n) {
r.x = n.clientX, r.y = n.clientY;
}, s = function(n) {
clearInterval(c), l(), r[r.state + "End"] && r[r.state + "End"](n), r.$clickSelection = null,
null == a.$keepTextAreaAtCursor && (a.$keepTextAreaAtCursor = !0, a.$moveTextAreaToCursor()),
r.isMousePressed = !1, r.onMouseEvent("mouseup", n);
}, l = function() {
r[r.state] && r[r.state]();
};
if (i.isOldIE && "dblclick" == n.domEvent.type) return setTimeout(function() {
s(n);
});
t.capture(this.editor.container, o, s);
var c = setInterval(l, 20);
};
}).call(c.prototype), l.defineOptions(c.prototype, "mouseHandler", {
scrollSpeed: {
initialValue: 2
},
dragDelay: {
initialValue: 150
},
focusTimout: {
initialValue: 0
}
}), e.MouseHandler = c;
}), define("ace/mouse/fold_handler", [ "require", "exports", "module" ], function(n, e) {
function t(n) {
n.on("click", function(e) {
var t = e.getDocumentPosition(), i = n.session, a = i.getFoldAt(t.row, t.column, 1);
a && (e.getAccelKey() ? i.removeFold(a) : i.expandFold(a), e.stop());
}), n.on("gutterclick", function(e) {
var t = n.renderer.$gutterLayer.getRegion(e);
if ("foldWidgets" == t) {
var i = e.getDocumentPosition().row, a = n.session;
a.foldWidgets && a.foldWidgets[i] && n.session.onFoldWidgetClick(i, e), n.isFocused() || n.focus(),
e.stop();
}
}), n.on("gutterdblclick", function(e) {
var t = n.renderer.$gutterLayer.getRegion(e);
if ("foldWidgets" == t) {
var i = e.getDocumentPosition().row, a = n.session, r = a.getParentFoldRangeData(i, !0), o = r.range || r.firstRange;
if (o) {
var i = o.start.row, s = a.getFoldAt(i, a.getLine(i).length, 1);
s ? a.removeFold(s) : (a.addFold("...", o), n.renderer.scrollCursorIntoView({
row: o.start.row,
column: 0
}));
}
e.stop();
}
});
}
e.FoldHandler = t;
}), define("ace/keyboard/keybinding", [ "require", "exports", "module", "../lib/keys", "../lib/event" ], function(n, e) {
var t = n("../lib/keys"), i = n("../lib/event"), a = function(n) {
this.$editor = n, this.$data = {}, this.$handlers = [], this.setDefaultHandler(n.commands);
};
(function() {
this.setDefaultHandler = function(n) {
this.removeKeyboardHandler(this.$defaultHandler), this.$defaultHandler = n, this.addKeyboardHandler(n, 0),
this.$data = {
editor: this.$editor
};
}, this.setKeyboardHandler = function(n) {
var e = this.$handlers;
if (e[e.length - 1] != n) {
for (;e[e.length - 1] && e[e.length - 1] != this.$defaultHandler; ) this.removeKeyboardHandler(e[e.length - 1]);
this.addKeyboardHandler(n, 1);
}
}, this.addKeyboardHandler = function(n, e) {
if (n) {
var t = this.$handlers.indexOf(n);
-1 != t && this.$handlers.splice(t, 1), void 0 == e ? this.$handlers.push(n) : this.$handlers.splice(e, 0, n),
-1 == t && n.attach && n.attach(this.$editor);
}
}, this.removeKeyboardHandler = function(n) {
var e = this.$handlers.indexOf(n);
return -1 == e ? !1 : (this.$handlers.splice(e, 1), n.detach && n.detach(this.$editor),
!0);
}, this.getKeyboardHandler = function() {
return this.$handlers[this.$handlers.length - 1];
}, this.$callKeyboardHandlers = function(n, e, t, a) {
for (var r, o = !1, s = this.$editor.commands, l = this.$handlers.length; l-- && (r = this.$handlers[l].handleKeyboard(this.$data, n, e, t, a),
!(r && r.command && (o = "null" == r.command ? !0 : s.exec(r.command, this.$editor, r.args, a),
o && a && -1 != n && 1 != r.passEvent && 1 != r.command.passEvent && i.stopEvent(a),
o))); ) ;
return o;
}, this.onCommandKey = function(n, e, i) {
var a = t.keyCodeToString(i);
this.$callKeyboardHandlers(e, a, i, n);
}, this.onTextInput = function(n) {
var e = this.$callKeyboardHandlers(-1, n);
e || this.$editor.commands.exec("insertstring", this.$editor, n);
};
}).call(a.prototype), e.KeyBinding = a;
}), define("ace/range", [ "require", "exports", "module" ], function(n, e) {
var t = function(n, e) {
return n.row - e.row || n.column - e.column;
}, i = function(n, e, t, i) {
this.start = {
row: n,
column: e
}, this.end = {
row: t,
column: i
};
};
(function() {
this.isEqual = function(n) {
return this.start.row === n.start.row && this.end.row === n.end.row && this.start.column === n.start.column && this.end.column === n.end.column;
}, this.toString = function() {
return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]";
}, this.contains = function(n, e) {
return 0 == this.compare(n, e);
}, this.compareRange = function(n) {
var e, t = n.end, i = n.start;
return e = this.compare(t.row, t.column), 1 == e ? (e = this.compare(i.row, i.column),
1 == e ? 2 : 0 == e ? 1 : 0) : -1 == e ? -2 : (e = this.compare(i.row, i.column),
-1 == e ? -1 : 1 == e ? 42 : 0);
}, this.comparePoint = function(n) {
return this.compare(n.row, n.column);
}, this.containsRange = function(n) {
return 0 == this.comparePoint(n.start) && 0 == this.comparePoint(n.end);
}, this.intersects = function(n) {
var e = this.compareRange(n);
return -1 == e || 0 == e || 1 == e;
}, this.isEnd = function(n, e) {
return this.end.row == n && this.end.column == e;
}, this.isStart = function(n, e) {
return this.start.row == n && this.start.column == e;
}, this.setStart = function(n, e) {
"object" == typeof n ? (this.start.column = n.column, this.start.row = n.row) : (this.start.row = n,
this.start.column = e);
}, this.setEnd = function(n, e) {
"object" == typeof n ? (this.end.column = n.column, this.end.row = n.row) : (this.end.row = n,
this.end.column = e);
}, this.inside = function(n, e) {
return 0 == this.compare(n, e) ? this.isEnd(n, e) || this.isStart(n, e) ? !1 : !0 : !1;
}, this.insideStart = function(n, e) {
return 0 == this.compare(n, e) ? this.isEnd(n, e) ? !1 : !0 : !1;
}, this.insideEnd = function(n, e) {
return 0 == this.compare(n, e) ? this.isStart(n, e) ? !1 : !0 : !1;
}, this.compare = function(n, e) {
return this.isMultiLine() || n !== this.start.row ? n < this.start.row ? -1 : n > this.end.row ? 1 : this.start.row === n ? e >= this.start.column ? 0 : -1 : this.end.row === n ? e <= this.end.column ? 0 : 1 : 0 : e < this.start.column ? -1 : e > this.end.column ? 1 : 0;
}, this.compareStart = function(n, e) {
return this.start.row == n && this.start.column == e ? -1 : this.compare(n, e);
}, this.compareEnd = function(n, e) {
return this.end.row == n && this.end.column == e ? 1 : this.compare(n, e);
}, this.compareInside = function(n, e) {
return this.end.row == n && this.end.column == e ? 1 : this.start.row == n && this.start.column == e ? -1 : this.compare(n, e);
}, this.clipRows = function(n, e) {
if (this.end.row > e) var t = {
row: e + 1,
column: 0
}; else if (this.end.row < n) var t = {
row: n,
column: 0
};
if (this.start.row > e) var a = {
row: e + 1,
column: 0
}; else if (this.start.row < n) var a = {
row: n,
column: 0
};
return i.fromPoints(a || this.start, t || this.end);
}, this.extend = function(n, e) {
var t = this.compare(n, e);
if (0 == t) return this;
if (-1 == t) var a = {
row: n,
column: e
}; else var r = {
row: n,
column: e
};
return i.fromPoints(a || this.start, r || this.end);
}, this.isEmpty = function() {
return this.start.row === this.end.row && this.start.column === this.end.column;
}, this.isMultiLine = function() {
return this.start.row !== this.end.row;
}, this.clone = function() {
return i.fromPoints(this.start, this.end);
}, this.collapseRows = function() {
return 0 == this.end.column ? new i(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0) : new i(this.start.row, 0, this.end.row, 0);
}, this.toScreenRange = function(n) {
var e = n.documentToScreenPosition(this.start), t = n.documentToScreenPosition(this.end);
return new i(e.row, e.column, t.row, t.column);
}, this.moveBy = function(n, e) {
this.start.row += n, this.start.column += e, this.end.row += n, this.end.column += e;
};
}).call(i.prototype), i.fromPoints = function(n, e) {
return new i(n.row, n.column, e.row, e.column);
}, i.comparePoints = t, i.comparePoints = function(n, e) {
return n.row - e.row || n.column - e.column;
}, e.Range = i;
}), define("ace/selection", [ "require", "exports", "module", "./lib/oop", "./lib/lang", "./lib/event_emitter", "./range" ], function(n, e) {
var t = n("./lib/oop"), i = n("./lib/lang"), a = n("./lib/event_emitter").EventEmitter, r = n("./range").Range, o = function(n) {
this.session = n, this.doc = n.getDocument(), this.clearSelection(), this.lead = this.selectionLead = this.doc.createAnchor(0, 0),
this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);
var e = this;
this.lead.on("change", function(n) {
e._emit("changeCursor"), e.$isEmpty || e._emit("changeSelection"), e.$keepDesiredColumnOnChange || n.old.column == n.value.column || (e.$desiredColumn = null);
}), this.selectionAnchor.on("change", function() {
e.$isEmpty || e._emit("changeSelection");
});
};
(function() {
t.implement(this, a), this.isEmpty = function() {
return this.$isEmpty || this.anchor.row == this.lead.row && this.anchor.column == this.lead.column;
}, this.isMultiLine = function() {
return this.isEmpty() ? !1 : this.getRange().isMultiLine();
}, this.getCursor = function() {
return this.lead.getPosition();
}, this.setSelectionAnchor = function(n, e) {
this.anchor.setPosition(n, e), this.$isEmpty && (this.$isEmpty = !1, this._emit("changeSelection"));
}, this.getSelectionAnchor = function() {
return this.$isEmpty ? this.getSelectionLead() : this.anchor.getPosition();
}, this.getSelectionLead = function() {
return this.lead.getPosition();
}, this.shiftSelection = function(n) {
if (this.$isEmpty) return this.moveCursorTo(this.lead.row, this.lead.column + n),
void 0;
var e = this.getSelectionAnchor(), t = this.getSelectionLead(), i = this.isBackwards();
i && 0 === e.column || this.setSelectionAnchor(e.row, e.column + n), (i || 0 !== t.column) && this.$moveSelection(function() {
this.moveCursorTo(t.row, t.column + n);
});
}, this.isBackwards = function() {
var n = this.anchor, e = this.lead;
return n.row > e.row || n.row == e.row && n.column > e.column;
}, this.getRange = function() {
var n = this.anchor, e = this.lead;
return this.isEmpty() ? r.fromPoints(e, e) : this.isBackwards() ? r.fromPoints(e, n) : r.fromPoints(n, e);
}, this.clearSelection = function() {
this.$isEmpty || (this.$isEmpty = !0, this._emit("changeSelection"));
}, this.selectAll = function() {
var n = this.doc.getLength() - 1;
this.setSelectionAnchor(0, 0), this.moveCursorTo(n, this.doc.getLine(n).length);
}, this.setRange = this.setSelectionRange = function(n, e) {
e ? (this.setSelectionAnchor(n.end.row, n.end.column), this.selectTo(n.start.row, n.start.column)) : (this.setSelectionAnchor(n.start.row, n.start.column),
this.selectTo(n.end.row, n.end.column)), this.getRange().isEmpty() && (this.$isEmpty = !0),
this.$desiredColumn = null;
}, this.$moveSelection = function(n) {
var e = this.lead;
this.$isEmpty && this.setSelectionAnchor(e.row, e.column), n.call(this);
}, this.selectTo = function(n, e) {
this.$moveSelection(function() {
this.moveCursorTo(n, e);
});
}, this.selectToPosition = function(n) {
this.$moveSelection(function() {
this.moveCursorToPosition(n);
});
}, this.selectUp = function() {
this.$moveSelection(this.moveCursorUp);
}, this.selectDown = function() {
this.$moveSelection(this.moveCursorDown);
}, this.selectRight = function() {
this.$moveSelection(this.moveCursorRight);
}, this.selectLeft = function() {
this.$moveSelection(this.moveCursorLeft);
}, this.selectLineStart = function() {
this.$moveSelection(this.moveCursorLineStart);
}, this.selectLineEnd = function() {
this.$moveSelection(this.moveCursorLineEnd);
}, this.selectFileEnd = function() {
this.$moveSelection(this.moveCursorFileEnd);
}, this.selectFileStart = function() {
this.$moveSelection(this.moveCursorFileStart);
}, this.selectWordRight = function() {
this.$moveSelection(this.moveCursorWordRight);
}, this.selectWordLeft = function() {
this.$moveSelection(this.moveCursorWordLeft);
}, this.getWordRange = function(n, e) {
if ("undefined" == typeof e) {
var t = n || this.lead;
n = t.row, e = t.column;
}
return this.session.getWordRange(n, e);
}, this.selectWord = function() {
this.setSelectionRange(this.getWordRange());
}, this.selectAWord = function() {
var n = this.getCursor(), e = this.session.getAWordRange(n.row, n.column);
this.setSelectionRange(e);
}, this.getLineRange = function(n, e) {
var t, i = "number" == typeof n ? n : this.lead.row, a = this.session.getFoldLine(i);
return a ? (i = a.start.row, t = a.end.row) : t = i, e === !0 ? new r(i, 0, t, this.session.getLine(t).length) : new r(i, 0, t + 1, 0);
}, this.selectLine = function() {
this.setSelectionRange(this.getLineRange());
}, this.moveCursorUp = function() {
this.moveCursorBy(-1, 0);
}, this.moveCursorDown = function() {
this.moveCursorBy(1, 0);
}, this.moveCursorLeft = function() {
var n, e = this.lead.getPosition();
if (n = this.session.getFoldAt(e.row, e.column, -1)) this.moveCursorTo(n.start.row, n.start.column); else if (0 == e.column) e.row > 0 && this.moveCursorTo(e.row - 1, this.doc.getLine(e.row - 1).length); else {
var t = this.session.getTabSize();
this.session.isTabStop(e) && this.doc.getLine(e.row).slice(e.column - t, e.column).split(" ").length - 1 == t ? this.moveCursorBy(0, -t) : this.moveCursorBy(0, -1);
}
}, this.moveCursorRight = function() {
var n, e = this.lead.getPosition();
if (n = this.session.getFoldAt(e.row, e.column, 1)) this.moveCursorTo(n.end.row, n.end.column); else if (this.lead.column == this.doc.getLine(this.lead.row).length) this.lead.row < this.doc.getLength() - 1 && this.moveCursorTo(this.lead.row + 1, 0); else {
var t = this.session.getTabSize(), e = this.lead;
this.session.isTabStop(e) && this.doc.getLine(e.row).slice(e.column, e.column + t).split(" ").length - 1 == t ? this.moveCursorBy(0, t) : this.moveCursorBy(0, 1);
}
}, this.moveCursorLineStart = function() {
var n = this.lead.row, e = this.lead.column, t = this.session.documentToScreenRow(n, e), i = this.session.screenToDocumentPosition(t, 0), a = this.session.getDisplayLine(n, null, i.row, i.column), r = a.match(/^\s*/);
r[0].length == e || this.session.$useEmacsStyleLineStart || (i.column += r[0].length),
this.moveCursorToPosition(i);
}, this.moveCursorLineEnd = function() {
var n = this.lead, e = this.session.getDocumentLastRowColumnPosition(n.row, n.column);
if (this.lead.column == e.column) {
var t = this.session.getLine(e.row);
if (e.column == t.length) {
var i = t.search(/\s+$/);
i > 0 && (e.column = i);
}
}
this.moveCursorTo(e.row, e.column);
}, this.moveCursorFileEnd = function() {
var n = this.doc.getLength() - 1, e = this.doc.getLine(n).length;
this.moveCursorTo(n, e);
}, this.moveCursorFileStart = function() {
this.moveCursorTo(0, 0);
}, this.moveCursorLongWordRight = function() {
var n, e = this.lead.row, t = this.lead.column, i = this.doc.getLine(e), a = i.substring(t);
this.session.nonTokenRe.lastIndex = 0, this.session.tokenRe.lastIndex = 0;
var r = this.session.getFoldAt(e, t, 1);
return r ? (this.moveCursorTo(r.end.row, r.end.column), void 0) : ((n = this.session.nonTokenRe.exec(a)) && (t += this.session.nonTokenRe.lastIndex,
this.session.nonTokenRe.lastIndex = 0, a = i.substring(t)), t >= i.length ? (this.moveCursorTo(e, i.length),
this.moveCursorRight(), e < this.doc.getLength() - 1 && this.moveCursorWordRight(),
void 0) : ((n = this.session.tokenRe.exec(a)) && (t += this.session.tokenRe.lastIndex,
this.session.tokenRe.lastIndex = 0), this.moveCursorTo(e, t), void 0));
}, this.moveCursorLongWordLeft = function() {
var n, e = this.lead.row, t = this.lead.column;
if (n = this.session.getFoldAt(e, t, -1)) return this.moveCursorTo(n.start.row, n.start.column),
void 0;
var a = this.session.getFoldStringAt(e, t, -1);
null == a && (a = this.doc.getLine(e).substring(0, t));
var r, o = i.stringReverse(a);
return this.session.nonTokenRe.lastIndex = 0, this.session.tokenRe.lastIndex = 0,
(r = this.session.nonTokenRe.exec(o)) && (t -= this.session.nonTokenRe.lastIndex,
o = o.slice(this.session.nonTokenRe.lastIndex), this.session.nonTokenRe.lastIndex = 0),
0 >= t ? (this.moveCursorTo(e, 0), this.moveCursorLeft(), e > 0 && this.moveCursorWordLeft(),
void 0) : ((r = this.session.tokenRe.exec(o)) && (t -= this.session.tokenRe.lastIndex,
this.session.tokenRe.lastIndex = 0), this.moveCursorTo(e, t), void 0);
}, this.$shortWordEndIndex = function(n) {
var e, t, i = 0, a = /\s/, r = this.session.tokenRe;
if (r.lastIndex = 0, e = this.session.tokenRe.exec(n)) i = this.session.tokenRe.lastIndex; else {
for (;(t = n[i]) && a.test(t); ) i++;
if (1 > i) for (r.lastIndex = 0; (t = n[i]) && !r.test(t); ) if (r.lastIndex = 0,
i++, a.test(t)) {
if (i > 2) {
i--;
break;
}
for (;(t = n[i]) && a.test(t); ) i++;
if (i > 2) break;
}
}
return r.lastIndex = 0, i;
}, this.moveCursorShortWordRight = function() {
var n = this.lead.row, e = this.lead.column, t = this.doc.getLine(n), i = t.substring(e), a = this.session.getFoldAt(n, e, 1);
if (a) return this.moveCursorTo(a.end.row, a.end.column);
if (e == t.length) {
var r = this.doc.getLength();
do n++, i = this.doc.getLine(n); while (r > n && /^\s*$/.test(i));
/^\s+/.test(i) || (i = ""), e = 0;
}
var o = this.$shortWordEndIndex(i);
this.moveCursorTo(n, e + o);
}, this.moveCursorShortWordLeft = function() {
var n, e = this.lead.row, t = this.lead.column;
if (n = this.session.getFoldAt(e, t, -1)) return this.moveCursorTo(n.start.row, n.start.column);
var a = this.session.getLine(e).substring(0, t);
if (0 == t) {
do e--, a = this.doc.getLine(e); while (e > 0 && /^\s*$/.test(a));
t = a.length, /\s+$/.test(a) || (a = "");
}
var r = i.stringReverse(a), o = this.$shortWordEndIndex(r);
return this.moveCursorTo(e, t - o);
}, this.moveCursorWordRight = function() {
this.session.$selectLongWords ? this.moveCursorLongWordRight() : this.moveCursorShortWordRight();
}, this.moveCursorWordLeft = function() {
this.session.$selectLongWords ? this.moveCursorLongWordLeft() : this.moveCursorShortWordLeft();
}, this.moveCursorBy = function(n, e) {
var t = this.session.documentToScreenPosition(this.lead.row, this.lead.column);
0 === e && (this.$desiredColumn ? t.column = this.$desiredColumn : this.$desiredColumn = t.column);
var i = this.session.screenToDocumentPosition(t.row + n, t.column);
this.moveCursorTo(i.row, i.column + e, 0 === e);
}, this.moveCursorToPosition = function(n) {
this.moveCursorTo(n.row, n.column);
}, this.moveCursorTo = function(n, e, t) {
var i = this.session.getFoldAt(n, e, 1);
i && (n = i.start.row, e = i.start.column), this.$keepDesiredColumnOnChange = !0,
this.lead.setPosition(n, e), this.$keepDesiredColumnOnChange = !1, t || (this.$desiredColumn = null);
}, this.moveCursorToScreen = function(n, e, t) {
var i = this.session.screenToDocumentPosition(n, e);
this.moveCursorTo(i.row, i.column, t);
}, this.detach = function() {
this.lead.detach(), this.anchor.detach(), this.session = this.doc = null;
}, this.fromOrientedRange = function(n) {
this.setSelectionRange(n, n.cursor == n.start), this.$desiredColumn = n.desiredColumn || this.$desiredColumn;
}, this.toOrientedRange = function(n) {
var e = this.getRange();
return n ? (n.start.column = e.start.column, n.start.row = e.start.row, n.end.column = e.end.column,
n.end.row = e.end.row) : n = e, n.cursor = this.isBackwards() ? n.start : n.end,
n.desiredColumn = this.$desiredColumn, n;
}, this.toJSON = function() {
if (this.rangeCount) var n = this.ranges.map(function(n) {
var e = n.clone();
return e.isBackwards = n.cursor == n.start, e;
}); else {
var n = this.getRange();
n.isBackwards = this.isBackwards();
}
return n;
}, this.fromJSON = function(n) {
if (void 0 == n.start) {
if (this.rangeList) {
this.toSingleRange(n[0]);
for (var e = n.length; e--; ) {
var t = r.fromPoints(n[e].start, n[e].end);
n.isBackwards && (t.cursor = t.start), this.addRange(t, !0);
}
return;
}
n = n[0];
}
this.rangeList && this.toSingleRange(n), this.setSelectionRange(n, n.isBackwards);
}, this.isEqual = function(n) {
if ((n.length || this.rangeCount) && n.length != this.rangeCount) return !1;
if (!n.length || !this.ranges) return this.getRange().isEqual(n);
for (var e = this.ranges.length; e--; ) if (!this.ranges[e].isEqual(n[e])) return !1;
return !0;
};
}).call(o.prototype), e.Selection = o;
}), define("ace/tokenizer", [ "require", "exports", "module" ], function(n, e) {
var t = 1e3, i = function(n) {
this.states = n, this.regExps = {}, this.matchMappings = {};
for (var e in this.states) {
for (var t = this.states[e], i = [], a = 0, r = this.matchMappings[e] = {
defaultToken: "text"
}, o = "g", s = [], l = 0; l < t.length; l++) {
var c = t[l];
if (c.defaultToken && (r.defaultToken = c.defaultToken), c.caseInsensitive && (o = "gi"),
null != c.regex) {
c.regex instanceof RegExp && (c.regex = c.regex.toString().slice(1, -1));
var M = c.regex, u = new RegExp("(?:(" + M + ")|(.))").exec("a").length - 2;
if (Array.isArray(c.token)) if (1 == c.token.length || 1 == u) c.token = c.token[0]; else {
if (u - 1 != c.token.length) throw new Error("number of classes and regexp groups in '" + c.token + "'\n'" + c.regex + "' doesn't match\n" + (u - 1) + "!=" + c.token.length);
c.tokenArray = c.token, c.token = null, c.onMatch = this.$arrayTokens;
} else "function" != typeof c.token || c.onMatch || (c.onMatch = u > 1 ? this.$applyToken : c.token);
u > 1 && (/\\\d/.test(c.regex) ? M = c.regex.replace(/\\([0-9]+)/g, function(n, e) {
return "\\" + (parseInt(e, 10) + a + 1);
}) : (u = 1, M = this.removeCapturingGroups(c.regex)), c.splitRegex || "string" == typeof c.token || s.push(c)),
r[a] = l, a += u, i.push(M), c.onMatch || (c.onMatch = null), c.__proto__ = null;
}
}
s.forEach(function(n) {
n.splitRegex = this.createSplitterRegexp(n.regex, o);
}, this), this.regExps[e] = new RegExp("(" + i.join(")|(") + ")|($)", o);
}
};
(function() {
this.$applyToken = function(n) {
var e = this.splitRegex.exec(n).slice(1), t = this.token.apply(this, e);
if ("string" == typeof t) return [ {
type: t,
value: n
} ];
for (var i = [], a = 0, r = t.length; r > a; a++) e[a] && (i[i.length] = {
type: t[a],
value: e[a]
});
return i;
}, this.$arrayTokens = function(n) {
if (!n) return [];
var e = this.splitRegex.exec(n);
if (!e) return "text";
for (var t = [], i = this.tokenArray, a = 0, r = i.length; r > a; a++) e[a + 1] && (t[t.length] = {
type: i[a],
value: e[a + 1]
});
return t;
}, this.removeCapturingGroups = function(n) {
var e = n.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g, function(n, e) {
return e ? "(?:" : n;
});
return e;
}, this.createSplitterRegexp = function(n, e) {
if (-1 != n.indexOf("(?=")) {
var t = 0, i = !1, a = {};
n.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g, function(n, e, r, o, s, l) {
return i ? i = "]" != s : s ? i = !0 : o ? (t == a.stack && (a.end = l + 1, a.stack = -1),
t--) : r && (t++, 1 != r.length && (a.stack = t, a.start = l)), n;
}), null != a.end && /^\)*$/.test(n.substr(a.end)) && (n = n.substring(0, a.start) + n.substr(a.end));
}
return new RegExp(n, (e || "").replace("g", ""));
}, this.getLineTokens = function(n, e) {
if (e && "string" != typeof e) {
var i = e.slice(0);
e = i[0];
} else var i = [];
var a = e || "start", r = this.states[a], o = this.matchMappings[a], s = this.regExps[a];
s.lastIndex = 0;
for (var l, c = [], M = 0, u = {
type: null,
value: ""
}; l = s.exec(n); ) {
var d = o.defaultToken, h = null, S = l[0], p = s.lastIndex;
if (p - S.length > M) {
var m = n.substring(M, p - S.length);
u.type == d ? u.value += m : (u.type && c.push(u), u = {
type: d,
value: m
});
}
for (var g = 0; g < l.length - 2; g++) if (void 0 !== l[g + 1]) {
h = r[o[g]], d = h.onMatch ? h.onMatch(S, a, i) : h.token, h.next && (a = "string" == typeof h.next ? h.next : h.next(a, i),
r = this.states[a], r || (window.console && console.error && console.error(a, "doesn't exist"),
a = "start", r = this.states[a]), o = this.matchMappings[a], M = p, s = this.regExps[a],
s.lastIndex = p);
break;
}
if (S) if ("string" == typeof d) h && h.merge === !1 || u.type !== d ? (u.type && c.push(u),
u = {
type: d,
value: S
}) : u.value += S; else if (d) {
u.type && c.push(u), u = {
type: null,
value: ""
};
for (var g = 0; g < d.length; g++) c.push(d[g]);
}
if (M == n.length) break;
if (M = p, c.length > t) {
for (;M < n.length; ) u.type && c.push(u), u = {
value: n.substring(M, M += 2e3),
type: "overflow"
};
a = "start", i = [];
break;
}
}
return u.type && c.push(u), {
tokens: c,
state: i.length ? i : a
};
};
}).call(i.prototype), e.Tokenizer = i;
}), define("ace/mode/text_highlight_rules", [ "require", "exports", "module", "../lib/lang" ], function(n, e) {
var t = n("../lib/lang"), i = function() {
this.$rules = {
start: [ {
token: "empty_line",
regex: "^$"
}, {
defaultToken: "text"
} ]
};
};
(function() {
this.addRules = function(n, e) {
if (e) for (var t in n) {
for (var i = n[t], a = 0; a < i.length; a++) {
var r = i[a];
r.next && ("string" != typeof r.next ? r.nextState && 0 !== r.nextState.indexOf(e) && (r.nextState = e + r.nextState) : 0 !== r.next.indexOf(e) && (r.next = e + r.next));
}
this.$rules[e + t] = i;
} else for (var t in n) this.$rules[t] = n[t];
}, this.getRules = function() {
return this.$rules;
}, this.embedRules = function(n, e, i, a, r) {
var o = new n().getRules();
if (a) for (var s = 0; s < a.length; s++) a[s] = e + a[s]; else {
a = [];
for (var l in o) a.push(e + l);
}
if (this.addRules(o, e), i) for (var c = Array.prototype[r ? "push" : "unshift"], s = 0; s < a.length; s++) c.apply(this.$rules[a[s]], t.deepCopy(i));
this.$embeds || (this.$embeds = []), this.$embeds.push(e);
}, this.getEmbeds = function() {
return this.$embeds;
};
var n = function(n, e) {
return "start" != n && e.unshift(this.nextState, n), this.nextState;
}, e = function(n, e) {
return e[0] !== n ? "start" : (e.shift(), e.shift());
};
this.normalizeRules = function() {
function t(r) {
var o = a[r];
o.processed = !0;
for (var s = 0; s < o.length; s++) {
var l = o[s];
!l.regex && l.start && (l.regex = l.start, l.next || (l.next = []), l.next.push({
defaultToken: l.token
}, {
token: l.token + ".end",
regex: l.end || l.start,
next: "pop"
}), l.token = l.token + ".start", l.push = !0);
var c = l.next || l.push;
if (c && Array.isArray(c)) {
var M = l.stateName;
M || (M = l.token, "string" != typeof M && (M = M[0] || ""), a[M] && (M += i++)),
a[M] = c, l.next = M, t(M);
} else "pop" == c && (l.next = e);
if (l.push && (l.nextState = l.next || l.push, l.next = n, delete l.push), l.rules) for (var u in l.rules) a[u] ? a[u].push && a[u].push.apply(a[u], l.rules[u]) : a[u] = l.rules[u];
if (l.include || "string" == typeof l) var d = l.include || l, h = a[d]; else Array.isArray(l) && (h = l);
if (h) {
var S = [ s, 1 ].concat(h);
l.noEscape && (S = S.filter(function(n) {
return !n.next;
})), o.splice.apply(o, S), s--, h = null;
}
l.keywordMap && (l.token = this.createKeywordMapper(l.keywordMap, l.defaultToken || "text", l.caseInsensitive),
delete l.defaultToken);
}
}
var i = 0, a = this.$rules;
Object.keys(a).forEach(t, this);
}, this.createKeywordMapper = function(n, e, t, i) {
var a = Object.create(null);
return Object.keys(n).forEach(function(e) {
var r = n[e];
t && (r = r.toLowerCase());
for (var o = r.split(i || "|"), s = o.length; s--; ) a[o[s]] = e;
}), this.$keywordList = Object.keys(a), n = null, t ? function(n) {
return a[n.toLowerCase()] || e;
} : function(n) {
return a[n] || e;
};
}, this.getKeywords = function() {
return this.$keywords;
};
}).call(i.prototype), e.TextHighlightRules = i;
}), define("ace/mode/behaviour", [ "require", "exports", "module" ], function(n, e) {
var t = function() {
this.$behaviours = {};
};
(function() {
this.add = function(n, e, t) {
switch (void 0) {
case this.$behaviours:
this.$behaviours = {};
case this.$behaviours[n]:
this.$behaviours[n] = {};
}
this.$behaviours[n][e] = t;
}, this.addBehaviours = function(n) {
for (var e in n) for (var t in n[e]) this.add(e, t, n[e][t]);
}, this.remove = function(n) {
this.$behaviours && this.$behaviours[n] && delete this.$behaviours[n];
}, this.inherit = function(n, e) {
if ("function" == typeof n) var t = new n().getBehaviours(e); else var t = n.getBehaviours(e);
this.addBehaviours(t);
}, this.getBehaviours = function(n) {
if (n) {
for (var e = {}, t = 0; t < n.length; t++) this.$behaviours[n[t]] && (e[n[t]] = this.$behaviours[n[t]]);
return e;
}
return this.$behaviours;
};
}).call(t.prototype), e.Behaviour = t;
}), define("ace/unicode", [ "require", "exports", "module" ], function(n, e) {
function t(n) {
var t = /\w{4}/g;
for (var i in n) e.packages[i] = n[i].replace(t, "\\u$&");
}
e.packages = {}, t({
L: "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
Ll: "0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",
Lu: "0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",
Lt: "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",
Lm: "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",
Lo: "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
M: "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",
Mn: "0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",
Mc: "0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",
Me: "0488048906DE20DD-20E020E2-20E4A670-A672",
N: "0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
Nd: "0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
Nl: "16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",
No: "00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",
P: "0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",
Pd: "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",
Ps: "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",
Pe: "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",
Pi: "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",
Pf: "00BB2019201D203A2E032E052E0A2E0D2E1D2E21",
Pc: "005F203F20402054FE33FE34FE4D-FE4FFF3F",
Po: "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",
S: "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",
Sm: "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",
Sc: "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",
Sk: "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",
So: "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",
Z: "002000A01680180E2000-200A20282029202F205F3000",
Zs: "002000A01680180E2000-200A202F205F3000",
Zl: "2028",
Zp: "2029",
C: "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",
Cc: "0000-001F007F-009F",
Cf: "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",
Co: "E000-F8FF",
Cs: "D800-DFFF",
Cn: "03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"
});
}), define("ace/token_iterator", [ "require", "exports", "module" ], function(n, e) {
var t = function(n, e, t) {
this.$session = n, this.$row = e, this.$rowTokens = n.getTokens(e);
var i = n.getTokenAt(e, t);
this.$tokenIndex = i ? i.index : -1;
};
(function() {
this.stepBackward = function() {
for (this.$tokenIndex -= 1; this.$tokenIndex < 0; ) {
if (this.$row -= 1, this.$row < 0) return this.$row = 0, null;
this.$rowTokens = this.$session.getTokens(this.$row), this.$tokenIndex = this.$rowTokens.length - 1;
}
return this.$rowTokens[this.$tokenIndex];
}, this.stepForward = function() {
this.$tokenIndex += 1;
for (var n; this.$tokenIndex >= this.$rowTokens.length; ) {
if (this.$row += 1, n || (n = this.$session.getLength()), this.$row >= n) return this.$row = n - 1,
null;
this.$rowTokens = this.$session.getTokens(this.$row), this.$tokenIndex = 0;
}
return this.$rowTokens[this.$tokenIndex];
}, this.getCurrentToken = function() {
return this.$rowTokens[this.$tokenIndex];
}, this.getCurrentTokenRow = function() {
return this.$row;
}, this.getCurrentTokenColumn = function() {
var n = this.$rowTokens, e = this.$tokenIndex, t = n[e].start;
if (void 0 !== t) return t;
for (t = 0; e > 0; ) e -= 1, t += n[e].value.length;
return t;
};
}).call(t.prototype), e.TokenIterator = t;
}), define("ace/mode/text", [ "require", "exports", "module", "../tokenizer", "./text_highlight_rules", "./behaviour", "../unicode", "../lib/lang", "../token_iterator", "../range" ], function(n, e) {
var t = n("../tokenizer").Tokenizer, i = n("./text_highlight_rules").TextHighlightRules, a = n("./behaviour").Behaviour, r = n("../unicode"), o = n("../lib/lang"), s = n("../token_iterator").TokenIterator, l = n("../range").Range, c = function() {
this.$tokenizer = new t(new i().getRules()), this.$behaviour = new a();
};
(function() {
this.tokenRe = new RegExp("^[" + r.packages.L + r.packages.Mn + r.packages.Mc + r.packages.Nd + r.packages.Pc + "\\$_]+", "g"),
this.nonTokenRe = new RegExp("^(?:[^" + r.packages.L + r.packages.Mn + r.packages.Mc + r.packages.Nd + r.packages.Pc + "\\$_]|s])+", "g"),
this.getTokenizer = function() {
return this.$tokenizer;
}, this.lineCommentStart = "", this.blockComment = "", this.toggleCommentLines = function(n, e, t, i) {
function a(n) {
for (var e = t; i >= e; e++) n(r.getLine(e), e);
}
var r = e.doc, s = !0, l = !0, c = 1/0, M = e.getTabSize(), u = !1;
if (this.lineCommentStart) {
if (Array.isArray(this.lineCommentStart)) var d = this.lineCommentStart.map(o.escapeRegExp).join("|"), h = this.lineCommentStart[0]; else var d = o.escapeRegExp(this.lineCommentStart), h = this.lineCommentStart;
d = new RegExp("^(\\s*)(?:" + d + ") ?"), u = e.getUseSoftTabs();
var S = function(n, e) {
var t = n.match(d);
if (t) {
var i = t[1].length, a = t[0].length;
f(n, i, a) || " " != t[0][a - 1] || a--, r.removeInLine(e, i, a);
}
}, p = h + " ", m = function(n, e) {
(!s || /\S/.test(n)) && (f(n, c, c) ? r.insertInLine({
row: e,
column: c
}, p) : r.insertInLine({
row: e,
column: c
}, h));
}, g = function(n) {
return d.test(n);
}, f = function(n, e, t) {
for (var i = 0; e-- && " " == n.charAt(e); ) i++;
if (0 != i % M) return !1;
for (var i = 0; " " == n.charAt(t++); ) i++;
return M > 2 ? i % M != M - 1 : 0 == i % M;
};
} else {
if (!this.blockComment) return !1;
var h = this.blockComment.start, b = this.blockComment.end, d = new RegExp("^(\\s*)(?:" + o.escapeRegExp(h) + ")"), y = new RegExp("(?:" + o.escapeRegExp(b) + ")\\s*$"), m = function(n, e) {
g(n, e) || (!s || /\S/.test(n)) && (r.insertInLine({
row: e,
column: n.length
}, b), r.insertInLine({
row: e,
column: c
}, h));
}, S = function(n, e) {
var t;
(t = n.match(y)) && r.removeInLine(e, n.length - t[0].length, n.length), (t = n.match(d)) && r.removeInLine(e, t[1].length, t[0].length);
}, g = function(n, t) {
if (d.test(n)) return !0;
for (var i = e.getTokens(t), a = 0; a < i.length; a++) if ("comment" === i[a].type) return !0;
};
}
var v = 1/0;
a(function(n, e) {
var t = n.search(/\S/);
-1 !== t ? (c > t && (c = t), l && !g(n, e) && (l = !1)) : v > n.length && (v = n.length);
}), 1/0 == c && (c = v, s = !1, l = !1), u && 0 != c % M && (c = Math.floor(c / M) * M),
a(l ? S : m);
}, this.toggleBlockComment = function(n, e, t, i) {
var a = this.blockComment;
if (a) {
!a.start && a[0] && (a = a[0]);
var r = new s(e, i.row, i.column), o = r.getCurrentToken();
e.selection;
var c, M, u = e.selection.toOrientedRange();
if (o && /comment/.test(o.type)) {
for (var d, h; o && /comment/.test(o.type); ) {
var S = o.value.indexOf(a.start);
if (-1 != S) {
var p = r.getCurrentTokenRow(), m = r.getCurrentTokenColumn() + S;
d = new l(p, m, p, m + a.start.length);
break;
}
o = r.stepBackward();
}
for (var r = new s(e, i.row, i.column), o = r.getCurrentToken(); o && /comment/.test(o.type); ) {
var S = o.value.indexOf(a.end);
if (-1 != S) {
var p = r.getCurrentTokenRow(), m = r.getCurrentTokenColumn() + S;
h = new l(p, m, p, m + a.end.length);
break;
}
o = r.stepForward();
}
h && e.remove(h), d && (e.remove(d), c = d.start.row, M = -a.start.length);
} else M = a.start.length, c = t.start.row, e.insert(t.end, a.end), e.insert(t.start, a.start);
u.start.row == c && (u.start.column += M), u.end.row == c && (u.end.column += M),
e.selection.fromOrientedRange(u);
}
}, this.getNextLineIndent = function(n, e) {
return this.$getIndent(e);
}, this.checkOutdent = function() {
return !1;
}, this.autoOutdent = function() {}, this.$getIndent = function(n) {
return n.match(/^\s*/)[0];
}, this.createWorker = function() {
return null;
}, this.createModeDelegates = function(n) {
if (this.$embeds) {
this.$modes = {};
for (var e = 0; e < this.$embeds.length; e++) n[this.$embeds[e]] && (this.$modes[this.$embeds[e]] = new n[this.$embeds[e]]());
for (var t = [ "toggleCommentLines", "getNextLineIndent", "checkOutdent", "autoOutdent", "transformAction", "getCompletions" ], e = 0; e < t.length; e++) (function(n) {
var i = t[e], a = n[i];
n[t[e]] = function() {
return this.$delegator(i, arguments, a);
};
})(this);
}
}, this.$delegator = function(n, e, t) {
var i = e[0];
"string" != typeof i && (i = i[0]);
for (var a = 0; a < this.$embeds.length; a++) if (this.$modes[this.$embeds[a]]) {
var r = i.split(this.$embeds[a]);
if (!r[0] && r[1]) {
e[0] = r[1];
var o = this.$modes[this.$embeds[a]];
return o[n].apply(o, e);
}
}
var s = t.apply(this, e);
return t ? s : void 0;
}, this.transformAction = function(n, e) {
if (this.$behaviour) {
var t = this.$behaviour.getBehaviours();
for (var i in t) if (t[i][e]) {
var a = t[i][e].apply(this, arguments);
if (a) return a;
}
}
}, this.getKeywords = function(n) {
if (!this.completionKeywords) {
var e = this.$tokenizer.rules, t = [];
for (var i in e) for (var a = e[i], r = 0, o = a.length; o > r; r++) if ("string" == typeof a[r].token) /keyword|support|storage/.test(a[r].token) && t.push(a[r].regex); else if ("object" == typeof a[r].token) for (var s = 0, l = a[r].token.length; l > s; s++) if (/keyword|support|storage/.test(a[r].token[s])) {
var i = a[r].regex.match(/\(.+?\)/g)[s];
t.push(i.substr(1, i.length - 2));
}
this.completionKeywords = t;
}
return n ? t.concat(this.$keywordList || []) : this.$keywordList;
}, this.getCompletions = function() {
var n = this.$keywordList || [];
return n.map(function(n) {
return {
name: n,
value: n,
score: 0,
meta: "keyword"
};
});
};
}).call(c.prototype), e.Mode = c;
}), define("ace/anchor", [ "require", "exports", "module", "./lib/oop", "./lib/event_emitter" ], function(n, e) {
var t = n("./lib/oop"), i = n("./lib/event_emitter").EventEmitter, a = e.Anchor = function(n, e, t) {
this.$onChange = this.onChange.bind(this), this.attach(n), "undefined" == typeof t ? this.setPosition(e.row, e.column) : this.setPosition(e, t);
};
(function() {
t.implement(this, i), this.getPosition = function() {
return this.$clipPositionToDocument(this.row, this.column);
}, this.getDocument = function() {
return this.document;
}, this.$insertRight = !1, this.onChange = function(n) {
var e = n.data, t = e.range;
if (!(t.start.row == t.end.row && t.start.row != this.row || t.start.row > this.row || t.start.row == this.row && t.start.column > this.column)) {
var i = this.row, a = this.column, r = t.start, o = t.end;
"insertText" === e.action ? r.row === i && r.column <= a ? r.column === a && this.$insertRight || (r.row === o.row ? a += o.column - r.column : (a -= r.column,
i += o.row - r.row)) : r.row !== o.row && r.row < i && (i += o.row - r.row) : "insertLines" === e.action ? r.row <= i && (i += o.row - r.row) : "removeText" === e.action ? r.row === i && r.column < a ? a = o.column >= a ? r.column : Math.max(0, a - (o.column - r.column)) : r.row !== o.row && r.row < i ? (o.row === i && (a = Math.max(0, a - o.column) + r.column),
i -= o.row - r.row) : o.row === i && (i -= o.row - r.row, a = Math.max(0, a - o.column) + r.column) : "removeLines" == e.action && r.row <= i && (o.row <= i ? i -= o.row - r.row : (i = r.row,
a = 0)), this.setPosition(i, a, !0);
}
}, this.setPosition = function(n, e, t) {
var i;
if (i = t ? {
row: n,
column: e
} : this.$clipPositionToDocument(n, e), this.row != i.row || this.column != i.column) {
var a = {
row: this.row,
column: this.column
};
this.row = i.row, this.column = i.column, this._emit("change", {
old: a,
value: i
});
}
}, this.detach = function() {
this.document.removeEventListener("change", this.$onChange);
}, this.attach = function(n) {
this.document = n || this.document, this.document.on("change", this.$onChange);
}, this.$clipPositionToDocument = function(n, e) {
var t = {};
return n >= this.document.getLength() ? (t.row = Math.max(0, this.document.getLength() - 1),
t.column = this.document.getLine(t.row).length) : 0 > n ? (t.row = 0, t.column = 0) : (t.row = n,
t.column = Math.min(this.document.getLine(t.row).length, Math.max(0, e))), 0 > e && (t.column = 0),
t;
};
}).call(a.prototype);
}), define("ace/document", [ "require", "exports", "module", "./lib/oop", "./lib/event_emitter", "./range", "./anchor" ], function(n, e) {
var t = n("./lib/oop"), i = n("./lib/event_emitter").EventEmitter, a = n("./range").Range, r = n("./anchor").Anchor, o = function(n) {
this.$lines = [], 0 == n.length ? this.$lines = [ "" ] : Array.isArray(n) ? this._insertLines(0, n) : this.insert({
row: 0,
column: 0
}, n);
};
(function() {
t.implement(this, i), this.setValue = function(n) {
var e = this.getLength();
this.remove(new a(0, 0, e, this.getLine(e - 1).length)), this.insert({
row: 0,
column: 0
}, n);
}, this.getValue = function() {
return this.getAllLines().join(this.getNewLineCharacter());
}, this.createAnchor = function(n, e) {
return new r(this, n, e);
}, this.$split = 0 == "aaa".split(/a/).length ? function(n) {
return n.replace(/\r\n|\r/g, "\n").split("\n");
} : function(n) {
return n.split(/\r\n|\r|\n/);
}, this.$detectNewLine = function(n) {
var e = n.match(/^.*?(\r\n|\r|\n)/m);
this.$autoNewLine = e ? e[1] : "\n";
}, this.getNewLineCharacter = function() {
switch (this.$newLineMode) {
case "windows":
return "\r\n";
case "unix":
return "\n";
default:
return this.$autoNewLine;
}
}, this.$autoNewLine = "\n", this.$newLineMode = "auto", this.setNewLineMode = function(n) {
this.$newLineMode !== n && (this.$newLineMode = n);
}, this.getNewLineMode = function() {
return this.$newLineMode;
}, this.isNewLine = function(n) {
return "\r\n" == n || "\r" == n || "\n" == n;
}, this.getLine = function(n) {
return this.$lines[n] || "";
}, this.getLines = function(n, e) {
return this.$lines.slice(n, e + 1);
}, this.getAllLines = function() {
return this.getLines(0, this.getLength());
}, this.getLength = function() {
return this.$lines.length;
}, this.getTextRange = function(n) {
if (n.start.row == n.end.row) return this.getLine(n.start.row).substring(n.start.column, n.end.column);
var e = this.getLines(n.start.row, n.end.row);
e[0] = (e[0] || "").substring(n.start.column);
var t = e.length - 1;
return n.end.row - n.start.row == t && (e[t] = e[t].substring(0, n.end.column)),
e.join(this.getNewLineCharacter());
}, this.$clipPosition = function(n) {
var e = this.getLength();
return n.row >= e ? (n.row = Math.max(0, e - 1), n.column = this.getLine(e - 1).length) : n.row < 0 && (n.row = 0),
n;
}, this.insert = function(n, e) {
if (!e || 0 === e.length) return n;
n = this.$clipPosition(n), this.getLength() <= 1 && this.$detectNewLine(e);
var t = this.$split(e), i = t.splice(0, 1)[0], a = 0 == t.length ? null : t.splice(t.length - 1, 1)[0];
return n = this.insertInLine(n, i), null !== a && (n = this.insertNewLine(n), n = this._insertLines(n.row, t),
n = this.insertInLine(n, a || "")), n;
}, this.insertLines = function(n, e) {
return n >= this.getLength() ? this.insert({
row: n,
column: 0
}, "\n" + e.join("\n")) : this._insertLines(Math.max(n, 0), e);
}, this._insertLines = function(n, e) {
if (0 == e.length) return {
row: n,
column: 0
};
if (e.length > 65535) {
var t = this._insertLines(n, e.slice(65535));
e = e.slice(0, 65535);
}
var i = [ n, 0 ];
i.push.apply(i, e), this.$lines.splice.apply(this.$lines, i);
var r = new a(n, 0, n + e.length, 0), o = {
action: "insertLines",
range: r,
lines: e
};
return this._emit("change", {
data: o
}), t || r.end;
}, this.insertNewLine = function(n) {
n = this.$clipPosition(n);
var e = this.$lines[n.row] || "";
this.$lines[n.row] = e.substring(0, n.column), this.$lines.splice(n.row + 1, 0, e.substring(n.column, e.length));
var t = {
row: n.row + 1,
column: 0
}, i = {
action: "insertText",
range: a.fromPoints(n, t),
text: this.getNewLineCharacter()
};
return this._emit("change", {
data: i
}), t;
}, this.insertInLine = function(n, e) {
if (0 == e.length) return n;
var t = this.$lines[n.row] || "";
this.$lines[n.row] = t.substring(0, n.column) + e + t.substring(n.column);
var i = {
row: n.row,
column: n.column + e.length
}, r = {
action: "insertText",
range: a.fromPoints(n, i),
text: e
};
return this._emit("change", {
data: r
}), i;
}, this.remove = function(n) {
if (!n instanceof a && (n = a.fromPoints(n.start, n.end)), n.start = this.$clipPosition(n.start),
n.end = this.$clipPosition(n.end), n.isEmpty()) return n.start;
var e = n.start.row, t = n.end.row;
if (n.isMultiLine()) {
var i = 0 == n.start.column ? e : e + 1, r = t - 1;
n.end.column > 0 && this.removeInLine(t, 0, n.end.column), r >= i && this._removeLines(i, r),
i != e && (this.removeInLine(e, n.start.column, this.getLine(e).length), this.removeNewLine(n.start.row));
} else this.removeInLine(e, n.start.column, n.end.column);
return n.start;
}, this.removeInLine = function(n, e, t) {
if (e != t) {
var i = new a(n, e, n, t), r = this.getLine(n), o = r.substring(e, t), s = r.substring(0, e) + r.substring(t, r.length);
this.$lines.splice(n, 1, s);
var l = {
action: "removeText",
range: i,
text: o
};
return this._emit("change", {
data: l
}), i.start;
}
}, this.removeLines = function(n, e) {
return 0 > n || e >= this.getLength() ? this.remove(new a(n, 0, e + 1, 0)) : this._removeLines(n, e);
}, this._removeLines = function(n, e) {
var t = new a(n, 0, e + 1, 0), i = this.$lines.splice(n, e - n + 1), r = {
action: "removeLines",
range: t,
nl: this.getNewLineCharacter(),
lines: i
};
return this._emit("change", {
data: r
}), i;
}, this.removeNewLine = function(n) {
var e = this.getLine(n), t = this.getLine(n + 1), i = new a(n, e.length, n + 1, 0), r = e + t;
this.$lines.splice(n, 2, r);
var o = {
action: "removeText",
range: i,
text: this.getNewLineCharacter()
};
this._emit("change", {
data: o
});
}, this.replace = function(n, e) {
if (!n instanceof a && (n = a.fromPoints(n.start, n.end)), 0 == e.length && n.isEmpty()) return n.start;
if (e == this.getTextRange(n)) return n.end;
if (this.remove(n), e) var t = this.insert(n.start, e); else t = n.start;
return t;
}, this.applyDeltas = function(n) {
for (var e = 0; e < n.length; e++) {
var t = n[e], i = a.fromPoints(t.range.start, t.range.end);
"insertLines" == t.action ? this.insertLines(i.start.row, t.lines) : "insertText" == t.action ? this.insert(i.start, t.text) : "removeLines" == t.action ? this._removeLines(i.start.row, i.end.row - 1) : "removeText" == t.action && this.remove(i);
}
}, this.revertDeltas = function(n) {
for (var e = n.length - 1; e >= 0; e--) {
var t = n[e], i = a.fromPoints(t.range.start, t.range.end);
"insertLines" == t.action ? this._removeLines(i.start.row, i.end.row - 1) : "insertText" == t.action ? this.remove(i) : "removeLines" == t.action ? this._insertLines(i.start.row, t.lines) : "removeText" == t.action && this.insert(i.start, t.text);
}
}, this.indexToPosition = function(n, e) {
for (var t = this.$lines || this.getAllLines(), i = this.getNewLineCharacter().length, a = e || 0, r = t.length; r > a; a++) if (n -= t[a].length + i,
0 > n) return {
row: a,
column: n + t[a].length + i
};
return {
row: r - 1,
column: t[r - 1].length
};
}, this.positionToIndex = function(n, e) {
for (var t = this.$lines || this.getAllLines(), i = this.getNewLineCharacter().length, a = 0, r = Math.min(n.row, t.length), o = e || 0; r > o; ++o) a += t[o].length + i;
return a + n.column;
};
}).call(o.prototype), e.Document = o;
}), define("ace/background_tokenizer", [ "require", "exports", "module", "./lib/oop", "./lib/event_emitter" ], function(n, e) {
var t = n("./lib/oop"), i = n("./lib/event_emitter").EventEmitter, a = function(n) {
this.running = !1, this.lines = [], this.states = [], this.currentLine = 0, this.tokenizer = n;
var e = this;
this.$worker = function() {
if (e.running) {
for (var n = new Date(), t = e.currentLine, i = -1, a = e.doc; e.lines[t]; ) t++;
var r = t, o = a.getLength(), s = 0;
for (e.running = !1; o > t; ) {
e.$tokenizeRow(t), i = t;
do t++; while (e.lines[t]);
if (s++, 0 == s % 5 && new Date() - n > 20) return e.running = setTimeout(e.$worker, 20),
e.currentLine = t, void 0;
}
e.currentLine = t, i >= r && e.fireUpdateEvent(r, i);
}
};
};
(function() {
t.implement(this, i), this.setTokenizer = function(n) {
this.tokenizer = n, this.lines = [], this.states = [], this.start(0);
}, this.setDocument = function(n) {
this.doc = n, this.lines = [], this.states = [], this.stop();
}, this.fireUpdateEvent = function(n, e) {
var t = {
first: n,
last: e
};
this._emit("update", {
data: t
});
}, this.start = function(n) {
this.currentLine = Math.min(n || 0, this.currentLine, this.doc.getLength()), this.lines.splice(this.currentLine, this.lines.length),
this.states.splice(this.currentLine, this.states.length), this.stop(), this.running = setTimeout(this.$worker, 700);
}, this.scheduleStart = function() {
this.running = setTimeout(this.$worker, 700);
}, this.$updateOnChange = function(n) {
var e = n.range, t = e.start.row, i = e.end.row - t;
if (0 === i) this.lines[t] = null; else if ("removeText" == n.action || "removeLines" == n.action) this.lines.splice(t, i + 1, null),
this.states.splice(t, i + 1, null); else {
var a = Array(i + 1);
a.unshift(t, 1), this.lines.splice.apply(this.lines, a), this.states.splice.apply(this.states, a);
}
this.currentLine = Math.min(t, this.currentLine, this.doc.getLength()), this.stop();
}, this.stop = function() {
this.running && clearTimeout(this.running), this.running = !1;
}, this.getTokens = function(n) {
return this.lines[n] || this.$tokenizeRow(n);
}, this.getState = function(n) {
return this.currentLine == n && this.$tokenizeRow(n), this.states[n] || "start";
}, this.$tokenizeRow = function(n) {
var e = this.doc.getLine(n), t = this.states[n - 1], i = this.tokenizer.getLineTokens(e, t, n);
return this.states[n] + "" != i.state + "" ? (this.states[n] = i.state, this.lines[n + 1] = null,
this.currentLine > n + 1 && (this.currentLine = n + 1)) : this.currentLine == n && (this.currentLine = n + 1),
this.lines[n] = i.tokens;
};
}).call(a.prototype), e.BackgroundTokenizer = a;
}), define("ace/search_highlight", [ "require", "exports", "module", "./lib/lang", "./lib/oop", "./range" ], function(n, e) {
var t = n("./lib/lang");
n("./lib/oop");
var i = n("./range").Range, a = function(n, e, t) {
this.setRegexp(n), this.clazz = e, this.type = t || "text";
};
(function() {
this.MAX_RANGES = 500, this.setRegexp = function(n) {
this.regExp + "" != n + "" && (this.regExp = n, this.cache = []);
}, this.update = function(n, e, a, r) {
if (this.regExp) for (var o = r.firstRow, s = r.lastRow, l = o; s >= l; l++) {
var c = this.cache[l];
null == c && (c = t.getMatchOffsets(a.getLine(l), this.regExp), c.length > this.MAX_RANGES && (c = c.slice(0, this.MAX_RANGES)),
c = c.map(function(n) {
return new i(l, n.offset, l, n.offset + n.length);
}), this.cache[l] = c.length ? c : "");
for (var M = c.length; M--; ) e.drawSingleLineMarker(n, c[M].toScreenRange(a), this.clazz, r);
}
};
}).call(a.prototype), e.SearchHighlight = a;
}), define("ace/edit_session/fold_line", [ "require", "exports", "module", "../range" ], function(n, e) {
function t(n, e) {
this.foldData = n, Array.isArray(e) ? this.folds = e : e = this.folds = [ e ];
var t = e[e.length - 1];
this.range = new i(e[0].start.row, e[0].start.column, t.end.row, t.end.column),
this.start = this.range.start, this.end = this.range.end, this.folds.forEach(function(n) {
n.setFoldLine(this);
}, this);
}
var i = n("../range").Range;
(function() {
this.shiftRow = function(n) {
this.start.row += n, this.end.row += n, this.folds.forEach(function(e) {
e.start.row += n, e.end.row += n;
});
}, this.addFold = function(n) {
if (n.sameRow) {
if (n.start.row < this.startRow || n.endRow > this.endRow) throw "Can't add a fold to this FoldLine as it has no connection";
this.folds.push(n), this.folds.sort(function(n, e) {
return -n.range.compareEnd(e.start.row, e.start.column);
}), this.range.compareEnd(n.start.row, n.start.column) > 0 ? (this.end.row = n.end.row,
this.end.column = n.end.column) : this.range.compareStart(n.end.row, n.end.column) < 0 && (this.start.row = n.start.row,
this.start.column = n.start.column);
} else if (n.start.row == this.end.row) this.folds.push(n), this.end.row = n.end.row,
this.end.column = n.end.column; else {
if (n.end.row != this.start.row) throw "Trying to add fold to FoldRow that doesn't have a matching row";
this.folds.unshift(n), this.start.row = n.start.row, this.start.column = n.start.column;
}
n.foldLine = this;
}, this.containsRow = function(n) {
return n >= this.start.row && n <= this.end.row;
}, this.walk = function(n, e, t) {
var i, a, r, o = 0, s = this.folds, l = !0;
null == e && (e = this.end.row, t = this.end.column);
for (var c = 0; c < s.length; c++) {
if (i = s[c], a = i.range.compareStart(e, t), -1 == a) return n(null, e, t, o, l),
void 0;
if (r = n(null, i.start.row, i.start.column, o, l), r = !r && n(i.placeholder, i.start.row, i.start.column, o),
r || 0 == a) return;
l = !i.sameRow, o = i.end.column;
}
n(null, e, t, o, l);
}, this.getNextFoldTo = function(n, e) {
for (var t, i, a = 0; a < this.folds.length; a++) {
if (t = this.folds[a], i = t.range.compareEnd(n, e), -1 == i) return {
fold: t,
kind: "after"
};
if (0 == i) return {
fold: t,
kind: "inside"
};
}
return null;
}, this.addRemoveChars = function(n, e, t) {
var i, a, r = this.getNextFoldTo(n, e);
if (r) if (i = r.fold, "inside" == r.kind && i.start.column != e && i.start.row != n) window.console && window.console.log(n, e, i); else if (i.start.row == n) {
a = this.folds;
var o = a.indexOf(i);
for (0 == o && (this.start.column += t), o; o < a.length; o++) {
if (i = a[o], i.start.column += t, !i.sameRow) return;
i.end.column += t;
}
this.end.column += t;
}
}, this.split = function(n, e) {
var i = this.getNextFoldTo(n, e).fold, a = this.folds, r = this.foldData;
if (!i) return null;
var o = a.indexOf(i), s = a[o - 1];
this.end.row = s.end.row, this.end.column = s.end.column, a = a.splice(o, a.length - o);
var l = new t(r, a);
return r.splice(r.indexOf(this) + 1, 0, l), l;
}, this.merge = function(n) {
for (var e = n.folds, t = 0; t < e.length; t++) this.addFold(e[t]);
var i = this.foldData;
i.splice(i.indexOf(n), 1);
}, this.toString = function() {
var n = [ this.range.toString() + ": [" ];
return this.folds.forEach(function(e) {
n.push(" " + e.toString());
}), n.push("]"), n.join("\n");
}, this.idxToPosition = function(n) {
for (var e, t = 0, i = 0; i < this.folds.length; i++) {
var e = this.folds[i];
if (n -= e.start.column - t, 0 > n) return {
row: e.start.row,
column: e.start.column + n
};
if (n -= e.placeholder.length, 0 > n) return e.start;
t = e.end.column;
}
return {
row: this.end.row,
column: this.end.column + n
};
};
}).call(t.prototype), e.FoldLine = t;
}), define("ace/range_list", [ "require", "exports", "module", "./range" ], function(n, e) {
var t = n("./range").Range, i = t.comparePoints, a = function() {
this.ranges = [];
};
(function() {
this.comparePoints = i, this.pointIndex = function(n, e, t) {
for (var a = this.ranges, r = t || 0; r < a.length; r++) {
var o = a[r], s = i(n, o.end);
if (!(s > 0)) {
var l = i(n, o.start);
return 0 === s ? e && 0 !== l ? -r - 2 : r : l > 0 || 0 === l && !e ? r : -r - 1;
}
}
return -r - 1;
}, this.add = function(n) {
var e = !n.isEmpty(), t = this.pointIndex(n.start, e);
0 > t && (t = -t - 1);
var i = this.pointIndex(n.end, e, t);
return 0 > i ? i = -i - 1 : i++, this.ranges.splice(t, i - t, n);
}, this.addList = function(n) {
for (var e = [], t = n.length; t--; ) e.push.call(e, this.add(n[t]));
return e;
}, this.substractPoint = function(n) {
var e = this.pointIndex(n);
return e >= 0 ? this.ranges.splice(e, 1) : void 0;
}, this.merge = function() {
var n = [], e = this.ranges;
e = e.sort(function(n, e) {
return i(n.start, e.start);
});
for (var t, a = e[0], r = 1; r < e.length; r++) {
t = a, a = e[r];
var o = i(t.end, a.start);
0 > o || (0 != o || t.isEmpty() || a.isEmpty()) && (i(t.end, a.end) < 0 && (t.end.row = a.end.row,
t.end.column = a.end.column), e.splice(r, 1), n.push(a), a = t, r--);
}
return this.ranges = e, n;
}, this.contains = function(n, e) {
return this.pointIndex({
row: n,
column: e
}) >= 0;
}, this.containsPoint = function(n) {
return this.pointIndex(n) >= 0;
}, this.rangeAtPoint = function(n) {
var e = this.pointIndex(n);
return e >= 0 ? this.ranges[e] : void 0;
}, this.clipRows = function(n, e) {
var t = this.ranges;
if (t[0].start.row > e || t[t.length - 1].start.row < n) return [];
var i = this.pointIndex({
row: n,
column: 0
});
0 > i && (i = -i - 1);
var a = this.pointIndex({
row: e,
column: 0
}, i);
0 > a && (a = -a - 1);
for (var r = [], o = i; a > o; o++) r.push(t[o]);
return r;
}, this.removeAll = function() {
return this.ranges.splice(0, this.ranges.length);
}, this.attach = function(n) {
this.session && this.detach(), this.session = n, this.onChange = this.$onChange.bind(this),
this.session.on("change", this.onChange);
}, this.detach = function() {
this.session && (this.session.removeListener("change", this.onChange), this.session = null);
}, this.$onChange = function(n) {
var e = n.data.range;
if ("i" == n.data.action[0]) var t = e.start, i = e.end; else var i = e.start, t = e.end;
for (var a = t.row, r = i.row, o = r - a, s = -t.column + i.column, l = this.ranges, c = 0, M = l.length; M > c; c++) {
var u = l[c];
if (!(u.end.row < a)) {
if (u.start.row > a) break;
if (u.start.row == a && u.start.column >= t.column && (u.start.column == t.column && this.$insertRight || (u.start.column += s,
u.start.row += o)), u.end.row == a && u.end.column >= t.column) {
if (u.end.column == t.column && this.$insertRight) continue;
u.end.column == t.column && s > 0 && M - 1 > c && u.end.column > u.start.column && u.end.column == l[c + 1].start.column && (u.end.column -= s),
u.end.column += s, u.end.row += o;
}
}
}
if (0 != o && M > c) for (;M > c; c++) {
var u = l[c];
u.start.row += o, u.end.row += o;
}
};
}).call(a.prototype), e.RangeList = a;
}), define("ace/edit_session/fold", [ "require", "exports", "module", "../range", "../range_list", "../lib/oop" ], function(n, e) {
function t(n, e) {
n.row -= e.row, 0 == n.row && (n.column -= e.column);
}
function i(n, e) {
t(n.start, e), t(n.end, e);
}
function a(n, e) {
0 == n.row && (n.column += e.column), n.row += e.row;
}
function r(n, e) {
a(n.start, e), a(n.end, e);
}
n("../range").Range;
var o = n("../range_list").RangeList, s = n("../lib/oop"), l = e.Fold = function(n, e) {
this.foldLine = null, this.placeholder = e, this.range = n, this.start = n.start,
this.end = n.end, this.sameRow = n.start.row == n.end.row, this.subFolds = this.ranges = [];
};
s.inherits(l, o), function() {
this.toString = function() {
return '"' + this.placeholder + '" ' + this.range.toString();
}, this.setFoldLine = function(n) {
this.foldLine = n, this.subFolds.forEach(function(e) {
e.setFoldLine(n);
});
}, this.clone = function() {
var n = this.range.clone(), e = new l(n, this.placeholder);
return this.subFolds.forEach(function(n) {
e.subFolds.push(n.clone());
}), e.collapseChildren = this.collapseChildren, e;
}, this.addSubFold = function(n) {
if (!this.range.isEqual(n)) {
if (!this.range.containsRange(n)) throw "A fold can't intersect already existing fold" + n.range + this.range;
i(n, this.start);
for (var e = n.start.row, t = n.start.column, a = 0, r = -1; a < this.subFolds.length && (r = this.subFolds[a].range.compare(e, t),
1 == r); a++) ;
var o = this.subFolds[a];
if (0 == r) return o.addSubFold(n);
for (var e = n.range.end.row, t = n.range.end.column, s = a, r = -1; s < this.subFolds.length && (r = this.subFolds[s].range.compare(e, t),
1 == r); s++) ;
if (this.subFolds[s], 0 == r) throw "A fold can't intersect already existing fold" + n.range + this.range;
return this.subFolds.splice(a, s - a, n), n.setFoldLine(this.foldLine), n;
}
}, this.restoreRange = function(n) {
return r(n, this.start);
};
}.call(l.prototype);
}), define("ace/edit_session/folding", [ "require", "exports", "module", "../range", "./fold_line", "./fold", "../token_iterator" ], function(n, e) {
function t() {
this.getFoldAt = function(n, e, t) {
var i = this.getFoldLine(n);
if (!i) return null;
for (var a = i.folds, r = 0; r < a.length; r++) {
var o = a[r];
if (o.range.contains(n, e)) {
if (1 == t && o.range.isEnd(n, e)) continue;
if (-1 == t && o.range.isStart(n, e)) continue;
return o;
}
}
}, this.getFoldsInRange = function(n) {
var e = n.start, t = n.end, i = this.$foldData, a = [];
e.column += 1, t.column -= 1;
for (var r = 0; r < i.length; r++) {
var o = i[r].range.compareRange(n);
if (2 != o) {
if (-2 == o) break;
for (var s = i[r].folds, l = 0; l < s.length; l++) {
var c = s[l];
if (o = c.range.compareRange(n), -2 == o) break;
if (2 != o) {
if (42 == o) break;
a.push(c);
}
}
}
}
return e.column -= 1, t.column += 1, a;
}, this.getAllFolds = function() {
function n(n) {
e.push(n);
}
for (var e = [], t = this.$foldData, i = 0; i < t.length; i++) for (var a = 0; a < t[i].folds.length; a++) n(t[i].folds[a]);
return e;
}, this.getFoldStringAt = function(n, e, t, i) {
if (i = i || this.getFoldLine(n), !i) return null;
for (var a, r, o = {
end: {
column: 0
}
}, s = 0; s < i.folds.length; s++) {
r = i.folds[s];
var l = r.range.compareEnd(n, e);
if (-1 == l) {
a = this.getLine(r.start.row).substring(o.end.column, r.start.column);
break;
}
if (0 === l) return null;
o = r;
}
return a || (a = this.getLine(r.start.row).substring(o.end.column)), -1 == t ? a.substring(0, e - o.end.column) : 1 == t ? a.substring(e - o.end.column) : a;
}, this.getFoldLine = function(n, e) {
var t = this.$foldData, i = 0;
for (e && (i = t.indexOf(e)), -1 == i && (i = 0), i; i < t.length; i++) {
var a = t[i];
if (a.start.row <= n && a.end.row >= n) return a;
if (a.end.row > n) return null;
}
return null;
}, this.getNextFoldLine = function(n, e) {
var t = this.$foldData, i = 0;
for (e && (i = t.indexOf(e)), -1 == i && (i = 0), i; i < t.length; i++) {
var a = t[i];
if (a.end.row >= n) return a;
}
return null;
}, this.getFoldedRowCount = function(n, e) {
for (var t = this.$foldData, i = e - n + 1, a = 0; a < t.length; a++) {
var r = t[a], o = r.end.row, s = r.start.row;
if (o >= e) {
e > s && (s >= n ? i -= e - s : i = 0);
break;
}
o >= n && (i -= s >= n ? o - s : o - n + 1);
}
return i;
}, this.$addFoldLine = function(n) {
return this.$foldData.push(n), this.$foldData.sort(function(n, e) {
return n.start.row - e.start.row;
}), n;
}, this.addFold = function(n, e) {
var t, i = this.$foldData, o = !1;
n instanceof r ? t = n : (t = new r(e, n), t.collapseChildren = e.collapseChildren),
this.$clipRangeToDocument(t.range);
var s = t.start.row, l = t.start.column, c = t.end.row, M = t.end.column;
if (!(c > s || s == c && M - 2 >= l)) throw "The range has to be at least 2 characters width";
var u = this.getFoldAt(s, l, 1), d = this.getFoldAt(c, M, -1);
if (u && d == u) return u.addSubFold(t);
if (u && !u.range.isStart(s, l) || d && !d.range.isEnd(c, M)) throw "A fold can't intersect already existing fold" + t.range + u.range;
var h = this.getFoldsInRange(t.range);
h.length > 0 && (this.removeFolds(h), h.forEach(function(n) {
t.addSubFold(n);
}));
for (var S = 0; S < i.length; S++) {
var p = i[S];
if (c == p.start.row) {
p.addFold(t), o = !0;
break;
}
if (s == p.end.row) {
if (p.addFold(t), o = !0, !t.sameRow) {
var m = i[S + 1];
if (m && m.start.row == c) {
p.merge(m);
break;
}
}
break;
}
if (c <= p.start.row) break;
}
return o || (p = this.$addFoldLine(new a(this.$foldData, t))), this.$useWrapMode ? this.$updateWrapData(p.start.row, p.start.row) : this.$updateRowLengthCache(p.start.row, p.start.row),
this.$modified = !0, this._emit("changeFold", {
data: t,
action: "add"
}), t;
}, this.addFolds = function(n) {
n.forEach(function(n) {
this.addFold(n);
}, this);
}, this.removeFold = function(n) {
var e = n.foldLine, t = e.start.row, i = e.end.row, a = this.$foldData, r = e.folds;
if (1 == r.length) a.splice(a.indexOf(e), 1); else if (e.range.isEnd(n.end.row, n.end.column)) r.pop(),
e.end.row = r[r.length - 1].end.row, e.end.column = r[r.length - 1].end.column; else if (e.range.isStart(n.start.row, n.start.column)) r.shift(),
e.start.row = r[0].start.row, e.start.column = r[0].start.column; else if (n.sameRow) r.splice(r.indexOf(n), 1); else {
var o = e.split(n.start.row, n.start.column);
r = o.folds, r.shift(), o.start.row = r[0].start.row, o.start.column = r[0].start.column;
}
this.$updating || (this.$useWrapMode ? this.$updateWrapData(t, i) : this.$updateRowLengthCache(t, i)),
this.$modified = !0, this._emit("changeFold", {
data: n,
action: "remove"
});
}, this.removeFolds = function(n) {
for (var e = [], t = 0; t < n.length; t++) e.push(n[t]);
e.forEach(function(n) {
this.removeFold(n);
}, this), this.$modified = !0;
}, this.expandFold = function(n) {
this.removeFold(n), n.subFolds.forEach(function(e) {
n.restoreRange(e), this.addFold(e);
}, this), n.collapseChildren > 0 && this.foldAll(n.start.row + 1, n.end.row, n.collapseChildren - 1),
n.subFolds = [];
}, this.expandFolds = function(n) {
n.forEach(function(n) {
this.expandFold(n);
}, this);
}, this.unfold = function(n, e) {
var t, a;
if (null == n ? (t = new i(0, 0, this.getLength(), 0), e = !0) : t = "number" == typeof n ? new i(n, 0, n, this.getLine(n).length) : "row" in n ? i.fromPoints(n, n) : n,
a = this.getFoldsInRange(t), e) this.removeFolds(a); else for (;a.length; ) this.expandFolds(a),
a = this.getFoldsInRange(t);
}, this.isRowFolded = function(n, e) {
return !!this.getFoldLine(n, e);
}, this.getRowFoldEnd = function(n, e) {
var t = this.getFoldLine(n, e);
return t ? t.end.row : n;
}, this.getRowFoldStart = function(n, e) {
var t = this.getFoldLine(n, e);
return t ? t.start.row : n;
}, this.getFoldDisplayLine = function(n, e, t, i, a) {
null == i && (i = n.start.row, a = 0), null == e && (e = n.end.row, t = this.getLine(e).length);
var r = this.doc, o = "";
return n.walk(function(n, e, t, s) {
if (!(i > e)) {
if (e == i) {
if (a > t) return;
s = Math.max(a, s);
}
o += null != n ? n : r.getLine(e).substring(s, t);
}
}, e, t), o;
}, this.getDisplayLine = function(n, e, t, i) {
var a = this.getFoldLine(n);
if (a) return this.getFoldDisplayLine(a, n, e, t, i);
var r;
return r = this.doc.getLine(n), r.substring(i || 0, e || r.length);
}, this.$cloneFoldData = function() {
var n = [];
return n = this.$foldData.map(function(e) {
var t = e.folds.map(function(n) {
return n.clone();
});
return new a(n, t);
});
}, this.toggleFold = function(n) {
var e, t, i = this.selection, a = i.getRange();
if (a.isEmpty()) {
var r = a.start;
if (e = this.getFoldAt(r.row, r.column)) return this.expandFold(e), void 0;
(t = this.findMatchingBracket(r)) ? 1 == a.comparePoint(t) ? a.end = t : (a.start = t,
a.start.column++, a.end.column--) : (t = this.findMatchingBracket({
row: r.row,
column: r.column + 1
})) ? (1 == a.comparePoint(t) ? a.end = t : a.start = t, a.start.column++) : a = this.getCommentFoldRange(r.row, r.column) || a;
} else {
var o = this.getFoldsInRange(a);
if (n && o.length) return this.expandFolds(o), void 0;
1 == o.length && (e = o[0]);
}
if (e || (e = this.getFoldAt(a.start.row, a.start.column)), e && e.range.toString() == a.toString()) return this.expandFold(e),
void 0;
var s = "...";
if (!a.isMultiLine()) {
if (s = this.getTextRange(a), s.length < 4) return;
s = s.trim().substring(0, 2) + "..";
}
this.addFold(s, a);
}, this.getCommentFoldRange = function(n, e, t) {
var a = new o(this, n, e), r = a.getCurrentToken();
if (r && /^comment|string/.test(r.type)) {
var s = new i(), l = new RegExp(r.type.replace(/\..*/, "\\."));
if (1 != t) {
do r = a.stepBackward(); while (r && l.test(r.type));
a.stepForward();
}
if (s.start.row = a.getCurrentTokenRow(), s.start.column = a.getCurrentTokenColumn() + 2,
a = new o(this, n, e), -1 != t) {
do r = a.stepForward(); while (r && l.test(r.type));
r = a.stepBackward();
} else r = a.getCurrentToken();
return s.end.row = a.getCurrentTokenRow(), s.end.column = a.getCurrentTokenColumn() + r.value.length - 2,
s;
}
}, this.foldAll = function(n, e, t) {
void 0 == t && (t = 1e5);
var i = this.foldWidgets;
e = e || this.getLength(), n = n || 0;
for (var a = n; e > a; a++) if (null == i[a] && (i[a] = this.getFoldWidget(a)),
"start" == i[a]) {
var r = this.getFoldWidgetRange(a), o = r.end.row;
if (r && r.isMultiLine() && e >= o && r.start.row >= n) try {
var s = this.addFold("...", r);
s.collapseChildren = t, a = o;
} catch (l) {}
}
}, this.$foldStyles = {
manual: 1,
markbegin: 1,
markbeginend: 1
}, this.$foldStyle = "markbegin", this.setFoldStyle = function(n) {
if (!this.$foldStyles[n]) throw new Error("invalid fold style: " + n + "[" + Object.keys(this.$foldStyles).join(", ") + "]");
if (this.$foldStyle != n) {
this.$foldStyle = n, "manual" == n && this.unfold();
var e = this.$foldMode;
this.$setFolding(null), this.$setFolding(e);
}
}, this.$setFolding = function(n) {
if (this.$foldMode != n) {
if (this.$foldMode = n, this.removeListener("change", this.$updateFoldWidgets),
this._emit("changeAnnotation"), !n || "manual" == this.$foldStyle) return this.foldWidgets = null,
void 0;
this.foldWidgets = [], this.getFoldWidget = n.getFoldWidget.bind(n, this, this.$foldStyle),
this.getFoldWidgetRange = n.getFoldWidgetRange.bind(n, this, this.$foldStyle), this.$updateFoldWidgets = this.updateFoldWidgets.bind(this),
this.on("change", this.$updateFoldWidgets);
}
}, this.getParentFoldRangeData = function(n, e) {
var t = this.foldWidgets;
if (!t || e && t[n]) return {};
for (var i, a = n - 1; a >= 0; ) {
var r = t[a];
if (null == r && (r = t[a] = this.getFoldWidget(a)), "start" == r) {
var o = this.getFoldWidgetRange(a);
if (i || (i = o), o && o.end.row >= n) break;
}
a--;
}
return {
range: -1 !== a && o,
firstRange: i
};
}, this.onFoldWidgetClick = function(n, e) {
var t = this.getFoldWidget(n), i = this.getLine(n);
e = e.domEvent;
var a = e.shiftKey, r = e.ctrlKey || e.metaKey, o = e.altKey, s = "end" === t ? -1 : 1, l = this.getFoldAt(n, -1 === s ? 0 : i.length, s);
if (l) return a || r ? this.removeFold(l) : this.expandFold(l), void 0;
var c = this.getFoldWidgetRange(n);
if (c && !c.isMultiLine() && (l = this.getFoldAt(c.start.row, c.start.column, 1),
l && c.isEqual(l.range))) return this.removeFold(l), void 0;
if (o) {
var M = this.getParentFoldRangeData(n);
if (M.range) var u = M.range.start.row + 1, d = M.range.end.row;
this.foldAll(u, d, r ? 1e4 : 0);
} else if (a) {
var d = c ? c.end.row : this.getLength();
this.foldAll(n + 1, c.end.row, r ? 1e4 : 0);
} else c && (r && (c.collapseChildren = 1e4), this.addFold("...", c));
c || ((e.target || e.srcElement).className += " ace_invalid");
}, this.updateFoldWidgets = function(n) {
var e = n.data, t = e.range, i = t.start.row, a = t.end.row - i;
if (0 === a) this.foldWidgets[i] = null; else if ("removeText" == e.action || "removeLines" == e.action) this.foldWidgets.splice(i, a + 1, null); else {
var r = Array(a + 1);
r.unshift(i, 1), this.foldWidgets.splice.apply(this.foldWidgets, r);
}
};
}
var i = n("../range").Range, a = n("./fold_line").FoldLine, r = n("./fold").Fold, o = n("../token_iterator").TokenIterator;
e.Folding = t;
}), define("ace/edit_session/bracket_match", [ "require", "exports", "module", "../token_iterator", "../range" ], function(n, e) {
function t() {
this.findMatchingBracket = function(n, e) {
if (0 == n.column) return null;
var t = e || this.getLine(n.row).charAt(n.column - 1);
if ("" == t) return null;
var i = t.match(/([\(\[\{])|([\)\]\}])/);
return i ? i[1] ? this.$findClosingBracket(i[1], n) : this.$findOpeningBracket(i[2], n) : null;
}, this.getBracketRange = function(n) {
var e, t = this.getLine(n.row), i = !0, r = t.charAt(n.column - 1), o = r && r.match(/([\(\[\{])|([\)\]\}])/);
if (o || (r = t.charAt(n.column), n = {
row: n.row,
column: n.column + 1
}, o = r && r.match(/([\(\[\{])|([\)\]\}])/), i = !1), !o) return null;
if (o[1]) {
var s = this.$findClosingBracket(o[1], n);
if (!s) return null;
e = a.fromPoints(n, s), i || (e.end.column++, e.start.column--), e.cursor = e.end;
} else {
var s = this.$findOpeningBracket(o[2], n);
if (!s) return null;
e = a.fromPoints(s, n), i || (e.start.column++, e.end.column--), e.cursor = e.start;
}
return e;
}, this.$brackets = {
")": "(",
"(": ")",
"]": "[",
"[": "]",
"{": "}",
"}": "{"
}, this.$findOpeningBracket = function(n, e, t) {
var a = this.$brackets[n], r = 1, o = new i(this, e.row, e.column), s = o.getCurrentToken();
if (s || (s = o.stepForward()), s) {
t || (t = new RegExp("(\\.?" + s.type.replace(".", "\\.").replace("rparen", ".paren") + ")+"));
for (var l = e.column - o.getCurrentTokenColumn() - 2, c = s.value; ;) {
for (;l >= 0; ) {
var M = c.charAt(l);
if (M == a) {
if (r -= 1, 0 == r) return {
row: o.getCurrentTokenRow(),
column: l + o.getCurrentTokenColumn()
};
} else M == n && (r += 1);
l -= 1;
}
do s = o.stepBackward(); while (s && !t.test(s.type));
if (null == s) break;
c = s.value, l = c.length - 1;
}
return null;
}
}, this.$findClosingBracket = function(n, e, t) {
var a = this.$brackets[n], r = 1, o = new i(this, e.row, e.column), s = o.getCurrentToken();
if (s || (s = o.stepForward()), s) {
t || (t = new RegExp("(\\.?" + s.type.replace(".", "\\.").replace("lparen", ".paren") + ")+"));
for (var l = e.column - o.getCurrentTokenColumn(); ;) {
for (var c = s.value, M = c.length; M > l; ) {
var u = c.charAt(l);
if (u == a) {
if (r -= 1, 0 == r) return {
row: o.getCurrentTokenRow(),
column: l + o.getCurrentTokenColumn()
};
} else u == n && (r += 1);
l += 1;
}
do s = o.stepForward(); while (s && !t.test(s.type));
if (null == s) break;
l = 0;
}
return null;
}
};
}
var i = n("../token_iterator").TokenIterator, a = n("../range").Range;
e.BracketMatch = t;
}), define("ace/edit_session", [ "require", "exports", "module", "./lib/oop", "./lib/lang", "./config", "./lib/event_emitter", "./selection", "./mode/text", "./range", "./document", "./background_tokenizer", "./search_highlight", "./edit_session/folding", "./edit_session/bracket_match" ], function(n, e) {
var t = n("./lib/oop"), i = n("./lib/lang"), a = n("./config"), r = n("./lib/event_emitter").EventEmitter, o = n("./selection").Selection, s = n("./mode/text").Mode, l = n("./range").Range, c = n("./document").Document, M = n("./background_tokenizer").BackgroundTokenizer, u = n("./search_highlight").SearchHighlight, d = function(n, e) {
this.$breakpoints = [], this.$decorations = [], this.$frontMarkers = {}, this.$backMarkers = {},
this.$markerId = 1, this.$undoSelect = !0, this.$foldData = [], this.$foldData.toString = function() {
return this.join("\n");
}, this.on("changeFold", this.onChangeFold.bind(this)), this.$onChange = this.onChange.bind(this),
"object" == typeof n && n.getLine || (n = new c(n)), this.setDocument(n), this.selection = new o(this),
a.resetOptions(this), this.setMode(e), a._emit("session", this);
};
(function() {
function e(n) {
return 4352 > n ? !1 : n >= 4352 && 4447 >= n || n >= 4515 && 4519 >= n || n >= 4602 && 4607 >= n || n >= 9001 && 9002 >= n || n >= 11904 && 11929 >= n || n >= 11931 && 12019 >= n || n >= 12032 && 12245 >= n || n >= 12272 && 12283 >= n || n >= 12288 && 12350 >= n || n >= 12353 && 12438 >= n || n >= 12441 && 12543 >= n || n >= 12549 && 12589 >= n || n >= 12593 && 12686 >= n || n >= 12688 && 12730 >= n || n >= 12736 && 12771 >= n || n >= 12784 && 12830 >= n || n >= 12832 && 12871 >= n || n >= 12880 && 13054 >= n || n >= 13056 && 19903 >= n || n >= 19968 && 42124 >= n || n >= 42128 && 42182 >= n || n >= 43360 && 43388 >= n || n >= 44032 && 55203 >= n || n >= 55216 && 55238 >= n || n >= 55243 && 55291 >= n || n >= 63744 && 64255 >= n || n >= 65040 && 65049 >= n || n >= 65072 && 65106 >= n || n >= 65108 && 65126 >= n || n >= 65128 && 65131 >= n || n >= 65281 && 65376 >= n || n >= 65504 && 65510 >= n;
}
t.implement(this, r), this.setDocument = function(n) {
this.doc && this.doc.removeListener("change", this.$onChange), this.doc = n, n.on("change", this.$onChange),
this.bgTokenizer && this.bgTokenizer.setDocument(this.getDocument()), this.resetCaches();
}, this.getDocument = function() {
return this.doc;
}, this.$resetRowCache = function(n) {
if (!n) return this.$docRowCache = [], this.$screenRowCache = [], void 0;
var e = this.$docRowCache.length, t = this.$getRowCacheIndex(this.$docRowCache, n) + 1;
e > t && (this.$docRowCache.splice(t, e), this.$screenRowCache.splice(t, e));
}, this.$getRowCacheIndex = function(n, e) {
for (var t = 0, i = n.length - 1; i >= t; ) {
var a = t + i >> 1, r = n[a];
if (e > r) t = a + 1; else {
if (!(r > e)) return a;
i = a - 1;
}
}
return t - 1;
}, this.resetCaches = function() {
this.$modified = !0, this.$wrapData = [], this.$rowLengthCache = [], this.$resetRowCache(0),
this.bgTokenizer && this.bgTokenizer.start(0);
}, this.onChangeFold = function(n) {
var e = n.data;
this.$resetRowCache(e.start.row);
}, this.onChange = function(n) {
var e = n.data;
this.$modified = !0, this.$resetRowCache(e.range.start.row);
var t = this.$updateInternalDataOnChange(n);
this.$fromUndo || !this.$undoManager || e.ignore || (this.$deltasDoc.push(e), t && 0 != t.length && this.$deltasFold.push({
action: "removeFolds",
folds: t
}), this.$informUndoManager.schedule()), this.bgTokenizer.$updateOnChange(e), this._emit("change", n);
}, this.setValue = function(n) {
this.doc.setValue(n), this.selection.moveCursorTo(0, 0), this.selection.clearSelection(),
this.$resetRowCache(0), this.$deltas = [], this.$deltasDoc = [], this.$deltasFold = [],
this.getUndoManager().reset();
}, this.getValue = this.toString = function() {
return this.doc.getValue();
}, this.getSelection = function() {
return this.selection;
}, this.getState = function(n) {
return this.bgTokenizer.getState(n);
}, this.getTokens = function(n) {
return this.bgTokenizer.getTokens(n);
}, this.getTokenAt = function(n, e) {
var t, i = this.bgTokenizer.getTokens(n), a = 0;
if (null == e) r = i.length - 1, a = this.getLine(n).length; else for (var r = 0; r < i.length && (a += i[r].value.length,
!(a >= e)); r++) ;
return (t = i[r]) ? (t.index = r, t.start = a - t.value.length, t) : null;
}, this.setUndoManager = function(n) {
if (this.$undoManager = n, this.$deltas = [], this.$deltasDoc = [], this.$deltasFold = [],
this.$informUndoManager && this.$informUndoManager.cancel(), n) {
var e = this;
this.$syncInformUndoManager = function() {
e.$informUndoManager.cancel(), e.$deltasFold.length && (e.$deltas.push({
group: "fold",
deltas: e.$deltasFold
}), e.$deltasFold = []), e.$deltasDoc.length && (e.$deltas.push({
group: "doc",
deltas: e.$deltasDoc
}), e.$deltasDoc = []), e.$deltas.length > 0 && n.execute({
action: "aceupdate",
args: [ e.$deltas, e ],
merge: e.mergeUndoDeltas
}), e.mergeUndoDeltas = !1, e.$deltas = [];
}, this.$informUndoManager = i.delayedCall(this.$syncInformUndoManager);
}
}, this.markUndoGroup = function() {
this.$syncInformUndoManager && this.$syncInformUndoManager();
}, this.$defaultUndoManager = {
undo: function() {},
redo: function() {},
reset: function() {}
}, this.getUndoManager = function() {
return this.$undoManager || this.$defaultUndoManager;
}, this.getTabString = function() {
return this.getUseSoftTabs() ? i.stringRepeat(" ", this.getTabSize()) : " ";
}, this.setUseSoftTabs = function(n) {
this.setOption("useSoftTabs", n);
}, this.getUseSoftTabs = function() {
return this.$useSoftTabs && !this.$mode.$indentWithTabs;
}, this.setTabSize = function(n) {
this.setOption("tabSize", n);
}, this.getTabSize = function() {
return this.$tabSize;
}, this.isTabStop = function(n) {
return this.$useSoftTabs && 0 == n.column % this.$tabSize;
}, this.$overwrite = !1, this.setOverwrite = function(n) {
this.setOption("overwrite", n);
}, this.getOverwrite = function() {
return this.$overwrite;
}, this.toggleOverwrite = function() {
this.setOverwrite(!this.$overwrite);
}, this.addGutterDecoration = function(n, e) {
this.$decorations[n] || (this.$decorations[n] = ""), this.$decorations[n] += " " + e,
this._emit("changeBreakpoint", {});
}, this.removeGutterDecoration = function(n, e) {
this.$decorations[n] = (this.$decorations[n] || "").replace(" " + e, ""), this._emit("changeBreakpoint", {});
}, this.getBreakpoints = function() {
return this.$breakpoints;
}, this.setBreakpoints = function(n) {
this.$breakpoints = [];
for (var e = 0; e < n.length; e++) this.$breakpoints[n[e]] = "ace_breakpoint";
this._emit("changeBreakpoint", {});
}, this.clearBreakpoints = function() {
this.$breakpoints = [], this._emit("changeBreakpoint", {});
}, this.setBreakpoint = function(n, e) {
void 0 === e && (e = "ace_breakpoint"), e ? this.$breakpoints[n] = e : delete this.$breakpoints[n],
this._emit("changeBreakpoint", {});
}, this.clearBreakpoint = function(n) {
delete this.$breakpoints[n], this._emit("changeBreakpoint", {});
}, this.addMarker = function(n, e, t, i) {
var a = this.$markerId++, r = {
range: n,
type: t || "line",
renderer: "function" == typeof t ? t : null,
clazz: e,
inFront: !!i,
id: a
};
return i ? (this.$frontMarkers[a] = r, this._emit("changeFrontMarker")) : (this.$backMarkers[a] = r,
this._emit("changeBackMarker")), a;
}, this.addDynamicMarker = function(n, e) {
if (n.update) {
var t = this.$markerId++;
return n.id = t, n.inFront = !!e, e ? (this.$frontMarkers[t] = n, this._emit("changeFrontMarker")) : (this.$backMarkers[t] = n,
this._emit("changeBackMarker")), n;
}
}, this.removeMarker = function(n) {
var e = this.$frontMarkers[n] || this.$backMarkers[n];
if (e) {
var t = e.inFront ? this.$frontMarkers : this.$backMarkers;
e && (delete t[n], this._emit(e.inFront ? "changeFrontMarker" : "changeBackMarker"));
}
}, this.getMarkers = function(n) {
return n ? this.$frontMarkers : this.$backMarkers;
}, this.highlight = function(n) {
if (!this.$searchHighlight) {
var e = new u(null, "ace_selected-word", "text");
this.$searchHighlight = this.addDynamicMarker(e);
}
this.$searchHighlight.setRegexp(n);
}, this.highlightLines = function(n, e, t, i) {
"number" != typeof e && (t = e, e = n), t || (t = "ace_step");
var a = new l(n, 0, e, 1/0);
return a.id = this.addMarker(a, t, "fullLine", i), a;
}, this.setAnnotations = function(n) {
this.$annotations = n, this._emit("changeAnnotation", {});
}, this.getAnnotations = function() {
return this.$annotations || [];
}, this.clearAnnotations = function() {
this.setAnnotations([]);
}, this.$detectNewLine = function(n) {
var e = n.match(/^.*?(\r?\n)/m);
this.$autoNewLine = e ? e[1] : "\n";
}, this.getWordRange = function(n, e) {
var t = this.getLine(n), i = !1;
if (e > 0 && (i = !!t.charAt(e - 1).match(this.tokenRe)), i || (i = !!t.charAt(e).match(this.tokenRe)),
i) var a = this.tokenRe; else if (/^\s+$/.test(t.slice(e - 1, e + 1))) var a = /\s/; else var a = this.nonTokenRe;
var r = e;
if (r > 0) {
do r--; while (r >= 0 && t.charAt(r).match(a));
r++;
}
for (var o = e; o < t.length && t.charAt(o).match(a); ) o++;
return new l(n, r, n, o);
}, this.getAWordRange = function(n, e) {
for (var t = this.getWordRange(n, e), i = this.getLine(t.end.row); i.charAt(t.end.column).match(/[ \t]/); ) t.end.column += 1;
return t;
}, this.setNewLineMode = function(n) {
this.doc.setNewLineMode(n);
}, this.getNewLineMode = function() {
return this.doc.getNewLineMode();
}, this.setUseWorker = function(n) {
this.setOption("useWorker", n);
}, this.getUseWorker = function() {
return this.$useWorker;
}, this.onReloadTokenizer = function(n) {
var e = n.data;
this.bgTokenizer.start(e.first), this._emit("tokenizerUpdate", n);
}, this.$modes = {}, this.$mode = null, this.$modeId = null, this.setMode = function(n, e) {
if (n && "object" == typeof n) {
if (n.getTokenizer) return this.$onChangeMode(n);
var t = n, i = t.path;
} else i = n || "ace/mode/text";
return this.$modes["ace/mode/text"] || (this.$modes["ace/mode/text"] = new s()),
this.$modes[i] && !t ? this.$onChangeMode(this.$modes[i]) : (this.$modeId = i, a.loadModule([ "mode", i ], function(n) {
return this.$modeId !== i ? e && e() : this.$modes[i] && !t ? this.$onChangeMode(this.$modes[i]) : (n && n.Mode && (n = new n.Mode(t),
t || (this.$modes[i] = n, n.$id = i), this.$onChangeMode(n), e && e(this.mode)),
void 0);
}.bind(this)), this.$mode || this.$onChangeMode(this.$modes["ace/mode/text"], !0),
void 0);
}, this.$onChangeMode = function(n, e) {
if (e || (this.$modeId = n.$id), this.$mode !== n) {
this.$mode = n, this.$stopWorker(), this.$useWorker && this.$startWorker();
var t = n.getTokenizer();
if (void 0 !== t.addEventListener) {
var i = this.onReloadTokenizer.bind(this);
t.addEventListener("update", i);
}
if (this.bgTokenizer) this.bgTokenizer.setTokenizer(t); else {
this.bgTokenizer = new M(t);
var a = this;
this.bgTokenizer.addEventListener("update", function(n) {
a._emit("tokenizerUpdate", n);
});
}
this.bgTokenizer.setDocument(this.getDocument()), this.tokenRe = n.tokenRe, this.nonTokenRe = n.nonTokenRe,
this.$options.wrapMethod.set.call(this, this.$wrapMethod), e || (this.$setFolding(n.foldingRules),
this._emit("changeMode"), this.bgTokenizer.start(0));
}
}, this.$stopWorker = function() {
this.$worker && this.$worker.terminate(), this.$worker = null;
}, this.$startWorker = function() {
if ("undefined" == typeof Worker || n.noWorker) this.$worker = null; else try {
this.$worker = this.$mode.createWorker(this);
} catch (e) {
console.log("Could not load worker"), console.log(e), this.$worker = null;
}
}, this.getMode = function() {
return this.$mode;
}, this.$scrollTop = 0, this.setScrollTop = function(n) {
this.$scrollTop === n || isNaN(n) || (this.$scrollTop = n, this._signal("changeScrollTop", n));
}, this.getScrollTop = function() {
return this.$scrollTop;
}, this.$scrollLeft = 0, this.setScrollLeft = function(n) {
this.$scrollLeft === n || isNaN(n) || (this.$scrollLeft = n, this._signal("changeScrollLeft", n));
}, this.getScrollLeft = function() {
return this.$scrollLeft;
}, this.getScreenWidth = function() {
return this.$computeWidth(), this.screenWidth;
}, this.$computeWidth = function(n) {
if (this.$modified || n) {
if (this.$modified = !1, this.$useWrapMode) return this.screenWidth = this.$wrapLimit;
for (var e = this.doc.getAllLines(), t = this.$rowLengthCache, i = 0, a = 0, r = this.$foldData[a], o = r ? r.start.row : 1/0, s = e.length, l = 0; s > l; l++) {
if (l > o) {
if (l = r.end.row + 1, l >= s) break;
r = this.$foldData[a++], o = r ? r.start.row : 1/0;
}
null == t[l] && (t[l] = this.$getStringScreenWidth(e[l])[0]), t[l] > i && (i = t[l]);
}
this.screenWidth = i;
}
}, this.getLine = function(n) {
return this.doc.getLine(n);
}, this.getLines = function(n, e) {
return this.doc.getLines(n, e);
}, this.getLength = function() {
return this.doc.getLength();
}, this.getTextRange = function(n) {
return this.doc.getTextRange(n || this.selection.getRange());
}, this.insert = function(n, e) {
return this.doc.insert(n, e);
}, this.remove = function(n) {
return this.doc.remove(n);
}, this.undoChanges = function(n, e) {
if (n.length) {
this.$fromUndo = !0;
for (var t = null, i = n.length - 1; -1 != i; i--) {
var a = n[i];
"doc" == a.group ? (this.doc.revertDeltas(a.deltas), t = this.$getUndoSelection(a.deltas, !0, t)) : a.deltas.forEach(function(n) {
this.addFolds(n.folds);
}, this);
}
return this.$fromUndo = !1, t && this.$undoSelect && !e && this.selection.setSelectionRange(t),
t;
}
}, this.redoChanges = function(n, e) {
if (n.length) {
this.$fromUndo = !0;
for (var t = null, i = 0; i < n.length; i++) {
var a = n[i];
"doc" == a.group && (this.doc.applyDeltas(a.deltas), t = this.$getUndoSelection(a.deltas, !1, t));
}
return this.$fromUndo = !1, t && this.$undoSelect && !e && this.selection.setSelectionRange(t),
t;
}
}, this.setUndoSelect = function(n) {
this.$undoSelect = n;
}, this.$getUndoSelection = function(n, e, t) {
function i(n) {
var t = "insertText" === n.action || "insertLines" === n.action;
return e ? !t : t;
}
var a, r, o = n[0], s = !1;
i(o) ? (a = l.fromPoints(o.range.start, o.range.end), s = !0) : (a = l.fromPoints(o.range.start, o.range.start),
s = !1);
for (var c = 1; c < n.length; c++) o = n[c], i(o) ? (r = o.range.start, -1 == a.compare(r.row, r.column) && a.setStart(o.range.start),
r = o.range.end, 1 == a.compare(r.row, r.column) && a.setEnd(o.range.end), s = !0) : (r = o.range.start,
-1 == a.compare(r.row, r.column) && (a = l.fromPoints(o.range.start, o.range.start)),
s = !1);
if (null != t) {
0 == l.comparePoints(t.start, a.start) && (t.start.column += a.end.column - a.start.column,
t.end.column += a.end.column - a.start.column);
var M = t.compareRange(a);
1 == M ? a.setStart(t.start) : -1 == M && a.setEnd(t.end);
}
return a;
}, this.replace = function(n, e) {
return this.doc.replace(n, e);
}, this.moveText = function(n, e, t) {
var i = this.getTextRange(n), a = this.getFoldsInRange(n), r = l.fromPoints(e, e);
if (!t) {
this.remove(n);
var o = n.start.row - n.end.row, s = o ? -n.end.column : n.start.column - n.end.column;
s && (r.start.row == n.end.row && r.start.column > n.end.column && (r.start.column += s),
r.end.row == n.end.row && r.end.column > n.end.column && (r.end.column += s)), o && r.start.row >= n.end.row && (r.start.row += o,
r.end.row += o);
}
if (this.insert(r.start, i), a.length) {
var c = n.start, M = r.start, o = M.row - c.row, s = M.column - c.column;
this.addFolds(a.map(function(n) {
return n = n.clone(), n.start.row == c.row && (n.start.column += s), n.end.row == c.row && (n.end.column += s),
n.start.row += o, n.end.row += o, n;
}));
}
return r;
}, this.indentRows = function(n, e, t) {
t = t.replace(/\t/g, this.getTabString());
for (var i = n; e >= i; i++) this.insert({
row: i,
column: 0
}, t);
}, this.outdentRows = function(n) {
for (var e = n.collapseRows(), t = new l(0, 0, 0, 0), i = this.getTabSize(), a = e.start.row; a <= e.end.row; ++a) {
var r = this.getLine(a);
t.start.row = a, t.end.row = a;
for (var o = 0; i > o && " " == r.charAt(o); ++o) ;
i > o && " " == r.charAt(o) ? (t.start.column = o, t.end.column = o + 1) : (t.start.column = 0,
t.end.column = o), this.remove(t);
}
}, this.$moveLines = function(n, e, t) {
if (n = this.getRowFoldStart(n), e = this.getRowFoldEnd(e), 0 > t) {
var i = this.getRowFoldStart(n + t);
if (0 > i) return 0;
var a = i - n;
} else if (t > 0) {
var i = this.getRowFoldEnd(e + t);
if (i > this.doc.getLength() - 1) return 0;
var a = i - e;
} else {
n = this.$clipRowToDocument(n), e = this.$clipRowToDocument(e);
var a = e - n + 1;
}
var r = new l(n, 0, e, Number.MAX_VALUE), o = this.getFoldsInRange(r).map(function(n) {
return n = n.clone(), n.start.row += a, n.end.row += a, n;
}), s = 0 == t ? this.doc.getLines(n, e) : this.doc.removeLines(n, e);
return this.doc.insertLines(n + a, s), o.length && this.addFolds(o), a;
}, this.moveLinesUp = function(n, e) {
return this.$moveLines(n, e, -1);
}, this.moveLinesDown = function(n, e) {
return this.$moveLines(n, e, 1);
}, this.duplicateLines = function(n, e) {
return this.$moveLines(n, e, 0);
}, this.$clipRowToDocument = function(n) {
return Math.max(0, Math.min(n, this.doc.getLength() - 1));
}, this.$clipColumnToRow = function(n, e) {
return 0 > e ? 0 : Math.min(this.doc.getLine(n).length, e);
}, this.$clipPositionToDocument = function(n, e) {
if (e = Math.max(0, e), 0 > n) n = 0, e = 0; else {
var t = this.doc.getLength();
n >= t ? (n = t - 1, e = this.doc.getLine(t - 1).length) : e = Math.min(this.doc.getLine(n).length, e);
}
return {
row: n,
column: e
};
}, this.$clipRangeToDocument = function(n) {
n.start.row < 0 ? (n.start.row = 0, n.start.column = 0) : n.start.column = this.$clipColumnToRow(n.start.row, n.start.column);
var e = this.doc.getLength() - 1;
return n.end.row > e ? (n.end.row = e, n.end.column = this.doc.getLine(e).length) : n.end.column = this.$clipColumnToRow(n.end.row, n.end.column),
n;
}, this.$wrapLimit = 80, this.$useWrapMode = !1, this.$wrapLimitRange = {
min: null,
max: null
}, this.setUseWrapMode = function(n) {
if (n != this.$useWrapMode) {
if (this.$useWrapMode = n, this.$modified = !0, this.$resetRowCache(0), n) {
var e = this.getLength();
this.$wrapData = [];
for (var t = 0; e > t; t++) this.$wrapData.push([]);
this.$updateWrapData(0, e - 1);
}
this._emit("changeWrapMode");
}
}, this.getUseWrapMode = function() {
return this.$useWrapMode;
}, this.setWrapLimitRange = function(n, e) {
(this.$wrapLimitRange.min !== n || this.$wrapLimitRange.max !== e) && (this.$wrapLimitRange = {
min: n,
max: e
}, this.$modified = !0, this._emit("changeWrapMode"));
}, this.adjustWrapLimit = function(n, e) {
var t = this.$wrapLimitRange;
t.max < 0 && (t = {
min: e,
max: e
});
var i = this.$constrainWrapLimit(n, t.min, t.max);
return i != this.$wrapLimit && i > 1 ? (this.$wrapLimit = i, this.$modified = !0,
this.$useWrapMode && (this.$updateWrapData(0, this.getLength() - 1), this.$resetRowCache(0),
this._emit("changeWrapLimit")), !0) : !1;
}, this.$constrainWrapLimit = function(n, e, t) {
return e && (n = Math.max(e, n)), t && (n = Math.min(t, n)), n;
}, this.getWrapLimit = function() {
return this.$wrapLimit;
}, this.setWrapLimit = function(n) {
this.setWrapLimitRange(n, n);
}, this.getWrapLimitRange = function() {
return {
min: this.$wrapLimitRange.min,
max: this.$wrapLimitRange.max
};
}, this.$updateInternalDataOnChange = function(n) {
var e, t = this.$useWrapMode, i = n.data.action, a = n.data.range.start.row, r = n.data.range.end.row, o = n.data.range.start, s = n.data.range.end, l = null;
if (-1 != i.indexOf("Lines") ? (r = "insertLines" == i ? a + n.data.lines.length : a,
e = n.data.lines ? n.data.lines.length : r - a) : e = r - a, this.$updating = !0,
0 != e) if (-1 != i.indexOf("remove")) {
this[t ? "$wrapData" : "$rowLengthCache"].splice(a, e);
var c = this.$foldData;
l = this.getFoldsInRange(n.data.range), this.removeFolds(l);
var M = this.getFoldLine(s.row), u = 0;
if (M) {
M.addRemoveChars(s.row, s.column, o.column - s.column), M.shiftRow(-e);
var d = this.getFoldLine(a);
d && d !== M && (d.merge(M), M = d), u = c.indexOf(M) + 1;
}
for (u; u < c.length; u++) {
var M = c[u];
M.start.row >= s.row && M.shiftRow(-e);
}
r = a;
} else {
var h;
if (t) {
h = [ a, 0 ];
for (var S = 0; e > S; S++) h.push([]);
this.$wrapData.splice.apply(this.$wrapData, h);
} else h = Array(e), h.unshift(a, 0), this.$rowLengthCache.splice.apply(this.$rowLengthCache, h);
var c = this.$foldData, M = this.getFoldLine(a), u = 0;
if (M) {
var p = M.range.compareInside(o.row, o.column);
0 == p ? (M = M.split(o.row, o.column), M.shiftRow(e), M.addRemoveChars(r, 0, s.column - o.column)) : -1 == p && (M.addRemoveChars(a, 0, s.column - o.column),
M.shiftRow(e)), u = c.indexOf(M) + 1;
}
for (u; u < c.length; u++) {
var M = c[u];
M.start.row >= a && M.shiftRow(e);
}
} else {
e = Math.abs(n.data.range.start.column - n.data.range.end.column), -1 != i.indexOf("remove") && (l = this.getFoldsInRange(n.data.range),
this.removeFolds(l), e = -e);
var M = this.getFoldLine(a);
M && M.addRemoveChars(a, o.column, e);
}
return t && this.$wrapData.length != this.doc.getLength() && console.error("doc.getLength() and $wrapData.length have to be the same!"),
this.$updating = !1, t ? this.$updateWrapData(a, r) : this.$updateRowLengthCache(a, r),
l;
}, this.$updateRowLengthCache = function(n, e) {
this.$rowLengthCache[n] = null, this.$rowLengthCache[e] = null;
}, this.$updateWrapData = function(n, e) {
var t, i, a = this.doc.getAllLines(), r = this.getTabSize(), o = this.$wrapData, s = this.$wrapLimit, l = n;
for (e = Math.min(e, a.length - 1); e >= l; ) i = this.getFoldLine(l, i), i ? (t = [],
i.walk(function(n, e, i, r) {
var o;
if (null != n) {
o = this.$getDisplayTokens(n, t.length), o[0] = d;
for (var s = 1; s < o.length; s++) o[s] = h;
} else o = this.$getDisplayTokens(a[e].substring(r, i), t.length);
t = t.concat(o);
}.bind(this), i.end.row, a[i.end.row].length + 1), o[i.start.row] = this.$computeWrapSplits(t, s, r),
l = i.end.row + 1) : (t = this.$getDisplayTokens(a[l]), o[l] = this.$computeWrapSplits(t, s, r),
l++);
};
var o = 1, c = 2, d = 3, h = 4, S = 9, p = 10, m = 11, g = 12;
this.$computeWrapSplits = function(n, e) {
function t(e) {
var t = n.slice(r, e), a = t.length;
t.join("").replace(/12/g, function() {
a -= 1;
}).replace(/2/g, function() {
a -= 1;
}), o += a, i.push(o), r = e;
}
if (0 == n.length) return [];
for (var i = [], a = n.length, r = 0, o = 0, s = this.$wrapAsCode; a - r > e; ) {
var l = r + e;
if (n[l - 1] >= p && n[l] >= p) t(l); else if (n[l] != d && n[l] != h) {
for (var c = Math.max(l - (s ? 10 : e - (e >> 2)), r - 1); l > c && n[l] < d; ) l--;
if (s) {
for (;l > c && n[l] < d; ) l--;
for (;l > c && n[l] == S; ) l--;
} else for (;l > c && n[l] < p; ) l--;
l > c ? t(++l) : (l = r + e, t(l));
} else {
for (l; l != r - 1 && n[l] != d; l--) ;
if (l > r) {
t(l);
continue;
}
for (l = r + e; l < n.length && n[l] == h; l++) ;
if (l == n.length) break;
t(l);
}
}
return i;
}, this.$getDisplayTokens = function(n, t) {
var i, a = [];
t = t || 0;
for (var r = 0; r < n.length; r++) {
var s = n.charCodeAt(r);
if (9 == s) {
i = this.getScreenTabSize(a.length + t), a.push(m);
for (var l = 1; i > l; l++) a.push(g);
} else 32 == s ? a.push(p) : s > 39 && 48 > s || s > 57 && 64 > s ? a.push(S) : s >= 4352 && e(s) ? a.push(o, c) : a.push(o);
}
return a;
}, this.$getStringScreenWidth = function(n, t, i) {
if (0 == t) return [ 0, 0 ];
null == t && (t = 1/0), i = i || 0;
var a, r;
for (r = 0; r < n.length && (a = n.charCodeAt(r), i += 9 == a ? this.getScreenTabSize(i) : a >= 4352 && e(a) ? 2 : 1,
!(i > t)); r++) ;
return [ i, r ];
}, this.getRowLength = function(n) {
return this.$useWrapMode && this.$wrapData[n] ? this.$wrapData[n].length + 1 : 1;
}, this.getScreenLastRowColumn = function(n) {
var e = this.screenToDocumentPosition(n, Number.MAX_VALUE);
return this.documentToScreenColumn(e.row, e.column);
}, this.getDocumentLastRowColumn = function(n, e) {
var t = this.documentToScreenRow(n, e);
return this.getScreenLastRowColumn(t);
}, this.getDocumentLastRowColumnPosition = function(n, e) {
var t = this.documentToScreenRow(n, e);
return this.screenToDocumentPosition(t, Number.MAX_VALUE / 10);
}, this.getRowSplitData = function(n) {
return this.$useWrapMode ? this.$wrapData[n] : void 0;
}, this.getScreenTabSize = function(n) {
return this.$tabSize - n % this.$tabSize;
}, this.screenToDocumentRow = function(n, e) {
return this.screenToDocumentPosition(n, e).row;
}, this.screenToDocumentColumn = function(n, e) {
return this.screenToDocumentPosition(n, e).column;
}, this.screenToDocumentPosition = function(n, e) {
if (0 > n) return {
row: 0,
column: 0
};
var t, i, a = 0, r = 0, o = 0, s = 0, l = this.$screenRowCache, c = this.$getRowCacheIndex(l, n), M = l.length;
if (M && c >= 0) var o = l[c], a = this.$docRowCache[c], u = n > l[M - 1]; else var u = !M;
for (var d = this.getLength() - 1, h = this.getNextFoldLine(a), S = h ? h.start.row : 1/0; n >= o && (s = this.getRowLength(a),
!(o + s - 1 >= n || a >= d)); ) o += s, a++, a > S && (a = h.end.row + 1, h = this.getNextFoldLine(a, h),
S = h ? h.start.row : 1/0), u && (this.$docRowCache.push(a), this.$screenRowCache.push(o));
if (h && h.start.row <= a) t = this.getFoldDisplayLine(h), a = h.start.row; else {
if (n >= o + s || a > d) return {
row: d,
column: this.getLine(d).length
};
t = this.getLine(a), h = null;
}
if (this.$useWrapMode) {
var p = this.$wrapData[a];
p && (i = p[n - o], n > o && p.length && (r = p[n - o - 1] || p[p.length - 1], t = t.substring(r)));
}
return r += this.$getStringScreenWidth(t, e)[1], this.$useWrapMode && r >= i && (r = i - 1),
h ? h.idxToPosition(r) : {
row: a,
column: r
};
}, this.documentToScreenPosition = function(n, e) {
if ("undefined" == typeof e) var t = this.$clipPositionToDocument(n.row, n.column); else t = this.$clipPositionToDocument(n, e);
n = t.row, e = t.column;
var i = 0, a = null, r = null;
r = this.getFoldAt(n, e, 1), r && (n = r.start.row, e = r.start.column);
var o, s = 0, l = this.$docRowCache, c = this.$getRowCacheIndex(l, n), M = l.length;
if (M && c >= 0) var s = l[c], i = this.$screenRowCache[c], u = n > l[M - 1]; else var u = !M;
for (var d = this.getNextFoldLine(s), h = d ? d.start.row : 1/0; n > s; ) {
if (s >= h) {
if (o = d.end.row + 1, o > n) break;
d = this.getNextFoldLine(o, d), h = d ? d.start.row : 1/0;
} else o = s + 1;
i += this.getRowLength(s), s = o, u && (this.$docRowCache.push(s), this.$screenRowCache.push(i));
}
var S = "";
if (d && s >= h ? (S = this.getFoldDisplayLine(d, n, e), a = d.start.row) : (S = this.getLine(n).substring(0, e),
a = n), this.$useWrapMode) {
for (var p = this.$wrapData[a], m = 0; S.length >= p[m]; ) i++, m++;
S = S.substring(p[m - 1] || 0, S.length);
}
return {
row: i,
column: this.$getStringScreenWidth(S)[0]
};
}, this.documentToScreenColumn = function(n, e) {
return this.documentToScreenPosition(n, e).column;
}, this.documentToScreenRow = function(n, e) {
return this.documentToScreenPosition(n, e).row;
}, this.getScreenLength = function() {
var n = 0, e = null;
if (this.$useWrapMode) for (var t = this.$wrapData.length, i = 0, a = 0, e = this.$foldData[a++], r = e ? e.start.row : 1/0; t > i; ) n += this.$wrapData[i].length + 1,
i++, i > r && (i = e.end.row + 1, e = this.$foldData[a++], r = e ? e.start.row : 1/0); else {
n = this.getLength();
for (var o = this.$foldData, a = 0; a < o.length; a++) e = o[a], n -= e.end.row - e.start.row;
}
return n;
};
}).call(d.prototype), n("./edit_session/folding").Folding.call(d.prototype), n("./edit_session/bracket_match").BracketMatch.call(d.prototype),
a.defineOptions(d.prototype, "session", {
wrap: {
set: function(n) {
if (n && "off" != n ? "free" == n ? n = !0 : "printMargin" == n ? n = -1 : "string" == typeof n && (n = parseInt(n, 10) || !1) : n = !1,
this.$wrap != n) {
if (n) {
var e = "number" == typeof n ? n : null;
this.setWrapLimitRange(e, e), this.setUseWrapMode(!0);
} else this.setUseWrapMode(!1);
this.$wrap = n;
}
},
get: function() {
return this.getUseWrapMode() ? this.getWrapLimitRange().min || "free" : "off";
},
handlesSet: !0
},
wrapMethod: {
set: function(n) {
this.$wrapAsCode = "auto" == n ? "text" != this.$mode.type : "text" != n;
},
initialValue: "auto"
},
firstLineNumber: {
set: function() {
this._emit("changeBreakpoint");
},
initialValue: 1
},
useWorker: {
set: function(n) {
this.$useWorker = n, this.$stopWorker(), n && this.$startWorker();
},
initialValue: !0
},
useSoftTabs: {
initialValue: !0
},
tabSize: {
set: function(n) {
isNaN(n) || this.$tabSize === n || (this.$modified = !0, this.$rowLengthCache = [],
this.$tabSize = n, this._emit("changeTabSize"));
},
initialValue: 4,
handlesSet: !0
},
overwrite: {
set: function() {
this._emit("changeOverwrite");
},
initialValue: !1
},
newLineMode: {
set: function(n) {
this.doc.setNewLineMode(n);
},
get: function() {
return this.doc.getNewLineMode();
},
handlesSet: !0
}
}), e.EditSession = d;
}), define("ace/search", [ "require", "exports", "module", "./lib/lang", "./lib/oop", "./range" ], function(n, e) {
var t = n("./lib/lang"), i = n("./lib/oop"), a = n("./range").Range, r = function() {
this.$options = {};
};
(function() {
this.set = function(n) {
return i.mixin(this.$options, n), this;
}, this.getOptions = function() {
return t.copyObject(this.$options);
}, this.setOptions = function(n) {
this.$options = n;
}, this.find = function(n) {
var e = this.$matchIterator(n, this.$options);
if (!e) return !1;
var t = null;
return e.forEach(function(n, e, i) {
if (n.start) t = n; else {
var r = n.offset + (i || 0);
t = new a(e, r, e, r + n.length);
}
return !0;
}), t;
}, this.findAll = function(n) {
var e = this.$options;
if (!e.needle) return [];
this.$assembleRegExp(e);
var i = e.range, r = i ? n.getLines(i.start.row, i.end.row) : n.doc.getAllLines(), o = [], s = e.re;
if (e.$isMultiLine) for (var l = s.length, c = r.length - l, M = s.offset || 0; c >= M; M++) {
for (var u = 0; l > u && -1 != r[M + u].search(s[u]); u++) ;
var d = r[M], h = r[M + l - 1], S = d.match(s[0])[0].length, p = h.match(s[l - 1])[0].length;
o.push(new a(M, d.length - S, M + l - 1, p));
} else for (var m = 0; m < r.length; m++) for (var g = t.getMatchOffsets(r[m], s), u = 0; u < g.length; u++) {
var f = g[u];
o.push(new a(m, f.offset, m, f.offset + f.length));
}
if (i) {
for (var b = i.start.column, y = i.start.column, m = 0, u = o.length - 1; u > m && o[m].start.column < b && o[m].start.row == i.start.row; ) m++;
for (;u > m && o[u].end.column > y && o[u].end.row == i.end.row; ) u--;
for (o = o.slice(m, u + 1), m = 0, u = o.length; u > m; m++) o[m].start.row += i.start.row,
o[m].end.row += i.start.row;
}
return o;
}, this.replace = function(n, e) {
var t = this.$options, i = this.$assembleRegExp(t);
if (t.$isMultiLine) return e;
if (i) {
var a = i.exec(n);
if (!a || a[0].length != n.length) return null;
if (e = n.replace(i, e), t.preserveCase) {
e = e.split("");
for (var r = Math.min(n.length, n.length); r--; ) {
var o = n[r];
e[r] = o && o.toLowerCase() != o ? e[r].toUpperCase() : e[r].toLowerCase();
}
e = e.join("");
}
return e;
}
}, this.$matchIterator = function(n, e) {
var i = this.$assembleRegExp(e);
if (!i) return !1;
var r, o = this, s = e.backwards;
if (e.$isMultiLine) var l = i.length, c = function(e, t, o) {
var s = e.search(i[0]);
if (-1 != s) {
for (var c = 1; l > c; c++) if (e = n.getLine(t + c), -1 == e.search(i[c])) return;
var M = e.match(i[l - 1])[0].length, u = new a(t, s, t + l - 1, M);
return 1 == i.offset ? (u.start.row--, u.start.column = Number.MAX_VALUE) : o && (u.start.column += o),
r(u) ? !0 : void 0;
}
}; else if (s) var c = function(n, e, a) {
for (var o = t.getMatchOffsets(n, i), s = o.length - 1; s >= 0; s--) if (r(o[s], e, a)) return !0;
}; else var c = function(n, e, a) {
for (var o = t.getMatchOffsets(n, i), s = 0; s < o.length; s++) if (r(o[s], e, a)) return !0;
};
return {
forEach: function(t) {
r = t, o.$lineIterator(n, e).forEach(c);
}
};
}, this.$assembleRegExp = function(n, e) {
if (n.needle instanceof RegExp) return n.re = n.needle;
var i = n.needle;
if (!n.needle) return n.re = !1;
n.regExp || (i = t.escapeRegExp(i)), n.wholeWord && (i = "\\b" + i + "\\b");
var a = n.caseSensitive ? "g" : "gi";
if (n.$isMultiLine = !e && /[\n\r]/.test(i), n.$isMultiLine) return n.re = this.$assembleMultilineRegExp(i, a);
try {
var r = new RegExp(i, a);
} catch (o) {
r = !1;
}
return n.re = r;
}, this.$assembleMultilineRegExp = function(n, e) {
for (var t = n.replace(/\r\n|\r|\n/g, "$\n^").split("\n"), i = [], a = 0; a < t.length; a++) try {
i.push(new RegExp(t[a], e));
} catch (r) {
return !1;
}
return "" == t[0] ? (i.shift(), i.offset = 1) : i.offset = 0, i;
}, this.$lineIterator = function(n, e) {
var t = 1 == e.backwards, i = 0 != e.skipCurrent, a = e.range, r = e.start;
r || (r = a ? a[t ? "end" : "start"] : n.selection.getRange()), r.start && (r = r[i != t ? "end" : "start"]);
var o = a ? a.start.row : 0, s = a ? a.end.row : n.getLength() - 1, l = t ? function(t) {
var i = r.row, a = n.getLine(i).substring(0, r.column);
if (!t(a, i)) {
for (i--; i >= o; i--) if (t(n.getLine(i), i)) return;
if (0 != e.wrap) for (i = s, o = r.row; i >= o; i--) if (t(n.getLine(i), i)) return;
}
} : function(t) {
var i = r.row, a = n.getLine(i).substr(r.column);
if (!t(a, i, r.column)) {
for (i += 1; s >= i; i++) if (t(n.getLine(i), i)) return;
if (0 != e.wrap) for (i = o, s = r.row; s >= i; i++) if (t(n.getLine(i), i)) return;
}
};
return {
forEach: l
};
};
}).call(r.prototype), e.Search = r;
}), define("ace/keyboard/hash_handler", [ "require", "exports", "module", "../lib/keys", "../lib/useragent" ], function(n, e) {
function t(n, e) {
this.platform = e || (a.isMac ? "mac" : "win"), this.commands = {}, this.commmandKeyBinding = {},
this.addCommands(n);
}
var i = n("../lib/keys"), a = n("../lib/useragent");
(function() {
this.addCommand = function(n) {
this.commands[n.name] && this.removeCommand(n), this.commands[n.name] = n, n.bindKey && this._buildKeyHash(n);
}, this.removeCommand = function(n) {
var e = "string" == typeof n ? n : n.name;
n = this.commands[e], delete this.commands[e];
var t = this.commmandKeyBinding;
for (var i in t) for (var a in t[i]) t[i][a] == n && delete t[i][a];
}, this.bindKey = function(n, e) {
if (n) {
if ("function" == typeof e) return this.addCommand({
exec: e,
bindKey: n,
name: e.name || n
}), void 0;
var t = this.commmandKeyBinding;
n.split("|").forEach(function(n) {
var i = this.parseKeys(n, e), a = i.hashId;
(t[a] || (t[a] = {}))[i.key] = e;
}, this);
}
}, this.addCommands = function(n) {
n && Object.keys(n).forEach(function(e) {
var t = n[e];
if (t) {
if ("string" == typeof t) return this.bindKey(t, e);
"function" == typeof t && (t = {
exec: t
}), t.name || (t.name = e), this.addCommand(t);
}
}, this);
}, this.removeCommands = function(n) {
Object.keys(n).forEach(function(e) {
this.removeCommand(n[e]);
}, this);
}, this.bindKeys = function(n) {
Object.keys(n).forEach(function(e) {
this.bindKey(e, n[e]);
}, this);
}, this._buildKeyHash = function(n) {
var e = n.bindKey;
if (e) {
var t = "string" == typeof e ? e : e[this.platform];
this.bindKey(t, n);
}
}, this.parseKeys = function(n) {
-1 != n.indexOf(" ") && (n = n.split(/\s+/).pop());
var e = n.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(n) {
return n;
}), t = e.pop(), a = i[t];
if (i.FUNCTION_KEYS[a]) t = i.FUNCTION_KEYS[a].toLowerCase(); else {
if (!e.length) return {
key: t,
hashId: -1
};
if (1 == e.length && "shift" == e[0]) return {
key: t.toUpperCase(),
hashId: -1
};
}
for (var r = 0, o = e.length; o--; ) {
var s = i.KEY_MODS[e[o]];
if (null == s) return "undefined" != typeof console && console.error("invalid modifier " + e[o] + " in " + n),
!1;
r |= s;
}
return {
key: t,
hashId: r
};
}, this.findKeyCommand = function(n, e) {
var t = this.commmandKeyBinding;
return t[n] && t[n][e];
}, this.handleKeyboard = function(n, e, t) {
return {
command: this.findKeyCommand(e, t)
};
};
}).call(t.prototype), e.HashHandler = t;
}), define("ace/commands/command_manager", [ "require", "exports", "module", "../lib/oop", "../keyboard/hash_handler", "../lib/event_emitter" ], function(n, e) {
var t = n("../lib/oop"), i = n("../keyboard/hash_handler").HashHandler, a = n("../lib/event_emitter").EventEmitter, r = function(n, e) {
this.platform = n, this.commands = this.byName = {}, this.commmandKeyBinding = {},
this.addCommands(e), this.setDefaultHandler("exec", function(n) {
return n.command.exec(n.editor, n.args || {});
});
};
t.inherits(r, i), function() {
t.implement(this, a), this.exec = function(n, e, t) {
if ("string" == typeof n && (n = this.commands[n]), !n) return !1;
if (e && e.$readOnly && !n.readOnly) return !1;
var i = {
editor: e,
command: n,
args: t
}, a = this._emit("exec", i);
return this._signal("afterExec", i), a === !1 ? !1 : !0;
}, this.toggleRecording = function(n) {
return this.$inReplay ? void 0 : (n && n._emit("changeStatus"), this.recording ? (this.macro.pop(),
this.removeEventListener("exec", this.$addCommandToMacro), this.macro.length || (this.macro = this.oldMacro),
this.recording = !1) : (this.$addCommandToMacro || (this.$addCommandToMacro = function(n) {
this.macro.push([ n.command, n.args ]);
}.bind(this)), this.oldMacro = this.macro, this.macro = [], this.on("exec", this.$addCommandToMacro),
this.recording = !0));
}, this.replay = function(n) {
if (!this.$inReplay && this.macro) {
if (this.recording) return this.toggleRecording(n);
try {
this.$inReplay = !0, this.macro.forEach(function(e) {
"string" == typeof e ? this.exec(e, n) : this.exec(e[0], n, e[1]);
}, this);
} finally {
this.$inReplay = !1;
}
}
}, this.trimMacro = function(n) {
return n.map(function(n) {
return "string" != typeof n[0] && (n[0] = n[0].name), n[1] || (n = n[0]), n;
});
};
}.call(r.prototype), e.CommandManager = r;
}), define("ace/commands/default_commands", [ "require", "exports", "module", "ace/lib/lang", "ace/config" ], function(n, e) {
function t(n, e) {
return {
win: n,
mac: e
};
}
var i = n("ace/lib/lang");
n("ace/config"), e.commands = [ {
name: "overwrite",
bindKey: "Insert",
exec: function(n) {
n.toggleOverwrite();
},
readOnly: !0
}, {
name: "selecttostart",
bindKey: t("Ctrl-Shift-Home", "Command-Shift-Up"),
exec: function(n) {
n.getSelection().selectFileStart();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotostart",
bindKey: t("Ctrl-Home", "Command-Home|Command-Up"),
exec: function(n) {
n.navigateFileStart();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectup",
bindKey: t("Shift-Up", "Shift-Up"),
exec: function(n) {
n.getSelection().selectUp();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "golineup",
bindKey: t("Up", "Up"),
exec: function(n, e) {
n.navigateUp(e.times);
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selecttoend",
bindKey: t("Ctrl-Shift-End", "Command-Shift-Down"),
exec: function(n) {
n.getSelection().selectFileEnd();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotoend",
bindKey: t("Ctrl-End", "Command-End|Command-Down"),
exec: function(n) {
n.navigateFileEnd();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectdown",
bindKey: t("Shift-Down", "Shift-Down"),
exec: function(n) {
n.getSelection().selectDown();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "golinedown",
bindKey: t("Down", "Down"),
exec: function(n, e) {
n.navigateDown(e.times);
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectwordleft",
bindKey: t("Ctrl-Shift-Left", "Option-Shift-Left"),
exec: function(n) {
n.getSelection().selectWordLeft();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotowordleft",
bindKey: t("Ctrl-Left", "Option-Left"),
exec: function(n) {
n.navigateWordLeft();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selecttolinestart",
bindKey: t("Alt-Shift-Left", "Command-Shift-Left"),
exec: function(n) {
n.getSelection().selectLineStart();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotolinestart",
bindKey: t("Alt-Left|Home", "Command-Left|Home"),
exec: function(n) {
n.navigateLineStart();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectleft",
bindKey: t("Shift-Left", "Shift-Left"),
exec: function(n) {
n.getSelection().selectLeft();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotoleft",
bindKey: t("Left", "Left"),
exec: function(n, e) {
n.navigateLeft(e.times);
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectwordright",
bindKey: t("Ctrl-Shift-Right", "Option-Shift-Right"),
exec: function(n) {
n.getSelection().selectWordRight();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotowordright",
bindKey: t("Ctrl-Right", "Option-Right"),
exec: function(n) {
n.navigateWordRight();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selecttolineend",
bindKey: t("Alt-Shift-Right", "Command-Shift-Right"),
exec: function(n) {
n.getSelection().selectLineEnd();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotolineend",
bindKey: t("Alt-Right|End", "Command-Right|End"),
exec: function(n) {
n.navigateLineEnd();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectright",
bindKey: t("Shift-Right", "Shift-Right"),
exec: function(n) {
n.getSelection().selectRight();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "gotoright",
bindKey: t("Right", "Right"),
exec: function(n, e) {
n.navigateRight(e.times);
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectpagedown",
bindKey: "Shift-PageDown",
exec: function(n) {
n.selectPageDown();
},
readOnly: !0
}, {
name: "pagedown",
bindKey: t(null, "Option-PageDown"),
exec: function(n) {
n.scrollPageDown();
},
readOnly: !0
}, {
name: "gotopagedown",
bindKey: t("PageDown", "PageDown"),
exec: function(n) {
n.gotoPageDown();
},
readOnly: !0
}, {
name: "selectpageup",
bindKey: "Shift-PageUp",
exec: function(n) {
n.selectPageUp();
},
readOnly: !0
}, {
name: "pageup",
bindKey: t(null, "Option-PageUp"),
exec: function(n) {
n.scrollPageUp();
},
readOnly: !0
}, {
name: "gotopageup",
bindKey: "PageUp",
exec: function(n) {
n.gotoPageUp();
},
readOnly: !0
}, {
name: "scrollup",
bindKey: t("Ctrl-Up", null),
exec: function(n) {
n.renderer.scrollBy(0, -2 * n.renderer.layerConfig.lineHeight);
},
readOnly: !0
}, {
name: "scrolldown",
bindKey: t("Ctrl-Down", null),
exec: function(n) {
n.renderer.scrollBy(0, 2 * n.renderer.layerConfig.lineHeight);
},
readOnly: !0
}, {
name: "selectlinestart",
bindKey: "Shift-Home",
exec: function(n) {
n.getSelection().selectLineStart();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "selectlineend",
bindKey: "Shift-End",
exec: function(n) {
n.getSelection().selectLineEnd();
},
multiSelectAction: "forEach",
readOnly: !0
}, {
name: "cut",
exec: function(n) {
var e = n.getSelectionRange();
n._emit("cut", e), n.selection.isEmpty() || (n.session.remove(e), n.clearSelection());
},
multiSelectAction: "forEach"
}, {
name: "undo",
bindKey: t("Ctrl-Z", "Command-Z"),
exec: function(n) {
n.undo();
}
}, {
name: "redo",
bindKey: t("Ctrl-Shift-Z|Ctrl-Y", "Command-Shift-Z|Command-Y"),
exec: function(n) {
n.redo();
}
}, {
name: "del",
bindKey: t("Delete", "Delete|Ctrl-D"),
exec: function(n) {
n.remove("right");
},
multiSelectAction: "forEach"
}, {
name: "backspace",
bindKey: t("Command-Backspace|Option-Backspace|Shift-Backspace|Backspace", "Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),
exec: function(n) {
n.remove("left");
},
multiSelectAction: "forEach"
}, {
name: "removetolinestart",
bindKey: t("Alt-Backspace", "Command-Backspace"),
exec: function(n) {
n.removeToLineStart();
},
multiSelectAction: "forEach"
}, {
name: "removetolineend",
bindKey: t("Alt-Delete", "Ctrl-K"),
exec: function(n) {
n.removeToLineEnd();
},
multiSelectAction: "forEach"
}, {
name: "removewordleft",
bindKey: t("Ctrl-Backspace", "Alt-Backspace|Ctrl-Alt-Backspace"),
exec: function(n) {
n.removeWordLeft();
},
multiSelectAction: "forEach"
}, {
name: "removewordright",
bindKey: t("Ctrl-Delete", "Alt-Delete"),
exec: function(n) {
n.removeWordRight();
},
multiSelectAction: "forEach"
}, {
name: "outdent",
bindKey: t("Shift-Tab", "Shift-Tab"),
exec: function(n) {
n.blockOutdent();
},
multiSelectAction: "forEach"
}, {
name: "indent",
bindKey: t("Tab", "Tab"),
exec: function(n) {
n.indent();
},
multiSelectAction: "forEach"
}, {
name: "insertstring",
exec: function(n, e) {
n.insert(e);
},
multiSelectAction: "forEach"
}, {
name: "inserttext",
exec: function(n, e) {
n.insert(i.stringRepeat(e.text || "", e.times || 1));
},
multiSelectAction: "forEach"
} ];
}), define("ace/editor", [ "require", "exports", "module", "./lib/fixoldbrowsers", "./lib/oop", "./lib/dom", "./lib/lang", "./lib/useragent", "./keyboard/textinput", "./mouse/mouse_handler", "./mouse/fold_handler", "./keyboard/keybinding", "./edit_session", "./search", "./range", "./lib/event_emitter", "./commands/command_manager", "./commands/default_commands", "./config" ], function(n, e) {
n("./lib/fixoldbrowsers");
var t = n("./lib/oop"), i = n("./lib/dom"), a = n("./lib/lang"), r = n("./lib/useragent"), o = n("./keyboard/textinput").TextInput, s = n("./mouse/mouse_handler").MouseHandler, l = n("./mouse/fold_handler").FoldHandler, c = n("./keyboard/keybinding").KeyBinding, M = n("./edit_session").EditSession, u = n("./search").Search, d = n("./range").Range, h = n("./lib/event_emitter").EventEmitter, S = n("./commands/command_manager").CommandManager, p = n("./commands/default_commands").commands, m = n("./config"), g = function(n, e) {
var t = n.getContainerElement();
this.container = t, this.renderer = n, this.commands = new S(r.isMac ? "mac" : "win", p),
this.textInput = new o(n.getTextAreaContainer(), this), this.renderer.textarea = this.textInput.getElement(),
this.keyBinding = new c(this), this.$mouseHandler = new s(this), new l(this), this.$blockScrolling = 0,
this.$search = new u().set({
wrap: !0
}), this.$historyTracker = this.$historyTracker.bind(this), this.commands.on("exec", this.$historyTracker),
this.$initOperationListeners(), this._$emitInputEvent = a.delayedCall(function() {
this._signal("input", {}), this.session.bgTokenizer && this.session.bgTokenizer.scheduleStart();
}.bind(this)), this.on("change", function(n, e) {
e._$emitInputEvent.schedule(31);
}), this.setSession(e || new M("")), m.resetOptions(this), m._emit("editor", this);
};
(function() {
t.implement(this, h), this.$initOperationListeners = function() {
function n(n) {
return n[n.length - 1];
}
this.selections = [], this.commands.on("exec", function(e) {
this.startOperation(e);
var t = e.command;
if ("fileJump" == t.group) {
var i = this.prevOp;
i && "fileJump" == i.command.group || (this.lastFileJumpPos = n(this.selections));
} else this.lastFileJumpPos = null;
}.bind(this), !0), this.commands.on("afterExec", function(n) {
var e = n.command;
return "fileJump" == e.group && this.lastFileJumpPos && !this.curOp.selectionChanged ? (this.selection.fromJSON(this.lastFileJumpPos),
void 0) : (this.endOperation(n), void 0);
}.bind(this), !0), this.$opResetTimer = a.delayedCall(this.endOperation.bind(this)),
this.on("change", function() {
this.curOp || this.startOperation(), this.curOp.docChanged = !0;
}.bind(this), !0), this.on("changeSelection", function() {
this.curOp || this.startOperation(), this.curOp.selectionChanged = !0;
}.bind(this), !0);
}, this.curOp = null, this.prevOp = {}, this.startOperation = function(n) {
if (this.curOp) {
if (!n || this.curOp.command) return;
this.prevOp = this.curOp;
}
n || (this.previousCommand = null, n = {}), this.$opResetTimer.schedule(), this.curOp = {
command: n.command || {},
args: n.args
}, this.selections.push(this.selection.toJSON());
}, this.endOperation = function() {
this.curOp && (this.prevOp = this.curOp, this.curOp = null);
}, this.$historyTracker = function(n) {
if (this.$mergeUndoDeltas) {
var e = this.prevOp, t = [ "backspace", "del", "insertstring" ], i = e.command && n.command.name == e.command.name;
if ("insertstring" == n.command.name) {
var a = n.args;
void 0 === this.mergeNextCommand && (this.mergeNextCommand = !0), i = i && this.mergeNextCommand && (!/\s/.test(a) || /\s/.test(e.args)),
this.mergeNextCommand = !0;
} else i = i && -1 !== t.indexOf(n.command.name);
"always" != this.$mergeUndoDeltas && Date.now() - this.sequenceStartTime > 2e3 && (i = !1),
i ? this.session.mergeUndoDeltas = !0 : -1 !== t.indexOf(n.command.name) && (this.sequenceStartTime = Date.now());
}
}, this.setKeyboardHandler = function(n) {
if (n) if ("string" == typeof n) {
this.$keybindingId = n;
var e = this;
m.loadModule([ "keybinding", n ], function(t) {
e.$keybindingId == n && e.keyBinding.setKeyboardHandler(t && t.handler);
});
} else this.$keybindingId = null, this.keyBinding.setKeyboardHandler(n); else this.keyBinding.setKeyboardHandler(null);
}, this.getKeyboardHandler = function() {
return this.keyBinding.getKeyboardHandler();
}, this.setSession = function(n) {
if (this.session != n) {
if (this.session) {
var e = this.session;
this.session.removeEventListener("change", this.$onDocumentChange), this.session.removeEventListener("changeMode", this.$onChangeMode),
this.session.removeEventListener("tokenizerUpdate", this.$onTokenizerUpdate), this.session.removeEventListener("changeTabSize", this.$onChangeTabSize),
this.session.removeEventListener("changeWrapLimit", this.$onChangeWrapLimit), this.session.removeEventListener("changeWrapMode", this.$onChangeWrapMode),
this.session.removeEventListener("onChangeFold", this.$onChangeFold), this.session.removeEventListener("changeFrontMarker", this.$onChangeFrontMarker),
this.session.removeEventListener("changeBackMarker", this.$onChangeBackMarker),
this.session.removeEventListener("changeBreakpoint", this.$onChangeBreakpoint),
this.session.removeEventListener("changeAnnotation", this.$onChangeAnnotation),
this.session.removeEventListener("changeOverwrite", this.$onCursorChange), this.session.removeEventListener("changeScrollTop", this.$onScrollTopChange),
this.session.removeEventListener("changeScrollLeft", this.$onScrollLeftChange);
var t = this.session.getSelection();
t.removeEventListener("changeCursor", this.$onCursorChange), t.removeEventListener("changeSelection", this.$onSelectionChange);
}
this.session = n, this.$onDocumentChange = this.onDocumentChange.bind(this), n.addEventListener("change", this.$onDocumentChange),
this.renderer.setSession(n), this.$onChangeMode = this.onChangeMode.bind(this),
n.addEventListener("changeMode", this.$onChangeMode), this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this),
n.addEventListener("tokenizerUpdate", this.$onTokenizerUpdate), this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer),
n.addEventListener("changeTabSize", this.$onChangeTabSize), this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this),
n.addEventListener("changeWrapLimit", this.$onChangeWrapLimit), this.$onChangeWrapMode = this.onChangeWrapMode.bind(this),
n.addEventListener("changeWrapMode", this.$onChangeWrapMode), this.$onChangeFold = this.onChangeFold.bind(this),
n.addEventListener("changeFold", this.$onChangeFold), this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this),
this.session.addEventListener("changeFrontMarker", this.$onChangeFrontMarker), this.$onChangeBackMarker = this.onChangeBackMarker.bind(this),
this.session.addEventListener("changeBackMarker", this.$onChangeBackMarker), this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this),
this.session.addEventListener("changeBreakpoint", this.$onChangeBreakpoint), this.$onChangeAnnotation = this.onChangeAnnotation.bind(this),
this.session.addEventListener("changeAnnotation", this.$onChangeAnnotation), this.$onCursorChange = this.onCursorChange.bind(this),
this.session.addEventListener("changeOverwrite", this.$onCursorChange), this.$onScrollTopChange = this.onScrollTopChange.bind(this),
this.session.addEventListener("changeScrollTop", this.$onScrollTopChange), this.$onScrollLeftChange = this.onScrollLeftChange.bind(this),
this.session.addEventListener("changeScrollLeft", this.$onScrollLeftChange), this.selection = n.getSelection(),
this.selection.addEventListener("changeCursor", this.$onCursorChange), this.$onSelectionChange = this.onSelectionChange.bind(this),
this.selection.addEventListener("changeSelection", this.$onSelectionChange), this.onChangeMode(),
this.$blockScrolling += 1, this.onCursorChange(), this.$blockScrolling -= 1, this.onScrollTopChange(),
this.onScrollLeftChange(), this.onSelectionChange(), this.onChangeFrontMarker(),
this.onChangeBackMarker(), this.onChangeBreakpoint(), this.onChangeAnnotation(),
this.session.getUseWrapMode() && this.renderer.adjustWrapLimit(), this.renderer.updateFull(),
this._emit("changeSession", {
session: n,
oldSession: e
});
}
}, this.getSession = function() {
return this.session;
}, this.setValue = function(n, e) {
return this.session.doc.setValue(n), e ? 1 == e ? this.navigateFileEnd() : -1 == e && this.navigateFileStart() : this.selectAll(),
n;
}, this.getValue = function() {
return this.session.getValue();
}, this.getSelection = function() {
return this.selection;
}, this.resize = function(n) {
this.renderer.onResize(n);
}, this.setTheme = function(n) {
this.renderer.setTheme(n);
}, this.getTheme = function() {
return this.renderer.getTheme();
}, this.setStyle = function(n) {
this.renderer.setStyle(n);
}, this.unsetStyle = function(n) {
this.renderer.unsetStyle(n);
}, this.getFontSize = function() {
return this.getOption("fontSize") || i.computedStyle(this.container, "fontSize");
}, this.setFontSize = function(n) {
this.setOption("fontSize", n);
}, this.$highlightBrackets = function() {
if (this.session.$bracketHighlight && (this.session.removeMarker(this.session.$bracketHighlight),
this.session.$bracketHighlight = null), !this.$highlightPending) {
var n = this;
this.$highlightPending = !0, setTimeout(function() {
n.$highlightPending = !1;
var e = n.session.findMatchingBracket(n.getCursorPosition());
if (e) var t = new d(e.row, e.column, e.row, e.column + 1); else if (n.session.$mode.getMatching) var t = n.session.$mode.getMatching(n.session);
t && (n.session.$bracketHighlight = n.session.addMarker(t, "ace_bracket", "text"));
}, 50);
}
}, this.focus = function() {
var n = this;
setTimeout(function() {
n.textInput.focus();
}), this.textInput.focus();
}, this.isFocused = function() {
return this.textInput.isFocused();
}, this.blur = function() {
this.textInput.blur();
}, this.onFocus = function() {
this.$isFocused || (this.$isFocused = !0, this.renderer.showCursor(), this.renderer.visualizeFocus(),
this._emit("focus"));
}, this.onBlur = function() {
this.$isFocused && (this.$isFocused = !1, this.renderer.hideCursor(), this.renderer.visualizeBlur(),
this._emit("blur"));
}, this.$cursorChange = function() {
this.renderer.updateCursor();
}, this.onDocumentChange = function(n) {
var e, t = n.data, i = t.range;
e = i.start.row == i.end.row && "insertLines" != t.action && "removeLines" != t.action ? i.end.row : 1/0,
this.renderer.updateLines(i.start.row, e), this._emit("change", n), this.$cursorChange();
}, this.onTokenizerUpdate = function(n) {
var e = n.data;
this.renderer.updateLines(e.first, e.last);
}, this.onScrollTopChange = function() {
this.renderer.scrollToY(this.session.getScrollTop());
}, this.onScrollLeftChange = function() {
this.renderer.scrollToX(this.session.getScrollLeft());
}, this.onCursorChange = function() {
this.$cursorChange(), this.$blockScrolling || this.renderer.scrollCursorIntoView(),
this.$highlightBrackets(), this.$updateHighlightActiveLine(), this._emit("changeSelection");
}, this.$updateHighlightActiveLine = function() {
var n, e = this.getSession();
if (this.$highlightActiveLine && ("line" == this.$selectionStyle && this.selection.isMultiLine() || (n = this.getCursorPosition()),
this.renderer.$maxLines && 1 === this.session.getLength() && (n = !1)), e.$highlightLineMarker && !n) e.removeMarker(e.$highlightLineMarker.id),
e.$highlightLineMarker = null; else if (!e.$highlightLineMarker && n) {
var t = new d(n.row, n.column, n.row, 1/0);
t.id = e.addMarker(t, "ace_active-line", "screenLine"), e.$highlightLineMarker = t;
} else n && (e.$highlightLineMarker.start.row = n.row, e.$highlightLineMarker.end.row = n.row,
e.$highlightLineMarker.start.column = n.column, e._emit("changeBackMarker"));
}, this.onSelectionChange = function() {
var n = this.session;
if (n.$selectionMarker && n.removeMarker(n.$selectionMarker), n.$selectionMarker = null,
this.selection.isEmpty()) this.$updateHighlightActiveLine(); else {
var e = this.selection.getRange(), t = this.getSelectionStyle();
n.$selectionMarker = n.addMarker(e, "ace_selection", t);
}
var i = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();
this.session.highlight(i), this._emit("changeSelection");
}, this.$getSelectionHighLightRegexp = function() {
var n = this.session, e = this.getSelectionRange();
if (!e.isEmpty() && !e.isMultiLine()) {
var t = e.start.column - 1, i = e.end.column + 1, a = n.getLine(e.start.row), r = a.length, o = a.substring(Math.max(t, 0), Math.min(i, r));
if (!(t >= 0 && /^[\w\d]/.test(o) || r >= i && /[\w\d]$/.test(o)) && (o = a.substring(e.start.column, e.end.column),
/^[\w\d]+$/.test(o))) {
var s = this.$search.$assembleRegExp({
wholeWord: !0,
caseSensitive: !0,
needle: o
});
return s;
}
}
}, this.onChangeFrontMarker = function() {
this.renderer.updateFrontMarkers();
}, this.onChangeBackMarker = function() {
this.renderer.updateBackMarkers();
}, this.onChangeBreakpoint = function() {
this.renderer.updateBreakpoints();
}, this.onChangeAnnotation = function() {
this.renderer.setAnnotations(this.session.getAnnotations());
}, this.onChangeMode = function(n) {
this.renderer.updateText(), this._emit("changeMode", n);
}, this.onChangeWrapLimit = function() {
this.renderer.updateFull();
}, this.onChangeWrapMode = function() {
this.renderer.onResize(!0);
}, this.onChangeFold = function() {
this.$updateHighlightActiveLine(), this.renderer.updateFull();
}, this.getSelectedText = function() {
return this.session.getTextRange(this.getSelectionRange());
}, this.getCopyText = function() {
var n = this.getSelectedText();
return this._signal("copy", n), n;
}, this.onCopy = function() {
this.commands.exec("copy", this);
}, this.onCut = function() {
this.commands.exec("cut", this);
}, this.onPaste = function(n) {
this.$readOnly || (this._emit("paste", n), this.insert(n));
}, this.execCommand = function(n, e) {
this.commands.exec(n, this, e);
}, this.insert = function(n) {
var e = this.session, t = e.getMode(), i = this.getCursorPosition();
if (this.getBehavioursEnabled()) {
var a = t.transformAction(e.getState(i.row), "insertion", this, e, n);
a && (n !== a.text && (this.session.mergeUndoDeltas = !1, this.$mergeNextCommand = !1),
n = a.text);
}
if (" " == n && (n = this.session.getTabString()), this.selection.isEmpty()) {
if (this.session.getOverwrite()) {
var r = new d.fromPoints(i, i);
r.end.column += n.length, this.session.remove(r);
}
} else {
var r = this.getSelectionRange();
i = this.session.remove(r), this.clearSelection();
}
if ("\n" == n || "\r\n" == n) {
var o = e.getLine(i.row);
if (i.column > o.search(/\S|$/)) {
var s = o.substr(i.column).search(/\S|$/);
e.doc.removeInLine(i.row, i.column, i.column + s);
}
}
this.clearSelection();
var l = i.column, c = e.getState(i.row), o = e.getLine(i.row), M = t.checkOutdent(c, o, n);
if (e.insert(i, n), a && a.selection && (2 == a.selection.length ? this.selection.setSelectionRange(new d(i.row, l + a.selection[0], i.row, l + a.selection[1])) : this.selection.setSelectionRange(new d(i.row + a.selection[0], a.selection[1], i.row + a.selection[2], a.selection[3]))),
e.getDocument().isNewLine(n)) {
var u = t.getNextLineIndent(c, o.slice(0, i.column), e.getTabString());
e.insert({
row: i.row + 1,
column: 0
}, u);
}
M && t.autoOutdent(c, e, i.row);
}, this.onTextInput = function(n) {
this.keyBinding.onTextInput(n);
}, this.onCommandKey = function(n, e, t) {
this.keyBinding.onCommandKey(n, e, t);
}, this.setOverwrite = function(n) {
this.session.setOverwrite(n);
}, this.getOverwrite = function() {
return this.session.getOverwrite();
}, this.toggleOverwrite = function() {
this.session.toggleOverwrite();
}, this.setScrollSpeed = function(n) {
this.setOption("scrollSpeed", n);
}, this.getScrollSpeed = function() {
return this.getOption("scrollSpeed");
}, this.setDragDelay = function(n) {
this.setOption("dragDelay", n);
}, this.getDragDelay = function() {
return this.getOption("dragDelay");
}, this.setSelectionStyle = function(n) {
this.setOption("selectionStyle", n);
}, this.getSelectionStyle = function() {
return this.getOption("selectionStyle");
}, this.setHighlightActiveLine = function(n) {
this.setOption("highlightActiveLine", n);
}, this.getHighlightActiveLine = function() {
return this.getOption("highlightActiveLine");
}, this.setHighlightGutterLine = function(n) {
this.setOption("highlightGutterLine", n);
}, this.getHighlightGutterLine = function() {
return this.getOption("highlightGutterLine");
}, this.setHighlightSelectedWord = function(n) {
this.setOption("highlightSelectedWord", n);
}, this.getHighlightSelectedWord = function() {
return this.$highlightSelectedWord;
}, this.setAnimatedScroll = function(n) {
this.renderer.setAnimatedScroll(n);
}, this.getAnimatedScroll = function() {
return this.renderer.getAnimatedScroll();
}, this.setShowInvisibles = function(n) {
this.renderer.setShowInvisibles(n);
}, this.getShowInvisibles = function() {
return this.renderer.getShowInvisibles();
}, this.setDisplayIndentGuides = function(n) {
this.renderer.setDisplayIndentGuides(n);
}, this.getDisplayIndentGuides = function() {
return this.renderer.getDisplayIndentGuides();
}, this.setShowPrintMargin = function(n) {
this.renderer.setShowPrintMargin(n);
}, this.getShowPrintMargin = function() {
return this.renderer.getShowPrintMargin();
}, this.setPrintMarginColumn = function(n) {
this.renderer.setPrintMarginColumn(n);
}, this.getPrintMarginColumn = function() {
return this.renderer.getPrintMarginColumn();
}, this.setReadOnly = function(n) {
this.setOption("readOnly", n);
}, this.getReadOnly = function() {
return this.getOption("readOnly");
}, this.setBehavioursEnabled = function(n) {
this.setOption("behavioursEnabled", n);
}, this.getBehavioursEnabled = function() {
return this.getOption("behavioursEnabled");
}, this.setWrapBehavioursEnabled = function(n) {
this.setOption("wrapBehavioursEnabled", n);
}, this.getWrapBehavioursEnabled = function() {
return this.getOption("wrapBehavioursEnabled");
}, this.setShowFoldWidgets = function(n) {
this.setOption("showFoldWidgets", n);
}, this.getShowFoldWidgets = function() {
return this.getOption("showFoldWidgets");
}, this.setFadeFoldWidgets = function(n) {
this.setOption("fadeFoldWidgets", n);
}, this.getFadeFoldWidgets = function() {
return this.getOption("fadeFoldWidgets");
}, this.remove = function(n) {
this.selection.isEmpty() && ("left" == n ? this.selection.selectLeft() : this.selection.selectRight());
var e = this.getSelectionRange();
if (this.getBehavioursEnabled()) {
var t = this.session, i = t.getState(e.start.row), a = t.getMode().transformAction(i, "deletion", this, t, e);
if (0 == e.end.column) {
var r = t.getTextRange(e);
if ("\n" == r[r.length - 1]) {
var o = t.getLine(e.end.row);
/^\s+$/.test(o) && (e.end.column = o.length);
}
}
a && (e = a);
}
this.session.remove(e), this.clearSelection();
}, this.removeWordRight = function() {
this.selection.isEmpty() && this.selection.selectWordRight(), this.session.remove(this.getSelectionRange()),
this.clearSelection();
}, this.removeWordLeft = function() {
this.selection.isEmpty() && this.selection.selectWordLeft(), this.session.remove(this.getSelectionRange()),
this.clearSelection();
}, this.removeToLineStart = function() {
this.selection.isEmpty() && this.selection.selectLineStart(), this.session.remove(this.getSelectionRange()),
this.clearSelection();
}, this.removeToLineEnd = function() {
this.selection.isEmpty() && this.selection.selectLineEnd();
var n = this.getSelectionRange();
n.start.column == n.end.column && n.start.row == n.end.row && (n.end.column = 0,
n.end.row++), this.session.remove(n), this.clearSelection();
}, this.splitLine = function() {
this.selection.isEmpty() || (this.session.remove(this.getSelectionRange()), this.clearSelection());
var n = this.getCursorPosition();
this.insert("\n"), this.moveCursorToPosition(n);
}, this.transposeLetters = function() {
if (this.selection.isEmpty()) {
var n = this.getCursorPosition(), e = n.column;
if (0 !== e) {
var t, i, a = this.session.getLine(n.row);
e < a.length ? (t = a.charAt(e) + a.charAt(e - 1), i = new d(n.row, e - 1, n.row, e + 1)) : (t = a.charAt(e - 1) + a.charAt(e - 2),
i = new d(n.row, e - 2, n.row, e)), this.session.replace(i, t);
}
}
}, this.toLowerCase = function() {
var n = this.getSelectionRange();
this.selection.isEmpty() && this.selection.selectWord();
var e = this.getSelectionRange(), t = this.session.getTextRange(e);
this.session.replace(e, t.toLowerCase()), this.selection.setSelectionRange(n);
}, this.toUpperCase = function() {
var n = this.getSelectionRange();
this.selection.isEmpty() && this.selection.selectWord();
var e = this.getSelectionRange(), t = this.session.getTextRange(e);
this.session.replace(e, t.toUpperCase()), this.selection.setSelectionRange(n);
}, this.indent = function() {
var n = this.session, e = this.getSelectionRange();
if (e.start.row < e.end.row) {
var t = this.$getSelectedRows();
return n.indentRows(t.first, t.last, " "), void 0;
}
if (e.start.column < e.end.column) {
var i = n.getTextRange(e);
if (!/^\s+$/.test(i)) {
var t = this.$getSelectedRows();
return n.indentRows(t.first, t.last, " "), void 0;
}
}
var r = n.getLine(e.start.row), o = e.start, s = n.getTabSize(), l = n.documentToScreenColumn(o.row, o.column);
if (this.session.getUseSoftTabs()) var c = s - l % s, M = a.stringRepeat(" ", c); else {
for (var c = l % s; " " == r[e.start.column] && c; ) e.start.column--, c--;
this.selection.setSelectionRange(e), M = " ";
}
return this.insert(M);
}, this.blockIndent = function() {
var n = this.$getSelectedRows();
this.session.indentRows(n.first, n.last, " ");
}, this.blockOutdent = function() {
var n = this.session.getSelection();
this.session.outdentRows(n.getRange());
}, this.sortLines = function() {
var n = this.$getSelectedRows(), e = this.session, t = [];
for (a = n.first; a <= n.last; a++) t.push(e.getLine(a));
t.sort(function(n, e) {
return n.toLowerCase() < e.toLowerCase() ? -1 : n.toLowerCase() > e.toLowerCase() ? 1 : 0;
});
for (var i = new d(0, 0, 0, 0), a = n.first; a <= n.last; a++) {
var r = e.getLine(a);
i.start.row = a, i.end.row = a, i.end.column = r.length, e.replace(i, t[a - n.first]);
}
}, this.toggleCommentLines = function() {
var n = this.session.getState(this.getCursorPosition().row), e = this.$getSelectedRows();
this.session.getMode().toggleCommentLines(n, this.session, e.first, e.last);
}, this.toggleBlockComment = function() {
var n = this.getCursorPosition(), e = this.session.getState(n.row), t = this.getSelectionRange();
this.session.getMode().toggleBlockComment(e, this.session, t, n);
}, this.getNumberAt = function(n, e) {
var t = /[\-]?[0-9]+(?:\.[0-9]+)?/g;
t.lastIndex = 0;
for (var i = this.session.getLine(n); t.lastIndex < e; ) {
var a = t.exec(i);
if (a.index <= e && a.index + a[0].length >= e) {
var r = {
value: a[0],
start: a.index,
end: a.index + a[0].length
};
return r;
}
}
return null;
}, this.modifyNumber = function(n) {
var e = this.selection.getCursor().row, t = this.selection.getCursor().column, i = new d(e, t - 1, e, t), a = this.session.getTextRange(i);
if (!isNaN(parseFloat(a)) && isFinite(a)) {
var r = this.getNumberAt(e, t);
if (r) {
var o = r.value.indexOf(".") >= 0 ? r.start + r.value.indexOf(".") + 1 : r.end, s = r.start + r.value.length - o, l = parseFloat(r.value);
l *= Math.pow(10, s), n *= o !== r.end && o > t ? Math.pow(10, r.end - t - 1) : Math.pow(10, r.end - t),
l += n, l /= Math.pow(10, s);
var c = l.toFixed(s), M = new d(e, r.start, e, r.end);
this.session.replace(M, c), this.moveCursorTo(e, Math.max(r.start + 1, t + c.length - r.value.length));
}
}
}, this.removeLines = function() {
var n, e = this.$getSelectedRows();
n = 0 === e.first || e.last + 1 < this.session.getLength() ? new d(e.first, 0, e.last + 1, 0) : new d(e.first - 1, this.session.getLine(e.first - 1).length, e.last, this.session.getLine(e.last).length),
this.session.remove(n), this.clearSelection();
}, this.duplicateSelection = function() {
var n = this.selection, e = this.session, t = n.getRange(), i = n.isBackwards();
if (t.isEmpty()) {
var a = t.start.row;
e.duplicateLines(a, a);
} else {
var r = i ? t.start : t.end, o = e.insert(r, e.getTextRange(t), !1);
t.start = r, t.end = o, n.setSelectionRange(t, i);
}
}, this.moveLinesDown = function() {
this.$moveLines(function(n, e) {
return this.session.moveLinesDown(n, e);
});
}, this.moveLinesUp = function() {
this.$moveLines(function(n, e) {
return this.session.moveLinesUp(n, e);
});
}, this.moveText = function(n, e) {
return this.session.moveText(n, e);
}, this.copyLinesUp = function() {
this.$moveLines(function(n, e) {
return this.session.duplicateLines(n, e), 0;
});
}, this.copyLinesDown = function() {
this.$moveLines(function(n, e) {
return this.session.duplicateLines(n, e);
});
}, this.$moveLines = function(n) {
var e = this.selection;
if (!e.inMultiSelectMode || this.inVirtualSelectionMode) {
var t = e.toOrientedRange(), i = this.$getSelectedRows(t), a = n.call(this, i.first, i.last);
t.moveBy(a, 0), e.fromOrientedRange(t);
} else {
var r = e.rangeList.ranges;
e.rangeList.detach(this.session);
for (var o = r.length; o--; ) {
for (var s = o, i = r[o].collapseRows(), l = i.end.row, c = i.start.row; o--; ) {
var i = r[o].collapseRows();
if (!(c - i.end.row <= 1)) break;
c = i.end.row;
}
o++;
for (var a = n.call(this, c, l); s >= o; ) r[s].moveBy(a, 0), s--;
}
e.fromOrientedRange(e.ranges[0]), e.rangeList.attach(this.session);
}
}, this.$getSelectedRows = function() {
var n = this.getSelectionRange().collapseRows();
return {
first: n.start.row,
last: n.end.row
};
}, this.onCompositionStart = function() {
this.renderer.showComposition(this.getCursorPosition());
}, this.onCompositionUpdate = function(n) {
this.renderer.setCompositionText(n);
}, this.onCompositionEnd = function() {
this.renderer.hideComposition();
}, this.getFirstVisibleRow = function() {
return this.renderer.getFirstVisibleRow();
}, this.getLastVisibleRow = function() {
return this.renderer.getLastVisibleRow();
}, this.isRowVisible = function(n) {
return n >= this.getFirstVisibleRow() && n <= this.getLastVisibleRow();
}, this.isRowFullyVisible = function(n) {
return n >= this.renderer.getFirstFullyVisibleRow() && n <= this.renderer.getLastFullyVisibleRow();
}, this.$getVisibleRowCount = function() {
return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;
}, this.$moveByPage = function(n, e) {
var t = this.renderer, i = this.renderer.layerConfig, a = n * Math.floor(i.height / i.lineHeight);
this.$blockScrolling++, 1 == e ? this.selection.$moveSelection(function() {
this.moveCursorBy(a, 0);
}) : 0 == e && (this.selection.moveCursorBy(a, 0), this.selection.clearSelection()),
this.$blockScrolling--;
var r = t.scrollTop;
t.scrollBy(0, a * i.lineHeight), null != e && t.scrollCursorIntoView(null, .5),
t.animateScrolling(r);
}, this.selectPageDown = function() {
this.$moveByPage(1, !0);
}, this.selectPageUp = function() {
this.$moveByPage(-1, !0);
}, this.gotoPageDown = function() {
this.$moveByPage(1, !1);
}, this.gotoPageUp = function() {
this.$moveByPage(-1, !1);
}, this.scrollPageDown = function() {
this.$moveByPage(1);
}, this.scrollPageUp = function() {
this.$moveByPage(-1);
}, this.scrollToRow = function(n) {
this.renderer.scrollToRow(n);
}, this.scrollToLine = function(n, e, t, i) {
this.renderer.scrollToLine(n, e, t, i);
}, this.centerSelection = function() {
var n = this.getSelectionRange(), e = {
row: Math.floor(n.start.row + (n.end.row - n.start.row) / 2),
column: Math.floor(n.start.column + (n.end.column - n.start.column) / 2)
};
this.renderer.alignCursor(e, .5);
}, this.getCursorPosition = function() {
return this.selection.getCursor();
}, this.getCursorPositionScreen = function() {
return this.session.documentToScreenPosition(this.getCursorPosition());
}, this.getSelectionRange = function() {
return this.selection.getRange();
}, this.selectAll = function() {
this.$blockScrolling += 1, this.selection.selectAll(), this.$blockScrolling -= 1;
}, this.clearSelection = function() {
this.selection.clearSelection();
}, this.moveCursorTo = function(n, e) {
this.selection.moveCursorTo(n, e);
}, this.moveCursorToPosition = function(n) {
this.selection.moveCursorToPosition(n);
}, this.jumpToMatching = function(n) {
var e = this.getCursorPosition(), t = this.session.getBracketRange(e);
if (!t) {
if (t = this.find({
needle: /[{}()\[\]]/g,
preventScroll: !0,
start: {
row: e.row,
column: e.column - 1
}
}), !t) return;
var i = t.start;
i.row == e.row && Math.abs(i.column - e.column) < 2 && (t = this.session.getBracketRange(i));
}
i = t && t.cursor || i, i && (n ? t && t.isEqual(this.getSelectionRange()) ? this.clearSelection() : this.selection.selectTo(i.row, i.column) : (this.clearSelection(),
this.moveCursorTo(i.row, i.column)));
}, this.gotoLine = function(n, e, t) {
this.selection.clearSelection(), this.session.unfold({
row: n - 1,
column: e || 0
}), this.$blockScrolling += 1, this.exitMultiSelectMode && this.exitMultiSelectMode(),
this.moveCursorTo(n - 1, e || 0), this.$blockScrolling -= 1, this.isRowFullyVisible(n - 1) || this.scrollToLine(n - 1, !0, t);
}, this.navigateTo = function(n, e) {
this.clearSelection(), this.moveCursorTo(n, e);
}, this.navigateUp = function(n) {
if (this.selection.isMultiLine() && !this.selection.isBackwards()) {
var e = this.selection.anchor.getPosition();
return this.moveCursorToPosition(e);
}
this.selection.clearSelection(), n = n || 1, this.selection.moveCursorBy(-n, 0);
}, this.navigateDown = function(n) {
if (this.selection.isMultiLine() && this.selection.isBackwards()) {
var e = this.selection.anchor.getPosition();
return this.moveCursorToPosition(e);
}
this.selection.clearSelection(), n = n || 1, this.selection.moveCursorBy(n, 0);
}, this.navigateLeft = function(n) {
if (this.selection.isEmpty()) for (n = n || 1; n--; ) this.selection.moveCursorLeft(); else {
var e = this.getSelectionRange().start;
this.moveCursorToPosition(e);
}
this.clearSelection();
}, this.navigateRight = function(n) {
if (this.selection.isEmpty()) for (n = n || 1; n--; ) this.selection.moveCursorRight(); else {
var e = this.getSelectionRange().end;
this.moveCursorToPosition(e);
}
this.clearSelection();
}, this.navigateLineStart = function() {
this.selection.moveCursorLineStart(), this.clearSelection();
}, this.navigateLineEnd = function() {
this.selection.moveCursorLineEnd(), this.clearSelection();
}, this.navigateFileEnd = function() {
var n = this.renderer.scrollTop;
this.selection.moveCursorFileEnd(), this.clearSelection(), this.renderer.animateScrolling(n);
}, this.navigateFileStart = function() {
var n = this.renderer.scrollTop;
this.selection.moveCursorFileStart(), this.clearSelection(), this.renderer.animateScrolling(n);
}, this.navigateWordRight = function() {
this.selection.moveCursorWordRight(), this.clearSelection();
}, this.navigateWordLeft = function() {
this.selection.moveCursorWordLeft(), this.clearSelection();
}, this.replace = function(n, e) {
e && this.$search.set(e);
var t = this.$search.find(this.session), i = 0;
return t ? (this.$tryReplace(t, n) && (i = 1), null !== t && (this.selection.setSelectionRange(t),
this.renderer.scrollSelectionIntoView(t.start, t.end)), i) : i;
}, this.replaceAll = function(n, e) {
e && this.$search.set(e);
var t = this.$search.findAll(this.session), i = 0;
if (!t.length) return i;
this.$blockScrolling += 1;
var a = this.getSelectionRange();
this.clearSelection(), this.selection.moveCursorTo(0, 0);
for (var r = t.length - 1; r >= 0; --r) this.$tryReplace(t[r], n) && i++;
return this.selection.setSelectionRange(a), this.$blockScrolling -= 1, i;
}, this.$tryReplace = function(n, e) {
var t = this.session.getTextRange(n);
return e = this.$search.replace(t, e), null !== e ? (n.end = this.session.replace(n, e),
n) : null;
}, this.getLastSearchOptions = function() {
return this.$search.getOptions();
}, this.find = function(n, e, i) {
e || (e = {}), "string" == typeof n || n instanceof RegExp ? e.needle = n : "object" == typeof n && t.mixin(e, n);
var a = this.selection.getRange();
null == e.needle && (n = this.session.getTextRange(a) || this.$search.$options.needle,
n || (a = this.session.getWordRange(a.start.row, a.start.column), n = this.session.getTextRange(a)),
this.$search.set({
needle: n
})), this.$search.set(e), e.start || this.$search.set({
start: a
});
var r = this.$search.find(this.session);
return e.preventScroll ? r : r ? (this.revealRange(r, i), r) : (e.backwards ? a.start = a.end : a.end = a.start,
this.selection.setRange(a), void 0);
}, this.findNext = function(n, e) {
this.find({
skipCurrent: !0,
backwards: !1
}, n, e);
}, this.findPrevious = function(n, e) {
this.find(n, {
skipCurrent: !0,
backwards: !0
}, e);
}, this.revealRange = function(n, e) {
this.$blockScrolling += 1, this.session.unfold(n), this.selection.setSelectionRange(n),
this.$blockScrolling -= 1;
var t = this.renderer.scrollTop;
this.renderer.scrollSelectionIntoView(n.start, n.end, .5), 0 != e && this.renderer.animateScrolling(t);
}, this.undo = function() {
this.$blockScrolling++, this.session.getUndoManager().undo(), this.$blockScrolling--,
this.renderer.scrollCursorIntoView(null, .5);
}, this.redo = function() {
this.$blockScrolling++, this.session.getUndoManager().redo(), this.$blockScrolling--,
this.renderer.scrollCursorIntoView(null, .5);
}, this.destroy = function() {
this.renderer.destroy(), this._emit("destroy", this);
}, this.setAutoScrollEditorIntoView = function(n) {
if (n !== !1) {
var e, t = this, i = !1;
this.$scrollAnchor || (this.$scrollAnchor = document.createElement("div"));
var a = this.$scrollAnchor;
a.style.cssText = "position:absolute", this.container.insertBefore(a, this.container.firstChild);
var r = this.on("changeSelection", function() {
i = !0;
}), o = this.renderer.on("beforeRender", function() {
i && (e = t.renderer.container.getBoundingClientRect());
}), s = this.renderer.on("afterRender", function() {
if (i && e && t.isFocused()) {
var n = t.renderer, r = n.$cursorLayer.$pixelPos, o = n.layerConfig, s = r.top - o.offset;
i = r.top >= 0 && s + e.top < 0 ? !0 : r.top < o.height && r.top + e.top + o.lineHeight > window.innerHeight ? !1 : null,
null != i && (a.style.top = s + "px", a.style.left = r.left + "px", a.style.height = o.lineHeight + "px",
a.scrollIntoView(i)), i = e = null;
}
});
this.setAutoScrollEditorIntoView = function(n) {
n !== !0 && (delete this.setAutoScrollEditorIntoView, this.removeEventListener("changeSelection", r),
this.renderer.removeEventListener("afterRender", s), this.renderer.removeEventListener("beforeRender", o));
};
}
}, this.$resetCursorStyle = function() {
var n = this.$cursorStyle || "ace", e = this.renderer.$cursorLayer;
e && (e.setSmoothBlinking("smooth" == n), e.isBlinking = !this.$readOnly && "wide" != n);
};
}).call(g.prototype), m.defineOptions(g.prototype, "editor", {
selectionStyle: {
set: function(n) {
this.onSelectionChange(), this._emit("changeSelectionStyle", {
data: n
});
},
initialValue: "line"
},
highlightActiveLine: {
set: function() {
this.$updateHighlightActiveLine();
},
initialValue: !0
},
highlightSelectedWord: {
set: function() {
this.$onSelectionChange();
},
initialValue: !0
},
readOnly: {
set: function() {
this.$resetCursorStyle();
},
initialValue: !1
},
cursorStyle: {
set: function() {
this.$resetCursorStyle();
},
values: [ "ace", "slim", "smooth", "wide" ],
initialValue: "ace"
},
mergeUndoDeltas: {
values: [ !1, !0, "always" ],
initialValue: !0
},
behavioursEnabled: {
initialValue: !0
},
wrapBehavioursEnabled: {
initialValue: !0
},
hScrollBarAlwaysVisible: "renderer",
vScrollBarAlwaysVisible: "renderer",
highlightGutterLine: "renderer",
animatedScroll: "renderer",
showInvisibles: "renderer",
showPrintMargin: "renderer",
printMarginColumn: "renderer",
printMargin: "renderer",
fadeFoldWidgets: "renderer",
showFoldWidgets: "renderer",
showGutter: "renderer",
displayIndentGuides: "renderer",
fontSize: "renderer",
fontFamily: "renderer",
maxLines: "renderer",
minLines: "renderer",
scrollPastEnd: "renderer",
fixedWidthGutter: "renderer",
scrollSpeed: "$mouseHandler",
dragDelay: "$mouseHandler",
focusTimout: "$mouseHandler",
firstLineNumber: "session",
overwrite: "session",
newLineMode: "session",
useWorker: "session",
useSoftTabs: "session",
tabSize: "session",
wrap: "session",
foldStyle: "session"
}), e.Editor = g;
}), define("ace/undomanager", [ "require", "exports", "module" ], function(n, e) {
var t = function() {
this.reset();
};
(function() {
this.execute = function(n) {
var e = n.args[0];
this.$doc = n.args[1], n.merge && this.hasUndo() && (e = this.$undoStack.pop().concat(e)),
this.$undoStack.push(e), this.$redoStack = [], this.dirtyCounter < 0 && (this.dirtyCounter = 0/0),
this.dirtyCounter++;
}, this.undo = function(n) {
var e = this.$undoStack.pop(), t = null;
return e && (t = this.$doc.undoChanges(e, n), this.$redoStack.push(e), this.dirtyCounter--),
t;
}, this.redo = function(n) {
var e = this.$redoStack.pop(), t = null;
return e && (t = this.$doc.redoChanges(e, n), this.$undoStack.push(e), this.dirtyCounter++),
t;
}, this.reset = function() {
this.$undoStack = [], this.$redoStack = [], this.dirtyCounter = 0;
}, this.hasUndo = function() {
return this.$undoStack.length > 0;
}, this.hasRedo = function() {
return this.$redoStack.length > 0;
}, this.markClean = function() {
this.dirtyCounter = 0;
}, this.isClean = function() {
return 0 === this.dirtyCounter;
};
}).call(t.prototype), e.UndoManager = t;
}), define("ace/layer/gutter", [ "require", "exports", "module", "../lib/dom", "../lib/oop", "../lib/lang", "../lib/event_emitter" ], function(n, e) {
var t = n("../lib/dom"), i = n("../lib/oop"), a = n("../lib/lang"), r = n("../lib/event_emitter").EventEmitter, o = function(n) {
this.element = t.createElement("div"), this.element.className = "ace_layer ace_gutter-layer",
n.appendChild(this.element), this.setShowFoldWidgets(this.$showFoldWidgets), this.gutterWidth = 0,
this.$annotations = [], this.$updateAnnotations = this.$updateAnnotations.bind(this),
this.$cells = [];
};
(function() {
i.implement(this, r), this.setSession = function(n) {
this.session && this.session.removeEventListener("change", this.$updateAnnotations),
this.session = n, n.on("change", this.$updateAnnotations);
}, this.addGutterDecoration = function(n, e) {
window.console && console.warn && console.warn("deprecated use session.addGutterDecoration"),
this.session.addGutterDecoration(n, e);
}, this.removeGutterDecoration = function(n, e) {
window.console && console.warn && console.warn("deprecated use session.removeGutterDecoration"),
this.session.removeGutterDecoration(n, e);
}, this.setAnnotations = function(n) {
this.$annotations = [];
for (var e, t, i = 0; i < n.length; i++) {
var r = n[i], t = r.row, e = this.$annotations[t];
e || (e = this.$annotations[t] = {
text: []
});
var o = r.text;
o = o ? a.escapeHTML(o) : r.html || "", -1 === e.text.indexOf(o) && e.text.push(o);
var s = r.type;
"error" == s ? e.className = " ace_error" : "warning" == s && " ace_error" != e.className ? e.className = " ace_warning" : "info" != s || e.className || (e.className = " ace_info");
}
}, this.$updateAnnotations = function(n) {
if (this.$annotations.length) {
var e = n.data, t = e.range, i = t.start.row, a = t.end.row - i;
if (0 === a) ; else if ("removeText" == e.action || "removeLines" == e.action) this.$annotations.splice(i, a + 1, null); else {
var r = Array(a + 1);
r.unshift(i, 1), this.$annotations.splice.apply(this.$annotations, r);
}
}
}, this.update = function(n) {
for (var e = n.firstRow, i = n.lastRow, a = this.session.getNextFoldLine(e), r = a ? a.start.row : 1/0, o = this.$showFoldWidgets && this.session.foldWidgets, s = this.session.$breakpoints, l = this.session.$decorations, c = this.session.$firstLineNumber, M = 0, u = null, d = -1, h = e; ;) {
if (h > r && (h = a.end.row + 1, a = this.session.getNextFoldLine(h, a), r = a ? a.start.row : 1/0),
h > i) {
for (;this.$cells.length > d + 1; ) u = this.$cells.pop(), this.element.removeChild(u.element);
break;
}
u = this.$cells[++d], u || (u = {
element: null,
textNode: null,
foldWidget: null
}, u.element = t.createElement("div"), u.textNode = document.createTextNode(""),
u.element.appendChild(u.textNode), this.element.appendChild(u.element), this.$cells[d] = u);
var S = "ace_gutter-cell";
s[h] && (S += s[h]), l[h] && (S += l[h]), this.$annotations[h] && (S += this.$annotations[h].className),
u.element.className != S && (u.element.className = S);
var p = this.session.getRowLength(h) * n.lineHeight + "px";
p != u.element.style.height && (u.element.style.height = p);
var m = M = h + c;
if (m != u.textNode.data && (u.textNode.data = m), o) {
var g = o[h];
null == g && (g = o[h] = this.session.getFoldWidget(h));
}
if (g) {
u.foldWidget || (u.foldWidget = t.createElement("span"), u.element.appendChild(u.foldWidget));
var S = "ace_fold-widget ace_" + g;
S += "start" == g && h == r && h < a.end.row ? " ace_closed" : " ace_open", u.foldWidget.className != S && (u.foldWidget.className = S);
var p = n.lineHeight + "px";
u.foldWidget.style.height != p && (u.foldWidget.style.height = p);
} else null != u.foldWidget && (u.element.removeChild(u.foldWidget), u.foldWidget = null);
h++;
}
this.element.style.height = n.minHeight + "px", (this.$fixedWidth || this.session.$useWrapMode) && (M = this.session.getLength());
var f = M.toString().length * n.characterWidth, b = this.$padding || this.$computePadding();
f += b.left + b.right, f === this.gutterWidth || isNaN(f) || (this.gutterWidth = f,
this.element.style.width = Math.ceil(this.gutterWidth) + "px", this._emit("changeGutterWidth", f));
}, this.$fixedWidth = !1, this.$showFoldWidgets = !0, this.setShowFoldWidgets = function(n) {
n ? t.addCssClass(this.element, "ace_folding-enabled") : t.removeCssClass(this.element, "ace_folding-enabled"),
this.$showFoldWidgets = n, this.$padding = null;
}, this.getShowFoldWidgets = function() {
return this.$showFoldWidgets;
}, this.$computePadding = function() {
if (!this.element.firstChild) return {
left: 0,
right: 0
};
var n = t.computedStyle(this.element.firstChild);
return this.$padding = {}, this.$padding.left = parseInt(n.paddingLeft) + 1 || 0,
this.$padding.right = parseInt(n.paddingRight) || 0, this.$padding;
}, this.getRegion = function(n) {
var e = this.$padding || this.$computePadding(), t = this.element.getBoundingClientRect();
return n.x < e.left + t.left ? "markers" : this.$showFoldWidgets && n.x > t.right - e.right ? "foldWidgets" : void 0;
};
}).call(o.prototype), e.Gutter = o;
}), define("ace/layer/marker", [ "require", "exports", "module", "../range", "../lib/dom" ], function(n, e) {
var t = n("../range").Range, i = n("../lib/dom"), a = function(n) {
this.element = i.createElement("div"), this.element.className = "ace_layer ace_marker-layer",
n.appendChild(this.element);
};
(function() {
this.$padding = 0, this.setPadding = function(n) {
this.$padding = n;
}, this.setSession = function(n) {
this.session = n;
}, this.setMarkers = function(n) {
this.markers = n;
}, this.update = function(n) {
var n = n || this.config;
if (n) {
this.config = n;
var e = [];
for (var t in this.markers) {
var a = this.markers[t];
if (a.range) {
var r = a.range.clipRows(n.firstRow, n.lastRow);
if (!r.isEmpty()) if (r = r.toScreenRange(this.session), a.renderer) {
var o = this.$getTop(r.start.row, n), s = this.$padding + r.start.column * n.characterWidth;
a.renderer(e, r, s, o, n);
} else "fullLine" == a.type ? this.drawFullLineMarker(e, r, a.clazz, n) : "screenLine" == a.type ? this.drawScreenLineMarker(e, r, a.clazz, n) : r.isMultiLine() ? "text" == a.type ? this.drawTextMarker(e, r, a.clazz, n) : this.drawMultiLineMarker(e, r, a.clazz, n) : this.drawSingleLineMarker(e, r, a.clazz + " ace_start", n);
} else a.update(e, this, this.session, n);
}
this.element = i.setInnerHtml(this.element, e.join(""));
}
}, this.$getTop = function(n, e) {
return (n - e.firstRowScreen) * e.lineHeight;
}, this.drawTextMarker = function(n, e, i, a, r) {
var o = e.start.row, s = new t(o, e.start.column, o, this.session.getScreenLastRowColumn(o));
for (this.drawSingleLineMarker(n, s, i + " ace_start", a, 1, r), o = e.end.row,
s = new t(o, 0, o, e.end.column), this.drawSingleLineMarker(n, s, i, a, 0, r), o = e.start.row + 1; o < e.end.row; o++) s.start.row = o,
s.end.row = o, s.end.column = this.session.getScreenLastRowColumn(o), this.drawSingleLineMarker(n, s, i, a, 1, r);
}, this.drawMultiLineMarker = function(n, e, t, i, a) {
var r = this.$padding, o = i.lineHeight, s = this.$getTop(e.start.row, i), l = r + e.start.column * i.characterWidth;
a = a || "", n.push("<div class='", t, " ace_start' style='", "height:", o, "px;", "right:0;", "top:", s, "px;", "left:", l, "px;", a, "'></div>"),
s = this.$getTop(e.end.row, i);
var c = e.end.column * i.characterWidth;
n.push("<div class='", t, "' style='", "height:", o, "px;", "width:", c, "px;", "top:", s, "px;", "left:", r, "px;", a, "'></div>"),
o = (e.end.row - e.start.row - 1) * i.lineHeight, 0 > o || (s = this.$getTop(e.start.row + 1, i),
n.push("<div class='", t, "' style='", "height:", o, "px;", "right:0;", "top:", s, "px;", "left:", r, "px;", a, "'></div>"));
}, this.drawSingleLineMarker = function(n, e, t, i, a, r) {
var o = i.lineHeight, s = (e.end.column + (a || 0) - e.start.column) * i.characterWidth, l = this.$getTop(e.start.row, i), c = this.$padding + e.start.column * i.characterWidth;
n.push("<div class='", t, "' style='", "height:", o, "px;", "width:", s, "px;", "top:", l, "px;", "left:", c, "px;", r || "", "'></div>");
}, this.drawFullLineMarker = function(n, e, t, i, a) {
var r = this.$getTop(e.start.row, i), o = i.lineHeight;
e.start.row != e.end.row && (o += this.$getTop(e.end.row, i) - r), n.push("<div class='", t, "' style='", "height:", o, "px;", "top:", r, "px;", "left:0;right:0;", a || "", "'></div>");
}, this.drawScreenLineMarker = function(n, e, t, i, a) {
var r = this.$getTop(e.start.row, i), o = i.lineHeight;
n.push("<div class='", t, "' style='", "height:", o, "px;", "top:", r, "px;", "left:0;right:0;", a || "", "'></div>");
};
}).call(a.prototype), e.Marker = a;
}), define("ace/layer/text", [ "require", "exports", "module", "../lib/oop", "../lib/dom", "../lib/lang", "../lib/useragent", "../lib/event_emitter" ], function(n, e) {
var t = n("../lib/oop"), i = n("../lib/dom"), a = n("../lib/lang"), r = n("../lib/useragent"), o = n("../lib/event_emitter").EventEmitter, s = function(n) {
this.element = i.createElement("div"), this.element.className = "ace_layer ace_text-layer",
n.appendChild(this.element), this.$characterSize = {
width: 0,
height: 0
}, this.checkForSizeChanges(), this.$pollSizeChanges();
};
(function() {
t.implement(this, o), this.EOF_CHAR = "¶", this.EOL_CHAR = "¬", this.TAB_CHAR = "→",
this.SPACE_CHAR = "·", this.$padding = 0, this.setPadding = function(n) {
this.$padding = n, this.element.style.padding = "0 " + n + "px";
}, this.getLineHeight = function() {
return this.$characterSize.height || 1;
}, this.getCharacterWidth = function() {
return this.$characterSize.width || 1;
}, this.checkForSizeChanges = function() {
var n = this.$measureSizes();
if (n && (this.$characterSize.width !== n.width || this.$characterSize.height !== n.height)) {
this.$measureNode.style.fontWeight = "bold";
var e = this.$measureSizes();
this.$measureNode.style.fontWeight = "", this.$characterSize = n, this.allowBoldFonts = e && e.width === n.width && e.height === n.height,
this._emit("changeCharacterSize", {
data: n
});
}
}, this.$pollSizeChanges = function() {
var n = this;
this.$pollSizeChangesTimer = setInterval(function() {
n.checkForSizeChanges();
}, 500);
}, this.$fontStyles = {
fontFamily: 1,
fontSize: 1,
fontWeight: 1,
fontStyle: 1,
lineHeight: 1
}, this.$measureSizes = r.isIE || r.isOldGecko ? function() {
var n = 1e3;
if (!this.$measureNode) {
var e = this.$measureNode = i.createElement("div"), t = e.style;
if (t.width = t.height = "auto", t.left = t.top = 40 * -n + "px", t.visibility = "hidden",
t.position = "fixed", t.overflow = "visible", t.whiteSpace = "nowrap", e.innerHTML = a.stringRepeat("Xy", n),
this.element.ownerDocument.body) this.element.ownerDocument.body.appendChild(e); else {
for (var r = this.element.parentNode; !i.hasCssClass(r, "ace_editor"); ) r = r.parentNode;
r.appendChild(e);
}
}
if (!this.element.offsetWidth) return null;
var t = this.$measureNode.style, o = i.computedStyle(this.element);
for (var s in this.$fontStyles) t[s] = o[s];
var l = {
height: this.$measureNode.offsetHeight,
width: this.$measureNode.offsetWidth / (2 * n)
};
return 0 == l.width || 0 == l.height ? null : l;
} : function() {
if (!this.$measureNode) {
var n = this.$measureNode = i.createElement("div"), e = n.style;
e.width = e.height = "auto", e.left = e.top = "-100px", e.visibility = "hidden",
e.position = "fixed", e.overflow = "visible", e.whiteSpace = "nowrap", n.innerHTML = a.stringRepeat("X", 100);
for (var t = this.element.parentNode; t && !i.hasCssClass(t, "ace_editor"); ) t = t.parentNode;
if (!t) return this.$measureNode = null;
t.appendChild(n);
}
var r = this.$measureNode.getBoundingClientRect(), o = {
height: r.height,
width: r.width / 100
};
return 0 == o.width || 0 == o.height ? null : o;
}, this.setSession = function(n) {
this.session = n, this.$computeTabString();
}, this.showInvisibles = !1, this.setShowInvisibles = function(n) {
return this.showInvisibles == n ? !1 : (this.showInvisibles = n, this.$computeTabString(),
!0);
}, this.displayIndentGuides = !0, this.setDisplayIndentGuides = function(n) {
return this.displayIndentGuides == n ? !1 : (this.displayIndentGuides = n, this.$computeTabString(),
!0);
}, this.$tabStrings = [], this.onChangeTabSize = this.$computeTabString = function() {
var n = this.session.getTabSize();
this.tabSize = n;
for (var e = this.$tabStrings = [ 0 ], t = 1; n + 1 > t; t++) this.showInvisibles ? e.push("<span class='ace_invisible'>" + this.TAB_CHAR + a.stringRepeat(" ", t - 1) + "</span>") : e.push(a.stringRepeat(" ", t));
if (this.displayIndentGuides) {
this.$indentGuideRe = /\s\S| \t|\t |\s$/;
var i = "ace_indent-guide";
if (this.showInvisibles) {
i += " ace_invisible";
var r = a.stringRepeat(this.SPACE_CHAR, this.tabSize), o = this.TAB_CHAR + a.stringRepeat(" ", this.tabSize - 1);
} else var r = a.stringRepeat(" ", this.tabSize), o = r;
this.$tabStrings[" "] = "<span class='" + i + "'>" + r + "</span>", this.$tabStrings[" "] = "<span class='" + i + "'>" + o + "</span>";
}
}, this.updateLines = function(n, e, t) {
(this.config.lastRow != n.lastRow || this.config.firstRow != n.firstRow) && this.scrollLines(n),
this.config = n;
for (var a = Math.max(e, n.firstRow), r = Math.min(t, n.lastRow), o = this.element.childNodes, s = 0, l = n.firstRow; a > l; l++) {
var c = this.session.getFoldLine(l);
if (c) {
if (c.containsRow(a)) {
a = c.start.row;
break;
}
l = c.end.row;
}
s++;
}
for (var l = a, c = this.session.getNextFoldLine(l), M = c ? c.start.row : 1/0; ;) {
if (l > M && (l = c.end.row + 1, c = this.session.getNextFoldLine(l, c), M = c ? c.start.row : 1/0),
l > r) break;
var u = o[s++];
if (u) {
var d = [];
this.$renderLine(d, l, !this.$useLineGroups(), l == M ? c : !1), i.setInnerHtml(u, d.join(""));
}
l++;
}
}, this.scrollLines = function(n) {
var e = this.config;
if (this.config = n, !e || e.lastRow < n.firstRow) return this.update(n);
if (n.lastRow < e.firstRow) return this.update(n);
var t = this.element;
if (e.firstRow < n.firstRow) for (var i = this.session.getFoldedRowCount(e.firstRow, n.firstRow - 1); i > 0; i--) t.removeChild(t.firstChild);
if (e.lastRow > n.lastRow) for (var i = this.session.getFoldedRowCount(n.lastRow + 1, e.lastRow); i > 0; i--) t.removeChild(t.lastChild);
if (n.firstRow < e.firstRow) {
var a = this.$renderLinesFragment(n, n.firstRow, e.firstRow - 1);
t.firstChild ? t.insertBefore(a, t.firstChild) : t.appendChild(a);
}
if (n.lastRow > e.lastRow) {
var a = this.$renderLinesFragment(n, e.lastRow + 1, n.lastRow);
t.appendChild(a);
}
}, this.$renderLinesFragment = function(n, e, t) {
for (var a = this.element.ownerDocument.createDocumentFragment(), r = e, o = this.session.getNextFoldLine(r), s = o ? o.start.row : 1/0; ;) {
if (r > s && (r = o.end.row + 1, o = this.session.getNextFoldLine(r, o), s = o ? o.start.row : 1/0),
r > t) break;
var l = i.createElement("div"), c = [];
if (this.$renderLine(c, r, !1, r == s ? o : !1), l.innerHTML = c.join(""), this.$useLineGroups()) l.className = "ace_line_group",
a.appendChild(l); else for (var M = l.childNodes; M.length; ) a.appendChild(M[0]);
r++;
}
return a;
}, this.update = function(n) {
this.config = n;
for (var e = [], t = n.firstRow, a = n.lastRow, r = t, o = this.session.getNextFoldLine(r), s = o ? o.start.row : 1/0; ;) {
if (r > s && (r = o.end.row + 1, o = this.session.getNextFoldLine(r, o), s = o ? o.start.row : 1/0),
r > a) break;
this.$useLineGroups() && e.push("<div class='ace_line_group'>"), this.$renderLine(e, r, !1, r == s ? o : !1),
this.$useLineGroups() && e.push("</div>"), r++;
}
this.element = i.setInnerHtml(this.element, e.join(""));
}, this.$textToken = {
text: !0,
rparen: !0,
lparen: !0
}, this.$renderToken = function(n, e, t, i) {
var r = this, o = /\t|&|<|( +)|([\x00-\x1f\x80-\xa0\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g, s = function(n, t, i, o) {
if (t) return r.showInvisibles ? "<span class='ace_invisible'>" + a.stringRepeat(r.SPACE_CHAR, n.length) + "</span>" : a.stringRepeat(" ", n.length);
if ("&" == n) return "&#38;";
if ("<" == n) return "&#60;";
if (" " == n) {
var s = r.session.getScreenTabSize(e + o);
return e += s - 1, r.$tabStrings[s];
}
if (" " == n) {
var l = r.showInvisibles ? "ace_cjk ace_invisible" : "ace_cjk", c = r.showInvisibles ? r.SPACE_CHAR : "";
return e += 1, "<span class='" + l + "' style='width:" + 2 * r.config.characterWidth + "px'>" + c + "</span>";
}
return i ? "<span class='ace_invisible ace_invalid'>" + r.SPACE_CHAR + "</span>" : (e += 1,
"<span class='ace_cjk' style='width:" + 2 * r.config.characterWidth + "px'>" + n + "</span>");
}, l = i.replace(o, s);
if (this.$textToken[t.type]) n.push(l); else {
var c = "ace_" + t.type.replace(/\./g, " ace_"), M = "";
"fold" == t.type && (M = " style='width:" + t.value.length * this.config.characterWidth + "px;' "),
n.push("<span class='", c, "'", M, ">", l, "</span>");
}
return e + i.length;
}, this.renderIndentGuide = function(n, e, t) {
var i = e.search(this.$indentGuideRe);
return 0 >= i || i >= t ? e : " " == e[0] ? (i -= i % this.tabSize, n.push(a.stringRepeat(this.$tabStrings[" "], i / this.tabSize)),
e.substr(i)) : " " == e[0] ? (n.push(a.stringRepeat(this.$tabStrings[" "], i)),
e.substr(i)) : e;
}, this.$renderWrappedLine = function(n, e, t, i) {
for (var a = 0, r = 0, o = t[0], s = 0, l = 0; l < e.length; l++) {
var c = e[l], M = c.value;
if (0 == l && this.displayIndentGuides) {
if (a = M.length, M = this.renderIndentGuide(n, M, o), !M) continue;
a -= M.length;
}
if (a + M.length < o) s = this.$renderToken(n, s, c, M), a += M.length; else {
for (;a + M.length >= o; ) s = this.$renderToken(n, s, c, M.substring(0, o - a)),
M = M.substring(o - a), a = o, i || n.push("</div>", "<div class='ace_line' style='height:", this.config.lineHeight, "px'>"),
r++, s = 0, o = t[r] || Number.MAX_VALUE;
0 != M.length && (a += M.length, s = this.$renderToken(n, s, c, M));
}
}
}, this.$renderSimpleLine = function(n, e) {
var t = 0, i = e[0], a = i.value;
this.displayIndentGuides && (a = this.renderIndentGuide(n, a)), a && (t = this.$renderToken(n, t, i, a));
for (var r = 1; r < e.length; r++) i = e[r], a = i.value, t = this.$renderToken(n, t, i, a);
}, this.$renderLine = function(n, e, t, i) {
if (i || 0 == i || (i = this.session.getFoldLine(e)), i) var a = this.$getFoldLineTokens(e, i); else var a = this.session.getTokens(e);
if (t || n.push("<div class='ace_line' style='height:", this.config.lineHeight, "px'>"),
a.length) {
var r = this.session.getRowSplitData(e);
r && r.length ? this.$renderWrappedLine(n, a, r, t) : this.$renderSimpleLine(n, a);
}
this.showInvisibles && (i && (e = i.end.row), n.push("<span class='ace_invisible'>", e == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR, "</span>")),
t || n.push("</div>");
}, this.$getFoldLineTokens = function(n, e) {
function t(n, e, t) {
for (var i = 0, r = 0; r + n[i].value.length < e; ) if (r += n[i].value.length,
i++, i == n.length) return;
if (r != e) {
var o = n[i].value.substring(e - r);
o.length > t - e && (o = o.substring(0, t - e)), a.push({
type: n[i].type,
value: o
}), r = e + o.length, i += 1;
}
for (;t > r && i < n.length; ) {
var o = n[i].value;
o.length + r > t ? a.push({
type: n[i].type,
value: o.substring(0, t - r)
}) : a.push(n[i]), r += o.length, i += 1;
}
}
var i = this.session, a = [], r = i.getTokens(n);
return e.walk(function(n, e, o, s, l) {
null != n ? a.push({
type: "fold",
value: n
}) : (l && (r = i.getTokens(e)), r.length && t(r, s, o));
}, e.end.row, this.session.getLine(e.end.row).length), a;
}, this.$useLineGroups = function() {
return this.session.getUseWrapMode();
}, this.destroy = function() {
clearInterval(this.$pollSizeChangesTimer), this.$measureNode && this.$measureNode.parentNode.removeChild(this.$measureNode),
delete this.$measureNode;
};
}).call(s.prototype), e.Text = s;
}), define("ace/layer/cursor", [ "require", "exports", "module", "../lib/dom" ], function(n, e) {
var t = n("../lib/dom"), i = function(n) {
this.element = t.createElement("div"), this.element.className = "ace_layer ace_cursor-layer",
n.appendChild(this.element), this.isVisible = !1, this.isBlinking = !0, this.blinkInterval = 1e3,
this.smoothBlinking = !1, this.cursors = [], this.cursor = this.addCursor(), t.addCssClass(this.element, "ace_hidden-cursors");
};
(function() {
this.$padding = 0, this.setPadding = function(n) {
this.$padding = n;
}, this.setSession = function(n) {
this.session = n;
}, this.setBlinking = function(n) {
n != this.isBlinking && (this.isBlinking = n, this.restartTimer());
}, this.setBlinkInterval = function(n) {
n != this.blinkInterval && (this.blinkInterval = n, this.restartTimer());
}, this.setSmoothBlinking = function(n) {
n != this.smoothBlinking && (this.smoothBlinking = n, n ? t.addCssClass(this.element, "ace_smooth-blinking") : t.removeCssClass(this.element, "ace_smooth-blinking"),
this.restartTimer());
}, this.addCursor = function() {
var n = t.createElement("div");
return n.className = "ace_cursor", this.element.appendChild(n), this.cursors.push(n),
n;
}, this.removeCursor = function() {
if (this.cursors.length > 1) {
var n = this.cursors.pop();
return n.parentNode.removeChild(n), n;
}
}, this.hideCursor = function() {
this.isVisible = !1, t.addCssClass(this.element, "ace_hidden-cursors"), this.restartTimer();
}, this.showCursor = function() {
this.isVisible = !0, t.removeCssClass(this.element, "ace_hidden-cursors"), this.restartTimer();
}, this.restartTimer = function() {
clearInterval(this.intervalId), clearTimeout(this.timeoutId), this.smoothBlinking && t.removeCssClass(this.element, "ace_smooth-blinking");
for (var n = this.cursors.length; n--; ) this.cursors[n].style.opacity = "";
if (this.isBlinking && this.blinkInterval && this.isVisible) {
this.smoothBlinking && setTimeout(function() {
t.addCssClass(this.element, "ace_smooth-blinking");
}.bind(this));
var e = function() {
this.timeoutId = setTimeout(function() {
for (var n = this.cursors.length; n--; ) this.cursors[n].style.opacity = 0;
}.bind(this), .6 * this.blinkInterval);
}.bind(this);
this.intervalId = setInterval(function() {
for (var n = this.cursors.length; n--; ) this.cursors[n].style.opacity = "";
e();
}.bind(this), this.blinkInterval), e();
}
}, this.getPixelPosition = function(n, e) {
if (!this.config || !this.session) return {
left: 0,
top: 0
};
n || (n = this.session.selection.getCursor());
var t = this.session.documentToScreenPosition(n), i = this.$padding + t.column * this.config.characterWidth, a = (t.row - (e ? this.config.firstRowScreen : 0)) * this.config.lineHeight;
return {
left: i,
top: a
};
}, this.update = function(n) {
this.config = n;
var e = this.session.$selectionMarkers, t = 0, i = 0;
(void 0 === e || 0 === e.length) && (e = [ {
cursor: null
} ]);
for (var t = 0, a = e.length; a > t; t++) {
var r = this.getPixelPosition(e[t].cursor, !0);
if (!((r.top > n.height + n.offset || r.top < -n.offset) && t > 1)) {
var o = (this.cursors[i++] || this.addCursor()).style;
o.left = r.left + "px", o.top = r.top + "px", o.width = n.characterWidth + "px",
o.height = n.lineHeight + "px";
}
}
for (;this.cursors.length > i; ) this.removeCursor();
var s = this.session.getOverwrite();
this.$setOverwrite(s), this.$pixelPos = r, this.restartTimer();
}, this.$setOverwrite = function(n) {
n != this.overwrite && (this.overwrite = n, n ? t.addCssClass(this.element, "ace_overwrite-cursors") : t.removeCssClass(this.element, "ace_overwrite-cursors"));
}, this.destroy = function() {
clearInterval(this.intervalId), clearTimeout(this.timeoutId);
};
}).call(i.prototype), e.Cursor = i;
}), define("ace/scrollbar", [ "require", "exports", "module", "./lib/oop", "./lib/dom", "./lib/event", "./lib/event_emitter" ], function(n, e) {
var t = n("./lib/oop"), i = n("./lib/dom"), a = n("./lib/event"), r = n("./lib/event_emitter").EventEmitter, o = function(n, e) {
this.element = i.createElement("div"), this.element.className = "ace_scrollbar",
this.inner = i.createElement("div"), this.inner.className = "ace_scrollbar-inner",
this.element.appendChild(this.inner), n.appendChild(this.element), e.$scrollbarWidth = this.width = i.scrollbarWidth(n.ownerDocument),
e.$scrollbarWidth = this.width = i.scrollbarWidth(n.ownerDocument), this.fullWidth = this.width,
this.inner.style.width = this.element.style.width = (this.width || 15) + 5 + "px",
this.setVisible(!1), this.element.style.overflowY = "scroll", a.addListener(this.element, "scroll", this.onScrollV.bind(this));
}, s = function(n, e) {
this.element = i.createElement("div"), this.element.className = "ace_scrollbar-h",
this.inner = i.createElement("div"), this.inner.className = "ace_scrollbar-inner",
this.element.appendChild(this.inner), n.appendChild(this.element), this.height = e.$scrollbarWidth,
this.fullHeight = this.height, this.inner.style.height = this.element.style.height = (this.height || 15) + 5 + "px",
this.setVisible(!1), this.element.style.overflowX = "scroll", a.addListener(this.element, "scroll", this.onScrollH.bind(this));
};
(function() {
t.implement(this, r), this.setVisible = function(n) {
n ? (this.element.style.display = "", this.fullWidth && (this.width = this.fullWidth),
this.fullHeight && (this.height = this.fullHeight)) : (this.element.style.display = "none",
this.height = this.width = 0);
}, this.onScrollV = function() {
this.skipEvent || (this.scrollTop = this.element.scrollTop, this._emit("scroll", {
data: this.scrollTop
})), this.skipEvent = !1;
}, this.onScrollH = function() {
this.skipEvent || (this.scrollLeft = this.element.scrollLeft, this._emit("scroll", {
data: this.scrollLeft
})), this.skipEvent = !1;
}, this.getWidth = function() {
return this.width;
}, this.getHeight = function() {
return this.height;
}, this.setHeight = function(n) {
this.element.style.height = n + "px";
}, this.setWidth = function(n) {
this.element.style.width = n + "px";
}, this.setInnerHeight = function(n) {
this.inner.style.height = n + "px";
}, this.setInnerWidth = function(n) {
this.inner.style.width = n + "px";
}, this.setScrollTop = function(n) {
this.scrollTop != n && (this.skipEvent = !0, this.scrollTop = this.element.scrollTop = n);
}, this.setScrollLeft = function(n) {
this.scrollLeft != n && (this.skipEvent = !0, this.scrollLeft = this.element.scrollLeft = n);
};
}).call(o.prototype), s.prototype = o.prototype, e.ScrollBar = o, e.ScrollBarV = o,
e.ScrollBarH = s;
}), define("ace/renderloop", [ "require", "exports", "module", "./lib/event" ], function(n, e) {
var t = n("./lib/event"), i = function(n, e) {
this.onRender = n, this.pending = !1, this.changes = 0, this.window = e || window;
};
(function() {
this.schedule = function(n) {
if (this.changes = this.changes | n, !this.pending) {
this.pending = !0;
var e = this;
t.nextFrame(function() {
e.pending = !1;
for (var n; n = e.changes; ) e.changes = 0, e.onRender(n);
}, this.window);
}
};
}).call(i.prototype), e.RenderLoop = i;
}), function() {
define("ace/requirejs/text", [ "require", "exports", "module" ], function(n, e) {
e.load = function(n, e, t) {
t("", "utf8");
};
});
}(), define("ace/virtual_renderer", [ "require", "exports", "module", "./lib/oop", "./lib/dom", "./lib/useragent", "./config", "./layer/gutter", "./layer/marker", "./layer/text", "./layer/cursor", "./scrollbar", "./scrollbar", "./renderloop", "./lib/event_emitter", "./requirejs/text!./css/editor.css" ], function(n, e) {
var t = n("./lib/oop"), i = n("./lib/dom"), a = n("./lib/useragent"), r = n("./config"), o = n("./layer/gutter").Gutter, s = n("./layer/marker").Marker, l = n("./layer/text").Text, c = n("./layer/cursor").Cursor, M = n("./scrollbar").ScrollBarH, u = n("./scrollbar").ScrollBarV, d = n("./renderloop").RenderLoop, h = n("./lib/event_emitter").EventEmitter, S = n("./requirejs/text!./css/editor.css");
i.importCssString(S, "ace_editor");
var p = function(n, e) {
var t = this;
this.container = n || i.createElement("div"), this.$keepTextAreaAtCursor = !a.isIE,
i.addCssClass(this.container, "ace_editor"), this.setTheme(e), this.$gutter = i.createElement("div"),
this.$gutter.className = "ace_gutter", this.container.appendChild(this.$gutter),
this.scroller = i.createElement("div"), this.scroller.className = "ace_scroller",
this.container.appendChild(this.scroller), this.content = i.createElement("div"),
this.content.className = "ace_content", this.scroller.appendChild(this.content),
this.$gutterLayer = new o(this.$gutter), this.$gutterLayer.on("changeGutterWidth", this.onGutterResize.bind(this)),
this.$markerBack = new s(this.content);
var h = this.$textLayer = new l(this.content);
this.canvas = h.element, this.$markerFront = new s(this.content), this.$cursorLayer = new c(this.content),
this.$horizScroll = !1, this.$vScroll = !1, this.scrollBar = this.scrollBarV = new u(this.container, this),
this.scrollBarH = new M(this.container, this), this.scrollBarV.addEventListener("scroll", function(n) {
t.$scrollAnimation || t.session.setScrollTop(n.data - t.scrollMargin.top);
}), this.scrollBarH.addEventListener("scroll", function(n) {
t.$scrollAnimation || t.session.setScrollLeft(n.data - t.scrollMargin.left);
}), this.scrollTop = 0, this.scrollLeft = 0, this.cursorPos = {
row: 0,
column: 0
}, this.$textLayer.addEventListener("changeCharacterSize", function() {
t.updateCharacterSize(), t.onResize(!0), t._signal("changeCharacterSize");
}), this.$size = {
width: 0,
height: 0,
scrollerHeight: 0,
scrollerWidth: 0
}, this.layerConfig = {
width: 1,
padding: 0,
firstRow: 0,
firstRowScreen: 0,
lastRow: 0,
lineHeight: 1,
characterWidth: 1,
minHeight: 1,
maxHeight: 1,
offset: 0,
height: 1
}, this.scrollMargin = {
left: 0,
right: 0,
top: 0,
bottom: 0,
v: 0,
h: 0
}, this.$loop = new d(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView),
this.$loop.schedule(this.CHANGE_FULL), this.updateCharacterSize(), this.setPadding(4),
r.resetOptions(this), r._emit("renderer", this);
};
(function() {
this.CHANGE_CURSOR = 1, this.CHANGE_MARKER = 2, this.CHANGE_GUTTER = 4, this.CHANGE_SCROLL = 8,
this.CHANGE_LINES = 16, this.CHANGE_TEXT = 32, this.CHANGE_SIZE = 64, this.CHANGE_MARKER_BACK = 128,
this.CHANGE_MARKER_FRONT = 256, this.CHANGE_FULL = 512, this.CHANGE_H_SCROLL = 1024,
t.implement(this, h), this.updateCharacterSize = function() {
this.$textLayer.allowBoldFonts != this.$allowBoldFonts && (this.$allowBoldFonts = this.$textLayer.allowBoldFonts,
this.setStyle("ace_nobold", !this.$allowBoldFonts)), this.layerConfig.characterWidth = this.characterWidth = this.$textLayer.getCharacterWidth(),
this.layerConfig.lineHeight = this.lineHeight = this.$textLayer.getLineHeight(),
this.$updatePrintMargin();
}, this.setSession = function(n) {
this.session = n, this.scroller.className = "ace_scroller", this.$cursorLayer.setSession(n),
this.$markerBack.setSession(n), this.$markerFront.setSession(n), this.$gutterLayer.setSession(n),
this.$textLayer.setSession(n), this.$loop.schedule(this.CHANGE_FULL);
}, this.updateLines = function(n, e) {
void 0 === e && (e = 1/0), this.$changedLines ? (this.$changedLines.firstRow > n && (this.$changedLines.firstRow = n),
this.$changedLines.lastRow < e && (this.$changedLines.lastRow = e)) : this.$changedLines = {
firstRow: n,
lastRow: e
}, this.$changedLines.firstRow > this.layerConfig.lastRow || this.$changedLines.lastRow < this.layerConfig.firstRow || this.$loop.schedule(this.CHANGE_LINES);
}, this.onChangeTabSize = function() {
this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER), this.$textLayer.onChangeTabSize();
}, this.updateText = function() {
this.$loop.schedule(this.CHANGE_TEXT);
}, this.updateFull = function(n) {
n ? this.$renderChanges(this.CHANGE_FULL, !0) : this.$loop.schedule(this.CHANGE_FULL);
}, this.updateFontSize = function() {
this.$textLayer.checkForSizeChanges();
}, this.$changes = 0, this.onResize = function(n, e, t, i) {
if (!(this.resizing > 2)) {
this.resizing > 0 ? this.resizing++ : this.resizing = n ? 1 : 0;
var a = this.container;
i || (i = a.clientHeight || a.scrollHeight), t || (t = a.clientWidth || a.scrollWidth);
var r = this.$updateCachedSize(n, e, t, i);
if (!this.$size.scrollerHeight || !t && !i) return this.resizing = 0;
n && (this.$gutterLayer.$padding = null), n ? this.$renderChanges(r, !0) : this.$loop.schedule(r | this.$changes),
this.resizing && (this.resizing = 0);
}
}, this.$updateCachedSize = function(n, e, t, i) {
var a = 0, r = this.$size, o = {
width: r.width,
height: r.height,
scrollerHeight: r.scrollerHeight,
scrollerWidth: r.scrollerWidth
};
return i && (n || r.height != i) && (r.height = i, a = this.CHANGE_SIZE, r.scrollerHeight = r.height,
this.$horizScroll && (r.scrollerHeight -= this.scrollBarH.getHeight()), this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + "px",
this.session && (this.session.setScrollTop(this.getScrollTop()), a |= this.CHANGE_SCROLL)),
t && (n || r.width != t) && (a = this.CHANGE_SIZE, r.width = t, null == e && (e = this.$showGutter ? this.$gutter.offsetWidth : 0),
this.gutterWidth = e, this.scrollBarH.element.style.left = this.scroller.style.left = e + "px",
r.scrollerWidth = Math.max(0, t - e - this.scrollBarV.getWidth()), this.scrollBarH.element.style.right = this.scroller.style.right = this.scrollBarV.getWidth() + "px",
this.scroller.style.bottom = this.scrollBarH.getHeight() + "px", (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || n) && (a |= this.CHANGE_FULL)),
a && this._signal("resize", o), a;
}, this.onGutterResize = function() {
var n = this.$showGutter ? this.$gutter.offsetWidth : 0;
n != this.gutterWidth && (this.$changes |= this.$updateCachedSize(!0, n, this.$size.width, this.$size.height)),
this.session.getUseWrapMode() && this.adjustWrapLimit() ? this.$loop.schedule(this.CHANGE_FULL) : (this.$computeLayerConfig(),
this.$loop.schedule(this.CHANGE_MARKER));
}, this.adjustWrapLimit = function() {
var n = this.$size.scrollerWidth - 2 * this.$padding, e = Math.floor(n / this.characterWidth);
return this.session.adjustWrapLimit(e, this.$showPrintMargin && this.$printMarginColumn);
}, this.setAnimatedScroll = function(n) {
this.setOption("animatedScroll", n);
}, this.getAnimatedScroll = function() {
return this.$animatedScroll;
}, this.setShowInvisibles = function(n) {
this.setOption("showInvisibles", n);
}, this.getShowInvisibles = function() {
return this.getOption("showInvisibles");
}, this.getDisplayIndentGuides = function() {
return this.getOption("displayIndentGuides");
}, this.setDisplayIndentGuides = function(n) {
this.setOption("displayIndentGuides", n);
}, this.setShowPrintMargin = function(n) {
this.setOption("showPrintMargin", n);
}, this.getShowPrintMargin = function() {
return this.getOption("showPrintMargin");
}, this.setPrintMarginColumn = function(n) {
this.setOption("printMarginColumn", n);
}, this.getPrintMarginColumn = function() {
return this.getOption("printMarginColumn");
}, this.getShowGutter = function() {
return this.getOption("showGutter");
}, this.setShowGutter = function(n) {
return this.setOption("showGutter", n);
}, this.getFadeFoldWidgets = function() {
return this.getOption("fadeFoldWidgets");
}, this.setFadeFoldWidgets = function(n) {
this.setOption("fadeFoldWidgets", n);
}, this.setHighlightGutterLine = function(n) {
this.setOption("highlightGutterLine", n);
}, this.getHighlightGutterLine = function() {
return this.getOption("highlightGutterLine");
}, this.$updateGutterLineHighlight = function() {
var n = this.$cursorLayer.$pixelPos, e = this.layerConfig.lineHeight;
if (this.session.getUseWrapMode()) {
var t = this.session.selection.getCursor();
t.column = 0, n = this.$cursorLayer.getPixelPosition(t, !0), e *= this.session.getRowLength(t.row);
}
this.$gutterLineHighlight.style.top = n.top - this.layerConfig.offset + "px", this.$gutterLineHighlight.style.height = e + "px";
}, this.$updatePrintMargin = function() {
if (this.$showPrintMargin || this.$printMarginEl) {
if (!this.$printMarginEl) {
var n = i.createElement("div");
n.className = "ace_layer ace_print-margin-layer", this.$printMarginEl = i.createElement("div"),
this.$printMarginEl.className = "ace_print-margin", n.appendChild(this.$printMarginEl),
this.content.insertBefore(n, this.content.firstChild);
}
var e = this.$printMarginEl.style;
e.left = this.characterWidth * this.$printMarginColumn + this.$padding + "px", e.visibility = this.$showPrintMargin ? "visible" : "hidden",
this.session && -1 == this.session.$wrap && this.adjustWrapLimit();
}
}, this.getContainerElement = function() {
return this.container;
}, this.getMouseEventTarget = function() {
return this.content;
}, this.getTextAreaContainer = function() {
return this.container;
}, this.$moveTextAreaToCursor = function() {
if (this.$keepTextAreaAtCursor) {
var n = this.layerConfig, e = this.$cursorLayer.$pixelPos.top, t = this.$cursorLayer.$pixelPos.left;
e -= n.offset;
var i = this.lineHeight;
if (!(0 > e || e > n.height - i)) {
var a = this.characterWidth;
if (this.$composition) {
var r = this.textarea.value.replace(/^\x01+/, "");
a *= this.session.$getStringScreenWidth(r)[0] + 2, i += 2, e -= 1;
}
t -= this.scrollLeft, t > this.$size.scrollerWidth - a && (t = this.$size.scrollerWidth - a),
t -= this.scrollBar.width, this.textarea.style.height = i + "px", this.textarea.style.width = a + "px",
this.textarea.style.right = Math.max(0, this.$size.scrollerWidth - t - a) + "px",
this.textarea.style.bottom = Math.max(0, this.$size.height - e - i) + "px";
}
}
}, this.getFirstVisibleRow = function() {
return this.layerConfig.firstRow;
}, this.getFirstFullyVisibleRow = function() {
return this.layerConfig.firstRow + (0 === this.layerConfig.offset ? 0 : 1);
}, this.getLastFullyVisibleRow = function() {
var n = Math.floor((this.layerConfig.height + this.layerConfig.offset) / this.layerConfig.lineHeight);
return this.layerConfig.firstRow - 1 + n;
}, this.getLastVisibleRow = function() {
return this.layerConfig.lastRow;
}, this.$padding = null, this.setPadding = function(n) {
this.$padding = n, this.$textLayer.setPadding(n), this.$cursorLayer.setPadding(n),
this.$markerFront.setPadding(n), this.$markerBack.setPadding(n), this.$loop.schedule(this.CHANGE_FULL),
this.$updatePrintMargin();
}, this.setScrollMargin = function(n, e, t, i) {
var a = this.scrollMargin;
a.top = 0 | n, a.bottom = 0 | e, a.right = 0 | i, a.left = 0 | t, a.v = a.top + a.bottom,
a.h = a.left + a.right, this.updateFull();
}, this.getHScrollBarAlwaysVisible = function() {
return this.$hScrollBarAlwaysVisible;
}, this.setHScrollBarAlwaysVisible = function(n) {
this.setOption("hScrollBarAlwaysVisible", n);
}, this.getVScrollBarAlwaysVisible = function() {
return this.$hScrollBarAlwaysVisible;
}, this.setVScrollBarAlwaysVisible = function(n) {
this.setOption("vScrollBarAlwaysVisible", n);
}, this.$updateScrollBarV = function() {
this.scrollBarV.setInnerHeight(this.layerConfig.maxHeight + this.scrollMargin.v),
this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);
}, this.$updateScrollBarH = function() {
this.scrollBarH.setInnerWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h),
this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);
}, this.$renderChanges = function(n, e) {
return this.$changes && (n |= this.$changes, this.$changes = 0), this.session && this.container.offsetWidth && (n || e) ? this.$size.width ? (this._signal("beforeRender"),
(n & this.CHANGE_FULL || n & this.CHANGE_SIZE || n & this.CHANGE_TEXT || n & this.CHANGE_LINES || n & this.CHANGE_SCROLL || n & this.CHANGE_H_SCROLL) && (n |= this.$computeLayerConfig()),
n & this.CHANGE_H_SCROLL && (this.$updateScrollBarH(), this.content.style.marginLeft = -this.scrollLeft + "px",
this.scroller.className = this.scrollLeft <= 0 ? "ace_scroller" : "ace_scroller ace_scroll-left"),
n & this.CHANGE_FULL ? (this.$textLayer.checkForSizeChanges(), this.$updateScrollBarV(),
this.$updateScrollBarH(), this.$textLayer.update(this.layerConfig), this.$showGutter && this.$gutterLayer.update(this.layerConfig),
this.$markerBack.update(this.layerConfig), this.$markerFront.update(this.layerConfig),
this.$cursorLayer.update(this.layerConfig), this.$moveTextAreaToCursor(), this.$highlightGutterLine && this.$updateGutterLineHighlight(),
this._signal("afterRender"), void 0) : n & this.CHANGE_SCROLL ? (this.$updateScrollBarV(),
n & this.CHANGE_TEXT || n & this.CHANGE_LINES ? this.$textLayer.update(this.layerConfig) : this.$textLayer.scrollLines(this.layerConfig),
this.$showGutter && this.$gutterLayer.update(this.layerConfig), this.$markerBack.update(this.layerConfig),
this.$markerFront.update(this.layerConfig), this.$cursorLayer.update(this.layerConfig),
this.$highlightGutterLine && this.$updateGutterLineHighlight(), this.$moveTextAreaToCursor(),
this._signal("afterRender"), void 0) : (n & this.CHANGE_TEXT ? (this.$textLayer.update(this.layerConfig),
this.$showGutter && this.$gutterLayer.update(this.layerConfig)) : n & this.CHANGE_LINES ? (this.$updateLines() || n & this.CHANGE_GUTTER && this.$showGutter) && this.$gutterLayer.update(this.layerConfig) : (n & this.CHANGE_TEXT || n & this.CHANGE_GUTTER) && this.$showGutter && this.$gutterLayer.update(this.layerConfig),
n & this.CHANGE_CURSOR && (this.$cursorLayer.update(this.layerConfig), this.$moveTextAreaToCursor(),
this.$highlightGutterLine && this.$updateGutterLineHighlight()), n & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT) && this.$markerFront.update(this.layerConfig),
n & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK) && this.$markerBack.update(this.layerConfig),
(n & this.CHANGE_SIZE || n & this.CHANGE_LINES) && (this.$updateScrollBarV(), this.$updateScrollBarH()),
this._signal("afterRender"), void 0)) : (this.$changes |= n, this.onResize(!0)) : (this.$changes |= n,
void 0);
}, this.$autosize = function(n) {
var n = this.session.getScreenLength() * this.lineHeight, e = this.$maxLines * this.lineHeight, t = Math.max((this.$minLines || 1) * this.lineHeight, Math.min(e, n)), i = n > e;
if (t != this.desiredHeight || this.$size.height != this.desiredHeight || i != this.$vScroll) {
i != this.$vScroll && (this.$vScroll = i, this.scrollBarV.setVisible(i));
var a = this.container.clientWidth;
this.container.style.height = t + "px", this.$updateCachedSize(!0, this.$gutterWidth, a, t),
this.desiredHeight = t;
}
}, this.$computeLayerConfig = function() {
this.$maxLines && this.lineHeight > 1 && this.$autosize();
var n = this.session, e = this.$size.height <= 2 * this.lineHeight, t = this.session.getScreenLength(), i = t * this.lineHeight, a = this.scrollTop % this.lineHeight, r = this.$size.scrollerHeight + this.lineHeight, o = this.$getLongestLine(), s = !e && (this.$hScrollBarAlwaysVisible || this.$size.scrollerWidth - o - 2 * this.$padding < 0), l = this.$horizScroll !== s;
l && (this.$horizScroll = s, this.scrollBarH.setVisible(s)), !this.$maxLines && this.$scrollPastEnd && this.scrollTop > i - this.$size.scrollerHeight && (i += Math.min((this.$size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd, this.scrollTop - i + this.$size.scrollerHeight));
var c = !e && (this.$vScrollBarAlwaysVisible || this.$size.scrollerHeight - i < 0), M = this.$vScroll !== c;
M && (this.$vScroll = c, this.scrollBarV.setVisible(c)), this.session.setScrollTop(Math.max(-this.scrollMargin.top, Math.min(this.scrollTop, i - this.$size.scrollerHeight + this.scrollMargin.v))),
this.session.setScrollLeft(Math.max(-this.scrollMargin.left, Math.min(this.scrollLeft, o + 2 * this.$padding - this.$size.scrollerWidth + this.scrollMargin.h)));
var u, d, h = Math.ceil(r / this.lineHeight) - 1, S = Math.max(0, Math.round((this.scrollTop - a) / this.lineHeight)), p = S + h, m = this.lineHeight;
S = n.screenToDocumentRow(S, 0);
var g = n.getFoldLine(S);
g && (S = g.start.row), u = n.documentToScreenRow(S, 0), d = n.getRowLength(S) * m,
p = Math.min(n.screenToDocumentRow(p, 0), n.getLength() - 1), r = this.$size.scrollerHeight + n.getRowLength(p) * m + d,
a = this.scrollTop - u * m;
var f = 0;
return (l || M) && (f = this.$updateCachedSize(!0, this.gutterWidth, this.$size.width, this.$size.height),
this._signal("scrollbarVisibilityChanged"), M && (o = this.$getLongestLine())),
this.layerConfig = {
width: o,
padding: this.$padding,
firstRow: S,
firstRowScreen: u,
lastRow: p,
lineHeight: m,
characterWidth: this.characterWidth,
minHeight: r,
maxHeight: i,
offset: a,
height: this.$size.scrollerHeight
}, this.$gutterLayer.element.style.marginTop = -a + "px", this.content.style.marginTop = -a + "px",
this.content.style.width = o + 2 * this.$padding + "px", this.content.style.height = r + "px",
f;
}, this.$updateLines = function() {
var n = this.$changedLines.firstRow, e = this.$changedLines.lastRow;
this.$changedLines = null;
var t = this.layerConfig;
return n > t.lastRow + 1 || e < t.firstRow ? void 0 : 1/0 === e ? (this.$showGutter && this.$gutterLayer.update(t),
this.$textLayer.update(t), void 0) : (this.$textLayer.updateLines(t, n, e), !0);
}, this.$getLongestLine = function() {
var n = this.session.getScreenWidth();
return this.showInvisibles && !this.session.$useWrapMode && (n += 1), Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(n * this.characterWidth));
}, this.updateFrontMarkers = function() {
this.$markerFront.setMarkers(this.session.getMarkers(!0)), this.$loop.schedule(this.CHANGE_MARKER_FRONT);
}, this.updateBackMarkers = function() {
this.$markerBack.setMarkers(this.session.getMarkers()), this.$loop.schedule(this.CHANGE_MARKER_BACK);
}, this.addGutterDecoration = function(n, e) {
this.$gutterLayer.addGutterDecoration(n, e);
}, this.removeGutterDecoration = function(n, e) {
this.$gutterLayer.removeGutterDecoration(n, e);
}, this.updateBreakpoints = function() {
this.$loop.schedule(this.CHANGE_GUTTER);
}, this.setAnnotations = function(n) {
this.$gutterLayer.setAnnotations(n), this.$loop.schedule(this.CHANGE_GUTTER);
}, this.updateCursor = function() {
this.$loop.schedule(this.CHANGE_CURSOR);
}, this.hideCursor = function() {
this.$cursorLayer.hideCursor();
}, this.showCursor = function() {
this.$cursorLayer.showCursor();
}, this.scrollSelectionIntoView = function(n, e, t) {
this.scrollCursorIntoView(n, t), this.scrollCursorIntoView(e, t);
}, this.scrollCursorIntoView = function(n, e) {
if (0 !== this.$size.scrollerHeight) {
var t = this.$cursorLayer.getPixelPosition(n), i = t.left, a = t.top, r = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;
r > a ? (e && (a -= e * this.$size.scrollerHeight), 0 == a ? a = -this.scrollMargin.top : 0 == a && (a = +this.scrollMargin.bottom),
this.session.setScrollTop(a)) : r + this.$size.scrollerHeight < a + this.lineHeight && (e && (a += e * this.$size.scrollerHeight),
this.session.setScrollTop(a + this.lineHeight - this.$size.scrollerHeight));
var o = this.scrollLeft;
o > i ? (i < this.$padding + 2 * this.layerConfig.characterWidth && (i = -this.scrollMargin.left),
this.session.setScrollLeft(i)) : o + this.$size.scrollerWidth < i + this.characterWidth ? this.session.setScrollLeft(Math.round(i + this.characterWidth - this.$size.scrollerWidth)) : o <= this.$padding && i - o < this.characterWidth && this.session.setScrollLeft(0);
}
}, this.getScrollTop = function() {
return this.session.getScrollTop();
}, this.getScrollLeft = function() {
return this.session.getScrollLeft();
}, this.getScrollTopRow = function() {
return this.scrollTop / this.lineHeight;
}, this.getScrollBottomRow = function() {
return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);
}, this.scrollToRow = function(n) {
this.session.setScrollTop(n * this.lineHeight);
}, this.alignCursor = function(n, e) {
"number" == typeof n && (n = {
row: n,
column: 0
});
var t = this.$cursorLayer.getPixelPosition(n), i = this.$size.scrollerHeight - this.lineHeight, a = t.top - i * (e || 0);
return this.session.setScrollTop(a), a;
}, this.STEPS = 8, this.$calcSteps = function(n, e) {
var t = 0, i = this.STEPS, a = [], r = function(n, e, t) {
return t * (Math.pow(n - 1, 3) + 1) + e;
};
for (t = 0; i > t; ++t) a.push(r(t / this.STEPS, n, e - n));
return a;
}, this.scrollToLine = function(n, e, t, i) {
var a = this.$cursorLayer.getPixelPosition({
row: n,
column: 0
}), r = a.top;
e && (r -= this.$size.scrollerHeight / 2);
var o = this.scrollTop;
this.session.setScrollTop(r), t !== !1 && this.animateScrolling(o, i);
}, this.animateScrolling = function(n, e) {
var t = this.scrollTop;
if (this.$animatedScroll) {
var i = this;
if (n != t) {
if (this.$scrollAnimation) {
var a = this.$scrollAnimation.steps;
if (a.length && (n = a[0], n == t)) return;
}
var r = i.$calcSteps(n, t);
this.$scrollAnimation = {
from: n,
to: t,
steps: r
}, clearInterval(this.$timer), i.session.setScrollTop(r.shift()), this.$timer = setInterval(function() {
r.length ? (i.session.setScrollTop(r.shift()), i.session.$scrollTop = t) : null != t ? (i.session.$scrollTop = -1,
i.session.setScrollTop(t), t = null) : (i.$timer = clearInterval(i.$timer), i.$scrollAnimation = null,
e && e());
}, 10);
}
}
}, this.scrollToY = function(n) {
this.scrollTop !== n && (this.$loop.schedule(this.CHANGE_SCROLL), this.scrollTop = n);
}, this.scrollToX = function(n) {
this.scrollLeft !== n && (this.scrollLeft = n), this.$loop.schedule(this.CHANGE_H_SCROLL);
}, this.scrollTo = function(n, e) {
this.session.setScrollTop(e), this.session.setScrollLeft(e);
}, this.scrollBy = function(n, e) {
e && this.session.setScrollTop(this.session.getScrollTop() + e), n && this.session.setScrollLeft(this.session.getScrollLeft() + n);
}, this.isScrollableBy = function(n, e) {
return 0 > e && this.session.getScrollTop() >= 1 - this.scrollMargin.top ? !0 : e > 0 && this.session.getScrollTop() + this.$size.scrollerHeight - this.layerConfig.maxHeight - (this.$size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd < -1 + this.scrollMargin.bottom ? !0 : n ? !0 : void 0;
}, this.pixelToScreenCoordinates = function(n, e) {
var t = this.scroller.getBoundingClientRect(), i = (n + this.scrollLeft - t.left - this.$padding) / this.characterWidth, a = Math.floor((e + this.scrollTop - t.top) / this.lineHeight), r = Math.round(i);
return {
row: a,
column: r,
side: i - r > 0 ? 1 : -1
};
}, this.screenToTextCoordinates = function(n, e) {
var t = this.scroller.getBoundingClientRect(), i = Math.round((n + this.scrollLeft - t.left - this.$padding) / this.characterWidth), a = Math.floor((e + this.scrollTop - t.top) / this.lineHeight);
return this.session.screenToDocumentPosition(a, Math.max(i, 0));
}, this.textToScreenCoordinates = function(n, e) {
var t = this.scroller.getBoundingClientRect(), i = this.session.documentToScreenPosition(n, e), a = this.$padding + Math.round(i.column * this.characterWidth), r = i.row * this.lineHeight;
return {
pageX: t.left + a - this.scrollLeft,
pageY: t.top + r - this.scrollTop
};
}, this.visualizeFocus = function() {
i.addCssClass(this.container, "ace_focus");
}, this.visualizeBlur = function() {
i.removeCssClass(this.container, "ace_focus");
}, this.showComposition = function() {
this.$composition || (this.$composition = {
keepTextAreaAtCursor: this.$keepTextAreaAtCursor,
cssText: this.textarea.style.cssText
}), this.$keepTextAreaAtCursor = !0, i.addCssClass(this.textarea, "ace_composition"),
this.textarea.style.cssText = "", this.$moveTextAreaToCursor();
}, this.setCompositionText = function() {
this.$moveTextAreaToCursor();
}, this.hideComposition = function() {
this.$composition && (i.removeCssClass(this.textarea, "ace_composition"), this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor,
this.textarea.style.cssText = this.$composition.cssText, this.$composition = null);
}, this.setTheme = function(n, e) {
function t(t) {
if (a.$themeValue != n) return e && e();
if (t.cssClass) {
i.importCssString(t.cssText, t.cssClass, a.container.ownerDocument), a.theme && i.removeCssClass(a.container, a.theme.cssClass),
a.$theme = t.cssClass, a.theme = t, i.addCssClass(a.container, t.cssClass), i.setCssClass(a.container, "ace_dark", t.isDark);
var r = t.padding || 4;
a.$padding && r != a.$padding && a.setPadding(r), a.$size && (a.$size.width = 0,
a.onResize()), a._dispatchEvent("themeLoaded", {
theme: t
}), e && e();
}
}
var a = this;
if (this.$themeValue = n, a._dispatchEvent("themeChange", {
theme: n
}), n && "string" != typeof n) t(n); else {
var o = n || "ace/theme/textmate";
r.loadModule([ "theme", o ], t);
}
}, this.getTheme = function() {
return this.$themeValue;
}, this.setStyle = function(n, e) {
i.setCssClass(this.container, n, 0 != e);
}, this.unsetStyle = function(n) {
i.removeCssClass(this.container, n);
}, this.setMouseCursor = function(n) {
this.content.style.cursor = n;
}, this.destroy = function() {
this.$textLayer.destroy(), this.$cursorLayer.destroy();
};
}).call(p.prototype), r.defineOptions(p.prototype, "renderer", {
animatedScroll: {
initialValue: !1
},
showInvisibles: {
set: function(n) {
this.$textLayer.setShowInvisibles(n) && this.$loop.schedule(this.CHANGE_TEXT);
},
initialValue: !1
},
showPrintMargin: {
set: function() {
this.$updatePrintMargin();
},
initialValue: !0
},
printMarginColumn: {
set: function() {
this.$updatePrintMargin();
},
initialValue: 80
},
printMargin: {
set: function(n) {
"number" == typeof n && (this.$printMarginColumn = n), this.$showPrintMargin = !!n,
this.$updatePrintMargin();
},
get: function() {
return this.$showPrintMargin && this.$printMarginColumn;
}
},
showGutter: {
set: function(n) {
this.$gutter.style.display = n ? "block" : "none", this.onGutterResize();
},
initialValue: !0
},
fadeFoldWidgets: {
set: function(n) {
i.setCssClass(this.$gutter, "ace_fade-fold-widgets", n);
},
initialValue: !1
},
showFoldWidgets: {
set: function(n) {
this.$gutterLayer.setShowFoldWidgets(n);
},
initialValue: !0
},
displayIndentGuides: {
set: function(n) {
this.$textLayer.setDisplayIndentGuides(n) && this.$loop.schedule(this.CHANGE_TEXT);
},
initialValue: !0
},
highlightGutterLine: {
set: function(n) {
return this.$gutterLineHighlight ? (this.$gutterLineHighlight.style.display = n ? "" : "none",
this.$cursorLayer.$pixelPos && this.$updateGutterLineHighlight(), void 0) : (this.$gutterLineHighlight = i.createElement("div"),
this.$gutterLineHighlight.className = "ace_gutter-active-line", this.$gutter.appendChild(this.$gutterLineHighlight),
void 0);
},
initialValue: !1,
value: !0
},
hScrollBarAlwaysVisible: {
set: function() {
this.$hScrollBarAlwaysVisible && this.$horizScroll || this.$loop.schedule(this.CHANGE_SCROLL);
},
initialValue: !1
},
vScrollBarAlwaysVisible: {
set: function() {
this.$vScrollBarAlwaysVisible && this.$vScroll || this.$loop.schedule(this.CHANGE_SCROLL);
},
initialValue: !1
},
fontSize: {
set: function(n) {
"number" == typeof n && (n += "px"), this.container.style.fontSize = n, this.updateFontSize();
},
initialValue: 12
},
fontFamily: {
set: function(n) {
this.container.style.fontFamily = n, this.updateFontSize();
}
},
maxLines: {
set: function() {
this.updateFull();
}
},
minLines: {
set: function() {
this.updateFull();
}
},
scrollPastEnd: {
set: function(n) {
n = +n || 0, this.$scrollPastEnd != n && (this.$scrollPastEnd = n, this.$loop.schedule(this.CHANGE_SCROLL));
},
initialValue: 0,
handlesSet: !0
},
fixedWidthGutter: {
set: function(n) {
this.$gutterLayer.$fixedWidth = !!n, this.$loop.schedule(this.CHANGE_GUTTER);
}
}
}), e.VirtualRenderer = p;
}), define("ace/mouse/multi_select_handler", [ "require", "exports", "module", "../lib/event" ], function(n, e) {
function t(n, e) {
return n.row == e.row && n.column == e.column;
}
function i(n) {
var e = n.domEvent, i = e.altKey, r = e.shiftKey, o = n.getAccelKey(), s = n.getButton();
if (n.editor.inMultiSelectMode && 2 == s) return n.editor.textInput.onContextMenu(n.domEvent),
void 0;
if (!o && !i) return 0 == s && n.editor.inMultiSelectMode && n.editor.exitMultiSelectMode(),
void 0;
var l = n.editor, c = l.selection, M = l.inMultiSelectMode, u = n.getDocumentPosition(), d = c.getCursor(), h = n.inSelection() || c.isEmpty() && t(u, d), S = n.x, p = n.y, m = function(n) {
S = n.clientX, p = n.clientY;
}, g = function() {
var n = l.renderer.pixelToScreenCoordinates(S, p), e = f.screenToDocumentPosition(n.row, n.column);
t(y, n) && t(e, c.selectionLead) || (y = n, l.selection.moveCursorToPosition(e),
l.selection.clearSelection(), l.renderer.scrollCursorIntoView(), l.removeSelectionMarkers(v),
v = c.rectangularRangeBlock(y, b), v.forEach(l.addSelectionMarker, l), l.updateSelectionMarkers());
}, f = l.session, b = l.renderer.pixelToScreenCoordinates(S, p), y = b;
if (!o || r || i || 0 != s) {
if (i && 0 == s) {
n.stop(), M && !o ? c.toSingleRange() : !M && o && c.addRange();
var v = [];
r ? (b = f.documentToScreenPosition(c.lead), g()) : (c.moveCursorToPosition(u),
c.clearSelection());
var D = function() {
clearInterval(G), l.removeSelectionMarkers(v);
for (var n = 0; n < v.length; n++) c.addRange(v[n]);
}, w = g;
a.capture(l.container, m, D);
var G = setInterval(function() {
w();
}, 20);
return n.preventDefault();
}
} else {
if (!M && h) return;
if (!M) {
var k = c.toOrientedRange();
l.addSelectionMarker(k);
}
var R = c.rangeList.rangeAtPoint(u);
l.once("mouseup", function() {
var n = c.toOrientedRange();
R && n.isEmpty() && t(R.cursor, n.cursor) ? c.substractPoint(n.cursor) : (k && (l.removeSelectionMarker(k),
c.addRange(k)), c.addRange(n));
});
}
}
var a = n("../lib/event");
e.onMouseDown = i;
}), define("ace/commands/multi_select_commands", [ "require", "exports", "module", "../keyboard/hash_handler" ], function(n, e) {
e.defaultCommands = [ {
name: "addCursorAbove",
exec: function(n) {
n.selectMoreLines(-1);
},
bindKey: {
win: "Ctrl-Alt-Up",
mac: "Ctrl-Alt-Up"
},
readonly: !0
}, {
name: "addCursorBelow",
exec: function(n) {
n.selectMoreLines(1);
},
bindKey: {
win: "Ctrl-Alt-Down",
mac: "Ctrl-Alt-Down"
},
readonly: !0
}, {
name: "addCursorAboveSkipCurrent",
exec: function(n) {
n.selectMoreLines(-1, !0);
},
bindKey: {
win: "Ctrl-Alt-Shift-Up",
mac: "Ctrl-Alt-Shift-Up"
},
readonly: !0
}, {
name: "addCursorBelowSkipCurrent",
exec: function(n) {
n.selectMoreLines(1, !0);
},
bindKey: {
win: "Ctrl-Alt-Shift-Down",
mac: "Ctrl-Alt-Shift-Down"
},
readonly: !0
}, {
name: "selectMoreBefore",
exec: function(n) {
n.selectMore(-1);
},
bindKey: {
win: "Ctrl-Alt-Left",
mac: "Ctrl-Alt-Left"
},
readonly: !0
}, {
name: "selectMoreAfter",
exec: function(n) {
n.selectMore(1);
},
bindKey: {
win: "Ctrl-Alt-Right",
mac: "Ctrl-Alt-Right"
},
readonly: !0
}, {
name: "selectNextBefore",
exec: function(n) {
n.selectMore(-1, !0);
},
bindKey: {
win: "Ctrl-Alt-Shift-Left",
mac: "Ctrl-Alt-Shift-Left"
},
readonly: !0
}, {
name: "selectNextAfter",
exec: function(n) {
n.selectMore(1, !0);
},
bindKey: {
win: "Ctrl-Alt-Shift-Right",
mac: "Ctrl-Alt-Shift-Right"
},
readonly: !0
}, {
name: "splitIntoLines",
exec: function(n) {
n.multiSelect.splitIntoLines();
},
bindKey: {
win: "Ctrl-Alt-L",
mac: "Ctrl-Alt-L"
},
readonly: !0
}, {
name: "alignCursors",
exec: function(n) {
n.alignCursors();
},
bindKey: {
win: "Ctrl-Alt-A",
mac: "Ctrl-Alt-A"
}
} ], e.multiSelectCommands = [ {
name: "singleSelection",
bindKey: "esc",
exec: function(n) {
n.exitMultiSelectMode();
},
readonly: !0,
isAvailable: function(n) {
return n && n.inMultiSelectMode;
}
} ];
var t = n("../keyboard/hash_handler").HashHandler;
e.keyboardHandler = new t(e.multiSelectCommands);
}), define("ace/multi_select", [ "require", "exports", "module", "./range_list", "./range", "./selection", "./mouse/multi_select_handler", "./lib/event", "./lib/lang", "./commands/multi_select_commands", "./search", "./edit_session", "./editor", "./config" ], function(n, e) {
function t(n, e, t) {
return S.$options.wrap = !0, S.$options.needle = e, S.$options.backwards = -1 == t,
S.find(n);
}
function i(n, e) {
return n.row == e.row && n.column == e.column;
}
function a(n) {
n.$multiselectOnSessionChange || (n.$onAddRange = n.$onAddRange.bind(n), n.$onRemoveRange = n.$onRemoveRange.bind(n),
n.$onMultiSelect = n.$onMultiSelect.bind(n), n.$onSingleSelect = n.$onSingleSelect.bind(n),
n.$multiselectOnSessionChange = e.onSessionChange.bind(n), n.$multiselectOnSessionChange(n),
n.on("changeSession", n.$multiselectOnSessionChange), n.on("mousedown", c), n.commands.addCommands(d.defaultCommands),
r(n));
}
function r(n) {
function e() {
i && (n.renderer.setMouseCursor(""), i = !1);
}
var t = n.textInput.getElement(), i = !1;
M.addListener(t, "keydown", function(t) {
18 != t.keyCode || t.ctrlKey || t.shiftKey || t.metaKey ? i && e() : i || (n.renderer.setMouseCursor("crosshair"),
i = !0);
}), M.addListener(t, "keyup", e), M.addListener(t, "blur", e);
}
var o = n("./range_list").RangeList, s = n("./range").Range, l = n("./selection").Selection, c = n("./mouse/multi_select_handler").onMouseDown, M = n("./lib/event"), u = n("./lib/lang"), d = n("./commands/multi_select_commands");
e.commands = d.defaultCommands.concat(d.multiSelectCommands);
var h = n("./search").Search, S = new h(), p = n("./edit_session").EditSession;
(function() {
this.getSelectionMarkers = function() {
return this.$selectionMarkers;
};
}).call(p.prototype), function() {
this.ranges = null, this.rangeList = null, this.addRange = function(n, e) {
if (n) {
if (!this.inMultiSelectMode && 0 == this.rangeCount) {
var t = this.toOrientedRange();
if (this.rangeList.add(t), this.rangeList.add(n), 2 != this.rangeList.ranges.length) return this.rangeList.removeAll(),
e || this.fromOrientedRange(n);
this.rangeList.removeAll(), this.rangeList.add(t), this.$onAddRange(t);
}
n.cursor || (n.cursor = n.end);
var i = this.rangeList.add(n);
return this.$onAddRange(n), i.length && this.$onRemoveRange(i), this.rangeCount > 1 && !this.inMultiSelectMode && (this._emit("multiSelect"),
this.inMultiSelectMode = !0, this.session.$undoSelect = !1, this.rangeList.attach(this.session)),
e || this.fromOrientedRange(n);
}
}, this.toSingleRange = function(n) {
n = n || this.ranges[0];
var e = this.rangeList.removeAll();
e.length && this.$onRemoveRange(e), n && this.fromOrientedRange(n);
}, this.substractPoint = function(n) {
var e = this.rangeList.substractPoint(n);
return e ? (this.$onRemoveRange(e), e[0]) : void 0;
}, this.mergeOverlappingRanges = function() {
var n = this.rangeList.merge();
n.length ? this.$onRemoveRange(n) : this.ranges[0] && this.fromOrientedRange(this.ranges[0]);
}, this.$onAddRange = function(n) {
this.rangeCount = this.rangeList.ranges.length, this.ranges.unshift(n), this._emit("addRange", {
range: n
});
}, this.$onRemoveRange = function(n) {
if (this.rangeCount = this.rangeList.ranges.length, 1 == this.rangeCount && this.inMultiSelectMode) {
var e = this.rangeList.ranges.pop();
n.push(e), this.rangeCount = 0;
}
for (var t = n.length; t--; ) {
var i = this.ranges.indexOf(n[t]);
this.ranges.splice(i, 1);
}
this._emit("removeRange", {
ranges: n
}), 0 == this.rangeCount && this.inMultiSelectMode && (this.inMultiSelectMode = !1,
this._emit("singleSelect"), this.session.$undoSelect = !0, this.rangeList.detach(this.session)),
e = e || this.ranges[0], e && !e.isEqual(this.getRange()) && this.fromOrientedRange(e);
}, this.$initRangeList = function() {
this.rangeList || (this.rangeList = new o(), this.ranges = [], this.rangeCount = 0);
}, this.getAllRanges = function() {
return this.rangeCount ? this.rangeList.ranges.concat() : [ this.getRange() ];
}, this.splitIntoLines = function() {
if (this.rangeCount > 1) {
var n = this.rangeList.ranges, e = n[n.length - 1], t = s.fromPoints(n[0].start, e.end);
this.toSingleRange(), this.setSelectionRange(t, e.cursor == e.start);
} else {
var t = this.getRange(), i = this.isBackwards(), a = t.start.row, r = t.end.row;
if (a == r) {
if (i) var o = t.end, l = t.start; else var o = t.start, l = t.end;
return this.addRange(s.fromPoints(l, l)), this.addRange(s.fromPoints(o, o)), void 0;
}
var c = [], M = this.getLineRange(a, !0);
M.start.column = t.start.column, c.push(M);
for (var u = a + 1; r > u; u++) c.push(this.getLineRange(u, !0));
M = this.getLineRange(r, !0), M.end.column = t.end.column, c.push(M), c.forEach(this.addRange, this);
}
}, this.toggleBlockSelection = function() {
if (this.rangeCount > 1) {
var n = this.rangeList.ranges, e = n[n.length - 1], t = s.fromPoints(n[0].start, e.end);
this.toSingleRange(), this.setSelectionRange(t, e.cursor == e.start);
} else {
var i = this.session.documentToScreenPosition(this.selectionLead), a = this.session.documentToScreenPosition(this.selectionAnchor), r = this.rectangularRangeBlock(i, a);
r.forEach(this.addRange, this);
}
}, this.rectangularRangeBlock = function(n, e, t) {
var a = [], r = n.column < e.column;
if (r) var o = n.column, l = e.column; else var o = e.column, l = n.column;
var c = n.row < e.row;
if (c) var M = n.row, u = e.row; else var M = e.row, u = n.row;
0 > o && (o = 0), 0 > M && (M = 0), M == u && (t = !0);
for (var d = M; u >= d; d++) {
var h = s.fromPoints(this.session.screenToDocumentPosition(d, o), this.session.screenToDocumentPosition(d, l));
if (h.isEmpty()) {
if (S && i(h.end, S)) break;
var S = h.end;
}
h.cursor = r ? h.start : h.end, a.push(h);
}
if (c && a.reverse(), !t) {
for (var p = a.length - 1; a[p].isEmpty() && p > 0; ) p--;
if (p > 0) for (var m = 0; a[m].isEmpty(); ) m++;
for (var g = p; g >= m; g--) a[g].isEmpty() && a.splice(g, 1);
}
return a;
};
}.call(l.prototype);
var m = n("./editor").Editor;
(function() {
this.updateSelectionMarkers = function() {
this.renderer.updateCursor(), this.renderer.updateBackMarkers();
}, this.addSelectionMarker = function(n) {
n.cursor || (n.cursor = n.end);
var e = this.getSelectionStyle();
return n.marker = this.session.addMarker(n, "ace_selection", e), this.session.$selectionMarkers.push(n),
this.session.selectionMarkerCount = this.session.$selectionMarkers.length, n;
}, this.removeSelectionMarker = function(n) {
if (n.marker) {
this.session.removeMarker(n.marker);
var e = this.session.$selectionMarkers.indexOf(n);
-1 != e && this.session.$selectionMarkers.splice(e, 1), this.session.selectionMarkerCount = this.session.$selectionMarkers.length;
}
}, this.removeSelectionMarkers = function(n) {
for (var e = this.session.$selectionMarkers, t = n.length; t--; ) {
var i = n[t];
if (i.marker) {
this.session.removeMarker(i.marker);
var a = e.indexOf(i);
-1 != a && e.splice(a, 1);
}
}
this.session.selectionMarkerCount = e.length;
}, this.$onAddRange = function(n) {
this.addSelectionMarker(n.range), this.renderer.updateCursor(), this.renderer.updateBackMarkers();
}, this.$onRemoveRange = function(n) {
this.removeSelectionMarkers(n.ranges), this.renderer.updateCursor(), this.renderer.updateBackMarkers();
}, this.$onMultiSelect = function() {
this.inMultiSelectMode || (this.inMultiSelectMode = !0, this.setStyle("ace_multiselect"),
this.keyBinding.addKeyboardHandler(d.keyboardHandler), this.commands.setDefaultHandler("exec", this.$onMultiSelectExec),
this.renderer.updateCursor(), this.renderer.updateBackMarkers());
}, this.$onSingleSelect = function() {
this.session.multiSelect.inVirtualMode || (this.inMultiSelectMode = !1, this.unsetStyle("ace_multiselect"),
this.keyBinding.removeKeyboardHandler(d.keyboardHandler), this.commands.removeDefaultHandler("exec", this.$onMultiSelectExec),
this.renderer.updateCursor(), this.renderer.updateBackMarkers());
}, this.$onMultiSelectExec = function(n) {
var e = n.command, t = n.editor;
if (t.multiSelect) {
if (e.multiSelectAction) "forEach" == e.multiSelectAction ? i = t.forEachSelection(e, n.args) : "forEachLine" == e.multiSelectAction ? i = t.forEachSelection(e, n.args, !0) : "single" == e.multiSelectAction ? (t.exitMultiSelectMode(),
i = e.exec(t, n.args || {})) : i = e.multiSelectAction(t, n.args || {}); else {
var i = e.exec(t, n.args || {});
t.multiSelect.addRange(t.multiSelect.toOrientedRange()), t.multiSelect.mergeOverlappingRanges();
}
return i;
}
}, this.forEachSelection = function(n, e, t) {
if (!this.inVirtualSelectionMode) {
var i, a = this.session, r = this.selection, o = r.rangeList, s = r._eventRegistry;
r._eventRegistry = {};
var c = new l(a);
this.inVirtualSelectionMode = !0;
for (var M = o.ranges.length; M--; ) {
if (t) for (;M > 0 && o.ranges[M].start.row == o.ranges[M - 1].end.row; ) M--;
c.fromOrientedRange(o.ranges[M]), this.selection = a.selection = c;
var u = n.exec(this, e || {});
void 0 == !i && (i = u), c.toOrientedRange(o.ranges[M]);
}
c.detach(), this.selection = a.selection = r, this.inVirtualSelectionMode = !1,
r._eventRegistry = s, r.mergeOverlappingRanges();
var d = this.renderer.$scrollAnimation;
return this.onCursorChange(), this.onSelectionChange(), d && d.from == d.to && this.renderer.animateScrolling(d.from),
i;
}
}, this.exitMultiSelectMode = function() {
this.inMultiSelectMode && !this.inVirtualSelectionMode && this.multiSelect.toSingleRange();
}, this.getSelectedText = function() {
var n = "";
if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {
for (var e = this.multiSelect.rangeList.ranges, t = [], i = 0; i < e.length; i++) t.push(this.session.getTextRange(e[i]));
var a = this.session.getDocument().getNewLineCharacter();
n = t.join(a), n.length == (t.length - 1) * a.length && (n = "");
} else this.selection.isEmpty() || (n = this.session.getTextRange(this.getSelectionRange()));
return n;
}, this.onPaste = function(n) {
if (!this.$readOnly) {
if (this._signal("paste", n), !this.inMultiSelectMode || this.inVirtualSelectionMode) return this.insert(n);
var e = n.split(/\r\n|\r|\n/), t = this.selection.rangeList.ranges;
if (e.length > t.length || e.length < 2 || !e[1]) return this.commands.exec("insertstring", this, n);
for (var i = t.length; i--; ) {
var a = t[i];
a.isEmpty() || this.session.remove(a), this.session.insert(a.start, e[i]);
}
}
}, this.findAll = function(n, e, t) {
e = e || {}, e.needle = n || e.needle, this.$search.set(e);
var i = this.$search.findAll(this.session);
if (!i.length) return 0;
this.$blockScrolling += 1;
var a = this.multiSelect;
t || a.toSingleRange(i[0]);
for (var r = i.length; r--; ) a.addRange(i[r], !0);
return this.$blockScrolling -= 1, i.length;
}, this.selectMoreLines = function(n, e) {
var t = this.selection.toOrientedRange(), i = t.cursor == t.end, a = this.session.documentToScreenPosition(t.cursor);
this.selection.$desiredColumn && (a.column = this.selection.$desiredColumn);
var r = this.session.screenToDocumentPosition(a.row + n, a.column);
if (t.isEmpty()) var o = r; else var l = this.session.documentToScreenPosition(i ? t.end : t.start), o = this.session.screenToDocumentPosition(l.row + n, l.column);
if (i) {
var c = s.fromPoints(r, o);
c.cursor = c.start;
} else {
var c = s.fromPoints(o, r);
c.cursor = c.end;
}
if (c.desiredColumn = a.column, this.selection.inMultiSelectMode) {
if (e) var M = t.cursor;
} else this.selection.addRange(t);
this.selection.addRange(c), M && this.selection.substractPoint(M);
}, this.transposeSelections = function(n) {
for (var e = this.session, t = e.multiSelect, i = t.ranges, a = i.length; a--; ) {
var r = i[a];
if (r.isEmpty()) {
var o = e.getWordRange(r.start.row, r.start.column);
r.start.row = o.start.row, r.start.column = o.start.column, r.end.row = o.end.row,
r.end.column = o.end.column;
}
}
t.mergeOverlappingRanges();
for (var s = [], a = i.length; a--; ) {
var r = i[a];
s.unshift(e.getTextRange(r));
}
0 > n ? s.unshift(s.pop()) : s.push(s.shift());
for (var a = i.length; a--; ) {
var r = i[a], o = r.clone();
e.replace(r, s[a]), r.start.row = o.start.row, r.start.column = o.start.column;
}
}, this.selectMore = function(n, e) {
var i = this.session, a = i.multiSelect, r = a.toOrientedRange();
if (r.isEmpty()) {
var r = i.getWordRange(r.start.row, r.start.column);
r.cursor = r.end, this.multiSelect.addRange(r);
}
var o = i.getTextRange(r), s = t(i, o, n);
s && (s.cursor = -1 == n ? s.start : s.end, this.multiSelect.addRange(s)), e && this.multiSelect.substractPoint(r.cursor);
}, this.alignCursors = function() {
var n = this.session, e = n.multiSelect, t = e.ranges;
if (t.length) {
var i = -1, a = t.filter(function(n) {
return n.cursor.row == i ? !0 : (i = n.cursor.row, void 0);
});
e.$onRemoveRange(a);
var r = 0, o = 1/0, l = t.map(function(e) {
var t = e.cursor, i = n.getLine(t.row), a = i.substr(t.column).search(/\S/g);
return -1 == a && (a = 0), t.column > r && (r = t.column), o > a && (o = a), a;
});
t.forEach(function(e, t) {
var i = e.cursor, a = r - i.column, c = l[t] - o;
a > c ? n.insert(i, u.stringRepeat(" ", a - c)) : n.remove(new s(i.row, i.column, i.row, i.column - a + c)),
e.start.column = e.end.column = r, e.start.row = e.end.row = i.row, e.cursor = e.end;
}), e.fromOrientedRange(t[0]), this.renderer.updateCursor(), this.renderer.updateBackMarkers();
} else {
var c = this.selection.getRange(), M = c.start.row, d = c.end.row, h = this.session.doc.removeLines(M, d);
h = this.$reAlignText(h), this.session.doc.insertLines(M, h), c.start.column = 0,
c.end.column = h[h.length - 1].length, this.selection.setRange(c);
}
}, this.$reAlignText = function(n) {
function e(n) {
return u.stringRepeat(" ", n);
}
function t(n) {
return n[2] ? e(r) + n[2] + e(o - n[2].length + s) + n[4].replace(/^([=:])\s+/, "$1 ") : n[0];
}
function i(n) {
return n[2] ? e(r + o - n[2].length) + n[2] + e(s, " ") + n[4].replace(/^([=:])\s+/, "$1 ") : n[0];
}
function a(n) {
return n[2] ? e(r) + n[2] + e(s) + n[4].replace(/^([=:])\s+/, "$1 ") : n[0];
}
var r, o, s, l = !0, c = !0;
return n.map(function(n) {
var e = n.match(/(\s*)(.*?)(\s*)([=:].*)/);
return e ? null == r ? (r = e[1].length, o = e[2].length, s = e[3].length, e) : (r + o + s != e[1].length + e[2].length + e[3].length && (c = !1),
r != e[1].length && (l = !1), r > e[1].length && (r = e[1].length), o < e[2].length && (o = e[2].length),
s > e[3].length && (s = e[3].length), e) : [ n ];
}).map(l ? c ? i : t : a);
};
}).call(m.prototype), e.onSessionChange = function(n) {
var e = n.session;
e.multiSelect || (e.$selectionMarkers = [], e.selection.$initRangeList(), e.multiSelect = e.selection),
this.multiSelect = e.multiSelect;
var t = n.oldSession;
t && (t.multiSelect.removeEventListener("addRange", this.$onAddRange), t.multiSelect.removeEventListener("removeRange", this.$onRemoveRange),
t.multiSelect.removeEventListener("multiSelect", this.$onMultiSelect), t.multiSelect.removeEventListener("singleSelect", this.$onSingleSelect)),
e.multiSelect.on("addRange", this.$onAddRange), e.multiSelect.on("removeRange", this.$onRemoveRange),
e.multiSelect.on("multiSelect", this.$onMultiSelect), e.multiSelect.on("singleSelect", this.$onSingleSelect),
this.inMultiSelectMode != e.selection.inMultiSelectMode && (e.selection.inMultiSelectMode ? this.$onMultiSelect() : this.$onSingleSelect());
}, e.MultiSelect = a, n("./config").defineOptions(m.prototype, "editor", {
enableMultiselect: {
set: function(n) {
a(this), n ? (this.on("changeSession", this.$multiselectOnSessionChange), this.on("mousedown", c)) : (this.off("changeSession", this.$multiselectOnSessionChange),
this.off("mousedown", c));
},
value: !0
}
});
}), define("ace/worker/worker_client", [ "require", "exports", "module", "../lib/oop", "../lib/event_emitter", "../config" ], function(n, e) {
var t = n("../lib/oop"), i = n("../lib/event_emitter").EventEmitter, a = n("../config"), r = function(e, t, i) {
this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this), this.changeListener = this.changeListener.bind(this),
this.onMessage = this.onMessage.bind(this), this.onError = this.onError.bind(this),
n.nameToUrl && !n.toUrl && (n.toUrl = n.nameToUrl);
var r;
if (a.get("packaged") || !n.toUrl) r = a.moduleUrl(t, "worker"); else {
var o = this.$normalizePath;
r = o(n.toUrl("ace/worker/worker.js", null, "_"));
var s = {};
e.forEach(function(e) {
s[e] = o(n.toUrl(e, null, "_").replace(/(\.js)?(\?.*)?$/, ""));
});
}
this.$worker = new Worker(r), this.$worker.postMessage({
init: !0,
tlns: s,
module: t,
classname: i
}), this.callbackId = 1, this.callbacks = {}, this.$worker.onerror = this.onError,
this.$worker.onmessage = this.onMessage;
};
(function() {
t.implement(this, i), this.onError = function(n) {
throw window.console && console.log && console.log(n), n;
}, this.onMessage = function(n) {
var e = n.data;
switch (e.type) {
case "log":
window.console && console.log && console.log.apply(console, e.data);
break;
case "event":
this._emit(e.name, {
data: e.data
});
break;
case "call":
var t = this.callbacks[e.id];
t && (t(e.data), delete this.callbacks[e.id]);
}
}, this.$normalizePath = function(n) {
return location.host ? (n = n.replace(/^[a-z]+:\/\/[^\/]+/, ""), n = location.protocol + "//" + location.host + ("/" == n.charAt(0) ? "" : location.pathname.replace(/\/[^\/]*$/, "")) + "/" + n.replace(/^[\/]+/, "")) : n;
}, this.terminate = function() {
this._emit("terminate", {}), this.deltaQueue = null, this.$worker.terminate(), this.$worker = null,
this.$doc.removeEventListener("change", this.changeListener), this.$doc = null;
}, this.send = function(n, e) {
this.$worker.postMessage({
command: n,
args: e
});
}, this.call = function(n, e, t) {
if (t) {
var i = this.callbackId++;
this.callbacks[i] = t, e.push(i);
}
this.send(n, e);
}, this.emit = function(n, e) {
try {
this.$worker.postMessage({
event: n,
data: {
data: e.data
}
});
} catch (t) {}
}, this.attachToDocument = function(n) {
this.$doc && this.terminate(), this.$doc = n, this.call("setValue", [ n.getValue() ]),
n.on("change", this.changeListener);
}, this.changeListener = function(n) {
this.deltaQueue ? this.deltaQueue.push(n.data) : (this.deltaQueue = [ n.data ],
setTimeout(this.$sendDeltaQueue, 1));
}, this.$sendDeltaQueue = function() {
var n = this.deltaQueue;
n && (this.deltaQueue = null, n.length > 20 && n.length > this.$doc.getLength() >> 1 ? this.call("setValue", [ this.$doc.getValue() ]) : this.emit("change", {
data: n
}));
};
}).call(r.prototype);
var o = function(n, e, t) {
this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this), this.changeListener = this.changeListener.bind(this),
this.callbackId = 1, this.callbacks = {}, this.messageBuffer = [];
var r = null, o = Object.create(i), s = this;
this.$worker = {}, this.$worker.terminate = function() {}, this.$worker.postMessage = function(n) {
s.messageBuffer.push(n), r && setTimeout(l);
};
var l = function() {
var n = s.messageBuffer.shift();
n.command ? r[n.command].apply(r, n.args) : n.event && o._emit(n.event, n.data);
};
o.postMessage = function(n) {
s.onMessage({
data: n
});
}, o.callback = function(n, e) {
this.postMessage({
type: "call",
id: e,
data: n
});
}, o.emit = function(n, e) {
this.postMessage({
type: "event",
name: n,
data: e
});
}, a.loadModule([ "worker", e ], function(n) {
for (r = new n[t](o); s.messageBuffer.length; ) l();
});
};
o.prototype = r.prototype, e.UIWorkerClient = o, e.WorkerClient = r;
}), define("ace/placeholder", [ "require", "exports", "module", "./range", "./lib/event_emitter", "./lib/oop" ], function(n, e) {
var t = n("./range").Range, i = n("./lib/event_emitter").EventEmitter, a = n("./lib/oop"), r = function(n, e, t, i, a, r) {
var o = this;
this.length = e, this.session = n, this.doc = n.getDocument(), this.mainClass = a,
this.othersClass = r, this.$onUpdate = this.onUpdate.bind(this), this.doc.on("change", this.$onUpdate),
this.$others = i, this.$onCursorChange = function() {
setTimeout(function() {
o.onCursorChange();
});
}, this.$pos = t;
var s = n.getUndoManager().$undoStack || n.getUndoManager().$undostack || {
length: -1
};
this.$undoStackDepth = s.length, this.setup(), n.selection.on("changeCursor", this.$onCursorChange);
};
(function() {
a.implement(this, i), this.setup = function() {
var n = this, e = this.doc, i = this.session, a = this.$pos;
this.pos = e.createAnchor(a.row, a.column), this.markerId = i.addMarker(new t(a.row, a.column, a.row, a.column + this.length), this.mainClass, null, !1),
this.pos.on("change", function(e) {
i.removeMarker(n.markerId), n.markerId = i.addMarker(new t(e.value.row, e.value.column, e.value.row, e.value.column + n.length), n.mainClass, null, !1);
}), this.others = [], this.$others.forEach(function(t) {
var i = e.createAnchor(t.row, t.column);
n.others.push(i);
}), i.setUndoSelect(!1);
}, this.showOtherMarkers = function() {
if (!this.othersActive) {
var n = this.session, e = this;
this.othersActive = !0, this.others.forEach(function(i) {
i.markerId = n.addMarker(new t(i.row, i.column, i.row, i.column + e.length), e.othersClass, null, !1),
i.on("change", function(a) {
n.removeMarker(i.markerId), i.markerId = n.addMarker(new t(a.value.row, a.value.column, a.value.row, a.value.column + e.length), e.othersClass, null, !1);
});
});
}
}, this.hideOtherMarkers = function() {
if (this.othersActive) {
this.othersActive = !1;
for (var n = 0; n < this.others.length; n++) this.session.removeMarker(this.others[n].markerId);
}
}, this.onUpdate = function(n) {
var e = n.data, i = e.range;
if (i.start.row === i.end.row && i.start.row === this.pos.row && !this.$updating) {
this.$updating = !0;
var a = "insertText" === e.action ? i.end.column - i.start.column : i.start.column - i.end.column;
if (i.start.column >= this.pos.column && i.start.column <= this.pos.column + this.length + 1) {
var r = i.start.column - this.pos.column;
if (this.length += a, !this.session.$fromUndo) {
if ("insertText" === e.action) for (var o = this.others.length - 1; o >= 0; o--) {
var s = this.others[o], l = {
row: s.row,
column: s.column + r
};
s.row === i.start.row && i.start.column < s.column && (l.column += a), this.doc.insert(l, e.text);
} else if ("removeText" === e.action) for (var o = this.others.length - 1; o >= 0; o--) {
var s = this.others[o], l = {
row: s.row,
column: s.column + r
};
s.row === i.start.row && i.start.column < s.column && (l.column += a), this.doc.remove(new t(l.row, l.column, l.row, l.column - a));
}
i.start.column === this.pos.column && "insertText" === e.action ? setTimeout(function() {
this.pos.setPosition(this.pos.row, this.pos.column - a);
for (var n = 0; n < this.others.length; n++) {
var e = this.others[n], t = {
row: e.row,
column: e.column - a
};
e.row === i.start.row && i.start.column < e.column && (t.column += a), e.setPosition(t.row, t.column);
}
}.bind(this), 0) : i.start.column === this.pos.column && "removeText" === e.action && setTimeout(function() {
for (var n = 0; n < this.others.length; n++) {
var e = this.others[n];
e.row === i.start.row && i.start.column < e.column && e.setPosition(e.row, e.column - a);
}
}.bind(this), 0);
}
this.pos._emit("change", {
value: this.pos
});
for (var o = 0; o < this.others.length; o++) this.others[o]._emit("change", {
value: this.others[o]
});
}
this.$updating = !1;
}
}, this.onCursorChange = function(n) {
if (!this.$updating) {
var e = this.session.selection.getCursor();
e.row === this.pos.row && e.column >= this.pos.column && e.column <= this.pos.column + this.length ? (this.showOtherMarkers(),
this._emit("cursorEnter", n)) : (this.hideOtherMarkers(), this._emit("cursorLeave", n));
}
}, this.detach = function() {
this.session.removeMarker(this.markerId), this.hideOtherMarkers(), this.doc.removeEventListener("change", this.$onUpdate),
this.session.selection.removeEventListener("changeCursor", this.$onCursorChange),
this.pos.detach();
for (var n = 0; n < this.others.length; n++) this.others[n].detach();
this.session.setUndoSelect(!0);
}, this.cancel = function() {
if (-1 === this.$undoStackDepth) throw Error("Canceling placeholders only supported with undo manager attached to session.");
for (var n = this.session.getUndoManager(), e = (n.$undoStack || n.$undostack).length - this.$undoStackDepth, t = 0; e > t; t++) n.undo(!0);
};
}).call(r.prototype), e.PlaceHolder = r;
}), define("ace/mode/folding/fold_mode", [ "require", "exports", "module", "../../range" ], function(n, e) {
var t = n("../../range").Range, i = e.FoldMode = function() {};
(function() {
this.foldingStartMarker = null, this.foldingStopMarker = null, this.getFoldWidget = function(n, e, t) {
var i = n.getLine(t);
return this.foldingStartMarker.test(i) ? "start" : "markbeginend" == e && this.foldingStopMarker && this.foldingStopMarker.test(i) ? "end" : "";
}, this.getFoldWidgetRange = function() {
return null;
}, this.indentationBlock = function(n, e, i) {
var a = /\S/, r = n.getLine(e), o = r.search(a);
if (-1 != o) {
for (var s = i || r.length, l = n.getLength(), c = e, M = e; ++e < l; ) {
var u = n.getLine(e).search(a);
if (-1 != u) {
if (o >= u) break;
M = e;
}
}
if (M > c) {
var d = n.getLine(M).length;
return new t(c, s, M, d);
}
}
}, this.openingBracketBlock = function(n, e, i, a, r) {
var o = {
row: i,
column: a + 1
}, s = n.$findClosingBracket(e, o, r);
if (s) {
var l = n.foldWidgets[s.row];
return null == l && (l = this.getFoldWidget(n, s.row)), "start" == l && s.row > o.row && (s.row--,
s.column = n.getLine(s.row).length), t.fromPoints(o, s);
}
}, this.closingBracketBlock = function(n, e, i, a) {
var r = {
row: i,
column: a
}, o = n.$findOpeningBracket(e, r);
return o ? (o.column++, r.column--, t.fromPoints(o, r)) : void 0;
};
}).call(i.prototype);
}), define("ace/theme/textmate", [ "require", "exports", "module", "../requirejs/text!./textmate.css", "../lib/dom" ], function(n, e) {
e.isDark = !1, e.cssClass = "ace-tm", e.cssText = n("../requirejs/text!./textmate.css");
var t = n("../lib/dom");
t.importCssString(e.cssText, e.cssClass);
}), define("ace/ace", [ "require", "exports", "module", "./lib/fixoldbrowsers", "./lib/dom", "./lib/event", "./editor", "./edit_session", "./undomanager", "./virtual_renderer", "./multi_select", "./worker/worker_client", "./keyboard/hash_handler", "./placeholder", "./mode/folding/fold_mode", "./theme/textmate", "./config" ], function(n, e) {
n("./lib/fixoldbrowsers");
var t = n("./lib/dom"), i = n("./lib/event"), a = n("./editor").Editor, r = n("./edit_session").EditSession, o = n("./undomanager").UndoManager, s = n("./virtual_renderer").VirtualRenderer, l = n("./multi_select").MultiSelect;
n("./worker/worker_client"), n("./keyboard/hash_handler"), n("./placeholder"), n("./mode/folding/fold_mode"),
n("./theme/textmate"), e.config = n("./config"), e.require = n, e.edit = function(n) {
if ("string" == typeof n) {
var r = n, n = document.getElementById(r);
if (!n) throw "ace.edit can't find div #" + r;
}
if (n.env && n.env.editor instanceof a) return n.env.editor;
var o = e.createEditSession(t.getInnerText(n));
n.innerHTML = "";
var c = new a(new s(n));
new l(c), c.setSession(o);
var M = {
document: o,
editor: c,
onResize: c.resize.bind(c, null)
};
return i.addListener(window, "resize", M.onResize), c.on("destroy", function() {
i.removeListener(window, "resize", M.onResize);
}), n.env = c.env = M, c;
}, e.createEditSession = function(n, e) {
var t = new r(n, e);
return t.setUndoManager(new o()), t;
}, e.EditSession = r, e.UndoManager = o;
}), define("ace", [ "ace/ace" ], function(n) {
return n;
}), function(n) {
var e;
"function" == typeof define ? define("xregexp", n) : "object" == typeof exports ? (e = n(),
("object" == typeof module ? module.exports = e : exports).XRegExp = e) : XRegExp = n();
}(function() {
var n = function(n) {
function e(n, e, t) {
var i;
if (t) if (n.__proto__) n.__proto__ = m.prototype; else for (i in m.prototype) n[i] = m.prototype[i];
return n[f] = {
captureNames: e
}, n;
}
function t(n) {
return y.replace.call(n, /([\s\S])(?=[\s\S]*\1)/g, "");
}
function i(n, i) {
if (!m.isRegExp(n)) throw new TypeError("Type RegExp expected");
var a = y.exec.call(/\/([a-z]*)$/i, String(n))[1];
return i = i || {}, i.add && (a = t(a + i.add)), i.remove && (a = y.replace.call(a, new RegExp("[" + i.remove + "]+", "g"), "")),
n = e(new RegExp(n.source, a), r(n) ? n[f].captureNames.slice(0) : null, i.addProto);
}
function a() {
return {
captureNames: null
};
}
function r(n) {
return !(!n[f] || !n[f].captureNames);
}
function o(n, e) {
if (Array.prototype.indexOf) return n.indexOf(e);
var t, i = n.length;
for (t = 0; i > t; ++t) if (n[t] === e) return t;
return -1;
}
function s(n, e) {
return T.call(n) === "[object " + e + "]";
}
function l(n, e, t) {
return y.test.call(t.indexOf("x") > -1 ? /^(?:\s+|#.*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/ : /^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/, n.slice(e));
}
function c(n, e) {
var i;
if (t(e) !== e) throw new SyntaxError("Invalid duplicate regex flag " + e);
for (n = y.replace.call(n, /^\(\?([\w$]+)\)/, function(n, i) {
if (y.test.call(/[gy]/, i)) throw new SyntaxError("Cannot use flag g or y in mode modifier " + n);
return e = t(e + i), "";
}), i = 0; i < e.length; ++i) if (!P[e.charAt(i)]) throw new SyntaxError("Unknown regex flag " + e.charAt(i));
return {
pattern: n,
flags: e
};
}
function M(n) {
return n = n || {}, s(n, "String") && (n = m.forEach(n, /[^\s,]+/, function(n) {
this[n] = !0;
}, {})), n;
}
function u(n) {
if (!/^[\w$]$/.test(n)) throw new Error("Flag must be a single character A-Za-z0-9_$");
P[n] = !0;
}
function d(n, e, t, i, a) {
for (var r, o, s = G.length, l = null; s--; ) if (o = G[s], (o.scope === i || "all" === o.scope) && (!o.flag || e.indexOf(o.flag) > -1) && (r = m.exec(n, o.regex, t, "sticky"))) {
l = {
matchLength: r[0].length,
output: o.handler.call(a, r, i, e),
reparse: o.reparse
};
break;
}
return l;
}
function h(n) {
m.cache.flush("patterns"), b.astral = n;
}
function S(n) {
RegExp.prototype.exec = (n ? v : y).exec, RegExp.prototype.test = (n ? v : y).test,
String.prototype.match = (n ? v : y).match, String.prototype.replace = (n ? v : y).replace,
String.prototype.split = (n ? v : y).split, b.natives = n;
}
function p(n) {
if (null == n) throw new TypeError("Cannot convert null or undefined to object");
return n;
}
var m, g, f = "xregexp", b = {
astral: !1,
natives: !1
}, y = {
exec: RegExp.prototype.exec,
test: RegExp.prototype.test,
match: String.prototype.match,
replace: String.prototype.replace,
split: String.prototype.split
}, v = {}, D = {}, w = {}, G = [], k = "default", R = "class", C = {
"default": /\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,
"class": /\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|[\s\S]/
}, A = /\$(?:{([\w$]+)}|(\d\d?|[\s\S]))/g, x = y.exec.call(/()??/, "")[1] === n, E = RegExp.prototype.sticky !== n, P = {
g: !0,
i: !0,
m: !0,
y: E
}, T = {}.toString;
return m = function(t, a) {
var r, o, s, l = {
hasNamedCapture: !1,
captureNames: []
}, M = k, u = "", h = 0;
if (m.isRegExp(t)) {
if (a !== n) throw new TypeError("Cannot supply flags when copying a RegExp");
return i(t, {
addProto: !0
});
}
if (t = t === n ? "" : String(t), a = a === n ? "" : String(a), s = t + "***" + a,
!w[s]) {
for (r = c(t, a), t = r.pattern, a = r.flags; h < t.length; ) {
do r = d(t, a, h, M, l), r && r.reparse && (t = t.slice(0, h) + r.output + t.slice(h + r.matchLength)); while (r && r.reparse);
r ? (u += r.output, h += r.matchLength || 1) : (o = m.exec(t, C[M], h, "sticky")[0],
u += o, h += o.length, "[" === o && M === k ? M = R : "]" === o && M === R && (M = k));
}
w[s] = {
pattern: y.replace.call(u, /\(\?:\)(?=\(\?:\))|^\(\?:\)|\(\?:\)$/g, ""),
flags: y.replace.call(a, /[^gimy]+/g, ""),
captures: l.hasNamedCapture ? l.captureNames : null
};
}
return s = w[s], e(new RegExp(s.pattern, s.flags), s.captures, !0);
}, m.prototype = new RegExp(), m.version = "3.0.0-pre", m.addToken = function(n, e, t) {
t = t || {};
var a, r = t.optionalFlags;
if (t.flag && u(t.flag), r) for (r = y.split.call(r, ""), a = 0; a < r.length; ++a) u(r[a]);
G.push({
regex: i(n, {
add: "g" + (E ? "y" : "")
}),
handler: e,
scope: t.scope || k,
flag: t.flag,
reparse: t.reparse
}), m.cache.flush("patterns");
}, m.cache = function(n, e) {
var t = n + "***" + (e || "");
return D[t] || (D[t] = m(n, e));
}, m.cache.flush = function(n) {
"patterns" === n ? w = {} : D = {};
}, m.escape = function(n) {
return y.replace.call(p(n), /[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
}, m.exec = function(n, e, t, r) {
var o, s, l = "g";
return E && (r || e.sticky && r !== !1) && (l += "y"), e[f] = e[f] || a(), s = e[f][l] || (e[f][l] = i(e, {
add: l,
remove: r === !1 ? "y" : ""
})), s.lastIndex = t = t || 0, o = v.exec.call(s, n), r && o && o.index !== t && (o = null),
e.global && (e.lastIndex = o ? s.lastIndex : 0), o;
}, m.forEach = function(n, e, t, i) {
for (var a, r = 0, o = -1; a = m.exec(n, e, r); ) t.call(i, a, ++o, n, e), r = a.index + (a[0].length || 1);
return i;
}, m.globalize = function(n) {
return i(n, {
add: "g",
addProto: !0
});
}, m.install = function(n) {
n = M(n), !b.astral && n.astral && h(!0), !b.natives && n.natives && S(!0);
}, m.isInstalled = function(n) {
return !!b[n];
}, m.isRegExp = function(n) {
return "[object RegExp]" === T.call(n);
}, m.match = function(n, e, t) {
var r, o, s = e.global && "one" !== t || "all" === t, l = (s ? "g" : "") + (e.sticky ? "y" : "");
return e[f] = e[f] || a(), o = e[f][l || "noGY"] || (e[f][l || "noGY"] = i(e, {
add: l,
remove: "one" === t ? "g" : ""
})), r = y.match.call(p(n), o), e.global && (e.lastIndex = "one" === t && r ? r.index + r[0].length : 0),
s ? r || [] : r && r[0];
}, m.matchChain = function(n, e) {
return function t(n, i) {
var a, r = e[i].regex ? e[i] : {
regex: e[i]
}, o = [], s = function(n) {
if (r.backref) {
if (!(n.hasOwnProperty(r.backref) || +r.backref < n.length)) throw new ReferenceError("Backreference to undefined group: " + r.backref);
o.push(n[r.backref] || "");
} else o.push(n[0]);
};
for (a = 0; a < n.length; ++a) m.forEach(n[a], r.regex, s);
return i !== e.length - 1 && o.length ? t(o, i + 1) : o;
}([ n ], 0);
}, m.replace = function(n, e, t, r) {
var o, s = m.isRegExp(e), l = e.global && "one" !== r || "all" === r, c = (l ? "g" : "") + (e.sticky ? "y" : ""), M = e;
return s ? (e[f] = e[f] || a(), M = e[f][c || "noGY"] || (e[f][c || "noGY"] = i(e, {
add: c,
remove: "one" === r ? "g" : ""
}))) : l && (M = new RegExp(m.escape(String(e)), "g")), o = v.replace.call(p(n), M, t),
s && e.global && (e.lastIndex = 0), o;
}, m.replaceEach = function(n, e) {
var t, i;
for (t = 0; t < e.length; ++t) i = e[t], n = m.replace(n, i[0], i[1], i[2]);
return n;
}, m.split = function(n, e, t) {
return v.split.call(p(n), e, t);
}, m.test = function(n, e, t, i) {
return !!m.exec(n, e, t, i);
}, m.uninstall = function(n) {
n = M(n), b.astral && n.astral && h(!1), b.natives && n.natives && S(!1);
}, m.union = function(n, e) {
var t, i, a, r, o = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*]/g, l = [], c = 0, M = function(n, e, a) {
var r = i[c - t];
if (e) {
if (++c, r) return "(?<" + r + ">";
} else if (a) return "\\" + (+a + t);
return n;
};
if (!s(n, "Array") || !n.length) throw new TypeError("Must provide a nonempty array of patterns to merge");
for (r = 0; r < n.length; ++r) a = n[r], m.isRegExp(a) ? (t = c, i = a[f] && a[f].captureNames || [],
l.push(y.replace.call(m(a.source).source, o, M))) : l.push(m.escape(a));
return m(l.join("|"), e);
}, v.exec = function(e) {
var t, a, r, s = this.lastIndex, l = y.exec.apply(this, arguments);
if (l) {
if (!x && l.length > 1 && o(l, "") > -1 && (a = i(this, {
remove: "g"
}), y.replace.call(String(e).slice(l.index), a, function() {
var e, t = arguments.length;
for (e = 1; t - 2 > e; ++e) arguments[e] === n && (l[e] = n);
})), this[f] && this[f].captureNames) for (r = 1; r < l.length; ++r) t = this[f].captureNames[r - 1],
t && (l[t] = l[r]);
this.global && !l[0].length && this.lastIndex > l.index && (this.lastIndex = l.index);
}
return this.global || (this.lastIndex = s), l;
}, v.test = function(n) {
return !!v.exec.call(this, n);
}, v.match = function(n) {
var e;
if (m.isRegExp(n)) {
if (n.global) return e = y.match.apply(this, arguments), n.lastIndex = 0, e;
} else n = new RegExp(n);
return v.exec.call(n, p(this));
}, v.replace = function(e, t) {
var i, a, r, l = m.isRegExp(e);
return l ? (e[f] && (a = e[f].captureNames), i = e.lastIndex) : e += "", r = s(t, "Function") ? y.replace.call(String(this), e, function() {
var i, r = arguments;
if (a) for (r[0] = new String(r[0]), i = 0; i < a.length; ++i) a[i] && (r[0][a[i]] = r[i + 1]);
return l && e.global && (e.lastIndex = r[r.length - 2] + r[0].length), t.apply(n, r);
}) : y.replace.call(null == this ? this : String(this), e, function() {
var n = arguments;
return y.replace.call(String(t), A, function(e, t, i) {
var r;
if (t) {
if (r = +t, r <= n.length - 3) return n[r] || "";
if (r = a ? o(a, t) : -1, 0 > r) throw new SyntaxError("Backreference to undefined group " + e);
return n[r + 1] || "";
}
if ("$" === i) return "$";
if ("&" === i || 0 === +i) return n[0];
if ("`" === i) return n[n.length - 1].slice(0, n[n.length - 2]);
if ("'" === i) return n[n.length - 1].slice(n[n.length - 2] + n[0].length);
if (i = +i, !isNaN(i)) {
if (i > n.length - 3) throw new SyntaxError("Backreference to undefined group " + e);
return n[i] || "";
}
throw new SyntaxError("Invalid token " + e);
});
}), l && (e.lastIndex = e.global ? 0 : i), r;
}, v.split = function(e, t) {
if (!m.isRegExp(e)) return y.split.apply(this, arguments);
var i, a = String(this), r = [], o = e.lastIndex, s = 0;
return t = (t === n ? -1 : t) >>> 0, m.forEach(a, e, function(n) {
n.index + n[0].length > s && (r.push(a.slice(s, n.index)), n.length > 1 && n.index < a.length && Array.prototype.push.apply(r, n.slice(1)),
i = n[0].length, s = n.index + i);
}), s === a.length ? (!y.test.call(e, "") || i) && r.push("") : r.push(a.slice(s)),
e.lastIndex = o, r.length > t ? r.slice(0, t) : r;
}, g = m.addToken, g(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4})|x(?![\dA-Fa-f]{2}))/, function(n, e) {
if ("B" === n[1] && e === k) return n[0];
throw new SyntaxError("Invalid escape " + n[0]);
}, {
scope: "all"
}), g(/\[(\^?)]/, function(n) {
return n[1] ? "[\\s\\S]" : "\\b\\B";
}), g(/\(\?#[^)]*\)/, function(n, e, t) {
return l(n.input, n.index + n[0].length, t) ? "" : "(?:)";
}), g(/\s+|#.*/, function(n, e, t) {
return l(n.input, n.index + n[0].length, t) ? "" : "(?:)";
}, {
flag: "x"
}), g(/\./, function() {
return "[\\s\\S]";
}, {
flag: "s"
}), g(/\\k<([\w$]+)>/, function(n) {
var e = isNaN(n[1]) ? o(this.captureNames, n[1]) + 1 : +n[1], t = n.index + n[0].length;
if (!e || e > this.captureNames.length) throw new SyntaxError("Backreference to undefined group " + n[0]);
return "\\" + e + (t === n.input.length || isNaN(n.input.charAt(t)) ? "" : "(?:)");
}), g(/\\(\d+)/, function(n, e) {
if (!(e === k && /^[1-9]/.test(n[1]) && +n[1] <= this.captureNames.length) && "0" !== n[1]) throw new SyntaxError("Cannot use octal escape or backreference to undefined group " + n[0]);
return n[0];
}, {
scope: "all"
}), g(/\(\?P?<([\w$]+)>/, function(n) {
if (!isNaN(n[1])) throw new SyntaxError("Cannot use integer as capture name " + n[0]);
if ("length" === n[1] || "__proto__" === n[1]) throw new SyntaxError("Cannot use reserved word as capture name " + n[0]);
if (o(this.captureNames, n[1]) > -1) throw new SyntaxError("Cannot use same name for multiple groups " + n[0]);
return this.captureNames.push(n[1]), this.hasNamedCapture = !0, "(";
}), g(/\((?!\?)/, function(n, e, t) {
return t.indexOf("n") > -1 ? "(?:" : (this.captureNames.push(null), "(");
}, {
optionalFlags: "n"
}), m;
}();
return function(n) {
function e(n) {
var e = /^\^/, t = /\$$/;
return e.test(n) && t.test(n.replace(/\\[\s\S]/g, "")) ? n.replace(e, "").replace(t, "") : n;
}
function t(e) {
return n.isRegExp(e) ? e[i] && e[i].captureNames ? e : n(e.source) : n(e);
}
var i = "xregexp", a = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*]/g, r = n.union([ /\({{([\w$]+)}}\)|{{([\w$]+)}}/, a ], "g");
n.build = function(o, s, l) {
var c, M, u, d, h = /^\(\?([\w$]+)\)/.exec(o), S = {}, p = 0, m = 0, g = [ 0 ];
h && (l = l || "", h[1].replace(/./g, function(n) {
l += l.indexOf(n) > -1 ? "" : n;
}));
for (d in s) s.hasOwnProperty(d) && (u = t(s[d]), S[d] = {
pattern: e(u.source),
names: u[i].captureNames || []
});
return o = t(o), M = o[i].captureNames || [], o = o.source.replace(r, function(n, e, t, i, r) {
var o, s, l = e || t;
if (l) {
if (!S.hasOwnProperty(l)) throw new ReferenceError("Undefined property " + n);
return e ? (o = M[m], g[++m] = ++p, s = "(?<" + (o || l) + ">") : s = "(?:", c = p,
s + S[l].pattern.replace(a, function(n, e, t) {
if (e) {
if (o = S[l].names[p - c], ++p, o) return "(?<" + o + ">";
} else if (t) return "\\" + (+t + c);
return n;
}) + ")";
}
if (i) {
if (o = M[m], g[++m] = ++p, o) return "(?<" + o + ">";
} else if (r) return "\\" + g[+r];
return n;
}), n(o, l);
};
}(n), function(n) {
function e(n, e, t, i) {
return {
name: n,
value: e,
start: t,
end: i
};
}
n.matchRecursive = function(t, i, a, r, o) {
r = r || "", o = o || {};
var s, l, c, M, u, d = r.indexOf("g") > -1, h = r.indexOf("y") > -1, S = r.replace(/y/g, ""), p = o.escapeChar, m = o.valueNames, g = [], f = 0, b = 0, y = 0, v = 0;
if (i = n(i, S), a = n(a, S), p) {
if (p.length > 1) throw new Error("Cannot use more than one escape character");
p = n.escape(p), u = new RegExp("(?:" + p + "[\\S\\s]|(?:(?!" + n.union([ i, a ]).source + ")[^" + p + "])+)+", r.replace(/[^im]+/g, ""));
}
for (;;) {
if (p && (y += (n.exec(t, u, y, "sticky") || [ "" ])[0].length), c = n.exec(t, i, y),
M = n.exec(t, a, y), c && M && (c.index <= M.index ? M = null : c = null), c || M) b = (c || M).index,
y = b + (c || M)[0].length; else if (!f) break;
if (h && !f && b > v) break;
if (c) f || (s = b, l = y), ++f; else {
if (!M || !f) throw new Error("Unbalanced delimiter found in string");
if (!--f && (m ? (m[0] && s > v && g.push(e(m[0], t.slice(v, s), v, s)), m[1] && g.push(e(m[1], t.slice(s, l), s, l)),
m[2] && g.push(e(m[2], t.slice(l, b), l, b)), m[3] && g.push(e(m[3], t.slice(b, y), b, y))) : g.push(t.slice(l, b)),
v = y, !d)) break;
}
b === y && ++y;
}
return d && !h && m && m[0] && t.length > v && g.push(e(m[0], t.slice(v), v, t.length)),
g;
};
}(n), function(n) {
function e(n) {
return n.replace(/[- _]+/g, "").toLowerCase();
}
function t(n) {
for (;n.length < 4; ) n = "0" + n;
return n;
}
function i(n) {
return parseInt(n, 16);
}
function a(n) {
return parseInt(n, 10).toString(16);
}
function r(n) {
var e = /^\\[xu](.+)/.exec(n);
return e ? i(e[1]) : n.charCodeAt("\\" === n.charAt(0) ? 1 : 0);
}
function o(e) {
var i, o = "", s = -1;
return n.forEach(e, /(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/, function(n) {
i = r(n[1]), i > s + 1 && (o += "\\u" + t(a(s + 1)), i > s + 2 && (o += "-\\u" + t(a(i - 1)))),
s = r(n[2] || n[1]);
}), 65535 > s && (o += "\\u" + t(a(s + 1)), 65534 > s && (o += "-\\uFFFF")), o;
}
function s(n) {
var e = "b!";
return M[n][e] || (M[n][e] = o(M[n].bmp));
}
function l(n, e) {
var t = M[n], i = "";
return t.bmp && !t.isBmpLast && (i = "[" + t.bmp + "]" + (t.astral ? "|" : "")),
t.astral && (i += t.astral), t.isBmpLast && t.bmp && (i += (t.astral ? "|" : "") + "[" + t.bmp + "]"),
e ? "(?:(?!" + i + ")(?:[<5B><><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|[\0-￿]))" : "(?:" + i + ")";
}
function c(n, e) {
var t = e ? "a!" : "a=";
return M[n][t] || (M[n][t] = l(n, e));
}
var M = {};
n.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/, function(t, i, a) {
var r = "Invalid double negation ", o = "Unknown Unicode token ", l = "Unicode token missing data ", u = "Astral mode required for Unicode token ", d = "Astral mode does not support Unicode tokens within character classes", h = "P" === t[1] || !!t[2], S = a.indexOf("A") > -1 || n.isInstalled("astral"), p = e(t[4] || t[3]), m = M[p];
if ("P" === t[1] && t[2]) throw new SyntaxError(r + t[0]);
if (!M.hasOwnProperty(p)) throw new SyntaxError(o + t[0]);
if (m.inverseOf) {
if (p = e(m.inverseOf), !M.hasOwnProperty(p)) throw new ReferenceError(l + t[0] + " -> " + m.inverseOf);
m = M[p], h = !h;
}
if (!m.bmp && !S) throw new SyntaxError(u + t[0]);
if (S) {
if ("class" === i) throw new SyntaxError(d);
return c(p, h);
}
return "class" === i ? h ? s(p) : m.bmp : (h ? "[^" : "[") + m.bmp + "]";
}, {
scope: "all",
optionalFlags: "A"
}), n.addUnicodeData = function(t) {
var i, a, r = "Unicode token requires name", o = "Unicode token has no character data ";
for (a = 0; a < t.length; ++a) {
if (i = t[a], !i.name) throw new Error(r);
if (!(i.inverseOf || i.bmp || i.astral)) throw new Error(o + i.name);
M[e(i.name)] = i, i.alias && (M[e(i.alias)] = i);
}
n.cache.flush("patterns");
}, n.addUnicodeData([ {
name: "L",
alias: "Letter",
bmp: "A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ--ℝℤΩℨK--ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA--zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><85><ED><B0><88><ED>-<2D><><ED><B0><B5><ED><B0><B7><ED><B0><B8><ED><B0><BC><ED>-<2D><><ED><B1><95><ED>-<2D><><ED><B4><95><ED>-<2D><><ED><B4><B9><ED>-<2D><><ED><B6><B7><ED><B6><BE><ED><B6><BF><ED><B8><80><ED>-<2D><><ED><B8><93><ED>-<2D><><ED><B8><97><ED>-<2D><><ED><B8><B3><ED>-<2D><><ED><B9><BC><ED>-<2D><><ED><BC><B5><ED>-<2D><><ED><BD><95><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><8B><ED>-<2D><><ED><B0><A6><ED>-<2D><><ED><B0><BA><ED><B0><BC><ED><B0><BD><ED>-<2D><><ED><B1><8D><ED>-<2D><><ED><B1><9D><ED>-<2D><><ED><B3><BA><ED>-<2D><><ED><BA><9C><ED>-<2D><><ED><BB><90><ED>-<2D><><ED><BC><9E><ED>-<2D><><ED><BD><80><ED>-<2D><><ED><BD><89><ED>-<2D><><ED><BE><9D><ED>-<2D><><ED><BF><83><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><B7><ED>-<2D><><ED><B2><AF><ED>-<2D><><ED><B3><A8><ED>-<2D><><ED><B4><A6><ED>-<2D><><ED><B6><B2><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BD><84><ED><BD><90><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BB><96><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><80><ED>]|[<5B><><ED><A0><8C><ED>-<2D><><ED><A1><A8><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B8><83><ED>-<2D><><ED><B8><9F><ED><B8><A1><ED><B8><A2><ED><B8><A4><ED><B8><A7><ED>-<2D><><ED><B8><B2><ED>-<2D><><ED><B8><B7><ED><B8><B9><ED><B8><BB><ED><B9><82><ED><B9><87><ED><B9><89><ED><B9><8B><ED>-<2D><><ED><B9><8F><ED><B9><91><ED><B9><92><ED><B9><94><ED><B9><97><ED><B9><99><ED><B9><9B><ED><B9><9D><ED><B9><9F><ED><B9><A1><ED><B9><A2><ED><B9><A4><ED>-<2D><><ED><B9><AA><ED>-<2D><><ED><B9><B2><ED>-<2D><><ED><B9><B7><ED>-<2D><><ED><B9><BC><ED><B9><BE><ED>-<2D><><ED><BA><89><ED>-<2D><><ED><BA><9B><ED>-<2D><><ED><BA><A3><ED>-<2D><><ED><BA><A9><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><94><ED>-<2D><><ED><B2><9C><ED><B2><9E><ED><B2><9F><ED><B2><A2><ED><B2><A5><ED><B2><A6><ED>-<2D><><ED><B2><AC><ED>-<2D><><ED><B2><B9><ED><B2><BB><ED>-<2D><><ED><B3><83><ED>-<2D><><ED><B4><85><ED>-<2D><><ED><B4><8A><ED>-<2D><><ED><B4><94><ED>-<2D><><ED><B4><9C><ED>-<2D><><ED><B4><B9><ED>-<2D><><ED><B4><BE><ED>-<2D><><ED><B5><84><ED><B5><86><ED>-<2D><><ED><B5><90><ED>-<2D><><ED><BA><A5><ED>-<2D><><ED><BB><80><ED>-<2D><><ED><BB><9A><ED>-<2D><><ED><BB><BA><ED>-<2D><><ED><BC><94><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED><BD><8E><ED>-<2D><><ED><BD><AE><ED>-<2D><><ED><BE><88><ED>-<2D><><ED><BE><A8><ED>-<2D><><ED><BF><82><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
} ]);
}(n), function(n) {
if (!n.addUnicodeData) throw new ReferenceError("Unicode Base must be loaded before Unicode Blocks");
n.addUnicodeData([ {
name: "InAegean_Numbers",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InAlchemical_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InAlphabetic_Presentation_Forms",
bmp: "ff-ﭏ"
}, {
name: "InAncient_Greek_Musical_Notation",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InAncient_Greek_Numbers",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InAncient_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InArabic",
bmp: "؀-ۿ"
}, {
name: "InArabic_Extended_A",
bmp: "ࢠ-ࣿ"
}, {
name: "InArabic_Mathematical_Alphabetic_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InArabic_Presentation_Forms_A",
bmp: "ﭐ-﷿"
}, {
name: "InArabic_Presentation_Forms_B",
bmp: "ﹰ-"
}, {
name: "InArabic_Supplement",
bmp: "ݐ-ݿ"
}, {
name: "InArmenian",
bmp: "԰-֏"
}, {
name: "InArrows",
bmp: "←-⇿"
}, {
name: "InAvestan",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InBalinese",
bmp: "ᬀ-᭿"
}, {
name: "InBamum",
bmp: "ꚠ-꛿"
}, {
name: "InBamum_Supplement",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InBasic_Latin",
bmp: "\0-"
}, {
name: "InBatak",
bmp: "ᯀ-᯿"
}, {
name: "InBengali",
bmp: "ঀ-৿"
}, {
name: "InBlock_Elements",
bmp: "▀-▟"
}, {
name: "InBopomofo",
bmp: "㄀-ㄯ"
}, {
name: "InBopomofo_Extended",
bmp: "ㆠ-ㆿ"
}, {
name: "InBox_Drawing",
bmp: "─-╿"
}, {
name: "InBrahmi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InBraille_Patterns",
bmp: "-⣿"
}, {
name: "InBuginese",
bmp: "ᨀ-᨟"
}, {
name: "InBuhid",
bmp: "ᝀ-᝟"
}, {
name: "InByzantine_Musical_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCJK_Compatibility",
bmp: "㌀-㏿"
}, {
name: "InCJK_Compatibility_Forms",
bmp: "-"
}, {
name: "InCJK_Compatibility_Ideographs",
bmp: "豈-﫿"
}, {
name: "InCJK_Compatibility_Ideographs_Supplement",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCJK_Radicals_Supplement",
bmp: "⺀-⻿"
}, {
name: "InCJK_Strokes",
bmp: "㇀-㇯"
}, {
name: "InCJK_Symbols_and_Punctuation",
bmp: " -〿"
}, {
name: "InCJK_Unified_Ideographs",
bmp: "一-鿿"
}, {
name: "InCJK_Unified_Ideographs_Extension_A",
bmp: "㐀-䶿"
}, {
name: "InCJK_Unified_Ideographs_Extension_B",
astral: "[<5B><><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCJK_Unified_Ideographs_Extension_C",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|[<5B><><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCJK_Unified_Ideographs_Extension_D",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCarian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InChakma",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCham",
bmp: "ꨀ-꩟"
}, {
name: "InCherokee",
bmp: "-᏿"
}, {
name: "InCombining_Diacritical_Marks",
bmp: "̀-ͯ"
}, {
name: "InCombining_Diacritical_Marks_Supplement",
bmp: "᷀-᷿"
}, {
name: "InCombining_Diacritical_Marks_for_Symbols",
bmp: "⃐-⃿"
}, {
name: "InCombining_Half_Marks",
bmp: "︠-︯"
}, {
name: "InCommon_Indic_Number_Forms",
bmp: "꠰-꠿"
}, {
name: "InControl_Pictures",
bmp: "␀-␿"
}, {
name: "InCoptic",
bmp: "Ⲁ-⳿"
}, {
name: "InCounting_Rod_Numerals",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCuneiform",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCuneiform_Numbers_and_Punctuation",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCurrency_Symbols",
bmp: "₠-⃏"
}, {
name: "InCypriot_Syllabary",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InCyrillic",
bmp: "Ѐ-ӿ"
}, {
name: "InCyrillic_Extended_A",
bmp: "ⷠ-ⷿ"
}, {
name: "InCyrillic_Extended_B",
bmp: "Ꙁ-ꚟ"
}, {
name: "InCyrillic_Supplement",
bmp: "Ԁ-ԯ"
}, {
name: "InDeseret",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InDevanagari",
bmp: "ऀ-ॿ"
}, {
name: "InDevanagari_Extended",
bmp: "꣠-ꣿ"
}, {
name: "InDingbats",
bmp: "✀-➿"
}, {
name: "InDomino_Tiles",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InEgyptian_Hieroglyphs",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InEmoticons",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InEnclosed_Alphanumeric_Supplement",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InEnclosed_Alphanumerics",
bmp: "①-⓿"
}, {
name: "InEnclosed_CJK_Letters_and_Months",
bmp: "㈀-㋿"
}, {
name: "InEnclosed_Ideographic_Supplement",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InEthiopic",
bmp: "-፿"
}, {
name: "InEthiopic_Extended",
bmp: "ⶀ-⷟"
}, {
name: "InEthiopic_Extended_A",
bmp: "꬀-꬯"
}, {
name: "InEthiopic_Supplement",
bmp: "ᎀ-᎟"
}, {
name: "InGeneral_Punctuation",
bmp: " -"
}, {
name: "InGeometric_Shapes",
bmp: "■-◿"
}, {
name: "InGeorgian",
bmp: "Ⴀ-"
}, {
name: "InGeorgian_Supplement",
bmp: "ⴀ-⴯"
}, {
name: "InGlagolitic",
bmp: "Ⰰ-ⱟ"
}, {
name: "InGothic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InGreek_Extended",
bmp: "ἀ-῿"
}, {
name: "InGreek_and_Coptic",
bmp: "Ͱ-Ͽ"
}, {
name: "InGujarati",
bmp: "઀-૿"
}, {
name: "InGurmukhi",
bmp: "਀-੿"
}, {
name: "InHalfwidth_and_Fullwidth_Forms",
bmp: "＀-￯"
}, {
name: "InHangul_Compatibility_Jamo",
bmp: "㄰-㆏"
}, {
name: "InHangul_Jamo",
bmp: "ᄀ-ᇿ"
}, {
name: "InHangul_Jamo_Extended_A",
bmp: "ꥠ-꥿"
}, {
name: "InHangul_Jamo_Extended_B",
bmp: "ힰ-퟿"
}, {
name: "InHangul_Syllables",
bmp: "가-힯"
}, {
name: "InHanunoo",
bmp: "ᜠ-᜿"
}, {
name: "InHebrew",
bmp: "֐-׿"
}, {
name: "InHigh_Private_Use_Surrogates",
bmp: "<22><><ED>-<2D><><ED>"
}, {
name: "InHigh_Surrogates",
bmp: "<22><><ED>-<2D><><ED>"
}, {
name: "InHiragana",
bmp: "぀-ゟ"
}, {
name: "InIPA_Extensions",
bmp: "ɐ-ʯ"
}, {
name: "InIdeographic_Description_Characters",
bmp: "⿰-⿿"
}, {
name: "InImperial_Aramaic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InInscriptional_Pahlavi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InInscriptional_Parthian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InJavanese",
bmp: "ꦀ-꧟"
}, {
name: "InKaithi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InKana_Supplement",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InKanbun",
bmp: "㆐-㆟"
}, {
name: "InKangxi_Radicals",
bmp: "⼀-⿟"
}, {
name: "InKannada",
bmp: "ಀ-೿"
}, {
name: "InKatakana",
bmp: "-ヿ"
}, {
name: "InKatakana_Phonetic_Extensions",
bmp: "ㇰ-ㇿ"
}, {
name: "InKayah_Li",
bmp: "꤀-꤯"
}, {
name: "InKharoshthi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InKhmer",
bmp: "ក-៿"
}, {
name: "InKhmer_Symbols",
bmp: "᧠-᧿"
}, {
name: "InLao",
bmp: "຀-໿"
}, {
name: "InLatin_Extended_Additional",
bmp: "Ḁ-ỿ"
}, {
name: "InLatin_Extended_A",
bmp: "Ā-ſ"
}, {
name: "InLatin_Extended_B",
bmp: "ƀ-ɏ"
}, {
name: "InLatin_Extended_C",
bmp: "Ⱡ-Ɀ"
}, {
name: "InLatin_Extended_D",
bmp: "꜠-ꟿ"
}, {
name: "InLatin_1_Supplement",
bmp: "€-ÿ"
}, {
name: "InLepcha",
bmp: "ᰀ-ᱏ"
}, {
name: "InLetterlike_Symbols",
bmp: "℀-⅏"
}, {
name: "InLimbu",
bmp: "ᤀ-᥏"
}, {
name: "InLinear_B_Ideograms",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InLinear_B_Syllabary",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InLisu",
bmp: "-"
}, {
name: "InLow_Surrogates",
bmp: "<22><><ED>-<2D><><ED>"
}, {
name: "InLycian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InLydian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMahjong_Tiles",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMalayalam",
bmp: "ഀ-ൿ"
}, {
name: "InMandaic",
bmp: "ࡀ-࡟"
}, {
name: "InMathematical_Alphanumeric_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMathematical_Operators",
bmp: "∀-"
}, {
name: "InMeetei_Mayek",
bmp: "ꯀ-꯿"
}, {
name: "InMeetei_Mayek_Extensions",
bmp: "ꫠ-꫿"
}, {
name: "InMeroitic_Cursive",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMeroitic_Hieroglyphs",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMiao",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMiscellaneous_Mathematical_Symbols_A",
bmp: "⟀-⟯"
}, {
name: "InMiscellaneous_Mathematical_Symbols_B",
bmp: "⦀-⧿"
}, {
name: "InMiscellaneous_Symbols",
bmp: "☀-⛿"
}, {
name: "InMiscellaneous_Symbols_And_Pictographs",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMiscellaneous_Symbols_and_Arrows",
bmp: "⬀-⯿"
}, {
name: "InMiscellaneous_Technical",
bmp: "⌀-⏿"
}, {
name: "InModifier_Tone_Letters",
bmp: "꜀-ꜟ"
}, {
name: "InMongolian",
bmp: "᠀-᢯"
}, {
name: "InMusical_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InMyanmar",
bmp: "က-႟"
}, {
name: "InMyanmar_Extended_A",
bmp: "ꩠ-ꩿ"
}, {
name: "InNKo",
bmp: "߀-߿"
}, {
name: "InNew_Tai_Lue",
bmp: "ᦀ-᧟"
}, {
name: "InNumber_Forms",
bmp: "⅐-↏"
}, {
name: "InOgham",
bmp: "-᚟"
}, {
name: "InOl_Chiki",
bmp: "᱐-᱿"
}, {
name: "InOld_Italic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InOld_Persian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InOld_South_Arabian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InOld_Turkic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InOptical_Character_Recognition",
bmp: "⑀-⑟"
}, {
name: "InOriya",
bmp: "଀-୿"
}, {
name: "InOsmanya",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InPhags_pa",
bmp: "ꡀ-꡿"
}, {
name: "InPhaistos_Disc",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InPhoenician",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InPhonetic_Extensions",
bmp: "ᴀ-ᵿ"
}, {
name: "InPhonetic_Extensions_Supplement",
bmp: "ᶀ-ᶿ"
}, {
name: "InPlaying_Cards",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InPrivate_Use_Area",
bmp: "-"
}, {
name: "InRejang",
bmp: "ꤰ-꥟"
}, {
name: "InRumi_Numeral_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InRunic",
bmp: "ᚠ-᛿"
}, {
name: "InSamaritan",
bmp: "ࠀ-࠿"
}, {
name: "InSaurashtra",
bmp: "ꢀ-꣟"
}, {
name: "InSharada",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InShavian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InSinhala",
bmp: "඀-෿"
}, {
name: "InSmall_Form_Variants",
bmp: "﹐-﹯"
}, {
name: "InSora_Sompeng",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InSpacing_Modifier_Letters",
bmp: "ʰ-˿"
}, {
name: "InSpecials",
bmp: "-￿"
}, {
name: "InSundanese",
bmp: "ᮀ-ᮿ"
}, {
name: "InSundanese_Supplement",
bmp: "᳀-᳏"
}, {
name: "InSuperscripts_and_Subscripts",
bmp: "⁰-₟"
}, {
name: "InSupplemental_Arrows_A",
bmp: "⟰-⟿"
}, {
name: "InSupplemental_Arrows_B",
bmp: "⤀-⥿"
}, {
name: "InSupplemental_Mathematical_Operators",
bmp: "⨀-⫿"
}, {
name: "InSupplemental_Punctuation",
bmp: "⸀-⹿"
}, {
name: "InSupplementary_Private_Use_Area_A",
astral: "[<5B><><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]"
}, {
name: "InSupplementary_Private_Use_Area_B",
astral: "[<5B><><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]"
}, {
name: "InSyloti_Nagri",
bmp: "ꠀ-꠯"
}, {
name: "InSyriac",
bmp: "܀-ݏ"
}, {
name: "InTagalog",
bmp: "ᜀ-ᜟ"
}, {
name: "InTagbanwa",
bmp: "ᝠ-᝿"
}, {
name: "InTags",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InTai_Le",
bmp: "ᥐ-᥿"
}, {
name: "InTai_Tham",
bmp: "ᨠ-᪯"
}, {
name: "InTai_Viet",
bmp: "ꪀ-꫟"
}, {
name: "InTai_Xuan_Jing_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InTakri",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InTamil",
bmp: "஀-௿"
}, {
name: "InTelugu",
bmp: "ఀ-౿"
}, {
name: "InThaana",
bmp: "ހ-޿"
}, {
name: "InThai",
bmp: "฀-๿"
}, {
name: "InTibetan",
bmp: "ༀ-࿿"
}, {
name: "InTifinagh",
bmp: "ⴰ-⵿"
}, {
name: "InTransport_And_Map_Symbols",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InUgaritic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InUnified_Canadian_Aboriginal_Syllabics",
bmp: "-ᙿ"
}, {
name: "InUnified_Canadian_Aboriginal_Syllabics_Extended",
bmp: "ᢰ-᣿"
}, {
name: "InVai",
bmp: "ꔀ-꘿"
}, {
name: "InVariation_Selectors",
bmp: "-"
}, {
name: "InVariation_Selectors_Supplement",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "InVedic_Extensions",
bmp: "᳐-᳿"
}, {
name: "InVertical_Forms",
bmp: "︐-︟"
}, {
name: "InYi_Radicals",
bmp: "꒐-꓏"
}, {
name: "InYi_Syllables",
bmp: "ꀀ-꒏"
}, {
name: "InYijing_Hexagram_Symbols",
bmp: "䷀-䷿"
} ]);
}(n), function(n) {
if (!n.addUnicodeData) throw new ReferenceError("Unicode Base must be loaded before Unicode Categories");
n.addUnicodeData([ {
name: "C",
alias: "Other",
isBmpLast: !0,
bmp: "\0--Ÿ­͸͹Ϳ-΃΋΍΢Ԩ-԰՗՘ՠֈ֋-֎֐׈-׏׫-ׯ׵-؅؜؝۝܎܏݋݌޲-޿߻-߿࠮࠯࠿࡜࡝࡟-࢟ࢡࢭ-ࣣࣿॸঀ঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥ৼ-਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੶-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୕୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-ఀఄ఍఑఩ఴ఺-఼౅౉౎-౔౗ౚ-౟౤౥౰-౷ಀಁ಄಍಑಩಴಺಻೅೉೎-೔೗-ೝ೟೤೥೰ೳ-ഁഄ഍഑഻഼൅൉൏-ൖ൘-ൟ൤൥൶-൸඀ඁ඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෱෵-฀฻-฾๜-຀຃຅ຆຉ຋ຌຎ-ຓຘຠ຤຦ຨຩຬ຺຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟Ᏽ-᏿᚝-᚟ᛱ-᛿ᜍ᜕-ᜟ᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠏᠚-᠟ᡸ-᡿᢫-᢯᣶-᣿ᤝ-᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮-᫿ᭌ-᭏᭽-᭿᯴-᯻᰸-᰺᱊-᱌ᲀ-Ჿ᳈-᳏᳷-᳿ᷧ-᷻἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿​---⁲⁳₏₝-₟₻-⃏⃱-⃿↊-↏⏴-⏿␧-␿⑋-⑟✀⭍-⭏⭚-⯿Ⱟⱟ⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⸼-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄ㄮ-㄰㆏ㆻ-ㆿ㇤-㇯㈟㋿䶶-䶿鿍-鿿꒍-꒏꓇-꓏꘬-꘿Ꚙ-ꚞ꛸-꛿ꞏꞔ--ꟷ꠬-꠯꠺-꠿꡸-꡿ꣅ-꣍꣚-꣟꣼-ꣿ꥔-꥞꥽-꥿꧎꧚-꧝ꧠ-꧿꨷-꨿꩎꩏꩚꩛ꩼ-ꩿ꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯-ꮿ꯮꯯꯺-꯿힤-힯퟇-퟊퟼-﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯂-﯒﵀-﵏﶐﶑﷈-﷯﷾﷿︚-︟︧-︯﹓﹧﹬-﹯﹵﻽-＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￾￿",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><AF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><91><ED>-<2D><><ED><B1><BF><ED><B2><BD><ED>-<2D><><ED><B3><8F><ED>-<2D><><ED><B3><AF><ED>-<2D><><ED><B3><BF><ED><B4><B5><ED>-<2D><><ED><B5><BF><ED>-<2D><><ED><B7><8F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><86><ED><B0><87><ED><B0><89><ED><B0><B6><ED>-<2D><><ED><B0><BB><ED><B0><BD><ED><B0><BE><ED><B1><96><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED><B4><9E><ED>-<2D><><ED><B4><BE><ED>-<2D><><ED><B5><BF><ED>-<2D><><ED><B6><BD><ED>-<2D><><ED><B7><BF><ED><B8><84><ED>-<2D><><ED><B8><8B><ED><B8><94><ED><B8><98><ED>-<2D><><ED><B8><B7><ED>-<2D><><ED><B8><BE><ED>-<2D><><ED><B9><8F><ED>-<2D><><ED><B9><9F><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BC><B8><ED><BD><96><ED><BD><97><ED>-<2D><><ED><BD><B7><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BD><8F><ED>-<2D><><ED><BE><8E><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><8C><ED><B0><A7><ED><B0><BB><ED><B0><BE><ED><B1><8E><ED><B1><8F><ED>-<2D><><ED><B1><BF><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED><B4><86><ED>-<2D><><ED><B4><B6><ED>-<2D><><ED><B6><8F><ED>-<2D><><ED><B7><8F><ED>-<2D><><ED><B9><BF><ED>-<2D><><ED><BA><9F><ED>-<2D><><ED><BB><BF><ED><BC><9F><ED>-<2D><><ED><BC><AF><ED>-<2D><><ED><BD><BF><ED><BE><9E><ED>-<2D><><ED><BF><87><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B7><BF><ED><B8><84><ED><B8><A0><ED><B8><A3><ED><B8><A5><ED><B8><A6><ED><B8><A8><ED><B8><B3><ED><B8><B8><ED><B8><BA><ED>-<2D><><ED><B9><81><ED>-<2D><><ED><B9><86><ED><B9><88><ED><B9><8A><ED><B9><8C><ED><B9><90><ED><B9><93><ED><B9><95><ED><B9><96><ED><B9><98><ED><B9><9A><ED><B9><9C><ED><B9><9E><ED><B9><A0><ED><B9><A3><ED><B9><A5><ED><B9><A6><ED><B9><AB><ED><B9><B3><ED><B9><B8><ED><B9><BD><ED><B9><BF><ED><BA><8A><ED>-<2D><><ED><BA><A0><ED><BA><A4><ED><BA><AA><ED>-<2D><><ED><BB><AF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B9><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|[<5B><><ED><A0><86><ED><A0><87><ED><A0><8A><ED><A0><8B><ED>-<2D><><ED><A0><99><ED>-<2D><><ED><A0><AB><ED>-<2D><><ED><A0><B3><ED>-<2D><><ED><A0><BA><ED><A0><BE><ED><A0><BF><ED>-<2D><><ED><A1><BD><ED>-<2D><><ED><AC><BF><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><BF><ED><B1><81><ED><B3><B8><ED>-<2D><><ED><B3><BF><ED><B4><BE><ED><B4><BF><ED>-<2D><><ED><B5><8F><ED>-<2D><><ED><B7><BA><ED>-<2D><><ED><B9><84><ED>-<2D><><ED><B9><BF><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><AF><ED>-<2D><><ED><B2><9F><ED><B2><AF><ED><B2><B0><ED><B2><BF><ED><B3><80><ED><B3><90><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED><B4><8F><ED><B4><AF><ED>-<2D><><ED><B5><AF><ED>-<2D><><ED><B7><A5><ED>-<2D><><ED><B8><8F><ED>-<2D><><ED><B8><BF><ED>-<2D><><ED><B9><8F><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BC><AF><ED><BC><B6><ED>-<2D><><ED><BD><BF><ED>-<2D><><ED><BE><9F><ED><BF><85><ED>-<2D><><ED><BF><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B1><95><ED><B2><9D><ED><B2><A0><ED><B2><A1><ED><B2><A3><ED><B2><A4><ED><B2><A7><ED><B2><A8><ED><B2><AD><ED><B2><BA><ED><B2><BC><ED><B3><84><ED><B4><86><ED><B4><8B><ED><B4><8C><ED><B4><95><ED><B4><9D><ED><B4><BA><ED><B4><BF><ED><B5><85><ED>-<2D><><ED><B5><89><ED><B5><91><ED><BA><A6><ED><BA><A7><ED><BF><8C><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B3><BF><ED><B4><A7><ED><B4><A8><ED>-<2D><><ED><B5><BA><ED>-<2D><><ED><B7><BF><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BD><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B2><9E><ED><B2><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B9><BF><ED>-<2D><><ED><BA><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Cc",
alias: "Control",
bmp: "\0--Ÿ"
}, {
name: "Cf",
alias: "Format",
bmp: "­؀-؄۝܏​-----",
astral: "<22><><ED>[<5B><><ED><B0><81><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|𑂽"
}, {
name: "Cn",
alias: "Unassigned",
bmp: "͸͹Ϳ-΃΋΍΢Ԩ-԰՗՘ՠֈ֋-֎֐׈-׏׫-ׯ׵-׿؅؜؝܎݋݌޲-޿߻-߿࠮࠯࠿࡜࡝࡟-࢟ࢡࢭ-ࣣࣿॸঀ঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥ৼ-਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੶-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୕୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-ఀఄ఍఑఩ఴ఺-఼౅౉౎-౔౗ౚ-౟౤౥౰-౷ಀಁ಄಍಑಩಴಺಻೅೉೎-೔೗-ೝ೟೤೥೰ೳ-ഁഄ഍഑഻഼൅൉൏-ൖ൘-ൟ൤൥൶-൸඀ඁ඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෱෵-฀฻-฾๜-຀຃຅ຆຉ຋ຌຎ-ຓຘຠ຤຦ຨຩຬ຺຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟Ᏽ-᏿᚝-᚟ᛱ-᛿ᜍ᜕-ᜟ᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠏᠚-᠟ᡸ-᡿᢫-᢯᣶-᣿ᤝ-᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮-᫿ᭌ-᭏᭽-᭿᯴-᯻᰸-᰺᱊-᱌ᲀ-Ჿ᳈-᳏᳷-᳿ᷧ-᷻἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿⁥-⁩⁲⁳₏₝-₟₻-⃏⃱-⃿↊-↏⏴-⏿␧-␿⑋-⑟✀⭍-⭏⭚-⯿Ⱟⱟ⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⸼-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄ㄮ-㄰㆏ㆻ-ㆿ㇤-㇯㈟㋿䶶-䶿鿍-鿿꒍-꒏꓇-꓏꘬-꘿Ꚙ-ꚞ꛸-꛿ꞏꞔ--ꟷ꠬-꠯꠺-꠿꡸-꡿ꣅ-꣍꣚-꣟꣼-ꣿ꥔-꥞꥽-꥿꧎꧚-꧝ꧠ-꧿꨷-꨿꩎꩏꩚꩛ꩼ-ꩿ꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯-ꮿ꯮꯯꯺-꯿힤-힯퟇-퟊퟼-퟿﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯂-﯒﵀-﵏﶐﶑﷈-﷯﷾﷿︚-︟︧-︯﹓﹧﹬-﹯﹵﻽﻾＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￸￾￿",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><80><ED>-<2D><><ED><B0><9F><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B3><BF><ED><B4><A7><ED><B4><A8><ED>-<2D><><ED><B7><BF><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BD><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><86><ED><B0><87><ED><B0><89><ED><B0><B6><ED>-<2D><><ED><B0><BB><ED><B0><BD><ED><B0><BE><ED><B1><96><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED><B4><9E><ED>-<2D><><ED><B4><BE><ED>-<2D><><ED><B5><BF><ED>-<2D><><ED><B6><BD><ED>-<2D><><ED><B7><BF><ED><B8><84><ED>-<2D><><ED><B8><8B><ED><B8><94><ED><B8><98><ED>-<2D><><ED><B8><B7><ED>-<2D><><ED><B8><BE><ED>-<2D><><ED><B9><8F><ED>-<2D><><ED><B9><9F><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BC><B8><ED><BD><96><ED><BD><97><ED>-<2D><><ED><BD><B7><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BD><8F><ED>-<2D><><ED><BE><8E><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><AF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><8C><ED><B0><A7><ED><B0><BB><ED><B0><BE><ED><B1><8E><ED><B1><8F><ED>-<2D><><ED><B1><BF><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED><B4><86><ED>-<2D><><ED><B4><B6><ED>-<2D><><ED><B6><8F><ED>-<2D><><ED><B7><8F><ED>-<2D><><ED><B9><BF><ED>-<2D><><ED><BA><9F><ED>-<2D><><ED><BB><BF><ED><BC><9F><ED>-<2D><><ED><BC><AF><ED>-<2D><><ED><BD><BF><ED><BE><9E><ED>-<2D><><ED><BF><87><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><91><ED>-<2D><><ED><B1><BF><ED>-<2D><><ED><B3><8F><ED>-<2D><><ED><B3><AF><ED>-<2D><><ED><B3><BF><ED><B4><B5><ED>-<2D><><ED><B5><BF><ED>-<2D><><ED><B7><8F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B7><BF><ED><B8><84><ED><B8><A0><ED><B8><A3><ED><B8><A5><ED><B8><A6><ED><B8><A8><ED><B8><B3><ED><B8><B8><ED><B8><BA><ED>-<2D><><ED><B9><81><ED>-<2D><><ED><B9><86><ED><B9><88><ED><B9><8A><ED><B9><8C><ED><B9><90><ED><B9><93><ED><B9><95><ED><B9><96><ED><B9><98><ED><B9><9A><ED><B9><9C><ED><B9><9E><ED><B9><A0><ED><B9><A3><ED><B9><A5><ED><B9><A6><ED><B9><AB><ED><B9><B3><ED><B9><B8><ED><B9><BD><ED><B9><BF><ED><BA><8A><ED>-<2D><><ED><BA><A0><ED><BA><A4><ED><BA><AA><ED>-<2D><><ED><BB><AF><ED>-<2D><><ED>]|[<5B><><ED><AE><BF><ED>][<5B><><ED><BF><BE><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B9><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|[<5B><><ED><A0><86><ED><A0><87><ED><A0><8A><ED><A0><8B><ED>-<2D><><ED><A0><99><ED>-<2D><><ED><A0><AB><ED>-<2D><><ED><A0><B3><ED>-<2D><><ED><A0><BA><ED><A0><BE><ED><A0><BF><ED>-<2D><><ED><A1><BD><ED>-<2D><><ED><AC><BF><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><BF><ED><B1><81><ED><B3><B8><ED>-<2D><><ED><B3><BF><ED><B4><BE><ED><B4><BF><ED>-<2D><><ED><B5><8F><ED>-<2D><><ED><B7><BA><ED>-<2D><><ED><B9><84><ED>-<2D><><ED><B9><BF><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><AF><ED>-<2D><><ED><B2><9F><ED><B2><AF><ED><B2><B0><ED><B2><BF><ED><B3><80><ED><B3><90><ED>-<2D><><ED><B3><BF><ED>-<2D><><ED><B4><8F><ED><B4><AF><ED>-<2D><><ED><B5><AF><ED>-<2D><><ED><B7><A5><ED>-<2D><><ED><B8><8F><ED>-<2D><><ED><B8><BF><ED>-<2D><><ED><B9><8F><ED>-<2D><><ED><BB><BF><ED>-<2D><><ED><BC><AF><ED><BC><B6><ED>-<2D><><ED><BD><BF><ED>-<2D><><ED><BE><9F><ED><BF><85><ED>-<2D><><ED><BF><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B1><95><ED><B2><9D><ED><B2><A0><ED><B2><A1><ED><B2><A3><ED><B2><A4><ED><B2><A7><ED><B2><A8><ED><B2><AD><ED><B2><BA><ED><B2><BC><ED><B3><84><ED><B4><86><ED><B4><8B><ED><B4><8C><ED><B4><95><ED><B4><9D><ED><B4><BA><ED><B4><BF><ED><B5><85><ED>-<2D><><ED><B5><89><ED><B5><91><ED><BA><A6><ED><BA><A7><ED><BF><8C><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B2><9E><ED><B2><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B9><BF><ED>-<2D><><ED><BA><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Co",
alias: "Private_Use",
bmp: "-",
astral: "[<5B><><ED>-<2D><><ED><AE><BE><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|[<5B><><ED><AE><BF><ED>][<5B><><ED>-<2D><><ED>]"
}, {
name: "Cs",
alias: "Surrogate",
bmp: "<22><><ED>-<2D><><ED>"
}, {
name: "Ll",
alias: "Lowercase_Letter",
bmp: "a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟺff-stﬓ-ﬗa-",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><B3><ED>-<2D><><ED><B1><94><ED>-<2D><><ED><B1><A7><ED>-<2D><><ED><B2><9B><ED>-<2D><><ED><B2><B9><ED><B2><BB><ED>-<2D><><ED><B3><83><ED>-<2D><><ED><B3><8F><ED>-<2D><><ED><B4><83><ED>-<2D><><ED><B4><B7><ED>-<2D><><ED><B5><AB><ED>-<2D><><ED><B6><9F><ED>-<2D><><ED><B7><93><ED>-<2D><><ED><B8><87><ED>-<2D><><ED><B8><BB><ED>-<2D><><ED><B9><AF><ED>-<2D><><ED><BA><A5><ED>-<2D><><ED><BB><9A><ED>-<2D><><ED><BB><A1><ED>-<2D><><ED><BC><94><ED>-<2D><><ED><BC><9B><ED>-<2D><><ED><BD><8E><ED>-<2D><><ED><BD><95><ED>-<2D><><ED><BE><88><ED>-<2D><><ED><BE><8F><ED>-<2D><><ED><BF><82><ED>-<2D><><ED><BF><89><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Lm",
alias: "Modifier_Letter",
bmp: "ʰ-ˁˆ-ˑˠ-ˤˬˮʹͺՙـۥۦߴߵߺࠚࠤࠨॱๆໆჼៗᡃᪧᱸ-ᱽᴬ-ᵪᵸᶛ-ᶿⁱⁿₐ-ₜⱼⱽⵯⸯ々〱-〵〻ゝゞー-ヾꀕꓸ-ꓽꘌꙿꜗ-ꜟꝰꞈꟸꟹꧏꩰꫝꫳꫴー゙゚",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Lo",
alias: "Other_Letter",
bmp: "ªºƻǀ-ǃʔא-תװ-ײؠ-ؿف-يٮٯٱ-ۓەۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪࠀ-ࠕࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॲ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๅກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎა-ჺჽ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៜᠠ-ᡂᡄ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱷᳩ-ᳬᳮ-ᳱᳵᳶℵ-ℸⴰ-ⵧⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ〆〼ぁ-ゖゟァ-ヺヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꀔꀖ-ꒌꓐ-ꓷꔀ-ꘋꘐ-ꘟꘪꘫꙮꚠ-ꛥꟻ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩯꩱ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛꫜꫠ-ꫪꫲꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎יִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼヲ-ッア-ンᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><85><ED><B0><88><ED>-<2D><><ED><B0><B5><ED><B0><B7><ED><B0><B8><ED><B0><BC><ED>-<2D><><ED><B1><95><ED>-<2D><><ED><B4><95><ED>-<2D><><ED><B4><B9><ED>-<2D><><ED><B6><B7><ED><B6><BE><ED><B6><BF><ED><B8><80><ED>-<2D><><ED><B8><93><ED>-<2D><><ED><B8><97><ED>-<2D><><ED><B8><B3><ED>-<2D><><ED><B9><BC><ED>-<2D><><ED><BC><B5><ED>-<2D><><ED><BD><95><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><8B><ED>-<2D><><ED><B0><A6><ED>-<2D><><ED><B0><BA><ED><B0><BC><ED><B0><BD><ED>-<2D><><ED><B1><8D><ED>-<2D><><ED><B1><9D><ED>-<2D><><ED><B3><BA><ED>-<2D><><ED><BA><9C><ED>-<2D><><ED><BB><90><ED>-<2D><><ED><BC><9E><ED>-<2D><><ED><BD><80><ED>-<2D><><ED><BD><89><ED>-<2D><><ED><BE><9D><ED>-<2D><><ED><BF><83><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><B7><ED>-<2D><><ED><B2><AF><ED>-<2D><><ED><B3><A8><ED>-<2D><><ED><B4><A6><ED>-<2D><><ED><B6><B2><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BD><84><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><80><ED>]|[<5B><><ED><A0><8C><ED>-<2D><><ED><A1><A8><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B8><83><ED>-<2D><><ED><B8><9F><ED><B8><A1><ED><B8><A2><ED><B8><A4><ED><B8><A7><ED>-<2D><><ED><B8><B2><ED>-<2D><><ED><B8><B7><ED><B8><B9><ED><B8><BB><ED><B9><82><ED><B9><87><ED><B9><89><ED><B9><8B><ED>-<2D><><ED><B9><8F><ED><B9><91><ED><B9><92><ED><B9><94><ED><B9><97><ED><B9><99><ED><B9><9B><ED><B9><9D><ED><B9><9F><ED><B9><A1><ED><B9><A2><ED><B9><A4><ED>-<2D><><ED><B9><AA><ED>-<2D><><ED><B9><B2><ED>-<2D><><ED><B9><B7><ED>-<2D><><ED><B9><BC><ED><B9><BE><ED>-<2D><><ED><BA><89><ED>-<2D><><ED><BA><9B><ED>-<2D><><ED><BA><A3><ED>-<2D><><ED><BA><A9><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BB><96><ED>-<2D><><ED>]"
}, {
name: "Lt",
alias: "Titlecase_Letter",
bmp: "DžLjNjDzᾈ-ᾏᾘ-ᾟᾨ-ᾯᾼῌῼ"
}, {
name: "Lu",
alias: "Uppercase_Letter",
bmp: "A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ---ℝℤΩℨK--ℳℾℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><99><ED>-<2D><><ED><B1><8D><ED>-<2D><><ED><B2><81><ED><B2><9C><ED><B2><9E><ED><B2><9F><ED><B2><A2><ED><B2><A5><ED><B2><A6><ED>-<2D><><ED><B2><AC><ED>-<2D><><ED><B2><B5><ED>-<2D><><ED><B3><A9><ED><B4><84><ED><B4><85><ED>-<2D><><ED><B4><8A><ED>-<2D><><ED><B4><94><ED>-<2D><><ED><B4><9C><ED><B4><B8><ED><B4><B9><ED>-<2D><><ED><B4><BE><ED>-<2D><><ED><B5><84><ED><B5><86><ED>-<2D><><ED><B5><90><ED>-<2D><><ED><B6><85><ED>-<2D><><ED><B6><B9><ED>-<2D><><ED><B7><AD><ED>-<2D><><ED><B8><A1><ED>-<2D><><ED><B9><95><ED>-<2D><><ED><BA><89><ED>-<2D><><ED><BB><80><ED>-<2D><><ED><BB><BA><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED><BD><AE><ED>-<2D><><ED><BE><A8><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "M",
alias: "Mark",
bmp: "̀-ͯ҃-҉֑-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣤ-ࣾऀ-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఁ-ఃా-ౄె-ైొ-్ౕౖౢౣಂಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣംഃാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢩᤠ-ᤫᤰ-᤻ᦰ-ᧀᧈᧉᨗ-ᨛᩕ-ᩞ᩠-᩿᩼ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᷀-ᷦ᷼-᷿⃐-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯-꙲ꙴ-꙽ꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-꣄꣠-꣱ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꨩ-ꨶꩃꩌꩍꩻꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︦",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B5><A9><ED>-<2D><><ED><B5><B2><ED>-<2D><><ED><B6><82><ED>-<2D><><ED><B6><8B><ED>-<2D><><ED><B6><AD><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B8><83><ED><B8><85><ED><B8><86><ED>-<2D><><ED><B8><8F><ED>-<2D><><ED><B8><BA><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BD><BE><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><82><ED>-<2D><><ED><B1><86><ED>-<2D><><ED><B2><82><ED>-<2D><><ED><B2><BA><ED>-<2D><><ED><B4><82><ED>-<2D><><ED><B4><B4><ED>-<2D><><ED><B6><82><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|𐇽|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Mc",
alias: "Spacing_Mark",
bmp: "ःऻा-ीॉ-ौॎॏংঃা-ীেৈোৌৗਃਾ-ੀઃા-ીૉોૌଂଃାୀେୈୋୌୗாிுூெ-ைொ-ௌௗఁ-ఃు-ౄಂಃಾೀ-ೄೇೈೊೋೕೖംഃാ-ീെ-ൈൊ-ൌൗංඃා-ෑෘ-ෟෲෳ༾༿ཿါာေးျြၖၗၢ-ၤၧ-ၭႃႄႇ-ႌႏႚ-ႜាើ-ៅះៈᤣ-ᤦᤩ-ᤫᤰᤱᤳ-ᤸᦰ-ᧀᧈᧉᨙ-ᨛᩕᩗᩡᩣᩤᩭ-ᩲᬄᬵᬻᬽ-ᭁᭃ᭄ᮂᮡᮦᮧ᮪ᮬᮭᯧᯪ-ᯬᯮ᯲᯳ᰤ-ᰫᰴᰵ᳡ᳲᳳ〮〯ꠣꠤꠧꢀꢁꢴ-ꣃꥒ꥓ꦃꦴꦵꦺꦻꦽ-꧀ꨯꨰꨳꨴꩍꩻꫫꫮꫯꫵꯣꯤꯦꯧꯩꯪ꯬",
astral: "<22><><ED>[<5B><><ED><B5><A5><ED><B5><A6><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><80><ED><B0><82><ED><B2><82><ED>-<2D><><ED><B2><B2><ED><B2><B7><ED><B2><B8><ED><B4><AC><ED><B6><82><ED>-<2D><><ED><B6><B5><ED><B6><BF><ED>]|<7C><><ED>[<5B><><ED><BA><AC><ED><BA><AE><ED><BA><AF><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Me",
alias: "Enclosing_Mark",
bmp: "҈҉⃝-⃠⃢-⃤꙰-꙲"
}, {
name: "Mn",
alias: "Nonspacing_Mark",
bmp: "̀-ͯ҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣤ-ࣾऀ-ंऺ़ु-ै्॑-ॗॢॣঁ়ু-ৄ্ৢৣਁਂ਼ੁੂੇੈੋ-੍ੑੰੱੵઁં઼ુ-ૅેૈ્ૢૣଁ଼ିୁ-ୄ୍ୖୢୣஂீ்ా-ీె-ైొ-్ౕౖౢౣ಼ಿೆೌ್ೢೣു-ൄ്ൢൣ්ි-ුූัิ-ฺ็-๎ັິ-ູົຼ່-ໍཱ༹༘༙༵༷-ཾྀ-྄྆྇ྍ-ྗྙ-ྼ࿆ိ-ူဲ-့္်ွှၘၙၞ-ၠၱ-ၴႂႅႆႍႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴឵ិ-ួំ៉-៓៝᠋-᠍ᢩᤠ-ᤢᤧᤨᤲ᤹-᤻ᨘᨗᩖᩘ-ᩞ᩠ᩢᩥ-ᩬᩳ-᩿᩼ᬀ-ᬃ᬴ᬶ-ᬺᬼᭂ᭫-᭳ᮀᮁᮢ-ᮥᮨᮩ᯦᮫ᯨᯩᯭᯯ-ᯱᰬ-ᰳᰶ᰷᳐-᳔᳒-᳢᳠-᳨᳭᳴᷀-ᷦ᷼-᷿⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〭꙯ꙴ-꙽ꚟ꛰꛱ꠂ꠆ꠋꠥꠦ꣄꣠-꣱ꤦ-꤭ꥇ-ꥑꦀ-ꦂ꦳ꦶ-ꦹꦼꨩ-ꨮꨱꨲꨵꨶꩃꩌꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫬꫭ꫶ꯥꯨ꯭ﬞ︀-️︠-︦",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B8><83><ED><B8><85><ED><B8><86><ED>-<2D><><ED><B8><8F><ED>-<2D><><ED><B8><BA><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B5><A9><ED>-<2D><><ED><B6><82><ED>-<2D><><ED><B6><8B><ED>-<2D><><ED><B6><AD><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><BA><AB><ED><BA><AD><ED>-<2D><><ED><BA><B5><ED>]|<7C><><ED>[<5B><><ED><B0><81><ED>-<2D><><ED><B1><86><ED><B2><80><ED><B2><81><ED>-<2D><><ED><B2><B6><ED><B2><B9><ED><B2><BA><ED>-<2D><><ED><B4><82><ED>-<2D><><ED><B4><AB><ED>-<2D><><ED><B4><B4><ED><B6><80><ED><B6><81><ED>-<2D><><ED>]|𐇽|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "N",
alias: "Number",
bmp: "0-9²³¹¼-¾٠-٩۰-۹߀-߉०-९০-৯৴-৹੦-੯૦-૯୦-୯୲-୷௦-௲౦-౯౸-౾೦-೯൦-൵๐-๙໐-໙༠-༳၀-၉႐-႙፩-፼ᛮ-ᛰ០-៩៰-៹᠐-᠙᥆-᥏᧐-᧚᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙⁰⁴-⁹₀-₉⅐-ↂↅ-↉①-⒛⓪-⓿❶-➓⳽〇〡-〩〸-〺㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꘠-꘩ꛦ-ꛯ꠰-꠵꣐-꣙꤀-꤉꧐-꧙꩐-꩙꯰-꯹0-",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B1><9F><ED>-<2D><><ED><B4><9B><ED>-<2D><><ED><B9><87><ED><B9><BD><ED><B9><BE><ED>-<2D><><ED><BD><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B4><B3><ED>-<2D><><ED><B5><B8><ED><B6><8A><ED>-<2D><><ED><BC><A3><ED><BD><81><ED><BD><8A><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><AF><ED>-<2D><><ED><B3><B9><ED>-<2D><><ED><B4><BF><ED>-<2D><><ED>]"
}, {
name: "Nd",
alias: "Decimal_Number",
bmp: "0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꩐-꩙꯰-꯹0-",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B1><AF><ED>-<2D><><ED><B3><B9><ED>-<2D><><ED><B4><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Nl",
alias: "Letter_Number",
bmp: "ᛮ-ᛰⅠ-ↂↅ-ↈ〇〡-〩〸-〺ꛦ-",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B5><B4><ED><BD><81><ED><BD><8A><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "No",
alias: "Other_Number",
bmp: "²³¹¼-¾৴-৹୲-୷௰-௲౸-౾൰-൵༪-༳፩-፼៰-៹᧚⁰⁴-⁹₀-₉⅐-⅟↉①-⒛⓪-⓿❶-➓⳽㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꠰-꠵",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B1><9F><ED>-<2D><><ED><B4><9B><ED>-<2D><><ED><B9><87><ED><B9><BD><ED><B9><BE><ED>-<2D><><ED><BD><9F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B4><B3><ED>-<2D><><ED><B5><B8><ED><B6><8A><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "P",
alias: "Punctuation",
bmp: "!-#%-\\x2A,-/:;\\x3F@\\x5B-\\x5D_\\x7B}¡§«¶·»¿;·՚-՟։֊־׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰૰෴๏๚๛༄-༒༔༺-༽྅࿐-࿔࿙࿚၊-၏჻፠-፨᐀᙭᙮᚛᚜᛫-᛭᜵᜶។-៖៘-៚᠀-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‐-‧‰-⁃⁅-⁑⁓-⁞⁽⁾₍₎〈〉❨-❵⟅⟆⟦-⟯⦃-⦘⧘-⧛⧼⧽⳹-⳼⳾⳿⵰⸀-⸮⸰-⸻、-〃〈-】〔-〟〰〽゠・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫﴾﴿︐-︙︰-﹒﹔-﹡﹣﹨﹪﹫!----]_{}⦅-・",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B1><97><ED><B4><9F><ED><B4><BF><ED>-<2D><><ED><B9><98><ED><B9><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B4><82><ED><BE><9F><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><8D><ED><B2><BB><ED><B2><BC><ED>-<2D><><ED><B3><81><ED>-<2D><><ED><B5><83><ED>-<2D><><ED>]"
}, {
name: "Pc",
alias: "Connector_Punctuation",
bmp: "_‿⁀⁔︳︴-_"
}, {
name: "Pd",
alias: "Dash_Punctuation",
bmp: "\\x2D֊־-―⸗⸚⸺⸻〜〰゠︱︲﹘﹣-"
}, {
name: "Pe",
alias: "Close_Punctuation",
bmp: "\\x29\\x5D}༻༽᚜⁆⁾₎〉❩❫❭❯❱❳❵⟆⟧⟩⟫⟭⟯⦄⦆⦈⦊⦌⦎⦐⦒⦔⦖⦘⧙⧛⧽⸣⸥⸧⸩〉》」』】〕〗〙〛〞〟﴿︘︶︸︺︼︾﹀﹂﹄﹈﹚﹜﹞)]}⦆」"
}, {
name: "Pf",
alias: "Final_Punctuation",
bmp: "»’”›⸃⸅⸊⸍⸝⸡"
}, {
name: "Pi",
alias: "Initial_Punctuation",
bmp: "«‘‛“‟‹⸂⸄⸉⸌⸜⸠"
}, {
name: "Po",
alias: "Other_Punctuation",
bmp: "!-#%-'\\x2A,\\x2E/:;\\x3F@\\x5C¡§¶·¿;·՚-՟։׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰૰෴๏๚๛༄-༒༔྅࿐-࿔࿙࿚၊-၏჻፠-፨᙭᙮᛫-᛭᜵᜶។-៖៘-៚᠀-᠅᠇-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‖‗†-‧‰-‸※-‾⁁-⁃⁇-⁑⁓⁕-⁞⳹-⳼⳾⳿⵰⸀⸁⸆-⸈⸋⸎-⸖⸘⸙⸛⸞⸟⸪-⸮⸰-⸹、-〃〽・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫︐-︖︙︰﹅﹆﹉-﹌﹐-﹒﹔-﹗﹟-﹡﹨﹪﹫!--'*,./:;?@\。、・",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B1><97><ED><B4><9F><ED><B4><BF><ED>-<2D><><ED><B9><98><ED><B9><BF><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B4><82><ED><BE><9F><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><8D><ED><B2><BB><ED><B2><BC><ED>-<2D><><ED><B3><81><ED>-<2D><><ED><B5><83><ED>-<2D><><ED>]"
}, {
name: "Ps",
alias: "Open_Punctuation",
bmp: "\\x28\\x5B\\x7B༺༼᚛„⁅⁽₍〈❪❬⟅⟦⟨⟪⟬⟮⦃⦅⦇⦉⦋⦍⦏⦑⦓⦕⦗⧘⧚⧼⸢⸤⸦⸨〈《「『【〖〘〚〝︗︵︷︹︻︽︿﹁﹃﹇﹙﹛﹝⦅「"
}, {
name: "S",
alias: "Symbol",
bmp: "\\x24\\x2B<->\\x5E`\\x7C~¢-¦¨©¬®-±´¸×÷˂-˅˒-˟˥-˫˭˯-˿͵΄΅϶҂֏؆-؈؋؎؏۞۩۽۾߶৲৳৺৻૱୰௳-௺౿൹฿༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙៛᥀᧞-᧿᭡-᭪᭴-᭼᾽᾿-῁῍-῏῝-῟῭-`´῾⁄⁒⁺-⁼₊-₌₠-₺℀℁℃-℆℈℉℔№-℘℞-℣℥℧℩℮℺℻⅀-⅄⅊-⅍⅏←-⌨⌫-⏳␀-␦⑀-⑊⒜-ⓩ─-⛿✁-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭌⭐-⭙⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿゛゜㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꜀-꜖꜠꜡꞉꞊꠨-꠫꠶-꠹꩷-꩹﬩﮲-﯁﷼﷽﹢﹤-﹦﹩$+<->^`|~¢-₩│-○<EFBFAE>",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><BE><ED><B1><80><ED>-<2D><><ED><B3><B7><ED>-<2D><><ED><B3><BC><ED>-<2D><><ED><B4><BD><ED>-<2D><><ED><B5><83><ED>-<2D><><ED><B5><A7><ED>-<2D><><ED><B9><80><ED>-<2D><><ED><B9><8F><ED>-<2D><><ED><BB><85><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><BB><81><ED><BB><9B><ED><BB><BB><ED><BC><95><ED><BC><B5><ED><BD><8F><ED><BD><AF><ED><BE><89><ED><BE><A9><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><AB><ED>-<2D><><ED><B2><93><ED>-<2D><><ED><B2><AE><ED>-<2D><><ED><B2><BE><ED>-<2D><><ED><B3><8F><ED>-<2D><><ED><B3><9F><ED>-<2D><><ED><B4><AE><ED>-<2D><><ED><B5><AB><ED>-<2D><><ED><B6><9A><ED>-<2D><><ED><B8><82><ED>-<2D><><ED><B8><BA><ED>-<2D><><ED><B9><88><ED><B9><90><ED><B9><91><ED>-<2D><><ED><BC><A0><ED>-<2D><><ED><BC><B5><ED>-<2D><><ED><BD><BC><ED>-<2D><><ED><BE><93><ED>-<2D><><ED><BF><84><ED>-<2D><><ED><BF><8A><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B3><B5><ED>-<2D><><ED><B4><A6><ED>-<2D><><ED><B5><A4><ED>-<2D><><ED><B5><AC><ED><B6><83><ED><B6><84><ED>-<2D><><ED><B6><A9><ED>-<2D><><ED><B7><9D><ED>-<2D><><ED><B9><81><ED><B9><85><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B4><BF><ED>-<2D><><ED><B6><89><ED>-<2D><><ED><B6><9B><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><BB><B0><ED>]"
}, {
name: "Sc",
alias: "Currency_Symbol",
bmp: "\\x24¢-¥֏؋৲৳৻૱௹฿៛₠-₺꠸﷼﹩$¢£¥₩"
}, {
name: "Sk",
alias: "Modifier_Symbol",
bmp: "\\x5E`¨¯´¸˂-˅˒-˟˥-˫˭˯-˿͵΄΅᾽᾿-῁῍-῏῝-῟῭-`´῾゛゜꜀-꜖꜠꜡꞉꞊﮲-﯁^` ̄"
}, {
name: "Sm",
alias: "Math_Symbol",
bmp: "\\x2B<->\\x7C~¬±×÷϶؆-؈⁄⁒⁺-⁼₊-₌℘⅀-⅄⅋←-↔↚↛↠↣↦↮⇎⇏⇒⇔⇴-⋿⌈-⌋⌠⌡⍼⎛-⎳⏜-⏡▷◁◸-◿♯⟀-⟄⟇-⟥⟰-⟿⤀-⦂⦙-⧗⧜-⧻⧾-⫿⬰-⭄⭇-⭌﬩﹢﹤-﹦+<->|~¬←-↓",
astral: "<22><><ED>[<5B><><ED><BB><B0><ED>]|<7C><><ED>[<5B><><ED><BB><81><ED><BB><9B><ED><BB><BB><ED><BC><95><ED><BC><B5><ED><BD><8F><ED><BD><AF><ED><BE><89><ED><BE><A9><ED>]"
}, {
name: "So",
alias: "Other_Symbol",
bmp: "¦©®°҂؎؏۞۩۽۾߶৺୰௳-௸௺౿൹༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙᥀᧞-᧿᭡-᭪᭴-᭼℀℁℃-℆℈℉℔№℗℞-℣℥℧℩℮℺℻⅊⅌⅍⅏↕-↙↜-↟↡↢↤↥↧-↭↯-⇍⇐⇑⇓⇕-⇳⌀-⌇⌌-⌟⌢-⌨⌫-⍻⍽-⎚⎴-⏛⏢-⏳␀-␦⑀-⑊⒜-ⓩ─-▶▸-◀◂-◷☀-♮♰-⛿✁-❧➔-➿⠀-⣿⬀-⬯⭅⭆⭐-⭙⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꠨-꠫꠶꠷꠹꩷-꩹﷽¦■○<EFBFAE>",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><BE><ED><B1><80><ED>-<2D><><ED><B3><B7><ED>-<2D><><ED><B3><BC><ED>-<2D><><ED><B4><BD><ED>-<2D><><ED><B5><83><ED>-<2D><><ED><B5><A7><ED>-<2D><><ED><B9><80><ED>-<2D><><ED><B9><8F><ED>-<2D><><ED><BB><85><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B3><B5><ED>-<2D><><ED><B4><A6><ED>-<2D><><ED><B5><A4><ED>-<2D><><ED><B5><AC><ED><B6><83><ED><B6><84><ED>-<2D><><ED><B6><A9><ED>-<2D><><ED><B7><9D><ED>-<2D><><ED><B9><81><ED><B9><85><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><AB><ED>-<2D><><ED><B2><93><ED>-<2D><><ED><B2><AE><ED>-<2D><><ED><B2><BE><ED>-<2D><><ED><B3><8F><ED>-<2D><><ED><B3><9F><ED>-<2D><><ED><B4><AE><ED>-<2D><><ED><B5><AB><ED>-<2D><><ED><B6><9A><ED>-<2D><><ED><B8><82><ED>-<2D><><ED><B8><BA><ED>-<2D><><ED><B9><88><ED><B9><90><ED><B9><91><ED>-<2D><><ED><BC><A0><ED>-<2D><><ED><BC><B5><ED>-<2D><><ED><BD><BC><ED>-<2D><><ED><BE><93><ED>-<2D><><ED><BF><84><ED>-<2D><><ED><BF><8A><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B4><BF><ED>-<2D><><ED><B6><89><ED>-<2D><><ED><B6><9B><ED>-<2D><><ED>]"
}, {
name: "Z",
alias: "Separator",
bmp: "   -\u2028\u2029 "
}, {
name: "Zl",
alias: "Line_Separator",
bmp: "\u2028"
}, {
name: "Zp",
alias: "Paragraph_Separator",
bmp: "\u2029"
}, {
name: "Zs",
alias: "Space_Separator",
bmp: "   - "
} ]);
}(n), function(n) {
if (!n.addUnicodeData) throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");
n.addUnicodeData([ {
name: "ASCII",
bmp: "\0-"
}, {
name: "Alphabetic",
bmp: "A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͅͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևְ-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-ٗٙ-ٟٮ-ۓە-ۜۡ-ۭۨ-ۯۺ-ۼۿܐ-ܿݍ-ޱߊ-ߪߴߵߺࠀ-ࠗࠚ-ࠬࡀ-ࡘࢠࢢ-ࢬࣤ-ࣰࣩ-ࣾऀ-ऻऽ-ौॎ-ॐॕ-ॣॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হঽ-ৄেৈোৌৎৗড়ঢ়য়-ৣৰৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਾ-ੂੇੈੋੌੑਖ਼-ੜਫ਼ੰ-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽ-ૅે-ૉોૌૐૠ-ૣଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽ-ୄେୈୋୌୖୗଡ଼ଢ଼ୟ-ୣୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-ௌௐௗఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-ౌౕౖౘౙౠ-ౣಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೄೆ-ೈೊ-ೌೕೖೞೠ-ೣೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൌൎൗൠ-ൣൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆා-ුූෘ-ෟෲෳก-ฺเ-ๆํກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆໍໜ-ໟༀཀ-ཇཉ-ཬཱ-ཱྀྈ-ྗྙ-ྼက-ံးျ-ဿၐ-ၢၥ-ၨၮ-ႆႎႜႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜓᜠ-ᜳᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-ឳា-ៈៗៜᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-ᤸᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨛᨠ-ᩞᩡ-ᩴᪧᬀ-ᬳᬵ-ᭃᭅ-ᭋᮀ-ᮩᮬ-ᮯᮺ-ᯥᯧ-ᯱᰀ-ᰵᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳳᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ--ℝℤΩℨK--ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⒶ-ⓩⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙴ-ꙻꙿ-ꚗꚟ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠧꡀ-ꡳꢀ-ꣃꣲ-ꣷꣻꤊ-ꤪꤰ-ꥒꥠ-ꥼꦀ-ꦲꦴ-ꦿꧏꨀ-ꨶꩀ-ꩍꩠ-ꩶꩺꪀ-ꪾꫀꫂꫛ-ꫝꫠ-ꫯꫲ-ꫵꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA--zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><85><ED>-<2D><><ED><B2><B8><ED>-<2D><><ED><B3><A8><ED>-<2D><><ED><B4><B2><ED>-<2D><><ED><B6><BF><ED>-<2D><><ED>]|[<5B><><ED><A0><8C><ED>-<2D><><ED><A1><A8><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><85><ED><B0><88><ED>-<2D><><ED><B0><B5><ED><B0><B7><ED><B0><B8><ED><B0><BC><ED>-<2D><><ED><B1><95><ED>-<2D><><ED><B4><95><ED>-<2D><><ED><B4><B9><ED>-<2D><><ED><B6><B7><ED><B6><BE><ED><B6><BF><ED>-<2D><><ED><B8><83><ED><B8><85><ED><B8><86><ED>-<2D><><ED><B8><93><ED>-<2D><><ED><B8><97><ED>-<2D><><ED><B8><B3><ED>-<2D><><ED><B9><BC><ED>-<2D><><ED><BC><B5><ED>-<2D><><ED><BD><95><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><8B><ED>-<2D><><ED><B0><A6><ED>-<2D><><ED><B0><BA><ED><B0><BC><ED><B0><BD><ED>-<2D><><ED><B1><8D><ED>-<2D><><ED><B1><9D><ED>-<2D><><ED><B3><BA><ED>-<2D><><ED><B5><B4><ED>-<2D><><ED><BA><9C><ED>-<2D><><ED><BB><90><ED>-<2D><><ED><BC><9E><ED>-<2D><><ED><BD><8A><ED>-<2D><><ED><BE><9D><ED>-<2D><><ED><BF><83><ED>-<2D><><ED><BF><8F><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BD><84><ED>-<2D><><ED><BD><BE><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><94><ED>-<2D><><ED><B2><9C><ED><B2><9E><ED><B2><9F><ED><B2><A2><ED><B2><A5><ED><B2><A6><ED>-<2D><><ED><B2><AC><ED>-<2D><><ED><B2><B9><ED><B2><BB><ED>-<2D><><ED><B3><83><ED>-<2D><><ED><B4><85><ED>-<2D><><ED><B4><8A><ED>-<2D><><ED><B4><94><ED>-<2D><><ED><B4><9C><ED>-<2D><><ED><B4><B9><ED>-<2D><><ED><B4><BE><ED>-<2D><><ED><B5><84><ED><B5><86><ED>-<2D><><ED><B5><90><ED>-<2D><><ED><BA><A5><ED>-<2D><><ED><BB><80><ED>-<2D><><ED><BB><9A><ED>-<2D><><ED><BB><BA><ED>-<2D><><ED><BC><94><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED><BD><8E><ED>-<2D><><ED><BD><AE><ED>-<2D><><ED><BE><88><ED>-<2D><><ED><BE><A8><ED>-<2D><><ED><BF><82><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B8><83><ED>-<2D><><ED><B8><9F><ED><B8><A1><ED><B8><A2><ED><B8><A4><ED><B8><A7><ED>-<2D><><ED><B8><B2><ED>-<2D><><ED><B8><B7><ED><B8><B9><ED><B8><BB><ED><B9><82><ED><B9><87><ED><B9><89><ED><B9><8B><ED>-<2D><><ED><B9><8F><ED><B9><91><ED><B9><92><ED><B9><94><ED><B9><97><ED><B9><99><ED><B9><9B><ED><B9><9D><ED><B9><9F><ED><B9><A1><ED><B9><A2><ED><B9><A4><ED>-<2D><><ED><B9><AA><ED>-<2D><><ED><B9><B2><ED>-<2D><><ED><B9><B7><ED>-<2D><><ED><B9><BC><ED><B9><BE><ED>-<2D><><ED><BA><89><ED>-<2D><><ED><BA><9B><ED>-<2D><><ED><BA><A3><ED>-<2D><><ED><BA><A9><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BB><96><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><80><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Any",
isBmpLast: !0,
bmp: "\0-￿",
astral: "[<5B><><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]"
}, {
name: "Assigned",
inverseOf: "Cn"
}, {
name: "Default_Ignorable_Code_Point",
bmp: "­͏------",
astral: "[<5B><><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Lowercase",
bmp: "a-zªµºß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʸˀˁˠ-ˤͅͱͳͷͺ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᶿḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷⁱⁿₐ-ₜℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎⅰ-ⅿↄⓐ-ⓩⰰ-ⱞⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱽⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟸ-ꟺff-stﬓ-ﬗa-",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><B3><ED>-<2D><><ED><B1><94><ED>-<2D><><ED><B1><A7><ED>-<2D><><ED><B2><9B><ED>-<2D><><ED><B2><B9><ED><B2><BB><ED>-<2D><><ED><B3><83><ED>-<2D><><ED><B3><8F><ED>-<2D><><ED><B4><83><ED>-<2D><><ED><B4><B7><ED>-<2D><><ED><B5><AB><ED>-<2D><><ED><B6><9F><ED>-<2D><><ED><B7><93><ED>-<2D><><ED><B8><87><ED>-<2D><><ED><B8><BB><ED>-<2D><><ED><B9><AF><ED>-<2D><><ED><BA><A5><ED>-<2D><><ED><BB><9A><ED>-<2D><><ED><BB><A1><ED>-<2D><><ED><BC><94><ED>-<2D><><ED><BC><9B><ED>-<2D><><ED><BD><8E><ED>-<2D><><ED><BD><95><ED>-<2D><><ED><BE><88><ED>-<2D><><ED><BE><8F><ED>-<2D><><ED><BF><82><ED>-<2D><><ED><BF><89><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Noncharacter_Code_Point",
bmp: "﷐-﷯￾￿",
astral: "[<5B><><ED><AC><BF><ED><AD><BF><ED><AE><BF><ED><AF><BF><ED><A0><BF><ED><A1><BF><ED><A2><BF><ED><AB><BF><ED><A5><BF><ED><A6><BF><ED><A7><BF><ED><A8><BF><ED><A3><BF><ED><AA><BF><ED><A9><BF><ED>][<5B><><ED><BF><BE><ED>]"
}, {
name: "Uppercase",
bmp: "A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ---ℝℤΩℨK--ℳℾℿⅅⅠ-ⅯↃⒶ-ⓏⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><99><ED>-<2D><><ED><B1><8D><ED>-<2D><><ED><B2><81><ED><B2><9C><ED><B2><9E><ED><B2><9F><ED><B2><A2><ED><B2><A5><ED><B2><A6><ED>-<2D><><ED><B2><AC><ED>-<2D><><ED><B2><B5><ED>-<2D><><ED><B3><A9><ED><B4><84><ED><B4><85><ED>-<2D><><ED><B4><8A><ED>-<2D><><ED><B4><94><ED>-<2D><><ED><B4><9C><ED><B4><B8><ED><B4><B9><ED>-<2D><><ED><B4><BE><ED>-<2D><><ED><B5><84><ED><B5><86><ED>-<2D><><ED><B5><90><ED>-<2D><><ED><B6><85><ED>-<2D><><ED><B6><B9><ED>-<2D><><ED><B7><AD><ED>-<2D><><ED><B8><A1><ED>-<2D><><ED><B9><95><ED>-<2D><><ED><BA><89><ED>-<2D><><ED><BB><80><ED>-<2D><><ED><BB><BA><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED><BD><AE><ED>-<2D><><ED><BE><A8><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "White_Space",
bmp: " -\r …  -\u2028\u2029 "
} ]);
}(n), function(n) {
if (!n.addUnicodeData) throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");
n.addUnicodeData([ {
name: "Arabic",
bmp: "؀-؄؆-؋؍-ؚ؞ؠ-ؿف-يٖ-ٟ٪-ٯٱ-ۜ۞-ۿݐ-ݿࢠࢢ-ࢬࣤ-ࣾﭐ-﯁ﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼ﹰ-ﹴﹶ-ﻼ",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B8><83><ED>-<2D><><ED><B8><9F><ED><B8><A1><ED><B8><A2><ED><B8><A4><ED><B8><A7><ED>-<2D><><ED><B8><B2><ED>-<2D><><ED><B8><B7><ED><B8><B9><ED><B8><BB><ED><B9><82><ED><B9><87><ED><B9><89><ED><B9><8B><ED>-<2D><><ED><B9><8F><ED><B9><91><ED><B9><92><ED><B9><94><ED><B9><97><ED><B9><99><ED><B9><9B><ED><B9><9D><ED><B9><9F><ED><B9><A1><ED><B9><A2><ED><B9><A4><ED>-<2D><><ED><B9><AA><ED>-<2D><><ED><B9><B2><ED>-<2D><><ED><B9><B7><ED>-<2D><><ED><B9><BC><ED><B9><BE><ED>-<2D><><ED><BA><89><ED>-<2D><><ED><BA><9B><ED>-<2D><><ED><BA><A3><ED>-<2D><><ED><BA><A9><ED>-<2D><><ED><BA><BB><ED><BB><B0><ED>]"
}, {
name: "Armenian",
bmp: "Ա-Ֆՙ-՟ա-և֊֏ﬓ-ﬗ"
}, {
name: "Avestan",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BC><B5><ED>-<2D><><ED>]"
}, {
name: "Balinese",
bmp: "ᬀ-ᭋ᭐-᭼"
}, {
name: "Bamum",
bmp: "ꚠ-꛷",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Batak",
bmp: "ᯀ-᯳᯼-᯿"
}, {
name: "Bengali",
bmp: "ঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-৻"
}, {
name: "Bopomofo",
bmp: "˪˫ㄅ-ㄭㆠ-ㆺ"
}, {
name: "Brahmi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B1><8D><ED>-<2D><><ED>]"
}, {
name: "Braille",
bmp: "-⣿"
}, {
name: "Buginese",
bmp: "ᨀ-ᨛ᨞᨟"
}, {
name: "Buhid",
bmp: "ᝀ-ᝓ"
}, {
name: "Canadian_Aboriginal",
bmp: "-ᙿᢰ-ᣵ"
}, {
name: "Carian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Chakma",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B4><B4><ED>-<2D><><ED>]"
}, {
name: "Cham",
bmp: "ꨀ-ꨶꩀ-ꩍ꩐-꩙꩜-꩟"
}, {
name: "Cherokee",
bmp: "-"
}, {
name: "Common",
bmp: "\0-@\\x5B-`\\x7B-©«-¹»-¿×÷ʹ-˟˥-˩ˬ-˿ʹ;΅·։،؛؟ـ٠-٩۝।॥฿࿕-࿘჻᛫-᛭᜵᜶᠂᠃᠅᳓᳡ᳩ-ᳬᳮ-ᳳᳵᳶ ---⁰⁴-⁾₀-₎₠-₺℀-℥℧-℩ℬ--⅍⅏-⅟↉←-⏳␀-␦⑀-⑊①-⛿✁-⟿⤀-⭌⭐-⭙⸀-⸻⿰-⿻ -〄〆〈-〠〰-〷〼-〿゛゜゠・ー㆐-㆟㇀-㇣㈠-㉟㉿-㋏㍘-㏿䷀-䷿꜀-꜡ꞈ-꞊꠰-꠹﴾﴿﷽︐-︙︰-﹒﹔-﹦﹨-﹫!---・ー゙゚¢-₩│-○-<2D>",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B4><82><ED>-<2D><><ED><B4><B3><ED>-<2D><><ED><B4><BF><ED>-<2D><><ED><B6><9B><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><AB><ED>-<2D><><ED><B2><93><ED>-<2D><><ED><B2><AE><ED>-<2D><><ED><B2><BE><ED>-<2D><><ED><B3><8F><ED>-<2D><><ED><B3><9F><ED>-<2D><><ED><B4><8A><ED>-<2D><><ED><B4><AE><ED>-<2D><><ED><B5><AB><ED>-<2D><><ED><B6><9A><ED>-<2D><><ED><B7><BF><ED><B8><81><ED><B8><82><ED>-<2D><><ED><B8><BA><ED>-<2D><><ED><B9><88><ED><B9><90><ED><B9><91><ED>-<2D><><ED><BC><A0><ED>-<2D><><ED><BC><B5><ED>-<2D><><ED><BD><BC><ED>-<2D><><ED><BE><93><ED>-<2D><><ED><BF><84><ED>-<2D><><ED><BF><8A><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED><B0><81><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B1><94><ED>-<2D><><ED><B2><9C><ED><B2><9E><ED><B2><9F><ED><B2><A2><ED><B2><A5><ED><B2><A6><ED>-<2D><><ED><B2><AC><ED>-<2D><><ED><B2><B9><ED><B2><BB><ED>-<2D><><ED><B3><83><ED>-<2D><><ED><B4><85><ED>-<2D><><ED><B4><8A><ED>-<2D><><ED><B4><94><ED>-<2D><><ED><B4><9C><ED>-<2D><><ED><B4><B9><ED>-<2D><><ED><B4><BE><ED>-<2D><><ED><B5><84><ED><B5><86><ED>-<2D><><ED><B5><90><ED>-<2D><><ED><BA><A5><ED>-<2D><><ED><BF><8B><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B3><B5><ED>-<2D><><ED><B4><A6><ED>-<2D><><ED><B5><A6><ED>-<2D><><ED><B5><BA><ED><B6><83><ED><B6><84><ED>-<2D><><ED><B6><A9><ED>-<2D><><ED><B7><9D><ED>-<2D><><ED><BD><96><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><B0><BE><ED><B1><80><ED>-<2D><><ED><B3><B7><ED>-<2D><><ED><B3><BC><ED>-<2D><><ED><B4><BD><ED>-<2D><><ED><B5><83><ED>-<2D><><ED><B5><A7><ED>-<2D><><ED><B9><80><ED>-<2D><><ED><B9><8F><ED>-<2D><><ED><BB><85><ED>-<2D><><ED>]"
}, {
name: "Coptic",
bmp: "Ϣ-ϯⲀ-ⳳ⳹-⳿"
}, {
name: "Cuneiform",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B1><A2><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Cypriot",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><85><ED><B0><88><ED>-<2D><><ED><B0><B5><ED><B0><B7><ED><B0><B8><ED><B0><BC><ED>]"
}, {
name: "Cyrillic",
bmp: "Ѐ-҄҇-ԧᴫᵸⷠ-ⷿꙀ-ꚗꚟ"
}, {
name: "Deseret",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Devanagari",
bmp: "ऀ-ॐ॓-ॣ०-ॷॹ-ॿ꣠-ꣻ"
}, {
name: "Egyptian_Hieroglyphs",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Ethiopic",
bmp: "-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፼ᎀ-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ"
}, {
name: "Georgian",
bmp: "Ⴀ-ჅჇჍა-ჺჼ-ჿⴀ-ⴥⴧⴭ"
}, {
name: "Glagolitic",
bmp: "Ⰰ-Ⱞⰰ-ⱞ"
}, {
name: "Gothic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Greek",
bmp: "Ͱ-ͳ͵-ͷͺ-ͽ΄ΆΈ-ΊΌΎ-ΡΣ-ϡϰ-Ͽᴦ-ᴪᵝ-ᵡᵦ-ᵪᶿἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ῄῆ-ΐῖ-Ί῝-`ῲ-ῴῶ-῾Ω",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Gujarati",
bmp: "ઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૱"
}, {
name: "Gurmukhi",
bmp: "ਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵ"
}, {
name: "Han",
bmp: "⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〻㐀-䶵一-鿌豈-舘並-龎",
astral: "[<5B><><ED>-<2D><><ED><A1><A8><ED>-<2D><><ED>][<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BC><B4><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED><BB><96><ED>-<2D><><ED>]|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Hangul",
bmp: "ᄀ-ᇿ〮〯ㄱ-ㆎ㈀-㈞㉠-㉾ꥠ-ꥼ가-힣ힰ-ퟆퟋ-ퟻᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ"
}, {
name: "Hanunoo",
bmp: "ᜠ-᜴"
}, {
name: "Hebrew",
bmp: "֑-ׇא-תװ-״יִ-זּטּ-לּמּנּסּףּפּצּ-ﭏ"
}, {
name: "Hiragana",
bmp: "ぁ-ゖゝ-ゟ",
astral: "𛀁|🈀"
}, {
name: "Imperial_Aramaic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B1><95><ED>-<2D><><ED>]"
}, {
name: "Inherited",
bmp: "̀-ًͯ҅҆-ٰٕ॒॑᳐-᳔᳒-᳢᳠-᳨᳭᳴᷀-ᷦ᷼-᷿‌‍⃐-〪⃰-゙゚〭︀-️︠-︦",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B5><A9><ED>-<2D><><ED><B6><82><ED>-<2D><><ED><B6><8B><ED>-<2D><><ED>]|𐇽|<7C><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Inscriptional_Pahlavi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BD><B2><ED>-<2D><><ED>]"
}, {
name: "Inscriptional_Parthian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BD><95><ED>-<2D><><ED>]"
}, {
name: "Javanese",
bmp: "ꦀ-꧍ꧏ-꧙꧞꧟"
}, {
name: "Kaithi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Kannada",
bmp: "ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲ"
}, {
name: "Katakana",
bmp: "ァ-ヺヽ-ヿㇰ-ㇿ㋐-㋾㌀-㍗ヲ-ッア-ン",
astral: "𛀀"
}, {
name: "Kayah_Li",
bmp: "꤀-꤯"
}, {
name: "Kharoshthi",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B8><83><ED><B8><85><ED><B8><86><ED>-<2D><><ED><B8><93><ED>-<2D><><ED><B8><97><ED>-<2D><><ED><B8><B3><ED>-<2D><><ED><B8><BA><ED>-<2D><><ED><B9><87><ED>-<2D><><ED>]"
}, {
name: "Khmer",
bmp: "ក-៝០-៩៰-៹᧠-᧿"
}, {
name: "Lao",
bmp: "ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟ"
}, {
name: "Latin",
bmp: "A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꟿff-stA--"
}, {
name: "Lepcha",
bmp: "ᰀ-᰷᰻-᱉ᱍ-ᱏ"
}, {
name: "Limbu",
bmp: "ᤀ-ᤜᤠ-ᤫᤰ-᤻᥀᥄-᥏"
}, {
name: "Linear_B",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B0><8B><ED>-<2D><><ED><B0><A6><ED>-<2D><><ED><B0><BA><ED><B0><BC><ED><B0><BD><ED>-<2D><><ED><B1><8D><ED>-<2D><><ED><B1><9D><ED>-<2D><><ED>]"
}, {
name: "Lisu",
bmp: "-"
}, {
name: "Lycian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Lydian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B4><B9><ED>]"
}, {
name: "Malayalam",
bmp: "ംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൵൹-ൿ"
}, {
name: "Mandaic",
bmp: "ࡀ-࡛࡞"
}, {
name: "Meetei_Mayek",
bmp: "ꫠ-꫶ꯀ-꯭꯰-꯹"
}, {
name: "Meroitic_Cursive",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B6><B7><ED><B6><BE><ED>]"
}, {
name: "Meroitic_Hieroglyphs",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Miao",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BD><84><ED>-<2D><><ED><BD><BE><ED>-<2D><><ED>]"
}, {
name: "Mongolian",
bmp: "᠀᠁᠄᠆-᠎᠐-᠙ᠠ-ᡷᢀ-ᢪ"
}, {
name: "Myanmar",
bmp: "က-႟ꩠ-ꩻ"
}, {
name: "New_Tai_Lue",
bmp: "ᦀ-ᦫᦰ-ᧉ᧐-᧚᧞᧟"
}, {
name: "Nko",
bmp: "߀-ߺ"
}, {
name: "Ogham",
bmp: "-᚜"
}, {
name: "Ol_Chiki",
bmp: "᱐-᱿"
}, {
name: "Old_Italic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BC><9E><ED>-<2D><><ED>]"
}, {
name: "Old_Persian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BF><83><ED>-<2D><><ED>]"
}, {
name: "Old_South_Arabian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Old_Turkic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Oriya",
bmp: "ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୷"
}, {
name: "Osmanya",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B2><9D><ED>-<2D><><ED>]"
}, {
name: "Phags_Pa",
bmp: "ꡀ-꡷"
}, {
name: "Phoenician",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B4><9B><ED>]"
}, {
name: "Rejang",
bmp: "ꤰ-꥓꥟"
}, {
name: "Runic",
bmp: "ᚠ-ᛪᛮ-ᛰ"
}, {
name: "Samaritan",
bmp: "ࠀ-࠭࠰-࠾"
}, {
name: "Saurashtra",
bmp: "ꢀ-꣄꣎-꣙"
}, {
name: "Sharada",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B7><88><ED>-<2D><><ED>]"
}, {
name: "Shavian",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED>]"
}, {
name: "Sinhala",
bmp: "ංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲ-෴"
}, {
name: "Sora_Sompeng",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><B3><A8><ED>-<2D><><ED>]"
}, {
name: "Sundanese",
bmp: "ᮀ-ᮿ᳀-᳇"
}, {
name: "Syloti_Nagri",
bmp: "ꠀ-꠫"
}, {
name: "Syriac",
bmp: "܀-܍܏-݊ݍ-ݏ"
}, {
name: "Tagalog",
bmp: "ᜀ-ᜌᜎ-᜔"
}, {
name: "Tagbanwa",
bmp: "ᝠ-ᝬᝮ-ᝰᝲᝳ"
}, {
name: "Tai_Le",
bmp: "ᥐ-ᥭᥰ-ᥴ"
}, {
name: "Tai_Tham",
bmp: "ᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪠-᪭"
}, {
name: "Tai_Viet",
bmp: "ꪀ-ꫂꫛ-꫟"
}, {
name: "Takri",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BA><B7><ED>-<2D><><ED>]"
}, {
name: "Tamil",
bmp: "ஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௺"
}, {
name: "Telugu",
bmp: "ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯౸-౿"
}, {
name: "Thaana",
bmp: "ހ-ޱ"
}, {
name: "Thai",
bmp: "ก-ฺเ-๛"
}, {
name: "Tibetan",
bmp: "ༀ-ཇཉ-ཬཱ-ྗྙ-ྼ྾-࿌࿎-࿔࿙࿚"
}, {
name: "Tifinagh",
bmp: "ⴰ-ⵧⵯ⵰⵿"
}, {
name: "Ugaritic",
astral: "<22><><ED>[<5B><><ED>-<2D><><ED><BE><9D><ED>]"
}, {
name: "Vai",
bmp: "ꔀ-ꘫ"
}, {
name: "Yi",
bmp: "ꀀ-ꒌ꒐-꓆"
} ]);
}(n), n;
});
var saveAs = saveAs || navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator) || function(n) {
var e = n.document, t = function() {
return n.URL || n.webkitURL || n;
}, i = n.URL || n.webkitURL || n, a = e.createElementNS("http://www.w3.org/1999/xhtml", "a"), r = !n.externalHost && "download" in a, o = function(t) {
var i = e.createEvent("MouseEvents");
i.initMouseEvent("click", !0, !1, n, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), t.dispatchEvent(i);
}, s = n.webkitRequestFileSystem, l = n.requestFileSystem || s || n.mozRequestFileSystem, c = function(e) {
(n.setImmediate || n.setTimeout)(function() {
throw e;
}, 0);
}, M = "application/octet-stream", u = 0, d = [], h = function() {
for (var n = d.length; n--; ) {
var e = d[n];
"string" == typeof e ? i.revokeObjectURL(e) : e.remove();
}
d.length = 0;
}, S = function(n, e, t) {
e = [].concat(e);
for (var i = e.length; i--; ) {
var a = n["on" + e[i]];
if ("function" == typeof a) try {
a.call(n, t || n);
} catch (r) {
c(r);
}
}
}, p = function(e, i) {
var c, h, p, m = this, g = e.type, f = !1, b = function() {
var n = t().createObjectURL(e);
return d.push(n), n;
}, y = function() {
S(m, "writestart progress write writeend".split(" "));
}, v = function() {
(f || !c) && (c = b(e)), h ? h.location.href = c : window.open(c, "_blank"), m.readyState = m.DONE,
y();
}, D = function(n) {
return function() {
return m.readyState !== m.DONE ? n.apply(this, arguments) : void 0;
};
}, w = {
create: !0,
exclusive: !1
};
return m.readyState = m.INIT, i || (i = "download"), r ? (c = b(e), a.href = c,
a.download = i, o(a), m.readyState = m.DONE, y(), void 0) : (n.chrome && g && g !== M && (p = e.slice || e.webkitSlice,
e = p.call(e, 0, e.size, M), f = !0), s && "download" !== i && (i += ".download"),
(g === M || s) && (h = n), l ? (u += e.size, l(n.TEMPORARY, u, D(function(n) {
n.root.getDirectory("saved", w, D(function(n) {
var t = function() {
n.getFile(i, w, D(function(n) {
n.createWriter(D(function(t) {
t.onwriteend = function(e) {
h.location.href = n.toURL(), d.push(n), m.readyState = m.DONE, S(m, "writeend", e);
}, t.onerror = function() {
var n = t.error;
n.code !== n.ABORT_ERR && v();
}, "writestart progress write abort".split(" ").forEach(function(n) {
t["on" + n] = m["on" + n];
}), t.write(e), m.abort = function() {
t.abort(), m.readyState = m.DONE;
}, m.readyState = m.WRITING;
}), v);
}), v);
};
n.getFile(i, {
create: !1
}, D(function(n) {
n.remove(), t();
}), D(function(n) {
n.code === n.NOT_FOUND_ERR ? t() : v();
}));
}), v);
}), v), void 0) : (v(), void 0));
}, m = p.prototype, g = function(n, e) {
return new p(n, e);
};
return m.abort = function() {
var n = this;
n.readyState = n.DONE, S(n, "abort");
}, m.readyState = m.INIT = 0, m.WRITING = 1, m.DONE = 2, m.error = m.onwritestart = m.onprogress = m.onwrite = m.onabort = m.onerror = m.onwriteend = null,
n.addEventListener("unload", h, !1), g;
}(self);
"undefined" != typeof module && (module.exports = saveAs), define("FileSaver", function() {}),
"undefined" != typeof module && module.exports && (module.exports = printStackTrace),
printStackTrace.implementation = function() {}, printStackTrace.implementation.prototype = {
run: function(n, e) {
return n = n || this.createException(), e = e || this.mode(n), "other" === e ? this.other(arguments.callee) : this[e](n);
},
createException: function() {
try {
this.undef();
} catch (n) {
return n;
}
},
mode: function(n) {
return n.arguments && n.stack ? "chrome" : n.stack && n.sourceURL ? "safari" : n.stack && n.number ? "ie" : "string" == typeof n.message && "undefined" != typeof window && window.opera ? n.stacktrace ? n.message.indexOf("\n") > -1 && n.message.split("\n").length > n.stacktrace.split("\n").length ? "opera9" : n.stack ? n.stacktrace.indexOf("called from line") < 0 ? "opera10b" : "opera11" : "opera10a" : "opera9" : n.stack && !n.fileName ? "chrome" : n.stack ? "firefox" : "other";
},
instrumentFunction: function(n, e, t) {
n = n || window;
var i = n[e];
n[e] = function() {
return t.call(this, printStackTrace().slice(4)), n[e]._instrumented.apply(this, arguments);
}, n[e]._instrumented = i;
},
deinstrumentFunction: function(n, e) {
n[e].constructor === Function && n[e]._instrumented && n[e]._instrumented.constructor === Function && (n[e] = n[e]._instrumented);
},
chrome: function(n) {
var e = (n.stack + "\n").replace(/^\S[^\(]+?[\n$]/gm, "").replace(/^\s+(at eval )?at\s+/gm, "").replace(/^([^\(]+?)([\n$])/gm, "{anonymous}()@$1$2").replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm, "{anonymous}()@$1").split("\n");
return e.pop(), e;
},
safari: function(n) {
return n.stack.replace(/\[native code\]\n/m, "").replace(/^(?=\w+Error\:).*$\n/m, "").replace(/^@/gm, "{anonymous}()@").split("\n");
},
ie: function(n) {
var e = /^.*at (\w+) \(([^\)]+)\)$/gm;
return n.stack.replace(/at Anonymous function /gm, "{anonymous}()@").replace(/^(?=\w+Error\:).*$\n/m, "").replace(e, "$1@$2").split("\n");
},
firefox: function(n) {
return n.stack.replace(/(?:\n@:0)?\s+$/m, "").replace(/^[\(@]/gm, "{anonymous}()@").split("\n");
},
opera11: function(n) {
for (var e = "{anonymous}", t = /^.*line (\d+), column (\d+)(?: in (.+))? in (\S+):$/, i = n.stacktrace.split("\n"), a = [], r = 0, o = i.length; o > r; r += 2) {
var s = t.exec(i[r]);
if (s) {
var l = s[4] + ":" + s[1] + ":" + s[2], c = s[3] || "global code";
c = c.replace(/<anonymous function: (\S+)>/, "$1").replace(/<anonymous function>/, e),
a.push(c + "@" + l + " -- " + i[r + 1].replace(/^\s+/, ""));
}
}
return a;
},
opera10b: function(n) {
for (var e = /^(.*)@(.+):(\d+)$/, t = n.stacktrace.split("\n"), i = [], a = 0, r = t.length; r > a; a++) {
var o = e.exec(t[a]);
if (o) {
var s = o[1] ? o[1] + "()" : "global code";
i.push(s + "@" + o[2] + ":" + o[3]);
}
}
return i;
},
opera10a: function(n) {
for (var e = "{anonymous}", t = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i, i = n.stacktrace.split("\n"), a = [], r = 0, o = i.length; o > r; r += 2) {
var s = t.exec(i[r]);
if (s) {
var l = s[3] || e;
a.push(l + "()@" + s[2] + ":" + s[1] + " -- " + i[r + 1].replace(/^\s+/, ""));
}
}
return a;
},
opera9: function(n) {
for (var e = "{anonymous}", t = /Line (\d+).*script (?:in )?(\S+)/i, i = n.message.split("\n"), a = [], r = 2, o = i.length; o > r; r += 2) {
var s = t.exec(i[r]);
s && a.push(e + "()@" + s[2] + ":" + s[1] + " -- " + i[r + 1].replace(/^\s+/, ""));
}
return a;
},
other: function(n) {
for (var e, t, i = "{anonymous}", a = /function\s*([\w\-$]+)?\s*\(/i, r = [], o = 10; n && n.arguments && r.length < o; ) e = a.test(n.toString()) ? RegExp.$1 || i : i,
t = Array.prototype.slice.call(n.arguments || []), r[r.length] = e + "(" + this.stringifyArguments(t) + ")",
n = n.caller;
return r;
},
stringifyArguments: function(n) {
for (var e = [], t = Array.prototype.slice, i = 0; i < n.length; ++i) {
var a = n[i];
void 0 === a ? e[i] = "undefined" : null === a ? e[i] = "null" : a.constructor && (a.constructor === Array ? e[i] = a.length < 3 ? "[" + this.stringifyArguments(a) + "]" : "[" + this.stringifyArguments(t.call(a, 0, 1)) + "..." + this.stringifyArguments(t.call(a, -1)) + "]" : a.constructor === Object ? e[i] = "#object" : a.constructor === Function ? e[i] = "#function" : a.constructor === String ? e[i] = '"' + a + '"' : a.constructor === Number && (e[i] = a));
}
return e.join(",");
},
sourceCache: {},
ajax: function(n) {
var e = this.createXMLHTTPObject();
if (e) try {
return e.open("GET", n, !1), e.send(null), e.responseText;
} catch (t) {}
return "";
},
createXMLHTTPObject: function() {
for (var n, e = [ function() {
return new XMLHttpRequest();
}, function() {
return new ActiveXObject("Msxml2.XMLHTTP");
}, function() {
return new ActiveXObject("Msxml3.XMLHTTP");
}, function() {
return new ActiveXObject("Microsoft.XMLHTTP");
} ], t = 0; t < e.length; t++) try {
return n = e[t](), this.createXMLHTTPObject = e[t], n;
} catch (i) {}
},
isSameDomain: function(n) {
return "undefined" != typeof location && -1 !== n.indexOf(location.hostname);
},
getSource: function(n) {
return n in this.sourceCache || (this.sourceCache[n] = this.ajax(n).split("\n")),
this.sourceCache[n];
},
guessAnonymousFunctions: function(n) {
for (var e = 0; e < n.length; ++e) {
var t = /\{anonymous\}\(.*\)@(.*)/, i = /^(.*?)(?::(\d+))(?::(\d+))?(?: -- .+)?$/, a = n[e], r = t.exec(a);
if (r) {
var o = i.exec(r[1]);
if (o) {
var s = o[1], l = o[2], c = o[3] || 0;
if (s && this.isSameDomain(s) && l) {
var M = this.guessAnonymousFunction(s, l, c);
n[e] = a.replace("{anonymous}", M);
}
}
}
}
return n;
},
guessAnonymousFunction: function(n, e) {
var t;
try {
t = this.findFunctionName(this.getSource(n), e);
} catch (i) {
t = "getSource failed with url: " + n + ", exception: " + i.toString();
}
return t;
},
findFunctionName: function(n, e) {
for (var t, i, a, r = /function\s+([^(]*?)\s*\(([^)]*)\)/, o = /['"]?([$_A-Za-z][$_A-Za-z0-9]*)['"]?\s*[:=]\s*function\b/, s = /['"]?([$_A-Za-z][$_A-Za-z0-9]*)['"]?\s*[:=]\s*(?:eval|new Function)\b/, l = "", c = Math.min(e, 20), M = 0; c > M; ++M) if (t = n[e - M - 1],
a = t.indexOf("//"), a >= 0 && (t = t.substr(0, a)), t) {
if (l = t + l, i = o.exec(l), i && i[1]) return i[1];
if (i = r.exec(l), i && i[1]) return i[1];
if (i = s.exec(l), i && i[1]) return i[1];
}
return "(?)";
}
}, define("stacktrace", function() {}), define("utils", [ "jquery", "underscore", "crel", "xregexp", "FileSaver", "stacktrace" ], function($, _, crel, XRegExp) {
function jqElt(n) {
return _.isString(n) ? $(n) : n;
}
function inputError(n, e) {
void 0 !== e && (n.stop(!0, !0).addClass("error").delay(1e3).switchClass("error"),
e.stopPropagation());
}
var utils = {};
utils.getURLParameter = function(n) {
var e = new RegExp(n + "=(.+?)(&|$)");
try {
return decodeURIComponent(e.exec(location.search)[1]);
} catch (t) {
return void 0;
}
}, utils.getInputValue = function(n) {
return n = jqElt(n), n.val();
}, utils.setInputValue = function(n, e) {
n = jqElt(n), n.val(e);
}, utils.getInputTextValue = function(n, e, t) {
n = jqElt(n);
var i = n.val();
return void 0 === i ? (inputError(n, e), void 0) : (i = utils.trim(i), 0 === i.length || void 0 !== t && !i.match(t) ? (inputError(n, e),
void 0) : i);
}, utils.getInputIntValue = function(n, e, t, i) {
n = jqElt(n);
var a = utils.getInputTextValue(n, e);
return void 0 === a ? void 0 : (a = parseInt(a), isNaN(a) || void 0 !== t && t > a || void 0 !== i && a > i ? (inputError(n, e),
void 0) : a);
}, utils.getInputRegExpValue = function(n, e) {
n = jqElt(n);
var t = utils.getInputTextValue(n, e);
if (void 0 === t) return void 0;
try {
new RegExp(t);
} catch (i) {
return inputError(n, e), void 0;
}
return t;
}, utils.getInputJsValue = function(element, event) {
element = jqElt(element);
var value = utils.getInputTextValue(element, event);
if (void 0 === value) return void 0;
try {
eval("var test=" + value);
} catch (e) {
return inputError(element, event), void 0;
}
return value;
}, utils.getInputChecked = function(n) {
return n = jqElt(n), n.prop("checked");
}, utils.setInputChecked = function(n, e) {
n = jqElt(n), n.prop("checked", e).change();
}, utils.getInputRadio = function(n) {
return $("input:radio[name=" + n + "]:checked").prop("value");
}, utils.setInputRadio = function(n, e) {
$("input:radio[name=" + n + "][value=" + e + "]").prop("checked", !0).change();
}, utils.resetModalInputs = function() {
$(".modal input[type=text]:not([disabled]), .modal input[type=password], .modal textarea").val(""),
$(".modal input[type=checkbox]").prop("checked", !1).change();
}, utils.trim = function(n) {
return $.trim(n);
}, utils.slugify = function(n) {
return n.toLowerCase().replace(/\s/g, "-").replace(XRegExp("[^\\p{L}]", "g"), "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
}, utils.checkUrl = function(n, e) {
return n ? (0 !== n.indexOf("http") && (n = "http://" + n), e && -1 === n.indexOf("/", n.length - 1) && (n += "/"),
n) : n;
}, utils.addModal = function(n, e) {
var t = crel("div", {
"class": "modal " + n
});
t.innerHTML = e, document.body.appendChild(t);
}, utils.createBackdrop = function(n, e) {
var t = crel("div", {
"class": "modal-backdrop in",
"data-toggle": n,
"data-target": e
});
return document.body.appendChild(t), t;
}, utils.popupWindow = function(n, e, t, i) {
var a = screen.width / 2 - t / 2, r = screen.height / 2 - i / 2;
return window.open(n, e, [ "toolbar=no, ", "location=no, ", "directories=no, ", "status=no, ", "menubar=no, ", "scrollbars=no, ", "resizable=no, ", "copyhistory=no, ", "width=" + t + ", ", "height=" + i + ", ", "top=" + r + ", ", "left=" + a ].join(""));
}, utils.saveAs = function(n, e) {
if (void 0 !== saveAs) _.isString(n) && (n = new Blob([ n ], {
type: "text/plain;charset=utf-8"
})), saveAs(n, e); else {
var t = "data:application/octet-stream;base64," + utils.encodeBase64(n);
window.open(t, "file");
}
}, utils.randomString = function() {
return _.random(4294967296).toString(36);
}, utils.updateCurrentTime = function() {
utils.currentTime = new Date().getTime();
}, utils.updateCurrentTime(), utils.storeAttributes = function(n) {
var e = n.syncIndex || n.publishIndex, t = _.omit(n, "syncIndex", "publishIndex", "provider");
t.provider = n.provider.providerId, localStorage[e] = JSON.stringify(t);
}, utils.retrieveIndexArray = function(n) {
try {
return _.compact(localStorage[n].split(";"));
} catch (e) {
return localStorage[n] = ";", [];
}
}, utils.appendIndexToArray = function(n, e) {
localStorage[n] += e + ";";
}, utils.removeIndexFromArray = function(n, e) {
localStorage[n] = localStorage[n].replace(";" + e + ";", ";");
}, utils.retrieveIgnoreError = function(n) {
try {
return JSON.parse(localStorage[n]);
} catch (e) {
return void 0;
}
};
var eventList = [];
utils.logValue = function(n) {
eventList.unshift(n), eventList.length > 5 && eventList.pop();
}, utils.logStackTrace = function() {
eventList.unshift(printStackTrace()), eventList.length > 5 && eventList.pop();
}, utils.formatEventList = function() {
var n = [];
return _.each(eventList, function(e) {
n.push("\n"), _.isString(e) ? n.push(e) : _.isArray(e) && (n.push(e[5] || ""), n.push(e[6] || ""));
}), n.join("");
}, utils.encodeBase64 = function(n) {
if (0 === n.length) return "";
var e, t, i = [], a = 0;
for (n = encodeURI(n), e = n.length; e > a; ) t = n[a], a += 1, "%" !== t ? i.push(t.charCodeAt(0)) : (t = n[a] + n[a + 1],
i.push(parseInt(t, 16)), a += 2);
var r, o, s = "=", l = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", c = [], M = i.length - i.length % 3;
for (r = 0; M > r; r += 3) o = i[r] << 16 | i[r + 1] << 8 | i[r + 2], c.push(l.charAt(o >> 18)),
c.push(l.charAt(63 & o >> 12)), c.push(l.charAt(63 & o >> 6)), c.push(l.charAt(63 & o));
switch (i.length - M) {
case 1:
o = i[r] << 16, c.push(l.charAt(o >> 18) + l.charAt(63 & o >> 12) + s + s);
break;
case 2:
o = i[r] << 16 | i[r + 1] << 8, c.push(l.charAt(o >> 18) + l.charAt(63 & o >> 12) + l.charAt(63 & o >> 6) + s);
}
return c.join("");
};
var mHash = [ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ];
return utils.crc32 = function(n) {
for (var e = 0, t = -1, i = 0; i < n.length; i++) e = 255 & (t ^ n.charCodeAt(i)),
t = t >>> 8 ^ mHash[e];
return t = -1 ^ t, 0 > t && (t = 4294967295 + t + 1), t.toString(16);
}, utils;
});
var VERSION = "2.1.7", MAIN_URL = "http://benweet.github.io/stackedit/", GOOGLE_ANALYTICS_ACCOUNT_ID = "UA-39556145-1", GOOGLE_API_KEY = "AIzaSyAeCU8CGcSkn0z9js6iocHuPBX4f_mMWkw", GOOGLE_DRIVE_APP_ID = "241271498917", DROPBOX_APP_KEY = "lq6mwopab8wskas", DROPBOX_APP_SECRET = "851fgnucpezy84t", BITLY_ACCESS_TOKEN = "317e033bfd48cf31155a68a536b1860013b09c4c", DEFAULT_FILE_TITLE = "Title", DEFAULT_FOLDER_NAME = "New folder", GDRIVE_DEFAULT_FILE_TITLE = "New Markdown document", EDITOR_DEFAULT_PADDING = 15, CHECK_ONLINE_PERIOD = 12e4, AJAX_TIMEOUT = 3e4, ASYNC_TASK_DEFAULT_TIMEOUT = 6e4, ASYNC_TASK_LONG_TIMEOUT = 18e4, SYNC_PERIOD = 18e4, USER_IDLE_THRESHOLD = 3e5, IMPORT_FILE_MAX_CONTENT_SIZE = 1e5, IMPORT_IMG_MAX_CONTENT_SIZE = 1e7, TEMPORARY_FILE_INDEX = "file.tempIndex", WELCOME_DOCUMENT_TITLE = "Welcome document", DOWNLOAD_PROXY_URL = "http://stackedit-download-proxy.herokuapp.com/", PICASA_PROXY_URL = "http://stackedit-picasa-proxy.herokuapp.com/", WORDPRESS_CLIENT_ID = "3185", WORDPRESS_PROXY_URL = "http://stackedit-wordpress-proxy.herokuapp.com/", SSH_PROXY_URL = "http://stackedit-ssh-proxy.herokuapp.com/", HTMLTOPDF_URL = "http://benweet.insomnia247.nl/stackedit-htmltopdf/", delayedFunction = void 0, BASE_URL = "http://localhost/stackedit/", GOOGLE_CLIENT_ID = "241271498917-lev37kef013q85avc91am1gccg5g8lrb.apps.googleusercontent.com", GITHUB_CLIENT_ID = "e47fef6055344579799d", GATEKEEPER_URL = "http://stackedit-gatekeeper-localhost.herokuapp.com/", TUMBLR_PROXY_URL = "http://stackedit-tumblr-proxy-local.herokuapp.com/";
0 === location.hostname.indexOf("benweet.github.io") && (BASE_URL = MAIN_URL, GOOGLE_CLIENT_ID = "241271498917-jpto9lls9fqnem1e4h6ppds9uob8rpvu.apps.googleusercontent.com",
GITHUB_CLIENT_ID = "fa0d09514da8377ee32e", GATEKEEPER_URL = "http://stackedit-gatekeeper.herokuapp.com/",
TUMBLR_PROXY_URL = "http://stackedit-tumblr-proxy.herokuapp.com/"), 0 === location.hostname.indexOf("benweet.insomnia247.nl") && (BASE_URL = "http://benweet.insomnia247.nl/stackedit/",
GOOGLE_CLIENT_ID = "241271498917-52hae7a08hv7ltenv7km8h7lghno9sk3.apps.googleusercontent.com",
GITHUB_CLIENT_ID = "d2943d6074b2d9c4a830", GATEKEEPER_URL = "http://stackedit-gatekeeper-insomnia.herokuapp.com/",
TUMBLR_PROXY_URL = "http://stackedit-tumblr-proxy-beta.herokuapp.com/");
var THEME_LIST = {
"default": "Default",
"blue-gray": "Blue-Gray",
night: "Night",
school: "School"
};
define("config", function() {}), define("storage", [ "underscore", "utils" ], function(n, e) {
var t = e.retrieveIndexArray("file.list"), i = localStorage.version;
if (void 0 === i && (localStorage.removeItem("sync.queue"), localStorage.removeItem("sync.current"),
localStorage.removeItem("file.counter"), n.each(t, function(t) {
localStorage[t + ".publish"] = ";";
var i = e.retrieveIndexArray(t + ".sync");
n.each(i, function(n) {
localStorage[n + ".contentCRC"] = "0", void 0 !== localStorage[n + ".etag"] && (localStorage[n + ".titleCRC"] = "0");
});
}), i = "v1"), "v1" == i) {
var a = localStorage["sync.gdrive.lastChangeId"];
a && (localStorage["gdrive.lastChangeId"] = a, localStorage.removeItem("sync.gdrive.lastChangeId"));
var r = localStorage["sync.dropbox.lastChangeId"];
r && (localStorage["dropbox.lastChangeId"] = r, localStorage.removeItem("sync.dropbox.lastChangeId"));
var o = "gdrive", s = "dropbox", l = "sync." + o + ".", c = "sync." + s + ".";
n.each(t, function(t) {
var i = e.retrieveIndexArray(t + ".sync");
n.each(i, function(n) {
var e = {};
0 === n.indexOf(l) ? (e.provider = o, e.id = n.substring(l.length), e.etag = localStorage[n + ".etag"],
e.contentCRC = localStorage[n + ".contentCRC"], e.titleCRC = localStorage[n + ".titleCRC"]) : 0 === n.indexOf(c) && (e.provider = s,
e.path = decodeURIComponent(n.substring(c.length)), e.version = localStorage[n + ".version"],
e.contentCRC = localStorage[n + ".contentCRC"]), localStorage[n] = JSON.stringify(e),
localStorage.removeItem(n + ".etag"), localStorage.removeItem(n + ".version"), localStorage.removeItem(n + ".contentCRC"),
localStorage.removeItem(n + ".titleCRC");
});
}), i = "v2";
}
if ("v2" == i && (n.each(t, function(t) {
n.has(localStorage, t + ".sync") || (localStorage.removeItem(t + ".title"), localStorage.removeItem(t + ".publish"),
localStorage.removeItem(t + ".content"), e.removeIndexFromArray("file.list", t));
}), i = "v3"), "v3" == i) {
var M = localStorage["file.current"];
void 0 !== M && -1 === localStorage["file.list"].indexOf(";" + M + ";") && localStorage.removeItem("file.current"),
i = "v4";
}
if ("v4" == i && (localStorage.removeItem("githubToken"), i = "v5"), "v5" == i && (n.each(t, function(t) {
var i = e.retrieveIndexArray(t + ".publish");
n.each(i, function(n) {
var e = JSON.parse(localStorage[n]);
"gdrive" == e.provider && (e.id = e.fileId, e.fileId = void 0, localStorage[n] = JSON.stringify(e));
});
}), i = "v6"), "v6" == i) {
var M = localStorage["file.current"];
void 0 !== M && (localStorage[M + ".selectTime"] = new Date().getTime(), localStorage.removeItem("file.current")),
i = "v7";
}
if ("v7" == i && (n.each(n.keys(localStorage), function(e) {
var t = e.match(/(file\.\S+\.)\S+/);
t && (n.has(localStorage, t[1] + "title") || localStorage.removeItem(e));
}), i = "v8"), "v8" == i && (n.each(n.keys(localStorage), function(n) {
var e = n.match(/file\.\S+\.(editorEnd|editorStart)/);
e && localStorage.removeItem(n);
}), i = "v9"), "v9" == i) {
if (n.has(localStorage, "settings")) {
var u = JSON.parse(localStorage.settings);
delete u.editorFontFamily, delete u.editorFontSize, u.template && (u.template = u.template.replace("http://benweet.github.io/stackedit/css/main-min.css", "http://benweet.github.io/stackedit/res-min/themes/default.css")),
localStorage.settings = JSON.stringify(u);
}
i = "v10";
}
if ("v10" == i) {
if (n.has(localStorage, "settings")) {
var u = JSON.parse(localStorage.settings);
u.extensionSettings && u.extensionSettings.markdownExtra && u.extensionSettings.markdownExtra.extensions && u.extensionSettings.markdownExtra.extensions.push("smartypants"),
localStorage.settings = JSON.stringify(u);
}
i = "v11";
}
localStorage.version = i;
}), define("settings", [ "underscore", "config", "storage" ], function(n) {
var e = {
layoutOrientation: "horizontal",
lazyRendering: !0,
editorFontFamily: 'Menlo, Consolas, "Courier New", Courier, monospace',
editorFontSize: 12,
maxWidth: 960,
defaultContent: "\n\n\n> Written with [StackEdit](" + MAIN_URL + ").",
commitMsg: "Published with " + MAIN_URL,
gdriveFullAccess: !0,
template: [ "<!DOCTYPE html>\n", "<html>\n", "<head>\n", '<meta charset="utf-8">\n', "<title><%= documentTitle %></title>\n", '<link rel="stylesheet" href="', MAIN_URL, 'res-min/themes/default.css" />\n', '<script type="text/javascript" src="', MAIN_URL, 'lib/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>\n', "</head>\n", '<body><div class="container"><%= documentHTML %></div></body>\n', "</html>" ].join(""),
pdfTemplate: [ "<!DOCTYPE html>\n", "<html>\n", "<head>\n", '<meta charset="utf-8">\n', "<title><%= documentTitle %></title>\n", '<link rel="stylesheet" href="', MAIN_URL, 'res-min/themes/default.css" />\n', '<script type="text/x-mathjax-config">\n', 'MathJax.Hub.Config({ messageStyle: "none" });\n', "</script>\n", '<script type="text/javascript" src="', MAIN_URL, 'lib/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>\n', "</head>\n", '<body class="pdf"><%= documentHTML %></body>\n', "</html>" ].join(""),
sshProxy: SSH_PROXY_URL,
shortcuts: {},
extensionSettings: {}
};
try {
n.extend(e, JSON.parse(localStorage.settings));
} catch (t) {}
return e;
}), define("classes/Extension", [], function() {
function n(n, e, t, i, a) {
this.extensionId = n, this.extensionName = e, this.isOptional = t, this.disableInViewer = i,
this.disableInLight = a;
}
return n;
}), define("text", [ "module" ], function(n) {
var e, t, i, a, r, o = [ "Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0" ], s = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, l = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im, c = "undefined" != typeof location && location.href, M = c && location.protocol && location.protocol.replace(/\:/, ""), u = c && location.hostname, d = c && (location.port || void 0), h = {}, S = n.config && n.config() || {};
return e = {
version: "2.0.10",
strip: function(n) {
if (n) {
n = n.replace(s, "");
var e = n.match(l);
e && (n = e[1]);
} else n = "";
return n;
},
jsEscape: function(n) {
return n.replace(/(['\\])/g, "\\$1").replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r").replace(/[\u2028]/g, "\\u2028").replace(/[\u2029]/g, "\\u2029");
},
createXhr: S.createXhr || function() {
var n, e, t;
if ("undefined" != typeof XMLHttpRequest) return new XMLHttpRequest();
if ("undefined" != typeof ActiveXObject) for (e = 0; 3 > e; e += 1) {
t = o[e];
try {
n = new ActiveXObject(t);
} catch (i) {}
if (n) {
o = [ t ];
break;
}
}
return n;
},
parseName: function(n) {
var e, t, i, a = !1, r = n.indexOf("."), o = 0 === n.indexOf("./") || 0 === n.indexOf("../");
return -1 !== r && (!o || r > 1) ? (e = n.substring(0, r), t = n.substring(r + 1, n.length)) : e = n,
i = t || e, r = i.indexOf("!"), -1 !== r && (a = "strip" === i.substring(r + 1),
i = i.substring(0, r), t ? t = i : e = i), {
moduleName: e,
ext: t,
strip: a
};
},
xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
useXhr: function(n, t, i, a) {
var r, o, s, l = e.xdRegExp.exec(n);
return l ? (r = l[2], o = l[3], o = o.split(":"), s = o[1], o = o[0], !(r && r !== t || o && o.toLowerCase() !== i.toLowerCase() || (s || o) && s !== a)) : !0;
},
finishLoad: function(n, t, i, a) {
i = t ? e.strip(i) : i, S.isBuild && (h[n] = i), a(i);
},
load: function(n, t, i, a) {
if (a.isBuild && !a.inlineText) return i(), void 0;
S.isBuild = a.isBuild;
var r = e.parseName(n), o = r.moduleName + (r.ext ? "." + r.ext : ""), s = t.toUrl(o), l = S.useXhr || e.useXhr;
return 0 === s.indexOf("empty:") ? (i(), void 0) : (!c || l(s, M, u, d) ? e.get(s, function(t) {
e.finishLoad(n, r.strip, t, i);
}, function(n) {
i.error && i.error(n);
}) : t([ o ], function(n) {
e.finishLoad(r.moduleName + "." + r.ext, r.strip, n, i);
}), void 0);
},
write: function(n, t, i) {
if (h.hasOwnProperty(t)) {
var a = e.jsEscape(h[t]);
i.asModule(n + "!" + t, "define(function () { return '" + a + "';});\n");
}
},
writeFile: function(n, t, i, a, r) {
var o = e.parseName(t), s = o.ext ? "." + o.ext : "", l = o.moduleName + s, c = i.toUrl(o.moduleName + s) + ".js";
e.load(l, i, function() {
var t = function(n) {
return a(c, n);
};
t.asModule = function(n, e) {
return a.asModule(n, c, e);
}, e.write(n, l, t, r);
}, r);
}
}, "node" === S.env || !S.env && "undefined" != typeof process && process.versions && process.versions.node && !process.versions["node-webkit"] ? (t = require.nodeRequire("fs"),
e.get = function(n, e, i) {
try {
var a = t.readFileSync(n, "utf8");
0 === a.indexOf("") && (a = a.substring(1)), e(a);
} catch (r) {
i(r);
}
}) : "xhr" === S.env || !S.env && e.createXhr() ? e.get = function(n, t, i, a) {
var r, o = e.createXhr();
if (o.open("GET", n, !0), a) for (r in a) a.hasOwnProperty(r) && o.setRequestHeader(r.toLowerCase(), a[r]);
S.onXhr && S.onXhr(o, n), o.onreadystatechange = function() {
var e, a;
4 === o.readyState && (e = o.status, e > 399 && 600 > e ? (a = new Error(n + " HTTP status: " + e),
a.xhr = o, i(a)) : t(o.responseText), S.onXhrComplete && S.onXhrComplete(o, n));
}, o.send(null);
} : "rhino" === S.env || !S.env && "undefined" != typeof Packages && "undefined" != typeof java ? e.get = function(n, e) {
var t, i, a = "utf-8", r = new java.io.File(n), o = java.lang.System.getProperty("line.separator"), s = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(r), a)), l = "";
try {
for (t = new java.lang.StringBuffer(), i = s.readLine(), i && i.length() && 65279 === i.charAt(0) && (i = i.substring(1)),
null !== i && t.append(i); null !== (i = s.readLine()); ) t.append(o), t.append(i);
l = String(t.toString());
} finally {
s.close();
}
e(l);
} : ("xpconnect" === S.env || !S.env && "undefined" != typeof Components && Components.classes && Components.interfaces) && (i = Components.classes,
a = Components.interfaces, Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),
r = "@mozilla.org/windows-registry-key;1" in i, e.get = function(n, e) {
var t, o, s, l = {};
r && (n = n.replace(/\//g, "\\")), s = new FileUtils.File(n);
try {
t = i["@mozilla.org/network/file-input-stream;1"].createInstance(a.nsIFileInputStream),
t.init(s, 1, 0, !1), o = i["@mozilla.org/intl/converter-input-stream;1"].createInstance(a.nsIConverterInputStream),
o.init(t, "utf-8", t.available(), a.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),
o.readString(t.available(), l), o.close(), t.close(), e(l.value);
} catch (c) {
throw new Error((s && s.path || "") + ": " + c);
}
}), e;
}), define("text!html/settingsExtensionsAccordion.html", [], function() {
return '<div class="panel">\n <div class="accordion-heading">\n <div class="checkbox pull-right">\n <label> <input id="input-enable-extension-<%= extensionId %>"\n type="checkbox"<% if(!isOptional) print(\'disabled\') %>>\n enabled\n </label>\n </div>\n <span data-toggle="collapse" data-parent=".accordion-extensions"\n class="accordion-toggle" href="#accordion-extensions-collapse-<%= extensionId %>">\n <%= extensionName %> </span>\n </div>\n <div id="accordion-extensions-collapse-<%= extensionId %>" class="collapse">\n <div class="accordion-inner clearfix"><%= settingsBlock %></div>\n </div>\n</div>\n';
});
var jsyaml = window.jsyaml = function() {
return require = function(n, e, t) {
function i(t, r) {
if (!e[t]) {
if (!n[t]) {
var o = "function" == typeof require && require;
if (!r && o) return o(t, !0);
if (a) return a(t, !0);
throw new Error("Cannot find module '" + t + "'");
}
var s = e[t] = {
exports: {}
};
n[t][0].call(s.exports, function(e) {
var a = n[t][1][e];
return i(a ? a : e);
}, s, s.exports);
}
return e[t].exports;
}
for (var a = "function" == typeof require && require, r = 0; r < t.length; r++) i(t[r]);
return i;
}({
"./index": [ function(n, e) {
e.exports = n("jPUIy0");
}, {} ],
jPUIy0: [ function(n, e) {
e.exports = n("./lib/js-yaml.js");
}, {
"./lib/js-yaml.js": 1
} ],
1: [ function(n, e) {
function t(n) {
return function() {
throw new Error("Function " + n + " is deprecated and cannot be used.");
};
}
var i = n("./js-yaml/loader"), a = n("./js-yaml/dumper");
e.exports.NIL = n("./js-yaml/common").NIL, e.exports.Type = n("./js-yaml/type"),
e.exports.Schema = n("./js-yaml/schema"), e.exports.FAILSAFE_SCHEMA = n("./js-yaml/schema/failsafe"),
e.exports.JSON_SCHEMA = n("./js-yaml/schema/json"), e.exports.CORE_SCHEMA = n("./js-yaml/schema/core"),
e.exports.DEFAULT_SAFE_SCHEMA = n("./js-yaml/schema/default_safe"), e.exports.DEFAULT_FULL_SCHEMA = n("./js-yaml/schema/default_full"),
e.exports.load = i.load, e.exports.loadAll = i.loadAll, e.exports.safeLoad = i.safeLoad,
e.exports.safeLoadAll = i.safeLoadAll, e.exports.dump = a.dump, e.exports.safeDump = a.safeDump,
e.exports.YAMLException = n("./js-yaml/exception"), e.exports.MINIMAL_SCHEMA = n("./js-yaml/schema/failsafe"),
e.exports.SAFE_SCHEMA = n("./js-yaml/schema/default_safe"), e.exports.DEFAULT_SCHEMA = n("./js-yaml/schema/default_full"),
e.exports.scan = t("scan"), e.exports.parse = t("parse"), e.exports.compose = t("compose"),
e.exports.addConstructor = t("addConstructor"), n("./js-yaml/require");
}, {
"./js-yaml/loader": 2,
"./js-yaml/dumper": 3,
"./js-yaml/type": 4,
"./js-yaml/schema/failsafe": 5,
"./js-yaml/schema/json": 6,
"./js-yaml/schema/core": 7,
"./js-yaml/schema/default_safe": 8,
"./js-yaml/schema/default_full": 9,
"./js-yaml/require": 10,
"./js-yaml/schema": 11,
"./js-yaml/common": 12,
"./js-yaml/exception": 13
} ],
14: [ function() {}, {} ],
2: [ function(n, e) {
function t(n, e, t) {
function i(e) {
return new s(e, new l(Le, n, He, qe, He - Je));
}
function a(n) {
throw i(n);
}
function r(n) {
var e = i(n);
if (_e) throw e;
console.warn(e.toString());
}
function M(e, t, i) {
var r, o, s, l;
if (t > e) {
if (l = n.slice(e, t), i && Ie) for (r = 0, o = l.length; o > r; r += 1) s = l.charCodeAt(r),
9 === s || s >= 32 && 1114111 >= s || a("expected valid JSON character");
Ye += l;
}
}
function z(n, e) {
var t, i, r, s;
for (o.isObject(e) || a("cannot merge mappings; the provided source object is unacceptable"),
t = Object.keys(e), r = 0, s = t.length; s > r; r += 1) i = t[r], d.call(n, i) || (n[i] = e[i]);
}
function W(n, e, t, i) {
var a, r;
if (t = String(t), null === n && (n = {}), "tag:yaml.org,2002:merge" === e) if (Array.isArray(i)) for (a = 0,
r = i.length; r > a; a += 1) z(n, i[a]); else z(n, i); else n[t] = i;
return n;
}
function V() {
G === Ve ? He += 1 : k === Ve ? He += G === n.charCodeAt(He + 1) ? 2 : 1 : a("a line break is expected"),
qe += 1, Je = He, Ve = n.charCodeAt(He);
}
function K(e, t) {
for (var i = 0; Oe > He; ) {
for (;R === Ve || w === Ve; ) Ve = n.charCodeAt(++He);
if (e && x === Ve) do Ve = n.charCodeAt(++He); while (Oe > He && G !== Ve && k !== Ve);
if (G !== Ve && k !== Ve) break;
for (V(), i += 1, We = 0; R === Ve; ) We += 1, Ve = n.charCodeAt(++He);
t > We && r("deficient indentation");
}
return i;
}
function X() {
var e, t;
return He === Je && (L === Ve || N === Ve) && n.charCodeAt(He + 1) === Ve && n.charCodeAt(He + 2) === Ve && (e = He + 3,
t = n.charCodeAt(e), e >= Oe || R === t || w === t || G === t || k === t) ? !0 : !1;
}
function te(n) {
1 === n ? Ye += " " : n > 1 && (Ye += o.repeat("\n", n - 1));
}
function re(e, t) {
var i, a, r, o, s, l, c, u, d = Be, S = Ye;
if (R === Ve || w === Ve || G === Ve || k === Ve || Y === Ve || Q === Ve || ee === Ve || Se === Ve || me === Ve || x === Ve || P === Ve || F === Ve || C === Ve || pe === Ve || Z === Ve || T === Ve || A === Ve || E === Ve || H === Ve || ie === Ve) return !1;
if ((O === Ve || L === Ve) && (a = n.charCodeAt(He + 1), R === a || w === a || G === a || k === a || t && (Y === a || Q === a || ee === a || Se === a || me === a))) return !1;
for (Be = h, Ye = "", r = o = He, s = !1; Oe > He; ) {
if ($ === Ve) {
if (a = n.charCodeAt(He + 1), R === a || w === a || G === a || k === a || t && (Y === a || Q === a || ee === a || Se === a || me === a)) break;
} else if (x === Ve) {
if (i = n.charCodeAt(He - 1), R === i || w === i || G === i || k === i) break;
} else {
if (He === Je && X() || t && (Y === Ve || Q === Ve || ee === Ve || Se === Ve || me === Ve)) break;
if (G === Ve || k === Ve) {
if (l = qe, c = Je, u = We, K(!1, -1), We >= e) {
s = !0;
continue;
}
He = o, qe = l, Je = c, We = u, Ve = n.charCodeAt(He);
break;
}
}
s && (M(r, o, !1), te(qe - l), r = o = He, s = !1), R !== Ve && w !== Ve && (o = He + 1),
Ve = n.charCodeAt(++He);
}
return M(r, o, !1), Ye ? !0 : (Be = d, Ye = S, !1);
}
function oe(e) {
var t, i;
if (T !== Ve) return !1;
for (Be = h, Ye = "", Ve = n.charCodeAt(++He), t = i = He; Oe > He; ) if (T === Ve) {
if (M(t, He, !0), Ve = n.charCodeAt(++He), T !== Ve) return !0;
t = i = He, Ve = n.charCodeAt(++He);
} else G === Ve || k === Ve ? (M(t, i, !0), te(K(!1, e)), t = i = He, Ve = n.charCodeAt(He)) : He === Je && X() ? a("unexpected end of the document within a single quoted scalar") : (Ve = n.charCodeAt(++He),
i = He);
a("unexpected end of the stream within a single quoted scalar");
}
function le(e) {
var t, i, r, o, s, l;
if (A !== Ve) return !1;
for (Be = h, Ye = "", Ve = n.charCodeAt(++He), t = i = He; Oe > He; ) {
if (A === Ve) return M(t, He, !0), Ve = n.charCodeAt(++He), !0;
if (ne === Ve) {
if (M(t, He, !0), Ve = n.charCodeAt(++He), G === Ve || k === Ve) K(!1, e); else if (ge[Ve]) Ye += ge[Ve],
Ve = n.charCodeAt(++He); else if (fe[Ve]) {
for (r = fe[Ve], l = 0, o = 1; r >= o; o += 1) s = 4 * (r - o), Ve = n.charCodeAt(++He),
Ve >= I && U >= Ve ? l |= Ve - I << s : Ve >= q && J >= Ve ? l |= Ve - q + 10 << s : Ve >= ae && se >= Ve ? l |= Ve - ae + 10 << s : a("expected hexadecimal character");
Ye += String.fromCharCode(l), Ve = n.charCodeAt(++He);
} else a("unknown escape sequence");
t = i = He;
} else G === Ve || k === Ve ? (M(t, i, !0), te(K(!1, e)), t = i = He, Ve = n.charCodeAt(He)) : He === Je && X() ? a("unexpected end of the document within a double quoted scalar") : (Ve = n.charCodeAt(++He),
i = He);
}
a("unexpected end of the stream within a double quoted scalar");
}
function ce(e) {
var t, i, r, o, s, l, c, M, u, d, h = !0, g = Te;
switch (Ve) {
case Q:
o = ee, c = !1, i = [];
break;
case Se:
o = me, c = !0, i = {};
break;
default:
return !1;
}
for (null !== Fe && (Pe[Fe] = i), Ve = n.charCodeAt(++He); Oe > He; ) {
if (K(!0, e), Ve === o) return Ve = n.charCodeAt(++He), Te = g, Be = c ? p : S,
Ye = i, !0;
h || a("missed comma between flow collection entries"), u = M = d = null, s = l = !1,
O === Ve && (r = n.charCodeAt(He + 1), (R === r || w === r || G === r || k === r) && (s = l = !0,
He += 1, Ve = r, K(!0, e))), t = qe, Re(e, m, !1, !0), u = Te, M = Ye, !l && qe !== t || $ !== Ve || (s = !0,
Ve = n.charCodeAt(++He), K(!0, e), Re(e, m, !1, !0), d = Ye), c ? W(i, u, M, d) : s ? i.push(W(null, u, M, d)) : i.push(M),
K(!0, e), Y === Ve ? (h = !0, Ve = n.charCodeAt(++He)) : h = !1;
}
a("unexpected end of the stream within a flow collection");
}
function Me(e) {
var t, i, r = y, s = !1, l = e, c = -1;
switch (Ve) {
case pe:
i = !1;
break;
case Z:
i = !0;
break;
default:
return !1;
}
for (Be = h, Ye = ""; Oe > He; ) if (Ve = n.charCodeAt(++He), B === Ve || L === Ve) y === r ? r = B === Ve ? D : v : a("repeat of a chomping mode identifier"); else {
if (!(Ve >= I && U >= Ve)) break;
I === Ve ? a("bad explicit indentation width of a block scalar; it cannot be less than one") : s ? a("repeat of an indentation width identifier") : (l = e + (Ve - _),
s = !0);
}
if (R === Ve || w === Ve) {
do Ve = n.charCodeAt(++He); while (R === Ve || w === Ve);
if (x === Ve) do Ve = n.charCodeAt(++He); while (Oe > He && G !== Ve && k !== Ve);
}
for (;Oe > He; ) {
for (V(), We = 0; (!s || l > We) && R === Ve; ) We += 1, Ve = n.charCodeAt(++He);
if (!s && We > l && (l = We), G !== Ve && k !== Ve) {
if (l > We) {
D === r ? Ye += o.repeat("\n", c + 1) : y === r && (Ye += "\n");
break;
}
s = !0, i ? R === Ve || w === Ve ? (Ye += o.repeat("\n", c + 1), c = 1) : 0 === c ? (Ye += " ",
c = 0) : (Ye += o.repeat("\n", c), c = 0) : (Ye += o.repeat("\n", c + 1), c = 0),
t = He;
do Ve = n.charCodeAt(++He); while (Oe > He && G !== Ve && k !== Ve);
M(t, He, !1);
} else c += 1;
}
return !0;
}
function ue(e) {
var t, i, r = Te, o = [], s = !1;
for (null !== Fe && (Pe[Fe] = o); Oe > He && L === Ve && (i = n.charCodeAt(He + 1),
R === i || w === i || G === i || k === i); ) if (s = !0, He += 1, Ve = i, K(!0, -1) && e >= We) o.push(null); else if (t = qe,
Re(e, f, !1, !0), o.push(Ye), K(!0, -1), (qe === t || We > e) && Oe > He) a("bad indentation of a sequence entry"); else if (e > We) break;
return s ? (Te = r, Be = S, Ye = o, !0) : !1;
}
function de(e) {
var t, i, r, o = Te, s = {}, l = null, c = null, M = null, u = !1, d = !1;
for (null !== Fe && (Pe[Fe] = s); Oe > He; ) {
if (t = n.charCodeAt(He + 1), r = qe, O !== Ve && $ !== Ve || R !== t && w !== t && G !== t && k !== t) {
if (!Re(e, g, !1, !0)) break;
if (qe === r) {
for (;R === Ve || w === Ve; ) Ve = n.charCodeAt(++He);
if ($ === Ve) Ve = n.charCodeAt(++He), R !== Ve && w !== Ve && G !== Ve && k !== Ve && a("a whitespace character is expected after the key-value separator within a block mapping"),
u && (W(s, l, c, null), l = c = M = null), d = !0, u = !1, i = !1, l = Te, c = Ye; else {
if (!d) return Te = o, !0;
a("can not read an implicit mapping pair; a colon is missed");
}
} else {
if (!d) return Te = o, !0;
a("can not read a block mapping entry; a multiline key may not be an implicit key");
}
} else O === Ve ? (u && (W(s, l, c, null), l = c = M = null), d = !0, u = !0, i = !0) : u ? (u = !1,
i = !0) : a("incomplete explicit mapping pair; a key node is missed"), He += 1,
Ve = t;
if ((qe === r || We > e) && (Re(e, b, !0, i) && (u ? c = Ye : M = Ye), u || (W(s, l, c, M),
l = c = M = null), K(!0, -1)), We > e && Oe > He) a("bad indentation of a mapping entry"); else if (e > We) break;
}
return u && W(s, l, c, null), d && (Te = o, Be = p, Ye = s), d;
}
function he() {
var e, t, i, r = !1, o = !1;
if (C !== Ve) return !1;
if (null !== Te && a("duplication of a tag property"), Ve = n.charCodeAt(++He),
j === Ve ? (r = !0, Ve = n.charCodeAt(++He)) : C === Ve ? (o = !0, t = "!!", Ve = n.charCodeAt(++He)) : t = "!",
e = He, r) {
do Ve = n.charCodeAt(++He); while (Oe > He && Z !== Ve);
Oe > He ? (i = n.slice(e, He), Ve = n.charCodeAt(++He)) : a("unexpected end of the stream within a verbatim tag");
} else {
for (;Oe > He && R !== Ve && w !== Ve && G !== Ve && k !== Ve; ) C === Ve && (o ? a("tag suffix cannot contain exclamation marks") : (t = n.slice(e - 1, He + 1),
Ie && !De.test(t) && a("named tag handle cannot contain such characters"), o = !0,
e = He + 1)), Ve = n.charCodeAt(++He);
i = n.slice(e, He), Ie && ve.test(i) && a("tag suffix cannot contain flow indicator characters");
}
return Ie && i && !we.test(i) && a("tag name cannot contain such characters: " + i),
r ? Te = i : d.call(Ee, t) ? Te = Ee[t] + i : "!" === t ? Te = "!" + i : "!!" === t ? Te = "tag:yaml.org,2002:" + i : a('undeclared tag handle "' + t + '"'),
!0;
}
function Ge() {
var e;
if (P !== Ve) return !1;
for (null !== Fe && a("duplication of an anchor property"), Ve = n.charCodeAt(++He),
e = He; Oe > He && R !== Ve && w !== Ve && G !== Ve && k !== Ve && Y !== Ve && Q !== Ve && ee !== Ve && Se !== Ve && me !== Ve; ) Ve = n.charCodeAt(++He);
return He === e && a("name of an anchor node must contain at least one character"),
Fe = n.slice(e, He), !0;
}
function ke() {
var e, t;
if (F !== Ve) return !1;
for (Ve = n.charCodeAt(++He), e = He; Oe > He && R !== Ve && w !== Ve && G !== Ve && k !== Ve && Y !== Ve && Q !== Ve && ee !== Ve && Se !== Ve && me !== Ve; ) Ve = n.charCodeAt(++He);
return He === e && a("name of an alias node must contain at least one character"),
t = n.slice(e, He), Pe.hasOwnProperty(t) || a('unidentified alias "' + t + '"'),
Ye = Pe[t], K(!0, -1), !0;
}
function Re(n, e, t, i) {
var o, s, l, M, u, h, S, p, y, v, D = !1, w = !0, G = !1;
if (Te = null, Fe = null, Be = null, Ye = null, o = s = l = b === e || f === e,
t && K(!0, -1)) if (D = !0, We === n) w = !1; else {
if (!(We > n)) return !1;
w = !0;
}
if (w) for (;he() || Ge(); ) if (K(!0, -1)) if (D = !0, We > n) w = !0, l = o; else {
if (We !== n) return !0;
w = !1, l = o;
} else l = !1;
if (l && (l = D || i), (w || b === e) && (p = m === e || g === e ? n : n + 1, y = He - Je,
w ? l && (ue(y) || de(y)) || ce(p) ? G = !0 : (s && Me(p) || oe(p) || le(p) ? G = !0 : ke() ? (G = !0,
(null !== Te || null !== Fe) && a("alias node should not have any properties")) : re(p, m === e) && (G = !0,
null === Te && (Te = "?")), null !== Fe && (Pe[Fe] = Ye)) : G = l && ue(y)), null !== Te && "!" !== Te) if ("?" === Te) {
if (ze) for (M = 0, u = je.length; u > M; M += 1) if (h = je[M], v = h.loader.resolver(Ye, !1),
c !== v) {
Te = h.tag, Ye = v;
break;
}
} else d.call(Ze, Te) ? (S = Ze[Te].loader, null !== Ye && S.kind !== Be && a("unacceptable node kind for !<" + Te + '> tag; it should be "' + S.kind + '", not "' + Be + '"'),
S.resolver && (v = S.resolver(Ye, !0), c !== v ? Ye = v : a("cannot resolve a node with !<" + Te + "> explicit tag"))) : r("unknown tag !<" + Te + ">");
return null !== Te || null !== Fe || G;
}
function Ce() {
var t, i, o, s = He, l = !1;
for (Ae = null, xe = Ue, Ee = {}, Pe = {}; Oe > He && (K(!0, -1), !(We > 0 || E !== Ve)); ) {
for (l = !0, Ve = n.charCodeAt(++He), t = He; Oe > He && R !== Ve && w !== Ve && G !== Ve && k !== Ve; ) Ve = n.charCodeAt(++He);
for (i = n.slice(t, He), o = [], i.length < 1 && a("directive name must not be less than one character in length"); Oe > He; ) {
for (;R === Ve || w === Ve; ) Ve = n.charCodeAt(++He);
if (x === Ve) {
do Ve = n.charCodeAt(++He); while (Oe > He && G !== Ve && k !== Ve);
break;
}
if (G === Ve || k === Ve) break;
for (t = He; Oe > He && R !== Ve && w !== Ve && G !== Ve && k !== Ve; ) Ve = n.charCodeAt(++He);
o.push(n.slice(t, He));
}
Oe > He && V(), d.call($e, i) ? $e[i](i, o) : r('unknown document directive "' + i + '"');
}
return K(!0, -1), 0 === We && L === Ve && L === n.charCodeAt(He + 1) && L === n.charCodeAt(He + 2) ? (He += 3,
Ve = n.charCodeAt(He), K(!0, -1)) : l && a("directives end mark is expected"), Re(We - 1, b, !1, !0),
K(!0, -1), Ie && xe && ye.test(n.slice(s, He)) && r("non-ASCII line breaks are interpreted as content"),
e(Ye), He === Je && X() ? (N === Ve && (He += 3, Ve = n.charCodeAt(He), K(!0, -1)),
void 0) : (Oe > He && a("end of the stream or a document separator is expected"),
void 0);
}
t = t || {};
var Ae, xe, Ee, Pe, Te, Fe, Be, Ye, Le = t.filename || null, Ne = t.schema || u, ze = t.resolve || !0, Ie = t.validate || !0, _e = t.strict || !1, Ue = t.legacy || !1, $e = {}, je = Ne.compiledImplicit, Ze = Ne.compiledTypeMap, Oe = n.length, He = 0, qe = 0, Je = 0, We = 0, Ve = n.charCodeAt(He);
for ($e.YAML = function(n, e) {
var t, i, o;
null !== Ae && a("duplication of %YAML directive"), 1 !== e.length && a("YAML directive accepts exactly one argument"),
t = /^([0-9]+)\.([0-9]+)$/.exec(e[0]), null === t && a("ill-formed argument of the YAML directive"),
i = parseInt(t[1], 10), o = parseInt(t[2], 10), 1 !== i && a("unacceptable YAML version of the document"),
Ae = e[0], xe = 2 > o, 1 !== o && 2 !== o && r("unsupported YAML version of the document");
}, $e.TAG = function(n, e) {
var t, i;
2 !== e.length && a("TAG directive accepts exactly two arguments"), t = e[0], i = e[1],
De.test(t) || a("ill-formed tag handle (first argument) of the TAG directive"),
d.call(Ee, t) && a('there is a previously declared suffix for "' + t + '" tag handle'),
we.test(i) || a("ill-formed tag prefix (second argument) of the TAG directive"),
Ee[t] = i;
}, Ie && be.test(n) && a("the stream contains non-printable characters"); R === Ve; ) We += 1,
Ve = n.charCodeAt(++He);
for (;Oe > He; ) Ce();
}
function i(n, e) {
function i(n) {
if (r) throw new s("expected a single document in the stream, but found more");
a = n, r = !0;
}
var a = null, r = !1;
return t(n, i, e), a;
}
function a(n, e, i) {
t(n, e, o.extend({
schema: M
}, i));
}
function r(n, e) {
return i(n, o.extend({
schema: M
}, e));
}
var o = n("./common"), s = n("./exception"), l = n("./mark"), c = o.NIL, M = n("./schema/default_safe"), u = n("./schema/default_full"), d = Object.prototype.hasOwnProperty, h = "string", S = "array", p = "object", m = 1, g = 2, f = 3, b = 4, y = 1, v = 2, D = 3, w = 9, G = 10, k = 13, R = 32, C = 33, A = 34, x = 35, E = 37, P = 38, T = 39, F = 42, B = 43, Y = 44, L = 45, N = 46, z = 47, I = 48, _ = 49, U = 57, $ = 58, j = 60, Z = 62, O = 63, H = 64, q = 65, J = 70, W = 76, V = 78, K = 80, X = 85, Q = 91, ne = 92, ee = 93, te = 95, ie = 96, ae = 97, re = 98, oe = 101, se = 102, le = 110, ce = 114, Me = 116, ue = 117, de = 118, he = 120, Se = 123, pe = 124, me = 125, ge = {};
ge[I] = "\0", ge[ae] = "", ge[re] = "\b", ge[Me] = " ", ge[w] = " ", ge[le] = "\n",
ge[de] = " ", ge[se] = "\f", ge[ce] = "\r", ge[oe] = "", ge[R] = " ", ge[A] = '"',
ge[z] = "/", ge[ne] = "\\", ge[V] = "…", ge[te] = " ", ge[W] = "\u2028", ge[K] = "\u2029";
var fe = {};
fe[he] = 2, fe[ue] = 4, fe[X] = 8;
var be = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uD800-\uDFFF\uFFFE\uFFFF]/, ye = /[\x85\u2028\u2029]/, ve = /[,\[\]\{\}]/, De = /^(?:!|!!|![a-z\-]+!)$/i, we = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
e.exports.loadAll = t, e.exports.load = i, e.exports.safeLoadAll = a, e.exports.safeLoad = r;
}, {
"./common": 12,
"./exception": 13,
"./mark": 15,
"./schema/default_safe": 8,
"./schema/default_full": 9
} ],
3: [ function(n, e) {
(function() {
function t(n) {
var e = typeof n;
return null === n ? "null" : "number" === e ? 0 === n % 1 ? "integer" : "float" : "object" === e && Array.isArray(n) ? "array" : e;
}
function i(n, e) {
var t, i, a, r, o, s, l;
if (null === e) return {};
for (t = {}, i = Object.keys(e), a = 0, r = i.length; r > a; a += 1) o = i[a], s = String(e[o]),
"!!" === o.slice(0, 2) && (o = "tag:yaml.org,2002:" + o.slice(2)), l = n.compiledTypeMap[o],
l && l.dumper && d.call(l.dumper.styleAliases, s) && (s = l.dumper.styleAliases[s]),
t[o] = s;
return t;
}
function a(n) {
var e, t, i;
if (e = n.toString(16).toUpperCase(), 255 >= n) t = "x", i = 2; else if (65535 >= n) t = "u",
i = 4; else {
if (!(4294967295 >= n)) throw new c("code point within a string may not be greater than 0xFFFFFFFF");
t = "U", i = 8;
}
return "\\" + t + s.repeat("0", i - e.length) + e;
}
function r(n, e) {
function r(n) {
return "\n" + s.repeat(" ", q * n);
}
function o(n) {
var e, t, i;
for (e = 0, t = K.length; t > e; e += 1) if (i = K[e], null !== i.loader && l !== i.loader.resolver(n, !1)) return !0;
return !1;
}
function u(n) {
var e, t, i, r, s;
for (O = "", e = !1, t = 0, (0 === n.length || m === n.charCodeAt(0) || m === n.charCodeAt(n.length - 1)) && (e = !0),
i = 0, r = n.length; r > i; i += 1) s = n.charCodeAt(i), e || (h === s || S === s || p === s || G === s || E === s || P === s || F === s || Y === s || b === s || v === s || w === s || g === s || B === s || C === s || D === s || f === s || y === s || x === s || T === s || A === s || R === s || k === s) && (e = !0),
(L[s] || !(s >= 32 && 126 >= s || 133 === s || s >= 160 && 55295 >= s || s >= 57344 && 65533 >= s || s >= 65536 && 1114111 >= s)) && (O += n.slice(t, i),
O += L[s] || a(s), t = i + 1, e = !0);
i > t && (O += n.slice(t, i)), !e && o(O) && (e = !0), e && (O = '"' + O + '"');
}
function N(n, e) {
var t, i, a = "", r = Z;
for (t = 0, i = e.length; i > t; t += 1) $(n, e[t], !1, !1) && (0 !== t && (a += ", "),
a += O);
Z = r, O = "[" + a + "]";
}
function z(n, e, t) {
var i, a, o = "", s = Z;
for (i = 0, a = e.length; a > i; i += 1) $(n + 1, e[i], !0, !0) && (t && 0 === i || (o += r(n)),
o += "- " + O);
Z = s, O = o || "[]";
}
function I(n, e) {
var t, i, a, r, o, s = "", l = Z, c = Object.keys(e);
for (t = 0, i = c.length; i > t; t += 1) o = "", 0 !== t && (o += ", "), a = c[t],
r = e[a], $(n, a, !1, !1) && (O.length > 1024 && (o += "? "), o += O + ": ", $(n, r, !1, !1) && (o += O,
s += o));
Z = l, O = "{" + s + "}";
}
function _(n, e, t) {
var i, a, o, s, l, c, M = "", u = Z, d = Object.keys(e);
for (i = 0, a = d.length; a > i; i += 1) c = "", t && 0 === i || (c += r(n)), o = d[i],
s = e[o], $(n + 1, o, !0, !0) && (l = null !== Z && "?" !== Z && O.length <= 1024,
l && (c += "? "), c += O, l && (c += r(n)), $(n + 1, s, !0, l) && (c += ": " + O,
M += c));
Z = u, O = M || "{}";
}
function U(n, e) {
var i, a, r, o, s, M;
for (a = e ? X : K, j = t(n), r = 0, o = a.length; o > r; r += 1) if (s = a[r],
null !== s.dumper && (null === s.dumper.kind || j === s.dumper.kind) && (null === s.dumper.instanceOf || n instanceof s.dumper.instanceOf) && (null === s.dumper.predicate || s.dumper.predicate(n))) {
if (Z = e ? s.tag : "?", null !== s.dumper.representer) {
if (M = V[s.tag] || s.dumper.defaultStyle, "function" == typeof s.dumper.representer) i = s.dumper.representer(n, M); else {
if (!d.call(s.dumper.representer, M)) throw new c("!<" + s.tag + '> tag resolver accepts not "' + M + '" style');
i = s.dumper.representer[M](n, M);
}
if (l === i) {
if (e) throw new c("cannot represent an object of !<" + s.tag + "> type");
continue;
}
j = t(i), O = i;
}
return !0;
}
return !1;
}
function $(n, e, t, i) {
if (Z = null, O = e, U(e, !1) || U(e, !0), t && (t = 0 > W || W > n), (null !== Z && "?" !== Z || 2 !== q && n > 0) && (i = !1),
"object" === j) t && 0 !== Object.keys(O).length ? _(n, O, i) : I(n, O); else if ("array" === j) t && 0 !== O.length ? z(n, O, i) : N(n, O); else {
if ("string" !== j) {
if (J) return !1;
throw new c("unacceptabe kind of an object to dump (" + j + ")");
}
"?" !== Z && u(O);
}
return null !== Z && "?" !== Z && (O = "!<" + Z + "> " + O), !0;
}
e = e || {};
var j, Z, O, H = e.schema || M, q = Math.max(1, e.indent || 2), J = e.skipInvalid || !1, W = s.isNothing(e.flowLevel) ? -1 : e.flowLevel, V = i(H, e.styles || null), K = H.compiledImplicit, X = H.compiledExplicit;
return $(0, n, !0, !0) ? O + "\n" : "";
}
function o(n, e) {
return r(n, s.extend({
schema: u
}, e));
}
var s = n("./common"), l = s.NIL, c = n("./exception"), M = n("./schema/default_full"), u = n("./schema/default_safe"), d = Object.prototype.hasOwnProperty, h = 9, S = 10, p = 13, m = 32, g = 33, f = 34, b = 35, y = 37, v = 38, D = 39, w = 42, G = 44, k = 45, R = 58, C = 62, A = 63, x = 64, E = 91, P = 93, T = 96, F = 123, B = 124, Y = 125, L = {};
L[0] = "\\0", L[7] = "\\a", L[8] = "\\b", L[9] = "\\t", L[10] = "\\n", L[11] = "\\v",
L[12] = "\\f", L[13] = "\\r", L[27] = "\\e", L[34] = '\\"', L[92] = "\\\\", L[133] = "\\N",
L[160] = "\\_", L[8232] = "\\L", L[8233] = "\\P", e.exports.dump = r, e.exports.safeDump = o;
})();
}, {
"./common": 12,
"./exception": 13,
"./schema/default_full": 9,
"./schema/default_safe": 8
} ],
4: [ function(n, e) {
function t(n, e) {
if (e = e || {}, this.tag = n, this.loader = e.loader || null, this.dumper = e.dumper || null,
null === this.loader && null === this.dumper) throw new a('Incomplete YAML type definition. "loader" or "dumper" setting must be specified.');
null !== this.loader && (this.loader = new t.Loader(this.loader)), null !== this.dumper && (this.dumper = new t.Dumper(this.dumper));
}
function i(n) {
var e = {};
return null !== n && Object.keys(n).forEach(function(t) {
n[t].forEach(function(n) {
e[String(n)] = t;
});
}), e;
}
var a = n("./exception");
t.Loader = function(n) {
if (n = n || {}, this.kind = n.kind || null, this.resolver = n.resolver || null,
"string" !== this.kind && "array" !== this.kind && "object" !== this.kind) throw new a('Unacceptable "kind" setting of a type loader.');
}, t.Dumper = function(n) {
if (n = n || {}, this.kind = n.kind || null, this.defaultStyle = n.defaultStyle || null,
this.instanceOf = n.instanceOf || null, this.predicate = n.predicate || null, this.representer = n.representer || null,
this.styleAliases = i(n.styleAliases || null), "undefined" !== this.kind && "null" !== this.kind && "boolean" !== this.kind && "integer" !== this.kind && "float" !== this.kind && "string" !== this.kind && "array" !== this.kind && "object" !== this.kind && "function" !== this.kind) throw new a('Unacceptable "kind" setting of a type dumper.');
}, e.exports = t;
}, {
"./exception": 13
} ],
10: [ function(n, e) {
function t(n, e) {
var t = i.readFileSync(e, "utf8");
n.exports = a.safeLoad(t, {
filename: e
});
}
var i = n("fs"), a = n("./loader");
void 0 !== n.extensions && (n.extensions[".yml"] = t, n.extensions[".yaml"] = t),
e.exports = n;
}, {
fs: 14,
"./loader": 2
} ],
12: [ function(n, e) {
function t(n) {
return void 0 === n || null === n;
}
function i(n) {
return "object" == typeof n && null !== n;
}
function a(n) {
return Array.isArray(n) ? n : t(n) ? [] : [ n ];
}
function r(n, e) {
var t, i, a, r;
if (e) for (r = Object.keys(e), t = 0, i = r.length; i > t; t += 1) a = r[t], n[a] = e[a];
return n;
}
function o(n, e) {
var t, i = "";
for (t = 0; e > t; t += 1) i += n;
return i;
}
var s = {};
e.exports.NIL = s, e.exports.isNothing = t, e.exports.isObject = i, e.exports.toArray = a,
e.exports.repeat = o, e.exports.extend = r;
}, {} ],
13: [ function(n, e) {
function t(n, e) {
this.name = "YAMLException", this.reason = n, this.mark = e, this.message = this.toString(!1);
}
t.prototype.toString = function(n) {
var e;
return e = "JS-YAML: " + (this.reason || "(unknown reason)"), !n && this.mark && (e += " " + this.mark.toString()),
e;
}, e.exports = t;
}, {} ],
5: [ function(n, e) {
var t = n("../schema");
e.exports = new t({
explicit: [ n("../type/str"), n("../type/seq"), n("../type/map") ]
});
}, {
"../schema": 11,
"../type/str": 16,
"../type/seq": 17,
"../type/map": 18
} ],
6: [ function(n, e) {
var t = n("../schema");
e.exports = new t({
include: [ n("./failsafe") ],
implicit: [ n("../type/null"), n("../type/bool"), n("../type/int"), n("../type/float") ]
});
}, {
"../schema": 11,
"./failsafe": 5,
"../type/null": 19,
"../type/bool": 20,
"../type/int": 21,
"../type/float": 22
} ],
7: [ function(n, e) {
var t = n("../schema");
e.exports = new t({
include: [ n("./json") ]
});
}, {
"../schema": 11,
"./json": 6
} ],
8: [ function(n, e) {
var t = n("../schema");
e.exports = new t({
include: [ n("./core") ],
implicit: [ n("../type/timestamp"), n("../type/merge") ],
explicit: [ n("../type/binary"), n("../type/omap"), n("../type/pairs"), n("../type/set") ]
});
}, {
"../schema": 11,
"./core": 7,
"../type/timestamp": 23,
"../type/merge": 24,
"../type/binary": 25,
"../type/omap": 26,
"../type/pairs": 27,
"../type/set": 28
} ],
9: [ function(n, e) {
var t = n("../schema");
e.exports = t.DEFAULT = new t({
include: [ n("./default_safe") ],
explicit: [ n("../type/js/undefined"), n("../type/js/regexp"), n("../type/js/function") ]
});
}, {
"../schema": 11,
"./default_safe": 8,
"../type/js/undefined": 29,
"../type/js/regexp": 30,
"../type/js/function": 31
} ],
11: [ function(n, e) {
function t(n, e, i) {
var a = [];
return n.include.forEach(function(n) {
i = t(n, e, i);
}), n[e].forEach(function(n) {
i.forEach(function(e, t) {
e.tag === n.tag && a.push(t);
}), i.push(n);
}), i.filter(function(n, e) {
return -1 === a.indexOf(e);
});
}
function i() {
function n(n) {
i[n.tag] = n;
}
var e, t, i = {};
for (e = 0, t = arguments.length; t > e; e += 1) arguments[e].forEach(n);
return i;
}
function a(n) {
this.include = n.include || [], this.implicit = n.implicit || [], this.explicit = n.explicit || [],
this.implicit.forEach(function(n) {
if (null !== n.loader && "string" !== n.loader.kind) throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
}), this.compiledImplicit = t(this, "implicit", []), this.compiledExplicit = t(this, "explicit", []),
this.compiledTypeMap = i(this.compiledImplicit, this.compiledExplicit);
}
var r = n("./common"), o = n("./exception"), s = n("./type");
a.DEFAULT = null, a.create = function() {
var n, e;
switch (arguments.length) {
case 1:
n = a.DEFAULT, e = arguments[0];
break;
case 2:
n = arguments[0], e = arguments[1];
break;
default:
throw new o("Wrong number of arguments for Schema.create function");
}
if (n = r.toArray(n), e = r.toArray(e), !n.every(function(n) {
return n instanceof a;
})) throw new o("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");
if (!e.every(function(n) {
return n instanceof s;
})) throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.");
return new a({
include: n,
explicit: e
});
}, e.exports = a;
}, {
"./common": 12,
"./exception": 13,
"./type": 4
} ],
15: [ function(n, e) {
function t(n, e, t, i, a) {
this.name = n, this.buffer = e, this.position = t, this.line = i, this.column = a;
}
var i = n("./common");
t.prototype.getSnippet = function(n, e) {
var t, a, r, o, s;
if (!this.buffer) return null;
for (n = n || 4, e = e || 75, t = "", a = this.position; a > 0 && -1 === "\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(a - 1)); ) if (a -= 1,
this.position - a > e / 2 - 1) {
t = " ... ", a += 5;
break;
}
for (r = "", o = this.position; o < this.buffer.length && -1 === "\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(o)); ) if (o += 1,
o - this.position > e / 2 - 1) {
r = " ... ", o -= 5;
break;
}
return s = this.buffer.slice(a, o), i.repeat(" ", n) + t + s + r + "\n" + i.repeat(" ", n + this.position - a + t.length) + "^";
}, t.prototype.toString = function(n) {
var e, t = "";
return this.name && (t += 'in "' + this.name + '" '), t += "at line " + (this.line + 1) + ", column " + (this.column + 1),
n || (e = this.getSnippet(), e && (t += ":\n" + e)), t;
}, e.exports = t;
}, {
"./common": 12
} ],
32: [ function(n, e) {
(function() {
function t(n) {
if (Object.keys) return Object.keys(n);
var e = [];
for (var t in n) Object.prototype.hasOwnProperty.call(n, t) && e.push(t);
return e;
}
function i(n, e) {
return void 0 === e ? "" + e : "number" != typeof e || !isNaN(e) && isFinite(e) ? "function" == typeof e || e instanceof RegExp ? e.toString() : e : e.toString();
}
function a(n, e) {
return "string" == typeof n ? n.length < e ? n : n.slice(0, e) : n;
}
function r(n, e, t, i, a) {
throw new m.AssertionError({
message: t,
actual: n,
expected: e,
operator: i,
stackStartFunction: a
});
}
function o(n, e) {
n || r(n, !0, e, "==", m.ok);
}
function s(n, e) {
if (n === e) return !0;
if (S.isBuffer(n) && S.isBuffer(e)) {
if (n.length != e.length) return !1;
for (var t = 0; t < n.length; t++) if (n[t] !== e[t]) return !1;
return !0;
}
return n instanceof Date && e instanceof Date ? n.getTime() === e.getTime() : "object" != typeof n && "object" != typeof e ? n == e : M(n, e);
}
function l(n) {
return null === n || void 0 === n;
}
function c(n) {
return "[object Arguments]" == Object.prototype.toString.call(n);
}
function M(n, e) {
if (l(n) || l(e)) return !1;
if (n.prototype !== e.prototype) return !1;
if (c(n)) return c(e) ? (n = p.call(n), e = p.call(e), s(n, e)) : !1;
try {
var i, a, r = t(n), o = t(e);
} catch (M) {
return !1;
}
if (r.length != o.length) return !1;
for (r.sort(), o.sort(), a = r.length - 1; a >= 0; a--) if (r[a] != o[a]) return !1;
for (a = r.length - 1; a >= 0; a--) if (i = r[a], !s(n[i], e[i])) return !1;
return !0;
}
function u(n, e) {
return n && e ? e instanceof RegExp ? e.test(n) : n instanceof e ? !0 : e.call({}, n) === !0 ? !0 : !1 : !1;
}
function d(n, e, t, i) {
var a;
"string" == typeof t && (i = t, t = null);
try {
e();
} catch (o) {
a = o;
}
if (i = (t && t.name ? " (" + t.name + ")." : ".") + (i ? " " + i : "."), n && !a && r("Missing expected exception" + i),
!n && u(a, t) && r("Got unwanted exception" + i), n && a && t && !u(a, t) || !n && a) throw a;
}
var h = n("util"), S = n("buffer").Buffer, p = Array.prototype.slice, m = e.exports = o;
m.AssertionError = function(n) {
this.name = "AssertionError", this.message = n.message, this.actual = n.actual,
this.expected = n.expected, this.operator = n.operator;
var e = n.stackStartFunction || r;
Error.captureStackTrace && Error.captureStackTrace(this, e);
}, h.inherits(m.AssertionError, Error), m.AssertionError.prototype.toString = function() {
return this.message ? [ this.name + ":", this.message ].join(" ") : [ this.name + ":", a(JSON.stringify(this.actual, i), 128), this.operator, a(JSON.stringify(this.expected, i), 128) ].join(" ");
}, m.AssertionError.__proto__ = Error.prototype, m.fail = r, m.ok = o, m.equal = function(n, e, t) {
n != e && r(n, e, t, "==", m.equal);
}, m.notEqual = function(n, e, t) {
n == e && r(n, e, t, "!=", m.notEqual);
}, m.deepEqual = function(n, e, t) {
s(n, e) || r(n, e, t, "deepEqual", m.deepEqual);
}, m.notDeepEqual = function(n, e, t) {
s(n, e) && r(n, e, t, "notDeepEqual", m.notDeepEqual);
}, m.strictEqual = function(n, e, t) {
n !== e && r(n, e, t, "===", m.strictEqual);
}, m.notStrictEqual = function(n, e, t) {
n === e && r(n, e, t, "!==", m.notStrictEqual);
}, m.throws = function() {
d.apply(this, [ !0 ].concat(p.call(arguments)));
}, m.doesNotThrow = function() {
d.apply(this, [ !1 ].concat(p.call(arguments)));
}, m.ifError = function(n) {
if (n) throw n;
};
})();
}, {
util: 33,
buffer: 34
} ],
16: [ function(n, e) {
var t = n("../type");
e.exports = new t("tag:yaml.org,2002:str", {
loader: {
kind: "string"
}
});
}, {
"../type": 4
} ],
17: [ function(n, e) {
var t = n("../type");
e.exports = new t("tag:yaml.org,2002:seq", {
loader: {
kind: "array"
}
});
}, {
"../type": 4
} ],
18: [ function(n, e) {
var t = n("../type");
e.exports = new t("tag:yaml.org,2002:map", {
loader: {
kind: "object"
}
});
}, {
"../type": 4
} ],
19: [ function(n, e) {
function t(n) {
return r[n] ? null : i;
}
var i = n("../common").NIL, a = n("../type"), r = {
"~": !0,
"null": !0,
Null: !0,
NULL: !0
};
e.exports = new a("tag:yaml.org,2002:null", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "null",
defaultStyle: "lowercase",
representer: {
canonical: function() {
return "~";
},
lowercase: function() {
return "null";
},
uppercase: function() {
return "NULL";
},
camelcase: function() {
return "Null";
}
}
}
});
}, {
"../common": 12,
"../type": 4
} ],
20: [ function(n, e) {
function t(n, e) {
return e ? o.hasOwnProperty(n) ? o[n] : i : r.hasOwnProperty(n) ? r[n] : i;
}
var i = n("../common").NIL, a = n("../type"), r = {
"true": !0,
True: !0,
TRUE: !0,
"false": !1,
False: !1,
FALSE: !1
}, o = {
"true": !0,
True: !0,
TRUE: !0,
"false": !1,
False: !1,
FALSE: !1,
y: !0,
Y: !0,
yes: !0,
Yes: !0,
YES: !0,
n: !1,
N: !1,
no: !1,
No: !1,
NO: !1,
on: !0,
On: !0,
ON: !0,
off: !1,
Off: !1,
OFF: !1
};
e.exports = new a("tag:yaml.org,2002:bool", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "boolean",
defaultStyle: "lowercase",
representer: {
lowercase: function(n) {
return n ? "true" : "false";
},
uppercase: function(n) {
return n ? "TRUE" : "FALSE";
},
camelcase: function(n) {
return n ? "True" : "False";
}
}
}
});
}, {
"../common": 12,
"../type": 4
} ],
21: [ function(n, e) {
function t(n) {
var e, t, a, o;
return r.test(n) ? (e = n.replace(/_/g, ""), t = "-" === e[0] ? -1 : 1, o = [],
0 <= "+-".indexOf(e[0]) && (e = e.slice(1)), "0" === e ? 0 : /^0b/.test(e) ? t * parseInt(e.slice(2), 2) : /^0x/.test(e) ? t * parseInt(e, 16) : "0" === e[0] ? t * parseInt(e, 8) : 0 <= e.indexOf(":") ? (e.split(":").forEach(function(n) {
o.unshift(parseInt(n, 10));
}), e = 0, a = 1, o.forEach(function(n) {
e += n * a, a *= 60;
}), t * e) : t * parseInt(e, 10)) : i;
}
var i = n("../common").NIL, a = n("../type"), r = new RegExp("^(?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$");
e.exports = new a("tag:yaml.org,2002:int", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "integer",
defaultStyle: "decimal",
representer: {
binary: function(n) {
return "0b" + n.toString(2);
},
octal: function(n) {
return "0" + n.toString(8);
},
decimal: function(n) {
return n.toString(10);
},
hexadecimal: function(n) {
return "0x" + n.toString(16).toUpperCase();
}
},
styleAliases: {
binary: [ 2, "bin" ],
octal: [ 8, "oct" ],
decimal: [ 10, "dec" ],
hexadecimal: [ 16, "hex" ]
}
}
});
}, {
"../common": 12,
"../type": 4
} ],
22: [ function(n, e) {
function t(n) {
var e, t, i, r;
return o.test(n) ? (e = n.replace(/_/g, "").toLowerCase(), t = "-" === e[0] ? -1 : 1,
r = [], 0 <= "+-".indexOf(e[0]) && (e = e.slice(1)), ".inf" === e ? 1 === t ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY : ".nan" === e ? 0/0 : 0 <= e.indexOf(":") ? (e.split(":").forEach(function(n) {
r.unshift(parseFloat(n, 10));
}), e = 0, i = 1, r.forEach(function(n) {
e += n * i, i *= 60;
}), t * e) : t * parseFloat(e, 10)) : a;
}
function i(n, e) {
if (isNaN(n)) switch (e) {
case "lowercase":
return ".nan";
case "uppercase":
return ".NAN";
case "camelcase":
return ".NaN";
} else if (Number.POSITIVE_INFINITY === n) switch (e) {
case "lowercase":
return ".inf";
case "uppercase":
return ".INF";
case "camelcase":
return ".Inf";
} else {
if (Number.NEGATIVE_INFINITY !== n) return n.toString(10);
switch (e) {
case "lowercase":
return "-.inf";
case "uppercase":
return "-.INF";
case "camelcase":
return "-.Inf";
}
}
}
var a = n("../common").NIL, r = n("../type"), o = new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");
e.exports = new r("tag:yaml.org,2002:float", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "float",
defaultStyle: "lowercase",
representer: i
}
});
}, {
"../common": 12,
"../type": 4
} ],
23: [ function(n, e) {
function t(n) {
var e, t, i, r, s, l, c, M, u, d, h = 0, S = null;
if (e = o.exec(n), null === e) return a;
if (t = +e[1], i = +e[2] - 1, r = +e[3], !e[4]) return new Date(Date.UTC(t, i, r));
if (s = +e[4], l = +e[5], c = +e[6], e[7]) {
for (h = e[7].slice(0, 3); h.length < 3; ) h += "0";
h = +h;
}
return e[9] && (M = +e[10], u = +(e[11] || 0), S = 6e4 * (60 * M + u), "-" === e[9] && (S = -S)),
d = new Date(Date.UTC(t, i, r, s, l, c, h)), S && d.setTime(d.getTime() - S), d;
}
function i(n) {
return n.toISOString();
}
var a = n("../common").NIL, r = n("../type"), o = new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?)?$");
e.exports = new r("tag:yaml.org,2002:timestamp", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "object",
instanceOf: Date,
representer: i
}
});
}, {
"../common": 12,
"../type": 4
} ],
24: [ function(n, e) {
function t(n) {
return "<<" === n ? n : i;
}
var i = n("../common").NIL, a = n("../type");
e.exports = new a("tag:yaml.org,2002:merge", {
loader: {
kind: "string",
resolver: t
}
});
}, {
"../common": 12,
"../type": 4
} ],
25: [ function(n, e) {
(function() {
function t(n) {
var e, t, i, r, s = 0, M = [];
for (i = 0, r = 0, s = 0; s < n.length; s += 1) if (t = n.charCodeAt(s), e = c[127 & t],
10 !== t && 13 !== t) {
if (-1 === e) return o;
r = r << 6 | e, i += 6, i >= 8 && (i -= 8, l !== n.charAt(s) && M.push(255 & r >> i),
r &= (1 << i) - 1);
}
return i ? o : new a(M);
}
function i(n) {
var e, t, i, a = "";
for (e = 0, t = n.length - 2; t > e; e += 3) a += M[n[e + 0] >> 2], a += M[((3 & n[e + 0]) << 4) + (n[e + 1] >> 4)],
a += M[((15 & n[e + 1]) << 2) + (n[e + 2] >> 6)], a += M[63 & n[e + 2]];
return i = n.length % 3, 0 !== i && (e = n.length - i, a += M[n[e + 0] >> 2], 2 === i ? (a += M[((3 & n[e + 0]) << 4) + (n[e + 1] >> 4)],
a += M[(15 & n[e + 1]) << 2], a += l) : (a += M[(3 & n[e + 0]) << 4], a += l + l)),
a;
}
var a = n("buffer").Buffer, r = n("../common"), o = r.NIL, s = n("../type"), l = "=", c = [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1 ], M = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
e.exports = new s("tag:yaml.org,2002:binary", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "object",
instanceOf: a,
representer: i
}
});
})();
}, {
buffer: 34,
"../common": 12,
"../type": 4
} ],
26: [ function(n, e) {
function t(n) {
var e, t, a, s, l, c = [];
for (e = 0, t = n.length; t > e; e += 1) {
if (a = n[e], l = !1, "[object Object]" !== o.call(a)) return i;
for (s in a) if (r.call(a, s)) {
if (l) return i;
l = !0;
}
if (!l) return i;
if (-1 !== c.indexOf(s)) return i;
c.push(s);
}
return n;
}
var i = n("../common").NIL, a = n("../type"), r = Object.prototype.hasOwnProperty, o = Object.prototype.toString;
e.exports = new a("tag:yaml.org,2002:omap", {
loader: {
kind: "array",
resolver: t
}
});
}, {
"../common": 12,
"../type": 4
} ],
27: [ function(n, e) {
function t(n) {
var e, t, a, o, s;
for (s = new Array(n.length), e = 0, t = n.length; t > e; e += 1) {
if (a = n[e], "[object Object]" !== r.call(a)) return i;
if (o = Object.keys(a), 1 !== o.length) return i;
s[e] = [ o[0], a[o[0]] ];
}
return s;
}
var i = n("../common").NIL, a = n("../type"), r = Object.prototype.toString;
e.exports = new a("tag:yaml.org,2002:pairs", {
loader: {
kind: "array",
resolver: t
}
});
}, {
"../common": 12,
"../type": 4
} ],
28: [ function(n, e) {
function t(n) {
var e;
for (e in n) if (r.call(n, e) && null !== n[e]) return i;
return n;
}
var i = n("../common").NIL, a = n("../type"), r = Object.prototype.hasOwnProperty;
e.exports = new a("tag:yaml.org,2002:set", {
loader: {
kind: "object",
resolver: t
}
});
}, {
"../common": 12,
"../type": 4
} ],
29: [ function(n, e) {
function t() {
var n;
return n;
}
function i() {
return "";
}
var a = n("../../type");
e.exports = new a("tag:yaml.org,2002:js/undefined", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "undefined",
representer: i
}
});
}, {
"../../type": 4
} ],
30: [ function(n, e) {
(function() {
function t(n) {
var e, t = n, i = /\/([gim]*)$/.exec(n);
"/" === t[0] && i && 4 >= i[0].length && (t = t.slice(1, t.length - i[0].length),
e = i[1]);
try {
return new RegExp(t, e);
} catch (r) {
return a;
}
}
function i(n) {
var e = "/" + n.source + "/";
return n.global && (e += "g"), n.multiline && (e += "m"), n.ignoreCase && (e += "i"),
e;
}
var a = n("../../common").NIL, r = n("../../type");
e.exports = new r("tag:yaml.org,2002:js/regexp", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "object",
instanceOf: RegExp,
representer: i
}
});
})();
}, {
"../../common": 12,
"../../type": 4
} ],
35: [ function(n, e, t) {
t.readIEEE754 = function(n, e, t, i, a) {
var r, o, s = 8 * a - i - 1, l = (1 << s) - 1, c = l >> 1, M = -7, u = t ? 0 : a - 1, d = t ? 1 : -1, h = n[e + u];
for (u += d, r = h & (1 << -M) - 1, h >>= -M, M += s; M > 0; r = 256 * r + n[e + u],
u += d, M -= 8) ;
for (o = r & (1 << -M) - 1, r >>= -M, M += i; M > 0; o = 256 * o + n[e + u], u += d,
M -= 8) ;
if (0 === r) r = 1 - c; else {
if (r === l) return o ? 0/0 : 1/0 * (h ? -1 : 1);
o += Math.pow(2, i), r -= c;
}
return (h ? -1 : 1) * o * Math.pow(2, r - i);
}, t.writeIEEE754 = function(n, e, t, i, a, r) {
var o, s, l, c = 8 * r - a - 1, M = (1 << c) - 1, u = M >> 1, d = 23 === a ? Math.pow(2, -24) - Math.pow(2, -77) : 0, h = i ? r - 1 : 0, S = i ? -1 : 1, p = 0 > e || 0 === e && 0 > 1 / e ? 1 : 0;
for (e = Math.abs(e), isNaN(e) || 1/0 === e ? (s = isNaN(e) ? 1 : 0, o = M) : (o = Math.floor(Math.log(e) / Math.LN2),
e * (l = Math.pow(2, -o)) < 1 && (o--, l *= 2), e += o + u >= 1 ? d / l : d * Math.pow(2, 1 - u),
e * l >= 2 && (o++, l /= 2), o + u >= M ? (s = 0, o = M) : o + u >= 1 ? (s = (e * l - 1) * Math.pow(2, a),
o += u) : (s = e * Math.pow(2, u - 1) * Math.pow(2, a), o = 0)); a >= 8; n[t + h] = 255 & s,
h += S, s /= 256, a -= 8) ;
for (o = o << a | s, c += a; c > 0; n[t + h] = 255 & o, h += S, o /= 256, c -= 8) ;
n[t + h - S] |= 128 * p;
};
}, {} ],
33: [ function(n, e, t) {
function i(n) {
return n instanceof Array || Array.isArray(n) || n && n !== Object.prototype && i(n.__proto__);
}
function a(n) {
return n instanceof RegExp || "object" == typeof n && "[object RegExp]" === Object.prototype.toString.call(n);
}
function r(n) {
if (n instanceof Date) return !0;
if ("object" != typeof n) return !1;
var e = Date.prototype && s(Date.prototype), t = n.__proto__ && s(n.__proto__);
return JSON.stringify(t) === JSON.stringify(e);
}
n("events"), t.isArray = i, t.isDate = function(n) {
return "[object Date]" === Object.prototype.toString.call(n);
}, t.isRegExp = function(n) {
return "[object RegExp]" === Object.prototype.toString.call(n);
}, t.print = function() {}, t.puts = function() {}, t.debug = function() {}, t.inspect = function(n, e, l, c) {
function M(n, l) {
if (n && "function" == typeof n.inspect && n !== t && (!n.constructor || n.constructor.prototype !== n)) return n.inspect(l);
switch (typeof n) {
case "undefined":
return d("undefined", "undefined");
case "string":
var c = "'" + JSON.stringify(n).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
return d(c, "string");
case "number":
return d("" + n, "number");
case "boolean":
return d("" + n, "boolean");
}
if (null === n) return d("null", "null");
var h = o(n), S = e ? s(n) : h;
if ("function" == typeof n && 0 === S.length) {
if (a(n)) return d("" + n, "regexp");
var p = n.name ? ": " + n.name : "";
return d("[Function" + p + "]", "special");
}
if (r(n) && 0 === S.length) return d(n.toUTCString(), "date");
var m, g, f;
if (i(n) ? (g = "Array", f = [ "[", "]" ]) : (g = "Object", f = [ "{", "}" ]), "function" == typeof n) {
var b = n.name ? ": " + n.name : "";
m = a(n) ? " " + n : " [Function" + b + "]";
} else m = "";
if (r(n) && (m = " " + n.toUTCString()), 0 === S.length) return f[0] + m + f[1];
if (0 > l) return a(n) ? d("" + n, "regexp") : d("[Object]", "special");
u.push(n);
var y = S.map(function(e) {
var t, a;
if (n.__lookupGetter__ && (n.__lookupGetter__(e) ? a = n.__lookupSetter__(e) ? d("[Getter/Setter]", "special") : d("[Getter]", "special") : n.__lookupSetter__(e) && (a = d("[Setter]", "special"))),
h.indexOf(e) < 0 && (t = "[" + e + "]"), a || (u.indexOf(n[e]) < 0 ? (a = null === l ? M(n[e]) : M(n[e], l - 1),
a.indexOf("\n") > -1 && (a = i(n) ? a.split("\n").map(function(n) {
return " " + n;
}).join("\n").substr(2) : "\n" + a.split("\n").map(function(n) {
return " " + n;
}).join("\n"))) : a = d("[Circular]", "special")), "undefined" == typeof t) {
if ("Array" === g && e.match(/^\d+$/)) return a;
t = JSON.stringify("" + e), t.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (t = t.substr(1, t.length - 2),
t = d(t, "name")) : (t = t.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"),
t = d(t, "string"));
}
return t + ": " + a;
});
u.pop();
var v = 0, D = y.reduce(function(n, e) {
return v++, e.indexOf("\n") >= 0 && v++, n + e.length + 1;
}, 0);
return y = D > 50 ? f[0] + ("" === m ? "" : m + "\n ") + " " + y.join(",\n ") + " " + f[1] : f[0] + m + " " + y.join(", ") + " " + f[1];
}
var u = [], d = function(n, e) {
var t = {
bold: [ 1, 22 ],
italic: [ 3, 23 ],
underline: [ 4, 24 ],
inverse: [ 7, 27 ],
white: [ 37, 39 ],
grey: [ 90, 39 ],
black: [ 30, 39 ],
blue: [ 34, 39 ],
cyan: [ 36, 39 ],
green: [ 32, 39 ],
magenta: [ 35, 39 ],
red: [ 31, 39 ],
yellow: [ 33, 39 ]
}, i = {
special: "cyan",
number: "blue",
"boolean": "yellow",
undefined: "grey",
"null": "bold",
string: "green",
date: "magenta",
regexp: "red"
}[e];
return i ? "[" + t[i][0] + "m" + n + "[" + t[i][1] + "m" : n;
};
return c || (d = function(n) {
return n;
}), M(n, "undefined" == typeof l ? 2 : l);
}, t.log = function() {}, t.pump = null;
var o = Object.keys || function(n) {
var e = [];
for (var t in n) e.push(t);
return e;
}, s = Object.getOwnPropertyNames || function(n) {
var e = [];
for (var t in n) Object.hasOwnProperty.call(n, t) && e.push(t);
return e;
}, l = Object.create || function(n, e) {
var t;
if (null === n) t = {
__proto__: null
}; else {
if ("object" != typeof n) throw new TypeError("typeof prototype[" + typeof n + "] != 'object'");
var i = function() {};
i.prototype = n, t = new i(), t.__proto__ = n;
}
return "undefined" != typeof e && Object.defineProperties && Object.defineProperties(t, e),
t;
};
t.inherits = function(n, e) {
n.super_ = e, n.prototype = l(e.prototype, {
constructor: {
value: n,
enumerable: !1,
writable: !0,
configurable: !0
}
});
};
var c = /%[sdj%]/g;
t.format = function(n) {
if ("string" != typeof n) {
for (var e = [], i = 0; i < arguments.length; i++) e.push(t.inspect(arguments[i]));
return e.join(" ");
}
for (var i = 1, a = arguments, r = a.length, o = String(n).replace(c, function(n) {
if ("%%" === n) return "%";
if (i >= r) return n;
switch (n) {
case "%s":
return String(a[i++]);
case "%d":
return Number(a[i++]);
case "%j":
return JSON.stringify(a[i++]);
default:
return n;
}
}), s = a[i]; r > i; s = a[++i]) o += null === s || "object" != typeof s ? " " + s : " " + t.inspect(s);
return o;
};
}, {
events: 36
} ],
34: [ function(n, e, t) {
(function() {
function e(n) {
this.length = n;
}
function i(n) {
return 16 > n ? "0" + n.toString(16) : n.toString(16);
}
function a(n) {
for (var e = [], t = 0; t < n.length; t++) if (n.charCodeAt(t) <= 127) e.push(n.charCodeAt(t)); else for (var i = encodeURIComponent(n.charAt(t)).substr(1).split("%"), a = 0; a < i.length; a++) e.push(parseInt(i[a], 16));
return e;
}
function r(n) {
for (var e = [], t = 0; t < n.length; t++) e.push(255 & n.charCodeAt(t));
return e;
}
function o(e) {
return n("base64-js").toByteArray(e);
}
function s(n, e, t, i) {
for (var a = 0; i > a && !(a + t >= e.length || a >= n.length); ) e[a + t] = n[a],
a++;
return a;
}
function l(n) {
try {
return decodeURIComponent(n);
} catch (e) {
return String.fromCharCode(65533);
}
}
function c(n) {
return n = ~~Math.ceil(+n), 0 > n ? 0 : n;
}
function M(n, t, i) {
if (!(this instanceof M)) return new M(n, t, i);
var a;
if ("number" == typeof i) this.length = c(t), this.parent = n, this.offset = i; else {
switch (a = typeof n) {
case "number":
this.length = c(n);
break;
case "string":
this.length = M.byteLength(n, t);
break;
case "object":
this.length = c(n.length);
break;
default:
throw new Error("First argument needs to be a number, array or string.");
}
if (this.length > M.poolSize ? (this.parent = new e(this.length), this.offset = 0) : ((!x || x.length - x.used < this.length) && d(),
this.parent = x, this.offset = x.used, x.used += this.length), u(n)) for (var r = 0; r < this.length; r++) this.parent[r + this.offset] = n instanceof M ? n.readUInt8(r) : n[r]; else "string" == a && (this.length = this.write(n, 0, t));
}
}
function u(n) {
return Array.isArray(n) || M.isBuffer(n) || n && "object" == typeof n && "number" == typeof n.length;
}
function d() {
x = new e(M.poolSize), x.used = 0;
}
function h(n, e, t, i) {
var a = 0;
return i || (A.ok("boolean" == typeof t, "missing or invalid endian"), A.ok(void 0 !== e && null !== e, "missing offset"),
A.ok(e + 1 < n.length, "Trying to read beyond buffer length")), e >= n.length ? 0 : (t ? (a = n.parent[n.offset + e] << 8,
e + 1 < n.length && (a |= n.parent[n.offset + e + 1])) : (a = n.parent[n.offset + e],
e + 1 < n.length && (a |= n.parent[n.offset + e + 1] << 8)), a);
}
function S(n, e, t, i) {
var a = 0;
return i || (A.ok("boolean" == typeof t, "missing or invalid endian"), A.ok(void 0 !== e && null !== e, "missing offset"),
A.ok(e + 3 < n.length, "Trying to read beyond buffer length")), e >= n.length ? 0 : (t ? (e + 1 < n.length && (a = n.parent[n.offset + e + 1] << 16),
e + 2 < n.length && (a |= n.parent[n.offset + e + 2] << 8), e + 3 < n.length && (a |= n.parent[n.offset + e + 3]),
a += n.parent[n.offset + e] << 24 >>> 0) : (e + 2 < n.length && (a = n.parent[n.offset + e + 2] << 16),
e + 1 < n.length && (a |= n.parent[n.offset + e + 1] << 8), a |= n.parent[n.offset + e],
e + 3 < n.length && (a += n.parent[n.offset + e + 3] << 24 >>> 0)), a);
}
function p(n, e, t, i) {
var a, r;
return i || (A.ok("boolean" == typeof t, "missing or invalid endian"), A.ok(void 0 !== e && null !== e, "missing offset"),
A.ok(e + 1 < n.length, "Trying to read beyond buffer length")), r = h(n, e, t, i),
a = 32768 & r, a ? -1 * (65535 - r + 1) : r;
}
function m(n, e, t, i) {
var a, r;
return i || (A.ok("boolean" == typeof t, "missing or invalid endian"), A.ok(void 0 !== e && null !== e, "missing offset"),
A.ok(e + 3 < n.length, "Trying to read beyond buffer length")), r = S(n, e, t, i),
a = 2147483648 & r, a ? -1 * (4294967295 - r + 1) : r;
}
function g(e, t, i, a) {
return a || (A.ok("boolean" == typeof i, "missing or invalid endian"), A.ok(t + 3 < e.length, "Trying to read beyond buffer length")),
n("./buffer_ieee754").readIEEE754(e, t, i, 23, 4);
}
function f(e, t, i, a) {
return a || (A.ok("boolean" == typeof i, "missing or invalid endian"), A.ok(t + 7 < e.length, "Trying to read beyond buffer length")),
n("./buffer_ieee754").readIEEE754(e, t, i, 52, 8);
}
function b(n, e) {
A.ok("number" == typeof n, "cannot write a non-number as a number"), A.ok(n >= 0, "specified a negative value for writing an unsigned value"),
A.ok(e >= n, "value is larger than maximum value for type"), A.ok(Math.floor(n) === n, "value has a fractional component");
}
function y(n, e, t, i, a) {
a || (A.ok(void 0 !== e && null !== e, "missing value"), A.ok("boolean" == typeof i, "missing or invalid endian"),
A.ok(void 0 !== t && null !== t, "missing offset"), A.ok(t + 1 < n.length, "trying to write beyond buffer length"),
b(e, 65535));
for (var r = 0; r < Math.min(n.length - t, 2); r++) n.parent[n.offset + t + r] = (e & 255 << 8 * (i ? 1 - r : r)) >>> 8 * (i ? 1 - r : r);
}
function v(n, e, t, i, a) {
a || (A.ok(void 0 !== e && null !== e, "missing value"), A.ok("boolean" == typeof i, "missing or invalid endian"),
A.ok(void 0 !== t && null !== t, "missing offset"), A.ok(t + 3 < n.length, "trying to write beyond buffer length"),
b(e, 4294967295));
for (var r = 0; r < Math.min(n.length - t, 4); r++) n.parent[n.offset + t + r] = 255 & e >>> 8 * (i ? 3 - r : r);
}
function D(n, e, t) {
A.ok("number" == typeof n, "cannot write a non-number as a number"), A.ok(e >= n, "value larger than maximum allowed value"),
A.ok(n >= t, "value smaller than minimum allowed value"), A.ok(Math.floor(n) === n, "value has a fractional component");
}
function w(n, e, t) {
A.ok("number" == typeof n, "cannot write a non-number as a number"), A.ok(e >= n, "value larger than maximum allowed value"),
A.ok(n >= t, "value smaller than minimum allowed value");
}
function G(n, e, t, i, a) {
a || (A.ok(void 0 !== e && null !== e, "missing value"), A.ok("boolean" == typeof i, "missing or invalid endian"),
A.ok(void 0 !== t && null !== t, "missing offset"), A.ok(t + 1 < n.length, "Trying to write beyond buffer length"),
D(e, 32767, -32768)), e >= 0 ? y(n, e, t, i, a) : y(n, 65535 + e + 1, t, i, a);
}
function k(n, e, t, i, a) {
a || (A.ok(void 0 !== e && null !== e, "missing value"), A.ok("boolean" == typeof i, "missing or invalid endian"),
A.ok(void 0 !== t && null !== t, "missing offset"), A.ok(t + 3 < n.length, "Trying to write beyond buffer length"),
D(e, 2147483647, -2147483648)), e >= 0 ? v(n, e, t, i, a) : v(n, 4294967295 + e + 1, t, i, a);
}
function R(e, t, i, a, r) {
r || (A.ok(void 0 !== t && null !== t, "missing value"), A.ok("boolean" == typeof a, "missing or invalid endian"),
A.ok(void 0 !== i && null !== i, "missing offset"), A.ok(i + 3 < e.length, "Trying to write beyond buffer length"),
w(t, 3.4028234663852886e38, -3.4028234663852886e38)), n("./buffer_ieee754").writeIEEE754(e, t, i, a, 23, 4);
}
function C(e, t, i, a, r) {
r || (A.ok(void 0 !== t && null !== t, "missing value"), A.ok("boolean" == typeof a, "missing or invalid endian"),
A.ok(void 0 !== i && null !== i, "missing offset"), A.ok(i + 7 < e.length, "Trying to write beyond buffer length"),
w(t, 1.7976931348623157e308, -1.7976931348623157e308)), n("./buffer_ieee754").writeIEEE754(e, t, i, a, 52, 8);
}
var A = n("assert");
t.INSPECT_MAX_BYTES = 50, e.byteLength = function(n, e) {
switch (e || "utf8") {
case "hex":
return n.length / 2;
case "utf8":
case "utf-8":
return a(n).length;
case "ascii":
case "binary":
return n.length;
case "base64":
return o(n).length;
default:
throw new Error("Unknown encoding");
}
}, e.prototype.utf8Write = function(n, t, i) {
return e._charsWritten = s(a(n), this, t, i);
}, e.prototype.asciiWrite = function(n, t, i) {
return e._charsWritten = s(r(n), this, t, i);
}, e.prototype.binaryWrite = e.prototype.asciiWrite, e.prototype.base64Write = function(n, t, i) {
return e._charsWritten = s(o(n), this, t, i);
}, e.prototype.base64Slice = function() {
var e = Array.prototype.slice.apply(this, arguments);
return n("base64-js").fromByteArray(e);
}, e.prototype.utf8Slice = function() {
for (var n = Array.prototype.slice.apply(this, arguments), e = "", t = "", i = 0; i < n.length; ) n[i] <= 127 ? (e += l(t) + String.fromCharCode(n[i]),
t = "") : t += "%" + n[i].toString(16), i++;
return e + l(t);
}, e.prototype.asciiSlice = function() {
for (var n = Array.prototype.slice.apply(this, arguments), e = "", t = 0; t < n.length; t++) e += String.fromCharCode(n[t]);
return e;
}, e.prototype.binarySlice = e.prototype.asciiSlice, e.prototype.inspect = function() {
for (var n = [], e = this.length, a = 0; e > a; a++) if (n[a] = i(this[a]), a == t.INSPECT_MAX_BYTES) {
n[a + 1] = "...";
break;
}
return "<SlowBuffer " + n.join(" ") + ">";
}, e.prototype.hexSlice = function(n, e) {
var t = this.length;
(!n || 0 > n) && (n = 0), (!e || 0 > e || e > t) && (e = t);
for (var a = "", r = n; e > r; r++) a += i(this[r]);
return a;
}, e.prototype.toString = function(n, e, t) {
if (n = String(n || "utf8").toLowerCase(), e = +e || 0, "undefined" == typeof t && (t = this.length),
+t == e) return "";
switch (n) {
case "hex":
return this.hexSlice(e, t);
case "utf8":
case "utf-8":
return this.utf8Slice(e, t);
case "ascii":
return this.asciiSlice(e, t);
case "binary":
return this.binarySlice(e, t);
case "base64":
return this.base64Slice(e, t);
case "ucs2":
case "ucs-2":
return this.ucs2Slice(e, t);
default:
throw new Error("Unknown encoding");
}
}, e.prototype.hexWrite = function(n, t, i) {
t = +t || 0;
var a = this.length - t;
i ? (i = +i, i > a && (i = a)) : i = a;
var r = n.length;
if (r % 2) throw new Error("Invalid hex string");
i > r / 2 && (i = r / 2);
for (var o = 0; i > o; o++) {
var s = parseInt(n.substr(2 * o, 2), 16);
if (isNaN(s)) throw new Error("Invalid hex string");
this[t + o] = s;
}
return e._charsWritten = 2 * o, o;
}, e.prototype.write = function(n, e, t, i) {
if (isFinite(e)) isFinite(t) || (i = t, t = void 0); else {
var a = i;
i = e, e = t, t = a;
}
e = +e || 0;
var r = this.length - e;
switch (t ? (t = +t, t > r && (t = r)) : t = r, i = String(i || "utf8").toLowerCase()) {
case "hex":
return this.hexWrite(n, e, t);
case "utf8":
case "utf-8":
return this.utf8Write(n, e, t);
case "ascii":
return this.asciiWrite(n, e, t);
case "binary":
return this.binaryWrite(n, e, t);
case "base64":
return this.base64Write(n, e, t);
case "ucs2":
case "ucs-2":
return this.ucs2Write(n, e, t);
default:
throw new Error("Unknown encoding");
}
}, e.prototype.slice = function(n, e) {
if (void 0 === e && (e = this.length), e > this.length) throw new Error("oob");
if (n > e) throw new Error("oob");
return new M(this, e - n, +n);
}, e.prototype.copy = function(n, e, t, i) {
for (var a = [], r = t; i > r; r++) A.ok("undefined" != typeof this[r], "copying undefined buffer bytes!"),
a.push(this[r]);
for (var r = e; r < e + a.length; r++) n[r] = a[r - e];
}, e.prototype.fill = function(n, e, t) {
if (t > this.length) throw new Error("oob");
if (e > t) throw new Error("oob");
for (var i = e; t > i; i++) this[i] = n;
}, t.SlowBuffer = e, t.Buffer = M, M.poolSize = 8192;
var x;
M.isBuffer = function(n) {
return n instanceof M || n instanceof e;
}, M.concat = function(n, e) {
if (!Array.isArray(n)) throw new Error("Usage: Buffer.concat(list, [totalLength])\n list should be an Array.");
if (0 === n.length) return new M(0);
if (1 === n.length) return n[0];
if ("number" != typeof e) {
e = 0;
for (var t = 0; t < n.length; t++) {
var i = n[t];
e += i.length;
}
}
for (var a = new M(e), r = 0, t = 0; t < n.length; t++) {
var i = n[t];
i.copy(a, r), r += i.length;
}
return a;
}, M.prototype.inspect = function() {
for (var n = [], e = this.length, a = 0; e > a; a++) if (n[a] = i(this.parent[a + this.offset]),
a == t.INSPECT_MAX_BYTES) {
n[a + 1] = "...";
break;
}
return "<Buffer " + n.join(" ") + ">";
}, M.prototype.get = function(n) {
if (0 > n || n >= this.length) throw new Error("oob");
return this.parent[this.offset + n];
}, M.prototype.set = function(n, e) {
if (0 > n || n >= this.length) throw new Error("oob");
return this.parent[this.offset + n] = e;
}, M.prototype.write = function(n, t, i, a) {
if (isFinite(t)) isFinite(i) || (a = i, i = void 0); else {
var r = a;
a = t, t = i, i = r;
}
t = +t || 0;
var o = this.length - t;
i ? (i = +i, i > o && (i = o)) : i = o, a = String(a || "utf8").toLowerCase();
var s;
switch (a) {
case "hex":
s = this.parent.hexWrite(n, this.offset + t, i);
break;
case "utf8":
case "utf-8":
s = this.parent.utf8Write(n, this.offset + t, i);
break;
case "ascii":
s = this.parent.asciiWrite(n, this.offset + t, i);
break;
case "binary":
s = this.parent.binaryWrite(n, this.offset + t, i);
break;
case "base64":
s = this.parent.base64Write(n, this.offset + t, i);
break;
case "ucs2":
case "ucs-2":
s = this.parent.ucs2Write(n, this.offset + t, i);
break;
default:
throw new Error("Unknown encoding");
}
return M._charsWritten = e._charsWritten, s;
}, M.prototype.toString = function(n, e, t) {
switch (n = String(n || "utf8").toLowerCase(), "undefined" == typeof e || 0 > e ? e = 0 : e > this.length && (e = this.length),
"undefined" == typeof t || t > this.length ? t = this.length : 0 > t && (t = 0),
e += this.offset, t += this.offset, n) {
case "hex":
return this.parent.hexSlice(e, t);
case "utf8":
case "utf-8":
return this.parent.utf8Slice(e, t);
case "ascii":
return this.parent.asciiSlice(e, t);
case "binary":
return this.parent.binarySlice(e, t);
case "base64":
return this.parent.base64Slice(e, t);
case "ucs2":
case "ucs-2":
return this.parent.ucs2Slice(e, t);
default:
throw new Error("Unknown encoding");
}
}, M.byteLength = e.byteLength, M.prototype.fill = function(n, e, t) {
if (n || (n = 0), e || (e = 0), t || (t = this.length), "string" == typeof n && (n = n.charCodeAt(0)),
"number" != typeof n || isNaN(n)) throw new Error("value is not a number");
if (e > t) throw new Error("end < start");
if (t === e) return 0;
if (0 == this.length) return 0;
if (0 > e || e >= this.length) throw new Error("start out of bounds");
if (0 > t || t > this.length) throw new Error("end out of bounds");
return this.parent.fill(n, e + this.offset, t + this.offset);
}, M.prototype.copy = function(n, e, t, i) {
var a = this;
if (t || (t = 0), i || (i = this.length), e || (e = 0), t > i) throw new Error("sourceEnd < sourceStart");
if (i === t) return 0;
if (0 == n.length || 0 == a.length) return 0;
if (0 > e || e >= n.length) throw new Error("targetStart out of bounds");
if (0 > t || t >= a.length) throw new Error("sourceStart out of bounds");
if (0 > i || i > a.length) throw new Error("sourceEnd out of bounds");
return i > this.length && (i = this.length), n.length - e < i - t && (i = n.length - e + t),
this.parent.copy(n.parent, e + n.offset, t + this.offset, i + this.offset);
}, M.prototype.slice = function(n, e) {
if (void 0 === e && (e = this.length), e > this.length) throw new Error("oob");
if (n > e) throw new Error("oob");
return new M(this.parent, e - n, +n + this.offset);
}, M.prototype.utf8Slice = function(n, e) {
return this.toString("utf8", n, e);
}, M.prototype.binarySlice = function(n, e) {
return this.toString("binary", n, e);
}, M.prototype.asciiSlice = function(n, e) {
return this.toString("ascii", n, e);
}, M.prototype.utf8Write = function(n, e) {
return this.write(n, e, "utf8");
}, M.prototype.binaryWrite = function(n, e) {
return this.write(n, e, "binary");
}, M.prototype.asciiWrite = function(n, e) {
return this.write(n, e, "ascii");
}, M.prototype.readUInt8 = function(n, e) {
var t = this;
return e || (A.ok(void 0 !== n && null !== n, "missing offset"), A.ok(n < t.length, "Trying to read beyond buffer length")),
n >= t.length ? void 0 : t.parent[t.offset + n];
}, M.prototype.readUInt16LE = function(n, e) {
return h(this, n, !1, e);
}, M.prototype.readUInt16BE = function(n, e) {
return h(this, n, !0, e);
}, M.prototype.readUInt32LE = function(n, e) {
return S(this, n, !1, e);
}, M.prototype.readUInt32BE = function(n, e) {
return S(this, n, !0, e);
}, M.prototype.readInt8 = function(n, e) {
var t, i = this;
return e || (A.ok(void 0 !== n && null !== n, "missing offset"), A.ok(n < i.length, "Trying to read beyond buffer length")),
n >= i.length ? void 0 : (t = 128 & i.parent[i.offset + n], t ? -1 * (255 - i.parent[i.offset + n] + 1) : i.parent[i.offset + n]);
}, M.prototype.readInt16LE = function(n, e) {
return p(this, n, !1, e);
}, M.prototype.readInt16BE = function(n, e) {
return p(this, n, !0, e);
}, M.prototype.readInt32LE = function(n, e) {
return m(this, n, !1, e);
}, M.prototype.readInt32BE = function(n, e) {
return m(this, n, !0, e);
}, M.prototype.readFloatLE = function(n, e) {
return g(this, n, !1, e);
}, M.prototype.readFloatBE = function(n, e) {
return g(this, n, !0, e);
}, M.prototype.readDoubleLE = function(n, e) {
return f(this, n, !1, e);
}, M.prototype.readDoubleBE = function(n, e) {
return f(this, n, !0, e);
}, M.prototype.writeUInt8 = function(n, e, t) {
var i = this;
t || (A.ok(void 0 !== n && null !== n, "missing value"), A.ok(void 0 !== e && null !== e, "missing offset"),
A.ok(e < i.length, "trying to write beyond buffer length"), b(n, 255)), e < i.length && (i.parent[i.offset + e] = n);
}, M.prototype.writeUInt16LE = function(n, e, t) {
y(this, n, e, !1, t);
}, M.prototype.writeUInt16BE = function(n, e, t) {
y(this, n, e, !0, t);
}, M.prototype.writeUInt32LE = function(n, e, t) {
v(this, n, e, !1, t);
}, M.prototype.writeUInt32BE = function(n, e, t) {
v(this, n, e, !0, t);
}, M.prototype.writeInt8 = function(n, e, t) {
var i = this;
t || (A.ok(void 0 !== n && null !== n, "missing value"), A.ok(void 0 !== e && null !== e, "missing offset"),
A.ok(e < i.length, "Trying to write beyond buffer length"), D(n, 127, -128)), n >= 0 ? i.writeUInt8(n, e, t) : i.writeUInt8(255 + n + 1, e, t);
}, M.prototype.writeInt16LE = function(n, e, t) {
G(this, n, e, !1, t);
}, M.prototype.writeInt16BE = function(n, e, t) {
G(this, n, e, !0, t);
}, M.prototype.writeInt32LE = function(n, e, t) {
k(this, n, e, !1, t);
}, M.prototype.writeInt32BE = function(n, e, t) {
k(this, n, e, !0, t);
}, M.prototype.writeFloatLE = function(n, e, t) {
R(this, n, e, !1, t);
}, M.prototype.writeFloatBE = function(n, e, t) {
R(this, n, e, !0, t);
}, M.prototype.writeDoubleLE = function(n, e, t) {
C(this, n, e, !1, t);
}, M.prototype.writeDoubleBE = function(n, e, t) {
C(this, n, e, !0, t);
}, e.prototype.readUInt8 = M.prototype.readUInt8, e.prototype.readUInt16LE = M.prototype.readUInt16LE,
e.prototype.readUInt16BE = M.prototype.readUInt16BE, e.prototype.readUInt32LE = M.prototype.readUInt32LE,
e.prototype.readUInt32BE = M.prototype.readUInt32BE, e.prototype.readInt8 = M.prototype.readInt8,
e.prototype.readInt16LE = M.prototype.readInt16LE, e.prototype.readInt16BE = M.prototype.readInt16BE,
e.prototype.readInt32LE = M.prototype.readInt32LE, e.prototype.readInt32BE = M.prototype.readInt32BE,
e.prototype.readFloatLE = M.prototype.readFloatLE, e.prototype.readFloatBE = M.prototype.readFloatBE,
e.prototype.readDoubleLE = M.prototype.readDoubleLE, e.prototype.readDoubleBE = M.prototype.readDoubleBE,
e.prototype.writeUInt8 = M.prototype.writeUInt8, e.prototype.writeUInt16LE = M.prototype.writeUInt16LE,
e.prototype.writeUInt16BE = M.prototype.writeUInt16BE, e.prototype.writeUInt32LE = M.prototype.writeUInt32LE,
e.prototype.writeUInt32BE = M.prototype.writeUInt32BE, e.prototype.writeInt8 = M.prototype.writeInt8,
e.prototype.writeInt16LE = M.prototype.writeInt16LE, e.prototype.writeInt16BE = M.prototype.writeInt16BE,
e.prototype.writeInt32LE = M.prototype.writeInt32LE, e.prototype.writeInt32BE = M.prototype.writeInt32BE,
e.prototype.writeFloatLE = M.prototype.writeFloatLE, e.prototype.writeFloatBE = M.prototype.writeFloatBE,
e.prototype.writeDoubleLE = M.prototype.writeDoubleLE, e.prototype.writeDoubleBE = M.prototype.writeDoubleBE;
})();
}, {
assert: 32,
"./buffer_ieee754": 35,
"base64-js": 37
} ],
38: [ function(n, e) {
var t = e.exports = {};
t.nextTick = function() {
var n = "undefined" != typeof window && window.setImmediate, e = "undefined" != typeof window && window.postMessage && window.addEventListener;
if (n) return function(n) {
return window.setImmediate(n);
};
if (e) {
var t = [];
return window.addEventListener("message", function(n) {
if (n.source === window && "process-tick" === n.data && (n.stopPropagation(), t.length > 0)) {
var e = t.shift();
e();
}
}, !0), function(n) {
t.push(n), window.postMessage("process-tick", "*");
};
}
return function(n) {
setTimeout(n, 0);
};
}(), t.title = "browser", t.browser = !0, t.env = {}, t.argv = [], t.binding = function() {
throw new Error("process.binding is not supported");
}, t.cwd = function() {
return "/";
}, t.chdir = function() {
throw new Error("process.chdir is not supported");
};
}, {} ],
36: [ function(n, e, t) {
(function(n) {
function e(n, e) {
if (n.indexOf) return n.indexOf(e);
for (var t = 0; t < n.length; t++) if (e === n[t]) return t;
return -1;
}
n.EventEmitter || (n.EventEmitter = function() {});
var i = t.EventEmitter = n.EventEmitter, a = "function" == typeof Array.isArray ? Array.isArray : function(n) {
return "[object Array]" === Object.prototype.toString.call(n);
}, r = 10;
i.prototype.setMaxListeners = function(n) {
this._events || (this._events = {}), this._events.maxListeners = n;
}, i.prototype.emit = function(n) {
if ("error" === n && (!this._events || !this._events.error || a(this._events.error) && !this._events.error.length)) throw arguments[1] instanceof Error ? arguments[1] : new Error("Uncaught, unspecified 'error' event.");
if (!this._events) return !1;
var e = this._events[n];
if (!e) return !1;
if ("function" == typeof e) {
switch (arguments.length) {
case 1:
e.call(this);
break;
case 2:
e.call(this, arguments[1]);
break;
case 3:
e.call(this, arguments[1], arguments[2]);
break;
default:
var t = Array.prototype.slice.call(arguments, 1);
e.apply(this, t);
}
return !0;
}
if (a(e)) {
for (var t = Array.prototype.slice.call(arguments, 1), i = e.slice(), r = 0, o = i.length; o > r; r++) i[r].apply(this, t);
return !0;
}
return !1;
}, i.prototype.addListener = function(n, e) {
if ("function" != typeof e) throw new Error("addListener only takes instances of Function");
if (this._events || (this._events = {}), this.emit("newListener", n, e), this._events[n]) if (a(this._events[n])) {
if (!this._events[n].warned) {
var t;
t = void 0 !== this._events.maxListeners ? this._events.maxListeners : r, t && t > 0 && this._events[n].length > t && (this._events[n].warned = !0,
console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[n].length),
console.trace());
}
this._events[n].push(e);
} else this._events[n] = [ this._events[n], e ]; else this._events[n] = e;
return this;
}, i.prototype.on = i.prototype.addListener, i.prototype.once = function(n, e) {
var t = this;
return t.on(n, function i() {
t.removeListener(n, i), e.apply(this, arguments);
}), this;
}, i.prototype.removeListener = function(n, t) {
if ("function" != typeof t) throw new Error("removeListener only takes instances of Function");
if (!this._events || !this._events[n]) return this;
var i = this._events[n];
if (a(i)) {
var r = e(i, t);
if (0 > r) return this;
i.splice(r, 1), 0 == i.length && delete this._events[n];
} else this._events[n] === t && delete this._events[n];
return this;
}, i.prototype.removeAllListeners = function(n) {
return 0 === arguments.length ? (this._events = {}, this) : (n && this._events && this._events[n] && (this._events[n] = null),
this);
}, i.prototype.listeners = function(n) {
return this._events || (this._events = {}), this._events[n] || (this._events[n] = []),
a(this._events[n]) || (this._events[n] = [ this._events[n] ]), this._events[n];
};
})(n("__browserify_process"));
}, {
__browserify_process: 38
} ],
37: [ function(n, e) {
(function() {
function n(n) {
var e, t, a, r, o, s;
if (n.length % 4 > 0) throw "Invalid string. Length must be a multiple of 4";
for (o = n.indexOf("="), o = o > 0 ? n.length - o : 0, s = [], a = o > 0 ? n.length - 4 : n.length,
e = 0, t = 0; a > e; e += 4, t += 3) r = i.indexOf(n[e]) << 18 | i.indexOf(n[e + 1]) << 12 | i.indexOf(n[e + 2]) << 6 | i.indexOf(n[e + 3]),
s.push((16711680 & r) >> 16), s.push((65280 & r) >> 8), s.push(255 & r);
return 2 === o ? (r = i.indexOf(n[e]) << 2 | i.indexOf(n[e + 1]) >> 4, s.push(255 & r)) : 1 === o && (r = i.indexOf(n[e]) << 10 | i.indexOf(n[e + 1]) << 4 | i.indexOf(n[e + 2]) >> 2,
s.push(255 & r >> 8), s.push(255 & r)), s;
}
function t(n) {
function e(n) {
return i[63 & n >> 18] + i[63 & n >> 12] + i[63 & n >> 6] + i[63 & n];
}
var t, a, r, o = n.length % 3, s = "";
for (t = 0, r = n.length - o; r > t; t += 3) a = (n[t] << 16) + (n[t + 1] << 8) + n[t + 2],
s += e(a);
switch (o) {
case 1:
a = n[n.length - 1], s += i[a >> 2], s += i[63 & a << 4], s += "==";
break;
case 2:
a = (n[n.length - 2] << 8) + n[n.length - 1], s += i[a >> 10], s += i[63 & a >> 4],
s += i[63 & a << 2], s += "=";
}
return s;
}
var i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
e.exports.toByteArray = n, e.exports.fromByteArray = t;
})();
}, {} ],
31: [ function(n, e) {
function t(n) {
try {
var e, t = "(" + n + ")", i = a.parse(t, {
range: !0
}), o = [];
return "Program" !== i.type || 1 !== i.body.length || "ExpressionStatement" !== i.body[0].type || "FunctionExpression" !== i.body[0].expression.type ? r : (i.body[0].expression.params.forEach(function(n) {
o.push(n.name);
}), e = i.body[0].expression.body.range, new Function(o, t.slice(e[0] + 1, e[1] - 1)));
} catch (s) {
return r;
}
}
function i(n) {
return n.toString();
}
var a = n("esprima"), r = n("../../common").NIL, o = n("../../type");
e.exports = new o("tag:yaml.org,2002:js/function", {
loader: {
kind: "string",
resolver: t
},
dumper: {
kind: "function",
representer: i
}
});
}, {
"../../common": 12,
"../../type": 4,
esprima: 39
} ],
39: [ function(n, e, t) {
(function() {
(function(n, e) {
"function" == typeof define && define.amd ? define("js-yaml", [ "exports" ], e) : "undefined" != typeof t ? e(t) : e(n.esprima = {});
})(this, function(n) {
function e(n, e) {
if (!n) throw new Error("ASSERT: " + e);
}
function t(n, e) {
return dt.slice(n, e);
}
function i(n) {
return "0123456789".indexOf(n) >= 0;
}
function a(n) {
return "0123456789abcdefABCDEF".indexOf(n) >= 0;
}
function r(n) {
return "01234567".indexOf(n) >= 0;
}
function o(n) {
return " " === n || " " === n || " " === n || "\f" === n || " " === n || n.charCodeAt(0) >= 5760 && "  ".indexOf(n) >= 0;
}
function s(n) {
return "\n" === n || "\r" === n || "\u2028" === n || "\u2029" === n;
}
function l(n) {
return "$" === n || "_" === n || "\\" === n || n >= "a" && "z" >= n || n >= "A" && "Z" >= n || n.charCodeAt(0) >= 128 && ut.NonAsciiIdentifierStart.test(n);
}
function c(n) {
return "$" === n || "_" === n || "\\" === n || n >= "a" && "z" >= n || n >= "A" && "Z" >= n || n >= "0" && "9" >= n || n.charCodeAt(0) >= 128 && ut.NonAsciiIdentifierPart.test(n);
}
function M(n) {
switch (n) {
case "class":
case "enum":
case "export":
case "extends":
case "import":
case "super":
return !0;
}
return !1;
}
function u(n) {
switch (n) {
case "implements":
case "interface":
case "package":
case "private":
case "protected":
case "public":
case "static":
case "yield":
case "let":
return !0;
}
return !1;
}
function d(n) {
return "eval" === n || "arguments" === n;
}
function h(n) {
var e = !1;
switch (n.length) {
case 2:
e = "if" === n || "in" === n || "do" === n;
break;
case 3:
e = "var" === n || "for" === n || "new" === n || "try" === n;
break;
case 4:
e = "this" === n || "else" === n || "case" === n || "void" === n || "with" === n;
break;
case 5:
e = "while" === n || "break" === n || "catch" === n || "throw" === n;
break;
case 6:
e = "return" === n || "typeof" === n || "delete" === n || "switch" === n;
break;
case 7:
e = "default" === n || "finally" === n;
break;
case 8:
e = "function" === n || "continue" === n || "debugger" === n;
break;
case 10:
e = "instanceof" === n;
}
if (e) return !0;
switch (n) {
case "const":
return !0;
case "yield":
case "let":
return !0;
}
return ht && u(n) ? !0 : M(n);
}
function S() {
var n, e, t;
for (e = !1, t = !1; gt > St; ) if (n = dt[St], t) n = dt[St++], s(n) && (t = !1,
"\r" === n && "\n" === dt[St] && ++St, ++pt, mt = St); else if (e) s(n) ? ("\r" === n && "\n" === dt[St + 1] && ++St,
++pt, ++St, mt = St, St >= gt && R({}, Mt.UnexpectedToken, "ILLEGAL")) : (n = dt[St++],
St >= gt && R({}, Mt.UnexpectedToken, "ILLEGAL"), "*" === n && (n = dt[St], "/" === n && (++St,
e = !1))); else if ("/" === n) if (n = dt[St + 1], "/" === n) St += 2, t = !0; else {
if ("*" !== n) break;
St += 2, e = !0, St >= gt && R({}, Mt.UnexpectedToken, "ILLEGAL");
} else if (o(n)) ++St; else {
if (!s(n)) break;
++St, "\r" === n && "\n" === dt[St] && ++St, ++pt, mt = St;
}
}
function p(n) {
var e, t, i, r = 0;
for (t = "u" === n ? 4 : 2, e = 0; t > e; ++e) {
if (!(gt > St && a(dt[St]))) return "";
i = dt[St++], r = 16 * r + "0123456789abcdef".indexOf(i.toLowerCase());
}
return String.fromCharCode(r);
}
function m() {
var n, e, t, i;
if (n = dt[St], l(n)) {
if (e = St, "\\" === n) {
if (++St, "u" !== dt[St]) return;
if (++St, i = St, n = p("u")) {
if ("\\" === n || !l(n)) return;
t = n;
} else St = i, t = "u";
} else t = dt[St++];
for (;gt > St && (n = dt[St], c(n)); ) if ("\\" === n) {
if (++St, "u" !== dt[St]) return;
if (++St, i = St, n = p("u")) {
if ("\\" === n || !c(n)) return;
t += n;
} else St = i, t += "u";
} else t += dt[St++];
return 1 === t.length ? {
type: ot.Identifier,
value: t,
lineNumber: pt,
lineStart: mt,
range: [ e, St ]
} : h(t) ? {
type: ot.Keyword,
value: t,
lineNumber: pt,
lineStart: mt,
range: [ e, St ]
} : "null" === t ? {
type: ot.NullLiteral,
value: t,
lineNumber: pt,
lineStart: mt,
range: [ e, St ]
} : "true" === t || "false" === t ? {
type: ot.BooleanLiteral,
value: t,
lineNumber: pt,
lineStart: mt,
range: [ e, St ]
} : {
type: ot.Identifier,
value: t,
lineNumber: pt,
lineStart: mt,
range: [ e, St ]
};
}
}
function g() {
var n, e, t, a = St, r = dt[St];
return ";" === r || "{" === r || "}" === r ? (++St, {
type: ot.Punctuator,
value: r,
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : "," === r || "(" === r || ")" === r ? (++St, {
type: ot.Punctuator,
value: r,
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : (n = dt[St + 1], "." !== r || i(n) ? (e = dt[St + 2], t = dt[St + 3], ">" === r && ">" === n && ">" === e && "=" === t ? (St += 4,
{
type: ot.Punctuator,
value: ">>>=",
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : "=" === r && "=" === n && "=" === e ? (St += 3, {
type: ot.Punctuator,
value: "===",
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : "!" === r && "=" === n && "=" === e ? (St += 3, {
type: ot.Punctuator,
value: "!==",
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : ">" === r && ">" === n && ">" === e ? (St += 3, {
type: ot.Punctuator,
value: ">>>",
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : "<" === r && "<" === n && "=" === e ? (St += 3, {
type: ot.Punctuator,
value: "<<=",
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : ">" === r && ">" === n && "=" === e ? (St += 3, {
type: ot.Punctuator,
value: ">>=",
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : "=" === n && "<>=!+-*%&|^/".indexOf(r) >= 0 ? (St += 2, {
type: ot.Punctuator,
value: r + n,
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : r === n && "+-<>&|".indexOf(r) >= 0 && "+-<>&|".indexOf(n) >= 0 ? (St += 2,
{
type: ot.Punctuator,
value: r + n,
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
}) : "[]<>+-*%&|^!~?:=/".indexOf(r) >= 0 ? {
type: ot.Punctuator,
value: dt[St++],
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
} : void 0) : {
type: ot.Punctuator,
value: dt[St++],
lineNumber: pt,
lineStart: mt,
range: [ a, St ]
});
}
function f() {
var n, t, o;
if (o = dt[St], e(i(o) || "." === o, "Numeric literal must start with a decimal digit or a decimal point"),
t = St, n = "", "." !== o) {
if (n = dt[St++], o = dt[St], "0" === n) {
if ("x" === o || "X" === o) {
for (n += dt[St++]; gt > St && (o = dt[St], a(o)); ) n += dt[St++];
return n.length <= 2 && R({}, Mt.UnexpectedToken, "ILLEGAL"), gt > St && (o = dt[St],
l(o) && R({}, Mt.UnexpectedToken, "ILLEGAL")), {
type: ot.NumericLiteral,
value: parseInt(n, 16),
lineNumber: pt,
lineStart: mt,
range: [ t, St ]
};
}
if (r(o)) {
for (n += dt[St++]; gt > St && (o = dt[St], r(o)); ) n += dt[St++];
return gt > St && (o = dt[St], (l(o) || i(o)) && R({}, Mt.UnexpectedToken, "ILLEGAL")),
{
type: ot.NumericLiteral,
value: parseInt(n, 8),
octal: !0,
lineNumber: pt,
lineStart: mt,
range: [ t, St ]
};
}
i(o) && R({}, Mt.UnexpectedToken, "ILLEGAL");
}
for (;gt > St && (o = dt[St], i(o)); ) n += dt[St++];
}
if ("." === o) for (n += dt[St++]; gt > St && (o = dt[St], i(o)); ) n += dt[St++];
if ("e" === o || "E" === o) if (n += dt[St++], o = dt[St], ("+" === o || "-" === o) && (n += dt[St++]),
o = dt[St], i(o)) for (n += dt[St++]; gt > St && (o = dt[St], i(o)); ) n += dt[St++]; else o = "character " + o,
St >= gt && (o = "<end>"), R({}, Mt.UnexpectedToken, "ILLEGAL");
return gt > St && (o = dt[St], l(o) && R({}, Mt.UnexpectedToken, "ILLEGAL")), {
type: ot.NumericLiteral,
value: parseFloat(n),
lineNumber: pt,
lineStart: mt,
range: [ t, St ]
};
}
function b() {
var n, t, i, a, o, l, c = "", M = !1;
for (n = dt[St], e("'" === n || '"' === n, "String literal must starts with a quote"),
t = St, ++St; gt > St; ) {
if (i = dt[St++], i === n) {
n = "";
break;
}
if ("\\" === i) if (i = dt[St++], s(i)) ++pt, "\r" === i && "\n" === dt[St] && ++St; else switch (i) {
case "n":
c += "\n";
break;
case "r":
c += "\r";
break;
case "t":
c += " ";
break;
case "u":
case "x":
l = St, o = p(i), o ? c += o : (St = l, c += i);
break;
case "b":
c += "\b";
break;
case "f":
c += "\f";
break;
case "v":
c += " ";
break;
default:
r(i) ? (a = "01234567".indexOf(i), 0 !== a && (M = !0), gt > St && r(dt[St]) && (M = !0,
a = 8 * a + "01234567".indexOf(dt[St++]), "0123".indexOf(i) >= 0 && gt > St && r(dt[St]) && (a = 8 * a + "01234567".indexOf(dt[St++]))),
c += String.fromCharCode(a)) : c += i;
} else {
if (s(i)) break;
c += i;
}
}
return "" !== n && R({}, Mt.UnexpectedToken, "ILLEGAL"), {
type: ot.StringLiteral,
value: c,
octal: M,
lineNumber: pt,
lineStart: mt,
range: [ t, St ]
};
}
function y() {
var n, t, i, a, r, o, l, M = !1, u = !1;
for (ft = null, S(), i = St, t = dt[St], e("/" === t, "Regular expression literal must start with a slash"),
n = dt[St++]; gt > St; ) if (t = dt[St++], n += t, M) "]" === t && (M = !1); else if ("\\" === t) t = dt[St++],
s(t) && R({}, Mt.UnterminatedRegExp), n += t; else {
if ("/" === t) {
u = !0;
break;
}
"[" === t ? M = !0 : s(t) && R({}, Mt.UnterminatedRegExp);
}
for (u || R({}, Mt.UnterminatedRegExp), a = n.substr(1, n.length - 2), r = ""; gt > St && (t = dt[St],
c(t)); ) if (++St, "\\" === t && gt > St) if (t = dt[St], "u" === t) if (++St, l = St,
t = p("u")) for (r += t, n += "\\u"; St > l; ++l) n += dt[l]; else St = l, r += "u",
n += "\\u"; else n += "\\"; else r += t, n += t;
try {
o = new RegExp(a, r);
} catch (d) {
R({}, Mt.InvalidRegExp);
}
return {
literal: n,
value: o,
range: [ i, St ]
};
}
function v(n) {
return n.type === ot.Identifier || n.type === ot.Keyword || n.type === ot.BooleanLiteral || n.type === ot.NullLiteral;
}
function D() {
var n, e;
return S(), St >= gt ? {
type: ot.EOF,
lineNumber: pt,
lineStart: mt,
range: [ St, St ]
} : (e = g(), "undefined" != typeof e ? e : (n = dt[St], "'" === n || '"' === n ? b() : "." === n || i(n) ? f() : (e = m(),
"undefined" != typeof e ? e : (R({}, Mt.UnexpectedToken, "ILLEGAL"), void 0))));
}
function w() {
var n;
return ft ? (St = ft.range[1], pt = ft.lineNumber, mt = ft.lineStart, n = ft, ft = null,
n) : (ft = null, D());
}
function G() {
var n, e, t;
return null !== ft ? ft : (n = St, e = pt, t = mt, ft = D(), St = n, pt = e, mt = t,
ft);
}
function k() {
var n, e, t, i;
return n = St, e = pt, t = mt, S(), i = pt !== e, St = n, pt = e, mt = t, i;
}
function R(n, e) {
var t, i = Array.prototype.slice.call(arguments, 2), a = e.replace(/%(\d)/g, function(n, e) {
return i[e] || "";
});
throw "number" == typeof n.lineNumber ? (t = new Error("Line " + n.lineNumber + ": " + a),
t.index = n.range[0], t.lineNumber = n.lineNumber, t.column = n.range[0] - mt + 1) : (t = new Error("Line " + pt + ": " + a),
t.index = St, t.lineNumber = pt, t.column = St - mt + 1), t;
}
function C() {
try {
R.apply(null, arguments);
} catch (n) {
if (!yt.errors) throw n;
yt.errors.push(n);
}
}
function A(n) {
if (n.type === ot.EOF && R(n, Mt.UnexpectedEOS), n.type === ot.NumericLiteral && R(n, Mt.UnexpectedNumber),
n.type === ot.StringLiteral && R(n, Mt.UnexpectedString), n.type === ot.Identifier && R(n, Mt.UnexpectedIdentifier),
n.type === ot.Keyword) {
if (M(n.value)) R(n, Mt.UnexpectedReserved); else if (ht && u(n.value)) return C(n, Mt.StrictReservedWord),
void 0;
R(n, Mt.UnexpectedToken, n.value);
}
R(n, Mt.UnexpectedToken, n.value);
}
function x(n) {
var e = w();
(e.type !== ot.Punctuator || e.value !== n) && A(e);
}
function E(n) {
var e = w();
(e.type !== ot.Keyword || e.value !== n) && A(e);
}
function P(n) {
var e = G();
return e.type === ot.Punctuator && e.value === n;
}
function T(n) {
var e = G();
return e.type === ot.Keyword && e.value === n;
}
function F() {
var n = G(), e = n.value;
return n.type !== ot.Punctuator ? !1 : "=" === e || "*=" === e || "/=" === e || "%=" === e || "+=" === e || "-=" === e || "<<=" === e || ">>=" === e || ">>>=" === e || "&=" === e || "^=" === e || "|=" === e;
}
function B() {
var n, e;
if (";" === dt[St]) return w(), void 0;
if (e = pt, S(), pt === e) {
if (P(";")) return w(), void 0;
n = G(), n.type === ot.EOF || P("}") || A(n);
}
}
function Y(n) {
return n.type === lt.Identifier || n.type === lt.MemberExpression;
}
function L() {
var n = [];
for (x("["); !P("]"); ) P(",") ? (w(), n.push(null)) : (n.push(ce()), P("]") || x(","));
return x("]"), {
type: lt.ArrayExpression,
elements: n
};
}
function N(n, e) {
var t, i;
return t = ht, i = Le(), e && ht && d(n[0].name) && C(e, Mt.StrictParamName), ht = t,
{
type: lt.FunctionExpression,
id: null,
params: n,
defaults: [],
body: i,
rest: null,
generator: !1,
expression: !1
};
}
function z() {
var n = w();
return n.type === ot.StringLiteral || n.type === ot.NumericLiteral ? (ht && n.octal && C(n, Mt.StrictOctalLiteral),
Je(n)) : {
type: lt.Identifier,
name: n.value
};
}
function I() {
var n, e, t, i;
return n = G(), n.type === ot.Identifier ? (t = z(), "get" !== n.value || P(":") ? "set" !== n.value || P(":") ? (x(":"),
{
type: lt.Property,
key: t,
value: ce(),
kind: "init"
}) : (e = z(), x("("), n = G(), n.type !== ot.Identifier && A(w()), i = [ he() ],
x(")"), {
type: lt.Property,
key: e,
value: N(i, n),
kind: "set"
}) : (e = z(), x("("), x(")"), {
type: lt.Property,
key: e,
value: N([]),
kind: "get"
})) : n.type !== ot.EOF && n.type !== ot.Punctuator ? (e = z(), x(":"), {
type: lt.Property,
key: e,
value: ce(),
kind: "init"
}) : (A(n), void 0);
}
function _() {
var n, e, t, i = [], a = {}, r = String;
for (x("{"); !P("}"); ) n = I(), e = n.key.type === lt.Identifier ? n.key.name : r(n.key.value),
t = "init" === n.kind ? ct.Data : "get" === n.kind ? ct.Get : ct.Set, Object.prototype.hasOwnProperty.call(a, e) ? (a[e] === ct.Data ? ht && t === ct.Data ? C({}, Mt.StrictDuplicateProperty) : t !== ct.Data && C({}, Mt.AccessorDataProperty) : t === ct.Data ? C({}, Mt.AccessorDataProperty) : a[e] & t && C({}, Mt.AccessorGetSet),
a[e] |= t) : a[e] = t, i.push(n), P("}") || x(",");
return x("}"), {
type: lt.ObjectExpression,
properties: i
};
}
function U() {
var n;
return x("("), n = Me(), x(")"), n;
}
function $() {
var n = G(), e = n.type;
if (e === ot.Identifier) return {
type: lt.Identifier,
name: w().value
};
if (e === ot.StringLiteral || e === ot.NumericLiteral) return ht && n.octal && C(n, Mt.StrictOctalLiteral),
Je(w());
if (e === ot.Keyword) {
if (T("this")) return w(), {
type: lt.ThisExpression
};
if (T("function")) return ze();
}
return e === ot.BooleanLiteral ? (w(), n.value = "true" === n.value, Je(n)) : e === ot.NullLiteral ? (w(),
n.value = null, Je(n)) : P("[") ? L() : P("{") ? _() : P("(") ? U() : P("/") || P("/=") ? Je(y()) : A(w());
}
function j() {
var n = [];
if (x("("), !P(")")) for (;gt > St && (n.push(ce()), !P(")")); ) x(",");
return x(")"), n;
}
function Z() {
var n = w();
return v(n) || A(n), {
type: lt.Identifier,
name: n.value
};
}
function O() {
return x("."), Z();
}
function H() {
var n;
return x("["), n = Me(), x("]"), n;
}
function q() {
var n;
return E("new"), n = {
type: lt.NewExpression,
callee: W(),
arguments: []
}, P("(") && (n.arguments = j()), n;
}
function J() {
var n;
for (n = T("new") ? q() : $(); P(".") || P("[") || P("("); ) n = P("(") ? {
type: lt.CallExpression,
callee: n,
arguments: j()
} : P("[") ? {
type: lt.MemberExpression,
computed: !0,
object: n,
property: H()
} : {
type: lt.MemberExpression,
computed: !1,
object: n,
property: O()
};
return n;
}
function W() {
var n;
for (n = T("new") ? q() : $(); P(".") || P("["); ) n = P("[") ? {
type: lt.MemberExpression,
computed: !0,
object: n,
property: H()
} : {
type: lt.MemberExpression,
computed: !1,
object: n,
property: O()
};
return n;
}
function V() {
var n, e = J();
return n = G(), n.type !== ot.Punctuator ? e : (!P("++") && !P("--") || k() || (ht && e.type === lt.Identifier && d(e.name) && C({}, Mt.StrictLHSPostfix),
Y(e) || R({}, Mt.InvalidLHSInAssignment), e = {
type: lt.UpdateExpression,
operator: w().value,
argument: e,
prefix: !1
}), e);
}
function K() {
var n, e;
return n = G(), n.type !== ot.Punctuator && n.type !== ot.Keyword ? V() : P("++") || P("--") ? (n = w(),
e = K(), ht && e.type === lt.Identifier && d(e.name) && C({}, Mt.StrictLHSPrefix),
Y(e) || R({}, Mt.InvalidLHSInAssignment), e = {
type: lt.UpdateExpression,
operator: n.value,
argument: e,
prefix: !0
}) : P("+") || P("-") || P("~") || P("!") ? e = {
type: lt.UnaryExpression,
operator: w().value,
argument: K()
} : T("delete") || T("void") || T("typeof") ? (e = {
type: lt.UnaryExpression,
operator: w().value,
argument: K()
}, ht && "delete" === e.operator && e.argument.type === lt.Identifier && C({}, Mt.StrictDelete),
e) : V();
}
function X() {
for (var n = K(); P("*") || P("/") || P("%"); ) n = {
type: lt.BinaryExpression,
operator: w().value,
left: n,
right: K()
};
return n;
}
function Q() {
for (var n = X(); P("+") || P("-"); ) n = {
type: lt.BinaryExpression,
operator: w().value,
left: n,
right: X()
};
return n;
}
function ne() {
for (var n = Q(); P("<<") || P(">>") || P(">>>"); ) n = {
type: lt.BinaryExpression,
operator: w().value,
left: n,
right: Q()
};
return n;
}
function ee() {
var n, e;
for (e = bt.allowIn, bt.allowIn = !0, n = ne(); P("<") || P(">") || P("<=") || P(">=") || e && T("in") || T("instanceof"); ) n = {
type: lt.BinaryExpression,
operator: w().value,
left: n,
right: ne()
};
return bt.allowIn = e, n;
}
function te() {
for (var n = ee(); P("==") || P("!=") || P("===") || P("!=="); ) n = {
type: lt.BinaryExpression,
operator: w().value,
left: n,
right: ee()
};
return n;
}
function ie() {
for (var n = te(); P("&"); ) w(), n = {
type: lt.BinaryExpression,
operator: "&",
left: n,
right: te()
};
return n;
}
function ae() {
for (var n = ie(); P("^"); ) w(), n = {
type: lt.BinaryExpression,
operator: "^",
left: n,
right: ie()
};
return n;
}
function re() {
for (var n = ae(); P("|"); ) w(), n = {
type: lt.BinaryExpression,
operator: "|",
left: n,
right: ae()
};
return n;
}
function oe() {
for (var n = re(); P("&&"); ) w(), n = {
type: lt.LogicalExpression,
operator: "&&",
left: n,
right: re()
};
return n;
}
function se() {
for (var n = oe(); P("||"); ) w(), n = {
type: lt.LogicalExpression,
operator: "||",
left: n,
right: oe()
};
return n;
}
function le() {
var n, e, t;
return n = se(), P("?") && (w(), e = bt.allowIn, bt.allowIn = !0, t = ce(), bt.allowIn = e,
x(":"), n = {
type: lt.ConditionalExpression,
test: n,
consequent: t,
alternate: ce()
}), n;
}
function ce() {
var n, e;
return n = G(), e = le(), F() && (Y(e) || R({}, Mt.InvalidLHSInAssignment), ht && e.type === lt.Identifier && d(e.name) && C(n, Mt.StrictLHSAssignment),
e = {
type: lt.AssignmentExpression,
operator: w().value,
left: e,
right: ce()
}), e;
}
function Me() {
var n = ce();
if (P(",")) for (n = {
type: lt.SequenceExpression,
expressions: [ n ]
}; gt > St && P(","); ) w(), n.expressions.push(ce());
return n;
}
function ue() {
for (var n, e = []; gt > St && !P("}") && (n = Ie(), "undefined" != typeof n); ) e.push(n);
return e;
}
function de() {
var n;
return x("{"), n = ue(), x("}"), {
type: lt.BlockStatement,
body: n
};
}
function he() {
var n = w();
return n.type !== ot.Identifier && A(n), {
type: lt.Identifier,
name: n.value
};
}
function Se(n) {
var e = he(), t = null;
return ht && d(e.name) && C({}, Mt.StrictVarName), "const" === n ? (x("="), t = ce()) : P("=") && (w(),
t = ce()), {
type: lt.VariableDeclarator,
id: e,
init: t
};
}
function pe(n) {
for (var e = []; gt > St && (e.push(Se(n)), P(",")); ) w();
return e;
}
function me() {
var n;
return E("var"), n = pe(), B(), {
type: lt.VariableDeclaration,
declarations: n,
kind: "var"
};
}
function ge(n) {
var e;
return E(n), e = pe(n), B(), {
type: lt.VariableDeclaration,
declarations: e,
kind: n
};
}
function fe() {
return x(";"), {
type: lt.EmptyStatement
};
}
function be() {
var n = Me();
return B(), {
type: lt.ExpressionStatement,
expression: n
};
}
function ye() {
var n, e, t;
return E("if"), x("("), n = Me(), x(")"), e = Ye(), T("else") ? (w(), t = Ye()) : t = null,
{
type: lt.IfStatement,
test: n,
consequent: e,
alternate: t
};
}
function ve() {
var n, e, t;
return E("do"), t = bt.inIteration, bt.inIteration = !0, n = Ye(), bt.inIteration = t,
E("while"), x("("), e = Me(), x(")"), P(";") && w(), {
type: lt.DoWhileStatement,
body: n,
test: e
};
}
function De() {
var n, e, t;
return E("while"), x("("), n = Me(), x(")"), t = bt.inIteration, bt.inIteration = !0,
e = Ye(), bt.inIteration = t, {
type: lt.WhileStatement,
test: n,
body: e
};
}
function we() {
var n = w();
return {
type: lt.VariableDeclaration,
declarations: pe(),
kind: n.value
};
}
function Ge() {
var n, e, t, i, a, r, o;
return n = e = t = null, E("for"), x("("), P(";") ? w() : (T("var") || T("let") ? (bt.allowIn = !1,
n = we(), bt.allowIn = !0, 1 === n.declarations.length && T("in") && (w(), i = n,
a = Me(), n = null)) : (bt.allowIn = !1, n = Me(), bt.allowIn = !0, T("in") && (Y(n) || R({}, Mt.InvalidLHSInForIn),
w(), i = n, a = Me(), n = null)), "undefined" == typeof i && x(";")), "undefined" == typeof i && (P(";") || (e = Me()),
x(";"), P(")") || (t = Me())), x(")"), o = bt.inIteration, bt.inIteration = !0,
r = Ye(), bt.inIteration = o, "undefined" == typeof i ? {
type: lt.ForStatement,
init: n,
test: e,
update: t,
body: r
} : {
type: lt.ForInStatement,
left: i,
right: a,
body: r,
each: !1
};
}
function ke() {
var n, e = null;
return E("continue"), ";" === dt[St] ? (w(), bt.inIteration || R({}, Mt.IllegalContinue),
{
type: lt.ContinueStatement,
label: null
}) : k() ? (bt.inIteration || R({}, Mt.IllegalContinue), {
type: lt.ContinueStatement,
label: null
}) : (n = G(), n.type === ot.Identifier && (e = he(), Object.prototype.hasOwnProperty.call(bt.labelSet, e.name) || R({}, Mt.UnknownLabel, e.name)),
B(), null !== e || bt.inIteration || R({}, Mt.IllegalContinue), {
type: lt.ContinueStatement,
label: e
});
}
function Re() {
var n, e = null;
return E("break"), ";" === dt[St] ? (w(), bt.inIteration || bt.inSwitch || R({}, Mt.IllegalBreak),
{
type: lt.BreakStatement,
label: null
}) : k() ? (bt.inIteration || bt.inSwitch || R({}, Mt.IllegalBreak), {
type: lt.BreakStatement,
label: null
}) : (n = G(), n.type === ot.Identifier && (e = he(), Object.prototype.hasOwnProperty.call(bt.labelSet, e.name) || R({}, Mt.UnknownLabel, e.name)),
B(), null !== e || bt.inIteration || bt.inSwitch || R({}, Mt.IllegalBreak), {
type: lt.BreakStatement,
label: e
});
}
function Ce() {
var n, e = null;
return E("return"), bt.inFunctionBody || C({}, Mt.IllegalReturn), " " === dt[St] && l(dt[St + 1]) ? (e = Me(),
B(), {
type: lt.ReturnStatement,
argument: e
}) : k() ? {
type: lt.ReturnStatement,
argument: null
} : (P(";") || (n = G(), P("}") || n.type === ot.EOF || (e = Me())), B(), {
type: lt.ReturnStatement,
argument: e
});
}
function Ae() {
var n, e;
return ht && C({}, Mt.StrictModeWith), E("with"), x("("), n = Me(), x(")"), e = Ye(),
{
type: lt.WithStatement,
object: n,
body: e
};
}
function xe() {
var n, e, t = [];
for (T("default") ? (w(), n = null) : (E("case"), n = Me()), x(":"); gt > St && !(P("}") || T("default") || T("case")) && (e = Ye(),
"undefined" != typeof e); ) t.push(e);
return {
type: lt.SwitchCase,
test: n,
consequent: t
};
}
function Ee() {
var n, e, t, i, a;
if (E("switch"), x("("), n = Me(), x(")"), x("{"), P("}")) return w(), {
type: lt.SwitchStatement,
discriminant: n
};
for (e = [], i = bt.inSwitch, bt.inSwitch = !0, a = !1; gt > St && !P("}"); ) t = xe(),
null === t.test && (a && R({}, Mt.MultipleDefaultsInSwitch), a = !0), e.push(t);
return bt.inSwitch = i, x("}"), {
type: lt.SwitchStatement,
discriminant: n,
cases: e
};
}
function Pe() {
var n;
return E("throw"), k() && R({}, Mt.NewlineAfterThrow), n = Me(), B(), {
type: lt.ThrowStatement,
argument: n
};
}
function Te() {
var n;
return E("catch"), x("("), P(")") || (n = Me(), ht && n.type === lt.Identifier && d(n.name) && C({}, Mt.StrictCatchVariable)),
x(")"), {
type: lt.CatchClause,
param: n,
body: de()
};
}
function Fe() {
var n, e = [], t = null;
return E("try"), n = de(), T("catch") && e.push(Te()), T("finally") && (w(), t = de()),
0 !== e.length || t || R({}, Mt.NoCatchOrFinally), {
type: lt.TryStatement,
block: n,
guardedHandlers: [],
handlers: e,
finalizer: t
};
}
function Be() {
return E("debugger"), B(), {
type: lt.DebuggerStatement
};
}
function Ye() {
var n, e, t = G();
if (t.type === ot.EOF && A(t), t.type === ot.Punctuator) switch (t.value) {
case ";":
return fe();
case "{":
return de();
case "(":
return be();
}
if (t.type === ot.Keyword) switch (t.value) {
case "break":
return Re();
case "continue":
return ke();
case "debugger":
return Be();
case "do":
return ve();
case "for":
return Ge();
case "function":
return Ne();
case "if":
return ye();
case "return":
return Ce();
case "switch":
return Ee();
case "throw":
return Pe();
case "try":
return Fe();
case "var":
return me();
case "while":
return De();
case "with":
return Ae();
}
return n = Me(), n.type === lt.Identifier && P(":") ? (w(), Object.prototype.hasOwnProperty.call(bt.labelSet, n.name) && R({}, Mt.Redeclaration, "Label", n.name),
bt.labelSet[n.name] = !0, e = Ye(), delete bt.labelSet[n.name], {
type: lt.LabeledStatement,
label: n,
body: e
}) : (B(), {
type: lt.ExpressionStatement,
expression: n
});
}
function Le() {
var n, e, i, a, r, o, s, l, c = [];
for (x("{"); gt > St && (e = G(), e.type === ot.StringLiteral) && (n = Ie(), c.push(n),
n.expression.type === lt.Literal); ) i = t(e.range[0] + 1, e.range[1] - 1), "use strict" === i ? (ht = !0,
a && C(a, Mt.StrictOctalLiteral)) : !a && e.octal && (a = e);
for (r = bt.labelSet, o = bt.inIteration, s = bt.inSwitch, l = bt.inFunctionBody,
bt.labelSet = {}, bt.inIteration = !1, bt.inSwitch = !1, bt.inFunctionBody = !0; gt > St && !P("}") && (n = Ie(),
"undefined" != typeof n); ) c.push(n);
return x("}"), bt.labelSet = r, bt.inIteration = o, bt.inSwitch = s, bt.inFunctionBody = l,
{
type: lt.BlockStatement,
body: c
};
}
function Ne() {
var n, e, t, i, a, r, o, s, l, c = [];
if (E("function"), i = G(), n = he(), ht ? d(i.value) && C(i, Mt.StrictFunctionName) : d(i.value) ? (r = i,
o = Mt.StrictFunctionName) : u(i.value) && (r = i, o = Mt.StrictReservedWord), x("("),
!P(")")) for (l = {}; gt > St && (i = G(), e = he(), ht ? (d(i.value) && (a = i,
o = Mt.StrictParamName), Object.prototype.hasOwnProperty.call(l, i.value) && (a = i,
o = Mt.StrictParamDupe)) : r || (d(i.value) ? (r = i, o = Mt.StrictParamName) : u(i.value) ? (r = i,
o = Mt.StrictReservedWord) : Object.prototype.hasOwnProperty.call(l, i.value) && (r = i,
o = Mt.StrictParamDupe)), c.push(e), l[e.name] = !0, !P(")")); ) x(",");
return x(")"), s = ht, t = Le(), ht && r && R(r, o), ht && a && C(a, o), ht = s,
{
type: lt.FunctionDeclaration,
id: n,
params: c,
defaults: [],
body: t,
rest: null,
generator: !1,
expression: !1
};
}
function ze() {
var n, e, t, i, a, r, o, s, l = null, c = [];
if (E("function"), P("(") || (n = G(), l = he(), ht ? d(n.value) && C(n, Mt.StrictFunctionName) : d(n.value) ? (t = n,
i = Mt.StrictFunctionName) : u(n.value) && (t = n, i = Mt.StrictReservedWord)),
x("("), !P(")")) for (s = {}; gt > St && (n = G(), a = he(), ht ? (d(n.value) && (e = n,
i = Mt.StrictParamName), Object.prototype.hasOwnProperty.call(s, n.value) && (e = n,
i = Mt.StrictParamDupe)) : t || (d(n.value) ? (t = n, i = Mt.StrictParamName) : u(n.value) ? (t = n,
i = Mt.StrictReservedWord) : Object.prototype.hasOwnProperty.call(s, n.value) && (t = n,
i = Mt.StrictParamDupe)), c.push(a), s[a.name] = !0, !P(")")); ) x(",");
return x(")"), o = ht, r = Le(), ht && t && R(t, i), ht && e && C(e, i), ht = o,
{
type: lt.FunctionExpression,
id: l,
params: c,
defaults: [],
body: r,
rest: null,
generator: !1,
expression: !1
};
}
function Ie() {
var n = G();
if (n.type === ot.Keyword) switch (n.value) {
case "const":
case "let":
return ge(n.value);
case "function":
return Ne();
default:
return Ye();
}
return n.type !== ot.EOF ? Ye() : void 0;
}
function _e() {
for (var n, e, i, a, r = []; gt > St && (e = G(), e.type === ot.StringLiteral) && (n = Ie(),
r.push(n), n.expression.type === lt.Literal); ) i = t(e.range[0] + 1, e.range[1] - 1),
"use strict" === i ? (ht = !0, a && C(a, Mt.StrictOctalLiteral)) : !a && e.octal && (a = e);
for (;gt > St && (n = Ie(), "undefined" != typeof n); ) r.push(n);
return r;
}
function Ue() {
var n;
return ht = !1, n = {
type: lt.Program,
body: _e()
};
}
function $e(n, t, i, a, r) {
e("number" == typeof i, "Comment must have valid position"), yt.comments.length > 0 && yt.comments[yt.comments.length - 1].range[1] > i || yt.comments.push({
type: n,
value: t,
range: [ i, a ],
loc: r
});
}
function je() {
var n, e, t, i, a, r;
for (n = "", a = !1, r = !1; gt > St; ) if (e = dt[St], r) e = dt[St++], s(e) ? (t.end = {
line: pt,
column: St - mt - 1
}, r = !1, $e("Line", n, i, St - 1, t), "\r" === e && "\n" === dt[St] && ++St, ++pt,
mt = St, n = "") : St >= gt ? (r = !1, n += e, t.end = {
line: pt,
column: gt - mt
}, $e("Line", n, i, gt, t)) : n += e; else if (a) s(e) ? ("\r" === e && "\n" === dt[St + 1] ? (++St,
n += "\r\n") : n += e, ++pt, ++St, mt = St, St >= gt && R({}, Mt.UnexpectedToken, "ILLEGAL")) : (e = dt[St++],
St >= gt && R({}, Mt.UnexpectedToken, "ILLEGAL"), n += e, "*" === e && (e = dt[St],
"/" === e && (n = n.substr(0, n.length - 1), a = !1, ++St, t.end = {
line: pt,
column: St - mt
}, $e("Block", n, i, St, t), n = ""))); else if ("/" === e) if (e = dt[St + 1],
"/" === e) t = {
start: {
line: pt,
column: St - mt
}
}, i = St, St += 2, r = !0, St >= gt && (t.end = {
line: pt,
column: St - mt
}, r = !1, $e("Line", n, i, St, t)); else {
if ("*" !== e) break;
i = St, St += 2, a = !0, t = {
start: {
line: pt,
column: St - mt - 2
}
}, St >= gt && R({}, Mt.UnexpectedToken, "ILLEGAL");
} else if (o(e)) ++St; else {
if (!s(e)) break;
++St, "\r" === e && "\n" === dt[St] && ++St, ++pt, mt = St;
}
}
function Ze() {
var n, e, t, i = [];
for (n = 0; n < yt.comments.length; ++n) e = yt.comments[n], t = {
type: e.type,
value: e.value
}, yt.range && (t.range = e.range), yt.loc && (t.loc = e.loc), i.push(t);
yt.comments = i;
}
function Oe() {
var n, e, i, a, r;
return S(), n = St, e = {
start: {
line: pt,
column: St - mt
}
}, i = yt.advance(), e.end = {
line: pt,
column: St - mt
}, i.type !== ot.EOF && (a = [ i.range[0], i.range[1] ], r = t(i.range[0], i.range[1]),
yt.tokens.push({
type: st[i.type],
value: r,
range: a,
loc: e
})), i;
}
function He() {
var n, e, t, i;
return S(), n = St, e = {
start: {
line: pt,
column: St - mt
}
}, t = yt.scanRegExp(), e.end = {
line: pt,
column: St - mt
}, yt.tokens.length > 0 && (i = yt.tokens[yt.tokens.length - 1], i.range[0] === n && "Punctuator" === i.type && ("/" === i.value || "/=" === i.value) && yt.tokens.pop()),
yt.tokens.push({
type: "RegularExpression",
value: t.literal,
range: [ n, St ],
loc: e
}), t;
}
function qe() {
var n, e, t, i = [];
for (n = 0; n < yt.tokens.length; ++n) e = yt.tokens[n], t = {
type: e.type,
value: e.value
}, yt.range && (t.range = e.range), yt.loc && (t.loc = e.loc), i.push(t);
yt.tokens = i;
}
function Je(n) {
return {
type: lt.Literal,
value: n.value
};
}
function We(n) {
return {
type: lt.Literal,
value: n.value,
raw: t(n.range[0], n.range[1])
};
}
function Ve() {
var n = {};
return n.range = [ St, St ], n.loc = {
start: {
line: pt,
column: St - mt
},
end: {
line: pt,
column: St - mt
}
}, n.end = function() {
this.range[1] = St, this.loc.end.line = pt, this.loc.end.column = St - mt;
}, n.applyGroup = function(n) {
yt.range && (n.groupRange = [ this.range[0], this.range[1] ]), yt.loc && (n.groupLoc = {
start: {
line: this.loc.start.line,
column: this.loc.start.column
},
end: {
line: this.loc.end.line,
column: this.loc.end.column
}
});
}, n.apply = function(n) {
yt.range && (n.range = [ this.range[0], this.range[1] ]), yt.loc && (n.loc = {
start: {
line: this.loc.start.line,
column: this.loc.start.column
},
end: {
line: this.loc.end.line,
column: this.loc.end.column
}
});
}, n;
}
function Ke() {
var n, e;
return S(), n = Ve(), x("("), e = Me(), x(")"), n.end(), n.applyGroup(e), e;
}
function Xe() {
var n, e;
for (S(), n = Ve(), e = T("new") ? q() : $(); P(".") || P("["); ) P("[") ? (e = {
type: lt.MemberExpression,
computed: !0,
object: e,
property: H()
}, n.end(), n.apply(e)) : (e = {
type: lt.MemberExpression,
computed: !1,
object: e,
property: O()
}, n.end(), n.apply(e));
return e;
}
function Qe() {
var n, e;
for (S(), n = Ve(), e = T("new") ? q() : $(); P(".") || P("[") || P("("); ) P("(") ? (e = {
type: lt.CallExpression,
callee: e,
arguments: j()
}, n.end(), n.apply(e)) : P("[") ? (e = {
type: lt.MemberExpression,
computed: !0,
object: e,
property: H()
}, n.end(), n.apply(e)) : (e = {
type: lt.MemberExpression,
computed: !1,
object: e,
property: O()
}, n.end(), n.apply(e));
return e;
}
function nt(n) {
var e, t, i;
e = "[object Array]" === Object.prototype.toString.apply(n) ? [] : {};
for (t in n) n.hasOwnProperty(t) && "groupRange" !== t && "groupLoc" !== t && (i = n[t],
e[t] = null === i || "object" != typeof i || i instanceof RegExp ? i : nt(i));
return e;
}
function et(n, e) {
return function(t) {
function i(n) {
return n.type === lt.LogicalExpression || n.type === lt.BinaryExpression;
}
function a(t) {
var r, o;
i(t.left) && a(t.left), i(t.right) && a(t.right), n && (t.left.groupRange || t.right.groupRange ? (r = t.left.groupRange ? t.left.groupRange[0] : t.left.range[0],
o = t.right.groupRange ? t.right.groupRange[1] : t.right.range[1], t.range = [ r, o ]) : "undefined" == typeof t.range && (r = t.left.range[0],
o = t.right.range[1], t.range = [ r, o ])), e && (t.left.groupLoc || t.right.groupLoc ? (r = t.left.groupLoc ? t.left.groupLoc.start : t.left.loc.start,
o = t.right.groupLoc ? t.right.groupLoc.end : t.right.loc.end, t.loc = {
start: r,
end: o
}) : "undefined" == typeof t.loc && (t.loc = {
start: t.left.loc.start,
end: t.right.loc.end
}));
}
return function() {
var r, o;
return S(), r = Ve(), o = t.apply(null, arguments), r.end(), n && "undefined" == typeof o.range && r.apply(o),
e && "undefined" == typeof o.loc && r.apply(o), i(o) && a(o), o;
};
};
}
function tt() {
var n;
yt.comments && (yt.skipComment = S, S = je), yt.raw && (yt.createLiteral = Je, Je = We),
(yt.range || yt.loc) && (yt.parseGroupExpression = U, yt.parseLeftHandSideExpression = W,
yt.parseLeftHandSideExpressionAllowCall = J, U = Ke, W = Xe, J = Qe, n = et(yt.range, yt.loc),
yt.parseAdditiveExpression = Q, yt.parseAssignmentExpression = ce, yt.parseBitwiseANDExpression = ie,
yt.parseBitwiseORExpression = re, yt.parseBitwiseXORExpression = ae, yt.parseBlock = de,
yt.parseFunctionSourceElements = Le, yt.parseCatchClause = Te, yt.parseComputedMember = H,
yt.parseConditionalExpression = le, yt.parseConstLetDeclaration = ge, yt.parseEqualityExpression = te,
yt.parseExpression = Me, yt.parseForVariableDeclaration = we, yt.parseFunctionDeclaration = Ne,
yt.parseFunctionExpression = ze, yt.parseLogicalANDExpression = oe, yt.parseLogicalORExpression = se,
yt.parseMultiplicativeExpression = X, yt.parseNewExpression = q, yt.parseNonComputedProperty = Z,
yt.parseObjectProperty = I, yt.parseObjectPropertyKey = z, yt.parsePostfixExpression = V,
yt.parsePrimaryExpression = $, yt.parseProgram = Ue, yt.parsePropertyFunction = N,
yt.parseRelationalExpression = ee, yt.parseStatement = Ye, yt.parseShiftExpression = ne,
yt.parseSwitchCase = xe, yt.parseUnaryExpression = K, yt.parseVariableDeclaration = Se,
yt.parseVariableIdentifier = he, Q = n(yt.parseAdditiveExpression), ce = n(yt.parseAssignmentExpression),
ie = n(yt.parseBitwiseANDExpression), re = n(yt.parseBitwiseORExpression), ae = n(yt.parseBitwiseXORExpression),
de = n(yt.parseBlock), Le = n(yt.parseFunctionSourceElements), Te = n(yt.parseCatchClause),
H = n(yt.parseComputedMember), le = n(yt.parseConditionalExpression), ge = n(yt.parseConstLetDeclaration),
te = n(yt.parseEqualityExpression), Me = n(yt.parseExpression), we = n(yt.parseForVariableDeclaration),
Ne = n(yt.parseFunctionDeclaration), ze = n(yt.parseFunctionExpression), W = n(W),
oe = n(yt.parseLogicalANDExpression), se = n(yt.parseLogicalORExpression), X = n(yt.parseMultiplicativeExpression),
q = n(yt.parseNewExpression), Z = n(yt.parseNonComputedProperty), I = n(yt.parseObjectProperty),
z = n(yt.parseObjectPropertyKey), V = n(yt.parsePostfixExpression), $ = n(yt.parsePrimaryExpression),
Ue = n(yt.parseProgram), N = n(yt.parsePropertyFunction), ee = n(yt.parseRelationalExpression),
Ye = n(yt.parseStatement), ne = n(yt.parseShiftExpression), xe = n(yt.parseSwitchCase),
K = n(yt.parseUnaryExpression), Se = n(yt.parseVariableDeclaration), he = n(yt.parseVariableIdentifier)),
"undefined" != typeof yt.tokens && (yt.advance = D, yt.scanRegExp = y, D = Oe, y = He);
}
function it() {
"function" == typeof yt.skipComment && (S = yt.skipComment), yt.raw && (Je = yt.createLiteral),
(yt.range || yt.loc) && (Q = yt.parseAdditiveExpression, ce = yt.parseAssignmentExpression,
ie = yt.parseBitwiseANDExpression, re = yt.parseBitwiseORExpression, ae = yt.parseBitwiseXORExpression,
de = yt.parseBlock, Le = yt.parseFunctionSourceElements, Te = yt.parseCatchClause,
H = yt.parseComputedMember, le = yt.parseConditionalExpression, ge = yt.parseConstLetDeclaration,
te = yt.parseEqualityExpression, Me = yt.parseExpression, we = yt.parseForVariableDeclaration,
Ne = yt.parseFunctionDeclaration, ze = yt.parseFunctionExpression, U = yt.parseGroupExpression,
W = yt.parseLeftHandSideExpression, J = yt.parseLeftHandSideExpressionAllowCall,
oe = yt.parseLogicalANDExpression, se = yt.parseLogicalORExpression, X = yt.parseMultiplicativeExpression,
q = yt.parseNewExpression, Z = yt.parseNonComputedProperty, I = yt.parseObjectProperty,
z = yt.parseObjectPropertyKey, $ = yt.parsePrimaryExpression, V = yt.parsePostfixExpression,
Ue = yt.parseProgram, N = yt.parsePropertyFunction, ee = yt.parseRelationalExpression,
Ye = yt.parseStatement, ne = yt.parseShiftExpression, xe = yt.parseSwitchCase, K = yt.parseUnaryExpression,
Se = yt.parseVariableDeclaration, he = yt.parseVariableIdentifier), "function" == typeof yt.scanRegExp && (D = yt.advance,
y = yt.scanRegExp);
}
function at(n) {
var e, t = n.length, i = [];
for (e = 0; t > e; ++e) i[e] = n.charAt(e);
return i;
}
function rt(n, e) {
var t, i;
i = String, "string" == typeof n || n instanceof String || (n = i(n)), dt = n, St = 0,
pt = dt.length > 0 ? 1 : 0, mt = 0, gt = dt.length, ft = null, bt = {
allowIn: !0,
labelSet: {},
inFunctionBody: !1,
inIteration: !1,
inSwitch: !1
}, yt = {}, "undefined" != typeof e && (yt.range = "boolean" == typeof e.range && e.range,
yt.loc = "boolean" == typeof e.loc && e.loc, yt.raw = "boolean" == typeof e.raw && e.raw,
"boolean" == typeof e.tokens && e.tokens && (yt.tokens = []), "boolean" == typeof e.comment && e.comment && (yt.comments = []),
"boolean" == typeof e.tolerant && e.tolerant && (yt.errors = [])), gt > 0 && "undefined" == typeof dt[0] && (n instanceof String && (dt = n.valueOf()),
"undefined" == typeof dt[0] && (dt = at(n))), tt();
try {
t = Ue(), "undefined" != typeof yt.comments && (Ze(), t.comments = yt.comments),
"undefined" != typeof yt.tokens && (qe(), t.tokens = yt.tokens), "undefined" != typeof yt.errors && (t.errors = yt.errors),
(yt.range || yt.loc) && (t.body = nt(t.body));
} catch (a) {
throw a;
} finally {
it(), yt = {};
}
return t;
}
var ot, st, lt, ct, Mt, ut, dt, ht, St, pt, mt, gt, ft, bt, yt;
ot = {
BooleanLiteral: 1,
EOF: 2,
Identifier: 3,
Keyword: 4,
NullLiteral: 5,
NumericLiteral: 6,
Punctuator: 7,
StringLiteral: 8
}, st = {}, st[ot.BooleanLiteral] = "Boolean", st[ot.EOF] = "<end>", st[ot.Identifier] = "Identifier",
st[ot.Keyword] = "Keyword", st[ot.NullLiteral] = "Null", st[ot.NumericLiteral] = "Numeric",
st[ot.Punctuator] = "Punctuator", st[ot.StringLiteral] = "String", lt = {
AssignmentExpression: "AssignmentExpression",
ArrayExpression: "ArrayExpression",
BlockStatement: "BlockStatement",
BinaryExpression: "BinaryExpression",
BreakStatement: "BreakStatement",
CallExpression: "CallExpression",
CatchClause: "CatchClause",
ConditionalExpression: "ConditionalExpression",
ContinueStatement: "ContinueStatement",
DoWhileStatement: "DoWhileStatement",
DebuggerStatement: "DebuggerStatement",
EmptyStatement: "EmptyStatement",
ExpressionStatement: "ExpressionStatement",
ForStatement: "ForStatement",
ForInStatement: "ForInStatement",
FunctionDeclaration: "FunctionDeclaration",
FunctionExpression: "FunctionExpression",
Identifier: "Identifier",
IfStatement: "IfStatement",
Literal: "Literal",
LabeledStatement: "LabeledStatement",
LogicalExpression: "LogicalExpression",
MemberExpression: "MemberExpression",
NewExpression: "NewExpression",
ObjectExpression: "ObjectExpression",
Program: "Program",
Property: "Property",
ReturnStatement: "ReturnStatement",
SequenceExpression: "SequenceExpression",
SwitchStatement: "SwitchStatement",
SwitchCase: "SwitchCase",
ThisExpression: "ThisExpression",
ThrowStatement: "ThrowStatement",
TryStatement: "TryStatement",
UnaryExpression: "UnaryExpression",
UpdateExpression: "UpdateExpression",
VariableDeclaration: "VariableDeclaration",
VariableDeclarator: "VariableDeclarator",
WhileStatement: "WhileStatement",
WithStatement: "WithStatement"
}, ct = {
Data: 1,
Get: 2,
Set: 4
}, Mt = {
UnexpectedToken: "Unexpected token %0",
UnexpectedNumber: "Unexpected number",
UnexpectedString: "Unexpected string",
UnexpectedIdentifier: "Unexpected identifier",
UnexpectedReserved: "Unexpected reserved word",
UnexpectedEOS: "Unexpected end of input",
NewlineAfterThrow: "Illegal newline after throw",
InvalidRegExp: "Invalid regular expression",
UnterminatedRegExp: "Invalid regular expression: missing /",
InvalidLHSInAssignment: "Invalid left-hand side in assignment",
InvalidLHSInForIn: "Invalid left-hand side in for-in",
MultipleDefaultsInSwitch: "More than one default clause in switch statement",
NoCatchOrFinally: "Missing catch or finally after try",
UnknownLabel: "Undefined label '%0'",
Redeclaration: "%0 '%1' has already been declared",
IllegalContinue: "Illegal continue statement",
IllegalBreak: "Illegal break statement",
IllegalReturn: "Illegal return statement",
StrictModeWith: "Strict mode code may not include a with statement",
StrictCatchVariable: "Catch variable may not be eval or arguments in strict mode",
StrictVarName: "Variable name may not be eval or arguments in strict mode",
StrictParamName: "Parameter name eval or arguments is not allowed in strict mode",
StrictParamDupe: "Strict mode function may not have duplicate parameter names",
StrictFunctionName: "Function name may not be eval or arguments in strict mode",
StrictOctalLiteral: "Octal literals are not allowed in strict mode.",
StrictDelete: "Delete of an unqualified identifier in strict mode.",
StrictDuplicateProperty: "Duplicate data property in object literal not allowed in strict mode",
AccessorDataProperty: "Object literal may not have data and accessor property with the same name",
AccessorGetSet: "Object literal may not have multiple get/set accessors with the same name",
StrictLHSAssignment: "Assignment to eval or arguments is not allowed in strict mode",
StrictLHSPostfix: "Postfix increment/decrement may not have eval or arguments operand in strict mode",
StrictLHSPrefix: "Prefix increment/decrement may not have eval or arguments operand in strict mode",
StrictReservedWord: "Use of future reserved word in strict mode"
}, ut = {
NonAsciiIdentifierStart: new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ--ℝℤΩℨK--ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA--zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),
NonAsciiIdentifierPart: new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ--ℝℤΩℨK--ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0--_-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")
}, "undefined" == typeof "esprima"[0] && (t = function(n, e) {
return dt.slice(n, e).join("");
}), n.version = "1.0.2", n.parse = rt, n.Syntax = function() {
var n, e = {};
"function" == typeof Object.create && (e = Object.create(null));
for (n in lt) lt.hasOwnProperty(n) && (e[n] = lt[n]);
return "function" == typeof Object.freeze && Object.freeze(e), e;
}();
});
})();
}, {} ]
}, {}, []), require("./index");
}();
define("extensions/yamlFrontMatterParser", [ "classes/Extension", "js-yaml" ], function(n) {
var e = new n("yamlFrontMatterParser", "YAML front matter"), t = void 0;
e.onEventMgrCreated = function(n) {
t = n;
};
var i = void 0;
e.onFileSelected = function(n) {
i = n;
};
var a = /^(\s*-{3}\s*\n([\w\W]+?)\n\s*-{3}\s*\n)?([\w\W]*)*/;
return e.onPagedownConfigure = function(n) {
var e = n.getConverter();
e.hooks.chain("preConversion", function(n) {
var e, r = a.exec(n);
if ((e = r[2]) && (!i.frontMatter || i.frontMatter._yaml != e)) {
i.frontMatter = void 0;
try {
i.frontMatter = jsyaml.load(e), i.frontMatter._yaml = e;
} catch (o) {}
}
return t.onMarkdownTrim((r[1] || "").length), r[3];
});
}, e;
}), define("extensions/markdownSectionParser", [ "classes/Extension" ], function(n) {
var e = new n("markdownSectionParser", "Markdown section parser"), t = void 0;
return e.onEventMgrCreated = function(n) {
t = n;
}, e.onPagedownConfigure = function(n) {
var e = n.getConverter();
e.hooks.chain("preConversion", function(n) {
t.previewStartTime = new Date();
var e = n + "\n\n", i = [], a = 0;
return e.replace(/^```.*\n[\s\S]*?\n```|(^.+[ \t]*\n=+[ \t]*\n+|^.+[ \t]*\n-+[ \t]*\n+|^\#{1,6}[ \t]*.+?[ \t]*\#*\n+)/gm, function(n, t, r) {
return t && (i.push(e.substring(a, r)), a = r), "";
}), i.push(e.substring(a, n.length)), t.onSectionsCreated(i), n;
});
}, e;
}), define("text!html/partialRenderingSettingsBlock.html", [], function() {
return "<p>Renders modified sections only.</p>\n<blockquote>\n <b>NOTE:</b> Document sections are based on title elements (h1, h2...). Therefore if\n your document does not contain any title, performance will not be increased.\n</blockquote>";
}), define("extensions/partialRendering", [ "underscore", "crel", "classes/Extension", "text!html/partialRenderingSettingsBlock.html" ], function(n, e, t, i) {
function a(e, t) {
if (d = [], u = [], h = void 0, S === !0 || M != t) return S = !1, M = t, u = c,
c = e, d = e, void 0;
var i = c.length;
n.some(c, function(n, t) {
return t >= e.length || n.text != e[t].text ? (i = t, !0) : void 0;
});
var a = -c.length;
n.some(c.slice().reverse(), function(n, t) {
return t >= e.length || n.text != e[e.length - t - 1].text ? (a = -t, !0) : void 0;
}), i - a > c.length && (a = i - c.length);
var r = c.slice(0, i);
d = e.slice(i, e.length + a);
var o = c.slice(c.length + a, c.length);
h = n.first(o), u = c.slice(i, c.length + a), c = r.concat(d).concat(o);
}
function r() {
n.each(u, function(n) {
var e = document.getElementById("wmd-preview-section-" + n.id);
f.removeChild(e);
});
var t = document.getElementById("wmd-preview"), i = t.firstChild, a = document.createDocumentFragment();
n.each(d, function(t) {
for (var r = e("div", {
id: "wmd-preview-section-" + t.id,
"class": "wmd-preview-section preview-content"
}), o = !0; i; ) {
var s = i.nextSibling;
if (o === !1 && /(^| )wmd-title($| )/.test(i.className)) break;
o = !1, "DIV" == i.tagName && "footnotes" == i.className ? n.each(i.querySelectorAll("ol > li"), function(n) {
var e = n.id.substring(3);
b[e] = n;
}) : r.appendChild(i), i = s;
}
a.appendChild(r);
}), t.innerHTML = "";
var r = g;
void 0 !== h && (r = document.getElementById("wmd-preview-section-" + h.id)), f.insertBefore(a, r),
g.innerHTML = "";
var o = [];
if (m === !0) {
var s = e("ol");
n.each(f.querySelectorAll("a.footnote"), function(n, e) {
n.textContent = e + 1;
var t = n.id.substring(6);
o.push(t), s.appendChild(b[t].cloneNode(!0));
}), o.length > 0 && g.appendChild(e("div", {
"class": "footnotes"
}, e("hr"), s)), b = n.pick(b, o);
}
}
var o = new t("partialRendering", "Partial Rendering", !0);
o.settingsBlock = i;
var s = void 0, l = 0, c = [], M = void 0, u = [], d = [], h = void 0, S = !1, p = !1, m = !1;
o.onSectionsCreated = function(e) {
var t = [], i = "\n";
m = !1, n.each(e, function(n) {
n += "\n\n", p && (n = n.replace(/^```.*\n[\s\S]*?\n```|\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/g, function(n, e) {
return e ? (m = !0, i += n.replace(/^\s*\n/gm, "") + "\n", "") : n;
})), n = n.replace(/^```.*\n[\s\S]*?\n```|^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm, function(n, e) {
return e ? (i += n.replace(/^\s*\n/gm, "") + "\n", "") : n;
}), /\S/.test(n) && t.push({
id: ++l,
text: n + "\n"
});
}), a(t, i);
};
var g = void 0, f = void 0, b = {};
return o.onPagedownConfigure = function(e) {
s = e.getConverter(), s.hooks.chain("preConversion", function() {
var e = n.map(d, function(n) {
return n.text;
});
return e.push(M + "\n\n"), e.join("");
}), e.hooks.chain("onPreviewRefresh", function() {
r();
});
}, o.onExtraExtensions = function(e) {
p = n.some(e, function(n) {
return "footnotes" == n;
});
}, o.onReady = function() {
g = e("div", {
id: "wmd-preview-section-footnotes",
"class": "preview-content"
}), f = document.getElementById("preview-contents"), f.appendChild(g);
}, o.onFileSelected = function() {
S = !0;
}, o;
}), define("text!html/buttonMarkdownSyntax.html", [], function() {
return '<button class="btn btn-default dropdown-toggle" title="Markdown syntax" data-toggle="dropdown">\n <i class="icon-help-circled"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>Markdown syntax</h3>\n <div class="markdown-syntax">\n<h4>Phrase Emphasis</h4>\n\n<pre><code>*italic* **bold**\n_italic_ __bold__\n</code></pre>\n\n<h4>Links</h4>\n\n<p>Inline:</p>\n\n<pre><code>An [example](http://url.com/ "Title")\n</code></pre>\n\n<p>Reference-style labels (titles are optional):</p>\n\n<pre><code>An [example][id]. Then, anywhere\nelse in the doc, define the link:\n\n [id]: http://example.com/ "Title"\n</code></pre>\n\n<h4>Images</h4>\n\n<p>Inline (titles are optional):</p>\n\n<pre><code>![alt text](/path/img.jpg "Title")\n</code></pre>\n\n<p>Reference-style:</p>\n\n<pre><code>![alt text][id]\n\n[id]: /url/to/img.jpg "Title"\n</code></pre>\n\n<h4>Headers</h4>\n\n<p>Setext-style:</p>\n\n<pre><code>Header 1\n========\n\nHeader 2\n--------\n</code></pre>\n\n<p>atx-style (closing #\'s are optional):</p>\n\n<pre><code># Header 1 #\n\n## Header 2 ##\n\n###### Header 6\n</code></pre>\n\n<h4>Lists</h4>\n\n<p>Ordered, without paragraphs:</p>\n\n<pre><code>1. Foo\n2. Bar\n</code></pre>\n\n<p>Unordered, with paragraphs:</p>\n\n<pre><code>* A list item.\n\n With multiple paragraphs.\n\n* Bar\n</code></pre>\n\n<p>You can nest them:</p>\n\n<pre><code>* Abacus\n * answer\n* Bubbles\n 1. bunk\n 2. bupkis\n * BELITTLER\n 3. burper\n* Cunning\n</code></pre>\n\n<h4>Blockquotes</h4>\n\n<pre><code>&gt; Email-style angle brackets\n&gt; are used for blockquotes.\n\n&gt; &gt; And, they can be nested.\n\n&gt; #### Headers in blockquotes\n&gt; \n&gt; * You can quote a list.\n&gt; * Etc.\n</code></pre>\n\n<h4>Code Spans</h4>\n\n<pre><code>`&lt;code&gt;` spans are delimited\nby backticks.\n\nYou can include literal backticks\nlike `` `this` ``.\n</code></pre>\n\n<h4>Preformatted Code Blocks</h4>\n\n<p>Indent every line of a code block by at least 4 spaces or 1 tab.</p>\n\n<pre><code>This is a normal paragraph.\n\n This is a preformatted\n code block.\n</code></pre>\n\n<h4>Horizontal Rules</h4>\n\n<p>Three or more dashes or asterisks:</p>\n\n<pre><code>---\n\n* * *\n\n- - - - \n</code></pre>\n\n<h4>Manual Line Breaks</h4>\n\n<p>End a line with two or more spaces:</p>\n\n<pre><code>Roses are red, \nViolets are blue.\n</code></pre>\n\n<blockquote>Based on the <a target="_blank" href="https://github.com/fletcher/MultiMarkdown/blob/master/Documentation/Markdown%20Syntax.md">Markdown syntax guide</a>, by Fletcher T. Penney.</blockquote>\n </div>\n</div>\n';
}), define("extensions/buttonMarkdownSyntax", [ "jquery", "classes/Extension", "text!html/buttonMarkdownSyntax.html" ], function(n, e, t) {
var i = new e("buttonMarkdownSyntax", 'Button "Markdown syntax', !0, !0);
return i.settingsBlock = '<p>Adds a "Markdown syntax" button over the preview.</p>',
i.onCreatePreviewButton = function() {
return t;
}, i;
}), define("extensions/googleAnalytics", [ "jquery", "underscore", "utils", "classes/Extension", "settings", "config" ], function(n, e, t, i, a) {
function r() {
t.currentTime - M > 18e4 && (_gaq.push([ "_trackPageview" ]), M = t.currentTime);
}
var o = new i("googleAnalytics", "Google Analytics", !0);
o.settingsBlock = "<p>Sends anonymous statistics about usage and errors to help improve StackEdit.</p>";
var s = !1, l = !1;
window._gaq = [];
var c = function() {
if (s === !1 && l === !1) {
var e = "/ga.js";
location.search.match(/(\?|&)console/) && (e = "/u/ga_debug.js"), n.ajax({
url: "http://www.google-analytics.com" + e,
dataType: "script"
}).done(function() {
s = !0;
});
}
}, M = 0;
o.onPeriodicRun = function() {
r();
}, o.onReady = function() {
_gaq.push([ "_setAccount", GOOGLE_ANALYTICS_ACCOUNT_ID ]), r(), _gaq.push([ "_trackEvent", "Settings", "layoutOrientation", "" + a.layoutOrientation ]),
_gaq.push([ "_trackEvent", "Settings", "lazyRendering", "" + a.lazyRendering ]),
_gaq.push([ "_trackEvent", "Settings", "editorFontFamily", "" + a.editorFontFamily ]),
_gaq.push([ "_trackEvent", "Settings", "editorFontSize", "" + a.editorFontSize ]),
_gaq.push([ "_trackEvent", "Settings", "defaultContent backlink", "" + (-1 !== a.defaultContent.indexOf(MAIN_URL)) ]),
_gaq.push([ "_trackEvent", "Settings", "commitMsg backlink", "" + (-1 !== a.commitMsg.indexOf(MAIN_URL)) ]),
_gaq.push([ "_trackEvent", "Settings", "sshProxy unchanged", "" + (a.sshProxy == SSH_PROXY_URL) ]),
e.each(a.extensionSettings, function(n, e) {
_gaq.push([ "_trackEvent", "Extensions", e + " enabled", "" + (n.enabled === !0) ]);
}), window.onerror = function(n, e, i) {
_gaq.push([ "_trackEvent", "Error", n, e + ":" + i + t.formatEventList() ]);
}, c();
}, o.onOfflineChanged = function(n) {
l = n, c();
};
var u = 0;
return o.onSyncRunning = function(n) {
n === !0 && (u = new Date().getTime());
}, o.onPublishRunning = function(n) {
n === !0 && (u = new Date().getTime());
}, o.onSyncSuccess = function() {
var n = new Date().getTime();
_gaq.push([ "_trackTiming", "Sync", "SyncTime", n - u ]);
}, o.onSyncImportSuccess = function(n, e) {
_gaq.push([ "_trackEvent", "Sync", "SyncImport" ]), _gaq.push([ "_trackEvent", "Sync", "SyncImport provider", e.providerId ]);
}, o.onSyncExportSuccess = function(n, e) {
_gaq.push([ "_trackEvent", "Sync", "SyncExport" ]), _gaq.push([ "_trackEvent", "Sync", "SyncExport provider", e.provider.providerId ]);
}, o.onPublishSuccess = function(n) {
var t = new Date().getTime();
_gaq.push([ "_trackTiming", "Publish", "PublishSuccess", t - u ]), e.each(n.publishLocations, function(n) {
_gaq.push([ "_trackEvent", "Publish", "PublishSuccess provider", n.provider.providerId ]);
});
}, o.onNewPublishSuccess = function(n, e) {
_gaq.push([ "_trackEvent", "Publish", "NewPublish provider", e.provider.providerId ]);
}, o.onError = function(n) {
!e.isString(n) && n.message && _gaq.push([ "_trackEvent", "Error", "message", n.message + t.formatEventList() ]);
}, o;
}), define("text!html/dialogAbout.html", [], function() {
return '\n<div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <img data-stackedit-src="stackedit-promo.png" width="240" height="60" />\n </div>\n <div class="modal-body">\n <dl>\n <dt>About:</dt>\n <dd>\n <a target="_blank" href="https://github.com/benweet/stackedit/">GitHub\n project</a> / <a target="_blank"\n href="https://github.com/benweet/stackedit/issues">issue\n tracker</a><br /> <a target="_blank"\n href="https://chrome.google.com/webstore/detail/stackedit/iiooodelglhkcpgbajoejffhijaclcdg">Chrome\n app</a> (thanks for your review!)<br /> <a target="_blank"\n href="https://twitter.com/stackedit/">Follow on Twitter</a><br />\n <a target="_blank" href="https://www.facebook.com/stackedit/">Follow\n on Facebook</a><br /> <a target="_blank"\n href="https://plus.google.com/110816046787593496375"\n rel="publisher">Follow on Google+</a><br />\n </dd>\n </dl>\n <dl>\n <dt>Developers:</dt>\n <dd>\n <a target="_blank" href="http://www.benoitschweblin.com">Benoit\n Schweblin</a><br /> Pete Eigel (contributor)\n </dd>\n </dl>\n <dl>\n <dt>Credit:</dt>\n <dd>\n <% _.each(libraries, function(url, name) { %> <a target="_blank"\n href="<%= url %>"><%= name %></a><br /> <% }); %>\n </dd>\n </dl>\n <dl>\n <dt>Related projects:</dt>\n <dd>\n <% _.each(projects, function(url, name) { %> <a target="_blank"\n href="<%= url %>"><%= name %></a><br /> <% }); %>\n </dd>\n </dl>\n <p>\n StackEdit <%= version %><br /> Copyright 2013 <a\n target="_blank" href="http://www.benoitschweblin.com">Benoit\n Schweblin</a><br /> Licensed under an <a target="_blank"\n href="http://www.apache.org/licenses/LICENSE-2.0">Apache\n License</a>\n </p>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n</div>\n';
}), define("extensions/dialogAbout", [ "underscore", "utils", "classes/Extension", "text!html/dialogAbout.html", "config" ], function(n, e, t, i) {
var a = new t("dialogAbout", 'Dialog "About"'), r = {
ACE: "http://ace.c9.io/",
Bootstrap: "http://getbootstrap.com/",
"Bootstrap Tour": "http://bootstraptour.com/",
crel: "https://github.com/KoryNunn/crel",
"Dropbox-js": "https://github.com/dropbox/dropbox-js",
"FileSaver.js": "https://github.com/eligrey/FileSaver.js/",
Fontello: "http://fontello.com/",
"Font Awesome and others...": "res/libs/fontello/LICENSE.txt",
Gatekeeper: "https://github.com/prose/gatekeeper",
"Github.js": "https://github.com/michael/github",
"Highlight.js": "http://softwaremaniacs.org/soft/highlight/en/",
jGrowl: "https://github.com/stanlemon/jGrowl/",
jQuery: "http://jquery.com/",
LESS: "http://lesscss.org/",
MathJax: "http://www.mathjax.org/",
Mousetrap: "http://craig.is/killing/mice",
"PageDown ACE": "https://github.com/benweet/pagedown-ace",
"PageDown Extra": "https://github.com/jmcmanus/pagedown-extra/",
Prettify: "https://code.google.com/p/google-code-prettify/",
RequireJS: "http://requirejs.org/",
"RequireJS LESS plugin": "https://github.com/guybedford/require-less",
"stacktrace.js": "http://stacktracejs.com/",
"to-markdown": "https://github.com/domchristie/to-markdown",
"UI Layout": "http://layout.jquery-dev.net/",
"Underscore.js": "http://underscorejs.org/",
waitForImages: "https://github.com/alexanderdickson/waitForImages",
XRegExp: "https://github.com/slevithan/xregexp"
}, o = {
"StackEdit Download Proxy": "https://github.com/benweet/stackedit-download-proxy",
"StackEdit Picasa Proxy": "https://github.com/benweet/stackedit-picasa-proxy",
"StackEdit SSH Proxy": "https://github.com/benweet/stackedit-ssh-proxy",
"StackEdit Tumblr Proxy": "https://github.com/benweet/stackedit-tumblr-proxy",
"StackEdit WordPress Proxy": "https://github.com/benweet/stackedit-wordpress-proxy"
};
return a.onReady = function() {
e.addModal("modal-about", n.template(i, {
libraries: r,
projects: o,
version: VERSION
}));
}, a;
}), define("text!html/dialogManagePublicationLocation.html", [], function() {
return '<div class="input-group">\n <span class="input-group-addon" title="<%= publishAttributes.provider.providerName %>">\n <i class="icon-provider-<%= publishAttributes.provider.providerId %>"></i>\n </span> <input class="form-control" type="text"\n value="<%= publishDesc %>" disabled />\n <div class="input-group-btn">\n <a class="btn btn-link remove-button" title="Remove this location"\n data-publish-index="<%= publishAttributes.publishIndex %>"><i\n class="icon-trash"></i></a>\n </div>\n</div>\n';
}), define("extensions/dialogManagePublication", [ "jquery", "underscore", "classes/Extension", "text!html/dialogManagePublicationLocation.html" ], function(n, e, t, i) {
var a = new t("dialogManagePublication", 'Dialog "Manage publication"', !1, !0), r = void 0;
a.onEventMgrCreated = function(n) {
r = n;
};
var o = void 0, s = void 0, l = void 0, c = void 0, M = function(t) {
if (void 0 === t || t === o) {
e.size(o.publishLocations) > 0 ? (l.removeClass("hide"), c.addClass("hide")) : (l.addClass("hide"),
c.removeClass("hide"));
var a = e.reduce(o.publishLocations, function(n, t) {
var a = e.omit(t, "provider", "publishIndex", "sharingLink");
return a.password && (a.password = "********"), a = JSON.stringify(a).replace(/{|}|"/g, "").replace(/,/g, ", "),
n + e.template(i, {
publishAttributes: t,
publishDesc: a
});
}, "");
s.innerHTML = a, e.each(s.querySelectorAll(".remove-button"), function(e) {
var t = n(e), i = o.publishLocations[t.data("publishIndex")];
t.click(function() {
o.removePublishLocation(i), r.onPublishRemoved(o, i);
});
});
}
};
return a.onFileSelected = function(n) {
o = n, M(n);
}, a.onNewPublishSuccess = M, a.onPublishRemoved = M, a.onReady = function() {
var e = document.querySelector(".modal-manage-publish");
s = e.querySelector(".publish-list"), l = n(e.querySelectorAll(".msg-publish-list")),
c = n(e.querySelectorAll(".msg-no-publish"));
}, a;
}), define("text!html/dialogManageSynchronizationLocation.html", [], function() {
return '<div class="input-group">\n <span class="input-group-addon"\n title="<%= syncAttributes.provider.providerName %><%= syncAttributes.isRealtime ? \' (real time)\' : \'\' %>">\n <i\n class="icon-provider-<%= syncAttributes.provider.providerId %><%= syncAttributes.isRealtime ? \' realtime\' : \'\' %>"></i>\n </span> <input class="form-control" type="text"\n value="<%= syncDesc %>" disabled />\n <div class="input-group-btn">\n <a class="btn btn-link remove-button" title="Remove this location"\n data-sync-index="<%= syncAttributes.syncIndex %>"><i class="icon-trash"></i></a>\n </div>\n</div>\n';
}), define("extensions/dialogManageSynchronization", [ "jquery", "underscore", "classes/Extension", "text!html/dialogManageSynchronizationLocation.html" ], function(n, e, t, i) {
var a = new t("dialogManageSynchronization", 'Dialog "Manage synchronization"', !1, !0), r = void 0;
a.onEventMgrCreated = function(n) {
r = n;
};
var o = void 0;
a.onSynchronizerCreated = function(n) {
o = n;
};
var s = void 0, l = void 0, c = void 0, M = void 0, u = function(t) {
if (void 0 === t || t === s) {
e.size(s.syncLocations) > 0 ? (c.removeClass("hide"), M.addClass("hide")) : (c.addClass("hide"),
M.removeClass("hide"));
var a = e.reduce(s.syncLocations, function(n, t) {
return n + e.template(i, {
syncAttributes: t,
syncDesc: t.id || t.path
});
}, "");
l.innerHTML = a, e.each(l.querySelectorAll(".remove-button"), function(e) {
var t = n(e), i = s.syncLocations[t.data("syncIndex")];
t.click(function() {
o.tryStopRealtimeSync(), s.removeSyncLocation(i), r.onSyncRemoved(s, i);
});
});
}
};
return a.onFileSelected = function(n) {
s = n, u(n);
}, a.onSyncExportSuccess = u, a.onSyncRemoved = u, a.onReady = function() {
var e = document.querySelector(".modal-manage-sync");
l = e.querySelector(".sync-list"), c = n(e.querySelectorAll(".msg-sync-list")),
M = n(e.querySelectorAll(".msg-no-sync"));
}, a;
}), function() {
var n = this, e = {}, t = !1;
"undefined" != typeof module && module.exports ? (module.exports = e, n.toMarkdown = e,
t = !0) : n.toMarkdown = e, e.converter = function(n) {
n && n.elements && $.isArray(n.elements) && (c = c.concat(n.elements)), this.makeMd = function(n, e) {
var a;
if (t) {
var r = require("jsdom");
r.env({
html: n,
scripts: [ "http://code.jquery.com/jquery-1.6.4.min.js" ],
done: function(t, a) {
"function" == typeof e && e(i(n, a.$));
}
});
} else a = i(n, $);
return a;
};
};
var i = function(n, e) {
n = n.replace(/(\d+)\. /g, "$1\\. ");
var t = e("<div/>"), i = t.html(n);
i.find("*:not(pre, code)").contents().filter(function() {
return 3 === this.nodeType && /^\s+$/.test(this.nodeValue);
}).remove();
for (var a = [], r = 0, s = c.length; s > r; r++) a.push(c[r].selector);
for (a = a.join(","); i.find(a).length; ) for (var r = 0, s = c.length; s > r; r++) $matches = i.find(c[r].selector + ':not(:has("' + a + '"))'),
$matches.each(function(n, t) {
var i = e(t);
i.before(c[r].replacement(i.html(), i)).remove();
});
return o(i.html());
}, a = function(n) {
return n.replace(/^[\n\r\f]+|[\n\r\f]+$/g, "");
}, r = function(n) {
return String(n).replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"');
}, o = function(n) {
return n = n.replace(/^[\t\r\n]+|[\t\r\n]+$/g, ""), n = n.replace(/\n\s+\n/g, "\n\n"),
n = n.replace(/\n{3,}/g, "\n\n"), n = r(n);
}, s = function(n) {
return n = a(n), n ? "**" + n + "**" : "";
}, l = function(n) {
return n = a(n), n ? "_" + n + "_" : "";
}, c = [ {
selector: "p",
replacement: function(n) {
return n = $.trim(n), n ? "\n\n" + n + "\n\n" : "";
}
}, {
selector: "br",
replacement: function() {
return "\n";
}
}, {
selector: "h1,h2,h3,h4,h5,h6",
replacement: function(n, e) {
n = $.trim(n);
for (var t = e.prop("nodeName").charAt(1), i = "", a = 0; t > a; a++) i += "#";
return n ? "\n\n" + i + " " + n + "\n\n" : "";
}
}, {
selector: "hr",
replacement: function() {
return "\n\n* * *\n\n";
}
}, {
selector: "a[href]",
replacement: function(n, e) {
if (n) {
n = a(n);
var t = e.attr("href"), i = e.attr("title") || "";
return "[" + n + "]" + "(" + t + (i ? ' "' + i + '"' : "") + ")";
}
return !1;
}
}, {
selector: "b",
replacement: s
}, {
selector: "strong",
replacement: s
}, {
selector: "i",
replacement: l
}, {
selector: "em",
replacement: l
}, {
selector: "code",
replacement: function(n) {
return n = a(n), n ? "`" + n + "`" : "";
}
}, {
selector: "img",
replacement: function(n, e) {
var t = e.attr("alt") || "", i = e.attr("src") || "", a = e.attr("title") || "";
return "![" + t + "]" + "(" + i + (a ? ' "' + a + '"' : "") + ")";
}
}, {
selector: "pre",
replacement: function(n) {
return /^\s*\`/.test(n) ? (n = n.replace(/\`/g, ""), " " + n.replace(/\n/g, "\n ")) : "";
}
}, {
selector: "li",
replacement: function(n, e) {
n = n.replace(/^\s+|\s+$/, "").replace(/\n/gm, "\n ");
var t = "* ", i = "", a = e.parent(), r = a.contents().filter(function() {
return 1 === this.nodeType && "LI" === this.nodeName || 3 === this.nodeType;
}), o = r.index(e) + 1;
return t = a.is("ol") ? o + ". " : "* ", o == r.length && (e.parents("li").length || (i = "\n"),
n = n.replace(/\s+$/, ""), e.unwrap()), t + n + i + "\n";
}
}, {
selector: "blockquote",
replacement: function(n) {
return n = n = $.trim(n).replace(/\n{3,}/g, "\n\n"), n = n.replace(/\n/g, "\n&gt; "),
"&gt; " + n;
}
} ];
}(), define("toMarkdown", [ "jquery" ], function(n) {
return function() {
var e;
return e || n.toMarkdown;
};
}(this)), define("extensions/dialogOpenHarddrive", [ "jquery", "underscore", "utils", "classes/Extension", "toMarkdown", "config" ], function(n, e, t, i, a) {
function r(t) {
t.stopPropagation(), t.preventDefault();
var i = (t.dataTransfer || t.target).files;
n(".modal-import-harddrive-markdown, .modal-import-harddrive-html").modal("hide"),
e.each(i, function(e) {
if (!n(t.target).is("#wmd-input *") || !e.name.match(/.(jpe?g|png|gif)$/)) {
var i = new FileReader();
i.onload = function(n) {
return function(e) {
var t = e.target.result;
if (t.match(/\uFFFD/)) return u.onError(n.name + " is a binary file."), void 0;
if (t = d ? d(t) : t, void 0 === t) return u.onError(n.name + " is not a valid HTML file."),
void 0;
var i = n.name, a = i.lastIndexOf(".");
i = -1 !== a ? i.substring(0, a) : i;
var r = M.createFile(i, t);
M.selectFile(r);
};
}(e);
var a = e.slice(0, IMPORT_FILE_MAX_CONTENT_SIZE);
i.readAsText(a);
}
});
}
function o(n) {
d = void 0, r(n);
}
function s(n) {
d = S, r(n);
}
function l(n) {
n.stopPropagation(), n.preventDefault(), n.dataTransfer.dropEffect = "copy";
}
var c = new i("dialogOpenHarddrive", 'Dialog "Open from"'), M = void 0;
c.onFileMgrCreated = function(n) {
M = n;
};
var u = void 0;
c.onEventMgrCreated = function(n) {
u = n;
};
var d = void 0, h = void 0, S = function(n) {
return h.makeMd(n);
};
return c.onReady = function() {
h = new a.converter(), n("#input-file-import-harddrive-markdown").change(o), n("#dropzone-import-harddrive-markdown, #wmd-input").each(function() {
this.addEventListener("dragover", l, !1), this.addEventListener("drop", o, !1);
}), n("#input-file-import-harddrive-html").change(s), n("#dropzone-import-harddrive-html").each(function() {
this.addEventListener("dragover", l, !1), this.addEventListener("drop", s, !1);
}), n(".action-convert-html").click(function(n) {
var e = t.getInputTextValue("#input-convert-html", n);
if (void 0 !== e) {
if (e = h.makeMd(e), void 0 === e) return u.onError("Invalid HTML code."), void 0;
var i = M.createFile(void 0, e);
M.selectFile(i);
}
});
}, c;
}), define("extensions/documentTitle", [ "jquery", "underscore", "classes/Extension" ], function(n, e, t) {
var i = new t("documentTitle", "Document Title"), a = void 0;
i.onLayoutCreated = function(n) {
a = n;
};
var r = void 0, o = void 0, s = function(t) {
if (t === r) {
var i = r.title;
document.title = "StackEdit - " + i, o.html(r.composeTitle()), n(".file-title").text(i),
n(".input-file-title").val(i), void 0 !== a && e.defer(a.resizeAll);
}
};
return i.onFileSelected = function(n) {
r = n, s(n);
}, i.onTitleChanged = s, i.onSyncExportSuccess = s, i.onSyncRemoved = s, i.onNewPublishSuccess = s,
i.onPublishRemoved = s, i.onReady = function() {
o = n(".file-title-navbar"), o.hover(function() {
var n = o[0].scrollWidth - o.outerWidth();
o.stop(!0, !0).animate({
scrollLeft: n
}, 15 * n, "linear");
}, function() {
o.stop(!0, !0).scrollLeft(0);
}).click(function() {
o.stop(!0, !0).scrollLeft(0);
});
}, i;
}), function(n, e) {
function t(n, e, t) {
return n.addEventListener ? (n.addEventListener(e, t, !1), void 0) : (n.attachEvent("on" + e, t),
void 0);
}
function i(n) {
if ("keypress" == n.type) {
var e = String.fromCharCode(n.which);
return n.shiftKey || (e = e.toLowerCase()), e;
}
return D[n.which] ? D[n.which] : w[n.which] ? w[n.which] : String.fromCharCode(n.which).toLowerCase();
}
function a(n, e) {
return n.sort().join(",") === e.sort().join(",");
}
function r(n) {
n = n || {};
var e, t = !1;
for (e in A) n[e] ? t = !0 : A[e] = 0;
t || (P = !1);
}
function o(n, e, t, i, r, o) {
var s, l, c = [], M = t.type;
if (!R[n]) return [];
for ("keyup" == M && u(n) && (e = [ n ]), s = 0; s < R[n].length; ++s) if (l = R[n][s],
(i || !l.seq || A[l.seq] == l.level) && M == l.action && ("keypress" == M && !t.metaKey && !t.ctrlKey || a(e, l.modifiers))) {
var d = !i && l.combo == r, h = i && l.seq == i && l.level == o;
(d || h) && R[n].splice(s, 1), c.push(l);
}
return c;
}
function s(n) {
var e = [];
return n.shiftKey && e.push("shift"), n.altKey && e.push("alt"), n.ctrlKey && e.push("ctrl"),
n.metaKey && e.push("meta"), e;
}
function l(n, e, t) {
F.stopCallback(e, e.target || e.srcElement, t) || n(e, t) === !1 && (e.preventDefault && e.preventDefault(),
e.stopPropagation && e.stopPropagation(), e.returnValue = !1, e.cancelBubble = !0);
}
function c(n, e, t) {
var i, a = o(n, e, t), s = {}, c = 0, M = !1;
for (i = 0; i < a.length; ++i) a[i].seq && (c = Math.max(c, a[i].level));
for (i = 0; i < a.length; ++i) if (a[i].seq) {
if (a[i].level != c) continue;
M = !0, s[a[i].seq] = 1, l(a[i].callback, t, a[i].combo);
} else M || l(a[i].callback, t, a[i].combo);
var d = "keypress" == t.type && E;
t.type != P || u(n) || d || r(s), E = M && "keydown" == t.type;
}
function M(n) {
"number" != typeof n.which && (n.which = n.keyCode);
var e = i(n);
if (e) return "keyup" == n.type && x === e ? (x = !1, void 0) : (F.handleKey(e, s(n), n),
void 0);
}
function u(n) {
return "shift" == n || "ctrl" == n || "alt" == n || "meta" == n;
}
function d() {
clearTimeout(v), v = setTimeout(r, 1e3);
}
function h() {
if (!y) {
y = {};
for (var n in D) n > 95 && 112 > n || D.hasOwnProperty(n) && (y[D[n]] = n);
}
return y;
}
function S(n, e, t) {
return t || (t = h()[n] ? "keydown" : "keypress"), "keypress" == t && e.length && (t = "keydown"),
t;
}
function p(n, e, t, a) {
function o(e) {
return function() {
P = e, ++A[n], d();
};
}
function s(e) {
l(t, e, n), "keyup" !== a && (x = i(e)), setTimeout(r, 10);
}
A[n] = 0;
for (var c = 0; c < e.length; ++c) {
var M = c + 1 === e.length, u = M ? s : o(a || g(e[c + 1]).action);
f(e[c], u, a, n, c);
}
}
function m(n) {
return "+" === n ? [ "+" ] : n.split("+");
}
function g(n, e) {
var t, i, a, r = [];
for (t = m(n), a = 0; a < t.length; ++a) i = t[a], k[i] && (i = k[i]), e && "keypress" != e && G[i] && (i = G[i],
r.push("shift")), u(i) && r.push(i);
return e = S(i, r, e), {
key: i,
modifiers: r,
action: e
};
}
function f(n, e, t, i, a) {
C[n + ":" + t] = e, n = n.replace(/\s+/g, " ");
var r, s = n.split(" ");
return s.length > 1 ? (p(n, s, e, t), void 0) : (r = g(n, t), R[r.key] = R[r.key] || [],
o(r.key, r.modifiers, {
type: r.action
}, i, n, a), R[r.key][i ? "unshift" : "push"]({
callback: e,
modifiers: r.modifiers,
action: r.action,
seq: i,
level: a,
combo: n
}), void 0);
}
function b(n, e, t) {
for (var i = 0; i < n.length; ++i) f(n[i], e, t);
}
for (var y, v, D = {
8: "backspace",
9: "tab",
13: "enter",
16: "shift",
17: "ctrl",
18: "alt",
20: "capslock",
27: "esc",
32: "space",
33: "pageup",
34: "pagedown",
35: "end",
36: "home",
37: "left",
38: "up",
39: "right",
40: "down",
45: "ins",
46: "del",
91: "meta",
93: "meta",
224: "meta"
}, w = {
106: "*",
107: "+",
109: "-",
110: ".",
111: "/",
186: ";",
187: "=",
188: ",",
189: "-",
190: ".",
191: "/",
192: "`",
219: "[",
220: "\\",
221: "]",
222: "'"
}, G = {
"~": "`",
"!": "1",
"@": "2",
"#": "3",
$: "4",
"%": "5",
"^": "6",
"&": "7",
"*": "8",
"(": "9",
")": "0",
_: "-",
"+": "=",
":": ";",
'"': "'",
"<": ",",
">": ".",
"?": "/",
"|": "\\"
}, k = {
option: "alt",
command: "meta",
"return": "enter",
escape: "esc",
mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? "meta" : "ctrl"
}, R = {}, C = {}, A = {}, x = !1, E = !1, P = !1, T = 1; 20 > T; ++T) D[111 + T] = "f" + T;
for (T = 0; 9 >= T; ++T) D[T + 96] = T;
t(e, "keypress", M), t(e, "keydown", M), t(e, "keyup", M);
var F = {
bind: function(n, e, t) {
return n = n instanceof Array ? n : [ n ], b(n, e, t), this;
},
unbind: function(n, e) {
return F.bind(n, function() {}, e);
},
trigger: function(n, e) {
return C[n + ":" + e] && C[n + ":" + e]({}, n), this;
},
reset: function() {
return R = {}, C = {}, this;
},
stopCallback: function(n, e) {
return (" " + e.className + " ").indexOf(" mousetrap ") > -1 ? !1 : "INPUT" == e.tagName || "SELECT" == e.tagName || "TEXTAREA" == e.tagName || e.isContentEditable;
},
handleKey: c
};
n.Mousetrap = F, "function" == typeof define && define.amd && define("mousetrap", F);
}(window, document), define("classes/FileDescriptor", [ "underscore", "utils", "ace/range" ], function(n, e, t) {
function i(e, t, i, r) {
this.fileIndex = e, this._title = t || localStorage[e + ".title"], this._editorScrollTop = parseInt(localStorage[e + ".editorScrollTop"]) || 0,
this._editorSelectRange = function() {
try {
var t = localStorage[e + ".editorSelectRange"].split(";");
return t = n.map(t, function(n) {
return parseInt(n);
}), new a(t[0], t[1], t[2], t[3]);
} catch (i) {
return new a(0, 0, 0, 0);
}
}(), this._editorEnd = parseInt(localStorage[e + ".editorEnd"]) || 0, this._previewScrollTop = parseInt(localStorage[e + ".previewScrollTop"]) || 0,
this._selectTime = parseInt(localStorage[e + ".selectTime"]) || 0, this.syncLocations = i || {},
this.publishLocations = r || {}, Object.defineProperty(this, "title", {
get: function() {
return this._title;
},
set: function(n) {
this._title = n, localStorage[this.fileIndex + ".title"] = n;
}
}), Object.defineProperty(this, "content", {
get: function() {
return localStorage[this.fileIndex + ".content"];
},
set: function(n) {
localStorage[this.fileIndex + ".content"] = n;
}
}), Object.defineProperty(this, "editorScrollTop", {
get: function() {
return this._editorScrollTop;
},
set: function(n) {
this._editorScrollTop = n, localStorage[this.fileIndex + ".editorScrollTop"] = n;
}
}), Object.defineProperty(this, "editorSelectRange", {
get: function() {
return this._editorSelectRange;
},
set: function(n) {
this._editorSelectRange = n, localStorage[this.fileIndex + ".editorSelectRange"] = [ n.start.row, n.start.column, n.end.row, n.end.column ].join(";");
}
}), Object.defineProperty(this, "previewScrollTop", {
get: function() {
return this._previewScrollTop;
},
set: function(n) {
this._previewScrollTop = n, localStorage[this.fileIndex + ".previewScrollTop"] = n;
}
}), Object.defineProperty(this, "selectTime", {
get: function() {
return this._selectTime;
},
set: function(n) {
this._selectTime = n, localStorage[this.fileIndex + ".selectTime"] = n;
}
});
}
var a = t.Range;
return i.prototype.addSyncLocation = function(n) {
e.storeAttributes(n), e.appendIndexToArray(this.fileIndex + ".sync", n.syncIndex),
this.syncLocations[n.syncIndex] = n;
}, i.prototype.removeSyncLocation = function(n) {
e.removeIndexFromArray(this.fileIndex + ".sync", n.syncIndex), delete this.syncLocations[n.syncIndex],
localStorage.removeItem(n.syncIndex);
}, i.prototype.addPublishLocation = function(n) {
e.storeAttributes(n), e.appendIndexToArray(this.fileIndex + ".publish", n.publishIndex),
this.publishLocations[n.publishIndex] = n;
}, i.prototype.removePublishLocation = function(n) {
e.removeIndexFromArray(this.fileIndex + ".publish", n.publishIndex), delete this.publishLocations[n.publishIndex],
localStorage.removeItem(n.publishIndex);
}, i.prototype.composeTitle = function() {
var e = [], t = n.values(this.syncLocations), i = n.values(this.publishLocations), a = t.concat(i);
return n.chain(a).sortBy(function(n) {
return n.provider.providerId;
}).each(function(n) {
var t = "icon-provider-" + n.provider.providerId;
n.isRealtime === !0 && (t += " realtime"), e.push('<i class="' + t + '"></i>');
}), e.push(" "), e.push(this.title), e.join("");
}, i;
}), define("fileSystem", [ "underscore", "utils", "classes/FileDescriptor", "storage" ], function(n, e, t) {
var i = {};
return n.each(e.retrieveIndexArray("file.list"), function(n) {
i[n] = new t(n);
}), i;
}), define("text!html/documentSelectorSettingsBlock.html", [], function() {
return '<p>Allows toggling document with keyboard shortcuts.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-5 control-label" for="select-document-selector-orderby">Order\n by</label>\n <div class="col-lg-6">\n <select id="select-document-selector-orderby" class="form-control">\n <option value="title">Document title</option>\n <option value="mru">Most recently used</option>\n </select>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-5 control-label"\n for="input-document-selector-shortcut-previous">"Previous"\n shortcut <a href="http://craig.is/killing/mice#keys" target="_blank">(?)</a></label>\n <div class="col-lg-6">\n <input type="text" id="input-document-selector-shortcut-previous"\n class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-5 control-label"\n for="input-document-selector-shortcut-next">"Next"\n shortcut <a href="http://craig.is/killing/mice#keys" target="_blank">(?)</a></label>\n <div class="col-lg-6">\n <input type="text" id="input-document-selector-shortcut-next"\n class="form-control">\n </div>\n </div>\n</div>';
}), define("extensions/documentSelector", [ "jquery", "underscore", "crel", "utils", "classes/Extension", "mousetrap", "fileSystem", "text!html/documentSelectorSettingsBlock.html" ], function(n, e, t, i, a, r, o, s) {
var l = new a("documentSelector", "Document Selector", !0, !0);
l.settingsBlock = s, l.defaultConfig = {
orderBy: "mru",
shortcutPrevious: "Ctrl+[",
shortcutNext: "Ctrl+]"
}, l.onLoadSettings = function() {
i.setInputValue("#select-document-selector-orderby", l.config.orderBy), i.setInputValue("#input-document-selector-shortcut-previous", l.config.shortcutPrevious),
i.setInputValue("#input-document-selector-shortcut-next", l.config.shortcutNext);
}, l.onSaveSettings = function(n, e) {
n.orderBy = i.getInputValue("#select-document-selector-orderby"), n.shortcutPrevious = i.getInputTextValue("#input-document-selector-shortcut-previous", e),
n.shortcutNext = i.getInputTextValue("#input-document-selector-shortcut-next", e);
};
var c = void 0;
l.onAceCreated = function(n) {
c = n;
};
var M = void 0;
l.onFileMgrCreated = function(n) {
M = n;
};
var u = [ '<li class="<%= isCurrent ? "disabled" : "" %>" data-file-index="<%= fileDesc.fileIndex %>">', ' <a href="#">', " <%= fileDesc.composeTitle() %>", " </a>", "</li>" ].join(""), d = void 0, h = void 0, S = void 0, p = void 0, m = void 0, g = void 0, f = void 0, b = function() {
var t = e.chain(o).sortBy(p).reduce(function(n, t) {
return n + e.template(u, {
fileDesc: t,
isCurrent: t === m
});
}, "").value();
d.innerHTML = t, S = [], h = {}, e.each(d.querySelectorAll("li"), function(e) {
var t = n(e);
S.push(t);
var i = o[t.data("fileIndex")];
h[i.fileIndex] = t, t.find("a").click(function() {
g = void 0, t.hasClass("disabled") ? void 0 !== c ? c.focus() : f.focus() : M.selectFile(i);
});
});
};
return l.onFileSelected = function(n) {
m = n, b();
}, l.onFileCreated = b, l.onFileDeleted = b, l.onTitleChanged = b, l.onSyncExportSuccess = b,
l.onSyncRemoved = b, l.onNewPublishSuccess = b, l.onPublishRemoved = b, l.onReady = function() {
f = n("#wmd-input"), "title" == l.config.orderBy ? p = function(n) {
return n.title.toLowerCase();
} : "mru" == l.config.orderBy && (p = function(n) {
return -n.selectTime;
}), d = t("ul", {
"class": "dropdown-menu dropdown-file-selector"
}), document.querySelector(".ui-layout-resizer-north").appendChild(t("div", t("div", {
"data-toggle": "dropdown"
}), d));
var i = n(d).dropdown(), a = n(".document-panel .collapse-button");
a.prop("title", e.template("<%= title %> <%= shortcutPrevious %> <%= shortcutNext %>", {
title: a.prop("title"),
shortcutPrevious: l.config.shortcutPrevious,
shortcutNext: l.config.shortcutNext
}));
var o = l.config.shortcutPrevious.toLowerCase();
r.bind(o, function() {
void 0 === g && (i.dropdown("toggle"), g = h[m.fileIndex]);
var n = e.indexOf(S, g) - 1;
return -2 === n && (n = -1), g = S[(n + S.length) % S.length], e.defer(function() {
g.find("a").focus();
}), !1;
});
var s = l.config.shortcutNext.toLowerCase();
r.bind(l.config.shortcutNext.toLowerCase(), function() {
void 0 === g && (i.dropdown("toggle"), g = h[m.fileIndex]);
var n = e.indexOf(S, g) + 1;
return g = S[n % S.length], e.defer(function() {
g.find("a").focus();
}), !1;
});
var c = o.indexOf("+"), M = -1 === c ? o : o.substring(0, c), u = s.indexOf("+"), b = -1 === u ? s : s.substring(0, u);
r.bind([ M, b ], function() {
void 0 !== g && g.find("a").click();
}, "keyup");
}, l;
}), define("classes/FolderDescriptor", [ "underscore", "utils", "fileSystem" ], function(n, e, t) {
function i(i, a) {
this.folderIndex = i, this._name = a || localStorage[i + ".name"], this.fileList = {},
n.each(e.retrieveIndexArray(i + ".files"), function(n) {
try {
var a = t[n];
a.folder = this, this.fileList[n] = a;
} catch (r) {
e.removeIndexFromArray(i + ".files", n);
}
}, this), Object.defineProperty(this, "name", {
get: function() {
return this._name;
},
set: function(n) {
this._name = n, localStorage[this.folderIndex + ".name"] = n;
}
});
}
return i.prototype.addFile = function(n) {
n.folder = this, e.appendIndexToArray(this.folderIndex + ".files", n.fileIndex),
this.fileList[n.fileIndex] = n;
}, i.prototype.removeFile = function(n) {
n.folder = void 0, e.removeIndexFromArray(this.folderIndex + ".files", n.fileIndex),
delete this.fileList[n.fileIndex];
}, i;
}), define("folderList", [ "underscore", "utils", "classes/FolderDescriptor", "storage" ], function(n, e, t) {
var i = {};
return n.each(e.retrieveIndexArray("folder.list"), function(n) {
i[n] = new t(n);
}), i;
}), define("extensions/documentPanel", [ "jquery", "underscore", "utils", "classes/Extension", "folderList", "fileSystem" ], function(n, e, t, i, a, r) {
function o(t) {
if (t != b) {
if (b = t, f.scrollTop = 0, !t) return p.addClass("hide"), h.removeClass("hide"),
void 0;
var i = t.toLowerCase().split(/\s+/);
e.each(S.querySelectorAll(".file"), function(t) {
var a = n(t), r = a.text().toLowerCase();
a.toggle(!e.some(i, function(n) {
return -1 === r.indexOf(n);
}));
}), p.removeClass("hide"), h.addClass("hide");
}
}
var s = new i("documentPanel", "Document Panel"), l = void 0;
s.onFileMgrCreated = function(n) {
l = n;
};
var c = [ '<a href="#"', ' class="list-group-item folder clearfix"', ' data-folder-index="<%= folderDesc.folderIndex %>"', ' data-toggle="collapse"', ' data-target=".document-panel .file-list.<%= id %>">', ' <div class="pull-right file-count">', " <%= _.size(folderDesc.fileList) %>", " </div>", ' <i class="icon-folder"></i> <%= folderDesc.name %>', "</a>", '<div class="file-list collapse <%= id %> clearfix">', " <%= fileListHtml %>", "</div>" ].join(""), M = [ '<a href="#"', ' class="list-group-item file<%= fileDesc === selectedFileDesc ? " active" : "" %>"', ' data-file-index="<%= fileDesc.fileIndex %>"', ' data-toggle="collapse"', ' data-target=".document-panel">', " <%= fileDesc.composeTitle() %>", "</a>" ].join(""), u = void 0, d = void 0, h = void 0, S = void 0, p = void 0, m = void 0, g = function() {
var t = e.filter(r, function(n) {
return void 0 === n.folder;
}), i = e.chain(t).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + "<li>" + e.template(M, {
fileDesc: t,
selectedFileDesc: m
}) + "</li>";
}, "").value();
i = i && '<ul class="nav">' + i + "</ul>", e.chain(a).sortBy(function(n) {
return n.name.toLowerCase();
}).each(function(n) {
var t = e.chain(n.fileList).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + "<li>" + e.template(M, {
fileDesc: t,
selectedFileDesc: m
}) + "</li>";
}, "").value();
t = t && '<ul class="nav">' + t + "</ul>", i += e.template(c, {
folderDesc: n,
fileListHtml: t,
id: n.folderIndex.replace(".", "")
});
}), d.innerHTML = i;
var o = e.chain(r).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + "<li>" + e.template(M, {
fileDesc: t,
selectedFileDesc: m
}) + "</li>";
}, "").value();
o = '<ul class="nav">' + o + "</ul>", S.innerHTML = o, e.each(u.querySelectorAll(".file"), function(e) {
var t = n(e);
t.click(function() {
var n = r[t.data("fileIndex")];
n && n !== m && l.selectFile(n);
});
});
};
s.onFileSelected = function(n) {
m = n, g();
}, s.onFileCreated = g, s.onFileDeleted = g, s.onTitleChanged = g, s.onSyncExportSuccess = g,
s.onSyncRemoved = g, s.onNewPublishSuccess = g, s.onPublishRemoved = g, s.onFoldersChanged = g;
var f = void 0, b = "";
return s.onReady = function() {
u = document.querySelector(".document-panel"), f = u.querySelector(".panel-content"),
d = u.querySelector(".document-list"), h = n(d), S = u.querySelector(".document-list-filtered"),
p = n(S), n(u).on("show.bs.collapse", function(e) {
if (e.target === u) {
var t = m.folder;
void 0 !== t && n(u.querySelector(".file-list." + t.folderIndex.replace(".", ""))).collapse("show");
}
}).on("shown.bs.collapse", function(n) {
n.target === u && (e.val(""), o(""), f.scrollTop += d.querySelector(".file.active").getBoundingClientRect().top - 120);
});
var e = n(u.querySelector(".search-bar .form-control"));
e.bind("propertychange keyup input paste", function() {
o(e.val());
}), n(u.querySelector(".search-bar .close")).click(function() {
e.val(""), o(""), e.focus();
});
}, s;
}), define("extensions/documentManager", [ "jquery", "underscore", "utils", "classes/Extension", "classes/FolderDescriptor", "folderList", "fileSystem", "config" ], function(n, e, t, i, a, r, o) {
function s() {
D = [], v = [], e.each(y.querySelectorAll('input[type="checkbox"]:checked'), function(e) {
var t = n(e.parentNode.parentNode), i = r[t.data("folderIndex")], a = o[t.data("fileIndex")];
void 0 !== i ? D.push(i) : void 0 !== a && v.push(a);
});
}
function l() {
if (0 === e.size(v)) return c(), void 0;
var t = e.chain(v).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(g, {
fileDesc: t
});
}, "").value();
w.innerHTML = '<ul class="file-list nav">' + t + "</ul>", n(b.querySelectorAll(".document-list")).addClass("hide"),
n(b.querySelectorAll(".confirm-delete, .selected-document-list")).removeClass("hide");
}
function c() {
e.each(v, function(n) {
n.folder && n.folder.removeFile(n), d.deleteFile(n);
}), e.each(D, function(n) {
t.removeIndexFromArray("folder.list", n.folderIndex), localStorage.removeItem(n.folderIndex + ".name"),
localStorage.removeItem(n.folderIndex + ".files"), delete r[n.folderIndex];
}), h.onFoldersChanged();
}
function M() {
s(), G.toggleClass("disabled", 0 === e.size(r) || 0 === e.size(v)), k.toggleClass("disabled", 0 === e.size(D) && 0 === e.size(v));
}
var u = new i("documentManager", "Document Manager", !1, !0), d = void 0;
u.onFileMgrCreated = function(n) {
d = n;
};
var h = void 0;
u.onEventMgrCreated = function(n) {
h = n;
};
var S = [ '<a href="#" class="list-group-item folder clearfix" data-folder-index="<%= folderDesc.folderIndex %>" data-toggle="collapse" data-target=".modal-document-manager .file-list.<%= id %>">', '<label class="checkbox" title="Select"><input type="checkbox"></label>', '<button class="btn btn-default button-delete" title="Delete"><i class="icon-trash"></i></button>', '<button class="btn btn-default button-rename" title="Rename"><i class="icon-pencil"></i></button>', '<div class="pull-right file-count"><%= _.size(folderDesc.fileList) %></div>', '<div class="name"><i class="icon-folder"></i> ', "<%= folderDesc.name %></div>", '<input type="text" class="input-rename form-control hide"></a>', '<div class="file-list collapse <%= id %> clearfix"><%= fileListHtml %></div>' ].join(""), p = [ '<li class="list-group-item file clearfix" data-file-index="<%= fileDesc.fileIndex %>">', '<label class="checkbox" title="Select"><input type="checkbox"></label>', '<button class="btn btn-default button-delete" title="Delete"><i class="icon-trash"></i></button>', '<button class="btn btn-default button-rename" title="Rename"><i class="icon-pencil"></i></button>', '<div class="name"><%= fileDesc.composeTitle() %></div>', '<input type="text" class="input-rename form-control hide"></li>' ].join(""), m = [ '<a href="#" class="list-group-item folder clearfix" data-folder-index="<%= folderDesc.folderIndex %>">', '<div class="pull-right file-count"><%= _.size(folderDesc.fileList) %></div>', '<div class="name"><i class="icon-forward"></i> ', "<%= folderDesc.name %></div></a>" ].join(""), g = [ '<li class="list-group-item file clearfix">', '<div class="name"><%= fileDesc.composeTitle() %></div></li>' ].join(""), f = !1, b = void 0, y = void 0, v = [], D = [], w = void 0, G = void 0, k = void 0, R = void 0, C = void 0, A = void 0, x = function() {
if (f !== !1) {
M(), C.text(e.size(o)), A.text(e.size(r) + 1), R = e.filter(o, function(n) {
return void 0 === n.folder;
});
var t = [ '<a href="#" class="list-group-item folder clearfix" data-toggle="collapse" data-target=".modal-document-manager .file-list.root-folder">', '<label class="checkbox" title="Select"><input type="checkbox"></label>', '<div class="pull-right file-count">', e.size(R), "</div>", '<div class="name"><i class="icon-folder"></i> ', "ROOT folder</div></a>" ].join(""), i = e.chain(R).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(p, {
fileDesc: t
});
}, "").value();
i = i && '<ul class="nav">' + i + "</ul>", t += '<div class="file-list collapse root-folder clearfix">' + i + "</div>",
e.chain(r).sortBy(function(n) {
return n.name.toLowerCase();
}).each(function(n) {
var i = e.chain(n.fileList).sortBy(function(n) {
return n.title.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(p, {
fileDesc: t
});
}, "").value();
i = i && '<ul class="nav">' + i + "</ul>", t += e.template(S, {
folderDesc: n,
fileListHtml: i,
id: n.folderIndex.replace(".", "")
});
}), y.innerHTML = t, e.each(y.querySelectorAll(".button-delete"), function(e) {
var t = n(e);
t.click(function(n) {
n.stopPropagation();
var e = t.parent(), i = r[e.data("folderIndex")], a = o[e.data("fileIndex")];
v = [], D = [], i ? (D.push(i), v = i.fileList) : a && v.push(a), l();
});
}), e.each(y.querySelectorAll(".button-rename"), function(e) {
var t = n(e);
t.click(function(n) {
n.stopPropagation();
var e = t.parent(), i = void 0, a = r[e.data("folderIndex")], s = o[e.data("fileIndex")];
a ? i = a.name : s && (i = s.title), e.find(".name").addClass("hide"), e.find(".input-rename").removeClass("hide").val(i)[0].select();
});
}), e.each(y.querySelectorAll(".input-rename"), function(e) {
function t() {
var e = i.parent(), t = n.trim(i.val()), a = r[e.data("folderIndex")], s = o[e.data("fileIndex")];
t && a && t != a.name ? (a.name = t, h.onFoldersChanged()) : t && s && t != s.title ? (s.title = t,
h.onTitleChanged(s)) : (i.addClass("hide"), e.find(".name").removeClass("hide"));
}
var i = n(e);
i.blur(function() {
t();
}).keyup(function(n) {
13 == n.keyCode && (t(), n.stopPropagation()), 27 == n.keyCode && (i.val(""), t(),
n.stopPropagation());
});
}), e.each(y.querySelectorAll(".file .checkbox"), function(e) {
var t = n(e);
t.click(function(n) {
n.stopPropagation();
}).find("[type=checkbox]").change(function() {
t.parents(".list-group").find(".folder [type=checkbox]").prop("checked", !1);
});
}), e.each(y.querySelectorAll(".folder .checkbox"), function(e) {
var t = n(e);
t.click(function(n) {
n.stopPropagation();
}).find("[type=checkbox]").change(function() {
t.parent().next().find("[type=checkbox]").prop("checked", this.checked);
});
}), n(y.querySelectorAll("[type=checkbox]")).change(M);
}
};
return u.onFileCreated = x, u.onFileDeleted = x, u.onTitleChanged = x, u.onSyncExportSuccess = x,
u.onSyncRemoved = x, u.onNewPublishSuccess = x, u.onPublishRemoved = x, u.onFoldersChanged = x,
u.onReady = function() {
b = document.querySelector(".modal-document-manager"), y = b.querySelector(".list-group.document-list"),
C = n(b.querySelectorAll(".document-count")), A = n(b.querySelectorAll(".folder-count")),
w = b.querySelector(".list-group.selected-document-list");
var i = b.querySelector(".list-group.select-folder-list");
n(b).on("show.bs.modal", function() {
f = !0, x();
}).on("hide.bs.modal", function() {
f = !1;
}), n(b.querySelectorAll(".action-create-folder")).click(function() {
var i = void 0;
do i = "folder." + t.randomString(); while (e.has(r, i));
localStorage[i + ".name"] = DEFAULT_FOLDER_NAME;
var o = new a(i, DEFAULT_FOLDER_NAME);
t.appendIndexToArray("folder.list", i), r[i] = o, h.onFoldersChanged();
var s = n(b.querySelector('[data-folder-index="' + i + '"] .button-rename')).click();
b.scrollTop += s.offset().top - 50;
}), n(b.querySelectorAll(".action-select-all")).click(function() {
n(y.querySelectorAll('input[type="checkbox"]')).prop("checked", !0);
}), n(b.querySelectorAll(".action-unselect-all")).click(function() {
n(y.querySelectorAll('input[type="checkbox"]')).prop("checked", !1);
});
var o = n(b.querySelectorAll(".action-delete-items")).click(function() {
k.hasClass("disabled") || (s(), l());
});
k = o.parent(), n(b.querySelectorAll(".action-delete-items-confirm")).click(function() {
c(), n(b.querySelectorAll(".document-list")).removeClass("hide"), n(b.querySelectorAll(".confirm-delete, .selected-document-list")).addClass("hide");
});
var M = n(b.querySelectorAll(".action-move-items")).click(function() {
if (!G.hasClass("disabled")) {
s();
var t = [ '<a href="#" class="list-group-item folder clearfix">', '<div class="pull-right file-count">', e.size(R), "</div>", '<div class="name"><i class="icon-forward"></i> ', "ROOT folder</div></a>" ].join("");
t += e.chain(r).sortBy(function(n) {
return n.name.toLowerCase();
}).reduce(function(n, t) {
return n + e.template(m, {
folderDesc: t
});
}, "").value(), i.innerHTML = t, e.each(i.querySelectorAll(".folder"), function(t) {
t = n(t), t.click(function() {
var i = r[t.data("folderIndex")];
e.each(v, function(n) {
n.folder && n.folder.removeFile(n), i && i.addFile(n);
}), h.onFoldersChanged(), n(b.querySelectorAll(".document-list")).removeClass("hide"),
n(b.querySelectorAll(".choose-folder, .select-folder-list")).addClass("hide");
});
}), n(b.querySelectorAll(".document-list")).addClass("hide"), n(b.querySelectorAll(".choose-folder, .select-folder-list")).removeClass("hide");
}
});
G = M.parent(), n(b.querySelectorAll(".action-cancel")).click(function() {
n(b.querySelectorAll(".document-list")).removeClass("hide"), n(b.querySelectorAll(".confirm-delete, .choose-folder, .selected-document-list, .select-folder-list")).addClass("hide");
});
}, u;
}), define("extensions/workingIndicator", [ "jquery", "underscore", "classes/Extension" ], function(n, e, t) {
var i = new t("workingIndicator", "Working Indicator"), a = void 0, r = void 0;
return i.onAsyncRunning = function(n) {
a.toggleClass("working", n), r.toggleClass("show", n);
}, i.onReady = function() {
a = n(document.body), r = n(".working-indicator");
}, i;
}), function(n) {
var e = function() {
return !1 === n.support.boxModel && n.support.objectAll && $support.leadingWhitespace;
}();
n.jGrowl = function(e, t) {
0 == n("#jGrowl").size() && n('<div id="jGrowl"></div>').addClass(t && t.position ? t.position : n.jGrowl.defaults.position).appendTo("body"),
n("#jGrowl").jGrowl(e, t);
}, n.fn.jGrowl = function(e, t) {
if (n.isFunction(this.each)) {
var i = arguments;
return this.each(function() {
void 0 == n(this).data("jGrowl.instance") && (n(this).data("jGrowl.instance", n.extend(new n.fn.jGrowl(), {
notifications: [],
element: null,
interval: null
})), n(this).data("jGrowl.instance").startup(this)), n.isFunction(n(this).data("jGrowl.instance")[e]) ? n(this).data("jGrowl.instance")[e].apply(n(this).data("jGrowl.instance"), n.makeArray(i).slice(1)) : n(this).data("jGrowl.instance").create(e, t);
});
}
}, n.extend(n.fn.jGrowl.prototype, {
defaults: {
pool: 0,
header: "",
group: "",
sticky: !1,
position: "top-right",
glue: "after",
theme: "default",
themeState: "highlight",
corners: "10px",
check: 250,
life: 3e3,
closeDuration: "normal",
openDuration: "normal",
easing: "swing",
closer: !0,
closeTemplate: "&times;",
closerTemplate: "<div>[ close all ]</div>",
log: function() {},
beforeOpen: function() {},
afterOpen: function() {},
open: function() {},
beforeClose: function() {},
close: function() {},
animateOpen: {
opacity: "show"
},
animateClose: {
opacity: "hide"
}
},
notifications: [],
element: null,
interval: null,
create: function(e, t) {
var t = n.extend({}, this.defaults, t);
"undefined" != typeof t.speed && (t.openDuration = t.speed, t.closeDuration = t.speed),
this.notifications.push({
message: e,
options: t
}), t.log.apply(this.element, [ this.element, e, t ]);
},
render: function(e) {
var t = this, i = e.message, a = e.options;
a.themeState = "" == a.themeState ? "" : "ui-state-" + a.themeState;
var e = n('<div class="jGrowl-notification ' + a.themeState + " ui-corner-all" + (void 0 != a.group && "" != a.group ? " " + a.group : "") + '">' + '<div class="jGrowl-close">' + a.closeTemplate + "</div>" + '<div class="jGrowl-header">' + a.header + "</div>" + '<div class="jGrowl-message">' + i + "</div></div>").data("jGrowl", a).addClass(a.theme).children("div.jGrowl-close").bind("click.jGrowl", function() {
n(this).parent().trigger("jGrowl.beforeClose");
}).parent();
n(e).bind("mouseover.jGrowl", function() {
n("div.jGrowl-notification", t.element).data("jGrowl.pause", !0);
}).bind("mouseout.jGrowl", function() {
n("div.jGrowl-notification", t.element).data("jGrowl.pause", !1);
}).bind("jGrowl.beforeOpen", function() {
0 != a.beforeOpen.apply(e, [ e, i, a, t.element ]) && n(this).trigger("jGrowl.open");
}).bind("jGrowl.open", function() {
0 != a.open.apply(e, [ e, i, a, t.element ]) && ("after" == a.glue ? n("div.jGrowl-notification:last", t.element).after(e) : n("div.jGrowl-notification:first", t.element).before(e),
n(this).animate(a.animateOpen, a.openDuration, a.easing, function() {
n.support.opacity === !1 && this.style.removeAttribute("filter"), null != n(this).data("jGrowl") && (n(this).data("jGrowl").created = new Date()),
n(this).trigger("jGrowl.afterOpen");
}));
}).bind("jGrowl.afterOpen", function() {
a.afterOpen.apply(e, [ e, i, a, t.element ]);
}).bind("jGrowl.beforeClose", function() {
0 != a.beforeClose.apply(e, [ e, i, a, t.element ]) && n(this).trigger("jGrowl.close");
}).bind("jGrowl.close", function() {
n(this).data("jGrowl.pause", !0), n(this).animate(a.animateClose, a.closeDuration, a.easing, function() {
n.isFunction(a.close) ? a.close.apply(e, [ e, i, a, t.element ]) !== !1 && n(this).remove() : n(this).remove();
});
}).trigger("jGrowl.beforeOpen"), "" != a.corners && void 0 != n.fn.corner && n(e).corner(a.corners),
n("div.jGrowl-notification:parent", t.element).size() > 1 && 0 == n("div.jGrowl-closer", t.element).size() && 0 != this.defaults.closer && n(this.defaults.closerTemplate).addClass("jGrowl-closer " + this.defaults.themeState + " ui-corner-all").addClass(this.defaults.theme).appendTo(t.element).animate(this.defaults.animateOpen, this.defaults.speed, this.defaults.easing).bind("click.jGrowl", function() {
n(this).siblings().trigger("jGrowl.beforeClose"), n.isFunction(t.defaults.closer) && t.defaults.closer.apply(n(this).parent()[0], [ n(this).parent()[0] ]);
});
},
update: function() {
n(this.element).find("div.jGrowl-notification:parent").each(function() {
void 0 != n(this).data("jGrowl") && void 0 != n(this).data("jGrowl").created && n(this).data("jGrowl").created.getTime() + parseInt(n(this).data("jGrowl").life) < new Date().getTime() && 1 != n(this).data("jGrowl").sticky && (void 0 == n(this).data("jGrowl.pause") || 1 != n(this).data("jGrowl.pause")) && n(this).trigger("jGrowl.beforeClose");
}), this.notifications.length > 0 && (0 == this.defaults.pool || n(this.element).find("div.jGrowl-notification:parent").size() < this.defaults.pool) && this.render(this.notifications.shift()),
n(this.element).find("div.jGrowl-notification:parent").size() < 2 && n(this.element).find("div.jGrowl-closer").animate(this.defaults.animateClose, this.defaults.speed, this.defaults.easing, function() {
n(this).remove();
});
},
startup: function(t) {
this.element = n(t).addClass("jGrowl").append('<div class="jGrowl-notification"></div>'),
this.interval = setInterval(function() {
n(t).data("jGrowl.instance").update();
}, parseInt(this.defaults.check)), e && n(this.element).addClass("ie6");
},
shutdown: function() {
n(this.element).removeClass("jGrowl").find("div.jGrowl-notification").remove(),
clearInterval(this.interval);
},
close: function() {
n(this.element).find("div.jGrowl-notification").each(function() {
n(this).trigger("jGrowl.beforeClose");
});
}
}), n.jGrowl.defaults = n.fn.jGrowl.prototype.defaults;
}(jQuery), define("jgrowl", [ "jquery" ], function(n) {
return function() {
var e;
return e || n.jQuery.jGrowl;
};
}(this)), define("text!html/notificationsSettingsBlock.html", [], function() {
return '<p>Shows notification messages in the bottom-right corner of the\n screen.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-notifications-timeout">Timeout</label>\n <div class="col-lg-7 form-inline">\n <input type="text" id="input-notifications-timeout"\n class="col-lg-5 form-control"> <span class="help-inline">ms</span>\n </div>\n </div>\n</div>';
}), define("extensions/notifications", [ "jquery", "underscore", "utils", "classes/Extension", "jgrowl", "text!html/notificationsSettingsBlock.html" ], function(n, e, t, i, a, r) {
function o() {
c === !1 && (a.defaults.life = l.config.timeout, a.defaults.closer = !1, a.defaults.closeTemplate = "",
a.defaults.position = "bottom-right", c = !0);
}
function s(n, t, i) {
if (logger.info(n), o(), n) {
var r = n.indexOf("|");
(-1 === r || (n = n.substring(0, r))) && (i = i || {}, t = t || "icon-info-circled",
a("<i class='icon-white " + t + "'></i> " + e.escape(n).replace(/\n/g, "<br/>"), i));
}
}
var l = new i("notifications", "Notifications");
l.settingsBlock = r, l.defaultConfig = {
timeout: 8e3
}, l.onLoadSettings = function() {
t.setInputValue("#input-notifications-timeout", l.config.timeout);
}, l.onSaveSettings = function(n, e) {
n.timeout = t.getInputIntValue("#input-notifications-timeout", e, 1, 6e4);
};
var c = !1;
return l.onMessage = function(n) {
s(n);
}, l.onError = function(n) {
logger.error(n), e.isString(n) ? s(n, "icon-attention") : e.isObject(n) && s(n.message, "icon-attention");
}, l.onOfflineChanged = function(e) {
e === !0 ? s("You are offline.", "icon-attention-circled msg-offline", {
sticky: !0,
close: function() {
s("You are back online!", "icon-signal");
}
}) : n(".msg-offline").parents(".jGrowl-notification").trigger("jGrowl.beforeClose");
}, l.onSyncImportSuccess = function(n, t) {
var i = e.map(n, function(n) {
return n.title;
}).join(", ");
s(i + " imported successfully from " + t.providerName + ".");
}, l.onSyncExportSuccess = function(n, e) {
s('"' + n.title + '" will now be synchronized on ' + e.provider.providerName + ".");
}, l.onSyncRemoved = function(n, e) {
s(e.provider.providerName + " synchronized location has been removed.");
}, l.onPublishSuccess = function(n) {
s('"' + n.title + '" successfully published.');
}, l.onNewPublishSuccess = function(n, e) {
s('"' + n.title + '" is now published on ' + e.provider.providerName + ".");
}, l.onPublishRemoved = function(n, e) {
s(e.provider.providerName + " publish location has been removed.");
}, l;
}), define("text!html/markdownExtraSettingsBlock.html", [], function() {
return '<p>Adds extra features to the original Markdown syntax.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-fencedcodegfm">GFM fenced code\n blocks</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-fencedcodegfm">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-markdownextra-tables">Tables</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-tables">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-deflist">Definition lists</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-deflist">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-attrlist">Special attributes</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-attrlist">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-footnotes">Footnotes</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-footnotes">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-smartypants">SmartyPants</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-markdownextra-smartypants">\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-markdownextra-highlighter">Syntax highlighter</label>\n <div class="col-lg-7">\n <select id="input-markdownextra-highlighter" class="form-control"><option>None</option>\n <option value="prettify">Prettify</option>\n <option value="highlight">Highlight.js</option>\n </select>\n </div>\n </div>\n</div>\n<span class="help-block pull-right"><a target="_blank"\n href="https://github.com/jmcmanus/pagedown-extra">More info</a></span>';
});
var Markdown;
Markdown = "object" == typeof exports && "function" == typeof require ? exports : {},
function() {
function n(n) {
return n;
}
function e() {
return !1;
}
function t() {}
function i() {}
t.prototype = {
chain: function(e, t) {
var i = this[e];
if (!i) throw new Error("unknown hook " + e);
this[e] = i === n ? t : function() {
var n = Array.prototype.slice.call(arguments, 0);
return n[0] = i.apply(null, n), t.apply(null, n);
};
},
set: function(n, e) {
if (!this[n]) throw new Error("unknown hook " + n);
this[n] = e;
},
addNoop: function(e) {
this[e] = n;
},
addFalse: function(n) {
this[n] = e;
}
}, Markdown.HookCollection = t, i.prototype = {
set: function(n, e) {
this["s_" + n] = e;
},
get: function(n) {
return this["s_" + n];
}
}, Markdown.Converter = function() {
function n(n) {
return n = n.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm, function(n, e, t, i, a, r) {
return e = e.toLowerCase(), B.set(e, w(t)), a ? i : (r && Y.set(e, r.replace(/"/g, "&quot;")),
"");
});
}
function e(n) {
return n = n.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm, a),
n = n.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm, a),
n = n.replace(/\n[ ]{0,3}((<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, a), n = n.replace(/\n\n[ ]{0,3}(<!(--(?:|(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>[ \t]*(?=\n{2,}))/g, a),
n = n.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, a);
}
function a(n, e) {
var t = e;
return t = t.replace(/^\n+/, ""), t = t.replace(/\n+$/g, ""), t = "\n\n~K" + (L.push(t) - 1) + "K\n\n";
}
function r(n, t) {
n = F.preBlockGamut(n, z), n = h(n);
var i = "<hr />\n";
return n = n.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, i), n = n.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm, i),
n = n.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, i), n = S(n), n = m(n), n = v(n),
n = F.postBlockGamut(n, z), n = e(n), n = D(n, t);
}
function o(n) {
return n = F.preSpanGamut(n), n = f(n), n = s(n), n = G(n), n = M(n), n = l(n),
n = R(n), n = n.replace(/~P/g, "://"), n = w(n), n = y(n), n = n.replace(/ +\n/g, " <br>\n"),
n = F.postSpanGamut(n);
}
function s(n) {
var e = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--(?:|(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>)/gi;
return n = n.replace(e, function(n) {
var e = n.replace(/(.)<\/?code>(?=.)/g, "$1`");
return e = P(e, "!" == n.charAt(1) ? "\\`*_/" : "\\`*_");
});
}
function l(n) {
return n = n.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, c),
n = n.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?((?:\([^)]*\)|[^()\s])*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, c),
n = n.replace(/(\[([^\[\]]+)\])()()()()()/g, c);
}
function c(n, e, t, i, a, r, o, s) {
void 0 == s && (s = "");
var l = e, c = t.replace(/:\/\//g, "~P"), M = i.toLowerCase(), d = a, h = s;
if ("" == d) if ("" == M && (M = c.toLowerCase().replace(/ ?\n/g, " ")), d = "#" + M,
void 0 != B.get(M)) d = B.get(M), void 0 != Y.get(M) && (h = Y.get(M)); else {
if (!(l.search(/\(\s*\)$/m) > -1)) return l;
d = "";
}
d = E(d), d = P(d, "*_");
var S = '<a href="' + d + '"';
return "" != h && (h = u(h), h = P(h, "*_"), S += ' title="' + h + '"'), S += ">" + c + "</a>";
}
function M(n) {
return n = n.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, d), n = n.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, d);
}
function u(n) {
return n.replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, "&quot;");
}
function d(n, e, t, i, a, r, o, s) {
var l = e, c = t, M = i.toLowerCase(), d = a, h = s;
if (h || (h = ""), "" == d) {
if ("" == M && (M = c.toLowerCase().replace(/ ?\n/g, " ")), d = "#" + M, void 0 == B.get(M)) return l;
d = B.get(M), void 0 != Y.get(M) && (h = Y.get(M));
}
c = P(u(c), "*_[]()"), d = P(d, "*_");
var S = '<img src="' + d + '" alt="' + c + '"';
return h = u(h), h = P(h, "*_"), S += ' title="' + h + '"', S += " />";
}
function h(n) {
return n = n.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm, function(n, e) {
return '<h1 class="wmd-title">' + o(e) + "</h1>\n\n";
}), n = n.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm, function(n, e) {
return '<h2 class="wmd-title">' + o(e) + "</h2>\n\n";
}), n = n.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm, function(n, e, t) {
var i = e.length;
return "<h" + i + ' class="wmd-title">' + o(t) + "</h" + i + ">\n\n";
});
}
function S(n, e) {
n += "~0";
var t = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
return N ? n = n.replace(t, function(n, t, i) {
var a = t, r = i.search(/[*+-]/g) > -1 ? "ul" : "ol", o = p(a, r, e);
return o = o.replace(/\s+$/, ""), o = "<" + r + ">" + o + "</" + r + ">\n";
}) : (t = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,
n = n.replace(t, function(n, e, t, i) {
var a = e, r = t, o = i.search(/[*+-]/g) > -1 ? "ul" : "ol", s = p(r, o);
return s = a + "<" + o + ">\n" + s + "</" + o + ">\n";
})), n = n.replace(/~0/, "");
}
function p(n, e, t) {
N++, n = n.replace(/\n{2,}$/, "\n"), n += "~0";
var i = I[e], a = new RegExp("(^[ \\t]*)(" + i + ")[ \\t]+([^\\r]+?(\\n+))(?=(~0|\\1(" + i + ")[ \\t]+))", "gm"), s = !1;
return n = n.replace(a, function(n, e, i, a) {
var l = a, c = /\n\n$/.test(l), M = c || l.search(/\n{2,}/) > -1;
return M || s ? l = r(A(l), !0) : (l = S(A(l), !0), l = l.replace(/\n$/, ""), t || (l = o(l))),
s = c, "<li>" + l + "</li>\n";
}), n = n.replace(/~0/g, ""), N--, n;
}
function m(n) {
return n += "~0", n = n.replace(/(?:\n\n|^\n?)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g, function(n, e, t) {
var i = e, a = t;
return i = b(A(i)), i = x(i), i = i.replace(/^\n+/g, ""), i = i.replace(/\n+$/g, ""),
i = "<pre><code>" + i + "\n</code></pre>", "\n\n" + i + "\n\n" + a;
}), n = n.replace(/~0/, "");
}
function g(n) {
return n = n.replace(/(^\n+|\n+$)/g, ""), "\n\n~K" + (L.push(n) - 1) + "K\n\n";
}
function f(n) {
return n = n.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function(n, e, t, i) {
var a = i;
return a = a.replace(/^([ \t]*)/g, ""), a = a.replace(/[ \t]*$/g, ""), a = b(a),
a = a.replace(/:\/\//g, "~P"), e + "<code>" + a + "</code>";
});
}
function b(n) {
return n = n.replace(/&/g, "&amp;"), n = n.replace(/</g, "&lt;"), n = n.replace(/>/g, "&gt;"),
n = P(n, "*_{}[]\\", !1);
}
function y(n) {
return n = n.replace(/([\W_]|^)(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\2([\W_]|$)/g, "$1<strong>$3</strong>$4"),
n = n.replace(/([\W_]|^)(\*|_)(?=\S)([^\r\*_]*?\S)\2([\W_]|$)/g, "$1<em>$3</em>$4");
}
function v(n) {
return n = n.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm, function(n, e) {
var t = e;
return t = t.replace(/^[ \t]*>[ \t]?/gm, "~0"), t = t.replace(/~0/g, ""), t = t.replace(/^[ \t]+$/gm, ""),
t = r(t), t = t.replace(/(^|\n)/g, "$1 "), t = t.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function(n, e) {
var t = e;
return t = t.replace(/^ /gm, "~0"), t = t.replace(/~0/g, "");
}), g("<blockquote>\n" + t + "\n</blockquote>");
});
}
function D(n, e) {
n = n.replace(/^\n+/g, ""), n = n.replace(/\n+$/g, "");
for (var t = n.split(/\n{2,}/g), i = [], a = /~K(\d+)K/, r = t.length, s = 0; r > s; s++) {
var l = t[s];
a.test(l) ? i.push(l) : /\S/.test(l) && (l = o(l), l = l.replace(/^([ \t]*)/g, "<p>"),
l += "</p>", i.push(l));
}
if (!e) {
r = i.length;
for (var s = 0; r > s; s++) for (var c = !0; c; ) c = !1, i[s] = i[s].replace(/~K(\d+)K/g, function(n, e) {
return c = !0, L[e];
});
}
return i.join("\n\n");
}
function w(n) {
return n = n.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&amp;"), n = n.replace(/<(?![a-z\/?!]|~D)/gi, "&lt;");
}
function G(n) {
return n = n.replace(/\\(\\)/g, T), n = n.replace(/\\([`*_{}\[\]()>#+-.!])/g, T);
}
function k(n, e, t, i) {
if (e) return n;
if (")" !== i.charAt(i.length - 1)) return "<" + t + i + ">";
for (var a = i.match(/[()]/g), r = 0, o = 0; o < a.length; o++) "(" === a[o] ? 0 >= r ? r = 1 : r++ : r--;
var s = "";
if (0 > r) {
var l = new RegExp("\\){1," + -r + "}$");
i = i.replace(l, function(n) {
return s = n, "";
});
}
if (s) {
var c = i.charAt(i.length - 1);
j.test(c) || (s = c + s, i = i.substr(0, i.length - 1));
}
return "<" + t + i + ">" + s;
}
function R(n) {
n = n.replace($, k);
var e = function(n, e) {
return '<a href="' + e + '">' + F.plainLinkText(e) + "</a>";
};
return n = n.replace(/<((https?|ftp):[^'">\s]+)>/gi, e);
}
function C(n) {
return n = n.replace(/~E(\d+)E/g, function(n, e) {
var t = parseInt(e);
return String.fromCharCode(t);
});
}
function A(n) {
return n = n.replace(/^(\t|[ ]{1,4})/gm, "~0"), n = n.replace(/~0/g, "");
}
function x(n) {
if (!/\t/.test(n)) return n;
var e, t = [ " ", " ", " ", " " ], i = 0;
return n.replace(/[\n\t]/g, function(n, a) {
return "\n" === n ? (i = a + 1, n) : (e = (a - i) % 4, i = a + 1, t[e]);
});
}
function E(n) {
return n ? (n.length, n.replace(Z, function(n) {
return "~D" == n ? "%24" : ":" == n ? ":" : "%" + n.charCodeAt(0).toString(16);
})) : "";
}
function P(n, e, t) {
var i = "([" + e.replace(/([\[\]\\])/g, "\\$1") + "])";
t && (i = "\\\\" + i);
var a = new RegExp(i, "g");
return n = n.replace(a, T);
}
function T(n, e) {
var t = e.charCodeAt(0);
return "~E" + t + "E";
}
var F = this.hooks = new t();
F.addNoop("plainLinkText"), F.addNoop("preConversion"), F.addNoop("postNormalization"),
F.addNoop("preBlockGamut"), F.addNoop("postBlockGamut"), F.addNoop("preSpanGamut"),
F.addNoop("postSpanGamut"), F.addNoop("postConversion");
var B, Y, L, N;
this.makeHtml = function(t) {
if (B) throw new Error("Recursive call to converter.makeHtml");
return B = new i(), Y = new i(), L = [], N = 0, t = F.preConversion(t), t = t.replace(/~/g, "~T"),
t = t.replace(/\$/g, "~D"), t = t.replace(/\r\n/g, "\n"), t = t.replace(/\r/g, "\n"),
t = "\n\n" + t + "\n\n", t = x(t), t = t.replace(/^[ \t]+$/gm, ""), t = F.postNormalization(t),
t = e(t), t = n(t), t = r(t), t = C(t), t = t.replace(/~D/g, "$$"), t = t.replace(/~T/g, "~"),
t = F.postConversion(t), L = Y = B = null, t;
};
var z = function(n) {
return r(n);
}, I = {
ol: "\\d+[.]",
ul: "[*+-]"
}, _ = "[-A-Z0-9+&@#/%?=~_|[\\]()!:,.;]", U = "[-A-Z0-9+&@#/%=~_|[\\])]", $ = new RegExp('(="|<)?\\b(https?|ftp)(://' + _ + "*" + U + ")(?=$|\\W)", "gi"), j = new RegExp(U, "i"), Z = /(?:["'*()[\]:]|~D)/g;
};
}(), define("bower-libs/pagedown-ace/Markdown.Converter", function() {}), function() {
function n() {}
function e(n, e) {
this.buttonBar = M.getElementById("wmd-button-bar" + n), this.preview = M.getElementById("wmd-preview" + n),
this.input = e;
}
function t(e) {
var t = this, i = e.input;
this.init = function() {
var n = "undefined" != typeof require ? require("ace/range").Range : ace.require("ace/range").Range;
(function(e) {
t.before = i.session.getTextRange(new n(0, 0, e.start.row, e.start.column)), t.selection = i.session.getTextRange(),
t.after = i.session.getTextRange(new n(e.end.row, e.end.column, Number.MAX_VALUE, Number.MAX_VALUE));
})(i.selection.getRange()), this.text = [ this.before, this.selection, this.after ].join(""),
this.length = this.text.length, this.setInputAreaSelectionStartEnd(), this.scrollTop = i.renderer.getScrollTop();
}, this.setInputAreaSelection = function() {
var n = "undefined" != typeof require ? require("ace/range").Range : ace.require("ace/range").Range;
i.selection.setSelectionRange(function(e, t) {
return new n(e.row, e.column, t.row, t.column);
}(i.session.doc.indexToPosition(t.start), i.session.doc.indexToPosition(t.end))),
i.renderer.scrollToY(t.scrollTop), i.focus();
}, this.setInputAreaSelectionStartEnd = function() {
t.start = t.before.length, t.end = t.after.length;
}, this.restore = function() {
for (var n = 0, e = t.before.length; e > n && t.before.charCodeAt(n) === t.text.charCodeAt(n); ) n++;
for (var a = 0, r = t.after.length, o = t.after.length - 1, s = t.text.length - 1; r > a && t.after.charCodeAt(o - a) === t.text.charCodeAt(s - a); ) a++;
var l = "undefined" != typeof require ? require("ace/range").Range : ace.require("ace/range").Range, c = function(n, e) {
return new l(n.row, n.column, e.row, e.column);
}(i.session.doc.indexToPosition(n), i.session.doc.indexToPosition(t.length - a));
i.session.replace(c, t.text.substring(n, s - a + 1)), this.setInputAreaSelection();
}, this.getChunks = function() {
var e = new n();
return e.before = t.before, e.startTag = "", e.selection = t.selection, e.endTag = "",
e.after = t.after, e.scrollTop = t.scrollTop, e;
}, this.setChunks = function(n) {
n.before = n.before + n.startTag, n.after = n.endTag + n.after, this.start = n.before.length,
this.end = n.before.length + n.selection.length, this.text = n.before + n.selection + n.after,
this.scrollTop = n.scrollTop;
}, this.init();
}
function i(n, e, t, i) {
var a, r, o, s = 3e3, c = "delayed", u = function() {
var n = 0;
return window.innerHeight ? n = window.pageYOffset : M.documentElement && M.documentElement.scrollTop ? n = M.documentElement.scrollTop : M.body && (n = M.body.scrollTop),
n;
}, d = function() {
if (e.preview) {
var t = e.input.getValue();
if (!t || t != o) {
o = t;
var i = new Date().getTime();
t = n.makeHtml(t);
var a = new Date().getTime();
r = a - i, D(t);
}
}
};
void 0 !== i && (d = i(d));
var h = function() {
if (a && (clearTimeout(a), a = void 0), "manual" !== c) {
var n = 0;
"delayed" === c && (n = r), n > s && (n = s), a = setTimeout(d, n);
}
}, p = function(n) {
return n.scrollHeight <= n.clientHeight ? 1 : n.scrollTop / (n.scrollHeight - n.clientHeight);
}, m = function() {
e.preview && (e.preview.scrollTop = (e.preview.scrollHeight - e.preview.clientHeight) * p(e.preview));
};
this.refresh = function(n) {
n ? (o = "", d()) : h();
}, this.processingTime = function() {
return r;
};
var g, f = !0, b = function(n) {
var t = e.preview, i = t.parentNode, a = t.nextSibling;
i.removeChild(t), t.innerHTML = n, a ? i.insertBefore(t, a) : i.appendChild(t);
}, y = function(n) {
e.preview.innerHTML = n;
}, v = function(n) {
if (g) return g(n);
try {
y(n), g = y;
} catch (e) {
g = b, g(n);
}
}, D = function(n) {
var i = l.getTop(e.input) - u();
if (e.preview && (v(n), t()), m(), f) return f = !1, void 0;
var a = l.getTop(e.input) - u();
S.isIE ? setTimeout(function() {
window.scrollBy(0, a - i);
}, 0) : window.scrollBy(0, a - i);
}, w = function() {
e.input.session.on("change", h), e.preview && (e.preview.scrollTop = 0);
};
w();
}
function a(n, e, i, a, r, o, s, l) {
function c(n) {
if (0 !== n.length) {
var e = n.pop();
f.commands.addCommand({
name: s(e),
bindKey: {
win: "Ctrl-" + m[e],
mac: "Command-" + m[e]
},
exec: function() {
u(b[e]);
}
}), c(n);
}
}
function u(n) {
f.focus();
var r = "wmd-link-button" == n.id || "wmd-image-button" == n.id;
if (n.textOp) {
i && !r && i.setCommandMode();
var o = new t(e);
if (!o) return;
var s = o.getChunks(), l = function() {
f.focus(), s && o.setChunks(s), o.restore(), a.refresh();
}, c = n.textOp(s, l);
c || l();
}
n.execute && n.execute(i);
}
function d(n, t) {
var i = "0px", a = "-20px", r = "-40px", o = n.getElementsByTagName("span")[0];
t ? (o.style.backgroundPosition = n.XShift + " " + i, n.onmouseover = function() {
o.style.backgroundPosition = this.XShift + " " + r;
}, n.onmouseout = function() {
o.style.backgroundPosition = this.XShift + " " + i;
}, S.isIE && (n.onmousedown = function() {
M.activeElement && M.activeElement !== e.input || (e.ieCachedRange = document.selection.createRange(),
e.ieCachedScrollTop = e.input.renderer.getScrollTop());
}), n.isHelp || (n.onclick = function() {
return this.onmouseout && this.onmouseout(), u(this), !1;
}), n.className = n.className.replace(/ disabled/g, "")) : (o.style.backgroundPosition = n.XShift + " " + a,
n.onmouseover = n.onmouseout = n.onclick = function() {}, n.className += " disabled");
}
function h(n) {
return "string" == typeof n && (n = r[n]), function() {
n.apply(r, arguments);
};
}
function p() {
var t = e.buttonBar, i = document.createElement("ul");
i.id = "wmd-button-row" + n, i.className = "wmd-button-row", i = t.appendChild(i);
var a = 0, r = function(e, t, r, o) {
var s = document.createElement("li");
s.className = "wmd-button", s.style.left = a + "px", a += 25;
var l = document.createElement("span");
return s.id = e + n, s.appendChild(l), s.title = t, s.XShift = r, o && (s.textOp = o),
d(s, !0), i.appendChild(s), s;
}, l = function(e) {
var t = document.createElement("li");
t.className = "wmd-spacer wmd-spacer" + e, t.id = "wmd-spacer" + e + n, i.appendChild(t),
a += 25;
};
if (b.bold = r("wmd-bold-button", g("bold"), "0px", h("doBold")), b.italic = r("wmd-italic-button", g("italic"), "-20px", h("doItalic")),
l(1), b.link = r("wmd-link-button", g("link"), "-40px", h(function(n, e) {
return this.doLinkOrImage(n, e, !1);
})), b.quote = r("wmd-quote-button", g("quote"), "-60px", h("doBlockquote")), b.code = r("wmd-code-button", g("code"), "-80px", h("doCode")),
b.image = r("wmd-image-button", g("image"), "-100px", h(function(n, e) {
return this.doLinkOrImage(n, e, !0);
})), l(2), b.olist = r("wmd-olist-button", g("olist"), "-120px", h(function(n, e) {
this.doList(n, e, !0);
})), b.ulist = r("wmd-ulist-button", g("ulist"), "-140px", h(function(n, e) {
this.doList(n, e, !1);
})), b.heading = r("wmd-heading-button", g("heading"), "-160px", h("doHeading")),
b.hr = r("wmd-hr-button", g("hr"), "-180px", h("doHorizontalRule")), l(3), b.undo = r("wmd-undo-button", g("undo"), "-200px", null),
b.undo.execute = function() {
f.session.getUndoManager().undo();
}, b.redo = r("wmd-redo-button", g("redo"), "-220px", null), b.redo.execute = function() {
f.session.getUndoManager().redo();
}, o) {
var c = document.createElement("li"), M = document.createElement("span");
c.appendChild(M), c.className = "wmd-button wmd-help-button", c.id = "wmd-help-button" + n,
c.XShift = "-240px", c.isHelp = !0, c.style.right = "0px", c.title = s("help"),
c.onclick = o.handler, d(c, !0), i.appendChild(c), b.help = c;
}
y.setUndoRedoButtonStates(), f.session.on("change", function() {
y.setUndoRedoButtonStates();
});
}
var g = function(n) {
return s(n) + " " + l(n);
}, f = e.input, b = {};
this.setUndoRedoButtonStates = function() {
setTimeout(function() {
d(b.undo, f.session.getUndoManager().hasUndo()), d(b.redo, f.session.getUndoManager().hasRedo());
}, 50);
};
var y = this;
p();
var v = "keydown";
S.isOpera && (v = "keypress"), c([ "bold", "italic", "link", "quote", "code", "image", "olist", "ulist", "heading", "hr" ]),
this.buttons = b, this.setButtonState = d;
}
function r(n, e) {
this.hooks = n, this.getString = e;
}
function o(n) {
return n.replace(/^\s*(.*?)(?:\s+"(.+)")?\s*$/, function(n, e, t) {
return e = e.replace(/\?.*$/, function(n) {
return n.replace(/\+/g, " ");
}), e = decodeURIComponent(e), e = encodeURI(e).replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29"),
e = e.replace(/\?.*$/, function(n) {
return n.replace(/\+/g, "%2b");
}), t && (t = t.trim ? t.trim() : t.replace(/^\s*/, "").replace(/\s*$/, ""), t = t.replace(/"/g, "quot;").replace(/\(/g, "&#40;").replace(/\)/g, "&#41;").replace(/</g, "&lt;").replace(/>/g, "&gt;")),
t ? e + ' "' + t + '"' : e;
});
}
var s = {}, l = {}, c = {}, M = window.document, u = window.RegExp, d = window.navigator, h = {
lineLength: 72
}, S = {
isIE: /msie/.test(d.userAgent.toLowerCase()),
isIE_5or6: /msie 6/.test(d.userAgent.toLowerCase()) || /msie 5/.test(d.userAgent.toLowerCase()),
isOpera: /opera/.test(d.userAgent.toLowerCase())
}, p = {
bold: "Strong <strong>",
boldexample: "strong text",
italic: "Emphasis <em>",
italicexample: "emphasized text",
link: "Hyperlink <a>",
linkdescription: "enter link description here",
linkdialog: '<p><b>Insert Hyperlink</b></p><p>http://example.com/ "optional title"</p>',
quote: "Blockquote <blockquote>",
quoteexample: "Blockquote",
code: "Code Sample <pre><code>",
codeexample: "enter code here",
image: "Image <img>",
imagedescription: "enter image description here",
imagedialog: "<p><b>Insert Image</b></p><p>http://example.com/images/diagram.jpg \"optional title\"<br><br>Need <a href='http://www.google.com/search?q=free+image+hosting' target='_blank'>free image hosting?</a></p>",
olist: "Numbered List <ol>",
ulist: "Bulleted List <ul>",
litem: "List item",
heading: "Heading <h1>/<h2>",
headingexample: "Heading",
hr: "Horizontal Rule <hr>",
undo: "Undo -",
redo: "Redo -",
help: "Markdown Editing Help"
}, m = {
bold: "B",
italic: "I",
link: "L",
quote: "Q",
code: "K",
image: "G",
olist: "O",
ulist: "U",
heading: "H",
hr: "R",
undo: "Z",
redo: "Y"
}, g = "http://", f = "http://";
Markdown.Editor = function(n, t, o) {
o = o || {}, "function" == typeof o.handler && (o = {
helpButton: o
}), o.strings = o.strings || {}, o.helpButton && (o.strings.help = o.strings.help || o.helpButton.title);
var s = function(n) {
return o.strings[n] || p[n];
}, l = function(n) {
return (/win/.test(d.platform.toLowerCase()) ? "Ctrl+" : "Command+") + m[n];
};
t = t || "";
var c = this.hooks = new Markdown.HookCollection();
c.addNoop("onPreviewRefresh"), c.addNoop("postBlockquoteCreation"), c.addFalse("insertImageDialog"),
c.addFalse("insertLinkDialog"), this.getConverter = function() {
return n;
};
var M, u, h = this;
this.run = function(d, S) {
if (!M) {
M = new e(t, d);
var p, m = new r(c, s), g = new i(n, M, function() {
c.onPreviewRefresh();
}, S);
p = new a(t, M, u, g, m, o.helpButton, s, l), p.setUndoRedoButtonStates();
var f = h.refreshPreview = function() {
g.refresh(!0);
};
f(), h.uiManager = p;
}
};
}, n.prototype.findTags = function(n, e) {
var t, i = this;
n && (t = s.extendRegExp(n, "", "$"), this.before = this.before.replace(t, function(n) {
return i.startTag = i.startTag + n, "";
}), t = s.extendRegExp(n, "^", ""), this.selection = this.selection.replace(t, function(n) {
return i.startTag = i.startTag + n, "";
})), e && (t = s.extendRegExp(e, "", "$"), this.selection = this.selection.replace(t, function(n) {
return i.endTag = n + i.endTag, "";
}), t = s.extendRegExp(e, "^", ""), this.after = this.after.replace(t, function(n) {
return i.endTag = n + i.endTag, "";
}));
}, n.prototype.trimWhitespace = function(n) {
var e, t, i = this;
n ? e = t = "" : (e = function(n) {
return i.before += n, "";
}, t = function(n) {
return i.after = n + i.after, "";
}), this.selection = this.selection.replace(/^(\s*)/, e).replace(/(\s*)$/, t);
}, n.prototype.skipLines = function(n, e, t) {
void 0 === n && (n = 1), void 0 === e && (e = 1), n++, e++;
var i, a;
if (navigator.userAgent.match(/Chrome/) && "X".match(/()./), this.selection = this.selection.replace(/(^\n*)/, ""),
this.startTag = this.startTag + u.$1, this.selection = this.selection.replace(/(\n*$)/, ""),
this.endTag = this.endTag + u.$1, this.startTag = this.startTag.replace(/(^\n*)/, ""),
this.before = this.before + u.$1, this.endTag = this.endTag.replace(/(\n*$)/, ""),
this.after = this.after + u.$1, this.before) {
for (i = a = ""; n--; ) i += "\\n?", a += "\n";
t && (i = "\\n*"), this.before = this.before.replace(new u(i + "$", ""), a);
}
if (this.after) {
for (i = a = ""; e--; ) i += "\\n?", a += "\n";
t && (i = "\\n*"), this.after = this.after.replace(new u(i, ""), a);
}
}, s.isVisible = function(n) {
return window.getComputedStyle ? "none" !== window.getComputedStyle(n, null).getPropertyValue("display") : n.currentStyle ? "none" !== n.currentStyle.display : void 0;
}, s.addEvent = function(n, e, t) {
n.attachEvent ? n.attachEvent("on" + e, t) : n.addEventListener(e, t, !1);
}, s.removeEvent = function(n, e, t) {
n.detachEvent ? n.detachEvent("on" + e, t) : n.removeEventListener(e, t, !1);
}, s.fixEolChars = function(n) {
return n = n.replace(/\r\n/g, "\n"), n = n.replace(/\r/g, "\n");
}, s.extendRegExp = function(n, e, t) {
(null === e || void 0 === e) && (e = ""), (null === t || void 0 === t) && (t = "");
var i, a = n.toString();
return a = a.replace(/\/([gim]*)$/, function(n, e) {
return i = e, "";
}), a = a.replace(/(^\/|\/$)/g, ""), a = e + a + t, new u(a, i);
}, l.getTop = function(n, e) {
var t = n.offsetTop;
if (!e) for (;n = n.offsetParent; ) t += n.offsetTop;
return t;
}, l.getHeight = function(n) {
return n.offsetHeight || n.scrollHeight;
}, l.getWidth = function(n) {
return n.offsetWidth || n.scrollWidth;
}, l.getPageSize = function() {
var n, e, t, i;
self.innerHeight && self.scrollMaxY ? (n = M.body.scrollWidth, e = self.innerHeight + self.scrollMaxY) : M.body.scrollHeight > M.body.offsetHeight ? (n = M.body.scrollWidth,
e = M.body.scrollHeight) : (n = M.body.offsetWidth, e = M.body.offsetHeight), self.innerHeight ? (t = self.innerWidth,
i = self.innerHeight) : M.documentElement && M.documentElement.clientHeight ? (t = M.documentElement.clientWidth,
i = M.documentElement.clientHeight) : M.body && (t = M.body.clientWidth, i = M.body.clientHeight);
var a = Math.max(n, t), r = Math.max(e, i);
return [ a, r, t, i ];
}, c.createBackground = function() {
var n = M.createElement("div"), e = n.style;
n.className = "wmd-prompt-background", e.position = "absolute", e.top = "0", e.zIndex = "1000",
S.isIE ? e.filter = "alpha(opacity=50)" : e.opacity = "0.5";
var t = l.getPageSize();
return e.height = t[1] + "px", S.isIE ? (e.left = M.documentElement.scrollLeft,
e.width = M.documentElement.clientWidth) : (e.left = "0", e.width = "100%"), M.body.appendChild(n),
n;
}, c.prompt = function(n, e, t) {
var i, a;
void 0 === e && (e = "");
var r = function(n) {
var e = n.charCode || n.keyCode;
27 === e && o(!0);
}, o = function(n) {
s.removeEvent(M.body, "keydown", r);
var e = a.value;
return n ? e = null : (e = e.replace(/^http:\/\/(https?|ftp):\/\//, "$1://"), /^(?:https?|ftp):\/\//.test(e) || (e = "http://" + e)),
i.parentNode.removeChild(i), t(e), !1;
}, c = function() {
i = M.createElement("div"), i.className = "wmd-prompt-dialog", i.style.padding = "10px;",
i.style.position = "fixed", i.style.width = "400px", i.style.zIndex = "1001";
var t = M.createElement("div");
t.innerHTML = n, t.style.padding = "5px", i.appendChild(t);
var c = M.createElement("form"), u = c.style;
c.onsubmit = function() {
return o(!1);
}, u.padding = "0", u.margin = "0", u.cssFloat = "left", u.width = "100%", u.textAlign = "center",
u.position = "relative", i.appendChild(c), a = M.createElement("input"), a.type = "text",
a.value = e, u = a.style, u.display = "block", u.width = "80%", u.marginLeft = u.marginRight = "auto",
c.appendChild(a);
var d = M.createElement("input");
d.type = "button", d.onclick = function() {
return o(!1);
}, d.value = "OK", u = d.style, u.margin = "10px", u.display = "inline", u.width = "7em";
var h = M.createElement("input");
h.type = "button", h.onclick = function() {
return o(!0);
}, h.value = "Cancel", u = h.style, u.margin = "10px", u.display = "inline", u.width = "7em",
c.appendChild(d), c.appendChild(h), s.addEvent(M.body, "keydown", r), i.style.top = "50%",
i.style.left = "50%", i.style.display = "block", S.isIE_5or6 && (i.style.position = "absolute",
i.style.top = M.documentElement.scrollTop + 200 + "px", i.style.left = "50%"), M.body.appendChild(i),
i.style.marginTop = -(l.getHeight(i) / 2) + "px", i.style.marginLeft = -(l.getWidth(i) / 2) + "px";
};
setTimeout(function() {
c();
var n = e.length;
if (void 0 !== a.selectionStart) a.selectionStart = 0, a.selectionEnd = n; else if (a.createTextRange) {
var t = a.createTextRange();
t.collapse(!1), t.moveStart("character", -n), t.moveEnd("character", n), t.select();
}
a.focus();
}, 0);
};
var b = r.prototype;
b.prefixes = "(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)",
b.unwrap = function(n) {
var e = new u("([^\\n])\\n(?!(\\n|" + this.prefixes + "))", "g");
n.selection = n.selection.replace(e, "$1 $2");
}, b.wrap = function(n, e) {
this.unwrap(n);
var t = new u("(.{1," + e + "})( +|$\\n?)", "gm"), i = this;
n.selection = n.selection.replace(t, function(n, e) {
return new u("^" + i.prefixes, "").test(n) ? n : e + "\n";
}), n.selection = n.selection.replace(/\s+$/, "");
}, b.doBold = function(n, e) {
return this.doBorI(n, e, 2, this.getString("boldexample"));
}, b.doItalic = function(n, e) {
return this.doBorI(n, e, 1, this.getString("italicexample"));
}, b.doBorI = function(n, e, t, i) {
n.trimWhitespace(), n.selection = n.selection.replace(/\n{2,}/g, "\n");
var a = /(\**$)/.exec(n.before)[0], r = /(^\**)/.exec(n.after)[0], o = Math.min(a.length, r.length);
if (o >= t && (2 != o || 1 != t)) n.before = n.before.replace(u("[*]{" + t + "}$", ""), ""),
n.after = n.after.replace(u("^[*]{" + t + "}", ""), ""); else if (!n.selection && r) {
n.after = n.after.replace(/^([*_]*)/, ""), n.before = n.before.replace(/(\s?)$/, "");
var s = u.$1;
n.before = n.before + r + s;
} else {
n.selection || r || (n.selection = i);
var l = 1 >= t ? "*" : "**";
n.before = n.before + l, n.after = l + n.after;
}
}, b.stripLinkDefs = function(n, e) {
return n = n.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm, function(n, t, i, a, r) {
return e[t] = n.replace(/\s*$/, ""), a ? (e[t] = n.replace(/["(](.+?)[")]$/, ""),
a + r) : "";
});
}, b.addLinkDef = function(n, e) {
var t = 0, i = {};
n.before = this.stripLinkDefs(n.before, i), n.selection = this.stripLinkDefs(n.selection, i),
n.after = this.stripLinkDefs(n.after, i);
var a = "", r = /(\[)((?:\[[^\]]*\]|[^\[\]])*)(\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g, o = function(n) {
t++, n = n.replace(/^[ ]{0,3}\[(\d+)\]:/, " [" + t + "]:"), a += "\n" + n;
}, s = function(n, e, a, l, c, M) {
return a = a.replace(r, s), i[c] ? (o(i[c]), e + a + l + t + M) : n;
};
n.before = n.before.replace(r, s), e ? o(e) : n.selection = n.selection.replace(r, s);
var l = t;
return n.after = n.after.replace(r, s), n.after && (n.after = n.after.replace(/\n*$/, "")),
n.after || (n.selection = n.selection.replace(/\n*$/, "")), n.after += "\n\n" + a,
l;
}, b.doLinkOrImage = function(n, e, t) {
n.trimWhitespace(), n.findTags(/\s*!?\[/, /\][ ]?(?:\n[ ]*)?(\[.*?\])?/);
var i;
if (!(n.endTag.length > 1 && n.startTag.length > 0)) {
if (n.selection = n.startTag + n.selection + n.endTag, n.startTag = n.endTag = "",
/\n\n/.test(n.selection)) return this.addLinkDef(n, null), void 0;
var a = this, r = function(r) {
if (i.parentNode.removeChild(i), null !== r) {
n.selection = (" " + n.selection).replace(/([^\\](?:\\\\)*)(?=[[\]])/g, "$1\\").substr(1);
var s = " [999]: " + o(r), l = a.addLinkDef(n, s);
n.startTag = t ? "![" : "[", n.endTag = "][" + l + "]", n.selection || (n.selection = t ? a.getString("imagedescription") : a.getString("linkdescription"));
}
e();
};
return i = c.createBackground(), t ? this.hooks.insertImageDialog(r) || c.prompt(this.getString("imagedialog"), g, r) : this.hooks.insertLinkDialog(r) || c.prompt(this.getString("linkdialog"), f, r),
!0;
}
n.startTag = n.startTag.replace(/!?\[/, ""), n.endTag = "", this.addLinkDef(n, null);
}, b.doAutoindent = function(n) {
var e = this, t = !1;
n.before = n.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/, "\n\n"), n.before = n.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/, "\n\n"),
n.before = n.before.replace(/(\n|^)[ \t]+\n$/, "\n\n"), n.selection || /^[ \t]*(?:\n|$)/.test(n.after) || (n.after = n.after.replace(/^[^\n]*/, function(e) {
return n.selection = e, "";
}), t = !0), /(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(n.before) && e.doList && e.doList(n),
/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(n.before) && e.doBlockquote && e.doBlockquote(n),
/(\n|^)(\t|[ ]{4,}).*\n$/.test(n.before) && e.doCode && e.doCode(n), t && (n.after = n.selection + n.after,
n.selection = "");
}, b.doBlockquote = function(n) {
n.selection = n.selection.replace(/^(\n*)([^\r]+?)(\n*)$/, function(e, t, i, a) {
return n.before += t, n.after = a + n.after, i;
}), n.before = n.before.replace(/(>[ \t]*)$/, function(e, t) {
return n.selection = t + n.selection, "";
}), n.selection = n.selection.replace(/^(\s|>)+$/, ""), n.selection = n.selection || this.getString("quoteexample");
var e, t = "", i = "";
if (n.before) {
for (var a = n.before.replace(/\n$/, "").split("\n"), r = !1, o = 0; o < a.length; o++) {
var s = !1;
e = a[o], r = r && e.length > 0, /^>/.test(e) ? (s = !0, !r && e.length > 1 && (r = !0)) : s = /^[ \t]*$/.test(e) ? !0 : r,
s ? t += e + "\n" : (i += t + e, t = "\n");
}
/(^|\n)>/.test(t) || (i += t, t = "");
}
n.startTag = t, n.before = i, n.after && (n.after = n.after.replace(/^\n?/, "\n")),
n.after = n.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/, function(e) {
return n.endTag = e, "";
});
var l = function(e) {
var t = e ? "> " : "";
n.startTag && (n.startTag = n.startTag.replace(/\n((>|\s)*)\n$/, function(n, e) {
return "\n" + e.replace(/^[ ]{0,3}>?[ \t]*$/gm, t) + "\n";
})), n.endTag && (n.endTag = n.endTag.replace(/^\n((>|\s)*)\n/, function(n, e) {
return "\n" + e.replace(/^[ ]{0,3}>?[ \t]*$/gm, t) + "\n";
}));
};
/^(?![ ]{0,3}>)/m.test(n.selection) ? (this.wrap(n, h.lineLength - 2), n.selection = n.selection.replace(/^/gm, "> "),
l(!0), n.skipLines()) : (n.selection = n.selection.replace(/^[ ]{0,3}> ?/gm, ""),
this.unwrap(n), l(!1), !/^(\n|^)[ ]{0,3}>/.test(n.selection) && n.startTag && (n.startTag = n.startTag.replace(/\n{0,2}$/, "\n\n")),
!/(\n|^)[ ]{0,3}>.*$/.test(n.selection) && n.endTag && (n.endTag = n.endTag.replace(/^\n{0,2}/, "\n\n"))),
n.selection = this.hooks.postBlockquoteCreation(n.selection), /\n/.test(n.selection) || (n.selection = n.selection.replace(/^(> *)/, function(e, t) {
return n.startTag += t, "";
}));
}, b.doCode = function(n) {
var e = /\S[ ]*$/.test(n.before), t = /^[ ]*\S/.test(n.after);
if (!t && !e || /\n/.test(n.selection)) {
n.before = n.before.replace(/[ ]{4}$/, function(e) {
return n.selection = e + n.selection, "";
});
var i = 1, a = 1;
/(\n|^)(\t|[ ]{4,}).*\n$/.test(n.before) && (i = 0), /^\n(\t|[ ]{4,})/.test(n.after) && (a = 0),
n.skipLines(i, a), n.selection ? /^[ ]{0,3}\S/m.test(n.selection) ? /\n/.test(n.selection) ? n.selection = n.selection.replace(/^/gm, " ") : n.before += " " : n.selection = n.selection.replace(/^(?:[ ]{4}|[ ]{0,3}\t)/gm, "") : (n.startTag = " ",
n.selection = this.getString("codeexample"));
} else n.trimWhitespace(), n.findTags(/`/, /`/), n.startTag || n.endTag ? n.endTag && !n.startTag ? (n.before += n.endTag,
n.endTag = "") : n.startTag = n.endTag = "" : (n.startTag = n.endTag = "`", n.selection || (n.selection = this.getString("codeexample")));
}, b.doList = function(n, e, t) {
var i = /(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/, a = /^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/, r = "-", o = 1, s = function() {
var n;
return t ? (n = " " + o + ". ", o++) : n = " " + r + " ", n;
}, l = function(n) {
return void 0 === t && (t = /^\s*\d/.test(n)), n = n.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm, function() {
return s();
});
};
if (n.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/, null), !n.before || /\n$/.test(n.before) || /^\n/.test(n.startTag) || (n.before += n.startTag,
n.startTag = ""), n.startTag) {
var c = /\d+[.]/.test(n.startTag);
if (n.startTag = "", n.selection = n.selection.replace(/\n[ ]{4}/g, "\n"), this.unwrap(n),
n.skipLines(), c && (n.after = n.after.replace(a, l)), t == c) return;
}
var M = 1;
n.before = n.before.replace(i, function(n) {
return /^\s*([*+-])/.test(n) && (r = u.$1), M = /[^\n]\n\n[^\n]/.test(n) ? 1 : 0,
l(n);
}), n.selection || (n.selection = this.getString("litem"));
var d = s(), S = 1;
n.after = n.after.replace(a, function(n) {
return S = /[^\n]\n\n[^\n]/.test(n) ? 1 : 0, l(n);
}), n.trimWhitespace(!0), n.skipLines(M, S, !0), n.startTag = d;
var p = d.replace(/./g, " ");
this.wrap(n, h.lineLength - p.length), n.selection = n.selection.replace(/\n/g, "\n" + p);
}, b.doHeading = function(n) {
if (n.selection = n.selection.replace(/\s+/g, " "), n.selection = n.selection.replace(/(^\s+|\s+$)/g, ""),
!n.selection) return n.startTag = "## ", n.selection = this.getString("headingexample"),
n.endTag = " ##", void 0;
var e = 0;
n.findTags(/#+[ ]*/, /[ ]*#+/), /#+/.test(n.startTag) && (e = u.lastMatch.length),
n.startTag = n.endTag = "", n.findTags(null, /\s?(-+|=+)/), /=+/.test(n.endTag) && (e = 1),
/-+/.test(n.endTag) && (e = 2), n.startTag = n.endTag = "", n.skipLines(1, 1);
var t = 0 == e ? 2 : e - 1;
if (t > 0) {
var i = t >= 2 ? "-" : "=", a = n.selection.length;
for (a > h.lineLength && (a = h.lineLength), n.endTag = "\n"; a--; ) n.endTag += i;
}
}, b.doHorizontalRule = function(n) {
n.startTag = "----------\n", n.selection = "", n.skipLines(2, 1, !0);
};
}(), define("pagedown-ace", function() {}), window.PR_SHOULD_USE_CONTINUATION = !0;
var prettyPrintOne, prettyPrint;
(function() {
function n(n) {
function e(n) {
var e = n.charCodeAt(0);
if (92 !== e) return e;
var t = n.charAt(1);
return e = u[t], e ? e : t >= "0" && "7" >= t ? parseInt(n.substring(1), 8) : "u" === t || "x" === t ? parseInt(n.substring(2), 16) : n.charCodeAt(1);
}
function t(n) {
if (32 > n) return (16 > n ? "\\x0" : "\\x") + n.toString(16);
var e = String.fromCharCode(n);
return "\\" === e || "-" === e || "]" === e || "^" === e ? "\\" + e : e;
}
function i(n) {
var i = n.substring(1, n.length - 1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]", "g")), a = [], r = "^" === i[0], o = [ "[" ];
r && o.push("^");
for (var s = r ? 1 : 0, l = i.length; l > s; ++s) {
var c = i[s];
if (/\\[bdsw]/i.test(c)) o.push(c); else {
var M, u = e(c);
l > s + 2 && "-" === i[s + 1] ? (M = e(i[s + 2]), s += 2) : M = u, a.push([ u, M ]),
65 > M || u > 122 || (65 > M || u > 90 || a.push([ 32 | Math.max(65, u), 32 | Math.min(M, 90) ]),
97 > M || u > 122 || a.push([ -33 & Math.max(97, u), -33 & Math.min(M, 122) ]));
}
}
a.sort(function(n, e) {
return n[0] - e[0] || e[1] - n[1];
});
for (var d = [], h = [], s = 0; s < a.length; ++s) {
var S = a[s];
S[0] <= h[1] + 1 ? h[1] = Math.max(h[1], S[1]) : d.push(h = S);
}
for (var s = 0; s < d.length; ++s) {
var S = d[s];
o.push(t(S[0])), S[1] > S[0] && (S[1] + 1 > S[0] && o.push("-"), o.push(t(S[1])));
}
return o.push("]"), o.join("");
}
function a(n) {
for (var e = n.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", "g")), a = e.length, s = [], l = 0, c = 0; a > l; ++l) {
var M = e[l];
if ("(" === M) ++c; else if ("\\" === M.charAt(0)) {
var u = +M.substring(1);
u && (c >= u ? s[u] = -1 : e[l] = t(u));
}
}
for (var l = 1; l < s.length; ++l) -1 === s[l] && (s[l] = ++r);
for (var l = 0, c = 0; a > l; ++l) {
var M = e[l];
if ("(" === M) ++c, s[c] || (e[l] = "(?:"); else if ("\\" === M.charAt(0)) {
var u = +M.substring(1);
u && c >= u && (e[l] = "\\" + s[u]);
}
}
for (var l = 0; a > l; ++l) "^" === e[l] && "^" !== e[l + 1] && (e[l] = "");
if (n.ignoreCase && o) for (var l = 0; a > l; ++l) {
var M = e[l], d = M.charAt(0);
M.length >= 2 && "[" === d ? e[l] = i(M) : "\\" !== d && (e[l] = M.replace(/[a-zA-Z]/g, function(n) {
var e = n.charCodeAt(0);
return "[" + String.fromCharCode(-33 & e, 32 | e) + "]";
}));
}
return e.join("");
}
for (var r = 0, o = !1, s = !1, l = 0, c = n.length; c > l; ++l) {
var M = n[l];
if (M.ignoreCase) s = !0; else if (/[a-z]/i.test(M.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ""))) {
o = !0, s = !1;
break;
}
}
for (var u = {
b: 8,
t: 9,
n: 10,
v: 11,
f: 12,
r: 13
}, d = [], l = 0, c = n.length; c > l; ++l) {
var M = n[l];
if (M.global || M.multiline) throw new Error("" + M);
d.push("(?:" + a(M) + ")");
}
return new RegExp(d.join("|"), s ? "gi" : "g");
}
function e(n, e) {
function t(n) {
switch (n.nodeType) {
case 1:
if (i.test(n.className)) return;
for (var l = n.firstChild; l; l = l.nextSibling) t(l);
var c = n.nodeName.toLowerCase();
("br" === c || "li" === c) && (a[s] = "\n", o[s << 1] = r++, o[1 | s++ << 1] = n);
break;
case 3:
case 4:
var M = n.nodeValue;
M.length && (M = e ? M.replace(/\r\n?/g, "\n") : M.replace(/[ \t\r\n]+/g, " "),
a[s] = M, o[s << 1] = r, r += M.length, o[1 | s++ << 1] = n);
}
}
var i = /(?:^|\s)nocode(?:\s|$)/, a = [], r = 0, o = [], s = 0;
return t(n), {
sourceCode: a.join("").replace(/\n$/, ""),
spans: o
};
}
function t(n, e, t, i) {
if (e) {
var a = {
sourceCode: e,
basePos: n
};
t(a), i.push.apply(i, a.decorations);
}
}
function i(n) {
for (var e = void 0, t = n.firstChild; t; t = t.nextSibling) {
var i = t.nodeType;
e = 1 === i ? e ? n : t : 3 === i ? $.test(t.nodeValue) ? n : e : e;
}
return e === n ? void 0 : e;
}
function a(e, i) {
var a, r = {};
(function() {
for (var t = e.concat(i), o = [], s = {}, l = 0, c = t.length; c > l; ++l) {
var M = t[l], u = M[3];
if (u) for (var d = u.length; --d >= 0; ) r[u.charAt(d)] = M;
var h = M[1], S = "" + h;
s.hasOwnProperty(S) || (o.push(h), s[S] = null);
}
o.push(/[\0-\uffff]/), a = n(o);
})();
var o = i.length, s = function(n) {
for (var e = n.sourceCode, l = n.basePos, M = [ l, B ], u = 0, d = e.match(a) || [], h = {}, S = 0, p = d.length; p > S; ++S) {
var m, g = d[S], f = h[g], b = void 0;
if ("string" == typeof f) m = !1; else {
var y = r[g.charAt(0)];
if (y) b = g.match(y[1]), f = y[0]; else {
for (var v = 0; o > v; ++v) if (y = i[v], b = g.match(y[1])) {
f = y[0];
break;
}
b || (f = B);
}
m = f.length >= 5 && "lang-" === f.substring(0, 5), !m || b && "string" == typeof b[1] || (m = !1,
f = N), m || (h[g] = f);
}
var D = u;
if (u += g.length, m) {
var w = b[1], G = g.indexOf(w), k = G + w.length;
b[2] && (k = g.length - b[2].length, G = k - w.length);
var R = f.substring(5);
t(l + D, g.substring(0, G), s, M), t(l + D + G, w, c(R, w), M), t(l + D + k, g.substring(k), s, M);
} else M.push(l + D, f);
}
n.decorations = M;
};
return s;
}
function r(n) {
var e = [], t = [];
n.tripleQuotedStrings ? e.push([ A, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, null, "'\"" ]) : n.multiLineStrings ? e.push([ A, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, "'\"`" ]) : e.push([ A, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, "\"'" ]),
n.verbatimStrings && t.push([ A, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null ]);
var i = n.hashComments;
if (i && (n.cStyleComments ? (i > 1 ? e.push([ E, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, "#" ]) : e.push([ E, /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#" ]),
t.push([ A, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, null ])) : e.push([ E, /^#[^\r\n]*/, null, "#" ])),
n.cStyleComments && (t.push([ E, /^\/\/[^\r\n]*/, null ]), t.push([ E, /^\/\*[\s\S]*?(?:\*\/|$)/, null ])),
n.regexLiterals) {
var r = "/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/";
t.push([ "lang-regex", new RegExp("^" + U + "(" + r + ")") ]);
}
var o = n.types;
o && t.push([ P, o ]);
var s = ("" + n.keywords).replace(/^ | $/g, "");
s.length && t.push([ x, new RegExp("^(?:" + s.replace(/[\s,]+/g, "|") + ")\\b"), null ]),
e.push([ B, /^\s+/, null, " \r\n  " ]);
var l = /^.[^\s\w\.$@\'\"\`\/\\]*/;
return t.push([ T, /^@[a-z_$][a-z_$@0-9]*/i, null ], [ P, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null ], [ B, /^[a-z_$][a-z_$@0-9]*/i, null ], [ T, new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*", "i"), null, "0123456789" ], [ B, /^\\[\s\S]?/, null ], [ F, l, null ]),
a(e, t);
}
function o(n, e, t) {
function i(n) {
switch (n.nodeType) {
case 1:
if (r.test(n.className)) break;
if ("br" === n.nodeName) a(n), n.parentNode && n.parentNode.removeChild(n); else for (var e = n.firstChild; e; e = e.nextSibling) i(e);
break;
case 3:
case 4:
if (t) {
var l = n.nodeValue, c = l.match(o);
if (c) {
var M = l.substring(0, c.index);
n.nodeValue = M;
var u = l.substring(c.index + c[0].length);
if (u) {
var d = n.parentNode;
d.insertBefore(s.createTextNode(u), n.nextSibling);
}
a(n), M || n.parentNode.removeChild(n);
}
}
}
}
function a(n) {
function e(n, t) {
var i = t ? n.cloneNode(!1) : n, a = n.parentNode;
if (a) {
var r = e(a, 1), o = n.nextSibling;
r.appendChild(i);
for (var s = o; s; s = o) o = s.nextSibling, r.appendChild(s);
}
return i;
}
for (;!n.nextSibling; ) if (n = n.parentNode, !n) return;
for (var t, i = e(n.nextSibling, 0); (t = i.parentNode) && 1 === t.nodeType; ) i = t;
c.push(i);
}
for (var r = /(?:^|\s)nocode(?:\s|$)/, o = /\r\n?|\n/, s = n.ownerDocument, l = s.createElement("li"); n.firstChild; ) l.appendChild(n.firstChild);
for (var c = [ l ], M = 0; M < c.length; ++M) i(c[M]);
e === (0 | e) && c[0].setAttribute("value", e);
var u = s.createElement("ol");
u.className = "linenums";
for (var d = Math.max(0, 0 | e - 1) || 0, M = 0, h = c.length; h > M; ++M) l = c[M],
l.className = "L" + (M + d) % 10, l.firstChild || l.appendChild(s.createTextNode(" ")),
u.appendChild(l);
n.appendChild(u);
}
function s(n) {
var e = /\bMSIE\s(\d+)/.exec(navigator.userAgent);
e = e && +e[1] <= 8;
var t = /\n/g, i = n.sourceCode, a = i.length, r = 0, o = n.spans, s = o.length, l = 0, c = n.decorations, M = c.length, u = 0;
c[M] = a;
var d, h;
for (h = d = 0; M > h; ) c[h] !== c[h + 2] ? (c[d++] = c[h++], c[d++] = c[h++]) : h += 2;
for (M = d, h = d = 0; M > h; ) {
for (var S = c[h], p = c[h + 1], m = h + 2; M >= m + 2 && c[m + 1] === p; ) m += 2;
c[d++] = S, c[d++] = p, h = m;
}
M = c.length = d;
var g, f = n.sourceNode;
f && (g = f.style.display, f.style.display = "none");
try {
for (;s > l; ) {
o[l];
var b, y = o[l + 2] || a, v = c[u + 2] || a, m = Math.min(y, v), D = o[l + 1];
if (1 !== D.nodeType && (b = i.substring(r, m))) {
e && (b = b.replace(t, "\r")), D.nodeValue = b;
var w = D.ownerDocument, G = w.createElement("span");
G.className = c[u + 1];
var k = D.parentNode;
k.replaceChild(G, D), G.appendChild(D), y > r && (o[l + 1] = D = w.createTextNode(i.substring(m, y)),
k.insertBefore(D, G.nextSibling));
}
r = m, r >= y && (l += 2), r >= v && (u += 2);
}
} finally {
f && (f.style.display = g);
}
}
function l(n, e) {
for (var t = e.length; --t >= 0; ) {
var i = e[t];
Z.hasOwnProperty(i) ? h.console && console.warn("cannot override language handler %s", i) : Z[i] = n;
}
}
function c(n, e) {
return n && Z.hasOwnProperty(n) || (n = /^\s*</.test(e) ? "default-markup" : "default-code"),
Z[n];
}
function M(n) {
var t = n.langExtension;
try {
var i = e(n.sourceNode, n.pre), a = i.sourceCode;
n.sourceCode = a, n.spans = i.spans, n.basePos = 0, c(t, a)(n), s(n);
} catch (r) {
h.console && console.log(r && r.stack ? r.stack : r);
}
}
function u(n, e, t) {
var i = document.createElement("pre");
i.innerHTML = n, t && o(i, t, !0);
var a = {
langExtension: e,
numberLines: t,
sourceNode: i,
pre: 1
};
return M(a), i.innerHTML;
}
function d(n) {
function e(n) {
return document.getElementsByTagName(n);
}
function t() {
for (var e = h.PR_SHOULD_USE_CONTINUATION ? u.now() + 250 : 1/0; S < r.length && u.now() < e; S++) {
var a = r[S], s = a.className;
if (m.test(s) && !g.test(s)) {
for (var l = !1, c = a.parentNode; c; c = c.parentNode) {
var v = c.tagName;
if (y.test(v) && c.className && m.test(c.className)) {
l = !0;
break;
}
}
if (!l) {
a.className += " prettyprinted";
var D, w = s.match(p);
!w && (D = i(a)) && b.test(D.tagName) && (w = D.className.match(p)), w && (w = w[1]);
var G;
if (f.test(a.tagName)) G = 1; else {
var k = a.currentStyle, R = k ? k.whiteSpace : document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(a, null).getPropertyValue("white-space") : 0;
G = R && "pre" === R.substring(0, 3);
}
var C = a.className.match(/\blinenums\b(?::(\d+))?/);
C = C ? C[1] && C[1].length ? +C[1] : !0 : !1, C && o(a, C, G), d = {
langExtension: w,
sourceNode: a,
numberLines: C,
pre: G
}, M(d);
}
}
}
S < r.length ? setTimeout(t, 250) : n && n();
}
for (var a = [ e("pre"), e("code"), e("xmp") ], r = [], s = 0; s < a.length; ++s) for (var l = 0, c = a[s].length; c > l; ++l) r.push(a[s][l]);
a = null;
var u = Date;
u.now || (u = {
now: function() {
return +new Date();
}
});
var d, S = 0, p = /\blang(?:uage)?-([\w.]+)(?!\S)/, m = /\bprettyprint\b/, g = /\bprettyprinted\b/, f = /pre|xmp/i, b = /^code$/i, y = /^(?:pre|code|xmp)$/i;
t();
}
var h = window, S = [ "break,continue,do,else,for,if,return,while" ], p = [ S, "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile" ], m = [ p, "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof" ], g = [ m, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where" ], f = [ m, "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient" ], b = [ f, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where" ], y = "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes", v = [ m, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN" ], D = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END", w = [ S, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None" ], G = [ S, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END" ], k = [ S, "case,done,elif,esac,eval,fi,function,in,local,set,then,until" ], R = [ g, b, v, D + w, G, k ], C = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, A = "str", x = "kwd", E = "com", P = "typ", T = "lit", F = "pun", B = "pln", Y = "tag", L = "dec", N = "src", z = "atn", I = "atv", _ = "nocode", U = "(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*", $ = /\S/, j = r({
keywords: R,
hashComments: !0,
cStyleComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), Z = {};
l(j, [ "default-code" ]), l(a([], [ [ B, /^[^<?]+/ ], [ L, /^<!\w[^>]*(?:>|$)/ ], [ E, /^<\!--[\s\S]*?(?:-\->|$)/ ], [ "lang-", /^<\?([\s\S]+?)(?:\?>|$)/ ], [ "lang-", /^<%([\s\S]+?)(?:%>|$)/ ], [ F, /^(?:<[%?]|[%?]>)/ ], [ "lang-", /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i ], [ "lang-js", /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i ], [ "lang-css", /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i ], [ "lang-in.tag", /^(<\/?[a-z][^<>]*>)/i ] ]), [ "default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl" ]),
l(a([ [ B, /^[\s]+/, null, " \r\n" ], [ I, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, "\"'" ] ], [ [ Y, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i ], [ z, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i ], [ "lang-uq.val", /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/ ], [ F, /^[=<>\/]+/ ], [ "lang-js", /^on\w+\s*=\s*\"([^\"]+)\"/i ], [ "lang-js", /^on\w+\s*=\s*\'([^\']+)\'/i ], [ "lang-js", /^on\w+\s*=\s*([^\"\'>\s]+)/i ], [ "lang-css", /^style\s*=\s*\"([^\"]+)\"/i ], [ "lang-css", /^style\s*=\s*\'([^\']+)\'/i ], [ "lang-css", /^style\s*=\s*([^\"\'>\s]+)/i ] ]), [ "in.tag" ]),
l(a([], [ [ I, /^[\s\S]+/ ] ]), [ "uq.val" ]), l(r({
keywords: g,
hashComments: !0,
cStyleComments: !0,
types: C
}), [ "c", "cc", "cpp", "cxx", "cyc", "m" ]), l(r({
keywords: "null,true,false"
}), [ "json" ]), l(r({
keywords: b,
hashComments: !0,
cStyleComments: !0,
verbatimStrings: !0,
types: C
}), [ "cs" ]), l(r({
keywords: f,
cStyleComments: !0
}), [ "java" ]), l(r({
keywords: k,
hashComments: !0,
multiLineStrings: !0
}), [ "bsh", "csh", "sh" ]), l(r({
keywords: w,
hashComments: !0,
multiLineStrings: !0,
tripleQuotedStrings: !0
}), [ "cv", "py" ]), l(r({
keywords: D,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), [ "perl", "pl", "pm" ]), l(r({
keywords: G,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), [ "rb" ]), l(r({
keywords: v,
cStyleComments: !0,
regexLiterals: !0
}), [ "js" ]), l(r({
keywords: y,
hashComments: 3,
cStyleComments: !0,
multilineStrings: !0,
tripleQuotedStrings: !0,
regexLiterals: !0
}), [ "coffee" ]), l(a([], [ [ A, /^[\s\S]+/ ] ]), [ "regex" ]);
var O = h.PR = {
createSimpleLexer: a,
registerLangHandler: l,
sourceDecorator: r,
PR_ATTRIB_NAME: z,
PR_ATTRIB_VALUE: I,
PR_COMMENT: E,
PR_DECLARATION: L,
PR_KEYWORD: x,
PR_LITERAL: T,
PR_NOCODE: _,
PR_PLAIN: B,
PR_PUNCTUATION: F,
PR_SOURCE: N,
PR_STRING: A,
PR_TAG: Y,
PR_TYPE: P,
prettyPrintOne: h.prettyPrintOne = u,
prettyPrint: h.prettyPrint = d
};
"function" == typeof define && define.amd && define("google-code-prettify", [], function() {
return O;
});
})();
var hljs = new function() {
function n(n) {
return n.replace(/&/gm, "&amp;").replace(/</gm, "&lt;").replace(/>/gm, "&gt;");
}
function e(n) {
for (var e = n.firstChild; e; e = e.nextSibling) {
if ("CODE" == e.nodeName) return e;
if (3 != e.nodeType || !e.nodeValue.match(/\s+/)) break;
}
}
function t(n, e) {
return Array.prototype.map.call(n.childNodes, function(n) {
return 3 == n.nodeType ? e ? n.nodeValue.replace(/\n/g, "") : n.nodeValue : "BR" == n.nodeName ? "\n" : t(n, e);
}).join("");
}
function i(n) {
var e = (n.className + " " + n.parentNode.className).split(/\s+/);
e = e.map(function(n) {
return n.replace(/^language-/, "");
});
for (var t = 0; t < e.length; t++) if (h[e[t]] || "no-highlight" == e[t]) return e[t];
}
function a(n) {
var e = [];
return function t(n, i) {
for (var a = n.firstChild; a; a = a.nextSibling) 3 == a.nodeType ? i += a.nodeValue.length : "BR" == a.nodeName ? i += 1 : 1 == a.nodeType && (e.push({
event: "start",
offset: i,
node: a
}), i = t(a, i), e.push({
event: "stop",
offset: i,
node: a
}));
return i;
}(n, 0), e;
}
function r(e, t, i) {
function a() {
return e.length && t.length ? e[0].offset != t[0].offset ? e[0].offset < t[0].offset ? e : t : "start" == t[0].event ? e : t : e.length ? e : t;
}
function r(e) {
function t(e) {
return " " + e.nodeName + '="' + n(e.value) + '"';
}
return "<" + e.nodeName + Array.prototype.map.call(e.attributes, t).join("") + ">";
}
for (var o = 0, s = "", l = []; e.length || t.length; ) {
var c = a().splice(0, 1)[0];
if (s += n(i.substr(o, c.offset - o)), o = c.offset, "start" == c.event) s += r(c.node),
l.push(c.node); else if ("stop" == c.event) {
var M, u = l.length;
do u--, M = l[u], s += "</" + M.nodeName.toLowerCase() + ">"; while (M != c.node);
for (l.splice(u, 1); u < l.length; ) s += r(l[u]), u++;
}
}
return s + n(i.substr(o));
}
function o(n) {
function e(e, t) {
return RegExp(e, "m" + (n.cI ? "i" : "") + (t ? "g" : ""));
}
function t(n, i) {
function a(n, e) {
e.split(" ").forEach(function(e) {
var t = e.split("|");
o[t[0]] = [ n, t[1] ? Number(t[1]) : 1 ], r.push(t[0]);
});
}
if (!n.compiled) {
n.compiled = !0;
var r = [];
if (n.k) {
var o = {};
if (n.lR = e(n.l || hljs.IR, !0), "string" == typeof n.k) a("keyword", n.k); else for (var s in n.k) n.k.hasOwnProperty(s) && a(s, n.k[s]);
n.k = o;
}
i && (n.bWK && (n.b = "\\b(" + r.join("|") + ")\\s"), n.bR = e(n.b ? n.b : "\\B|\\b"),
n.e || n.eW || (n.e = "\\B|\\b"), n.e && (n.eR = e(n.e)), n.tE = n.e || "", n.eW && i.tE && (n.tE += (n.e ? "|" : "") + i.tE)),
n.i && (n.iR = e(n.i)), void 0 === n.r && (n.r = 1), n.c || (n.c = []);
for (var l = 0; l < n.c.length; l++) "self" == n.c[l] && (n.c[l] = n), t(n.c[l], n);
n.starts && t(n.starts, i);
for (var c = [], l = 0; l < n.c.length; l++) c.push(n.c[l].b);
n.tE && c.push(n.tE), n.i && c.push(n.i), n.t = c.length ? e(c.join("|"), !0) : {
exec: function() {
return null;
}
};
}
}
t(n);
}
function s(e, t) {
function i(n, e) {
for (var t = 0; t < e.c.length; t++) {
var i = e.c[t].bR.exec(n);
if (i && 0 == i.index) return e.c[t];
}
}
function a(n, e) {
return n.e && n.eR.test(e) ? n : n.eW ? a(n.parent, e) : void 0;
}
function r(n, e) {
return e.i && e.iR.test(n);
}
function c(n, e) {
var t = m.cI ? e[0].toLowerCase() : e[0];
return n.k.hasOwnProperty(t) && n.k[t];
}
function M() {
var e = n(f);
if (!g.k) return e;
var t = "", i = 0;
g.lR.lastIndex = 0;
for (var a = g.lR.exec(e); a; ) {
t += e.substr(i, a.index - i);
var r = c(g, a);
r ? (y += r[1], t += '<span class="' + r[0] + '">' + a[0] + "</span>") : t += a[0],
i = g.lR.lastIndex, a = g.lR.exec(e);
}
return t + e.substr(i);
}
function u() {
if (g.sL && !h[g.sL]) return n(f);
var e = g.sL ? s(g.sL, f) : l(f);
return g.r > 0 && (y += e.keyword_count, b += e.r), '<span class="' + e.language + '">' + e.value + "</span>";
}
function d() {
return void 0 !== g.sL ? u() : M();
}
function S(e, t) {
var i = e.cN ? '<span class="' + e.cN + '">' : "";
e.rB ? (v += i, f = "") : e.eB ? (v += n(t) + i, f = "") : (v += i, f = t), g = Object.create(e, {
parent: {
value: g
}
}), b += e.r;
}
function p(e, t) {
if (f += e, void 0 === t) return v += d(), 0;
var o = i(t, g);
if (o) return v += d(), S(o, t), o.rB ? 0 : t.length;
var s = a(g, t);
if (s) {
s.rE || s.eE || (f += t), v += d();
do g.cN && (v += "</span>"), g = g.parent; while (g != s.parent);
return s.eE && (v += n(t)), f = "", s.starts && S(s.starts, ""), s.rE ? 0 : t.length;
}
if (r(t, g)) throw "Illegal";
return f += t, t.length || 1;
}
var m = h[e];
o(m);
var g = m, f = "", b = 0, y = 0, v = "";
try {
for (var D, w, G = 0; ;) {
if (g.t.lastIndex = G, D = g.t.exec(t), !D) break;
w = p(t.substr(G, D.index - G), D[0]), G = D.index + w;
}
return p(t.substr(G)), {
r: b,
keyword_count: y,
value: v,
language: e
};
} catch (k) {
if ("Illegal" == k) return {
r: 0,
keyword_count: 0,
value: n(t)
};
throw k;
}
}
function l(e) {
var t = {
keyword_count: 0,
r: 0,
value: n(e)
}, i = t;
for (var a in h) if (h.hasOwnProperty(a)) {
var r = s(a, e);
r.language = a, r.keyword_count + r.r > i.keyword_count + i.r && (i = r), r.keyword_count + r.r > t.keyword_count + t.r && (i = t,
t = r);
}
return i.language && (t.second_best = i), t;
}
function c(n, e, t) {
return e && (n = n.replace(/^((<[^>]+>|\t)+)/gm, function(n, t) {
return t.replace(/\t/g, e);
})), t && (n = n.replace(/\n/g, "<br>")), n;
}
function M(n, e, o) {
var M = t(n, o), u = i(n);
if ("no-highlight" != u) {
var d = u ? s(u, M) : l(M);
u = d.language;
var h = a(n);
if (h.length) {
var S = document.createElement("pre");
S.innerHTML = d.value, d.value = r(h, a(S), M);
}
d.value = c(d.value, e, o);
var p = n.className;
p.match("(\\s|^)(language-)?" + u + "(\\s|$)") || (p = p ? p + " " + u : u), n.innerHTML = d.value,
n.className = p, n.result = {
language: u,
kw: d.keyword_count,
re: d.r
}, d.second_best && (n.second_best = {
language: d.second_best.language,
kw: d.second_best.keyword_count,
re: d.second_best.r
});
}
}
function u() {
u.called || (u.called = !0, Array.prototype.map.call(document.getElementsByTagName("pre"), e).filter(Boolean).forEach(function(n) {
M(n, hljs.tabReplace);
}));
}
function d() {
window.addEventListener("DOMContentLoaded", u, !1), window.addEventListener("load", u, !1);
}
var h = {};
this.LANGUAGES = h, this.highlight = s, this.highlightAuto = l, this.fixMarkup = c,
this.highlightBlock = M, this.initHighlighting = u, this.initHighlightingOnLoad = d,
this.IR = "[a-zA-Z][a-zA-Z0-9_]*", this.UIR = "[a-zA-Z_][a-zA-Z0-9_]*", this.NR = "\\b\\d+(\\.\\d+)?",
this.CNR = "(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
this.BNR = "\\b(0b[01]+)", this.RSR = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
this.BE = {
b: "\\\\[\\s\\S]",
r: 0
}, this.ASM = {
cN: "string",
b: "'",
e: "'",
i: "\\n",
c: [ this.BE ],
r: 0
}, this.QSM = {
cN: "string",
b: '"',
e: '"',
i: "\\n",
c: [ this.BE ],
r: 0
}, this.CLCM = {
cN: "comment",
b: "//",
e: "$"
}, this.CBLCLM = {
cN: "comment",
b: "/\\*",
e: "\\*/"
}, this.HCM = {
cN: "comment",
b: "#",
e: "$"
}, this.NM = {
cN: "number",
b: this.NR,
r: 0
}, this.CNM = {
cN: "number",
b: this.CNR,
r: 0
}, this.BNM = {
cN: "number",
b: this.BNR,
r: 0
}, this.inherit = function(n, e) {
var t = {};
for (var i in n) t[i] = n[i];
if (e) for (var i in e) t[i] = e[i];
return t;
};
}();
if (hljs.LANGUAGES.glsl = function(n) {
return {
k: {
keyword: "atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",
built_in: "gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",
literal: "true false"
},
i: '"',
c: [ n.CLCM, n.CBLCLM, n.CNM, {
cN: "preprocessor",
b: "#",
e: "$"
} ]
};
}(hljs), hljs.LANGUAGES.cs = function(n) {
return {
k: "abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while ascending descending from get group into join let orderby partial select set value var where yield",
c: [ {
cN: "comment",
b: "///",
e: "$",
rB: !0,
c: [ {
cN: "xmlDocTag",
b: "///|<!--|-->"
}, {
cN: "xmlDocTag",
b: "</?",
e: ">"
} ]
}, n.CLCM, n.CBLCLM, {
cN: "preprocessor",
b: "#",
e: "$",
k: "if else elif endif define undef warning error line region endregion pragma checksum"
}, {
cN: "string",
b: '@"',
e: '"',
c: [ {
b: '""'
} ]
}, n.ASM, n.QSM, n.CNM ]
};
}(hljs), hljs.LANGUAGES.rsl = function(n) {
return {
k: {
keyword: "float color point normal vector matrix while for if do return else break extern continue",
built_in: "abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"
},
i: "</",
c: [ n.CLCM, n.CBLCLM, n.QSM, n.ASM, n.CNM, {
cN: "preprocessor",
b: "#",
e: "$"
}, {
cN: "shader",
bWK: !0,
e: "\\(",
k: "surface displacement light volume imager"
}, {
cN: "shading",
bWK: !0,
e: "\\(",
k: "illuminate illuminance gather"
} ]
};
}(hljs), hljs.LANGUAGES["erlang-repl"] = function(n) {
return {
k: {
special_functions: "spawn spawn_link self",
reserved: "after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"
},
c: [ {
cN: "prompt",
b: "^[0-9]+> ",
r: 10
}, {
cN: "comment",
b: "%",
e: "$"
}, {
cN: "number",
b: "\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",
r: 0
}, n.ASM, n.QSM, {
cN: "constant",
b: "\\?(::)?([A-Z]\\w*(::)?)+"
}, {
cN: "arrow",
b: "->"
}, {
cN: "ok",
b: "ok"
}, {
cN: "exclamation_mark",
b: "!"
}, {
cN: "function_or_atom",
b: "(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",
r: 0
}, {
cN: "variable",
b: "[A-Z][a-zA-Z0-9_']*",
r: 0
} ]
};
}(hljs), hljs.LANGUAGES["1c"] = function(n) {
var e = "[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*", t = "возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт", i = "ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон", a = {
cN: "dquote",
b: '""'
}, r = {
cN: "string",
b: '"',
e: '"|$',
c: [ a ],
r: 0
}, o = {
cN: "string",
b: "\\|",
e: '"|$',
c: [ a ]
};
return {
cI: !0,
l: e,
k: {
keyword: t,
built_in: i
},
c: [ n.CLCM, n.NM, r, o, {
cN: "function",
b: "(процедура|функция)",
e: "$",
l: e,
k: "процедура функция",
c: [ {
cN: "title",
b: e
}, {
cN: "tail",
eW: !0,
c: [ {
cN: "params",
b: "\\(",
e: "\\)",
l: e,
k: "знач",
c: [ r, o ]
}, {
cN: "export",
b: "экспорт",
eW: !0,
l: e,
k: "экспорт",
c: [ n.CLCM ]
} ]
}, n.CLCM ]
}, {
cN: "preprocessor",
b: "#",
e: "$"
}, {
cN: "date",
b: "'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"
} ]
};
}(hljs), hljs.LANGUAGES.objectivec = function(n) {
var e = {
keyword: "int float while private char catch export sizeof typedef const struct for union unsigned long volatile static protected bool mutable if public do return goto void enum else break extern class asm case short default double throw register explicit signed typename try this switch continue wchar_t inline readonly assign property protocol self synchronized end synthesize id optional required implementation nonatomic interface super unichar finally dynamic IBOutlet IBAction selector strong weak readonly",
literal: "false true FALSE TRUE nil YES NO NULL",
built_in: "NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection class UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"
};
return {
k: e,
i: "</",
c: [ n.CLCM, n.CBLCLM, n.CNM, n.QSM, {
cN: "string",
b: "'",
e: "[^\\\\]'",
i: "[^\\\\][^']"
}, {
cN: "preprocessor",
b: "#import",
e: "$",
c: [ {
cN: "title",
b: '"',
e: '"'
}, {
cN: "title",
b: "<",
e: ">"
} ]
}, {
cN: "preprocessor",
b: "#",
e: "$"
}, {
cN: "class",
bWK: !0,
e: "({|$)",
k: "interface class protocol implementation",
c: [ {
cN: "id",
b: n.UIR
} ]
}, {
cN: "variable",
b: "\\." + n.UIR
} ]
};
}(hljs), hljs.LANGUAGES.scala = function(n) {
var e = {
cN: "annotation",
b: "@[A-Za-z]+"
}, t = {
cN: "string",
b: 'u?r?"""',
e: '"""',
r: 10
};
return {
k: "type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",
c: [ {
cN: "javadoc",
b: "/\\*\\*",
e: "\\*/",
c: [ {
cN: "javadoctag",
b: "@[A-Za-z]+"
} ],
r: 10
}, n.CLCM, n.CBLCLM, n.ASM, n.QSM, t, {
cN: "class",
b: "((case )?class |object |trait )",
e: "({|$)",
i: ":",
k: "case class trait object",
c: [ {
bWK: !0,
k: "extends with",
r: 10
}, {
cN: "title",
b: n.UIR
}, {
cN: "params",
b: "\\(",
e: "\\)",
c: [ n.ASM, n.QSM, t, e ]
} ]
}, n.CNM, e ]
};
}(hljs), hljs.LANGUAGES.clojure = function(n) {
var e = {
built_in: "def cond apply if-not if-let if not not= = &lt; < > &lt;= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"
}, t = "[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+", i = "[\\s:\\(\\{]+\\d+(\\.\\d+)?", a = {
cN: "number",
b: i,
r: 0
}, r = {
cN: "string",
b: '"',
e: '"',
c: [ n.BE ],
r: 0
}, o = {
cN: "comment",
b: ";",
e: "$",
r: 0
}, s = {
cN: "collection",
b: "[\\[\\{]",
e: "[\\]\\}]"
}, l = {
cN: "comment",
b: "\\^" + t
}, c = {
cN: "comment",
b: "\\^\\{",
e: "\\}"
}, M = {
cN: "attribute",
b: "[:]" + t
}, u = {
cN: "list",
b: "\\(",
e: "\\)",
r: 0
}, d = {
eW: !0,
eE: !0,
k: {
literal: "true false nil"
},
r: 0
}, h = {
k: e,
l: t,
cN: "title",
b: t,
starts: d
};
return u.c = [ {
cN: "comment",
b: "comment"
}, h ], d.c = [ u, r, l, c, o, M, s, a ], s.c = [ u, r, l, o, M, s, a ], {
i: "\\S",
c: [ o, u ]
};
}(hljs), hljs.LANGUAGES.perl = function(n) {
var e = "getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when", t = {
cN: "subst",
b: "[$@]\\{",
e: "\\}",
k: e,
r: 10
}, i = {
cN: "variable",
b: "\\$\\d"
}, a = {
cN: "variable",
b: "[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"
}, r = [ n.BE, t, i, a ], o = {
b: "->",
c: [ {
b: n.IR
}, {
b: "{",
e: "}"
} ]
}, s = {
cN: "comment",
b: "^(__END__|__DATA__)",
e: "\\n$",
r: 5
}, l = [ i, a, n.HCM, s, {
cN: "comment",
b: "^\\=\\w",
e: "\\=cut",
eW: !0
}, o, {
cN: "string",
b: "q[qwxr]?\\s*\\(",
e: "\\)",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\[",
e: "\\]",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\{",
e: "\\}",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\|",
e: "\\|",
c: r,
r: 5
}, {
cN: "string",
b: "q[qwxr]?\\s*\\<",
e: "\\>",
c: r,
r: 5
}, {
cN: "string",
b: "qw\\s+q",
e: "q",
c: r,
r: 5
}, {
cN: "string",
b: "'",
e: "'",
c: [ n.BE ],
r: 0
}, {
cN: "string",
b: '"',
e: '"',
c: r,
r: 0
}, {
cN: "string",
b: "`",
e: "`",
c: [ n.BE ]
}, {
cN: "string",
b: "{\\w+}",
r: 0
}, {
cN: "string",
b: "-?\\w+\\s*\\=\\>",
r: 0
}, {
cN: "number",
b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
r: 0
}, {
b: "(" + n.RSR + "|\\b(split|return|print|reverse|grep)\\b)\\s*",
k: "split return print reverse grep",
r: 0,
c: [ n.HCM, s, {
cN: "regexp",
b: "(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",
r: 10
}, {
cN: "regexp",
b: "(m|qr)?/",
e: "/[a-z]*",
c: [ n.BE ],
r: 0
} ]
}, {
cN: "sub",
bWK: !0,
e: "(\\s*\\(.*?\\))?[;{]",
k: "sub",
r: 5
}, {
cN: "operator",
b: "-\\w\\b",
r: 0
} ];
return t.c = l, o.c[1].c = l, {
k: e,
c: l
};
}(hljs), hljs.LANGUAGES.applescript = function(n) {
var e = n.inherit(n.QSM, {
i: ""
}), t = {
cN: "title",
b: n.UIR
}, i = {
cN: "params",
b: "\\(",
e: "\\)",
c: [ "self", n.CNM, e ]
}, a = [ {
cN: "comment",
b: "--",
e: "$"
}, {
cN: "comment",
b: "\\(\\*",
e: "\\*\\)",
c: [ "self", {
b: "--",
e: "$"
} ]
}, n.HCM ];
return {
k: {
keyword: "about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",
constant: "AppleScript false linefeed return pi quote result space tab true",
type: "alias application boolean class constant date file integer list number real record string text",
command: "activate beep count delay launch log offset read round run say summarize write",
property: "character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"
},
c: [ e, n.CNM, {
cN: "type",
b: "\\bPOSIX file\\b"
}, {
cN: "command",
b: "\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"
}, {
cN: "constant",
b: "\\b(text item delimiters|current application|missing value)\\b"
}, {
cN: "keyword",
b: "\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"
}, {
cN: "property",
b: "\\b(POSIX path|(date|time) string|quoted form)\\b"
}, {
cN: "function_start",
bWK: !0,
k: "on",
i: "[${=;\\n]",
c: [ t, i ]
} ].concat(a)
};
}(hljs), hljs.LANGUAGES.java = function(n) {
return {
k: "false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",
c: [ {
cN: "javadoc",
b: "/\\*\\*",
e: "\\*/",
c: [ {
cN: "javadoctag",
b: "@[A-Za-z]+"
} ],
r: 10
}, n.CLCM, n.CBLCLM, n.ASM, n.QSM, {
cN: "class",
bWK: !0,
e: "{",
k: "class interface",
i: ":",
c: [ {
bWK: !0,
k: "extends implements",
r: 10
}, {
cN: "title",
b: n.UIR
} ]
}, n.CNM, {
cN: "annotation",
b: "@[A-Za-z]+"
} ]
};
}(hljs), hljs.LANGUAGES.vhdl = function(n) {
return {
cI: !0,
k: {
keyword: "abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",
typename: "boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"
},
i: "{",
c: [ n.CBLCLM, {
cN: "comment",
b: "--",
e: "$"
}, n.QSM, n.CNM, {
cN: "literal",
b: "'(U|X|0|1|Z|W|L|H|-)'",
c: [ n.BE ]
}, {
cN: "attribute",
b: "'[A-Za-z](_?[A-Za-z0-9])*",
c: [ n.BE ]
} ]
};
}(hljs), hljs.LANGUAGES.brainfuck = function() {
return {
c: [ {
cN: "comment",
b: "[^\\[\\]\\.,\\+\\-<> \r\n]",
eE: !0,
e: "[\\[\\]\\.,\\+\\-<> \r\n]",
r: 0
}, {
cN: "title",
b: "[\\[\\]]",
r: 0
}, {
cN: "string",
b: "[\\.,]"
}, {
cN: "literal",
b: "[\\+\\-]"
} ]
};
}(hljs), hljs.LANGUAGES.go = function(n) {
var e = {
keyword: "break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",
constant: "true false iota nil",
typename: "bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",
built_in: "append cap close complex copy imag len make new panic print println real recover delete"
};
return {
k: e,
i: "</",
c: [ n.CLCM, n.CBLCLM, n.QSM, {
cN: "string",
b: "'",
e: "[^\\\\]'",
r: 0
}, {
cN: "string",
b: "`",
e: "`"
}, {
cN: "number",
b: "[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?",
r: 0
}, n.CNM ]
};
}(hljs), hljs.LANGUAGES.delphi = function(n) {
var e = "and safecall cdecl then string exports library not pascal set virtual file in array label packed end. index while const raise for to implementation with except overload destructor downto finally program exit unit inherited override if type until function do begin repeat goto nil far initialization object else var uses external resourcestring interface end finalization class asm mod case on shr shl of register xorwrite threadvar try record near stored constructor stdcall inline div out or procedure", t = "safecall stdcall pascal stored const implementation finalization except to finally program inherited override then exports string read not mod shr try div shl set library message packed index for near overload label downto exit public goto interface asm on of constructor or private array unit raise destructor var type until function else external with case default record while protected property procedure published and cdecl do threadvar file in if end virtual write far out begin repeat nil initialization object uses resourcestring class register xorwrite inline static", i = {
cN: "comment",
b: "{",
e: "}",
r: 0
}, a = {
cN: "comment",
b: "\\(\\*",
e: "\\*\\)",
r: 10
}, r = {
cN: "string",
b: "'",
e: "'",
c: [ {
b: "''"
} ],
r: 0
}, o = {
cN: "string",
b: "(#\\d+)+"
}, s = {
cN: "function",
bWK: !0,
e: "[:;]",
k: "function constructor|10 destructor|10 procedure|10",
c: [ {
cN: "title",
b: n.IR
}, {
cN: "params",
b: "\\(",
e: "\\)",
k: e,
c: [ r, o ]
}, i, a ]
};
return {
cI: !0,
k: e,
i: '("|\\$[G-Zg-z]|\\/\\*|</)',
c: [ i, a, n.CLCM, r, o, n.NM, s, {
cN: "class",
b: "=\\bclass\\b",
e: "end;",
k: t,
c: [ r, o, i, a, n.CLCM, s ]
} ]
};
}(hljs), hljs.LANGUAGES.vala = function(n) {
return {
k: {
keyword: "char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",
built_in: "DBus GLib CCode Gee Object",
literal: "false true null"
},
c: [ {
cN: "class",
bWK: !0,
e: "{",
k: "class interface delegate namespace",
c: [ {
bWK: !0,
k: "extends implements"
}, {
cN: "title",
b: n.UIR
} ]
}, n.CLCM, n.CBLCLM, {
cN: "string",
b: '"""',
e: '"""',
r: 5
}, n.ASM, n.QSM, n.CNM, {
cN: "preprocessor",
b: "^#",
e: "$",
r: 2
}, {
cN: "constant",
b: " [A-Z_]+ ",
r: 0
} ]
};
}(hljs), hljs.LANGUAGES.rib = function(n) {
return {
k: "ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",
i: "</",
c: [ n.HCM, n.CNM, n.ASM, n.QSM ]
};
}(hljs), hljs.LANGUAGES.ruby = function(n) {
var e = "[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?", t = "[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?", i = {
keyword: "and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"
}, a = {
cN: "yardoctag",
b: "@[A-Za-z]+"
}, r = [ {
cN: "comment",
b: "#",
e: "$",
c: [ a ]
}, {
cN: "comment",
b: "^\\=begin",
e: "^\\=end",
c: [ a ],
r: 10
}, {
cN: "comment",
b: "^__END__",
e: "\\n$"
} ], o = {
cN: "subst",
b: "#\\{",
e: "}",
l: e,
k: i
}, s = [ n.BE, o ], l = [ {
cN: "string",
b: "'",
e: "'",
c: s,
r: 0
}, {
cN: "string",
b: '"',
e: '"',
c: s,
r: 0
}, {
cN: "string",
b: "%[qw]?\\(",
e: "\\)",
c: s
}, {
cN: "string",
b: "%[qw]?\\[",
e: "\\]",
c: s
}, {
cN: "string",
b: "%[qw]?{",
e: "}",
c: s
}, {
cN: "string",
b: "%[qw]?<",
e: ">",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?/",
e: "/",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?%",
e: "%",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?-",
e: "-",
c: s,
r: 10
}, {
cN: "string",
b: "%[qw]?\\|",
e: "\\|",
c: s,
r: 10
} ], c = {
cN: "function",
bWK: !0,
e: " |$|;",
k: "def",
c: [ {
cN: "title",
b: t,
l: e,
k: i
}, {
cN: "params",
b: "\\(",
e: "\\)",
l: e,
k: i
} ].concat(r)
}, M = r.concat(l.concat([ {
cN: "class",
bWK: !0,
e: "$|;",
k: "class module",
c: [ {
cN: "title",
b: "[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",
r: 0
}, {
cN: "inheritance",
b: "<\\s*",
c: [ {
cN: "parent",
b: "(" + n.IR + "::)?" + n.IR
} ]
} ].concat(r)
}, c, {
cN: "constant",
b: "(::)?(\\b[A-Z]\\w*(::)?)+",
r: 0
}, {
cN: "symbol",
b: ":",
c: l.concat([ {
b: t
} ]),
r: 0
}, {
cN: "symbol",
b: e + ":",
r: 0
}, {
cN: "number",
b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
r: 0
}, {
cN: "number",
b: "\\?\\w"
}, {
cN: "variable",
b: "(\\$\\W)|((\\$|\\@\\@?)(\\w+))"
}, {
b: "(" + n.RSR + ")\\s*",
c: r.concat([ {
cN: "regexp",
b: "/",
e: "/[a-z]*",
i: "\\n",
c: [ n.BE, o ]
} ]),
r: 0
} ]));
return o.c = M, c.c[1].c = M, {
l: e,
k: i,
c: M
};
}(hljs), hljs.LANGUAGES.dos = function() {
return {
cI: !0,
k: {
flow: "if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",
keyword: "shift cd dir echo setlocal endlocal set pause copy",
stream: "prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",
winutils: "ping net ipconfig taskkill xcopy ren del"
},
c: [ {
cN: "envvar",
b: "%%[^ ]"
}, {
cN: "envvar",
b: "%[^ ]+?%"
}, {
cN: "envvar",
b: "![^ ]+?!"
}, {
cN: "number",
b: "\\b\\d+",
r: 0
}, {
cN: "comment",
b: "@?rem",
e: "$"
} ]
};
}(hljs), hljs.LANGUAGES.lisp = function(n) {
var e = "[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#]*", t = "(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?", i = {
cN: "literal",
b: "\\b(t{1}|nil)\\b"
}, a = [ {
cN: "number",
b: t
}, {
cN: "number",
b: "#b[0-1]+(/[0-1]+)?"
}, {
cN: "number",
b: "#o[0-7]+(/[0-7]+)?"
}, {
cN: "number",
b: "#x[0-9a-f]+(/[0-9a-f]+)?"
}, {
cN: "number",
b: "#c\\(" + t + " +" + t,
e: "\\)"
} ], r = {
cN: "string",
b: '"',
e: '"',
c: [ n.BE ],
r: 0
}, o = {
cN: "comment",
b: ";",
e: "$"
}, s = {
cN: "variable",
b: "\\*",
e: "\\*"
}, l = {
cN: "keyword",
b: "[:&]" + e
}, c = {
b: "\\(",
e: "\\)",
c: [ "self", i, r ].concat(a)
}, M = {
cN: "quoted",
b: "['`]\\(",
e: "\\)",
c: a.concat([ r, s, l, c ])
}, u = {
cN: "quoted",
b: "\\(quote ",
e: "\\)",
k: {
title: "quote"
},
c: a.concat([ r, s, l, c ])
}, d = {
cN: "list",
b: "\\(",
e: "\\)"
}, h = {
cN: "body",
eW: !0,
eE: !0
};
return d.c = [ {
cN: "title",
b: e
}, h ], h.c = [ M, u, d, i ].concat(a).concat([ r, o, s, l ]), {
i: "[^\\s]",
c: a.concat([ i, r, o, M, u, d ])
};
}(hljs), hljs.LANGUAGES.apache = function(n) {
var e = {
cN: "number",
b: "[\\$%]\\d+"
};
return {
cI: !0,
k: {
keyword: "acceptfilter acceptmutex acceptpathinfo accessfilename action addalt addaltbyencoding addaltbytype addcharset adddefaultcharset adddescription addencoding addhandler addicon addiconbyencoding addiconbytype addinputfilter addlanguage addmoduleinfo addoutputfilter addoutputfilterbytype addtype alias aliasmatch allow allowconnect allowencodedslashes allowoverride anonymous anonymous_logemail anonymous_mustgiveemail anonymous_nouserid anonymous_verifyemail authbasicauthoritative authbasicprovider authdbduserpwquery authdbduserrealmquery authdbmgroupfile authdbmtype authdbmuserfile authdefaultauthoritative authdigestalgorithm authdigestdomain authdigestnccheck authdigestnonceformat authdigestnoncelifetime authdigestprovider authdigestqop authdigestshmemsize authgroupfile authldapbinddn authldapbindpassword authldapcharsetconfig authldapcomparednonserver authldapdereferencealiases authldapgroupattribute authldapgroupattributeisdn authldapremoteuserattribute authldapremoteuserisdn authldapurl authname authnprovideralias authtype authuserfile authzdbmauthoritative authzdbmtype authzdefaultauthoritative authzgroupfileauthoritative authzldapauthoritative authzownerauthoritative authzuserauthoritative balancermember browsermatch browsermatchnocase bufferedlogs cachedefaultexpire cachedirlength cachedirlevels cachedisable cacheenable cachefile cacheignorecachecontrol cacheignoreheaders cacheignorenolastmod cacheignorequerystring cachelastmodifiedfactor cachemaxexpire cachemaxfilesize cacheminfilesize cachenegotiateddocs cacheroot cachestorenostore cachestoreprivate cgimapextension charsetdefault charsetoptions charsetsourceenc checkcaseonly checkspelling chrootdir contentdigest cookiedomain cookieexpires cookielog cookiename cookiestyle cookietracking coredumpdirectory customlog dav davdepthinfinity davgenericlockdb davlockdb davmintimeout dbdexptime dbdkeep dbdmax dbdmin dbdparams dbdpersist dbdpreparesql dbdriver defaulticon defaultlanguage defaulttype deflatebuffersize deflatecompressionlevel deflatefilternote deflatememlevel deflatewindowsize deny directoryindex directorymatch directoryslash documentroot dumpioinput dumpiologlevel dumpiooutput enableexceptionhook enablemmap enablesendfile errordocument errorlog example expiresactive expiresbytype expiresdefault extendedstatus extfilterdefine extfilteroptions fileetag filterchain filterdeclare filterprotocol filterprovider filtertrace forcelanguagepriority forcetype forensiclog gracefulshutdowntimeout group header headername hostnamelookups identitycheck identitychecktimeout imapbase imapdefault imapmenu include indexheadinsert indexignore indexoptions indexorderdefault indexstylesheet isapiappendlogtoerrors isapiappendlogtoquery isapicachefile isapifakeasync isapilognotsupported isapireadaheadbuffer keepalive keepalivetimeout languagepriority ldapcacheentries ldapcachettl ldapconnectiontimeout ldapopcacheentries ldapopcachettl ldapsharedcachefile ldapsharedcachesize ldaptrustedclientcert ldaptrustedglobalcert ldaptrustedmode ldapverifyservercert limitinternalrecursion limitrequestbody limitrequestfields limitrequestfieldsize limitrequestline limitxmlrequestbody listen listenbacklog loadfile loadmodule lockfile logformat loglevel maxclients maxkeepaliverequests maxmemfree maxrequestsperchild maxrequestsperthread maxspareservers maxsparethreads maxthreads mcachemaxobjectcount mcachemaxobjectsize mcachemaxstreamingbuffer mcacheminobjectsize mcacheremovalalgorithm mcachesize metadir metafiles metasuffix mimemagicfile minspareservers minsparethreads mmapfile mod_gzip_on mod_gzip_add_header_count mod_gzip_keep_workfiles mod_gzip_dechunk mod_gzip_min_http mod_gzip_minimum_file_size mod_gzip_maximum_file_size mod_gzip_maximum_inmem_size mod_gzip_temp_dir mod_gzip_item_include mod_gzip_item_exclude mod_gzip_command_version mod_gzip_can_negotiate mod_gzip_handle_methods mod_gzip_static_suffix mod_gzip_send_vary mod_gzip_update_static modmimeusepathinfo multiviewsmatch namevirtualhost noproxy nwssltrustedcerts nwsslupgradeable options order passenv pidfile protocolecho proxybadheader proxyblock proxydomain proxyerroroverride proxyftpdircharset proxyiobuffersize proxymaxforwards proxypass proxypassinterpolateenv proxypassmatch proxypassreverse proxypassreversecookiedomain proxypassreversecookiepath proxypreservehost proxyreceivebuffersize proxyremote proxyremotematch proxyrequests proxyset proxystatus proxytimeout proxyvia readmename receivebuffersize redirect redirectmatch redirectpermanent redirecttemp removecharset removeencoding removehandler removeinputfilter removelanguage removeoutputfilter removetype requestheader require rewritebase rewritecond rewriteengine rewritelock rewritelog rewriteloglevel rewritemap rewriteoptions rewriterule rlimitcpu rlimitmem rlimitnproc satisfy scoreboardfile script scriptalias scriptaliasmatch scriptinterpretersource scriptlog scriptlogbuffer scriptloglength scriptsock securelisten seerequesttail sendbuffersize serveradmin serveralias serverlimit servername serverpath serverroot serversignature servertokens setenv setenvif setenvifnocase sethandler setinputfilter setoutputfilter ssienableaccess ssiendtag ssierrormsg ssistarttag ssitimeformat ssiundefinedecho sslcacertificatefile sslcacertificatepath sslcadnrequestfile sslcadnrequestpath sslcarevocationfile sslcarevocationpath sslcertificatechainfile sslcertificatefile sslcertificatekeyfile sslciphersuite sslcryptodevice sslengine sslhonorciperorder sslmutex ssloptions sslpassphrasedialog sslprotocol sslproxycacertificatefile sslproxycacertificatepath sslproxycarevocationfile sslproxycarevocationpath sslproxyciphersuite sslproxyengine sslproxymachinecertificatefile sslproxymachinecertificatepath sslproxyprotocol sslproxyverify sslproxyverifydepth sslrandomseed sslrequire sslrequiressl sslsessioncache sslsessioncachetimeout sslusername sslverifyclient sslverifydepth startservers startthreads substitute suexecusergroup threadlimit threadsperchild threadstacksize timeout traceenable transferlog typesconfig unsetenv usecanonicalname usecanonicalphysicalport user userdir virtualdocumentroot virtualdocumentrootip virtualscriptalias virtualscriptaliasip win32disableacceptex xbithack",
literal: "on off"
},
c: [ n.HCM, {
cN: "sqbracket",
b: "\\s\\[",
e: "\\]$"
}, {
cN: "cbracket",
b: "[\\$%]\\{",
e: "\\}",
c: [ "self", e ]
}, e, {
cN: "tag",
b: "</?",
e: ">"
}, n.QSM ]
};
}(hljs), hljs.LANGUAGES.actionscript = function(n) {
var e = "[a-zA-Z_$][a-zA-Z0-9_$]*", t = "([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)", i = {
cN: "rest_arg",
b: "[.]{3}",
e: e,
r: 10
}, a = {
cN: "title",
b: e
};
return {
k: {
keyword: "as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",
literal: "true false null undefined"
},
c: [ n.ASM, n.QSM, n.CLCM, n.CBLCLM, n.CNM, {
cN: "package",
bWK: !0,
e: "{",
k: "package",
c: [ a ]
}, {
cN: "class",
bWK: !0,
e: "{",
k: "class interface",
c: [ {
bWK: !0,
k: "extends implements"
}, a ]
}, {
cN: "preprocessor",
bWK: !0,
e: ";",
k: "import include"
}, {
cN: "function",
bWK: !0,
e: "[{;]",
k: "function",
i: "\\S",
c: [ a, {
cN: "params",
b: "\\(",
e: "\\)",
c: [ n.ASM, n.QSM, n.CLCM, n.CBLCLM, i ]
}, {
cN: "type",
b: ":",
e: t,
r: 10
} ]
} ]
};
}(hljs), hljs.LANGUAGES.erlang = function(n) {
var e = "[a-z'][a-zA-Z0-9_']*", t = "(" + e + ":" + e + "|" + e + ")", i = {
keyword: "after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",
literal: "false true"
}, a = {
cN: "comment",
b: "%",
e: "$",
r: 0
}, r = {
cN: "number",
b: "\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",
r: 0
}, o = {
b: "fun\\s+" + e + "/\\d+"
}, s = {
b: t + "\\(",
e: "\\)",
rB: !0,
r: 0,
c: [ {
cN: "function_name",
b: t,
r: 0
}, {
b: "\\(",
e: "\\)",
eW: !0,
rE: !0,
r: 0
} ]
}, l = {
cN: "tuple",
b: "{",
e: "}",
r: 0
}, c = {
cN: "variable",
b: "\\b_([A-Z][A-Za-z0-9_]*)?",
r: 0
}, M = {
cN: "variable",
b: "[A-Z][a-zA-Z0-9_]*",
r: 0
}, u = {
b: "#",
e: "}",
i: ".",
r: 0,
rB: !0,
c: [ {
cN: "record_name",
b: "#" + n.UIR,
r: 0
}, {
b: "{",
eW: !0,
r: 0
} ]
}, d = {
k: i,
b: "(fun|receive|if|try|case)",
e: "end"
};
d.c = [ a, o, n.inherit(n.ASM, {
cN: ""
}), d, s, n.QSM, r, l, c, M, u ];
var h = [ a, o, d, s, n.QSM, r, l, c, M, u ];
s.c[1].c = h, l.c = h, u.c[1].c = h;
var S = {
cN: "params",
b: "\\(",
e: "\\)",
c: h
};
return {
k: i,
i: "(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",
c: [ {
cN: "function",
b: "^" + e + "\\s*\\(",
e: "->",
rB: !0,
i: "\\(|#|//|/\\*|\\\\|:",
c: [ S, {
cN: "title",
b: e
} ],
starts: {
e: ";|\\.",
k: i,
c: h
}
}, a, {
cN: "pp",
b: "^-",
e: "\\.",
r: 0,
eE: !0,
rB: !0,
l: "-" + n.IR,
k: "-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",
c: [ S ]
}, r, n.QSM, u, c, M, l ]
};
}(hljs), hljs.LANGUAGES.rust = function(n) {
var e = {
cN: "title",
b: n.UIR
}, t = {
cN: "number",
b: "\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)",
r: 0
}, i = "alt any as assert be bind block bool break char check claim const cont dir do else enum export f32 f64 fail false float fn for i16 i32 i64 i8 if iface impl import in int let log mod mutable native note of prove pure resource ret self str syntax true type u16 u32 u64 u8 uint unchecked unsafe use vec while";
return {
k: i,
i: "</",
c: [ n.CLCM, n.CBLCLM, n.inherit(n.QSM, {
i: null
}), n.ASM, t, {
cN: "function",
bWK: !0,
e: "(\\(|<)",
k: "fn",
c: [ e ]
}, {
cN: "preprocessor",
b: "#\\[",
e: "\\]"
}, {
bWK: !0,
e: "(=|<)",
k: "type",
c: [ e ],
i: "\\S"
}, {
bWK: !0,
e: "({|<)",
k: "iface enum",
c: [ e ],
i: "\\S"
} ]
};
}(hljs), hljs.LANGUAGES.avrasm = function(n) {
return {
cI: !0,
k: {
keyword: "adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",
built_in: "r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"
},
c: [ n.CBLCLM, {
cN: "comment",
b: ";",
e: "$"
}, n.CNM, n.BNM, {
cN: "number",
b: "\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"
}, n.QSM, {
cN: "string",
b: "'",
e: "[^\\\\]'",
i: "[^\\\\][^']"
}, {
cN: "label",
b: "^[A-Za-z0-9_.$]+:"
}, {
cN: "preprocessor",
b: "#",
e: "$"
}, {
cN: "preprocessor",
b: "\\.[a-zA-Z]+"
}, {
cN: "localvars",
b: "@[0-9]+"
} ]
};
}(hljs), hljs.LANGUAGES.tex = function() {
var n = {
cN: "command",
b: "\\\\[a-zA-Zа-яА-я]+[\\*]?"
}, e = {
cN: "command",
b: "\\\\[^a-zA-Zа-яА-я0-9]"
}, t = {
cN: "special",
b: "[{}\\[\\]\\&#~]",
r: 0
};
return {
c: [ {
b: "\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",
rB: !0,
c: [ n, e, {
cN: "number",
b: " *=",
e: "-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",
eB: !0
} ],
r: 10
}, n, e, t, {
cN: "formula",
b: "\\$\\$",
e: "\\$\\$",
c: [ n, e, t ],
r: 0
}, {
cN: "formula",
b: "\\$",
e: "\\$",
c: [ n, e, t ],
r: 0
}, {
cN: "comment",
b: "%",
e: "$",
r: 0
} ]
};
}(hljs), hljs.LANGUAGES.sql = function(n) {
return {
cI: !0,
c: [ {
cN: "operator",
b: "(begin|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b(?!:)",
e: ";",
eW: !0,
k: {
keyword: "all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number",
aggregate: "count sum min max avg"
},
c: [ {
cN: "string",
b: "'",
e: "'",
c: [ n.BE, {
b: "''"
} ],
r: 0
}, {
cN: "string",
b: '"',
e: '"',
c: [ n.BE, {
b: '""'
} ],
r: 0
}, {
cN: "string",
b: "`",
e: "`",
c: [ n.BE ]
}, n.CNM ]
}, n.CBLCLM, {
cN: "comment",
b: "--",
e: "$"
} ]
};
}(hljs), hljs.LANGUAGES.nginx = function(n) {
var e = [ {
cN: "variable",
b: "\\$\\d+"
}, {
cN: "variable",
b: "\\${",
e: "}"
}, {
cN: "variable",
b: "[\\$\\@]" + n.UIR
} ], t = {
eW: !0,
l: "[a-z/_]+",
k: {
built_in: "on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"
},
r: 0,
i: "=>",
c: [ n.HCM, {
cN: "string",
b: '"',
e: '"',
c: [ n.BE ].concat(e),
r: 0
}, {
cN: "string",
b: "'",
e: "'",
c: [ n.BE ].concat(e),
r: 0
}, {
cN: "url",
b: "([a-z]+):/",
e: "\\s",
eW: !0,
eE: !0
}, {
cN: "regexp",
b: "\\s\\^",
e: "\\s|{|;",
rE: !0,
c: [ n.BE ].concat(e)
}, {
cN: "regexp",
b: "~\\*?\\s+",
e: "\\s|{|;",
rE: !0,
c: [ n.BE ].concat(e)
}, {
cN: "regexp",
b: "\\*(\\.[a-z\\-]+)+",
c: [ n.BE ].concat(e)
}, {
cN: "regexp",
b: "([a-z\\-]+\\.)+\\*",
c: [ n.BE ].concat(e)
}, {
cN: "number",
b: "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"
}, {
cN: "number",
b: "\\b\\d+[kKmMgGdshdwy]*\\b",
r: 0
} ].concat(e)
};
return {
c: [ n.HCM, {
b: n.UIR + "\\s",
e: ";|{",
rB: !0,
c: [ {
cN: "title",
b: n.UIR,
starts: t
} ]
} ],
i: "[^\\s\\}]"
};
}(hljs), hljs.LANGUAGES.php = function(n) {
var e = {
cN: "variable",
b: "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"
}, t = [ n.inherit(n.ASM, {
i: null
}), n.inherit(n.QSM, {
i: null
}), {
cN: "string",
b: 'b"',
e: '"',
c: [ n.BE ]
}, {
cN: "string",
b: "b'",
e: "'",
c: [ n.BE ]
} ], i = [ n.BNM, n.CNM ], a = {
cN: "title",
b: n.UIR
};
return {
cI: !0,
k: "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",
c: [ n.CLCM, n.HCM, {
cN: "comment",
b: "/\\*",
e: "\\*/",
c: [ {
cN: "phpdoc",
b: "\\s@[A-Za-z]+"
} ]
}, {
cN: "comment",
eB: !0,
b: "__halt_compiler.+?;",
eW: !0
}, {
cN: "string",
b: "<<<['\"]?\\w+['\"]?$",
e: "^\\w+;",
c: [ n.BE ]
}, {
cN: "preprocessor",
b: "<\\?php",
r: 10
}, {
cN: "preprocessor",
b: "\\?>"
}, e, {
cN: "function",
bWK: !0,
e: "{",
k: "function",
i: "\\$|\\[|%",
c: [ a, {
cN: "params",
b: "\\(",
e: "\\)",
c: [ "self", e, n.CBLCLM ].concat(t).concat(i)
} ]
}, {
cN: "class",
bWK: !0,
e: "{",
k: "class",
i: "[:\\(\\$]",
c: [ {
bWK: !0,
eW: !0,
k: "extends",
c: [ a ]
}, a ]
}, {
b: "=>"
} ].concat(t).concat(i)
};
}(hljs), hljs.LANGUAGES.cpp = function(n) {
var e = {
keyword: "false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex",
built_in: "std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr"
};
return {
k: e,
i: "</",
c: [ n.CLCM, n.CBLCLM, n.QSM, {
cN: "string",
b: "'\\\\?.",
e: "'",
i: "."
}, {
cN: "number",
b: "\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"
}, n.CNM, {
cN: "preprocessor",
b: "#",
e: "$"
}, {
cN: "stl_container",
b: "\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
e: ">",
k: e,
r: 10,
c: [ "self" ]
} ]
};
}(hljs), hljs.LANGUAGES.xml = function() {
var n = "[A-Za-z0-9\\._:-]+", e = {
eW: !0,
c: [ {
cN: "attribute",
b: n,
r: 0
}, {
b: '="',
rB: !0,
e: '"',
c: [ {
cN: "value",
b: '"',
eW: !0
} ]
}, {
b: "='",
rB: !0,
e: "'",
c: [ {
cN: "value",
b: "'",
eW: !0
} ]
}, {
b: "=",
c: [ {
cN: "value",
b: "[^\\s/>]+"
} ]
} ]
};
return {
cI: !0,
c: [ {
cN: "pi",
b: "<\\?",
e: "\\?>",
r: 10
}, {
cN: "doctype",
b: "<!DOCTYPE",
e: ">",
r: 10,
c: [ {
b: "\\[",
e: "\\]"
} ]
}, {
cN: "comment",
b: "<!--",
e: "-->",
r: 10
}, {
cN: "cdata",
b: "<\\!\\[CDATA\\[",
e: "\\]\\]>",
r: 10
}, {
cN: "tag",
b: "<style(?=\\s|>|$)",
e: ">",
k: {
title: "style"
},
c: [ e ],
starts: {
e: "</style>",
rE: !0,
sL: "css"
}
}, {
cN: "tag",
b: "<script(?=\\s|>|$)",
e: ">",
k: {
title: "script"
},
c: [ e ],
starts: {
e: "</script>",
rE: !0,
sL: "javascript"
}
}, {
b: "<%",
e: "%>",
sL: "vbscript"
}, {
cN: "tag",
b: "</?",
e: "/?>",
c: [ {
cN: "title",
b: "[^ />]+"
}, e ]
} ]
};
}(hljs), hljs.LANGUAGES.parser3 = function(n) {
return {
sL: "xml",
c: [ {
cN: "comment",
b: "^#",
e: "$"
}, {
cN: "comment",
b: "\\^rem{",
e: "}",
r: 10,
c: [ {
b: "{",
e: "}",
c: [ "self" ]
} ]
}, {
cN: "preprocessor",
b: "^@(?:BASE|USE|CLASS|OPTIONS)$",
r: 10
}, {
cN: "title",
b: "@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"
}, {
cN: "variable",
b: "\\$\\{?[\\w\\-\\.\\:]+\\}?"
}, {
cN: "keyword",
b: "\\^[\\w\\-\\.\\:]+"
}, {
cN: "number",
b: "\\^#[0-9a-fA-F]+"
}, n.CNM ]
};
}(hljs), hljs.LANGUAGES.css = function(n) {
var e = {
cN: "function",
b: n.IR + "\\(",
e: "\\)",
c: [ n.NM, n.ASM, n.QSM ]
};
return {
cI: !0,
i: "[=/|']",
c: [ n.CBLCLM, {
cN: "id",
b: "\\#[A-Za-z0-9_-]+"
}, {
cN: "class",
b: "\\.[A-Za-z0-9_-]+",
r: 0
}, {
cN: "attr_selector",
b: "\\[",
e: "\\]",
i: "$"
}, {
cN: "pseudo",
b: ":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"
}, {
cN: "at_rule",
b: "@(font-face|page)",
l: "[a-z-]+",
k: "font-face page"
}, {
cN: "at_rule",
b: "@",
e: "[{;]",
eE: !0,
k: "import page media charset",
c: [ e, n.ASM, n.QSM, n.NM ]
}, {
cN: "tag",
b: n.IR,
r: 0
}, {
cN: "rules",
b: "{",
e: "}",
i: "[^\\s]",
r: 0,
c: [ n.CBLCLM, {
cN: "rule",
b: "[^\\s]",
rB: !0,
e: ";",
eW: !0,
c: [ {
cN: "attribute",
b: "[A-Z\\_\\.\\-]+",
e: ":",
eE: !0,
i: "[^\\s]",
starts: {
cN: "value",
eW: !0,
eE: !0,
c: [ e, n.NM, n.QSM, n.ASM, n.CBLCLM, {
cN: "hexcolor",
b: "\\#[0-9A-F]+"
}, {
cN: "important",
b: "!important"
} ]
}
} ]
} ]
} ]
};
}(hljs), hljs.LANGUAGES.axapta = function(n) {
return {
k: "false int abstract private char interface boolean static null if for true while long throw finally protected extends final implements return void enum else break new catch byte super class case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",
c: [ n.CLCM, n.CBLCLM, n.ASM, n.QSM, n.CNM, {
cN: "preprocessor",
b: "#",
e: "$"
}, {
cN: "class",
bWK: !0,
e: "{",
i: ":",
k: "class interface",
c: [ {
cN: "inheritance",
bWK: !0,
k: "extends implements",
r: 10
}, {
cN: "title",
b: n.UIR
} ]
} ]
};
}(hljs), hljs.LANGUAGES.ini = function(n) {
return {
cI: !0,
i: "[^\\s]",
c: [ {
cN: "comment",
b: ";",
e: "$"
}, {
cN: "title",
b: "^\\[",
e: "\\]"
}, {
cN: "setting",
b: "^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",
e: "$",
c: [ {
cN: "value",
eW: !0,
k: "on off true false yes no",
c: [ n.QSM, n.NM ]
} ]
} ]
};
}(hljs), hljs.LANGUAGES.matlab = function(n) {
var e = [ n.CNM, {
cN: "string",
b: "'",
e: "'",
c: [ n.BE, {
b: "''"
} ],
r: 0
} ];
return {
k: {
keyword: "break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",
built_in: "sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"
},
i: '(//|"|#|/\\*|\\s+/\\w+)',
c: [ {
cN: "function",
bWK: !0,
e: "$",
k: "function",
c: [ {
cN: "title",
b: n.UIR
}, {
cN: "params",
b: "\\(",
e: "\\)"
}, {
cN: "params",
b: "\\[",
e: "\\]"
} ]
}, {
cN: "transposed_variable",
b: "[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",
e: ""
}, {
cN: "matrix",
b: "\\[",
e: "\\]'*[\\.']*",
c: e
}, {
cN: "cell",
b: "\\{",
e: "\\}'*[\\.']*",
c: e
}, {
cN: "comment",
b: "\\%",
e: "$"
} ].concat(e)
};
}(hljs), hljs.LANGUAGES.d = function(n) {
var e = {
keyword: "abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",
built_in: "bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",
literal: "false null true"
}, t = "(0|[1-9][\\d_]*)", i = "(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)", a = "0[bB][01_]+", r = "([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)", o = "0[xX]" + r, s = "([eE][+-]?" + i + ")", l = "(" + i + "(\\.\\d*|" + s + ")|\\d+\\." + i + i + "|\\." + t + s + "?)", c = "(0[xX](" + r + "\\." + r + "|\\.?" + r + ")[pP][+-]?" + i + ")", M = "(" + t + "|" + a + "|" + o + ")", u = "(" + c + "|" + l + ")", d = "\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};", h = {
cN: "number",
b: "\\b" + M + "(L|u|U|Lu|LU|uL|UL)?",
r: 0
}, S = {
cN: "number",
b: "\\b(" + u + "([fF]|L|i|[fF]i|Li)?|" + M + "(i|[fF]i|Li))",
r: 0
}, p = {
cN: "string",
b: "'(" + d + "|.)",
e: "'",
i: "."
}, m = {
b: d,
r: 0
}, g = {
cN: "string",
b: '"',
c: [ m ],
e: '"[cwd]?',
r: 0
}, f = {
cN: "string",
b: '[rq]"',
e: '"[cwd]?',
r: 5
}, b = {
cN: "string",
b: "`",
e: "`[cwd]?"
}, y = {
cN: "string",
b: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
r: 10
}, v = {
cN: "string",
b: 'q"\\{',
e: '\\}"'
}, D = {
cN: "shebang",
b: "^#!",
e: "$",
r: 5
}, w = {
cN: "preprocessor",
b: "#(line)",
e: "$",
r: 5
}, G = {
cN: "keyword",
b: "@[a-zA-Z_][a-zA-Z_\\d]*"
}, k = {
cN: "comment",
b: "\\/\\+",
c: [ "self" ],
e: "\\+\\/",
r: 10
};
return {
l: n.UIR,
k: e,
c: [ n.CLCM, n.CBLCLM, k, y, g, f, b, v, S, h, p, D, w, G ]
};
}(hljs), hljs.LANGUAGES.profile = function(n) {
return {
c: [ n.CNM, {
cN: "builtin",
b: "{",
e: "}$",
eB: !0,
eE: !0,
c: [ n.ASM, n.QSM ],
r: 0
}, {
cN: "filename",
b: "[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",
e: ":",
eE: !0
}, {
cN: "header",
b: "(ncalls|tottime|cumtime)",
e: "$",
k: "ncalls tottime|10 cumtime|10 filename",
r: 10
}, {
cN: "summary",
b: "function calls",
e: "$",
c: [ n.CNM ],
r: 10
}, n.ASM, n.QSM, {
cN: "function",
b: "\\(",
e: "\\)$",
c: [ {
cN: "title",
b: n.UIR,
r: 0
} ],
r: 0
} ]
};
}(hljs), hljs.LANGUAGES.javascript = function(n) {
return {
k: {
keyword: "in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",
literal: "true false null undefined NaN Infinity"
},
c: [ n.ASM, n.QSM, n.CLCM, n.CBLCLM, n.CNM, {
b: "(" + n.RSR + "|\\b(case|return|throw)\\b)\\s*",
k: "return throw case",
c: [ n.CLCM, n.CBLCLM, {
cN: "regexp",
b: "/",
e: "/[gim]*",
i: "\\n",
c: [ {
b: "\\\\/"
} ]
}, {
b: "<",
e: ">;",
sL: "xml"
} ],
r: 0
}, {
cN: "function",
bWK: !0,
e: "{",
k: "function",
c: [ {
cN: "title",
b: "[A-Za-z$_][0-9A-Za-z$_]*"
}, {
cN: "params",
b: "\\(",
e: "\\)",
c: [ n.CLCM, n.CBLCLM ],
i: "[\"'\\(]"
} ],
i: "\\[|%"
} ]
};
}(hljs), hljs.LANGUAGES.bash = function(n) {
var e = "true false", t = "if then else elif fi for break continue while in do done echo exit return set declare", i = {
cN: "variable",
b: "\\$[a-zA-Z0-9_#]+"
}, a = {
cN: "variable",
b: "\\${([^}]|\\\\})+}"
}, r = {
cN: "string",
b: '"',
e: '"',
i: "\\n",
c: [ n.BE, i, a ],
r: 0
}, o = {
cN: "string",
b: "'",
e: "'",
c: [ {
b: "''"
} ],
r: 0
}, s = {
cN: "test_condition",
b: "",
e: "",
c: [ r, o, i, a ],
k: {
literal: e
},
r: 0
};
return {
k: {
keyword: t,
literal: e
},
c: [ {
cN: "shebang",
b: "(#!\\/bin\\/bash)|(#!\\/bin\\/sh)",
r: 10
}, i, a, n.HCM, r, o, n.inherit(s, {
b: "\\[ ",
e: " \\]",
r: 0
}), n.inherit(s, {
b: "\\[\\[ ",
e: " \\]\\]"
}) ]
};
}(hljs), hljs.LANGUAGES.django = function(n) {
function e(n, e) {
return void 0 == e || !n.cN && "tag" == e.cN || "value" == n.cN;
}
function t(n, i) {
var r = {};
for (var o in n) {
"contains" != o && (r[o] = n[o]);
for (var s = [], l = 0; n.c && l < n.c.length; l++) s.push(t(n.c[l], n));
e(n, i) && (s = a.concat(s)), s.length && (r.c = s);
}
return r;
}
var i = {
cN: "filter",
b: "\\|[A-Za-z]+\\:?",
eE: !0,
k: "truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",
c: [ {
cN: "argument",
b: '"',
e: '"'
} ]
}, a = [ {
cN: "template_comment",
b: "{%\\s*comment\\s*%}",
e: "{%\\s*endcomment\\s*%}"
}, {
cN: "template_comment",
b: "{#",
e: "#}"
}, {
cN: "template_tag",
b: "{%",
e: "%}",
k: "comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone",
c: [ i ]
}, {
cN: "variable",
b: "{{",
e: "}}",
c: [ i ]
} ], r = t(n.LANGUAGES.xml);
return r.cI = !0, r;
}(hljs), hljs.LANGUAGES.smalltalk = function(n) {
var e = "[a-z][a-zA-Z0-9_]*", t = {
cN: "char",
b: "\\$.{1}"
}, i = {
cN: "symbol",
b: "#" + n.UIR
};
return {
k: "self super nil true false thisContext",
c: [ {
cN: "comment",
b: '"',
e: '"',
r: 0
}, n.ASM, {
cN: "class",
b: "\\b[A-Z][A-Za-z0-9_]*",
r: 0
}, {
cN: "method",
b: e + ":"
}, n.CNM, i, t, {
cN: "localvars",
b: "\\|\\s*((" + e + ")\\s*)+\\|"
}, {
cN: "array",
b: "\\#\\(",
e: "\\)",
c: [ n.ASM, t, n.CNM, i ]
} ]
};
}(hljs), hljs.LANGUAGES.markdown = function() {
return {
c: [ {
cN: "header",
b: "^#{1,3}",
e: "$"
}, {
cN: "header",
b: "^.+?\\n[=-]{2,}$"
}, {
b: "<",
e: ">",
sL: "xml",
r: 0
}, {
cN: "bullet",
b: "^([*+-]|(\\d+\\.))\\s+"
}, {
cN: "strong",
b: "[*_]{2}.+?[*_]{2}"
}, {
cN: "emphasis",
b: "\\*.+?\\*"
}, {
cN: "emphasis",
b: "_.+?_",
r: 0
}, {
cN: "blockquote",
b: "^>\\s+",
e: "$"
}, {
cN: "code",
b: "`.+?`"
}, {
cN: "code",
b: "^ ",
e: "$",
r: 0
}, {
cN: "horizontal_rule",
b: "^-{3,}",
e: "$"
}, {
b: "\\[.+?\\]\\(.+?\\)",
rB: !0,
c: [ {
cN: "link_label",
b: "\\[.+\\]"
}, {
cN: "link_url",
b: "\\(",
e: "\\)",
eB: !0,
eE: !0
} ]
} ]
};
}(hljs), hljs.LANGUAGES.diff = function() {
return {
c: [ {
cN: "chunk",
b: "^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",
r: 10
}, {
cN: "chunk",
b: "^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",
r: 10
}, {
cN: "chunk",
b: "^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",
r: 10
}, {
cN: "header",
b: "Index: ",
e: "$"
}, {
cN: "header",
b: "=====",
e: "=====$"
}, {
cN: "header",
b: "^\\-\\-\\-",
e: "$"
}, {
cN: "header",
b: "^\\*{3} ",
e: "$"
}, {
cN: "header",
b: "^\\+\\+\\+",
e: "$"
}, {
cN: "header",
b: "\\*{5}",
e: "\\*{5}$"
}, {
cN: "addition",
b: "^\\+",
e: "$"
}, {
cN: "deletion",
b: "^\\-",
e: "$"
}, {
cN: "change",
b: "^\\!",
e: "$"
} ]
};
}(hljs), hljs.LANGUAGES.json = function(n) {
var e = {
literal: "true false null"
}, t = [ n.QSM, n.CNM ], i = {
cN: "value",
e: ",",
eW: !0,
eE: !0,
c: t,
k: e
}, a = {
b: "{",
e: "}",
c: [ {
cN: "attribute",
b: '\\s*"',
e: '"\\s*:\\s*',
eB: !0,
eE: !0,
c: [ n.BE ],
i: "\\n",
starts: i
} ],
i: "\\S"
}, r = {
b: "\\[",
e: "\\]",
c: [ n.inherit(i, {
cN: null
}) ],
i: "\\S"
};
return t.splice(t.length, 0, a, r), {
c: t,
k: e,
i: "\\S"
};
}(hljs), hljs.LANGUAGES.vbscript = function(n) {
return {
cI: !0,
k: {
keyword: "call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",
built_in: "lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",
literal: "true false null nothing empty"
},
i: "//",
c: [ n.inherit(n.QSM, {
c: [ {
b: '""'
} ]
}), {
cN: "comment",
b: "'",
e: "$"
}, n.CNM ]
};
}(hljs), hljs.LANGUAGES.haskell = function(n) {
var e = {
cN: "type",
b: "\\b[A-Z][\\w']*",
r: 0
}, t = {
cN: "container",
b: "\\(",
e: "\\)",
c: [ {
cN: "type",
b: "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"
}, {
cN: "title",
b: "[_a-z][\\w']*"
} ]
}, i = {
cN: "container",
b: "{",
e: "}",
c: t.c
};
return {
k: "let in if then else case of where do module import hiding qualified type data newtype deriving class instance not as foreign ccall safe unsafe",
c: [ {
cN: "comment",
b: "--",
e: "$"
}, {
cN: "preprocessor",
b: "{-#",
e: "#-}"
}, {
cN: "comment",
c: [ "self" ],
b: "{-",
e: "-}"
}, {
cN: "string",
b: "\\s+'",
e: "'",
c: [ n.BE ],
r: 0
}, n.QSM, {
cN: "import",
b: "\\bimport",
e: "$",
k: "import qualified as hiding",
c: [ t ],
i: "\\W\\.|;"
}, {
cN: "module",
b: "\\bmodule",
e: "where",
k: "module where",
c: [ t ],
i: "\\W\\.|;"
}, {
cN: "class",
b: "\\b(class|instance)",
e: "where",
k: "class where instance",
c: [ e ]
}, {
cN: "typedef",
b: "\\b(data|(new)?type)",
e: "$",
k: "data type newtype deriving",
c: [ e, t, i ]
}, n.CNM, {
cN: "shebang",
b: "#!\\/usr\\/bin\\/env runhaskell",
e: "$"
}, e, {
cN: "title",
b: "^[_a-z][\\w']*"
} ]
};
}(hljs), hljs.LANGUAGES.coffeescript = function(n) {
var e = {
keyword: "in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",
literal: "true false null undefined yes no on off ",
reserved: "case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf"
}, t = "[A-Za-z$_][0-9A-Za-z$_]*", i = {
cN: "title",
b: t
}, a = {
cN: "subst",
b: "#\\{",
e: "}",
k: e,
c: [ n.BNM, n.CNM ]
};
return {
k: e,
c: [ n.BNM, n.CNM, n.ASM, {
cN: "string",
b: '"""',
e: '"""',
c: [ n.BE, a ]
}, {
cN: "string",
b: '"',
e: '"',
c: [ n.BE, a ],
r: 0
}, {
cN: "comment",
b: "###",
e: "###"
}, n.HCM, {
cN: "regexp",
b: "///",
e: "///",
c: [ n.HCM ]
}, {
cN: "regexp",
b: "//[gim]*"
}, {
cN: "regexp",
b: "/\\S(\\\\.|[^\\n])*/[gim]*"
}, {
b: "`",
e: "`",
eB: !0,
eE: !0,
sL: "javascript"
}, {
cN: "function",
b: t + "\\s*=\\s*(\\(.+\\))?\\s*[-=]>",
rB: !0,
c: [ i, {
cN: "params",
b: "\\(",
e: "\\)"
} ]
}, {
cN: "class",
bWK: !0,
k: "class",
e: "$",
i: ":",
c: [ {
bWK: !0,
k: "extends",
eW: !0,
i: ":",
c: [ i ]
}, i ]
}, {
cN: "property",
b: "@" + t
} ]
};
}(hljs), hljs.LANGUAGES.python = function(n) {
var e = {
cN: "prompt",
b: "^(>>>|\\.\\.\\.) "
}, t = [ {
cN: "string",
b: "(u|b)?r?'''",
e: "'''",
c: [ e ],
r: 10
}, {
cN: "string",
b: '(u|b)?r?"""',
e: '"""',
c: [ e ],
r: 10
}, {
cN: "string",
b: "(u|r|ur)'",
e: "'",
c: [ n.BE ],
r: 10
}, {
cN: "string",
b: '(u|r|ur)"',
e: '"',
c: [ n.BE ],
r: 10
}, {
cN: "string",
b: "(b|br)'",
e: "'",
c: [ n.BE ]
}, {
cN: "string",
b: '(b|br)"',
e: '"',
c: [ n.BE ]
} ].concat([ n.ASM, n.QSM ]), i = {
cN: "title",
b: n.UIR
}, a = {
cN: "params",
b: "\\(",
e: "\\)",
c: [ "self", n.CNM, e ].concat(t)
}, r = {
bWK: !0,
e: ":",
i: "[${=;\\n]",
c: [ i, a ],
r: 10
};
return {
k: {
keyword: "and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",
built_in: "None True False Ellipsis NotImplemented"
},
i: "(</|->|\\?)",
c: t.concat([ e, n.HCM, n.inherit(r, {
cN: "function",
k: "def"
}), n.inherit(r, {
cN: "class",
k: "class"
}), n.CNM, {
cN: "decorator",
b: "@",
e: "$"
}, {
b: "\\b(print|exec)\\("
} ])
};
}(hljs), hljs.LANGUAGES.cmake = function(n) {
return {
cI: !0,
k: "add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file",
c: [ {
cN: "envvar",
b: "\\${",
e: "}"
}, n.HCM, n.QSM, n.NM ]
};
}(hljs), hljs.LANGUAGES.lua = function(n) {
var e = "\\[=*\\[", t = "\\]=*\\]", i = {
b: e,
e: t,
c: [ "self" ]
}, a = [ {
cN: "comment",
b: "--(?!" + e + ")",
e: "$"
}, {
cN: "comment",
b: "--" + e,
e: t,
c: [ i ],
r: 10
} ];
return {
l: n.UIR,
k: {
keyword: "and break do else elseif end false for if in local nil not or repeat return then true until while",
built_in: "_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"
},
c: a.concat([ {
cN: "function",
bWK: !0,
e: "\\)",
k: "function",
c: [ {
cN: "title",
b: "([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"
}, {
cN: "params",
b: "\\(",
eW: !0,
c: a
} ].concat(a)
}, n.CNM, n.ASM, n.QSM, {
cN: "string",
b: e,
e: t,
c: [ i ],
r: 10
} ])
};
}(hljs), hljs.LANGUAGES.r = function(n) {
var e = "([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";
return {
c: [ n.HCM, {
b: e,
l: e,
k: {
keyword: "function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",
literal: "NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"
},
r: 0
}, {
cN: "number",
b: "0[xX][0-9a-fA-F]+[Li]?\\b",
r: 0
}, {
cN: "number",
b: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
r: 0
}, {
cN: "number",
b: "\\d+\\.(?!\\d)(?:i\\b)?",
r: 0
}, {
cN: "number",
b: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
r: 0
}, {
cN: "number",
b: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
r: 0
}, {
b: "`",
e: "`",
r: 0
}, {
cN: "string",
b: '"',
e: '"',
c: [ n.BE ],
r: 0
}, {
cN: "string",
b: "'",
e: "'",
c: [ n.BE ],
r: 0
} ]
};
}(hljs), hljs.LANGUAGES.http = function() {
return {
i: "\\S",
c: [ {
cN: "status",
b: "^HTTP/[0-9\\.]+",
e: "$",
c: [ {
cN: "number",
b: "\\b\\d{3}\\b"
} ]
}, {
cN: "request",
b: "^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",
rB: !0,
e: "$",
c: [ {
cN: "string",
b: " ",
e: " ",
eB: !0,
eE: !0
} ]
}, {
cN: "attribute",
b: "^\\w",
e: ": ",
eE: !0,
i: "\\n|\\s|=",
starts: {
cN: "string",
e: "$"
}
}, {
b: "\\n\\n",
starts: {
sL: "",
eW: !0
}
} ]
};
}(hljs), hljs.LANGUAGES.mel = function(n) {
return {
k: "int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",
i: "</",
c: [ n.CNM, n.ASM, n.QSM, {
cN: "string",
b: "`",
e: "`",
c: [ n.BE ]
}, {
cN: "variable",
b: "\\$\\d",
r: 5
}, {
cN: "variable",
b: "[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"
}, n.CLCM, n.CBLCLM ]
};
}(hljs), define("highlightjs", function() {}), function() {
function n(n) {
return n.replace(/^\s+|\s+$/g, "");
}
function e(n) {
return n.replace(/\s+$/g, "");
}
function t(n) {
return n.replace(new RegExp("^(\\t|[ ]{1,4})", "gm"), "");
}
function i(n, e) {
return -1 != n.indexOf(e);
}
function a(n, e) {
return n.replace(/<[^>]*>?/gi, function(n) {
return n.match(e) ? n : "";
});
}
function r(n, e) {
for (var t = {}, i = 0; i < n.length; i++) t[n[i]] = n[i];
for (i = 0; i < e.length; i++) t[e[i]] = e[i];
var a = [];
for (var r in t) t.hasOwnProperty(r) && a.push(t[r]);
return a;
}
function o(n) {
return "" != n.charAt(0) && (n = "" + n), "" != n.charAt(n.length - 1) && (n += ""),
n;
}
function s(n) {
return "" == n.charAt(0) && (n = n.substr(1)), "" == n.charAt(n.length - 1) && (n = n.substr(0, n.length - 1)),
n;
}
function l(n, e) {
return a(c(n, e), p);
}
function c(n, e) {
var t = e.blockGamutHookCallback(n);
return t = u(t), t = t.replace(/~D/g, "$$").replace(/~T/g, "~"), t = e.previousPostConversion(t);
}
function M(n) {
return n.replace(/\\\|/g, "&#124;").replace(/\\:/g, "&#58;");
}
function u(n) {
return n = n.replace(/~E(\d+)E/g, function(n, e) {
var t = parseInt(e);
return String.fromCharCode(t);
});
}
function d(n) {
return n.toLowerCase().replace(/\s+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
}
function h(n, e) {
var t = e;
return t = t.replace(/&\#8220;/g, '"'), t = t.replace(/&\#8221;/g, '"'), t = t.replace(/&\#8216;/g, "'"),
t = t.replace(/&\#8217;/g, "'"), t = t.replace(/&\#8212;/g, "--"), t = t.replace(/&\#8211;/g, "---"),
t = t.replace(/&\#8230;/g, "...");
}
function S(n) {
return n = n.replace(/``/g, "&#8220;").replace(/''/g, "&#8221;"), n = n.replace(/---/g, "&#8212;").replace(/--/g, "&#8211;"),
n = n.replace(/\.\.\./g, "&#8230;").replace(/\.\s\.\s\./g, "&#8230;"), n = n.replace(/^'(?=[!"#\$\%'()*+,\-.\/:;<=>?\@\[\\]\^_`{|}~]\B)/g, "&#8216;"),
n = n.replace(/^"(?=[!"#\$\%'()*+,\-.\/:;<=>?\@\[\\]\^_`{|}~]\B)/g, "&#8220;"),
n = n.replace(/^"(?=\w)/g, "&#8220;"), n = n.replace(/^'(?=\w)/g, "&#8216;"), n = n.replace(/"'(?=\w)/g, "&#8220;&#8216;"),
n = n.replace(/'"(?=\w)/g, "&#8216;&#8220;"), n = n.replace(/'(?=\d{2}s)/g, "&#8217;"),
n = n.replace(/(>|\t|\n|\s|&nbsp;|--|&[mn]dash;|&\#8211;|&\#8212;|&\#x201[34];)'(?=\w)/g, "$1&#8216;"),
n = n.replace(/([^<>\\ \t\r\n\[\{\(\-])'(?=\s | s\b)/g, "$1&#8217;"), n = n.replace(/`/g, "&#8216;").replace(/'/g, "&#8217;"),
n = n.replace(/(>|\t|\n|\s|&nbsp;|--|&[mn]dash;|&\#8211;|&\#8212;|&\#x201[34];)"(?=\w)/g, "$1&#8220;"),
n = n.replace(/([^<>\\ \t\r\n\[\{\(\-])"(?=\s | s\b)/g, "$1&#8221;"), n = n.replace(/"/gi, "&#8221;");
}
var p = new RegExp([ "^(<\\/?(a|abbr|acronym|applet|area|b|basefont|", "bdo|big|button|cite|code|del|dfn|em|figcaption|", "font|i|iframe|img|input|ins|kbd|label|map|", "mark|meter|object|param|progress|q|ruby|rp|rt|s|", "samp|script|select|small|span|strike|strong|", "sub|sup|textarea|time|tt|u|var|wbr)[^>]*>|", "<(br)\\s?\\/?>)$" ].join(""), "i");
Array.indexOf || (Array.prototype.indexOf = function(n) {
for (var e = 0; e < this.length; e++) if (this[e] == n) return e;
return -1;
}), Markdown.Extra = function() {
this.converter = null, this.hashBlocks = [], this.footnotes = {}, this.usedFootnotes = [],
this.attributeBlocks = !1, this.googleCodePrettify = !1, this.highlightJs = !1,
this.tableClass = "", this.tabWidth = 4;
}, Markdown.Extra.init = function(n, e) {
var t = new Markdown.Extra(), a = [], r = [], o = [ "unHashExtraBlocks" ];
return e = e || {}, e.extensions = e.extensions || [ "all" ], i(e.extensions, "all") && (e.extensions = [ "tables", "fenced_code_gfm", "def_list", "attr_list", "footnotes", "smartypants" ]),
r.push("wrapHeaders"), i(e.extensions, "attr_list") && (a.push("hashFcbAttributeBlocks"),
r.push("hashHeaderAttributeBlocks"), o.push("applyAttributeBlocks"), t.attributeBlocks = !0),
i(e.extensions, "fenced_code_gfm") && a.push("fencedCodeBlocks"), i(e.extensions, "tables") && r.push("tables"),
i(e.extensions, "def_list") && r.push("definitionLists"), i(e.extensions, "footnotes") && (a.push("stripFootnoteDefinitions"),
r.push("doFootnotes"), o.push("printFootnotes")), i(e.extensions, "smartypants") && o.push("runSmartyPants"),
n.hooks.chain("postNormalization", function(n) {
return t.doTransform(a, n) + "\n";
}), n.hooks.chain("preBlockGamut", function(n, e) {
return t.blockGamutHookCallback = e, n = M(n), t.doTransform(r, n) + "\n";
}), t.previousPostConversion = n.hooks.postConversion, n.hooks.chain("postConversion", function(n) {
return n = t.doTransform(o, n), t.hashBlocks = [], t.footnotes = {}, t.usedFootnotes = [],
n;
}), "highlighter" in e && (t.googleCodePrettify = "prettify" === e.highlighter,
t.highlightJs = "highlight" === e.highlighter), "table_class" in e && (t.tableClass = e.table_class),
t.converter = n, t;
}, Markdown.Extra.prototype.doTransform = function(n, e) {
for (var t = 0; t < n.length; t++) e = this[n[t]](e);
return e;
}, Markdown.Extra.prototype.hashExtraBlock = function(n) {
return "\n<p>~X" + (this.hashBlocks.push(n) - 1) + "X</p>\n";
}, Markdown.Extra.prototype.hashExtraInline = function(n) {
return "~X" + (this.hashBlocks.push(n) - 1) + "X";
}, Markdown.Extra.prototype.unHashExtraBlocks = function(n) {
function e() {
var i = !1;
n = n.replace(/(?:<p>)?~X(\d+)X(?:<\/p>)?/g, function(n, e) {
i = !0;
var a = parseInt(e, 10);
return t.hashBlocks[a];
}), i === !0 && e();
}
var t = this;
return e(), n;
}, Markdown.Extra.prototype.wrapHeaders = function(n) {
function e(n) {
return "\n" + n + "\n";
}
return n = n.replace(/^.+[ \t]*\n=+[ \t]*\n+/gm, e), n = n.replace(/^.+[ \t]*\n-+[ \t]*\n+/gm, e),
n = n.replace(/^\#{1,6}[ \t]*.+?[ \t]*\#*\n+/gm, e);
}, Markdown.Extra.prototype.hashHeaderAttributeBlocks = function(n) {
function e(n, e, t) {
return "<p>~XX" + (r.hashBlocks.push(t) - 1) + "XX</p>\n" + e + "\n";
}
var t = "\\{\\s*[.|#][^}]+\\}", i = new RegExp("^(#{1,6}.*#{0,6})\\s+(" + t + ")[ \\t]*(\\n|0x03)", "gm"), a = new RegExp("^(.*)\\s+(" + t + ")[ \\t]*\\n" + "(?=[\\-|=]+\\s*(\\n|0x03))", "gm"), r = this;
return n = n.replace(i, e), n = n.replace(a, e);
}, Markdown.Extra.prototype.hashFcbAttributeBlocks = function(n) {
function e(n, e, t) {
return "<p>~XX" + (a.hashBlocks.push(t) - 1) + "XX</p>\n" + e + "\n";
}
var t = "\\{\\s*[.|#][^}]+\\}", i = new RegExp("^(```[^{\\n]*)\\s+(" + t + ")[ \\t]*\\n" + "(?=([\\s\\S]*?)\\n```\\s*(\\n|0x03))", "gm"), a = this;
return n.replace(i, e);
}, Markdown.Extra.prototype.applyAttributeBlocks = function(n) {
var e = this, t = new RegExp('<p>~XX(\\d+)XX</p>[\\s]*(?:<(h[1-6]|pre)(?: +class="(\\S+)")?(>[\\s\\S]*?</\\2>))', "gm");
return n = n.replace(t, function(n, t, i, a, o) {
if (!i) return "";
for (var s = parseInt(t, 10), l = e.hashBlocks[s], c = l.match(/#[^\s{}]+/g) || [], M = c[0] ? ' id="' + c[0].substr(1, c[0].length - 1) + '"' : "", u = l.match(/\.[^\s{}]+/g) || [], d = 0; d < u.length; d++) u[d] = u[d].substr(1, u[d].length - 1);
var h = "";
return a && (u = r(u, [ a ])), u.length > 0 && (h = ' class="' + u.join(" ") + '"'),
"<" + i + M + h + o;
});
}, Markdown.Extra.prototype.tables = function(e) {
function t(e, t, a, r) {
t = t.replace(/^ *[|]/m, ""), a = a.replace(/^ *[|]/m, ""), r = r.replace(/^ *[|]/gm, ""),
t = t.replace(/[|] *$/m, ""), a = a.replace(/[|] *$/m, ""), r = r.replace(/[|] *$/gm, ""),
alignspecs = a.split(/ *[|] */), align = [];
for (var o = 0; o < alignspecs.length; o++) {
var s = alignspecs[o];
align[o] = s.match(/^ *-+: *$/m) ? ' style="text-align:right;"' : s.match(/^ *:-+: *$/m) ? ' style="text-align:center;"' : s.match(/^ *:-+ *$/m) ? ' style="text-align:left;"' : "";
}
var c = t.split(/ *[|] */), M = c.length, u = i.tableClass ? ' class="' + i.tableClass + '"' : "", d = [ "<table", u, ">\n", "<thead>\n", "<tr>\n" ].join("");
for (o = 0; M > o; o++) {
var h = l(n(c[o]), i);
d += [ " <th", align[o], ">", h, "</th>\n" ].join("");
}
d += "</tr>\n</thead>\n";
var S = r.split("\n");
for (o = 0; o < S.length; o++) if (!S[o].match(/^\s*$/)) {
for (var p = S[o].split(/ *[|] */), m = M - p.length, g = 0; m > g; g++) p.push("");
for (d += "<tr>\n", g = 0; M > g; g++) {
var f = l(n(p[g]), i);
d += [ " <td", align[g], ">", f, "</td>\n" ].join("");
}
d += "</tr>\n";
}
return d += "</table>\n", i.hashExtraBlock(d);
}
var i = this, a = new RegExp([ "^", "[ ]{0,3}", "[|]", "(.+)\\n", "[ ]{0,3}", "[|]([ ]*[-:]+[-| :]*)\\n", "(", "(?:[ ]*[|].*\\n?)*", ")", "(?:\\n|$)" ].join(""), "gm"), r = new RegExp([ "^", "[ ]{0,3}", "(\\S.*[|].*)\\n", "[ ]{0,3}", "([-:]+[ ]*[|][-| :]*)\\n", "(", "(?:.*[|].*\\n?)*", ")", "(?:\\n|$)" ].join(""), "gm");
return e = e.replace(a, t), e = e.replace(r, t);
}, Markdown.Extra.prototype.stripFootnoteDefinitions = function(n) {
var e = this;
return n = n.replace(/\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/g, function(n, t, i) {
return t = d(t), i += "\n", i = i.replace(/^[ ]{0,3}/g, ""), e.footnotes[t] = i,
"\n";
});
}, Markdown.Extra.prototype.doFootnotes = function(n) {
var e = this;
if (e.isConvertingFootnote === !0) return n;
var t = 0;
return n = n.replace(/\[\^(.+?)\]/g, function(n, i) {
var a = d(i), r = e.footnotes[a];
if (void 0 === r) return n;
t++, e.usedFootnotes.push(a);
var o = '<a href="#fn:' + a + '" id="fnref:' + a + '" title="See footnote" class="footnote">' + t + "</a>";
return e.hashExtraInline(o);
});
}, Markdown.Extra.prototype.printFootnotes = function(n) {
var e = this;
if (0 === e.usedFootnotes.length) return n;
n += '\n\n<div class="footnotes">\n<hr>\n<ol>\n\n';
for (var t = 0; t < e.usedFootnotes.length; t++) {
var i = e.usedFootnotes[t], a = e.footnotes[i];
e.isConvertingFootnote = !0;
var r = l(a, e);
delete e.isConvertingFootnote, n += '<li id="fn:' + i + '">' + r + ' <a href="#fnref:' + i + '" title="Return to article" class="reversefootnote">&#8617;</a></li>\n\n';
}
return n += "</ol>\n</div>";
}, Markdown.Extra.prototype.fencedCodeBlocks = function(n) {
function e(n) {
return n = n.replace(/&/g, "&amp;"), n = n.replace(/</g, "&lt;"), n = n.replace(/>/g, "&gt;"),
n = n.replace(/~D/g, "$$"), n = n.replace(/~T/g, "~");
}
var t = this;
return n = n.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g, function(n, i, a) {
var r = i, o = a, s = t.googleCodePrettify ? ' class="prettyprint"' : "", l = "";
r && (l = t.googleCodePrettify || t.highlightJs ? ' class="language-' + r + '"' : ' class="' + r + '"');
var c = [ "<pre", s, "><code", l, ">", e(o), "</code></pre>" ].join("");
return t.hashExtraBlock(c);
});
};
var m = function(n, e, t, i, a, r, o) {
var s = r, l = 0, c = "";
return s.replace(/(<)([a-zA-Z1-6]*)([^\n>]?)(>)(.*?)(<\/\2>)/gm, function(n, e, t, i, a, r, o, M) {
c += S(s.substring(l, M)) + m(n, e, t, i, a, r, o), l = M + n.length;
}), c += S(s.substring(l)), e + t + i + a + c + o;
};
Markdown.Extra.prototype.runSmartyPants = function(n) {
return n = n.replace(/(<)([a-zA-Z1-6]+)([^\n>]*?)(>)(.*?)(<\/\2>)/gm, m), n = n.replace(/(<([a-zA-Z1-6]+)\b([^\n>]*?)(\/)?>)/g, h),
n = n.replace(/((<)(code|kbd|pre|script|noscript|iframe|math|ins|del|pre)(.?)(>)(.*?)(<\/)(code|kbd|pre|script|noscript|iframe|math|ins|del|pre)(>))/gm, h);
}, Markdown.Extra.prototype.definitionLists = function(e) {
var t = new RegExp([ "(\\x02\\n?|\\n\\n)", "(?:", "(", "(", "[ ]{0,3}", "((?:[ \\t]*\\S.*\\n)+)", "\\n?", "[ ]{0,3}:[ ]+", ")", "([\\s\\S]+?)", "(", "(?=\\0x03)", "|", "(?=", "\\n{2,}", "(?=\\S)", "(?!", "[ ]{0,3}", "(?:\\S.*\\n)+?", "\\n?", "[ ]{0,3}:[ ]+", ")", "(?!", "[ ]{0,3}:[ ]+", ")", ")", ")", ")", ")" ].join(""), "gm"), i = this;
return e = o(e), e = e.replace(t, function(e, t, a) {
var r = n(i.processDefListItems(a));
return r = "<dl>\n" + r + "\n</dl>", t + i.hashExtraBlock(r) + "\n\n";
}), s(e);
}, Markdown.Extra.prototype.processDefListItems = function(i) {
var a = this, r = new RegExp([ "(\\x02\\n?|\\n\\n+)", "(", "[ ]{0,3}", "(?![:][ ]|[ ])", "(?:\\S.*\\n)+?", ")", "(?=\\n?[ ]{0,3}:[ ])" ].join(""), "gm"), M = new RegExp([ "\\n(\\n+)?", "(", "[ ]{0,3}", "[:][ ]+", ")", "([\\s\\S]+?)", "(?=\\n*", "(?:", "\\n[ ]{0,3}[:][ ]|", "<dt>|\\x03", ")", ")" ].join(""), "gm");
return i = o(i), i = i.replace(/\n{2,}(?=\\x03)/, "\n"), i = i.replace(r, function(e, t, i) {
for (var r = n(i).split("\n"), o = "", s = 0; s < r.length; s++) {
var c = r[s];
c = l(n(c), a), o += "\n<dt>" + c + "</dt>";
}
return o + "\n";
}), i = i.replace(M, function(n, i, r, o) {
return i || o.match(/\n{2,}/) ? (o = Array(r.length + 1).join(" ") + o, o = t(o) + "\n\n",
o = "\n" + c(o, a) + "\n") : (o = e(o), o = l(t(o), a)), "\n<dd>" + o + "</dd>\n";
}), s(i);
};
}(), define("pagedown-extra", function() {}), define("extensions/markdownExtra", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/markdownExtraSettingsBlock.html", "pagedown-extra" ], function(n, e, t, i, a) {
var r = new i("markdownExtra", "Markdown Extra", !0);
r.settingsBlock = a, r.defaultConfig = {
extensions: [ "fenced_code_gfm", "tables", "def_list", "attr_list", "footnotes", "smartypants" ],
highlighter: "prettify"
}, r.onLoadSettings = function() {
function n(n) {
return e.some(r.config.extensions, function(e) {
return e == n;
});
}
t.setInputChecked("#input-markdownextra-fencedcodegfm", n("fenced_code_gfm")), t.setInputChecked("#input-markdownextra-tables", n("tables")),
t.setInputChecked("#input-markdownextra-deflist", n("def_list")), t.setInputChecked("#input-markdownextra-attrlist", n("attr_list")),
t.setInputChecked("#input-markdownextra-footnotes", n("footnotes")), t.setInputChecked("#input-markdownextra-smartypants", n("smartypants")),
t.setInputValue("#input-markdownextra-highlighter", r.config.highlighter);
}, r.onSaveSettings = function(n) {
n.extensions = [], t.getInputChecked("#input-markdownextra-fencedcodegfm") && n.extensions.push("fenced_code_gfm"),
t.getInputChecked("#input-markdownextra-tables") && n.extensions.push("tables"),
t.getInputChecked("#input-markdownextra-deflist") && n.extensions.push("def_list"),
t.getInputChecked("#input-markdownextra-attrlist") && n.extensions.push("attr_list"),
t.getInputChecked("#input-markdownextra-footnotes") && n.extensions.push("footnotes"),
t.getInputChecked("#input-markdownextra-smartypants") && n.extensions.push("smartypants"),
n.highlighter = t.getInputValue("#input-markdownextra-highlighter");
};
var o = void 0;
return r.onEventMgrCreated = function(n) {
o = n;
}, r.onPagedownConfigure = function(n) {
var t = n.getConverter(), i = {
extensions: r.config.extensions
};
if ("highlight" == r.config.highlighter) {
i.highlighter = "prettify";
var a = document.getElementById("preview-contents");
n.hooks.chain("onPreviewRefresh", function() {
e.each(a.querySelectorAll(".prettyprint"), function(n) {
hljs.highlightBlock(n);
});
});
} else "prettify" == r.config.highlighter && (i.highlighter = "prettify", n.hooks.chain("onPreviewRefresh", prettyPrint));
Markdown.Extra.init(t, i), o.onExtraExtensions(r.config.extensions);
}, r;
}), define("text!html/buttonToc.html", [], function() {
return '<button class="btn btn-default dropdown-toggle" title="Table of contents" data-toggle="dropdown">\n <i class="icon-list"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>Table of contents</h3>\n <div class="table-of-contents">\n </div>\n</div>\n';
}), define("text!html/tocSettingsBlock.html", [], function() {
return '<p>Generates a table of contents when a [TOC] marker is found.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-toc-marker">Marker\n RegExp</label>\n <div class="col-lg-7">\n \n <input type="text" id="input-toc-marker" class="col-lg-4 form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-toc-button">Button over preview</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-toc-button">\n </div>\n </div>\n </div>\n \n</div>';
}), define("extensions/toc", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/buttonToc.html", "text!html/tocSettingsBlock.html" ], function(n, e, t, i, a, r) {
function o(n, e, t) {
this.tagName = n, this.anchor = e, this.text = t, this.children = [];
}
function s(n, t) {
function i() {
void 0 !== l && (l.children.length > 0 && (l.children = s(l.children, t + 1)), r.push(l));
}
t = t || 1;
var a = "H" + t, r = [], l = void 0;
return e.each(n, function(n) {
n.tagName != a ? (void 0 === l && (l = new o()), l.children.push(n)) : (i(), l = n);
}), i(), r;
}
function l() {
function n(n) {
for (var a = n.id || t.slugify(n.textContent) || "title", r = a, o = 0; e.has(i, r); ) r = a + "-" + ++o;
return i[r] = !0, n.id = r, r;
}
var i = {}, a = [];
return e.each(M.querySelectorAll(".preview-content > .wmd-title"), function(e) {
a.push(new o(e.tagName, n(e), e.textContent));
}), a = s(a), '<div class="toc">\n<ul>\n' + a.join("") + "</ul>\n</div>\n";
}
var c = new i("toc", "Table of Contents", !0);
c.settingsBlock = r, c.defaultConfig = {
marker: "\\[(TOC|toc)\\]",
button: !0
}, c.onLoadSettings = function() {
t.setInputValue("#input-toc-marker", c.config.marker), t.setInputChecked("#input-toc-button", c.config.button);
}, c.onSaveSettings = function(n, e) {
n.marker = t.getInputRegExpValue("#input-toc-marker", e), n.button = t.getInputChecked("#input-toc-button");
}, c.onCreatePreviewButton = function() {
return c.config.button ? a : void 0;
}, o.prototype.childrenToString = function() {
if (0 === this.children.length) return "";
var n = "<ul>\n";
return e.each(this.children, function(e) {
n += e.toString();
}), n += "</ul>\n";
}, o.prototype.toString = function() {
var n = "<li>";
return this.anchor && this.text && (n += '<a href="#' + this.anchor + '">' + this.text + "</a>"),
n += this.childrenToString() + "</li>\n";
};
var M = void 0;
return c.onPagedownConfigure = function(n) {
M = document.getElementById("preview-contents");
var t = document.querySelectorAll(".table-of-contents"), i = new RegExp("^" + c.config.marker + "$", "g");
n.hooks.chain("onPreviewRefresh", function() {
var n = l();
e.each(M.getElementsByTagName("p"), function(e) {
i.test(e.innerHTML) && (e.innerHTML = n);
}), e.each(t, function(e) {
e.innerHTML = n;
});
});
}, c;
}), define("text!html/mathJaxSettingsBlock.html", [], function() {
return '<p>Allows StackEdit to interpret LaTeX mathematical expressions.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-mathjax-config-tex">TeX configuration</label>\n <div class="col-lg-7">\n <input type="text" id="input-mathjax-config-tex" class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-mathjax-config-tex2jax">tex2jax configuration</label>\n <div class="col-lg-7">\n <input type="text" id="input-mathjax-config-tex2jax" class="form-control">\n </div>\n </div>\n</div>\n<span class="help-block pull-right"><a target="_blank" href="http://docs.mathjax.org/en/latest/options/index.html">More info</a></span>';
}), define("text!libs/mathjax_config.js", [], function() {
return 'MathJax.Hub.Config({\n "HTML-CSS": {\n preferredFont: "TeX",\n availableFonts: [\n "STIX",\n "TeX"\n ],\n linebreaks: {\n automatic: true\n },\n EqnChunk: 10,\n imageFont: null\n },\n tex2jax: <%= tex2jax || \'{ inlineMath: [["$","$"],["\\\\\\\\\\\\\\\\(","\\\\\\\\\\\\\\\\)"]], displayMath: [["$$","$$"],["\\\\\\\\[","\\\\\\\\]"]], processEscapes: true }\' %>,\n TeX: $.extend({\n noUndefined: {\n attributes: {\n mathcolor: "red",\n mathbackground: "#FFEEEE",\n mathsize: "90%"\n }\n },\n Safe: {\n allow: {\n URLs: "safe",\n classes: "safe",\n cssIDs: "safe",\n styles: "safe",\n fontsize: "all"\n }\n }\n }, <%= tex %>),\n messageStyle: "none"\n});\n';
}), define("libs/mathjax_init", [ "settings", "text!libs/mathjax_config.js" ], function(n, e) {
var t = document.createElement("script");
t.type = "text/x-mathjax-config", t.innerHTML = _.template(e, {
tex: n.extensionSettings.mathJax ? n.extensionSettings.mathJax.tex : "undefined",
tex2jax: n.extensionSettings.mathJax ? n.extensionSettings.mathJax.tex2jax : void 0
}), document.getElementsByTagName("head")[0].appendChild(t);
}), define("extensions/mathJax", [ "utils", "classes/Extension", "text!html/mathJaxSettingsBlock.html", "mathjax" ], function(n, e, t) {
function i(n, e, t) {
var i = M.slice(n, e + 1).join("").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
for (y.Browser.isMSIE && (i = i.replace(/(%[^\n]*)\n/g, "$1<br/>\n")); e > n; ) M[e] = "",
e--;
M[n] = "@@" + p.length + "@@", t && (i = t(i)), p.push(i), u = d = h = null;
}
function a(n) {
u = d = h = null, p = [];
var e;
/`/.test(n) ? (n = n.replace(/~/g, "~T").replace(/(^|[^\\])(`+)([^\n]*?[^`\n])\2(?!`)/gm, function(n) {
return n.replace(/\$/g, "~D");
}), e = function(n) {
return n.replace(/~([TD])/g, function(n, e) {
return {
T: "~",
D: "$"
}[e];
});
}) : e = function(n) {
return n;
}, M = v(n.replace(/\r\n?/g, "\n"), D);
for (var n = 1, t = M.length; t > n; n += 2) {
var a = M[n];
"@" === a.charAt(0) ? (M[n] = "@@" + p.length + "@@", p.push(a)) : u ? a === d ? S ? h = n : i(u, n, e) : a.match(/\n.*\n/) ? (h && (n = h,
i(u, n, e)), u = d = h = null, S = 0) : "{" === a ? S++ : "}" === a && S && S-- : a === b || "$$" === a ? (u = n,
d = a, S = 0) : "begin" === a.substr(1, 5) && (u = n, d = "\\end" + a.substr(6),
S = 0);
}
return h && i(u, h, e), e(M.join(""));
}
function r(n) {
return n = n.replace(/@@(\d+)@@/g, function(n, e) {
return p[e];
}), p = null, n;
}
function o() {
g = !1, y.cancelTypeset = !1, y.Queue([ "Typeset", y, f ]), y.Queue(c);
}
function s() {
!g && (g = !0, y.Cancel(), y.Queue(o));
}
var l = new e("mathJax", "MathJax", !0);
l.settingsBlock = t, l.defaultConfig = {
tex: "{}",
tex2jax: '{ inlineMath: [["$","$"],["\\\\\\\\(","\\\\\\\\)"]], displayMath: [["$$","$$"],["\\\\[","\\\\]"]], processEscapes: true }'
}, l.onLoadSettings = function() {
n.setInputValue("#input-mathjax-config-tex", l.config.tex), n.setInputValue("#input-mathjax-config-tex2jax", l.config.tex2jax);
}, l.onSaveSettings = function(e, t) {
e.tex = n.getInputJsValue("#input-mathjax-config-tex", t), e.tex2jax = n.getInputJsValue("#input-mathjax-config-tex2jax", t);
}, l.onPagedownConfigure = function(n) {
f = document.getElementById("preview-contents");
var e = n.getConverter();
e.hooks.chain("preConversion", a), e.hooks.chain("postConversion", r);
};
var c = void 0;
l.onAsyncPreview = function(n) {
c = n, s();
};
var M, u, d, h, S, p, m = !1, g = !1, f = null, b = "$", y = MathJax.Hub;
y.Queue(function() {
m = !0, y.processUpdateTime = 50, y.Config({
"HTML-CSS": {
EqnChunk: 10,
EqnChunkFactor: 1
},
SVG: {
EqnChunk: 10,
EqnChunkFactor: 1
}
});
});
var v, D = /(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[\\{}$]|[{}]|(?:\n\s*)+|@@\d+@@)/i;
return v = 3 === "aba".split(/(b)/).length ? function(n, e) {
return n.split(e);
} : function(n, e) {
var t, i = [];
if (!e.global) {
t = e.toString();
var a = "";
t = t.replace(/^\/(.*)\/([im]*)$/, function(n, e, t) {
return a = t, e;
}), e = RegExp(t, a + "g");
}
for (var r = e.lastIndex = 0; t = e.exec(n); ) i.push(n.substring(r, t.index)),
i.push.apply(i, t.slice(1)), r = t.index + t[0].length;
return i.push(n.substring(r)), i;
}, function() {
var n = MathJax.Hub;
if (!n.Cancel) {
n.cancelTypeset = !1, n.Register.StartupHook("HTML-CSS Jax Config", function() {
var e = MathJax.OutputJax["HTML-CSS"], t = e.Translate;
e.Augment({
Translate: function(i, a) {
if (n.cancelTypeset || a.cancelled) throw Error("MathJax Canceled");
return t.call(e, i, a);
}
});
}), n.Register.StartupHook("SVG Jax Config", function() {
var e = MathJax.OutputJax.SVG, t = e.Translate;
e.Augment({
Translate: function(i, a) {
if (n.cancelTypeset || a.cancelled) throw Error("MathJax Canceled");
return t.call(e, i, a);
}
});
}), n.Register.StartupHook("TeX Jax Config", function() {
var e = MathJax.InputJax.TeX, t = e.Translate;
e.Augment({
Translate: function(i, a) {
if (n.cancelTypeset || a.cancelled) throw Error("MathJax Canceled");
return t.call(e, i, a);
}
});
});
var e = n.processError;
n.processError = function(t, i, a) {
return "MathJax Canceled" !== t.message ? e.call(n, t, i, a) : (MathJax.Message.Clear(0, 0),
i.jaxIDs = [], i.jax = {}, i.scripts = [], i.i = i.j = 0, i.cancelled = !0, null);
}, n.Cancel = function() {
this.cancelTypeset = !0;
};
}
}(), l;
}), define("extensions/emailConverter", [ "classes/Extension" ], function(n) {
var e = new n("emailConverter", "Markdown Email", !0);
return e.settingsBlock = "<p>Converts email adresses in the form &lt;email@example.com&gt; into clickable links.</p>",
e.onPagedownConfigure = function(n) {
n.getConverter().hooks.chain("postConversion", function(n) {
return n.replace(/<(mailto\:)?([^\s>]+@[^\s>]+\.\S+?)>/g, function(n, e, t) {
return '<a href="mailto:' + t + '">' + t + "</a>";
});
});
}, e;
}), define("text!html/scrollLinkSettingsBlock.html", [], function() {
return "<p>Binds together editor and preview scrollbars.</p>\n<blockquote>\n <b>NOTE:</b> The mapping between Markdown and HTML is based on the\n position of the title elements (h1, h2...) in the page. Therefore if\n your document does not contain any title, the mapping will be linear and\n consequently less accurate.\n</blockquote>";
}), define("extensions/scrollLink", [ "jquery", "underscore", "classes/Extension", "text!html/scrollLinkSettingsBlock.html" ], function(n, e, t, i) {
function a(n) {
return parseFloat(n.substring(0, n.length - 2));
}
var r = new t("scrollLink", "Scroll Link", !0, !0, !0);
r.settingsBlock = i;
var o = void 0;
r.onAceCreated = function(n) {
o = n;
};
var s = void 0;
r.onSectionsCreated = function(n) {
s = n;
};
var l = 0;
r.onMarkdownTrim = function(n) {
l = n;
};
var c = void 0, M = [], u = [], d = void 0, h = void 0, S = e.debounce(function() {
M = [];
var t = 0, i = 0, r = l;
e.each(s, function(n) {
t += n.length + r, r = 0;
var e = o.session.doc.indexToPosition(t), a = o.session.documentToScreenPosition(e.row, e.column), s = a.row * o.renderer.lineHeight, l = s - i;
M.push({
startOffset: i,
endOffset: s,
height: l
}), i = s;
}), u = [];
var S = 0, p = c.scrollTop();
c.find(".preview-content > .wmd-title").each(function() {
var e = n(this), t = e.position().top + p + a(e.css("margin-top"));
u.push({
startOffset: S,
endOffset: t,
height: t - S
}), S = t;
});
var m = c.prop("scrollHeight");
u.push({
startOffset: S,
endOffset: m,
height: m - S
}), d = -10, h = -10, b();
}, 500), p = !1, m = !1, g = !1, f = !1, b = e.debounce(function() {
function t(n, t, i) {
var a = void 0, r = e.find(t, function(e, t) {
return a = t, n < e.endOffset;
});
if (void 0 !== r) {
var o = (n - r.startOffset) / r.height, s = i[a];
return s.startOffset + s.height * o;
}
}
if (0 === M.length || M.length !== u.length) return b(), void 0;
var i = o.renderer.getScrollTop(), a = c.scrollTop();
if (p === !0 && Math.abs(i - d) > 9) {
p = !1, d = i;
var r = t(i, M, u);
r = e.min([ r, c.prop("scrollHeight") - c.outerHeight() ]), Math.abs(r - a) <= 9 ? h = a : (f = !0,
c.animate({
scrollTop: r
}, {
easing: "easeOutSine",
complete: function() {
h = r;
},
always: function() {
e.defer(function() {
f = !1;
});
}
}));
} else if (m === !0 && Math.abs(a - h) > 9) {
m = !1, h = a;
var r = t(a, u, M);
r = e.min([ r, o.session.getScreenLength() * o.renderer.lineHeight - o.renderer.$size.scrollerHeight ]),
Math.abs(r - i) <= 9 ? d = i : (g = !0, n("<div>").animate({
value: r - i
}, {
easing: "easeOutSine",
step: function(n) {
o.session.setScrollTop(i + n);
},
complete: function() {
d = r;
},
always: function() {
e.defer(function() {
g = !1;
});
}
}));
}
}, 500);
r.onLayoutResize = function() {
p = !0, S();
}, r.onFileClosed = function() {
M = [];
};
var y = !1;
r.onReady = function() {
c = n(".preview-container"), c.scroll(function() {
f === !1 && y === !1 && (m = !0, p = !1, b()), y = !1;
}), o.session.on("changeScrollTop", function() {
g === !1 && (p = !0, m = !1, b());
});
};
var v = void 0;
return r.onPagedownConfigure = function(e) {
v = n("#preview-contents"), e.getConverter().hooks.chain("postConversion", function(n) {
return v.height(v.height()), n;
});
}, r.onPreviewFinished = function() {
var n = v.height();
v.height("auto");
var e = v.height();
p = !0, n > e && (y = !0), S();
}, r;
}), define("extensions/buttonFocusMode", [ "jquery", "underscore", "crel", "classes/Extension" ], function(n, e, t, i) {
function a() {
if (s !== !1 && l !== !0) {
var n = o.selection.getCursor(), e = o.session.documentToScreenPosition(n.row, n.column);
o.session.setScrollTop((e.row + .5) * o.renderer.lineHeight - o.renderer.$size.scrollerHeight / 2);
}
}
var r = new i("buttonFocusMode", 'Button "Focus Mode"', !0, !0, !0);
r.settingsBlock = "When typing, scrolls automatically the editor to always have the caret centered verticaly.";
var o = void 0;
r.onAceCreated = function(n) {
o = n;
};
var s = !1, l = !1, c = void 0;
return r.onReady = function() {
o.getSession().selection.on("changeCursor", a), o.container.addEventListener("keydown", function() {
l = !1;
}, !0), o.container.addEventListener("mousedown", function() {
l = !0;
}, !0), "on" == localStorage.focusMode && c.click();
}, r.onCreateEditorButton = function() {
return c = n([ '<button class="btn btn-info" title="Focus Mode" data-toggle="button">', ' <i class="icon-target"></i>', "</button>" ].join("")),
c.click(function() {
e.defer(function() {
s = c.is(".active"), localStorage.focusMode = s ? "on" : "off", l = !1, o.focus(),
a();
});
}), c[0];
}, r;
}), define("text!html/buttonSyncSettingsBlock.html", [], function() {
return '<p>Adds a "Synchronize documents" button in the navigation bar.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-5 control-label" for="input-sync-period">Sync\n period (0: manual)</label>\n <div class="col-lg-6 form-inline">\n <input type="text" id="input-sync-period"\n class="col-lg-5 form-control" placeholder="180000"> ms\n </div>\n </div>\n</div>';
}), define("extensions/buttonSync", [ "jquery", "underscore", "crel", "utils", "classes/Extension", "text!html/buttonSyncSettingsBlock.html" ], function(n, e, t, i, a, r) {
var o = new a("buttonSync", 'Button "Synchronize"');
o.settingsBlock = r, o.defaultConfig = {
syncPeriod: 18e4
}, o.onLoadSettings = function() {
i.setInputValue("#input-sync-period", o.config.syncPeriod);
}, o.onSaveSettings = function(n, e) {
n.syncPeriod = i.getInputIntValue("#input-sync-period", e, 0);
};
var s = void 0;
o.onSynchronizerCreated = function(n) {
s = n;
};
var l = void 0, c = !1, M = !1, u = function() {
void 0 !== l && (c === !0 || s.hasSync() === !1 || M ? l.addClass("disabled") : l.removeClass("disabled"));
}, d = 0;
return o.onPeriodicRun = function() {
viewerMode === !0 || !o.config.syncPeriod || d + o.config.syncPeriod > i.currentTime || s.sync() === !0 && (d = i.currentTime);
}, o.onCreateButton = function() {
var e = t("button", {
"class": "btn btn-success button-synchronize",
title: "Synchronize all"
}, t("i", {
"class": "icon-refresh"
}));
return l = n(e).click(function() {
n(this).hasClass("disabled") || s.sync();
}), e;
}, o.onReady = u, o.onFileCreated = u, o.onFileDeleted = u, o.onSyncImportSuccess = u,
o.onSyncExportSuccess = u, o.onSyncRemoved = u, o.onSyncRunning = function(n) {
c = n, u();
}, o.onOfflineChanged = function(n) {
M = n, u();
}, o;
}), define("extensions/buttonPublish", [ "jquery", "underscore", "crel", "classes/Extension" ], function(n, e, t, i) {
function a() {
void 0 !== o && (l === !0 || c === !1 || M === !0 ? o.addClass("disabled") : o.removeClass("disabled"));
}
var r = new i("buttonPublish", 'Button "Publish"'), o = void 0, s = void 0, l = !1, c = !1, M = !1, u = void 0;
r.onPublisherCreated = function(n) {
u = n;
}, r.onCreateButton = function() {
var e = t("button", {
"class": "btn btn-success button-publish",
title: "Publish this document"
}, t("i", {
"class": "icon-share"
})), i = n(e);
return i.click(function() {
i.hasClass("disabled") || u.publish();
}), e;
}, r.onPublishRunning = function(n) {
l = n, a();
}, r.onOfflineChanged = function(n) {
M = n, a();
};
var d = function() {
c = 0 === e.size(s.publishLocations) ? !1 : !0, a();
};
return r.onFileSelected = function(n) {
s = n, d();
}, r.onPublishRemoved = d, r.onNewPublishSuccess = d, r;
}), define("text!html/buttonShare.html", [], function() {
return '<button class="btn btn-success dropdown-toggle" data-toggle="dropdown"\n title="Share this document">\n <i class="icon-link"></i>\n</button>\n<div class="dropdown-menu pull-right link-container">\n <h3>Sharing</h3>\n <div class="link-list"></div>\n <p class="no-link">To share this document you need first to <a\n href="#" class="action-publish-gist">publish it as a Gist</a> in\n Markdown format.\n </p>\n <blockquote>\n <b>NOTE:</b> You can open any URL within StackEdit using <a\n href="viewer.html?url=https://raw.github.com/benweet/stackedit/master/README.md"\n title="Sharing example">viewer.html?url=...</a>\n </blockquote>\n</div>\n';
}), define("text!html/buttonShareLocation.html", [], function() {
return '<div class="input-group">\n <a href="<%= link %>" class="input-group-addon" title="Sharing location"><i\n class="icon-link"></i></a> <input class="col-lg-5 form-control" type="text"\n value="<%= link %>" readonly />\n</div>\n';
}), define("extensions/buttonShare", [ "jquery", "underscore", "classes/Extension", "text!html/buttonShare.html", "text!html/buttonShareLocation.html" ], function(n, e, t, i, a) {
var r = new t("buttonShare", 'Button "Share"', !0, !0);
r.settingsBlock = '<p>Adds a "Share document" button in the navigation bar.</p>',
r.onCreateButton = function() {
return i;
};
var o = void 0, s = void 0, l = void 0, c = function(n) {
if (void 0 === n || n === o) {
var t = e.reduce(o.publishLocations, function(n, t) {
return t.sharingLink && (n += e.template(a, {
link: t.sharingLink
})), n;
}, "");
s.innerHTML = t, l.toggleClass("hide", 0 !== t.length);
}
};
return r.onFileSelected = function(n) {
o = n, c(n);
}, r.onNewPublishSuccess = c, r.onPublishRemoved = c, r.onReady = function() {
var e = document.querySelector(".link-container");
s = e.querySelector(".link-list"), l = n(e.querySelector(".no-link"));
}, r;
}), define("text!html/buttonStat.html", [], function() {
return '<button class="btn btn-default dropdown-toggle" title="Document statistics" data-toggle="dropdown">\n <i class="icon-chart-bar"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>Statistics</h3>\n <div class="stat">\n <div>\n <%= name1 %>: <span id="span-stat-value1"></span>\n </div>\n <div>\n <%= name2 %>: <span id="span-stat-value2"></span>\n </div>\n <div>\n <%= name3 %>: <span id="span-stat-value3"></span>\n </div>\n </div>\n</div>\n';
}), define("text!html/buttonStatSettingsBlock.html", [], function() {
return '<p>Adds a "Document statistics" button over the preview.</p>\n<div class="form-horizontal">\n <div class="form-group form-inline">\n <label class="label-text" for="input-stat-name1">Title</label> <input\n id="input-stat-name1" type="text" class="form-control col-lg-3"> <label\n class="label-text" for="input-stat-value1">RegExp</label> <input\n id="input-stat-value1" type="text" class="form-control col-lg-4">\n </div>\n <div class="form-group form-inline">\n <label class="label-text" for="input-stat-name2">Title</label> <input\n id="input-stat-name2" type="text" class="form-control col-lg-3"> <label\n class="label-text" for="input-stat-value2">RegExp</label> <input\n id="input-stat-value2" type="text" class="form-control col-lg-4">\n </div>\n <div class="form-group form-inline">\n <label class="label-text" for="input-stat-name3">Title</label> <input\n id="input-stat-name3" type="text" class="form-control col-lg-3"> <label\n class="label-text" for="input-stat-value3">RegExp</label> <input\n id="input-stat-value3" type="text" class="form-control col-lg-4">\n </div>\n</div>\n';
}), define("extensions/buttonStat", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/buttonStat.html", "text!html/buttonStatSettingsBlock.html" ], function(n, e, t, i, a, r) {
var o = new i("buttonStat", 'Button "Statistics"', !0, !0);
o.settingsBlock = r, o.defaultConfig = {
name1: "Characters",
value1: "\\S",
name2: "Words",
value2: "\\S+",
name3: "Paragraphs",
value3: "\\S.*"
}, o.onLoadSettings = function() {
e.each([ 1, 2, 3 ], function(n) {
t.setInputValue("#input-stat-name" + n, o.config["name" + n]), t.setInputValue("#input-stat-value" + n, o.config["value" + n]);
});
}, o.onSaveSettings = function(n, i) {
e.each([ 1, 2, 3 ], function(e) {
n["name" + e] = t.getInputTextValue("#input-stat-name" + e, i), n["value" + e] = t.getInputRegExpValue("#input-stat-value" + e, i);
});
}, o.onCreatePreviewButton = function() {
return e.template(a, o.config);
};
var s = void 0, l = void 0, c = void 0, M = void 0;
return o.onReady = function() {
s = document.getElementById("preview-contents"), l = document.getElementById("span-stat-value1"),
c = document.getElementById("span-stat-value2"), M = document.getElementById("span-stat-value3");
}, o.onPreviewFinished = function() {
for (var n = s.cloneNode(!0), e = n.getElementsByTagName("script"), t = e.length - 1; t >= 0; t--) {
var i = e[t];
i.parentNode.removeChild(i);
}
var a = n.textContent;
l.textContent = (a.match(new RegExp(o.config.value1, "g")) || []).length, c.textContent = (a.match(new RegExp(o.config.value2, "g")) || []).length,
M.textContent = (a.match(new RegExp(o.config.value3, "g")) || []).length;
}, o;
}), define("text!html/buttonHtmlCode.html", [], function() {
return '<button class="btn btn-default dropdown-toggle action-html-code" title="HTML code" data-toggle="dropdown">\n <i class="icon-code"></i>\n</button>\n<div class="dropdown-menu pull-right">\n <h3>HTML code</h3>\n <textarea id="input-html-code" class="form-control"></textarea>\n</div>\n';
}), define("text!html/buttonHtmlCodeSettingsBlock.html", [], function() {
return '<p>Adds a "HTML code" button over the preview.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="textarea-html-code-template">Template\n <a href="#" class="tooltip-template">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-html-code-template" class="form-control"></textarea>\n </div>\n </div>\n</div>';
}), define("extensions/buttonHtmlCode", [ "jquery", "underscore", "utils", "classes/Extension", "text!html/buttonHtmlCode.html", "text!html/buttonHtmlCodeSettingsBlock.html" ], function(n, e, t, i, a, r) {
var o = new i("buttonHtmlCode", 'Button "HTML code"', !0, !0);
o.settingsBlock = r, o.defaultConfig = {
template: "<%= documentHTML %>"
}, o.onLoadSettings = function() {
t.setInputValue("#textarea-html-code-template", o.config.template);
}, o.onSaveSettings = function(n) {
n.template = t.getInputValue("#textarea-html-code-template");
};
var s = void 0;
o.onEventMgrCreated = function(n) {
s = n;
}, o.onCreatePreviewButton = function() {
return a;
};
var l = void 0;
o.onFileSelected = function(n) {
l = n;
};
var c = void 0;
return o.onPreviewFinished = function(n) {
try {
var t = e.template(o.config.template, {
documentTitle: l.title,
documentMarkdown: l.content,
documentHTML: n,
frontMatter: l.frontMatter,
publishAttributes: void 0
});
c.value = t;
} catch (i) {
return s.onError(i), i.message;
}
}, o.onReady = function() {
c = document.getElementById("input-html-code"), n(".action-html-code").click(function() {
e.defer(function() {
n("#input-html-code").each(function() {
n(this).is(":hidden") || this.select();
});
});
});
}, o;
}), define("text!html/buttonViewer.html", [], function() {
return '<a href="viewer.html" class="btn btn-default dropdown-toggle"\n title="Open in viewer">\n <i class="icon-resize-full"></i>\n</a>\n';
}), define("extensions/buttonViewer", [ "jquery", "classes/Extension", "text!html/buttonViewer.html" ], function(n, e, t) {
var i = new e("buttonViewer", 'Button "Viewer"', !0, !0);
return i.settingsBlock = '<p>Adds a "Viewer" button over the preview.</p>', i.onCreatePreviewButton = function() {
return t;
}, i;
}), !jQuery) throw new Error("Bootstrap requires jQuery");
+function(n) {
function e() {
var n = document.createElement("bootstrap"), e = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var t in e) if (void 0 !== n.style[t]) return {
end: e[t]
};
}
n.fn.emulateTransitionEnd = function(e) {
var t = !1, i = this;
n(this).one(n.support.transition.end, function() {
t = !0;
});
var a = function() {
t || n(i).trigger(n.support.transition.end);
};
return setTimeout(a, e), this;
}, n(function() {
n.support.transition = e();
});
}(window.jQuery), +function(n) {
var e = '[data-dismiss="alert"]', t = function(t) {
n(t).on("click", e, this.close);
};
t.prototype.close = function(e) {
function t() {
r.trigger("closed.bs.alert").remove();
}
var i = n(this), a = i.attr("data-target");
a || (a = i.attr("href"), a = a && a.replace(/.*(?=#[^\s]*$)/, ""));
var r = n(a);
e && e.preventDefault(), r.length || (r = i.hasClass("alert") ? i : i.parent()),
r.trigger(e = n.Event("close.bs.alert")), e.isDefaultPrevented() || (r.removeClass("in"),
n.support.transition && r.hasClass("fade") ? r.one(n.support.transition.end, t).emulateTransitionEnd(150) : t());
};
var i = n.fn.alert;
n.fn.alert = function(e) {
return this.each(function() {
var i = n(this), a = i.data("bs.alert");
a || i.data("bs.alert", a = new t(this)), "string" == typeof e && a[e].call(i);
});
}, n.fn.alert.Constructor = t, n.fn.alert.noConflict = function() {
return n.fn.alert = i, this;
}, n(document).on("click.bs.alert.data-api", e, t.prototype.close);
}(window.jQuery), +function(n) {
var e = function(t, i) {
this.$element = n(t), this.options = n.extend({}, e.DEFAULTS, i);
};
e.DEFAULTS = {
loadingText: "loading..."
}, e.prototype.setState = function(n) {
var e = "disabled", t = this.$element, i = t.is("input") ? "val" : "html", a = t.data();
n += "Text", a.resetText || t.data("resetText", t[i]()), t[i](a[n] || this.options[n]),
setTimeout(function() {
"loadingText" == n ? t.addClass(e).attr(e, e) : t.removeClass(e).removeAttr(e);
}, 0);
}, e.prototype.toggle = function() {
var n = this.$element.closest('[data-toggle="buttons"]');
if (n.length) {
var e = this.$element.find("input").prop("checked", !this.$element.hasClass("active")).trigger("change");
"radio" === e.prop("type") && n.find(".active").removeClass("active");
}
this.$element.toggleClass("active");
};
var t = n.fn.button;
n.fn.button = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.button"), r = "object" == typeof t && t;
a || i.data("bs.button", a = new e(this, r)), "toggle" == t ? a.toggle() : t && a.setState(t);
});
}, n.fn.button.Constructor = e, n.fn.button.noConflict = function() {
return n.fn.button = t, this;
}, n(document).on("click.bs.button.data-api", "[data-toggle^=button]", function(e) {
var t = n(e.target);
t.hasClass("btn") || (t = t.closest(".btn")), t.button("toggle"), e.preventDefault();
});
}(window.jQuery), +function(n) {
var e = function(e, t) {
this.$element = n(e), this.$indicators = this.$element.find(".carousel-indicators"),
this.options = t, this.paused = this.sliding = this.interval = this.$active = this.$items = null,
"hover" == this.options.pause && this.$element.on("mouseenter", n.proxy(this.pause, this)).on("mouseleave", n.proxy(this.cycle, this));
};
e.DEFAULTS = {
interval: 5e3,
pause: "hover",
wrap: !0
}, e.prototype.cycle = function(e) {
return e || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(n.proxy(this.next, this), this.options.interval)),
this;
}, e.prototype.getActiveIndex = function() {
return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(),
this.$items.index(this.$active);
}, e.prototype.to = function(e) {
var t = this, i = this.getActiveIndex();
return e > this.$items.length - 1 || 0 > e ? void 0 : this.sliding ? this.$element.one("slid", function() {
t.to(e);
}) : i == e ? this.pause().cycle() : this.slide(e > i ? "next" : "prev", n(this.$items[e]));
}, e.prototype.pause = function(e) {
return e || (this.paused = !0), this.$element.find(".next, .prev").length && n.support.transition.end && (this.$element.trigger(n.support.transition.end),
this.cycle(!0)), this.interval = clearInterval(this.interval), this;
}, e.prototype.next = function() {
return this.sliding ? void 0 : this.slide("next");
}, e.prototype.prev = function() {
return this.sliding ? void 0 : this.slide("prev");
}, e.prototype.slide = function(e, t) {
var i = this.$element.find(".item.active"), a = t || i[e](), r = this.interval, o = "next" == e ? "left" : "right", s = "next" == e ? "first" : "last", l = this;
if (!a.length) {
if (!this.options.wrap) return;
a = this.$element.find(".item")[s]();
}
this.sliding = !0, r && this.pause();
var c = n.Event("slide.bs.carousel", {
relatedTarget: a[0],
direction: o
});
if (!a.hasClass("active")) {
if (this.$indicators.length && (this.$indicators.find(".active").removeClass("active"),
this.$element.one("slid", function() {
var e = n(l.$indicators.children()[l.getActiveIndex()]);
e && e.addClass("active");
})), n.support.transition && this.$element.hasClass("slide")) {
if (this.$element.trigger(c), c.isDefaultPrevented()) return;
a.addClass(e), a[0].offsetWidth, i.addClass(o), a.addClass(o), i.one(n.support.transition.end, function() {
a.removeClass([ e, o ].join(" ")).addClass("active"), i.removeClass([ "active", o ].join(" ")),
l.sliding = !1, setTimeout(function() {
l.$element.trigger("slid");
}, 0);
}).emulateTransitionEnd(600);
} else {
if (this.$element.trigger(c), c.isDefaultPrevented()) return;
i.removeClass("active"), a.addClass("active"), this.sliding = !1, this.$element.trigger("slid");
}
return r && this.cycle(), this;
}
};
var t = n.fn.carousel;
n.fn.carousel = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.carousel"), r = n.extend({}, e.DEFAULTS, i.data(), "object" == typeof t && t), o = "string" == typeof t ? t : r.slide;
a || i.data("bs.carousel", a = new e(this, r)), "number" == typeof t ? a.to(t) : o ? a[o]() : r.interval && a.pause().cycle();
});
}, n.fn.carousel.Constructor = e, n.fn.carousel.noConflict = function() {
return n.fn.carousel = t, this;
}, n(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(e) {
var t, i = n(this), a = n(i.attr("data-target") || (t = i.attr("href")) && t.replace(/.*(?=#[^\s]+$)/, "")), r = n.extend({}, a.data(), i.data()), o = i.attr("data-slide-to");
o && (r.interval = !1), a.carousel(r), (o = i.attr("data-slide-to")) && a.data("bs.carousel").to(o),
e.preventDefault();
}), n(window).on("load", function() {
n('[data-ride="carousel"]').each(function() {
var e = n(this);
e.carousel(e.data());
});
});
}(window.jQuery), +function(n) {
var e = function(t, i) {
this.$element = n(t), this.options = n.extend({}, e.DEFAULTS, i), this.transitioning = null,
this.options.parent && (this.$parent = n(this.options.parent)), this.options.toggle && this.toggle();
};
e.DEFAULTS = {
toggle: !0
}, e.prototype.dimension = function() {
var n = this.$element.hasClass("width");
return n ? "width" : "height";
}, e.prototype.show = function() {
if (!this.transitioning && !this.$element.hasClass("in")) {
var e = n.Event("show.bs.collapse");
if (this.$element.trigger(e), !e.isDefaultPrevented()) {
var t = this.$parent && this.$parent.find("> .panel > .in");
if (t && t.length) {
var i = t.data("bs.collapse");
if (i && i.transitioning) return;
t.collapse("hide"), i || t.data("bs.collapse", null);
}
var a = this.dimension();
this.$element.removeClass("collapse").addClass("collapsing")[a](0), this.transitioning = 1;
var r = function() {
this.$element.removeClass("collapsing").addClass("in")[a]("auto"), this.transitioning = 0,
this.$element.trigger("shown.bs.collapse");
};
if (!n.support.transition) return r.call(this);
var o = n.camelCase([ "scroll", a ].join("-"));
this.$element.one(n.support.transition.end, n.proxy(r, this)).emulateTransitionEnd(350)[a](this.$element[0][o]);
}
}
}, e.prototype.hide = function() {
if (!this.transitioning && this.$element.hasClass("in")) {
var e = n.Event("hide.bs.collapse");
if (this.$element.trigger(e), !e.isDefaultPrevented()) {
var t = this.dimension();
this.$element[t](this.$element[t]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),
this.transitioning = 1;
var i = function() {
this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse");
};
return n.support.transition ? (this.$element[t](0).one(n.support.transition.end, n.proxy(i, this)).emulateTransitionEnd(350),
void 0) : i.call(this);
}
}
}, e.prototype.toggle = function() {
this[this.$element.hasClass("in") ? "hide" : "show"]();
};
var t = n.fn.collapse;
n.fn.collapse = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.collapse"), r = n.extend({}, e.DEFAULTS, i.data(), "object" == typeof t && t);
a || i.data("bs.collapse", a = new e(this, r)), "string" == typeof t && a[t]();
});
}, n.fn.collapse.Constructor = e, n.fn.collapse.noConflict = function() {
return n.fn.collapse = t, this;
}, n(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function(e) {
var t, i = n(this), a = i.attr("data-target") || e.preventDefault() || (t = i.attr("href")) && t.replace(/.*(?=#[^\s]+$)/, ""), r = n(a), o = r.data("bs.collapse"), s = o ? "toggle" : i.data(), l = i.attr("data-parent"), c = l && n(l);
o && o.transitioning || (c && c.find('[data-toggle=collapse][data-parent="' + l + '"]').not(i).addClass("collapsed"),
i[r.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), r.collapse(s);
});
}(window.jQuery), +function(n) {
function e() {
n(i).remove(), n(a).each(function(e) {
var i = t(n(this));
i.hasClass("open") && (i.trigger(e = n.Event("hide.bs.dropdown")), e.isDefaultPrevented() || i.removeClass("open").trigger("hidden.bs.dropdown"));
});
}
function t(e) {
var t = e.attr("data-target");
t || (t = e.attr("href"), t = t && /#/.test(t) && t.replace(/.*(?=#[^\s]*$)/, ""));
var i = t && n(t);
return i && i.length ? i : e.parent();
}
var i = ".dropdown-backdrop", a = "[data-toggle=dropdown]", r = function(e) {
n(e).on("click.bs.dropdown", this.toggle);
};
r.prototype.toggle = function(i) {
var a = n(this);
if (!a.is(".disabled, :disabled")) {
var r = t(a), o = r.hasClass("open");
if (e(), !o) {
if ("ontouchstart" in document.documentElement && !r.closest(".navbar-nav").length && n('<div class="dropdown-backdrop"/>').insertAfter(n(this)).on("click", e),
r.trigger(i = n.Event("show.bs.dropdown")), i.isDefaultPrevented()) return;
r.toggleClass("open").trigger("shown.bs.dropdown"), a.focus();
}
return !1;
}
}, r.prototype.keydown = function(e) {
if (/(38|40|27)/.test(e.keyCode)) {
var i = n(this);
if (e.preventDefault(), e.stopPropagation(), !i.is(".disabled, :disabled")) {
var r = t(i), o = r.hasClass("open");
if (!o || o && 27 == e.keyCode) return 27 == e.which && r.find(a).focus(), i.click();
var s = n("[role=menu] li:not(.divider):visible a", r);
if (s.length) {
var l = s.index(s.filter(":focus"));
38 == e.keyCode && l > 0 && l--, 40 == e.keyCode && l < s.length - 1 && l++, ~l || (l = 0),
s.eq(l).focus();
}
}
}
};
var o = n.fn.dropdown;
n.fn.dropdown = function(e) {
return this.each(function() {
var t = n(this), i = t.data("dropdown");
i || t.data("dropdown", i = new r(this)), "string" == typeof e && i[e].call(t);
});
}, n.fn.dropdown.Constructor = r, n.fn.dropdown.noConflict = function() {
return n.fn.dropdown = o, this;
}, n(document).on("click.bs.dropdown.data-api", e).on("click.bs.dropdown.data-api", ".dropdown form", function(n) {
n.stopPropagation();
}).on("click.bs.dropdown.data-api", a, r.prototype.toggle).on("keydown.bs.dropdown.data-api", a + ", [role=menu]", r.prototype.keydown);
}(window.jQuery), +function(n) {
var e = function(e, t) {
this.options = t, this.$element = n(e), this.$backdrop = this.isShown = null, this.options.remote && this.$element.load(this.options.remote);
};
e.DEFAULTS = {
backdrop: !0,
keyboard: !0,
show: !0
}, e.prototype.toggle = function(n) {
return this[this.isShown ? "hide" : "show"](n);
}, e.prototype.show = function(e) {
var t = this, i = n.Event("show.bs.modal", {
relatedTarget: e
});
this.$element.trigger(i), this.isShown || i.isDefaultPrevented() || (this.isShown = !0,
this.escape(), this.$element.on("click.dismiss.modal", '[data-dismiss="modal"]', n.proxy(this.hide, this)),
this.backdrop(function() {
var i = n.support.transition && t.$element.hasClass("fade");
t.$element.parent().length || t.$element.appendTo(document.body), t.$element.show(),
i && t.$element[0].offsetWidth, t.$element.addClass("in").attr("aria-hidden", !1),
t.enforceFocus();
var a = n.Event("shown.bs.modal", {
relatedTarget: e
});
i ? t.$element.find(".modal-dialog").one(n.support.transition.end, function() {
t.$element.focus().trigger(a);
}).emulateTransitionEnd(300) : t.$element.focus().trigger(a);
}));
}, e.prototype.hide = function(e) {
e && e.preventDefault(), e = n.Event("hide.bs.modal"), this.$element.trigger(e),
this.isShown && !e.isDefaultPrevented() && (this.isShown = !1, this.escape(), n(document).off("focusin.bs.modal"),
this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.modal"),
n.support.transition && this.$element.hasClass("fade") ? this.$element.one(n.support.transition.end, n.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal());
}, e.prototype.enforceFocus = function() {
n(document).off("focusin.bs.modal").on("focusin.bs.modal", n.proxy(function(n) {
this.$element[0] === n.target || this.$element.has(n.target).length || this.$element.focus();
}, this));
}, e.prototype.escape = function() {
this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", n.proxy(function(n) {
27 == n.which && this.hide();
}, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal");
}, e.prototype.hideModal = function() {
var n = this;
this.$element.hide(), this.backdrop(function() {
n.removeBackdrop(), n.$element.trigger("hidden.bs.modal");
});
}, e.prototype.removeBackdrop = function() {
this.$backdrop && this.$backdrop.remove(), this.$backdrop = null;
}, e.prototype.backdrop = function(e) {
var t = this.$element.hasClass("fade") ? "fade" : "";
if (this.isShown && this.options.backdrop) {
var i = n.support.transition && t;
if (this.$backdrop = n('<div class="modal-backdrop ' + t + '" />').appendTo(document.body),
this.$element.on("click.dismiss.modal", n.proxy(function(n) {
n.target === n.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this));
}, this)), i && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !e) return;
i ? this.$backdrop.one(n.support.transition.end, e).emulateTransitionEnd(150) : e();
} else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), n.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(n.support.transition.end, e).emulateTransitionEnd(150) : e()) : e && e();
};
var t = n.fn.modal;
n.fn.modal = function(t, i) {
return this.each(function() {
var a = n(this), r = a.data("bs.modal"), o = n.extend({}, e.DEFAULTS, a.data(), "object" == typeof t && t);
r || a.data("bs.modal", r = new e(this, o)), "string" == typeof t ? r[t](i) : o.show && r.show(i);
});
}, n.fn.modal.Constructor = e, n.fn.modal.noConflict = function() {
return n.fn.modal = t, this;
}, n(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(e) {
var t = n(this), i = t.attr("href"), a = n(t.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, "")), r = a.data("modal") ? "toggle" : n.extend({
remote: !/#/.test(i) && i
}, a.data(), t.data());
e.preventDefault(), a.modal(r, this).one("hide", function() {
t.is(":visible") && t.focus();
});
}), n(document).on("show.bs.modal", ".modal", function() {
n(document.body).addClass("modal-open");
}).on("hidden.bs.modal", ".modal", function() {
n(document.body).removeClass("modal-open");
});
}(window.jQuery), +function(n) {
var e = function(n, e) {
this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null,
this.init("tooltip", n, e);
};
e.DEFAULTS = {
animation: !0,
placement: "top",
selector: !1,
template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
container: !1
}, e.prototype.init = function(e, t, i) {
this.enabled = !0, this.type = e, this.$element = n(t), this.options = this.getOptions(i);
for (var a = this.options.trigger.split(" "), r = a.length; r--; ) {
var o = a[r];
if ("click" == o) this.$element.on("click." + this.type, this.options.selector, n.proxy(this.toggle, this)); else if ("manual" != o) {
var s = "hover" == o ? "mouseenter" : "focus", l = "hover" == o ? "mouseleave" : "blur";
this.$element.on(s + "." + this.type, this.options.selector, n.proxy(this.enter, this)),
this.$element.on(l + "." + this.type, this.options.selector, n.proxy(this.leave, this));
}
}
this.options.selector ? this._options = n.extend({}, this.options, {
trigger: "manual",
selector: ""
}) : this.fixTitle();
}, e.prototype.getDefaults = function() {
return e.DEFAULTS;
}, e.prototype.getOptions = function(e) {
return e = n.extend({}, this.getDefaults(), this.$element.data(), e), e.delay && "number" == typeof e.delay && (e.delay = {
show: e.delay,
hide: e.delay
}), e;
}, e.prototype.getDelegateOptions = function() {
var e = {}, t = this.getDefaults();
return this._options && n.each(this._options, function(n, i) {
t[n] != i && (e[n] = i);
}), e;
}, e.prototype.enter = function(e) {
var t = e instanceof this.constructor ? e : n(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
return clearTimeout(t.timeout), t.hoverState = "in", t.options.delay && t.options.delay.show ? (t.timeout = setTimeout(function() {
"in" == t.hoverState && t.show();
}, t.options.delay.show), void 0) : t.show();
}, e.prototype.leave = function(e) {
var t = e instanceof this.constructor ? e : n(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
return clearTimeout(t.timeout), t.hoverState = "out", t.options.delay && t.options.delay.hide ? (t.timeout = setTimeout(function() {
"out" == t.hoverState && t.hide();
}, t.options.delay.hide), void 0) : t.hide();
}, e.prototype.show = function() {
var e = n.Event("show.bs." + this.type);
if (this.hasContent() && this.enabled) {
if (this.$element.trigger(e), e.isDefaultPrevented()) return;
var t = this.tip();
this.setContent(), this.options.animation && t.addClass("fade");
var i = "function" == typeof this.options.placement ? this.options.placement.call(this, t[0], this.$element[0]) : this.options.placement, a = /\s?auto?\s?/i, r = a.test(i);
r && (i = i.replace(a, "") || "top"), t.detach().css({
top: 0,
left: 0,
display: "block"
}).addClass(i), this.options.container ? t.appendTo(this.options.container) : t.insertAfter(this.$element);
var o = this.getPosition(), s = t[0].offsetWidth, l = t[0].offsetHeight;
if (r) {
var c = this.$element.parent(), M = i, u = document.documentElement.scrollTop || document.body.scrollTop, d = "body" == this.options.container ? window.innerWidth : c.outerWidth(), h = "body" == this.options.container ? window.innerHeight : c.outerHeight(), S = "body" == this.options.container ? 0 : c.offset().left;
i = "bottom" == i && o.top + o.height + l - u > h ? "top" : "top" == i && o.top - u - l < 0 ? "bottom" : "right" == i && o.right + s > d ? "left" : "left" == i && o.left - s < S ? "right" : i,
t.removeClass(M).addClass(i);
}
var p = this.getCalculatedOffset(i, o, s, l);
this.applyPlacement(p, i), this.$element.trigger("shown.bs." + this.type);
}
}, e.prototype.applyPlacement = function(n, e) {
var t, i = this.tip(), a = i[0].offsetWidth, r = i[0].offsetHeight, o = parseInt(i.css("margin-top"), 10), s = parseInt(i.css("margin-left"), 10);
isNaN(o) && (o = 0), isNaN(s) && (s = 0), n.top = n.top + o, n.left = n.left + s,
i.offset(n).addClass("in");
var l = i[0].offsetWidth, c = i[0].offsetHeight;
if ("top" == e && c != r && (t = !0, n.top = n.top + r - c), /bottom|top/.test(e)) {
var M = 0;
n.left < 0 && (M = -2 * n.left, n.left = 0, i.offset(n), l = i[0].offsetWidth, c = i[0].offsetHeight),
this.replaceArrow(M - a + l, l, "left");
} else this.replaceArrow(c - r, c, "top");
t && i.offset(n);
}, e.prototype.replaceArrow = function(n, e, t) {
this.arrow().css(t, n ? 50 * (1 - n / e) + "%" : "");
}, e.prototype.setContent = function() {
var n = this.tip(), e = this.getTitle();
n.find(".tooltip-inner")[this.options.html ? "html" : "text"](e), n.removeClass("fade in top bottom left right");
}, e.prototype.hide = function() {
function e() {
"in" != t.hoverState && i.detach();
}
var t = this, i = this.tip(), a = n.Event("hide.bs." + this.type);
return this.$element.trigger(a), a.isDefaultPrevented() ? void 0 : (i.removeClass("in"),
n.support.transition && this.$tip.hasClass("fade") ? i.one(n.support.transition.end, e).emulateTransitionEnd(150) : e(),
this.$element.trigger("hidden.bs." + this.type), this);
}, e.prototype.fixTitle = function() {
var n = this.$element;
(n.attr("title") || "string" != typeof n.attr("data-original-title")) && n.attr("data-original-title", n.attr("title") || "").attr("title", "");
}, e.prototype.hasContent = function() {
return this.getTitle();
}, e.prototype.getPosition = function() {
var e = this.$element[0];
return n.extend({}, "function" == typeof e.getBoundingClientRect ? e.getBoundingClientRect() : {
width: e.offsetWidth,
height: e.offsetHeight
}, this.$element.offset());
}, e.prototype.getCalculatedOffset = function(n, e, t, i) {
return "bottom" == n ? {
top: e.top + e.height,
left: e.left + e.width / 2 - t / 2
} : "top" == n ? {
top: e.top - i,
left: e.left + e.width / 2 - t / 2
} : "left" == n ? {
top: e.top + e.height / 2 - i / 2,
left: e.left - t
} : {
top: e.top + e.height / 2 - i / 2,
left: e.left + e.width
};
}, e.prototype.getTitle = function() {
var n, e = this.$element, t = this.options;
return n = e.attr("data-original-title") || ("function" == typeof t.title ? t.title.call(e[0]) : t.title);
}, e.prototype.tip = function() {
return this.$tip = this.$tip || n(this.options.template);
}, e.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow");
}, e.prototype.validate = function() {
this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null);
}, e.prototype.enable = function() {
this.enabled = !0;
}, e.prototype.disable = function() {
this.enabled = !1;
}, e.prototype.toggleEnabled = function() {
this.enabled = !this.enabled;
}, e.prototype.toggle = function(e) {
var t = e ? n(e.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;
t.tip().hasClass("in") ? t.leave(t) : t.enter(t);
}, e.prototype.destroy = function() {
this.hide().$element.off("." + this.type).removeData("bs." + this.type);
};
var t = n.fn.tooltip;
n.fn.tooltip = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.tooltip"), r = "object" == typeof t && t;
a || i.data("bs.tooltip", a = new e(this, r)), "string" == typeof t && a[t]();
});
}, n.fn.tooltip.Constructor = e, n.fn.tooltip.noConflict = function() {
return n.fn.tooltip = t, this;
};
}(window.jQuery), +function(n) {
var e = function(n, e) {
this.init("popover", n, e);
};
if (!n.fn.tooltip) throw new Error("Popover requires tooltip.js");
e.DEFAULTS = n.extend({}, n.fn.tooltip.Constructor.DEFAULTS, {
placement: "right",
trigger: "click",
content: "",
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
}), e.prototype = n.extend({}, n.fn.tooltip.Constructor.prototype), e.prototype.constructor = e,
e.prototype.getDefaults = function() {
return e.DEFAULTS;
}, e.prototype.setContent = function() {
var n = this.tip(), e = this.getTitle(), t = this.getContent();
n.find(".popover-title")[this.options.html ? "html" : "text"](e), n.find(".popover-content")[this.options.html ? "html" : "text"](t),
n.removeClass("fade top bottom left right in"), n.find(".popover-title").html() || n.find(".popover-title").hide();
}, e.prototype.hasContent = function() {
return this.getTitle() || this.getContent();
}, e.prototype.getContent = function() {
var n = this.$element, e = this.options;
return n.attr("data-content") || ("function" == typeof e.content ? e.content.call(n[0]) : e.content);
}, e.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".arrow");
}, e.prototype.tip = function() {
return this.$tip || (this.$tip = n(this.options.template)), this.$tip;
};
var t = n.fn.popover;
n.fn.popover = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.popover"), r = "object" == typeof t && t;
a || i.data("bs.popover", a = new e(this, r)), "string" == typeof t && a[t]();
});
}, n.fn.popover.Constructor = e, n.fn.popover.noConflict = function() {
return n.fn.popover = t, this;
};
}(window.jQuery), +function(n) {
function e(t, i) {
var a, r = n.proxy(this.process, this);
this.$element = n(t).is("body") ? n(window) : n(t), this.$body = n("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", r),
this.options = n.extend({}, e.DEFAULTS, i), this.selector = (this.options.target || (a = n(t).attr("href")) && a.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a",
this.offsets = n([]), this.targets = n([]), this.activeTarget = null, this.refresh(),
this.process();
}
e.DEFAULTS = {
offset: 10
}, e.prototype.refresh = function() {
var e = this.$element[0] == window ? "offset" : "position";
this.offsets = n([]), this.targets = n([]);
var t = this;
this.$body.find(this.selector).map(function() {
var i = n(this), a = i.data("target") || i.attr("href"), r = /^#\w/.test(a) && n(a);
return r && r.length && [ [ r[e]().top + (!n.isWindow(t.$scrollElement.get(0)) && t.$scrollElement.scrollTop()), a ] ] || null;
}).sort(function(n, e) {
return n[0] - e[0];
}).each(function() {
t.offsets.push(this[0]), t.targets.push(this[1]);
});
}, e.prototype.process = function() {
var n, e = this.$scrollElement.scrollTop() + this.options.offset, t = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, i = t - this.$scrollElement.height(), a = this.offsets, r = this.targets, o = this.activeTarget;
if (e >= i) return o != (n = r.last()[0]) && this.activate(n);
for (n = a.length; n--; ) o != r[n] && e >= a[n] && (!a[n + 1] || e <= a[n + 1]) && this.activate(r[n]);
}, e.prototype.activate = function(e) {
this.activeTarget = e, n(this.selector).parents(".active").removeClass("active");
var t = this.selector + '[data-target="' + e + '"],' + this.selector + '[href="' + e + '"]', i = n(t).parents("li").addClass("active");
i.parent(".dropdown-menu").length && (i = i.closest("li.dropdown").addClass("active")),
i.trigger("activate");
};
var t = n.fn.scrollspy;
n.fn.scrollspy = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.scrollspy"), r = "object" == typeof t && t;
a || i.data("bs.scrollspy", a = new e(this, r)), "string" == typeof t && a[t]();
});
}, n.fn.scrollspy.Constructor = e, n.fn.scrollspy.noConflict = function() {
return n.fn.scrollspy = t, this;
}, n(window).on("load", function() {
n('[data-spy="scroll"]').each(function() {
var e = n(this);
e.scrollspy(e.data());
});
});
}(window.jQuery), +function(n) {
var e = function(e) {
this.element = n(e);
};
e.prototype.show = function() {
var e = this.element, t = e.closest("ul:not(.dropdown-menu)"), i = e.attr("data-target");
if (i || (i = e.attr("href"), i = i && i.replace(/.*(?=#[^\s]*$)/, "")), !e.parent("li").hasClass("active")) {
var a = t.find(".active:last a")[0], r = n.Event("show.bs.tab", {
relatedTarget: a
});
if (e.trigger(r), !r.isDefaultPrevented()) {
var o = n(i);
this.activate(e.parent("li"), t), this.activate(o, o.parent(), function() {
e.trigger({
type: "shown.bs.tab",
relatedTarget: a
});
});
}
}
}, e.prototype.activate = function(e, t, i) {
function a() {
r.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),
e.addClass("active"), o ? (e[0].offsetWidth, e.addClass("in")) : e.removeClass("fade"),
e.parent(".dropdown-menu") && e.closest("li.dropdown").addClass("active"), i && i();
}
var r = t.find("> .active"), o = i && n.support.transition && r.hasClass("fade");
o ? r.one(n.support.transition.end, a).emulateTransitionEnd(150) : a(), r.removeClass("in");
};
var t = n.fn.tab;
n.fn.tab = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.tab");
a || i.data("bs.tab", a = new e(this)), "string" == typeof t && a[t]();
});
}, n.fn.tab.Constructor = e, n.fn.tab.noConflict = function() {
return n.fn.tab = t, this;
}, n(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(e) {
e.preventDefault(), n(this).tab("show");
});
}(window.jQuery), +function(n) {
var e = function(t, i) {
this.options = n.extend({}, e.DEFAULTS, i), this.$window = n(window).on("scroll.bs.affix.data-api", n.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", n.proxy(this.checkPositionWithEventLoop, this)),
this.$element = n(t), this.affixed = this.unpin = null, this.checkPosition();
};
e.RESET = "affix affix-top affix-bottom", e.DEFAULTS = {
offset: 0
}, e.prototype.checkPositionWithEventLoop = function() {
setTimeout(n.proxy(this.checkPosition, this), 1);
}, e.prototype.checkPosition = function() {
if (this.$element.is(":visible")) {
var t = n(document).height(), i = this.$window.scrollTop(), a = this.$element.offset(), r = this.options.offset, o = r.top, s = r.bottom;
"object" != typeof r && (s = o = r), "function" == typeof o && (o = r.top()), "function" == typeof s && (s = r.bottom());
var l = null != this.unpin && i + this.unpin <= a.top ? !1 : null != s && a.top + this.$element.height() >= t - s ? "bottom" : null != o && o >= i ? "top" : !1;
this.affixed !== l && (this.unpin && this.$element.css("top", ""), this.affixed = l,
this.unpin = "bottom" == l ? a.top - i : null, this.$element.removeClass(e.RESET).addClass("affix" + (l ? "-" + l : "")),
"bottom" == l && this.$element.offset({
top: document.body.offsetHeight - s - this.$element.height()
}));
}
};
var t = n.fn.affix;
n.fn.affix = function(t) {
return this.each(function() {
var i = n(this), a = i.data("bs.affix"), r = "object" == typeof t && t;
a || i.data("bs.affix", a = new e(this, r)), "string" == typeof t && a[t]();
});
}, n.fn.affix.Constructor = e, n.fn.affix.noConflict = function() {
return n.fn.affix = t, this;
}, n(window).on("load", function() {
n('[data-spy="affix"]').each(function() {
var e = n(this), t = e.data();
t.offset = t.offset || {}, t.offsetBottom && (t.offset.bottom = t.offsetBottom),
t.offsetTop && (t.offset.top = t.offsetTop), e.affix(t);
});
});
}(window.jQuery), define("bootstrap", function() {}), function() {
(function(n, e) {
var t, i;
return i = e.document, t = function() {
function t(t) {
this._options = n.extend({
name: "tour",
container: "body",
keyboard: !0,
storage: e.localStorage,
debug: !1,
backdrop: !1,
redirect: !0,
orphan: !1,
basePath: "",
template: "<div class='popover'> <div class='arrow'></div> <h3 class='popover-title'></h3> <div class='popover-content'></div> <nav class='popover-navigation'> <div class='btn-group'> <button class='btn btn-sm btn-default' data-role='prev'>&laquo; Prev</button> <button class='btn btn-sm btn-default' data-role='next'>Next &raquo;</button> </div> <button class='btn btn-sm btn-default' data-role='end'>End tour</button> </nav> </div>",
afterSetState: function() {},
afterGetState: function() {},
afterRemoveState: function() {},
onStart: function() {},
onEnd: function() {},
onShow: function() {},
onShown: function() {},
onHide: function() {},
onHidden: function() {},
onNext: function() {},
onPrev: function() {}
}, t), this._steps = [], this.setCurrentStep(), this.backdrop = {
overlay: null,
$element: null,
$background: null
};
}
return t.prototype.setState = function(n, e) {
var t;
return this._options.storage ? (t = "" + this._options.name + "_" + n, this._options.storage.setItem(t, e),
this._options.afterSetState(t, e)) : (null == this._state && (this._state = {}),
this._state[n] = e);
}, t.prototype.removeState = function(n) {
var e;
return this._options.storage ? (e = "" + this._options.name + "_" + n, this._options.storage.removeItem(e),
this._options.afterRemoveState(e)) : null != this._state ? delete this._state[n] : void 0;
}, t.prototype.getState = function(n) {
var e, t;
return this._options.storage ? (e = "" + this._options.name + "_" + n, t = this._options.storage.getItem(e)) : null != this._state && (t = this._state[n]),
(void 0 === t || "null" === t) && (t = null), this._options.afterGetState(n, t),
t;
}, t.prototype.addSteps = function(n) {
var e, t, i, a;
for (a = [], t = 0, i = n.length; i > t; t++) e = n[t], a.push(this.addStep(e));
return a;
}, t.prototype.addStep = function(n) {
return this._steps.push(n);
}, t.prototype.getStep = function(e) {
return null != this._steps[e] ? n.extend({
id: "step-" + e,
path: "",
placement: "right",
title: "",
content: "<p></p>",
next: e === this._steps.length - 1 ? -1 : e + 1,
prev: e - 1,
animation: !0,
container: this._options.container,
backdrop: this._options.backdrop,
redirect: this._options.redirect,
orphan: this._options.orphan,
template: this._options.template,
onShow: this._options.onShow,
onShown: this._options.onShown,
onHide: this._options.onHide,
onHidden: this._options.onHidden,
onNext: this._options.onNext,
onPrev: this._options.onPrev
}, this._steps[e]) : void 0;
}, t.prototype.start = function(e) {
var t, a = this;
return null == e && (e = !1), this.ended() && !e ? this._debug("Tour ended, start prevented.") : (n(i).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=next]").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=next]:not(.disabled)", function(n) {
return n.preventDefault(), a.next();
}), n(i).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=prev]").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=prev]:not(.disabled)", function(n) {
return n.preventDefault(), a.prev();
}), n(i).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=end]").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=end]", function(n) {
return n.preventDefault(), a.end();
}), this._onResize(function() {
return a.showStep(a._current);
}), this._setupKeyboardNavigation(), t = this._makePromise(null != this._options.onStart ? this._options.onStart(this) : void 0),
this._callOnPromiseDone(t, this.showStep, this._current));
}, t.prototype.next = function() {
var n;
return this.ended() ? this._debug("Tour ended, next prevented.") : (n = this.hideStep(this._current),
this._callOnPromiseDone(n, this._showNextStep));
}, t.prototype.prev = function() {
var n;
return this.ended() ? this._debug("Tour ended, prev prevented.") : (n = this.hideStep(this._current),
this._callOnPromiseDone(n, this._showPrevStep));
}, t.prototype.goto = function(n) {
var e;
return this.ended() ? this._debug("Tour ended, goto prevented.") : (e = this.hideStep(this._current),
this._callOnPromiseDone(e, this.showStep, n));
}, t.prototype.end = function() {
var t, a, r = this;
return t = function() {
return n(i).off("click.tour-" + r._options.name), n(i).off("keyup.tour-" + r._options.name),
n(e).off("resize.tour-" + r._options.name), r.setState("end", "yes"), null != r._options.onEnd ? r._options.onEnd(r) : void 0;
}, a = this.hideStep(this._current), this._callOnPromiseDone(a, t);
}, t.prototype.ended = function() {
return !!this.getState("end");
}, t.prototype.restart = function() {
return this.removeState("current_step"), this.removeState("end"), this.setCurrentStep(0),
this.start();
}, t.prototype.hideStep = function(e) {
var t, i, a, r = this;
return a = this.getStep(e), i = this._makePromise(null != a.onHide ? a.onHide(this, e) : void 0),
t = function() {
var e;
return e = r._isOrphan(a) ? n("body") : n(a.element), e.popover("destroy"), a.reflex && e.css("cursor", "").off("click.tour-" + r._options.name),
a.backdrop && r._hideBackdrop(), null != a.onHidden ? a.onHidden(r) : void 0;
}, this._callOnPromiseDone(i, t), i;
}, t.prototype.showStep = function(e) {
var t, a, r, o, s = this;
return (o = this.getStep(e)) ? (r = e < this._current, t = this._makePromise(null != o.onShow ? o.onShow(this, e) : void 0),
a = function() {
var t, a;
if (s.setCurrentStep(e), a = n.isFunction(o.path) ? o.path.call() : s._options.basePath + o.path,
t = [ i.location.pathname, i.location.hash ].join(""), s._isRedirect(a, t)) return s._redirect(o, a),
void 0;
if (s._isOrphan(o)) {
if (!o.orphan) return s._debug("Skip the orphan step " + (s._current + 1) + ". Orphan option is false and the element doesn't exist or is hidden."),
r ? s._showPrevStep() : s._showNextStep(), void 0;
s._debug("Show the orphan step " + (s._current + 1) + ". Orphans option is true.");
}
return o.backdrop && s._showBackdrop(s._isOrphan(o) ? void 0 : o.element), s._showPopover(o, e),
null != o.onShown && o.onShown(s), s._debug("Step " + (s._current + 1) + " of " + s._steps.length);
}, this._callOnPromiseDone(t, a)) : void 0;
}, t.prototype.setCurrentStep = function(n) {
return null != n ? (this._current = n, this.setState("current_step", n)) : (this._current = this.getState("current_step"),
this._current = null === this._current ? 0 : parseInt(this._current, 10));
}, t.prototype._showNextStep = function() {
var n, e, t, i = this;
return t = this.getStep(this._current), e = function() {
return i.showStep(t.next);
}, n = this._makePromise(null != t.onNext ? t.onNext(this) : void 0), this._callOnPromiseDone(n, e);
}, t.prototype._showPrevStep = function() {
var n, e, t, i = this;
return t = this.getStep(this._current), e = function() {
return i.showStep(t.prev);
}, n = this._makePromise(null != t.onPrev ? t.onPrev(this) : void 0), this._callOnPromiseDone(n, e);
}, t.prototype._debug = function(n) {
return this._options.debug ? e.console.log("Bootstrap Tour '" + this._options.name + "' | " + n) : void 0;
}, t.prototype._isRedirect = function(n, e) {
return null != n && "" !== n && n.replace(/\?.*$/, "").replace(/\/?$/, "") !== e.replace(/\/?$/, "");
}, t.prototype._redirect = function(e, t) {
return n.isFunction(e.redirect) ? e.redirect.call(this, t) : e.redirect === !0 ? (this._debug("Redirect to " + t),
i.location.href = t) : void 0;
}, t.prototype._isOrphan = function(e) {
return null == e.element || !n(e.element).length || n(e.element).is(":hidden");
}, t.prototype._showPopover = function(e, t) {
var i, a, r, o, s, l, c = this;
return l = n.extend({}, this._options), r = n.isFunction(e.template) ? n(e.template(t, e)) : n(e.template),
a = r.find(".popover-navigation"), s = this._isOrphan(e), s && (e.element = "body",
e.placement = "top", r = r.addClass("orphan")), i = n(e.element), r.addClass("tour-" + this._options.name),
e.options && n.extend(l, e.options), e.reflex && i.css("cursor", "pointer").on("click.tour-" + this._options.name, function() {
return c._current < c._steps.length - 1 ? c.next() : c.end();
}), e.prev < 0 && a.find("*[data-role=prev]").addClass("disabled"), e.next < 0 && a.find("*[data-role=next]").addClass("disabled"),
e.template = r.clone().wrap("<div>").parent().html(), i.popover({
placement: e.placement,
trigger: "manual",
title: e.title,
content: e.content,
html: !0,
animation: e.animation,
container: e.container,
template: e.template,
selector: e.element
}).popover("show"), o = i.data("bs.popover") ? i.data("bs.popover").tip() : i.data("popover").tip(),
o.attr("id", e.id), this._scrollIntoView(o), this._reposition(o, e), s ? this._center(o) : void 0;
}, t.prototype._reposition = function(e, t) {
var a, r, o, s, l, c, M;
if (s = e[0].offsetWidth, r = e[0].offsetHeight, M = e.offset(), l = M.left, c = M.top,
a = n(i).outerHeight() - M.top - e.outerHeight(), 0 > a && (M.top = M.top + a),
o = n("html").outerWidth() - M.left - e.outerWidth(), 0 > o && (M.left = M.left + o),
M.top < 0 && (M.top = 0), M.left < 0 && (M.left = 0), e.offset(M), "bottom" === t.placement || "top" === t.placement) {
if (l !== M.left) return this._replaceArrow(e, 2 * (M.left - l), s, "left");
} else if (c !== M.top) return this._replaceArrow(e, 2 * (M.top - c), r, "top");
}, t.prototype._center = function(t) {
return t.css("top", n(e).outerHeight() / 2 - t.outerHeight() / 2);
}, t.prototype._replaceArrow = function(n, e, t, i) {
return n.find(".arrow").css(i, e ? 50 * (1 - e / t) + "%" : "");
}, t.prototype._scrollIntoView = function(t) {
return n("html, body").stop().animate({
scrollTop: Math.ceil(t.offset().top - n(e).height() / 2)
});
}, t.prototype._onResize = function(t, i) {
return n(e).on("resize.tour-" + this._options.name, function() {
return clearTimeout(i), i = setTimeout(t, 100);
});
}, t.prototype._setupKeyboardNavigation = function() {
var e = this;
return this._options.keyboard ? n(i).on("keyup.tour-" + this._options.name, function(n) {
if (n.which) switch (n.which) {
case 39:
return n.preventDefault(), e._current < e._steps.length - 1 ? e.next() : e.end();
case 37:
if (n.preventDefault(), e._current > 0) return e.prev();
break;
case 27:
return n.preventDefault(), e.end();
}
}) : void 0;
}, t.prototype._makePromise = function(e) {
return e && n.isFunction(e.then) ? e : null;
}, t.prototype._callOnPromiseDone = function(n, e, t) {
var i = this;
return n ? n.then(function() {
return e.call(i, t);
}) : e.call(this, t);
}, t.prototype._showBackdrop = function(n) {
return null === this.backdrop.overlay ? (this._showOverlay(), null != n ? this._showOverlayElement(n) : void 0) : void 0;
}, t.prototype._hideBackdrop = function() {
return null !== this.backdrop.overlay ? (this.backdrop.$element && this._hideOverlayElement(),
this._hideOverlay()) : void 0;
}, t.prototype._showOverlay = function() {
return this.backdrop = n("<div/>", {
"class": "tour-backdrop"
}), n("body").append(this.backdrop);
}, t.prototype._hideOverlay = function() {
return this.backdrop.remove(), this.backdrop.overlay = null;
}, t.prototype._showOverlayElement = function(e) {
var t, i, a;
return i = n(e), t = n("<div/>"), a = i.offset(), a.top = a.top, a.left = a.left,
t.width(i.innerWidth()).height(i.innerHeight()).addClass("tour-step-background").offset(a),
i.addClass("tour-step-backdrop"), n("body").append(t), this.backdrop.$element = i,
this.backdrop.$background = t;
}, t.prototype._hideOverlayElement = function() {
return this.backdrop.$element.removeClass("tour-step-backdrop"), this.backdrop.$background.remove(),
this.backdrop.$element = null, this.backdrop.$background = null;
}, t;
}(), e.Tour = t;
})(jQuery, window);
}.call(this), define("bootstrap-tour", function() {}), define("extensions/welcomeTour", [ "jquery", "classes/Extension", "bootstrap-tour" ], function(n, e) {
var t = new e("welcomeTour", "Welcome tour", !1, !0);
return t.onReady = function() {
var e = new Tour({
storage: {
getItem: function() {},
setItem: function() {},
removeItem: function() {}
},
onEnd: function() {
localStorage.welcomeTour = "done";
},
template: [ "<div class='popover tour'>", " <div class='arrow'></div>", " <h3 class='popover-title'></h3>", " <div class='popover-content'></div>", " <nav class='popover-navigation'>", " <button class='btn btn-primary' data-role='next'>Next</button>", " <button class='btn btn-default' data-role='end'>Got it!</button>", " </nav>", "</div>" ].join("")
});
e.addSteps([ {
element: ".navbar-inner",
title: "Welcome to StackEdit!",
content: "Please click <code>Next</code> to take a quick tour.",
placement: "bottom"
}, {
element: ".navbar .action-create-file",
title: "New document",
content: "Click the <i class='icon-file'></i> <code>New document</code> button to create a new document.",
placement: "left",
reflex: !0
}, {
element: ".document-panel .collapse-button",
title: "Toggle document",
content: [ "<p>Click the <i class='icon-folder-open'></i> <code>Select document</code> button to switch to another document.</p>", "<b>NOTE: </b>Use <code>Ctrl+[</code> and <code>Ctrl+]</code> shortcuts to toggle quickly." ].join(""),
placement: "left",
reflex: !0
}, {
element: ".menu-panel .collapse-button",
title: "Menu",
content: [ "<p>Use the <i class='icon-provider-stackedit'></i> menu to synchronize your document on <i class='icon-provider-gdrive'></i> <code>Google Drive</code> or <i class='icon-provider-dropbox'></i> <code>Dropbox</code>.</p>", "Use also this menu to publish your document on <i class='icon-provider-github'></i> <code>GitHub</code>, <i class='icon-provider-blogger'></i> <code>Blogger</code>, <i class='icon-provider-wordpress'></i> <code>WordPress</code>..." ].join(""),
placement: "right",
reflex: !0
}, {
element: "#extension-buttons .button-synchronize",
title: "Synchronize",
content: "<p>Once imported/exported, use the <i class='icon-refresh'></i> <code>Synchronize</code> button to force the synchronization (this is done automatically every 3 minutes).</p>",
placement: "bottom",
reflex: !0
}, {
element: "#extension-buttons .button-publish",
title: "Update publications",
content: "Once published, use the <i class='icon-share'></i> <code>Publish</code> button to update your publications.",
placement: "bottom",
reflex: !0
} ]), _.has(localStorage, "welcomeTour") || e.start(), n(".action-welcome-tour").click(function() {
e.restart();
});
}, t;
});
var Typo = function(n, e, t, i) {
if (i = i || {}, this.platform = i.platform || "chrome", this.dictionary = null,
this.rules = {}, this.dictionaryTable = {}, this.compoundRules = [], this.compoundRuleCodes = {},
this.replacementTable = [], this.flags = i.flags || {}, n) {
if (this.dictionary = n, "chrome" == this.platform) e || (e = this._readFile(chrome.extension.getURL("lib/typo/dictionaries/" + n + "/" + n + ".aff"))),
t || (t = this._readFile(chrome.extension.getURL("lib/typo/dictionaries/" + n + "/" + n + ".dic"))); else {
var a = i.dictionaryPath || "";
e || (e = this._readFile(a + "/" + n + "/" + n + ".aff")), t || (t = this._readFile(a + "/" + n + "/" + n + ".dic"));
}
this.rules = this._parseAFF(e), this.compoundRuleCodes = {};
for (var r = 0, o = this.compoundRules.length; o > r; r++) for (var s = this.compoundRules[r], l = 0, c = s.length; c > l; l++) this.compoundRuleCodes[s[l]] = [];
"ONLYINCOMPOUND" in this.flags && (this.compoundRuleCodes[this.flags.ONLYINCOMPOUND] = []),
this.dictionaryTable = this._parseDIC(t);
for (var r in this.compoundRuleCodes) 0 == this.compoundRuleCodes[r].length && delete this.compoundRuleCodes[r];
for (var r = 0, o = this.compoundRules.length; o > r; r++) {
for (var M = this.compoundRules[r], u = "", l = 0, c = M.length; c > l; l++) {
var d = M[l];
u += d in this.compoundRuleCodes ? "(" + this.compoundRuleCodes[d].join("|") + ")" : d;
}
this.compoundRules[r] = new RegExp(u, "i");
}
}
return this;
};
Typo.prototype = {
load: function(n) {
for (var e in n) this[e] = n[e];
return this;
},
_readFile: function(n, e) {
e || (e = "ISO8859-1");
var t = new XMLHttpRequest();
return t.open("GET", n, !1), t.overrideMimeType && t.overrideMimeType("text/plain; charset=" + e),
t.send(null), t.responseText;
},
_parseAFF: function(n) {
var e = {};
n = this._removeAffixComments(n);
for (var t = n.split("\n"), i = 0, a = t.length; a > i; i++) {
var r = t[i], o = r.split(/\s+/), s = o[0];
if ("PFX" == s || "SFX" == s) {
for (var l = o[1], c = o[2], M = parseInt(o[3], 10), u = [], d = i + 1, h = i + 1 + M; h > d; d++) {
var r = t[d], S = r.split(/\s+/), p = S[2], m = S[3].split("/"), g = m[0];
"0" === g && (g = "");
var f = this.parseRuleCodes(m[1]), b = S[4], y = {};
y.add = g, f.length > 0 && (y.continuationClasses = f), "." !== b && (y.match = "SFX" === s ? new RegExp(b + "$") : new RegExp("^" + b)),
"0" != p && (y.remove = "SFX" === s ? new RegExp(p + "$") : p), u.push(y);
}
e[l] = {
type: s,
combineable: "Y" == c,
entries: u
}, i += M;
} else if ("COMPOUNDRULE" === s) {
for (var M = parseInt(o[1], 10), d = i + 1, h = i + 1 + M; h > d; d++) {
var r = t[d], S = r.split(/\s+/);
this.compoundRules.push(S[1]);
}
i += M;
} else if ("REP" === s) {
var S = r.split(/\s+/);
3 === S.length && this.replacementTable.push([ S[1], S[2] ]);
} else this.flags[s] = o[1];
}
return e;
},
_removeAffixComments: function(n) {
return n = n.replace(/#.*$/gm, ""), n = n.replace(/^\s\s*/m, "").replace(/\s\s*$/m, ""),
n = n.replace(/\n{2,}/g, "\n"), n = n.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
},
_parseDIC: function(n) {
function e(n, e) {
n in i && "object" == typeof i[n] || (i[n] = []), i[n].push(e);
}
n = this._removeDicComments(n);
for (var t = n.split("\n"), i = {}, a = 1, r = t.length; r > a; a++) {
var o = t[a], s = o.split("/", 2), l = s[0];
if (s.length > 1) {
var c = this.parseRuleCodes(s[1]);
"NEEDAFFIX" in this.flags && -1 != c.indexOf(this.flags.NEEDAFFIX) || e(l, c);
for (var M = 0, u = c.length; u > M; M++) {
var d = c[M], h = this.rules[d];
if (h) for (var S = this._applyRule(l, h), p = 0, m = S.length; m > p; p++) {
var g = S[p];
if (e(g, []), h.combineable) for (var f = M + 1; u > f; f++) {
var b = c[f], y = this.rules[b];
if (y && y.combineable && h.type != y.type) for (var v = this._applyRule(g, y), D = 0, w = v.length; w > D; D++) {
var G = v[D];
e(G, []);
}
}
}
d in this.compoundRuleCodes && this.compoundRuleCodes[d].push(l);
}
} else e(l, []);
}
return i;
},
_removeDicComments: function(n) {
return n = n.replace(/^\t.*$/gm, "");
},
parseRuleCodes: function(n) {
if (!n) return [];
if (!("FLAG" in this.flags)) return n.split("");
if ("long" === this.flags.FLAG) {
for (var e = [], t = 0, i = n.length; i > t; t += 2) e.push(n.substr(t, 2));
return e;
}
return "num" === this.flags.FLAG ? textCode.split(",") : void 0;
},
_applyRule: function(n, e) {
for (var t = e.entries, i = [], a = 0, r = t.length; r > a; a++) {
var o = t[a];
if (!o.match || n.match(o.match)) {
var s = n;
if (o.remove && (s = s.replace(o.remove, "")), "SFX" === e.type ? s += o.add : s = o.add + s,
i.push(s), "continuationClasses" in o) for (var l = 0, c = o.continuationClasses.length; c > l; l++) {
var M = this.rules[o.continuationClasses[l]];
M && (i = i.concat(this._applyRule(s, M)));
}
}
}
return i;
},
check: function(n) {
var e = n.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
if (this.checkExact(e)) return !0;
if (e.toUpperCase() === e) {
var t = e[0] + e.substring(1).toLowerCase();
if (this.hasFlag(t, "KEEPCASE")) return !1;
if (this.checkExact(t)) return !0;
}
var i = e.toLowerCase();
if (i !== e) {
if (this.hasFlag(i, "KEEPCASE")) return !1;
if (this.checkExact(i)) return !0;
}
return !1;
},
checkExact: function(n) {
var e = this.dictionaryTable[n];
if ("undefined" == typeof e) {
if ("COMPOUNDMIN" in this.flags && n.length >= this.flags.COMPOUNDMIN) for (var t = 0, i = this.compoundRules.length; i > t; t++) if (n.match(this.compoundRules[t])) return !0;
return !1;
}
for (var t = 0, i = e.length; i > t; t++) if (!this.hasFlag(n, "ONLYINCOMPOUND", e[t])) return !0;
return !1;
},
hasFlag: function(n, e, t) {
if (e in this.flags) {
if ("undefined" == typeof t) var t = Array.prototype.concat.apply([], this.dictionaryTable[n]);
if (t && -1 !== t.indexOf(this.flags[e])) return !0;
}
return !1;
},
alphabet: "",
suggest: function(n, e) {
function t(n) {
for (var e = [], t = 0, i = n.length; i > t; t++) {
for (var a = n[t], r = [], o = 0, s = a.length + 1; s > o; o++) r.push([ a.substring(0, o), a.substring(o, a.length) ]);
for (var l = [], o = 0, s = r.length; s > o; o++) {
var M = r[o];
M[1] && l.push(M[0] + M[1].substring(1));
}
for (var u = [], o = 0, s = r.length; s > o; o++) {
var M = r[o];
M[1].length > 1 && u.push(M[0] + M[1][1] + M[1][0] + M[1].substring(2));
}
for (var d = [], o = 0, s = r.length; s > o; o++) {
var M = r[o];
if (M[1]) for (var h = 0, S = c.alphabet.length; S > h; h++) d.push(M[0] + c.alphabet[h] + M[1].substring(1));
}
for (var p = [], o = 0, s = r.length; s > o; o++) {
var M = r[o];
if (M[1]) for (var h = 0, S = c.alphabet.length; S > h; h++) d.push(M[0] + c.alphabet[h] + M[1]);
}
e = e.concat(l), e = e.concat(u), e = e.concat(d), e = e.concat(p);
}
return e;
}
function i(n) {
for (var e = [], t = 0; t < n.length; t++) c.check(n[t]) && e.push(n[t]);
return e;
}
function a(n) {
function a(n, e) {
return n[1] < e[1] ? -1 : 1;
}
for (var r = t([ n ]), o = t(r), s = i(r).concat(i(o)), l = {}, M = 0, u = s.length; u > M; M++) s[M] in l ? l[s[M]] += 1 : l[s[M]] = 1;
var d = [];
for (var M in l) d.push([ M, l[M] ]);
d.sort(a).reverse();
for (var h = [], M = 0, u = Math.min(e, d.length); u > M; M++) c.hasFlag(d[M][0], "NOSUGGEST") || h.push(d[M][0]);
return h;
}
if (e || (e = 5), this.check(n)) return [];
for (var r = 0, o = this.replacementTable.length; o > r; r++) {
var s = this.replacementTable[r];
if (-1 !== n.indexOf(s[0])) {
var l = n.replace(s[0], s[1]);
if (this.check(l)) return [ l ];
}
}
var c = this;
return c.alphabet = "abcdefghijklmnopqrstuvwxyz", a(n);
}
}, define("typo-js", function(n) {
return function() {
var e;
return e || n.Typo;
};
}(this)), define("text!bower-libs/Typo.js/typo/typo.js", [], function() {
return '\'use strict\';\n\n/**\n * Typo is a JavaScript implementation of a spellchecker using hunspell-style \n * dictionaries.\n */\n\n/**\n * Typo constructor.\n *\n * @param {String} [dictionary] The locale code of the dictionary being used. e.g.,\n * "en_US". This is only used to auto-load dictionaries.\n * @param {String} [affData] The data from the dictionary\'s .aff file. If omitted\n * and the first argument is supplied, in "chrome" platform,\n * the .aff file will be loaded automatically from\n * lib/typo/dictionaries/[dictionary]/[dictionary].aff\n * In other platform, it will be loaded from\n * [setting.path]/dictionaries/[dictionary]/[dictionary].aff\n * @param {String} [wordsData] The data from the dictionary\'s .dic file. If omitted,\n * and the first argument is supplied, in "chrome" platform,\n * the .dic file will be loaded automatically from\n * lib/typo/dictionaries/[dictionary]/[dictionary].dic\n * In other platform, it will be loaded from\n * [setting.path]/dictionaries/[dictionary]/[dictionary].dic\n * @param {Object} [settings] Constructor settings. Available properties are:\n * {String} [platform]: "chrome" for Chrome Extension or other\n * value for the usual web.\n * {String} [path]: path to load dictionary from in non-chrome\n * environment.\n * {Object} [flags]: flag information.\n *\n *\n * @returns {Typo} A Typo object.\n */\n\nvar Typo = function (dictionary, affData, wordsData, settings) {\n settings = settings || {};\n \n /** Determines the method used for auto-loading .aff and .dic files. **/\n this.platform = settings.platform || "chrome"; \n \n this.dictionary = null;\n \n this.rules = {};\n this.dictionaryTable = {};\n \n this.compoundRules = [];\n this.compoundRuleCodes = {};\n \n this.replacementTable = [];\n \n this.flags = settings.flags || {}; \n \n if (dictionary) {\n this.dictionary = dictionary;\n \n if (this.platform == "chrome") {\n if (!affData) affData = this._readFile(chrome.extension.getURL("lib/typo/dictionaries/" + dictionary + "/" + dictionary + ".aff"));\n if (!wordsData) wordsData = this._readFile(chrome.extension.getURL("lib/typo/dictionaries/" + dictionary + "/" + dictionary + ".dic"));\n } else {\n var path = settings.dictionaryPath || \'\';\n \n if (!affData) affData = this._readFile(path + "/" + dictionary + "/" + dictionary + ".aff");\n if (!wordsData) wordsData = this._readFile(path + "/" + dictionary + "/" + dictionary + ".dic");\n }\n \n this.rules = this._parseAFF(affData);\n \n // Save the rule codes that are used in compound rules.\n this.compoundRuleCodes = {};\n \n for (var i = 0, _len = this.compoundRules.length; i < _len; i++) {\n var rule = this.compoundRules[i];\n \n for (var j = 0, _jlen = rule.length; j < _jlen; j++) {\n this.compoundRuleCodes[rule[j]] = [];\n }\n }\n \n // If we add this ONLYINCOMPOUND flag to this.compoundRuleCodes, then _parseDIC\n // will do the work of saving the list of words that are compound-only.\n if ("ONLYINCOMPOUND" in this.flags) {\n this.compoundRuleCodes[this.flags.ONLYINCOMPOUND] = [];\n }\n \n this.dictionaryTable = this._parseDIC(wordsData);\n \n // Get rid of any codes from the compound rule codes that are never used \n // (or that were special regex characters). Not especially necessary... \n for (var i in this.compoundRuleCodes) {\n if (this.compoundRuleCodes[i].length == 0) {\n delete this.compoundRuleCodes[i];\n }\n }\n \n // Build the full regular expressions for each compound rule.\n // I have a feeling (but no confirmation yet) that this method of \n // testing for compound words is probably slow.\n for (var i = 0, _len = this.compoundRules.length; i < _len; i++) {\n var ruleText = this.compoundRules[i];\n \n var expressionText = "";\n \n for (var j = 0, _jlen = ruleText.length; j < _jlen; j++) {\n var character = ruleText[j];\n \n if (character in this.compoundRuleCodes) {\n expressionText += "(" + this.compoundRuleCodes[character].join("|") + ")";\n }\n else {\n expressionText += character;\n }\n }\n \n this.compoundRules[i] = new RegExp(expressionText, "i");\n }\n }\n \n return this;\n};\n\nTypo.prototype = {\n /**\n * Loads a Typo instance from a hash of all of the Typo properties.\n *\n * @param object obj A hash of Typo properties, probably gotten from a JSON.parse(JSON.stringify(typo_instance)).\n */\n \n load : function (obj) {\n for (var i in obj) {\n this[i] = obj[i];\n }\n \n return this;\n },\n \n /**\n * Read the contents of a file.\n * \n * @param {String} path The path (relative) to the file.\n * @param {String} [charset="ISO8859-1"] The expected charset of the file\n * @returns string The file data.\n */\n \n _readFile : function (path, charset) {\n if (!charset) charset = "ISO8859-1";\n \n var req = new XMLHttpRequest();\n req.open("GET", path, false);\n \n if (req.overrideMimeType)\n req.overrideMimeType("text/plain; charset=" + charset);\n \n req.send(null);\n \n return req.responseText;\n },\n \n /**\n * Parse the rules out from a .aff file.\n *\n * @param {String} data The contents of the affix file.\n * @returns object The rules from the file.\n */\n \n _parseAFF : function (data) {\n var rules = {};\n \n // Remove comment lines\n data = this._removeAffixComments(data);\n \n var lines = data.split("\\n");\n \n for (var i = 0, _len = lines.length; i < _len; i++) {\n var line = lines[i];\n \n var definitionParts = line.split(/\\s+/);\n \n var ruleType = definitionParts[0];\n \n if (ruleType == "PFX" || ruleType == "SFX") {\n var ruleCode = definitionParts[1];\n var combineable = definitionParts[2];\n var numEntries = parseInt(definitionParts[3], 10);\n \n var entries = [];\n \n for (var j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) {\n var line = lines[j];\n \n var lineParts = line.split(/\\s+/);\n var charactersToRemove = lineParts[2];\n \n var additionParts = lineParts[3].split("/");\n \n var charactersToAdd = additionParts[0];\n if (charactersToAdd === "0") charactersToAdd = "";\n \n var continuationClasses = this.parseRuleCodes(additionParts[1]);\n \n var regexToMatch = lineParts[4];\n \n var entry = {};\n entry.add = charactersToAdd;\n \n if (continuationClasses.length > 0) entry.continuationClasses = continuationClasses;\n \n if (regexToMatch !== ".") {\n if (ruleType === "SFX") {\n entry.match = new RegExp(regexToMatch + "$");\n }\n else {\n entry.match = new RegExp("^" + regexToMatch);\n }\n }\n \n if (charactersToRemove != "0") {\n if (ruleType === "SFX") {\n entry.remove = new RegExp(charactersToRemove + "$");\n }\n else {\n entry.remove = charactersToRemove;\n }\n }\n \n entries.push(entry);\n }\n \n rules[ruleCode] = { "type" : ruleType, "combineable" : (combineable == "Y"), "entries" : entries };\n \n i += numEntries;\n }\n else if (ruleType === "COMPOUNDRULE") {\n var numEntries = parseInt(definitionParts[1], 10);\n \n for (var j = i + 1, _jlen = i + 1 + numEntries; j < _jlen; j++) {\n var line = lines[j];\n \n var lineParts = line.split(/\\s+/);\n this.compoundRules.push(lineParts[1]);\n }\n \n i += numEntries;\n }\n else if (ruleType === "REP") {\n var lineParts = line.split(/\\s+/);\n \n if (lineParts.length === 3) {\n this.replacementTable.push([ lineParts[1], lineParts[2] ]);\n }\n }\n else {\n // ONLYINCOMPOUND\n // COMPOUNDMIN\n // FLAG\n // KEEPCASE\n // NEEDAFFIX\n \n this.flags[ruleType] = definitionParts[1];\n }\n }\n \n return rules;\n },\n \n /**\n * Removes comment lines and then cleans up blank lines and trailing whitespace.\n *\n * @param {String} data The data from an affix file.\n * @return {String} The cleaned-up data.\n */\n \n _removeAffixComments : function (data) {\n // Remove comments\n data = data.replace(/#.*$/mg, "");\n \n // Trim each line\n data = data.replace(/^\\s\\s*/m, \'\').replace(/\\s\\s*$/m, \'\');\n \n // Remove blank lines.\n data = data.replace(/\\n{2,}/g, "\\n");\n \n // Trim the entire string\n data = data.replace(/^\\s\\s*/, \'\').replace(/\\s\\s*$/, \'\');\n \n return data;\n },\n \n /**\n * Parses the words out from the .dic file.\n *\n * @param {String} data The data from the dictionary file.\n * @returns object The lookup table containing all of the words and\n * word forms from the dictionary.\n */\n \n _parseDIC : function (data) {\n data = this._removeDicComments(data);\n \n var lines = data.split("\\n");\n var dictionaryTable = {};\n \n function addWord(word, rules) {\n // Some dictionaries will list the same word multiple times with different rule sets.\n if (!(word in dictionaryTable) || typeof dictionaryTable[word] != \'object\') {\n dictionaryTable[word] = [];\n }\n \n dictionaryTable[word].push(rules);\n }\n \n // The first line is the number of words in the dictionary.\n for (var i = 1, _len = lines.length; i < _len; i++) {\n var line = lines[i];\n \n var parts = line.split("/", 2);\n \n var word = parts[0];\n\n // Now for each affix rule, generate that form of the word.\n if (parts.length > 1) {\n var ruleCodesArray = this.parseRuleCodes(parts[1]);\n \n // Save the ruleCodes for compound word situations.\n if (!("NEEDAFFIX" in this.flags) || ruleCodesArray.indexOf(this.flags.NEEDAFFIX) == -1) {\n addWord(word, ruleCodesArray);\n }\n \n for (var j = 0, _jlen = ruleCodesArray.length; j < _jlen; j++) {\n var code = ruleCodesArray[j];\n \n var rule = this.rules[code];\n \n if (rule) {\n var newWords = this._applyRule(word, rule);\n \n for (var ii = 0, _iilen = newWords.length; ii < _iilen; ii++) {\n var newWord = newWords[ii];\n \n addWord(newWord, []);\n \n if (rule.combineable) {\n for (var k = j + 1; k < _jlen; k++) {\n var combineCode = ruleCodesArray[k];\n \n var combineRule = this.rules[combineCode];\n \n if (combineRule) {\n if (combineRule.combineable && (rule.type != combineRule.type)) {\n var otherNewWords = this._applyRule(newWord, combineRule);\n \n for (var iii = 0, _iiilen = otherNewWords.length; iii < _iiilen; iii++) {\n var otherNewWord = otherNewWords[iii];\n addWord(otherNewWord, []);\n }\n }\n }\n }\n }\n }\n }\n \n if (code in this.compoundRuleCodes) {\n this.compoundRuleCodes[code].push(word);\n }\n }\n }\n else {\n addWord(word, []);\n }\n }\n \n return dictionaryTable;\n },\n \n \n /**\n * Removes comment lines and then cleans up blank lines and trailing whitespace.\n *\n * @param {String} data The data from a .dic file.\n * @return {String} The cleaned-up data.\n */\n \n _removeDicComments : function (data) {\n // I can\'t find any official documentation on it, but at least the de_DE\n // dictionary uses tab-indented lines as comments.\n \n // Remove comments\n data = data.replace(/^\\t.*$/mg, "");\n \n return data;\n \n // Trim each line\n data = data.replace(/^\\s\\s*/m, \'\').replace(/\\s\\s*$/m, \'\');\n \n // Remove blank lines.\n data = data.replace(/\\n{2,}/g, "\\n");\n \n // Trim the entire string\n data = data.replace(/^\\s\\s*/, \'\').replace(/\\s\\s*$/, \'\');\n \n return data;\n },\n \n parseRuleCodes : function (textCodes) {\n if (!textCodes) {\n return [];\n }\n else if (!("FLAG" in this.flags)) {\n return textCodes.split("");\n }\n else if (this.flags.FLAG === "long") {\n var flags = [];\n \n for (var i = 0, _len = textCodes.length; i < _len; i += 2) {\n flags.push(textCodes.substr(i, 2));\n }\n \n return flags;\n }\n else if (this.flags.FLAG === "num") {\n return textCode.split(",");\n }\n },\n \n /**\n * Applies an affix rule to a word.\n *\n * @param {String} word The base word.\n * @param {Object} rule The affix rule.\n * @returns {String[]} The new words generated by the rule.\n */\n \n _applyRule : function (word, rule) {\n var entries = rule.entries;\n var newWords = [];\n \n for (var i = 0, _len = entries.length; i < _len; i++) {\n var entry = entries[i];\n \n if (!entry.match || word.match(entry.match)) {\n var newWord = word;\n \n if (entry.remove) {\n newWord = newWord.replace(entry.remove, "");\n }\n \n if (rule.type === "SFX") {\n newWord = newWord + entry.add;\n }\n else {\n newWord = entry.add + newWord;\n }\n \n newWords.push(newWord);\n \n if ("continuationClasses" in entry) {\n for (var j = 0, _jlen = entry.continuationClasses.length; j < _jlen; j++) {\n var continuationRule = this.rules[entry.continuationClasses[j]];\n \n if (continuationRule) {\n newWords = newWords.concat(this._applyRule(newWord, continuationRule));\n }\n /*\n else {\n // This shouldn\'t happen, but it does, at least in the de_DE dictionary.\n // I think the author mistakenly supplied lower-case rule codes instead \n // of upper-case.\n }\n */\n }\n }\n }\n }\n \n return newWords;\n },\n \n /**\n * Checks whether a word or a capitalization variant exists in the current dictionary.\n * The word is trimmed and several variations of capitalizations are checked.\n * If you want to check a word without any changes made to it, call checkExact()\n *\n * @see http://blog.stevenlevithan.com/archives/faster-trim-javascript re:trimming function\n *\n * @param {String} aWord The word to check.\n * @returns {Boolean}\n */\n \n check : function (aWord) {\n // Remove leading and trailing whitespace\n var trimmedWord = aWord.replace(/^\\s\\s*/, \'\').replace(/\\s\\s*$/, \'\');\n \n if (this.checkExact(trimmedWord)) {\n return true;\n }\n \n // The exact word is not in the dictionary.\n if (trimmedWord.toUpperCase() === trimmedWord) {\n // The word was supplied in all uppercase.\n // Check for a capitalized form of the word.\n var capitalizedWord = trimmedWord[0] + trimmedWord.substring(1).toLowerCase();\n \n if (this.hasFlag(capitalizedWord, "KEEPCASE")) {\n // Capitalization variants are not allowed for this word.\n return false;\n }\n \n if (this.checkExact(capitalizedWord)) {\n return true;\n }\n }\n \n var lowercaseWord = trimmedWord.toLowerCase();\n \n if (lowercaseWord !== trimmedWord) {\n if (this.hasFlag(lowercaseWord, "KEEPCASE")) {\n // Capitalization variants are not allowed for this word.\n return false;\n }\n \n // Check for a lowercase form\n if (this.checkExact(lowercaseWord)) {\n return true;\n }\n }\n \n return false;\n },\n \n /**\n * Checks whether a word exists in the current dictionary.\n *\n * @param {String} word The word to check.\n * @returns {Boolean}\n */\n \n checkExact : function (word) {\n var ruleCodes = this.dictionaryTable[word];\n \n if (typeof ruleCodes === \'undefined\') {\n // Check if this might be a compound word.\n if ("COMPOUNDMIN" in this.flags && word.length >= this.flags.COMPOUNDMIN) {\n for (var i = 0, _len = this.compoundRules.length; i < _len; i++) {\n if (word.match(this.compoundRules[i])) {\n return true;\n }\n }\n }\n \n return false;\n }\n else {\n for (var i = 0, _len = ruleCodes.length; i < _len; i++) {\n if (!this.hasFlag(word, "ONLYINCOMPOUND", ruleCodes[i])) {\n return true;\n }\n }\n \n return false;\n }\n },\n \n /**\n * Looks up whether a given word is flagged with a given flag.\n *\n * @param {String} word The word in question.\n * @param {String} flag The flag in question.\n * @return {Boolean}\n */\n \n hasFlag : function (word, flag, wordFlags) {\n if (flag in this.flags) {\n if (typeof wordFlags === \'undefined\') {\n var wordFlags = Array.prototype.concat.apply([], this.dictionaryTable[word]);\n }\n \n if (wordFlags && wordFlags.indexOf(this.flags[flag]) !== -1) {\n return true;\n }\n }\n \n return false;\n },\n \n /**\n * Returns a list of suggestions for a misspelled word.\n *\n * @see http://www.norvig.com/spell-correct.html for the basis of this suggestor.\n * This suggestor is primitive, but it works.\n *\n * @param {String} word The misspelling.\n * @param {Number} [limit=5] The maximum number of suggestions to return.\n * @returns {String[]} The array of suggestions.\n */\n \n alphabet : "",\n \n suggest : function (word, limit) {\n if (!limit) limit = 5;\n \n if (this.check(word)) return [];\n \n // Check the replacement table.\n for (var i = 0, _len = this.replacementTable.length; i < _len; i++) {\n var replacementEntry = this.replacementTable[i];\n \n if (word.indexOf(replacementEntry[0]) !== -1) {\n var correctedWord = word.replace(replacementEntry[0], replacementEntry[1]);\n \n if (this.check(correctedWord)) {\n return [ correctedWord ];\n }\n }\n }\n \n var self = this;\n self.alphabet = "abcdefghijklmnopqrstuvwxyz";\n \n /*\n if (!self.alphabet) {\n // Use the alphabet as implicitly defined by the words in the dictionary.\n var alphaHash = {};\n \n for (var i in self.dictionaryTable) {\n for (var j = 0, _len = i.length; j < _len; j++) {\n alphaHash[i[j]] = true;\n }\n }\n \n for (var i in alphaHash) {\n self.alphabet += i;\n }\n \n var alphaArray = self.alphabet.split("");\n alphaArray.sort();\n self.alphabet = alphaArray.join("");\n }\n */\n \n function edits1(words) {\n var rv = [];\n \n for (var ii = 0, _iilen = words.length; ii < _iilen; ii++) {\n var word = words[ii];\n \n var splits = [];\n \n for (var i = 0, _len = word.length + 1; i < _len; i++) {\n splits.push([ word.substring(0, i), word.substring(i, word.length) ]);\n }\n \n var deletes = [];\n \n for (var i = 0, _len = splits.length; i < _len; i++) {\n var s = splits[i];\n \n if (s[1]) {\n deletes.push(s[0] + s[1].substring(1));\n }\n }\n \n var transposes = [];\n \n for (var i = 0, _len = splits.length; i < _len; i++) {\n var s = splits[i];\n \n if (s[1].length > 1) {\n transposes.push(s[0] + s[1][1] + s[1][0] + s[1].substring(2));\n }\n }\n \n var replaces = [];\n \n for (var i = 0, _len = splits.length; i < _len; i++) {\n var s = splits[i];\n \n if (s[1]) {\n for (var j = 0, _jlen = self.alphabet.length; j < _jlen; j++) {\n replaces.push(s[0] + self.alphabet[j] + s[1].substring(1));\n }\n }\n }\n \n var inserts = [];\n \n for (var i = 0, _len = splits.length; i < _len; i++) {\n var s = splits[i];\n \n if (s[1]) {\n for (var j = 0, _jlen = self.alphabet.length; j < _jlen; j++) {\n replaces.push(s[0] + self.alphabet[j] + s[1]);\n }\n }\n }\n \n rv = rv.concat(deletes);\n rv = rv.concat(transposes);\n rv = rv.concat(replaces);\n rv = rv.concat(inserts);\n }\n \n return rv;\n }\n \n function known(words) {\n var rv = [];\n \n for (var i = 0; i < words.length; i++) {\n if (self.check(words[i])) {\n rv.push(words[i]);\n }\n }\n \n return rv;\n }\n \n function correct(word) {\n // Get the edit-distance-1 and edit-distance-2 forms of this word.\n var ed1 = edits1([word]);\n var ed2 = edits1(ed1);\n \n var corrections = known(ed1).concat(known(ed2));\n \n // Sort the edits based on how many different ways they were created.\n var weighted_corrections = {};\n \n for (var i = 0, _len = corrections.length; i < _len; i++) {\n if (!(corrections[i] in weighted_corrections)) {\n weighted_corrections[corrections[i]] = 1;\n }\n else {\n weighted_corrections[corrections[i]] += 1;\n }\n }\n \n var sorted_corrections = [];\n \n for (var i in weighted_corrections) {\n sorted_corrections.push([ i, weighted_corrections[i] ]);\n }\n \n function sorter(a, b) {\n if (a[1] < b[1]) {\n return -1;\n }\n \n return 1;\n }\n \n sorted_corrections.sort(sorter).reverse();\n \n var rv = [];\n \n for (var i = 0, _len = Math.min(limit, sorted_corrections.length); i < _len; i++) {\n if (!self.hasFlag(sorted_corrections[i][0], "NOSUGGEST")) {\n rv.push(sorted_corrections[i][0]);\n }\n }\n \n return rv;\n }\n \n return correct(word);\n }\n};\n';
}), define("text!workers/spellCheckWorker.js", [], function() {
return "var dictionary = undefined;\n\nself.init = function(typoJS, lang, aff, dic) {\n eval([\n typoJS,\n 'dictionary = new Typo(lang, aff, dic);'\n ].join('\\n'));\n};\n\nvar timeoutId = undefined;\nself.check = function(words) {\n // Check function has priority over Suggest function\n // This prevents Suggest to run if called just before Check\n timeoutId && clearTimeout(timeoutId);\n for (var i = 0; i < words.length; i++) {\n var word = words[i];\n word.check = dictionary.check(word.value);\n }\n postMessage(JSON.stringify(['check', words]));\n};\n\nvar word = undefined;\n\nfunction delayedSuggest() {\n timeoutId = undefined;\n var suggestions = dictionary.suggest(word);\n postMessage(JSON.stringify(['suggest', suggestions]));\n}\n\nself.suggest = function(wordParam) {\n word = wordParam;\n timeoutId = setTimeout(delayedSuggest, 50);\n};\n";
}), define("text!dictionaries/en_US.dic", [], function() {
return "62118\n0/nm\n1/n1\n2/nm\n3/nm\n4/nm\n5/nm\n6/nm\n7/nm\n8/nm\n9/nm\n0th/pt\n1st/p\n1th/tc\n2nd/p\n2th/tc\n3rd/p\n3th/tc\n4th/pt\n5th/pt\n6th/pt\n7th/pt\n8th/pt\n9th/pt\na\nA\nAA\nAAA\nAachen/M\naardvark/SM\nAaren/M\nAarhus/M\nAarika/M\nAaron/M\nAB\naback\nabacus/SM\nabaft\nAbagael/M\nAbagail/M\nabalone/SM\nabandoner/M\nabandon/LGDRS\nabandonment/SM\nabase/LGDSR\nabasement/S\nabaser/M\nabashed/UY\nabashment/MS\nabash/SDLG\nabate/DSRLG\nabated/U\nabatement/MS\nabater/M\nabattoir/SM\nAbba/M\nAbbe/M\nabb<62>/S\nabbess/SM\nAbbey/M\nabbey/MS\nAbbie/M\nAbbi/M\nAbbot/M\nabbot/MS\nAbbott/M\nabbr\nabbrev\nabbreviated/UA\nabbreviates/A\nabbreviate/XDSNG\nabbreviating/A\nabbreviation/M\nAbbye/M\nAbby/M\nABC/M\nAbdel/M\nabdicate/NGDSX\nabdication/M\nabdomen/SM\nabdominal/YS\nabduct/DGS\nabduction/SM\nabductor/SM\nAbdul/M\nab/DY\nabeam\nAbelard/M\nAbel/M\nAbelson/M\nAbe/M\nAberdeen/M\nAbernathy/M\naberrant/YS\naberrational\naberration/SM\nabet/S\nabetted\nabetting\nabettor/SM\nAbeu/M\nabeyance/MS\nabeyant\nAbey/M\nabhorred\nabhorrence/MS\nabhorrent/Y\nabhorrer/M\nabhorring\nabhor/S\nabidance/MS\nabide/JGSR\nabider/M\nabiding/Y\nAbidjan/M\nAbie/M\nAbigael/M\nAbigail/M\nAbigale/M\nAbilene/M\nability/IMES\nabjection/MS\nabjectness/SM\nabject/SGPDY\nabjuration/SM\nabjuratory\nabjurer/M\nabjure/ZGSRD\nablate/VGNSDX\nablation/M\nablative/SY\nablaze\nabler/E\nables/E\nablest\nable/U\nabloom\nablution/MS\nAb/M\nABM/S\nabnegate/NGSDX\nabnegation/M\nAbner/M\nabnormality/SM\nabnormal/SY\naboard\nabode/GMDS\nabolisher/M\nabolish/LZRSDG\nabolishment/MS\nabolitionism/SM\nabolitionist/SM\nabolition/SM\nabominable\nabominably\nabominate/XSDGN\nabomination/M\naboriginal/YS\naborigine/SM\nAborigine/SM\naborning\nabortionist/MS\nabortion/MS\nabortiveness/M\nabortive/PY\nabort/SRDVG\nAbo/SM!\nabound/GDS\nabout/S\naboveboard\naboveground\nabove/S\nabracadabra/S\nabrader/M\nabrade/SRDG\nAbraham/M\nAbrahan/M\nAbra/M\nAbramo/M\nAbram/SM\nAbramson/M\nAbran/M\nabrasion/MS\nabrasiveness/S\nabrasive/SYMP\nabreaction/MS\nabreast\nabridge/DSRG\nabridged/U\nabridger/M\nabridgment/SM\nabroad\nabrogate/XDSNG\nabrogation/M\nabrogator/SM\nabruptness/SM\nabrupt/TRYP\nABS\nabscess/GDSM\nabscissa/SM\nabscission/SM\nabsconder/M\nabscond/SDRZG\nabseil/SGDR\nabsence/SM\nabsenteeism/SM\nabsentee/MS\nabsentia/M\nabsentmindedness/S\nabsentminded/PY\nabsent/SGDRY\nabsinthe/SM\nabs/M\nabsoluteness/SM\nabsolute/NPRSYTX\nabsolution/M\nabsolutism/MS\nabsolutist/SM\nabsolve/GDSR\nabsolver/M\nabsorb/ASGD\nabsorbed/U\nabsorbency/MS\nabsorbent/MS\nabsorber/SM\nabsorbing/Y\nabsorption/MS\nabsorptive\nabsorptivity/M\nabstainer/M\nabstain/GSDRZ\nabstemiousness/MS\nabstemious/YP\nabstention/SM\nabstinence/MS\nabstinent/Y\nabstractedness/SM\nabstracted/YP\nabstracter/M\nabstractionism/M\nabstractionist/SM\nabstraction/SM\nabstractness/SM\nabstractor/MS\nabstract/PTVGRDYS\nabstruseness/SM\nabstruse/PRYT\nabsurdity/SM\nabsurdness/SM\nabsurd/PRYST\nAbuja\nabundance/SM\nabundant/Y\nabused/E\nabuse/GVZDSRB\nabuser/M\nabuses/E\nabusing/E\nabusiveness/SM\nabusive/YP\nabut/LS\nabutment/SM\nabutted\nabutter/MS\nabutting\nabuzz\nabysmal/Y\nabyssal\nAbyssinia/M\nAbyssinian\nabyss/SM\nAC\nacacia/SM\nacademe/MS\nacademia/SM\nacademical/Y\nacademicianship\nacademician/SM\nacademic/S\nacademy/SM\nAcadia/M\nacanthus/MS\nAcapulco/M\naccede/SDG\naccelerated/U\naccelerate/NGSDXV\naccelerating/Y\nacceleration/M\naccelerator/SM\naccelerometer/SM\naccented/U\naccent/SGMD\naccentual/Y\naccentuate/XNGSD\naccentuation/M\nacceptability/SM\nacceptability's/U\nacceptableness/SM\nacceptable/P\nacceptably/U\nacceptance/SM\nacceptant\nacceptation/SM\naccepted/Y\naccepter/M\naccepting/PY\nacceptor/MS\naccept/RDBSZVG\naccessed/A\naccessibility/IMS\naccessible/IU\naccessibly/I\naccession/SMDG\naccessors\naccessory/SM\naccess/SDMG\naccidence/M\naccidentalness/M\naccidental/SPY\naccident/MS\nacclaimer/M\nacclaim/SDRG\nacclamation/MS\nacclimate/XSDGN\nacclimation/M\nacclimatisation\nacclimatise/DG\nacclimatization/AMS\nacclimatized/U\nacclimatize/RSDGZ\nacclimatizes/A\nacclivity/SM\naccolade/GDSM\naccommodated/U\naccommodate/XVNGSD\naccommodating/Y\naccommodation/M\naccommodativeness/M\naccommodative/P\naccompanied/U\naccompanier/M\naccompaniment/MS\naccompanist/SM\naccompany/DRSG\naccomplice/MS\naccomplished/U\naccomplisher/M\naccomplishment/SM\naccomplish/SRDLZG\naccordance/SM\naccordant/Y\naccorder/M\naccording/Y\naccordionist/SM\naccordion/MS\naccord/SZGMRD\naccost/SGD\naccountability/MS\naccountability's/U\naccountableness/M\naccountable/U\naccountably/U\naccountancy/SM\naccountant/MS\naccount/BMDSGJ\naccounted/U\naccounting/M\naccouter/GSD\naccouterments\naccouterment's\naccoutrement/M\nAccra/M\naccreditation/SM\naccredited/U\naccredit/SGD\naccretion/SM\naccrual/MS\naccrue/SDG\nacct\nacculturate/XSDVNG\nacculturation/M\naccumulate/VNGSDX\naccumulation/M\naccumulativeness/M\naccumulative/YP\naccumulator/MS\naccuracy/IMS\naccurate/IY\naccurateness/SM\naccursedness/SM\naccursed/YP\naccusal/M\naccusation/SM\naccusative/S\naccusatory\naccused/M\naccuser/M\naccuse/SRDZG\naccusing/Y\naccustomedness/M\naccustomed/P\naccustom/SGD\nac/DRG\naced/M\nacerbate/DSG\nacerbic\nacerbically\nacerbity/MS\nace/SM\nacetaminophen/S\nacetate/MS\nacetic\nacetone/SM\nacetonic\nacetylene/MS\nAcevedo/M\nAchaean/M\nAchebe/M\nached/A\nache/DSG\nachene/SM\nAchernar/M\naches/A\nAcheson/M\nachievable/U\nachieved/UA\nachieve/LZGRSDB\nachievement/SM\nachiever/M\nAchilles\naching/Y\nachoo\nachromatic\nachy/TR\nacidic\nacidification/M\nacidify/NSDG\nacidity/SM\nacidness/M\nacidoses\nacidosis/M\nacid/SMYP\nacidulous\nacing/M\nAckerman/M\nacknowledgeable\nacknowledgedly\nacknowledged/U\nacknowledge/GZDRS\nacknowledger/M\nacknowledgment/SAM\nACLU\nAc/M\nACM\nacme/SM\nacne/MDS\nacolyte/MS\nAconcagua/M\naconite/MS\nacorn/SM\nAcosta/M\nacoustical/Y\nacoustician/M\nacoustic/S\nacoustics/M\nacquaintance/MS\nacquaintanceship/S\nacquainted/U\nacquaint/GASD\nacquiesce/GSD\nacquiescence/SM\nacquiescent/Y\nacquirable\nacquire/ASDG\nacquirement/SM\nacquisition's/A\nacquisition/SM\nacquisitiveness/MS\nacquisitive/PY\nacquit/S\nacquittal/MS\nacquittance/M\nacquitted\nacquitter/M\nacquitting\nacreage/MS\nacre/MS\nacridity/MS\nacridness/SM\nacrid/TPRY\nacrimoniousness/MS\nacrimonious/YP\nacrimony/MS\nacrobatically\nacrobatic/S\nacrobatics/M\nacrobat/SM\nacronym/SM\nacrophobia/SM\nAcropolis/M\nacropolis/SM\nacross\nacrostic/SM\nAcrux/M\nacrylate/M\nacrylic/S\nACT\nActaeon/M\nActa/M\nACTH\nacting/S\nactinic\nactinide/SM\nactinium/MS\nactinometer/MS\naction/DMSGB\nactions/AI\naction's/IA\nactivate/AXCDSNGI\nactivated/U\nactivation/AMCI\nactivator/SM\nactive/APY\nactively/I\nactiveness/MS\nactives\nactivism/MS\nactivist/MS\nactivities/A\nactivity/MSI\nActon/M\nactor/MAS\nactress/SM\nact's\nActs\nact/SADVG\nactuality/SM\nactualization/MAS\nactualize/GSD\nactualizes/A\nactual/SY\nactuarial/Y\nactuary/MS\nactuate/GNXSD\nactuation/M\nactuator/SM\nacuity/MS\nacumen/SM\nacupressure/S\nacupuncture/SM\nacupuncturist/S\nacuteness/MS\nacute/YTSRP\nacyclic\nacyclically\nacyclovir/S\nAD\nadage/MS\nadagio/S\nAdah/M\nAdair/M\nAdaline/M\nAda/M\nadamant/SY\nAdamo/M\nAdam/SM\nAdamson/M\nAdana/M\nAdan/M\nadaptability/MS\nadaptable/U\nadaptation/MS\nadaptedness/M\nadapted/P\nadapter/M\nadapting/A\nadaption\nadaptively\nadaptiveness/M\nadaptive/U\nadaptivity\nadapt/SRDBZVG\nAdara/M\nad/AS\nADC\nAdda/M\nAddams\naddenda\naddend/SM\naddendum/M\nadder/M\nAddia/M\naddiction/MS\naddictive/P\naddict/SGVD\nAddie/M\nAddi/M\nAddison/M\nadditional/Y\naddition/MS\nadditive/YMS\nadditivity\naddle/GDS\naddressability\naddressable/U\naddressed/A\naddressee/SM\naddresser/M\naddresses/A\naddress/MDRSZGB\nAddressograph/M\nadduce/GRSD\nadducer/M\nadduct/DGVS\nadduction/M\nadductor/M\nAddy/M\nadd/ZGBSDR\nAdelaida/M\nAdelaide/M\nAdela/M\nAdelbert/M\nAdele/M\nAdelheid/M\nAdelice/M\nAdelina/M\nAdelind/M\nAdeline/M\nAdella/M\nAdelle/M\nAdel/M\nAde/M\nAdena/M\nAdenauer/M\nadenine/SM\nAden/M\nadenoidal\nadenoid/S\nadeptness/MS\nadept/RYPTS\nadequacy/IMS\nadequate/IPY\nadequateness's/I\nadequateness/SM\nAdey/M\nAdham/M\nAdhara/M\nadherence/SM\nadherent/YMS\nadherer/M\nadhere/ZGRSD\nadhesion/MS\nadhesiveness/MS\nadhesive/PYMS\nadiabatic\nadiabatically\nAdiana/M\nAdidas/M\nadieu/S\nAdi/M\nAdina/M\nadi<64>s\nadipose/S\nAdirondack/SM\nadj\nadjacency/MS\nadjacent/Y\nadjectival/Y\nadjective/MYS\nadjoin/SDG\nadjoint/M\nadjourn/DGLS\nadjournment/SM\nadjudge/DSG\nadjudicate/VNGXSD\nadjudication/M\nadjudicator/SM\nadjudicatory\nadjunct/VSYM\nadjuration/SM\nadjure/GSD\nadjustable/U\nadjustably\nadjust/DRALGSB\nadjusted/U\nadjuster's/A\nadjuster/SM\nadjustive\nadjustment/MAS\nadjustor's\nadjutant/SM\nAdkins/M\nAdlai/M\nAdler/M\nadman/M\nadmen\nadminister/GDJS\nadministrable\nadministrate/XSDVNG\nadministration/M\nadministrative/Y\nadministrator/MS\nadministratrix/M\nadmirableness/M\nadmirable/P\nadmirably\nadmiral/SM\nadmiralty/MS\nAdmiralty/S\nadmiration/MS\nadmirer/M\nadmire/RSDZBG\nadmiring/Y\nadmissibility/ISM\nadmissible/I\nadmissibly\nadmission/AMS\nadmit/AS\nadmittance/MS\nadmitted/A\nadmittedly\nadmitting/A\nadmix/SDG\nadmixture/SM\nAdm/M\nAd/MN\nadmonisher/M\nadmonish/GLSRD\nadmonishing/Y\nadmonishment/SM\nadmonition/MS\nadmonitory\nadobe/MS\nadolescence/MS\nadolescent/SYM\nAdolf/M\nAdolfo/M\nAdolphe/M\nAdolph/M\nAdolpho/M\nAdolphus/M\nAdo/M\nado/MS\nAdonis/SM\nadopted/AU\nadopter/M\nadoption/MS\nadoptive/Y\nadopt/RDSBZVG\nadopts/A\nadorableness/SM\nadorable/P\nadorably\nAdora/M\nadoration/SM\nadore/DSRGZB\nAdoree/M\nAdore/M\nadorer/M\nadoring/Y\nadorned/U\nAdorne/M\nadornment/SM\nadorn/SGLD\nADP\nAdrea/M\nadrenalin\nadrenaline/MS\nAdrenalin/MS\nadrenal/YS\nAdria/MX\nAdriana/M\nAdriane/M\nAdrian/M\nAdrianna/M\nAdrianne/M\nAdriano/M\nAdriatic\nAdriena/M\nAdrien/M\nAdrienne/M\nadrift\nadroitness/MS\nadroit/RTYP\nads\nad's\nadsorbate/M\nadsorbent/S\nadsorb/GSD\nadsorption/MS\nadsorptive/Y\nadulate/GNDSX\nadulation/M\nadulator/SM\nadulatory\nadulterant/SM\nadulterated/U\nadulterate/NGSDX\nadulteration/M\nadulterer/SM\nadulteress/MS\nadulterous/Y\nadultery/SM\nadulthood/MS\nadult/MYPS\nadultness/M\nadumbrate/XSDVGN\nadumbration/M\nadumbrative/Y\nadv\nadvance/DSRLZG\nadvancement/MS\nadvancer/M\nadvantage/GMEDS\nadvantageous/EY\nadvantageousness/M\nAdventist/M\nadventist/S\nadventitiousness/M\nadventitious/PY\nadventive/Y\nAdvent/SM\nadvent/SVM\nadventurer/M\nadventuresome\nadventure/SRDGMZ\nadventuress/SM\nadventurousness/SM\nadventurous/YP\nadverbial/MYS\nadverb/SM\nadversarial\nadversary/SM\nadverse/DSRPYTG\nadverseness/MS\nadversity/SM\nadvert/GSD\nadvertised/U\nadvertise/JGZSRDL\nadvertisement/SM\nadvertiser/M\nadvertising/M\nadvertorial/S\nadvice/SM\nAdvil/M\nadvisability/SIM\nadvisable/I\nadvisableness/M\nadvisably\nadvisedly/I\nadvised/YU\nadvisee/MS\nadvisement/MS\nadviser/M\nadvise/ZRSDGLB\nadvisor/S\nadvisor's\nadvisory/S\nadvocacy/SM\nadvocate/NGVDS\nadvocation/M\nadvt\nadze's\nadz/MDSG\nAegean\naegis/SM\nAelfric/M\nAeneas\nAeneid/M\naeolian\nAeolus/M\naeon's\naerate/XNGSD\naeration/M\naerator/MS\naerialist/MS\naerial/SMY\nAeriela/M\nAeriell/M\nAeriel/M\naerie/SRMT\naeroacoustic\naerobatic/S\naerobically\naerobic/S\naerodrome/SM\naerodynamically\naerodynamic/S\naerodynamics/M\naeronautical/Y\naeronautic/S\naeronautics/M\naerosolize/D\naerosol/MS\naerospace/SM\nAeschylus/M\nAesculapius/M\nAesop/M\naesthete/S\naesthetically\naestheticism/MS\naesthetics/M\naesthetic/U\naether/M\naetiology/M\nAF\nAFAIK\nafar/S\nAFB\nAFC\nAFDC\naffability/MS\naffable/TR\naffably\naffair/SM\naffectation/MS\naffectedness/EM\naffected/UEYP\naffect/EGSD\naffecter/M\naffecting/Y\naffectionate/UY\naffectioned\naffection/EMS\naffectioning\naffective/MY\nafferent/YS\naffiance/GDS\naffidavit/SM\naffiliated/U\naffiliate/EXSDNG\naffiliation/EM\naffine\naffinity/SM\naffirm/ASDG\naffirmation/SAM\naffirmative/SY\naffix/SDG\nafflatus/MS\nafflict/GVDS\naffliction/SM\nafflictive/Y\naffluence/SM\naffluent/YS\nafford/DSBG\nafforest/A\nafforestation/SM\nafforested\nafforesting\nafforests\naffray/MDSG\naffricate/VNMS\naffrication/M\naffricative/M\naffright\naffront/GSDM\nAfghani/SM\nAfghanistan/M\nafghan/MS\nAfghan/SM\naficionado/MS\nafield\nafire\naflame\nafloat\naflutter\nafoot\nafore\naforementioned\naforesaid\naforethought/S\nafoul\nAfr\nafraid/U\nafresh\nAfrica/M\nAfrican/MS\nAfrikaans/M\nAfrikaner/SM\nafro\nAfrocentric\nAfrocentrism/S\nAfro/MS\nafterbirth/M\nafterbirths\nafterburner/MS\naftercare/SM\naftereffect/MS\nafterglow/MS\nafterimage/MS\nafterlife/M\nafterlives\naftermath/M\naftermaths\naftermost\nafternoon/SM\naftershave/S\naftershock/SM\nafters/M\naftertaste/SM\nafterthought/MS\nafterward/S\nafterworld/MS\nAfton/M\naft/ZR\nAgace/M\nagain\nagainst\nAgamemnon/M\nagapae\nagape/S\nagar/MS\nAgassiz/M\nAgata/M\nagate/SM\nAgatha/M\nAgathe/M\nagave/SM\nagedness/M\naged/PY\nage/GJDRSMZ\nageism/S\nageist/S\nagelessness/MS\nageless/YP\nagency/SM\nagenda/MS\nagent/AMS\nagented\nagenting\nagentive\nageratum/M\nAggie/M\nAggi/M\nagglomerate/XNGVDS\nagglomeration/M\nagglutinate/VNGXSD\nagglutination/M\nagglutinin/MS\naggrandize/LDSG\naggrandizement/SM\naggravate/SDNGX\naggravating/Y\naggravation/M\naggregated/U\naggregate/EGNVD\naggregately\naggregateness/M\naggregates\naggregation/SM\naggregative/Y\naggression/SM\naggressively\naggressiveness/S\naggressive/U\naggressor/MS\naggrieved/Y\naggrieve/GDS\nAggy/SM\naghast\nagile/YTR\nagility/MS\nagitated/Y\nagitate/XVNGSD\nagitation/M\nagitator/SM\nagitprop/MS\nAglaia/M\nagleam\naglitter\naglow\nAg/M\nAgna/M\nAgnella/M\nAgnese/M\nAgnes/M\nAgnesse/M\nAgneta/M\nAgnew/M\nAgni/M\nAgnola/M\nagnosticism/MS\nagnostic/SM\nago\nagog\nagonizedly/S\nagonized/Y\nagonize/ZGRSD\nagonizing/Y\nagony/SM\nagoraphobia/MS\nagoraphobic/S\nAgosto/M\nAgra/M\nagrarianism/MS\nagrarian/S\nagreeable/EP\nagreeableness/SME\nagreeably/E\nagreeing/E\nagree/LEBDS\nagreement/ESM\nagreer/S\nAgretha/M\nagribusiness/SM\nAgricola/M\nagriculturalist/S\nagricultural/Y\nagriculture/MS\nagriculturist/SM\nAgrippa/M\nAgrippina/M\nagrochemicals\nagronomic/S\nagronomist/SM\nagronomy/MS\naground\nAguascalientes/M\nague/MS\nAguie/M\nAguilar/M\nAguinaldo/M\nAguirre/M\nAguistin/M\nAguste/M\nAgustin/M\nah\nAhab/M\nAharon/M\naha/S\nahead\nahem/S\nAhmadabad\nAhmad/M\nAhmed/M\nahoy/S\nAhriman/M\nAI\nAida/M\nAidan/M\naided/U\naide/MS\naider/M\nAIDS\naid/ZGDRS\nAigneis/M\naigrette/SM\nAiken/M\nAila/M\nAilbert/M\nAilee/M\nAileen/M\nAile/M\nAilene/M\naileron/MS\nAiley/M\nAilina/M\nAili/SM\nail/LSDG\nailment/SM\nAilsun/M\nAilyn/M\nAimee/M\nAime/M\naimer/M\nAimil/M\naimlessness/MS\naimless/YP\naim/ZSGDR\nAindrea/M\nAinslee/M\nAinsley/M\nAinslie/M\nain't\nAinu/M\nairbag/MS\nairbase/S\nairborne\nairbrush/SDMG\nAirbus/M\nairbus/SM\naircraft/MS\naircrew/M\nairdrop/MS\nairdropped\nairdropping\nAiredale/SM\nAires\nairfare/S\nairfield/MS\nairflow/SM\nairfoil/MS\nairframe/MS\nairfreight/SGD\nairhead/MS\nairily\nairiness/MS\nairing/M\nairlessness/S\nairless/P\nairlift/MDSG\nairliner/M\nairline/SRMZ\nairlock/MS\nairmail/DSG\nairman/M\nairmass\nair/MDRTZGJS\nairmen\nairpark\nairplane/SM\nairplay/S\nairport/MS\nairship/MS\nairsickness/SM\nairsick/P\nairspace/SM\nairspeed/SM\nairstrip/MS\nairtightness/M\nairtight/P\nairtime\nairwaves\nairway/SM\nairworthiness/SM\nairworthy/PTR\nairy/PRT\nAisha/M\naisle/DSGM\naitch/MS\najar\nAjax/M\nAjay/M\nAK\naka\nAkbar/M\nAkihito/M\nakimbo\nAkim/M\nakin\nAkita/M\nAkkad/M\nAkron/M\nAksel/M\nAL\nAlabama/M\nAlabaman/S\nAlabamian/MS\nalabaster/MS\nalack/S\nalacrity/SM\nAladdin/M\nAlaine/M\nAlain/M\nAlair/M\nAlameda/M\nAlamogordo/M\nAlamo/SM\nala/MS\nAla/MS\nAlanah/M\nAlana/M\nAland/M\nAlane/M\nalanine/M\nAlan/M\nAlanna/M\nAlano/M\nAlanson/M\nAlard/M\nAlaric/M\nAlar/M\nalarming/Y\nalarmist/MS\nalarm/SDG\nAlasdair/M\nAlaska/M\nAlaskan/S\nalas/S\nAlastair/M\nAlasteir/M\nAlaster/M\nAlayne/M\nalbacore/SM\nalba/M\nAlba/M\nAlbania/M\nAlbanian/SM\nAlbany/M\nalbatross/SM\nalbedo/M\nAlbee/M\nalbeit\nAlberich/M\nAlberik/M\nAlberio/M\nAlberta/M\nAlbertan/S\nAlbertina/M\nAlbertine/M\nAlbert/M\nAlberto/M\nAlbie/M\nAlbigensian\nAlbina/M\nalbinism/SM\nalbino/MS\nAlbion/M\nAlbireo/M\nalb/MS\nAlbrecht/M\nalbumen/M\nalbumin/MS\nalbuminous\nalbum/MNXS\nAlbuquerque/M\nAlcatraz/M\nAlcestis/M\nalchemical\nalchemist/SM\nalchemy/MS\nAlcibiades/M\nAlcmena/M\nAlcoa/M\nalcoholically\nalcoholic/MS\nalcoholism/SM\nalcohol/MS\nAlcott/M\nalcove/MSD\nAlcuin/M\nAlcyone/M\nAldan/M\nAldebaran/M\naldehyde/M\nAlden/M\nAlderamin/M\nalderman/M\naldermen\nalder/SM\nalderwoman\nalderwomen\nAldin/M\nAldis/M\nAldo/M\nAldon/M\nAldous/M\nAldrich/M\nAldric/M\nAldridge/M\nAldrin/M\nAldus/M\nAldwin/M\naleatory\nAlecia/M\nAleck/M\nAlec/M\nAleda/M\nalee\nAleece/M\nAleen/M\nalehouse/MS\nAleichem/M\nAlejandra/M\nAlejandrina/M\nAlejandro/M\nAlejoa/M\nAleksandr/M\nAlembert/M\nalembic/SM\nale/MVS\nAlena/M\nAlene/M\naleph/M\nAleppo/M\nAler/M\nalerted/Y\nalertness/MS\nalert/STZGPRDY\nAlessandra/M\nAlessandro/M\nAleta/M\nAlethea/M\nAleutian/S\nAleut/SM\nalewife/M\nalewives\nAlexa/M\nAlexander/SM\nAlexandra/M\nAlexandre/M\nAlexandria/M\nAlexandrian/S\nAlexandrina/M\nAlexandr/M\nAlexandro/MS\nAlexei/M\nAlexia/M\nAlexina/M\nAlexine/M\nAlexio/M\nAlexi/SM\nAlex/M\nalfalfa/MS\nAlfa/M\nAlfie/M\nAlfi/M\nAlf/M\nAlfonse/M\nAlfons/M\nAlfonso/M\nAlfonzo/M\nAlford/M\nAlfreda/M\nAlfred/M\nAlfredo/M\nalfresco\nAlfy/M\nalgae\nalgaecide\nalgal\nalga/M\nalgebraic\nalgebraical/Y\nalgebraist/M\nalgebra/MS\nAlgenib/M\nAlgeria/M\nAlgerian/MS\nAlger/M\nAlgernon/M\nAlgieba/M\nAlgiers/M\nalginate/SM\nALGOL\nAlgol/M\nAlgonquian/SM\nAlgonquin/SM\nalgorithmic\nalgorithmically\nalgorithm/MS\nAlhambra/M\nAlhena/M\nAlia/M\nalias/GSD\nalibi/MDSG\nAlica/M\nAlicea/M\nAlice/M\nAlicia/M\nAlick/M\nAlic/M\nAlida/M\nAlidia/M\nAlie/M\nalienable/IU\nalienate/SDNGX\nalienation/M\nalienist/MS\nalien/RDGMBS\nAlighieri/M\nalight/DSG\naligned/U\naligner/SM\nalign/LASDG\nalignment/SAM\nAlika/M\nAlikee/M\nalikeness/M\nalike/U\nalimentary\naliment/SDMG\nalimony/MS\nAli/MS\nAlina/M\nAline/M\nalinement's\nAlioth/M\naliquot/S\nAlisa/M\nAlisander/M\nAlisha/M\nAlison/M\nAlissa/M\nAlistair/M\nAlister/M\nAlisun/M\naliveness/MS\nalive/P\nAlix/M\naliyah/M\naliyahs\nAliza/M\nAlkaid/M\nalkalies\nalkali/M\nalkaline\nalkalinity/MS\nalkalize/SDG\nalkaloid/MS\nalkyd/S\nalkyl/M\nAllahabad/M\nAllah/M\nAlla/M\nAllan/M\nAllard/M\nallay/GDS\nAllayne/M\nAlleen/M\nallegation/SM\nalleged/Y\nallege/SDG\nAllegheny/MS\nallegiance/SM\nallegiant\nallegoric\nallegoricalness/M\nallegorical/YP\nallegorist/MS\nallegory/SM\nAllegra/M\nallegretto/MS\nallegri\nallegro/MS\nallele/SM\nalleluia/S\nallemande/M\nAllendale/M\nAllende/M\nAllene/M\nAllen/M\nAllentown/M\nallergenic\nallergen/MS\nallergic\nallergically\nallergist/MS\nallergy/MS\nalleviate/SDVGNX\nalleviation/M\nalleviator/MS\nAlley/M\nalley/MS\nAlleyn/M\nalleyway/MS\nAllhallows\nalliance/MS\nAllianora/M\nAllie/M\nallier\nallies/M\nalligator/DMGS\nAlli/MS\nAllina/M\nAllin/M\nAllison/M\nAllissa/M\nAllister/M\nAllistir/M\nalliterate/XVNGSD\nalliteration/M\nalliterative/Y\nAllix/M\nallocable/U\nallocatable\nallocate/ACSDNGX\nallocated/U\nallocation/AMC\nallocative\nallocator/AMS\nallophone/MS\nallophonic\nallotment/MS\nallotments/A\nallotrope/M\nallotropic\nallots/A\nallot/SDL\nallotted/A\nallotter/M\nallotting/A\nallover/S\nallowableness/M\nallowable/P\nallowably\nallowance/GSDM\nallowed/Y\nallowing/E\nallow/SBGD\nallows/E\nalloyed/U\nalloy/SGMD\nall/S\nallspice/MS\nAllstate/M\nAllsun/M\nallude/GSD\nallure/GLSD\nallurement/SM\nalluring/Y\nallusion/MS\nallusiveness/MS\nallusive/PY\nalluvial/S\nalluvions\nalluvium/MS\nAllx/M\nally/ASDG\nAllyce/M\nAlly/MS\nAllyn/M\nAllys\nAllyson/M\nalma\nAlmach/M\nAlmaden/M\nalmagest\nAlma/M\nalmanac/MS\nAlmaty/M\nAlmeda/M\nAlmeria/M\nAlmeta/M\nalmightiness/M\nAlmighty/M\nalmighty/P\nAlmira/M\nAlmire/M\nalmond/SM\nalmoner/MS\nalmost\nAl/MRY\nalms/A\nalmshouse/SM\nalmsman/M\nalnico\nAlnilam/M\nAlnitak/M\naloe/MS\naloft\naloha/SM\nAloin/M\nAloise/M\nAloisia/M\naloneness/M\nalone/P\nalong\nalongshore\nalongside\nAlon/M\nAlonso/M\nAlonzo/M\naloofness/MS\naloof/YP\naloud\nAloysia/M\nAloysius/M\nalpaca/SM\nAlpert/M\nalphabetical/Y\nalphabetic/S\nalphabetization/SM\nalphabetizer/M\nalphabetize/SRDGZ\nalphabet/SGDM\nalpha/MS\nalphanumerical/Y\nalphanumeric/S\nAlphard/M\nAlphecca/M\nAlpheratz/M\nAlphonse/M\nAlphonso/M\nAlpine\nalpine/S\nalp/MS\nAlps\nalready\nAlric/M\nalright\nAlsace/M\nAlsatian/MS\nalso\nAlsop/M\nAlston/M\nAltaic/M\nAltai/M\nAltair/M\nAlta/M\naltar/MS\naltarpiece/SM\nalterable/UI\nalteration/MS\naltercate/NX\naltercation/M\naltered/U\nalternate/SDVGNYX\nalternation/M\nalternativeness/M\nalternative/YMSP\nalternator/MS\nalter/RDZBG\nAlthea/M\nalthough\naltimeter/SM\nAltiplano/M\naltitude/SM\naltogether/S\nAlton/M\nalto/SM\nAltos/M\naltruism/SM\naltruistic\naltruistically\naltruist/SM\nalt/RZS\nALU\nAludra/M\nAluin/M\nAluino/M\nalumina/SM\naluminum/MS\nalumnae\nalumna/M\nalumni\nalumnus/MS\nalum/SM\nalundum\nAlva/M\nAlvan/M\nAlvarado/M\nAlvarez/M\nAlvaro/M\nalveolar/Y\nalveoli\nalveolus/M\nAlvera/M\nAlverta/M\nAlvie/M\nAlvina/M\nAlvinia/M\nAlvin/M\nAlvira/M\nAlvis/M\nAlvy/M\nalway/S\nAlwin/M\nAlwyn/M\nAlyce/M\nAlyda/M\nAlyosha/M\nAlysa/M\nAlyse/M\nAlysia/M\nAlys/M\nAlyson/M\nAlyss\nAlyssa/M\nAlzheimer/M\nAM\nAMA\nAmabelle/M\nAmabel/M\nAmadeus/M\nAmado/M\namain\nAmalea/M\nAmalee/M\nAmaleta/M\namalgamate/VNGXSD\namalgamation/M\namalgam/MS\nAmalia/M\nAmalie/M\nAmalita/M\nAmalle/M\nAmanda/M\nAmandie/M\nAmandi/M\nAmandy/M\namanuenses\namanuensis/M\nAmara/M\namaranth/M\namaranths\namaretto/S\nAmargo/M\nAmarillo/M\namaryllis/MS\nam/AS\namasser/M\namass/GRSD\nAmata/M\namateurishness/MS\namateurish/YP\namateurism/MS\namateur/SM\nAmati/M\namatory\namazed/Y\namaze/LDSRGZ\namazement/MS\namazing/Y\namazonian\nAmazonian\namazon/MS\nAmazon/SM\nambassadorial\nambassador/MS\nambassadorship/MS\nambassadress/SM\nambergris/SM\nAmberly/M\namber/MS\nAmber/YM\nambiance/MS\nambidexterity/MS\nambidextrous/Y\nambience's\nambient/S\nambiguity/MS\nambiguously/U\nambiguousness/M\nambiguous/YP\nambition/GMDS\nambitiousness/MS\nambitious/PY\nambit/M\nambivalence/SM\nambivalent/Y\namble/GZDSR\nAmble/M\nambler/M\nambrose\nAmbrose/M\nambrosial/Y\nambrosia/SM\nAmbrosi/M\nAmbrosio/M\nAmbrosius/M\nAmbros/M\nambulance/MS\nambulant/S\nambulate/DSNGX\nambulation/M\nambulatory/S\nAmbur/M\nambuscade/MGSRD\nambuscader/M\nambusher/M\nambush/MZRSDG\nAmby/M\nAmdahl/M\nameba's\nAmelia/M\nAmelie/M\nAmelina/M\nAmeline/M\nameliorate/XVGNSD\namelioration/M\nAmelita/M\namenability/SM\namenably\namended/U\namender/M\namendment/SM\namen/DRGTSB\namend/SBRDGL\namends/M\nAmenhotep/M\namenity/MS\namenorrhea/M\nAmerada/M\nAmerasian/S\namercement/MS\namerce/SDLG\nAmericana/M\nAmericanism/SM\nAmericanization/SM\namericanized\nAmericanize/SDG\nAmerican/MS\nAmerica/SM\namericium/MS\nAmerigo/M\nAmerindian/MS\nAmerind/MS\nAmer/M\nAmery/M\nAmeslan/M\nAme/SM\namethystine\namethyst/MS\nAmharic/M\nAmherst/M\namiability/MS\namiableness/M\namiable/RPT\namiably\namicability/SM\namicableness/M\namicable/P\namicably\namide/SM\namid/S\namidships\namidst\nAmie/M\nAmiga/M\namigo/MS\nAmii/M\nAmil/M\nAmi/M\namines\naminobenzoic\namino/M\namir's\nAmish\namiss\nAmitie/M\nAmity/M\namity/SM\nAmmamaria/M\nAmman/M\nAmmerman/M\nammeter/MS\nammo/MS\nammoniac\nammonia/MS\nammonium/M\nAm/MR\nammunition/MS\namnesiac/MS\namnesia/SM\namnesic/S\namnesty/GMSD\namniocenteses\namniocentesis/M\namnion/SM\namniotic\nAmoco/M\namoeba/SM\namoebic\namoeboid\namok/MS\namong\namongst\nAmontillado/M\namontillado/MS\namorality/MS\namoral/Y\namorousness/SM\namorous/PY\namorphousness/MS\namorphous/PY\namortization/SUM\namortized/U\namortize/SDG\nAmory/M\nAmos\namount/SMRDZG\namour/MS\nAmparo/M\namperage/SM\nAmpere/M\nampere/MS\nampersand/MS\nAmpex/M\namphetamine/MS\namphibian/SM\namphibiousness/M\namphibious/PY\namphibology/M\namphitheater/SM\namphorae\namphora/M\nampleness/M\nample/PTR\namplification/M\namplifier/M\namplify/DRSXGNZ\namplitude/MS\nampoule's\namp/SGMDY\nampule/SM\namputate/DSNGX\namputation/M\namputee/SM\nAmritsar/M\nams\nAmsterdam/M\namt\nAmtrak/M\namuck's\namulet/SM\nAmundsen/M\nAmur/M\namused/Y\namuse/LDSRGVZ\namusement/SM\namuser/M\namusingness/M\namusing/YP\nAmway/M\nAmye/M\namylase/MS\namyl/M\nAmy/M\nAnabal/M\nAnabaptist/SM\nAnabella/M\nAnabelle/M\nAnabel/M\nanabolic\nanabolism/MS\nanachronism/SM\nanachronistic\nanachronistically\nAnacin/M\nanaconda/MS\nAnacreon/M\nanaerobe/SM\nanaerobic\nanaerobically\nanaglyph/M\nanagrammatic\nanagrammatically\nanagrammed\nanagramming\nanagram/MS\nAnaheim/M\nAnalects/M\nanalgesia/MS\nanalgesic/S\nAnaliese/M\nAnalise/M\nAnallese/M\nAnallise/M\nanalogical/Y\nanalogize/SDG\nanalogousness/MS\nanalogous/YP\nanalog/SM\nanalogue/SM\nanalogy/MS\nanal/Y\nanalysand/MS\nanalyses\nanalysis/AM\nanalyst/SM\nanalytical/Y\nanalyticity/S\nanalytic/S\nanalytics/M\nanalyzable/U\nanalyze/DRSZGA\nanalyzed/U\nanalyzer/M\nAna/M\nanamorphic\nAnanias/M\nanapaest's\nanapestic/S\nanapest/SM\nanaphora/M\nanaphoric\nanaphorically\nanaplasmosis/M\nanarchic\nanarchical/Y\nanarchism/MS\nanarchistic\nanarchist/MS\nanarchy/MS\nAnastasia/M\nAnastasie/M\nAnastassia/M\nanastigmatic\nanastomoses\nanastomosis/M\nanastomotic\nanathema/MS\nanathematize/GSD\nAnatola/M\nAnatole/M\nAnatolia/M\nAnatolian\nAnatollo/M\nAnatol/M\nanatomic\nanatomical/YS\nanatomist/MS\nanatomize/GSD\nanatomy/MS\nAnaxagoras/M\nAncell/M\nancestor/SMDG\nancestral/Y\nancestress/SM\nancestry/SM\nAnchorage/M\nanchorage/SM\nanchored/U\nanchorite/MS\nanchoritism/M\nanchorman/M\nanchormen\nanchorpeople\nanchorperson/S\nanchor/SGDM\nanchorwoman\nanchorwomen\nanchovy/MS\nancientness/MS\nancient/SRYTP\nancillary/S\nan/CS\nAndalusia/M\nAndalusian\nAndaman\nandante/S\nand/DZGS\nAndean/M\nAndeee/M\nAndee/M\nAnderea/M\nAndersen/M\nAnders/N\nAnderson/M\nAndes\nAndie/M\nAndi/M\nandiron/MS\nAndonis/M\nAndorra/M\nAndover/M\nAndra/SM\nAndrea/MS\nAndreana/M\nAndree/M\nAndrei/M\nAndrej/M\nAndre/SM\nAndrew/MS\nAndrey/M\nAndria/M\nAndriana/M\nAndriette/M\nAndris\nandrogenic\nandrogen/SM\nandrogynous\nandrogyny/SM\nandroid/MS\nAndromache/M\nAndromeda/M\nAndropov/M\nAndros/M\nAndrus/M\nAndy/M\nanecdotal/Y\nanecdote/SM\nanechoic\nanemia/SM\nanemically\nanemic/S\nanemometer/MS\nanemometry/M\nanemone/SM\nanent\naneroid\nAnestassia/M\nanesthesia/MS\nanesthesiologist/MS\nanesthesiology/SM\nanesthetically\nanesthetic/SM\nanesthetist/MS\nanesthetization/SM\nanesthetizer/M\nanesthetize/ZSRDG\nAnet/M\nAnetta/M\nAnette/M\nAnett/M\naneurysm/MS\nanew\nAngara/M\nAngela/M\nAngeleno/SM\nAngele/SM\nangelfish/SM\nAngelia/M\nangelic\nangelical/Y\nAngelica/M\nangelica/MS\nAngelico/M\nAngelika/M\nAngeli/M\nAngelina/M\nAngeline/M\nAngelique/M\nAngelita/M\nAngelle/M\nAngel/M\nangel/MDSG\nAngelo/M\nAngelou/M\nAnge/M\nanger/GDMS\nAngevin/M\nAngie/M\nAngil/M\nangina/MS\nangiography\nangioplasty/S\nangiosperm/MS\nAngkor/M\nangle/GMZDSRJ\nangler/M\nAngles\nangleworm/MS\nAnglia/M\nAnglicanism/MS\nAnglican/MS\nAnglicism/SM\nAnglicization/MS\nanglicize/SDG\nAnglicize/SDG\nangling/M\nAnglo/MS\nAnglophile/SM\nAnglophilia/M\nAnglophobe/MS\nAnglophobia/M\nAngola/M\nAngolan/S\nangora/MS\nAngora/MS\nangrily\nangriness/M\nangry/RTP\nangst/MS\n<>ngstr<74>m/M\nangstrom/MS\nAnguilla/M\nanguish/DSMG\nangularity/MS\nangular/Y\nAngus/M\nAngy/M\nAnheuser/M\nanhydride/M\nanhydrite/M\nanhydrous/Y\nAniakchak/M\nAnia/M\nAnibal/M\nAnica/M\naniline/SM\nanimadversion/SM\nanimadvert/DSG\nanimalcule/MS\nanimal/MYPS\nanimated/A\nanimatedly\nanimately/I\nanimateness/MI\nanimates/A\nanimate/YNGXDSP\nanimating/A\nanimation/AMS\nanimator/SM\nanimism/SM\nanimistic\nanimist/S\nanimized\nanimosity/MS\nanimus/SM\nanionic/S\nanion/MS\naniseed/MS\naniseikonic\nanise/MS\nanisette/SM\nanisotropic\nanisotropy/MS\nAnissa/M\nAnita/M\nAnitra/M\nAnjanette/M\nAnjela/M\nAnkara/M\nankh/M\nankhs\nanklebone/SM\nankle/GMDS\nanklet/MS\nAnnabal/M\nAnnabela/M\nAnnabella/M\nAnnabelle/M\nAnnabell/M\nAnnabel/M\nAnnadiana/M\nAnnadiane/M\nAnnalee/M\nAnnaliese/M\nAnnalise/M\nannalist/MS\nannal/MNS\nAnna/M\nAnnamaria/M\nAnnamarie/M\nAnnapolis/M\nAnnapurna/M\nanneal/DRSZG\nannealer/M\nAnnecorinne/M\nannelid/MS\nAnneliese/M\nAnnelise/M\nAnne/M\nAnnemarie/M\nAnnetta/M\nAnnette/M\nannexation/SM\nannexe/M\nannex/GSD\nAnnice/M\nAnnie/M\nannihilate/XSDVGN\nannihilation/M\nannihilator/MS\nAnni/MS\nAnnissa/M\nanniversary/MS\nAnn/M\nAnnmaria/M\nAnnmarie/M\nAnnnora/M\nAnnora/M\nannotated/U\nannotate/VNGXSD\nannotation/M\nannotator/MS\nannounced/U\nannouncement/SM\nannouncer/M\nannounce/ZGLRSD\nannoyance/MS\nannoyer/M\nannoying/Y\nannoy/ZGSRD\nannualized\nannual/YS\nannuitant/MS\nannuity/MS\nannular/YS\nannuli\nannulled\nannulling\nannulment/MS\nannul/SL\nannulus/M\nannum\nannunciate/XNGSD\nannunciation/M\nAnnunciation/S\nannunciator/SM\nAnny/M\nanode/SM\nanodic\nanodize/GDS\nanodyne/SM\nanoint/DRLGS\nanointer/M\nanointment/SM\nanomalousness/M\nanomalous/YP\nanomaly/MS\nanomic\nanomie/M\nanon/S\nanonymity/MS\nanonymousness/M\nanonymous/YP\nanopheles/M\nanorak/SM\nanorectic/S\nanorexia/SM\nanorexic/S\nanother/M\nAnouilh/M\nAnsell/M\nAnsel/M\nAnselma/M\nAnselm/M\nAnselmo/M\nAnshan/M\nANSI/M\nAnsley/M\nans/M\nAnson/M\nAnstice/M\nanswerable/U\nanswered/U\nanswerer/M\nanswer/MZGBSDR\nantacid/MS\nAntaeus/M\nantagonism/MS\nantagonistic\nantagonistically\nantagonist/MS\nantagonized/U\nantagonize/GZRSD\nantagonizing/U\nAntananarivo/M\nantarctic\nAntarctica/M\nAntarctic/M\nAntares\nanteater/MS\nantebellum\nantecedence/MS\nantecedent/SMY\nantechamber/SM\nantedate/GDS\nantediluvian/S\nanteing\nantelope/MS\nante/MS\nantenatal\nantennae\nantenna/MS\nanterior/SY\nanteroom/SM\nant/GSMD\nAnthea/M\nAnthe/M\nanthem/MGDS\nanther/MS\nAnthia/M\nAnthiathia/M\nanthill/S\nanthologist/MS\nanthologize/GDS\nanthology/SM\nAnthony/M\nanthraces\nanthracite/MS\nanthrax/M\nanthropic\nanthropocentric\nanthropogenic\nanthropoid/S\nanthropological/Y\nanthropologist/MS\nanthropology/SM\nanthropometric/S\nanthropometry/M\nanthropomorphic\nanthropomorphically\nanthropomorphism/SM\nanthropomorphizing\nanthropomorphous\nantiabortion\nantiabortionist/S\nantiaircraft\nantibacterial/S\nantibiotic/SM\nantibody/MS\nanticancer\nAntichrist/MS\nanticipated/U\nanticipate/XVGNSD\nanticipation/M\nanticipative/Y\nanticipatory\nanticked\nanticking\nanticlerical/S\nanticlimactic\nanticlimactically\nanticlimax/SM\nanticline/SM\nanticlockwise\nantic/MS\nanticoagulant/S\nanticoagulation/M\nanticommunism/SM\nanticommunist/SM\nanticompetitive\nanticyclone/MS\nanticyclonic\nantidemocratic\nantidepressant/SM\nantidisestablishmentarianism/M\nantidote/DSMG\nAntietam/M\nantifascist/SM\nantiformant\nantifreeze/SM\nantifundamentalist/M\nantigenic\nantigenicity/SM\nantigen/MS\nantigone\nAntigone/M\nAntigua/M\nantiheroes\nantihero/M\nantihistamine/MS\nantihistorical\nantiknock/MS\nantilabor\nAntillean\nAntilles\nantilogarithm/SM\nantilogs\nantimacassar/SM\nantimalarial/S\nantimatter/SM\nantimicrobial/S\nantimissile/S\nantimony/SM\nanting/M\nAntin/M\nantinomian\nantinomy/M\nantinuclear\nAntioch/M\nantioxidant/MS\nantiparticle/SM\nAntipas/M\nantipasti\nantipasto/MS\nantipathetic\nantipathy/SM\nantipersonnel\nantiperspirant/MS\nantiphonal/SY\nantiphon/SM\nantipodal/S\nantipodean/S\nantipode/MS\nAntipodes\nantipollution/S\nantipoverty\nantiquarianism/MS\nantiquarian/MS\nantiquary/SM\nantiquate/NGSD\nantiquation/M\nantique/MGDS\nantiquity/SM\nantiredeposition\nantiresonance/M\nantiresonator\nanti/S\nantisemitic\nantisemitism/M\nantisepses\nantisepsis/M\nantiseptically\nantiseptic/S\nantiserum/SM\nantislavery/S\nantisocial/Y\nantispasmodic/S\nantisubmarine\nantisymmetric\nantisymmetry\nantitank\nantitheses\nantithesis/M\nantithetic\nantithetical/Y\nantithyroid\nantitoxin/MS\nantitrust/MR\nantivenin/MS\nantiviral/S\nantivivisectionist/S\nantiwar\nantler/SDM\nAntofagasta/M\nAntoine/M\nAntoinette/M\nAntonella/M\nAntone/M\nAntonetta/M\nAntonia/M\nAntonie/M\nAntonietta/M\nAntoni/M\nAntonina/M\nAntonin/M\nAntonino/M\nAntoninus/M\nAntonio/M\nAntonius/M\nAnton/MS\nAntonovics/M\nAntony/M\nantonymous\nantonym/SM\nantral\nantsy/RT\nAntwan/M\nAntwerp/M\nAnubis/M\nanus/SM\nanvil/MDSG\nanxiety/MS\nanxiousness/SM\nanxious/PY\nany\nAnya/M\nanybody/S\nanyhow\nAny/M\nanymore\nanyone/MS\nanyplace\nanything/S\nanytime\nanyway/S\nanywhere/S\nanywise\nAOL/M\naorta/MS\naortic\nAP\napace\napache/MS\nApache/MS\nApalachicola/M\napartheid/SM\napart/LP\napartment/MS\napartness/M\napathetic\napathetically\napathy/SM\napatite/MS\nAPB\naped/A\napelike\nape/MDRSG\nApennines\naper/A\naperiodic\naperiodically\naperiodicity/M\naperitif/S\naperture/MDS\napex/MS\naphasia/SM\naphasic/S\naphelia\naphelion/SM\naphid/MS\naphonic\naphorism/MS\naphoristic\naphoristically\naphrodisiac/SM\nAphrodite/M\nApia/M\napiarist/SM\napiary/SM\napical/YS\napices's\napiece\napishness/M\napish/YP\naplenty\naplomb/SM\nAPO\nApocalypse/M\napocalypse/MS\napocalyptic\napocryphalness/M\napocryphal/YP\napocrypha/M\nApocrypha/M\napogee/MS\napolar\napolitical/Y\nApollinaire/M\nApollonian\nApollo/SM\napologetically/U\napologetic/S\napologetics/M\napologia/SM\napologist/MS\napologize/GZSRD\napologizer/M\napologizes/A\napologizing/U\napology/MS\napoplectic\napoplexy/SM\napostasy/SM\napostate/SM\napostatize/DSG\napostleship/SM\napostle/SM\napostolic\napostrophe/SM\napostrophized\napothecary/MS\napothegm/MS\napotheoses\napotheosis/M\napotheosized\napotheosizes\napotheosizing\nAppalachia/M\nAppalachian/MS\nappalling/Y\nappall/SDG\nAppaloosa/MS\nappaloosa/S\nappanage/M\napparatus/SM\napparel/SGMD\napparency\napparently/I\napparentness/M\napparent/U\napparition/SM\nappealer/M\nappealing/UY\nappeal/SGMDRZ\nappear/AEGDS\nappearance/AMES\nappearer/S\nappease/DSRGZL\nappeased/U\nappeasement/MS\nappeaser/M\nappellant/MS\nappellate/VNX\nappellation/M\nappellative/MY\nappendage/MS\nappendectomy/SM\nappendices\nappendicitis/SM\nappendix/SM\nappend/SGZDR\nappertain/DSG\nappetite/MVS\nappetizer/SM\nappetizing/YU\nAppia/M\nAppian/M\napplauder/M\napplaud/ZGSDR\napplause/MS\napplecart/M\napplejack/MS\nApple/M\napple/MS\napplesauce/SM\nAppleseed/M\nAppleton/M\napplet/S\nappliance/SM\napplicabilities\napplicability/IM\napplicable/I\napplicably\napplicant/MS\napplicate/V\napplication/MA\napplicative/Y\napplicator/MS\napplier/SM\nappliqu<71>d\nappliqu<71>/MSG\napply/AGSDXN\nappointee/SM\nappoint/ELSADG\nappointer/MS\nappointive\nappointment/ASEM\nAppolonia/M\nAppomattox/M\napportion/GADLS\napportionment/SAM\nappose/SDG\nappositeness/MS\napposite/XYNVP\napposition/M\nappositive/SY\nappraisal/SAM\nappraised/A\nappraisees\nappraiser/M\nappraises/A\nappraise/ZGDRS\nappraising/Y\nappreciable/I\nappreciably/I\nappreciated/U\nappreciate/XDSNGV\nappreciation/M\nappreciativeness/MI\nappreciative/PIY\nappreciator/MS\nappreciatory\napprehend/DRSG\napprehender/M\napprehensible\napprehension/SM\napprehensiveness/SM\napprehensive/YP\napprentice/DSGM\napprenticeship/SM\napprise/DSG\napprizer/SM\napprizingly\napprizings\napproachability/UM\napproachable/UI\napproach/BRSDZG\napproacher/M\napprobate/NX\napprobation/EMS\nappropriable\nappropriated/U\nappropriately/I\nappropriateness/SMI\nappropriate/XDSGNVYTP\nappropriation/M\nappropriator/SM\napproval/ESM\napprove/DSREG\napproved/U\napprover's/E\napprover/SM\napproving/YE\napprox\napproximate/XGNVYDS\napproximation/M\napproximative/Y\nappurtenance/MS\nappurtenant/S\nAPR\napricot/MS\nAprilette/M\nApril/MS\nApr/M\napron/SDMG\napropos\napse/MS\napsis/M\napter\naptest\naptitude/SM\naptness/SMI\naptness's/U\napt/UPYI\nApuleius/M\naquaculture/MS\naqualung/SM\naquamarine/SM\naquanaut/SM\naquaplane/GSDM\naquarium/MS\nAquarius/MS\naqua/SM\naquatically\naquatic/S\naquavit/SM\naqueduct/MS\naqueous/Y\naquiculture's\naquifer/SM\nAquila/M\naquiline\nAquinas/M\nAquino/M\nAquitaine/M\nAR\nArabela/M\nArabele/M\nArabella/M\nArabelle/M\nArabel/M\narabesque/SM\nArabia/M\nArabian/MS\nArabic/M\narability/MS\nArabist/MS\narable/S\nArab/MS\nAraby/M\nAraceli/M\narachnid/MS\narachnoid/M\narachnophobia\nArafat/M\nAraguaya/M\nAraldo/M\nAral/M\nAra/M\nAramaic/M\nAramco/M\nArapahoes\nArapahoe's\nArapaho/MS\nArarat/M\nAraucanian/M\nArawakan/M\nArawak/M\narbiter/MS\narbitrage/GMZRSD\narbitrager/M\narbitrageur/S\narbitrament/MS\narbitrarily\narbitrariness/MS\narbitrary/P\narbitrate/SDXVNG\narbitration/M\narbitrator/SM\narbor/DMS\narboreal/Y\narbores\narboretum/MS\narborvitae/MS\narbutus/SM\nARC\narcade/SDMG\nArcadia/M\nArcadian\narcana/M\narcane/P\narc/DSGM\narchaeological/Y\narchaeologist/SM\narchaically\narchaic/P\nArchaimbaud/M\narchaism/SM\narchaist/MS\narchaize/GDRSZ\narchaizer/M\nArchambault/M\narchangel/SM\narchbishopric/SM\narchbishop/SM\narchdeacon/MS\narchdiocesan\narchdiocese/SM\narchduchess/MS\narchduke/MS\nArchean\narchenemy/SM\narcheologist's\narcheology/MS\narcher/M\nArcher/M\narchery/MS\narchetypal\narchetype/SM\narchfiend/SM\narchfool\nArchibald/M\nArchibaldo/M\nArchibold/M\nArchie/M\narchiepiscopal\nArchimedes/M\narching/M\narchipelago/SM\narchitect/MS\narchitectonic/S\narchitectonics/M\narchitectural/Y\narchitecture/SM\narchitrave/MS\narchival\narchive/DRSGMZ\narchived/U\narchivist/MS\nArch/MR\narchness/MS\narch/PGVZTMYDSR\narchway/SM\nArchy/M\narclike\nARCO/M\narcsine\narctangent\nArctic/M\narctic/S\nArcturus/M\nArdabil\nArda/MH\nArdath/M\nArdeen/M\nArdelia/M\nArdelis/M\nArdella/M\nArdelle/M\nardency/M\nArdene/M\nArdenia/M\nArden/M\nardent/Y\nArdine/M\nArdisj/M\nArdis/M\nArdith/M\nardor/SM\nArdra/M\narduousness/SM\narduous/YP\nArdyce/M\nArdys\nArdyth/M\nareal\narea/SM\nareawide\nare/BS\nArel/M\narenaceous\narena/SM\naren't\nArequipa/M\nAres\nAretha/M\nArgentina/M\nArgentinean/S\nArgentine/SM\nArgentinian/S\nargent/MS\narginine/MS\nArgonaut/MS\nargonaut/S\nargon/MS\nArgonne/M\nArgo/SM\nargosy/SM\nargot/SM\narguable/IU\narguably/IU\nargue/DSRGZ\narguer/M\nargumentation/SM\nargumentativeness/MS\nargumentative/YP\nargument/SM\nArgus/M\nargyle/S\nAriadne/M\nAriana/M\nArianism/M\nArianist/SM\naria/SM\nAridatha/M\naridity/SM\naridness/M\narid/TYRP\nAriela/M\nAriella/M\nArielle/M\nAriel/M\nArie/SM\nAries/S\naright\nAri/M\nArin/M\nArio/M\nAriosto/M\narise/GJSR\narisen\nAristarchus/M\nAristides\naristocracy/SM\naristocratic\naristocratically\naristocrat/MS\nAristophanes/M\nAristotelean\nAristotelian/M\nAristotle/M\narithmetical/Y\narithmetician/SM\narithmetic/MS\narithmetize/SD\nArius/M\nAriz/M\nArizona/M\nArizonan/S\nArizonian/S\nArjuna/M\nArkansan/MS\nArkansas/M\nArkhangelsk/M\nArk/M\nark/MS\nArkwright/M\nArlana/M\nArlan/M\nArlee/M\nArleen/M\nArlena/M\nArlene/M\nArlen/M\nArleta/M\nArlette/M\nArley/M\nArleyne/M\nArlie/M\nArliene/M\nArlina/M\nArlinda/M\nArline/M\nArlington/M\nArlin/M\nArluene/M\nArly/M\nArlyne/M\nArlyn/M\nArmada/M\narmada/SM\narmadillo/MS\nArmageddon/SM\nArmagnac/M\narmament/EAS\narmament's/E\nArmand/M\nArmando/M\nArman/M\narm/ASEDG\nArmata/M\narmature/MGSD\narmband/SM\narmchair/MS\nArmco/M\narmed/U\nArmenia/M\nArmenian/MS\narmer/MES\narmful/SM\narmhole/MS\narming/M\nArminius/M\nArmin/M\narmistice/MS\narmless\narmlet/SM\narmload/M\nArmonk/M\narmored/U\narmorer/M\narmorial/S\narmory/DSM\narmor/ZRDMGS\nArmour/M\narmpit/MS\narmrest/MS\narm's\nArmstrong/M\nAr/MY\narmy/SM\nArnaldo/M\nArneb/M\nArne/M\nArney/M\nArnhem/M\nArnie/M\nArni/M\nArnold/M\nArnoldo/M\nArno/M\nArnuad/M\nArnulfo/M\nArny/M\naroma/SM\naromatherapist/S\naromatherapy/S\naromatically\naromaticity/M\naromaticness/M\naromatic/SP\nAron/M\narose\naround\narousal/MS\naroused/U\narouse/GSD\nARPA/M\nArpanet/M\nARPANET/M\narpeggio/SM\narrack/M\nArragon/M\narraignment/MS\narraign/SDGL\narrangeable/A\narranged/EA\narrangement/AMSE\narranger/M\narranges/EA\narrange/ZDSRLG\narranging/EA\narrant/Y\narras/SM\narrayer\narray/ESGMD\narrear/SM\narrest/ADSG\narrestee/MS\narrester/MS\narresting/Y\narrestor/MS\nArrhenius/M\narrhythmia/SM\narrhythmic\narrhythmical\nArri/M\narrival/MS\narriver/M\narrive/SRDG\narrogance/MS\narrogant/Y\narrogate/XNGDS\narrogation/M\nArron/M\narrowhead/SM\narrowroot/MS\narrow/SDMG\narroyo/MS\narr/TV\narsenal/MS\narsenate/M\narsenic/MS\narsenide/M\narsine/MS\narsonist/MS\narson/SM\nArtair/M\nArtaxerxes/M\nartefact's\nArte/M\nArtemas\nArtemis/M\nArtemus/M\narterial/SY\narteriolar\narteriole/SM\narterioscleroses\narteriosclerosis/M\nartery/SM\nartesian\nartfulness/SM\nartful/YP\nArther/M\narthritic/S\narthritides\narthritis/M\narthrogram/MS\narthropod/SM\narthroscope/S\narthroscopic\nArthurian\nArthur/M\nartichoke/SM\narticle/GMDS\narticulable/I\narticular\narticulated/EU\narticulately/I\narticulateness/IMS\narticulates/I\narticulate/VGNYXPSD\narticulation/M\narticulator/SM\narticulatory\nArtie/M\nartifact/MS\nartificer/M\nartifice/ZRSM\nartificiality/MS\nartificialness/M\nartificial/PY\nartillerist\nartilleryman/M\nartillerymen\nartillery/SM\nartiness/MS\nartisan/SM\nartiste/SM\nartistically/I\nartistic/I\nartist/MS\nartistry/SM\nartlessness/MS\nartless/YP\nArt/M\nart/SM\nartsy/RT\nArtur/M\nArturo/M\nArtus/M\nartwork/MS\nArty/M\narty/TPR\nAruba/M\narum/MS\nArvie/M\nArvin/M\nArv/M\nArvy/M\nAryan/MS\nAryn/M\nas\nAs\nA's\nAsa/M\nAsama/M\nasap\nASAP\nasbestos/MS\nAscella/M\nascend/ADGS\nascendancy/MS\nascendant/SY\nascender/SM\nAscension/M\nascension/SM\nascent/SM\nascertain/DSBLG\nascertainment/MS\nascetically\nasceticism/MS\nascetic/SM\nASCII\nascot/MS\nascribe/GSDB\nascription/MS\nascriptive\nAse/M\naseptically\naseptic/S\nasexuality/MS\nasexual/Y\nAsgard/M\nashame/D\nashamed/UY\nAshanti/M\nAshbey/M\nAshby/M\nashcan/SM\nAshely/M\nAsher/M\nAsheville/M\nAshia/M\nAshien/M\nAshil/M\nAshkenazim\nAshkhabad/M\nAshla/M\nAshland/M\nAshlan/M\nashlar/GSDM\nAshlee/M\nAshleigh/M\nAshlen/M\nAshley/M\nAshlie/M\nAshli/M\nAshlin/M\nAshly/M\nashman/M\nash/MNDRSG\nAshmolean/M\nAsh/MRY\nashore\nashram/SM\nAshton/M\nashtray/MS\nAshurbanipal/M\nashy/RT\nAsia/M\nAsian/MS\nAsiatic/SM\naside/S\nAsilomar/M\nAsimov\nasinine/Y\nasininity/MS\naskance\nask/DRZGS\nasked/U\nasker/M\naskew/P\nASL\naslant\nasleep\nAsmara/M\nasocial/S\nAsoka/M\nasparagus/MS\naspartame/S\nASPCA\naspect/SM\nAspell/M\naspen/M\nAspen/M\nasperity/SM\nasper/M\naspersion/SM\nasphalt/MDRSG\nasphodel/MS\nasphyxia/MS\nasphyxiate/GNXSD\nasphyxiation/M\naspic/MS\nAspidiske/M\naspidistra/MS\naspirant/MS\naspirate/NGDSX\naspirational\naspiration/M\naspirator/SM\naspire/GSRD\naspirer/M\naspirin/SM\nasplenium\nasp/MNRXS\nAsquith/M\nAssad/M\nassailable/U\nassailant/SM\nassail/BGDS\nAssamese/M\nAssam/M\nassassinate/DSGNX\nassassination/M\nassassin/MS\nassaulter/M\nassaultive/YP\nassault/SGVMDR\nassayer/M\nassay/SZGRD\nassemblage/MS\nassemble/ADSREG\nassembled/U\nassembler/EMS\nassemblies/A\nassembly/EAM\nassemblyman/M\nassemblymen\nAssembly/MS\nassemblywoman\nassemblywomen\nassent/SGMRD\nassert/ADGS\nasserter/MS\nassertional\nassertion/AMS\nassertiveness/SM\nassertive/PY\nassess/BLSDG\nassessed/A\nassesses/A\nassessment/SAM\nassessor/MS\nasset/SM\nasseverate/XSDNG\nasseveration/M\nasshole/MS!\nassiduity/SM\nassiduousness/SM\nassiduous/PY\nassign/ALBSGD\nassignation/MS\nassigned/U\nassignee/MS\nassigner/MS\nassignment/MAS\nassignor/MS\nassigns/CU\nassimilate/VNGXSD\nassimilationist/M\nassimilation/M\nAssisi/M\nassistance/SM\nassistantship/SM\nassistant/SM\nassisted/U\nassister/M\nassist/RDGS\nassize/MGSD\nass/MNS\nassn\nassoc\nassociable\nassociated/U\nassociate/SDEXNG\nassociateship\nassociational\nassociation/ME\nassociative/Y\nassociativity/S\nassociator/MS\nassonance/SM\nassonant/S\nassorter/M\nassort/LRDSG\nassortment/SM\nasst\nassuaged/U\nassuage/SDG\nassumability\nassumer/M\nassume/SRDBJG\nassuming/UA\nassumption/SM\nassumptive\nassurance/AMS\nassure/AGSD\nassuredness/M\nassured/PYS\nassurer/SM\nassuring/YA\nAssyria/M\nAssyrian/SM\nAssyriology/M\nAstaire/SM\nAstarte/M\nastatine/MS\naster/ESM\nasteria\nasterisked/U\nasterisk/SGMD\nastern\nasteroidal\nasteroid/SM\nasthma/MS\nasthmatic/S\nastigmatic/S\nastigmatism/SM\nastir\nastonish/GSDL\nastonishing/Y\nastonishment/SM\nAston/M\nAstoria/M\nAstor/M\nastounding/Y\nastound/SDG\nastraddle\nAstrakhan/M\nastrakhan/SM\nastral/SY\nAstra/M\nastray\nastride\nAstrid/M\nastringency/SM\nastringent/YS\nAstrix/M\nastrolabe/MS\nastrologer/MS\nastrological/Y\nastrologist/M\nastrology/SM\nastronautical\nastronautic/S\nastronautics/M\nastronaut/SM\nastronomer/MS\nastronomic\nastronomical/Y\nastronomy/SM\nastrophysical\nastrophysicist/SM\nastrophysics/M\nAstroturf/M\nAstroTurf/S\nAsturias/M\nastuteness/MS\nastute/RTYP\nAsunci<63>n/M\nasunder\nAswan/M\nasylum/MS\nasymmetric\nasymmetrical/Y\nasymmetry/MS\nasymptomatic\nasymptomatically\nasymptote/MS\nasymptotically\nasymptotic/Y\nasynchronism/M\nasynchronous/Y\nasynchrony\nat\nAtacama/M\nAtahualpa/M\nAtalanta/M\nAtari/M\nAtat<61>rk/M\natavism/MS\natavistic\natavist/MS\nataxia/MS\nataxic/S\natelier/SM\natemporal\nate/S\nAthabasca/M\nAthabascan's\nAthabaskan/MS\nAthabaska's\natheism/SM\natheistic\natheist/SM\nAthena/M\nAthene/M\nAthenian/SM\nAthens/M\natheroscleroses\natherosclerosis/M\nathirst\nathlete/MS\nathletically\nathleticism/M\nathletic/S\nathletics/M\nathwart\natilt\nAtkins/M\nAtkinson/M\nAtlanta/M\nAtlante/MS\natlantes\nAtlantic/M\nAtlantis/M\natlas/SM\nAtlas/SM\nAt/M\nAtman\nATM/M\natmosphere/DSM\natmospherically\natmospheric/S\natoll/MS\natomically\natomicity/M\natomic/S\natomics/M\natomistic\natomization/SM\natomize/GZDRS\natomizer/M\natom/SM\natonality/MS\natonal/Y\natone/LDSG\natonement/SM\natop\nATP\nAtreus/M\natria\natrial\nAtria/M\natrium/M\natrociousness/SM\natrocious/YP\natrocity/SM\natrophic\natrophy/DSGM\natropine/SM\nAtropos/M\nAts\nattach/BLGZMDRS\nattached/UA\nattacher/M\nattach<63>/S\nattachment/ASM\nattacker/M\nattack/GBZSDR\nattainabilities\nattainability/UM\nattainableness/M\nattainable/U\nattainably/U\nattain/AGSD\nattainder/MS\nattained/U\nattainer/MS\nattainment/MS\nattar/MS\nattempt/ADSG\nattempter/MS\nattendance/MS\nattendant/SM\nattended/U\nattendee/SM\nattender/M\nattend/SGZDR\nattentional\nattentionality\nattention/IMS\nattentiveness/IMS\nattentive/YIP\nattenuated/U\nattenuate/SDXGN\nattenuation/M\nattenuator/MS\nattestation/SM\nattested/U\nattester/M\nattest/GSDR\nAttic\nAttica/M\nattic/MS\nAttila/M\nattire/SDG\nattitude/MS\nattitudinal/Y\nattitudinize/SDG\nAttlee/M\nattn\nAttn\nattorney/SM\nattractant/SM\nattract/BSDGV\nattraction/MS\nattractivenesses\nattractiveness/UM\nattractive/UYP\nattractor/MS\nattributable/U\nattribute/BVNGRSDX\nattributed/U\nattributer/M\nattributional\nattribution/M\nattributive/SY\nattrition/MS\nAttucks\nattune/SDG\natty\nATV/S\natwitter\nAtwood/M\natypical/Y\nAube/M\nAuberge/M\naubergine/MS\nAuberon/M\nAuberta/M\nAubert/M\nAubine/M\nAubree/M\nAubrette/M\nAubrey/M\nAubrie/M\nAubry/M\nauburn/SM\nAuckland/M\nauctioneer/SDMG\nauction/MDSG\naudaciousness/SM\naudacious/PY\naudacity/MS\nAuden/M\naudibility/MSI\naudible/I\naudibles\naudibly/I\nAudie/M\naudience/MS\nAudi/M\naudiogram/SM\naudiological\naudiologist/MS\naudiology/SM\naudiometer/MS\naudiometric\naudiometry/M\naudiophile/SM\naudio/SM\naudiotape/S\naudiovisual/S\naudited/U\naudition/MDSG\nauditorium/MS\nauditor/MS\nauditory/S\naudit/SMDVG\nAudra/M\nAudre/M\nAudrey/M\nAudrie/M\nAudrye/M\nAudry/M\nAudubon/M\nAudy/M\nAuerbach/M\nAugean\nauger/SM\naught/S\nAugie/M\nAug/M\naugmentation/SM\naugmentative/S\naugment/DRZGS\naugmenter/M\naugur/GDMS\naugury/SM\nAugusta/M\nAugustan/S\nAuguste/M\nAugustina/M\nAugustine/M\nAugustinian/S\nAugustin/M\naugustness/SM\nAugusto/M\nAugust/SM\naugust/STPYR\nAugustus/M\nAugy/M\nauk/MS\nAu/M\nAundrea/M\nauntie/MS\naunt/MYS\naunty's\naural/Y\nAura/M\naura/SM\nAurea/M\nAurelea/M\nAurelia/M\nAurelie/M\nAurelio/M\nAurelius/M\nAurel/M\naureole/GMSD\naureomycin\nAureomycin/M\nAuria/M\nauric\nauricle/SM\nauricular\nAurie/M\nAuriga/M\nAurilia/M\nAurlie/M\nAuroora/M\nauroral\nAurora/M\naurora/SM\nAurore/M\nAurthur/M\nAuschwitz/M\nauscultate/XDSNG\nauscultation/M\nauspice/SM\nauspicious/IPY\nauspiciousnesses\nauspiciousness/IM\nAussie/MS\nAusten/M\naustereness/M\naustere/TYRP\nausterity/SM\nAustina/M\nAustine/M\nAustin/SM\naustral\nAustralasia/M\nAustralasian/S\naustrales\nAustralia/M\nAustralian/MS\nAustralis/M\naustralites\nAustraloid\nAustralopithecus/M\nAustria/M\nAustrian/SM\nAustronesian\nauthentically\nauthenticated/U\nauthenticate/GNDSX\nauthentication/M\nauthenticator/MS\nauthenticity/MS\nauthentic/UI\nauthor/DMGS\nauthoress/S\nauthorial\nauthoritarianism/MS\nauthoritarian/S\nauthoritativeness/SM\nauthoritative/PY\nauthority/SM\nauthorization/MAS\nauthorize/AGDS\nauthorized/U\nauthorizer/SM\nauthorizes/U\nauthorship/MS\nautism/MS\nautistic/S\nautobahn/MS\nautobiographer/MS\nautobiographic\nautobiographical/Y\nautobiography/MS\nautoclave/SDGM\nautocollimator/M\nautocorrelate/GNSDX\nautocorrelation/M\nautocracy/SM\nautocratic\nautocratically\nautocrat/SM\nautodial/R\nautodidact/MS\nautofluorescence\nautograph/MDG\nautographs\nautoignition/M\nautoimmune\nautoimmunity/S\nautoloader\nautomaker/S\nautomata's\nautomate/NGDSX\nautomatically\nautomatic/S\nautomation/M\nautomatism/SM\nautomatize/DSG\nautomaton/SM\nautomobile/GDSM\nautomorphism/SM\nautomotive\nautonavigator/SM\nautonomic/S\nautonomous/Y\nautonomy/MS\nautopilot/SM\nautopsy/MDSG\nautoregressive\nautorepeat/GS\nauto/SDMG\nautostart\nautosuggestibility/M\nautotransformer/M\nautoworker/S\nautumnal/Y\nAutumn/M\nautumn/MS\naux\nauxiliary/S\nauxin/MS\nAV\navailability/USM\navailableness/M\navailable/U\navailably\navail/BSZGRD\navailing/U\navalanche/MGSD\nAvalon/M\nAva/M\navant\navarice/SM\navariciousness/M\navaricious/PY\navast/S\navatar/MS\navaunt/S\navdp\nAveline/M\nAve/MS\navenged/U\navenger/M\navenge/ZGSRD\nAventine/M\nAventino/M\navenue/MS\naverage/DSPGYM\nAverell/M\nAverill/M\nAveril/M\nAvernus/M\naverred\naverrer\naverring\nAverroes/M\naverseness/M\naverse/YNXP\naversion/M\navers/V\navert/GSD\nAveryl/M\nAvery/M\nave/S\naves/C\nAvesta/M\navg\navian/S\naviary/SM\naviate/NX\naviation/M\naviator/SM\naviatrices\naviatrix/SM\nAvicenna/M\nAvictor/M\navidity/MS\navid/TPYR\nAvie/M\nAvigdor/M\nAvignon/M\nAvila/M\navionic/S\navionics/M\nAvior/M\nAvis\navitaminoses\navitaminosis/M\nAvivah/M\nAviva/M\nAviv/M\navocado/MS\navocational\navocation/SM\nAvogadro/M\navoidable/U\navoidably/U\navoidance/SM\navoider/M\navoid/ZRDBGS\navoirdupois/MS\nAvon/M\navouch/GDS\navowal/EMS\navowed/Y\navower/M\navow/GEDS\nAvram/M\nAvril/M\nAvrit/M\nAvrom/M\navuncular\nav/ZR\nAWACS\nawait/SDG\nawake/GS\nawakened/U\nawakener/M\nawakening/S\nawaken/SADG\nawarder/M\naward/RDSZG\nawareness/MSU\naware/TRP\nawash\naway/PS\naweigh\nawe/SM\nawesomeness/SM\nawesome/PY\nawestruck\nawfuller\nawfullest\nawfulness/SM\nawful/YP\naw/GD\nawhile/S\nawkwardness/MS\nawkward/PRYT\nawl/MS\nawning/DM\nawn/MDJGS\nawoke\nawoken\nAWOL\nawry/RT\nax/DRSZGM\naxehead/S\nAxel/M\nAxe/M\naxeman\naxial/Y\naxillary\naxiological/Y\naxiology/M\naxiomatically\naxiomatic/S\naxiomatization/MS\naxiomatize/GDS\naxiom/SM\naxion/SM\naxis/SM\naxle/MS\naxletree/MS\nAx/M\naxolotl/SM\naxon/SM\nayah/M\nayahs\nAyala/M\nayatollah\nayatollahs\naye/MZRS\nAyers\nAylmar/M\nAylmer/M\nAymara/M\nAymer/M\nAyn/M\nAZ\nazalea/SM\nAzania/M\nAzazel/M\nAzerbaijan/M\nazimuthal/Y\nazimuth/M\nazimuths\nAzores\nAzov/M\nAZT\nAztecan\nAztec/MS\nazure/MS\nBA\nBaal/SM\nbaa/SDG\nBabara/M\nBabar's\nBabbage/M\nBabbette/M\nBabbie/M\nbabbitt/GDS\nBabbitt/M\nbabbler/M\nbabble/RSDGZ\nBabb/M\nBabcock/M\nBabel/MS\nbabel/S\nbabe/SM\nBabette/M\nBabita/M\nBabka/M\nbaboon/MS\nBab/SM\nbabushka/MS\nbabyhood/MS\nbabyish\nBabylonia/M\nBabylonian/SM\nBabylon/MS\nbabysat\nbabysit/S\nbabysitter/S\nbabysitting\nbaby/TDSRMG\nBacall/M\nBacardi/M\nbaccalaureate/MS\nbaccarat/SM\nbacchanalia\nBacchanalia/M\nbacchanalian/S\nbacchanal/SM\nBacchic\nBacchus/M\nbachelorhood/SM\nbachelor/SM\nBach/M\nbacillary\nbacilli\nbacillus/MS\nbackache/SM\nbackarrow\nbackbencher/M\nbackbench/ZR\nbackbiter/M\nbackbite/S\nbackbitten\nbackbit/ZGJR\nbackboard/SM\nbackbone/SM\nbackbreaking\nbackchaining\nbackcloth/M\nbackdate/GDS\nbackdrop/MS\nbackdropped\nbackdropping\nbacked/U\nbacker/M\nbackfield/SM\nbackfill/SDG\nbackfire/GDS\nbackgammon/MS\nbackground/SDRMZG\nback/GZDRMSJ\nbackhanded/Y\nbackhander/M\nbackhand/RDMSZG\nbackhoe/S\nbacking/M\nbacklash/GRSDM\nbackless\nbacklogged\nbacklogging\nbacklog/MS\nbackorder\nbackpacker/M\nbackpack/ZGSMRD\nbackpedal/DGS\nbackplane/MS\nbackplate/SM\nbackrest/MS\nbackscatter/SMDG\nbackseat/S\nbackside/SM\nbackslapper/MS\nbackslapping/M\nbackslash/DSG\nbackslider/M\nbackslide/S\nbackslid/RZG\nbackspace/GSD\nbackspin/SM\nbackstabber/M\nbackstabbing\nbackstage\nbackstair/S\nbackstitch/GDSM\nbackstop/MS\nbackstopped\nbackstopping\nbackstreet/M\nbackstretch/SM\nbackstroke/GMDS\nbacktalk/S\nbacktrack/SDRGZ\nbackup/SM\nBackus/M\nbackwardness/MS\nbackward/YSP\nbackwash/SDMG\nbackwater/SM\nbackwood/S\nbackwoodsman/M\nbackwoodsmen\nbackyard/MS\nbaconer/M\nBacon/M\nbacon/SRM\nbacterial/Y\nbacteria/MS\nbactericidal\nbactericide/SM\nbacteriologic\nbacteriological\nbacteriologist/MS\nbacteriology/SM\nbacterium/M\nBactria/M\nbadder\nbaddest\nbaddie/MS\nbade\nBaden/M\nbadge/DSRGMZ\nbadger/DMG\nbadinage/DSMG\nbadland/S\nBadlands/M\nbadman/M\nbadmen\nbadminton/MS\nbadmouth/DG\nbadmouths\nbadness/SM\nbad/PSNY\nBaedeker/SM\nBaez/M\nBaffin/M\nbafflement/MS\nbaffler/M\nbaffle/RSDGZL\nbaffling/Y\nbagatelle/MS\nbagel/SM\nbagful/MS\nbaggageman\nbaggagemen\nbaggage/SM\nbagged/M\nbagger/SM\nbaggily\nbagginess/MS\nbagging/M\nbaggy/PRST\nBaghdad/M\nbagpiper/M\nbagpipe/RSMZ\nBagrodia/MS\nbag/SM\nbaguette/SM\nBaguio/M\nbah\nBaha'i\nBahama/MS\nBahamanian/S\nBahamian/MS\nBaha'ullah\nBahia/M\nBahrain/M\nbahs\nBaikal/M\nBailey/SM\nbail/GSMYDRB\nBailie/M\nbailiff/SM\nbailiwick/MS\nBaillie/M\nBail/M\nbailout/MS\nbailsman/M\nbailsmen\nBaily/M\nBaird/M\nbairn/SM\nbaiter/M\nbait/GSMDR\nbaize/GMDS\nBaja/M\nbaked/U\nbakehouse/M\nBakelite/M\nbaker/M\nBaker/M\nBakersfield/M\nbakery/SM\nbakeshop/S\nbake/ZGJDRS\nbaking/M\nbaklava/M\nbaksheesh/SM\nBaku/M\nBakunin/M\nbalaclava/MS\nbalalaika/MS\nbalanced/A\nbalancedness\nbalancer/MS\nbalance's\nbalance/USDG\nBalanchine/M\nBalboa/M\nbalboa/SM\nbalcony/MSD\nbalderdash/MS\nBalder/M\nbaldfaced\nBald/MR\nbaldness/MS\nbald/PYDRGST\nbaldric/SM\nBalduin/M\nBaldwin/M\nbaldy\nBalearic/M\nbaleen/MS\nbalefuller\nbalefullest\nbalefulness/MS\nbaleful/YP\nBale/M\nbale/MZGDRS\nbaler/M\nBalfour/M\nBali/M\nBalinese\nbalkanization\nbalkanize/DG\nBalkan/SM\nbalker/M\nbalk/GDRS\nBalkhash/M\nbalkiness/M\nbalky/PRT\nballadeer/MS\nballade/MS\nballadry/MS\nballad/SM\nBallard/SM\nballast/SGMD\nballcock/S\nballerina/MS\nballer/M\nballetic\nballet/MS\nballfields\nballgame/S\nball/GZMSDR\nballistic/S\nballistics/M\nBall/M\nballoonist/S\nballoon/RDMZGS\nballoter/M\nballot/MRDGS\nballpark/SM\nballplayer/SM\nballpoint/SM\nballroom/SM\nballsy/TR\nballyhoo/SGMD\nbalminess/SM\nbalm/MS\nbalmy/PRT\nbaloney/SM\nbalsam/GMDS\nbalsamic\nbalsa/MS\nBalthazar/M\nBaltic/M\nBaltimore/M\nBaluchistan/M\nbaluster/MS\nbalustrade/SM\nBalzac/M\nBa/M\nBamako/M\nBamberger/M\nBambie/M\nBambi/M\nbamboo/SM\nbamboozle/GSD\nBamby/M\nBanach/M\nbanality/MS\nbanal/TYR\nbanana/SM\nBancroft/M\nbandager/M\nbandage/RSDMG\nbandanna/SM\nbandbox/MS\nbandeau/M\nbandeaux\nband/EDGS\nbander/M\nbanding/M\nbandit/MS\nbanditry/MS\nbandmaster/MS\nbandoleer/SM\nbandpass\nband's\nbandsman/M\nbandsmen\nbandstand/SM\nbandstop\nBandung/M\nbandwagon/MS\nbandwidth/M\nbandwidths\nbandy/TGRSD\nbanefuller\nbanefullest\nbaneful/Y\nbane/MS\nBangalore/M\nbanger/M\nbang/GDRZMS\nbangkok\nBangkok/M\nBangladeshi/S\nBangladesh/M\nbangle/MS\nBangor/M\nBangui/M\nbani\nbanisher/M\nbanishment/MS\nbanish/RSDGL\nbanister/MS\nBanjarmasin/M\nbanjoist/SM\nbanjo/MS\nBanjul/M\nbankbook/SM\nbankcard/S\nbanker/M\nbank/GZJDRMBS\nbanking/M\nBank/MS\nbanknote/S\nbankroll/DMSG\nbankruptcy/MS\nbankrupt/DMGS\nBanky/M\nBan/M\nbanned/U\nBanneker/M\nbanner/SDMG\nbanning/U\nBannister/M\nbannister's\nbannock/SM\nbanns\nbanqueter/M\nbanquet/SZGJMRD\nbanquette/MS\nban/SGMD\nbanshee/MS\nbans/U\nbantam/MS\nbantamweight/MS\nbanterer/M\nbantering/Y\nbanter/RDSG\nBanting/M\nBantu/SM\nbanyan/MS\nbanzai/S\nbaobab/SM\nBaotou/M\nbaptismal/Y\nbaptism/SM\nBaptiste/M\nbaptistery/MS\nbaptist/MS\nBaptist/MS\nbaptistry's\nbaptized/U\nbaptizer/M\nbaptize/SRDZG\nbaptizes/U\nBarabbas/M\nBarbabas/M\nBarbabra/M\nBarbadian/S\nBarbados/M\nBarbaraanne/M\nBarbara/M\nBarbarella/M\nbarbarianism/MS\nbarbarian/MS\nbarbaric\nbarbarically\nbarbarism/MS\nbarbarity/SM\nbarbarize/SDG\nBarbarossa/M\nbarbarousness/M\nbarbarous/PY\nBarbary/M\nbarb/DRMSGZ\nbarbecue/DRSMG\nbarbed/P\nBarbee/M\nbarbell/SM\nbarbel/MS\nBarbe/M\nbarbeque's\nbarber/DMG\nbarbered/U\nBarber/M\nbarberry/MS\nbarbershop/MS\nBarbette/M\nBarbey/M\nBarbie/M\nBarbi/M\nbarbital/M\nbarbiturate/MS\nBarbour/M\nBarbra/M\nBarb/RM\nBarbuda/M\nbarbwire/SM\nBarby/M\nbarcarole/SM\nBarcelona/M\nBarclay/M\nBardeen/M\nBarde/M\nbardic\nBard/M\nbard/MDSG\nbareback/D\nbarefacedness/M\nbarefaced/YP\nbarefoot/D\nbarehanded\nbareheaded\nbarelegged\nbareness/MS\nBarents/M\nbare/YSP\nbarfly/SM\nbarf/YDSG\nbargainer/M\nbargain/ZGSDRM\nbarge/DSGM\nbargeman/M\nbargemen\nbargepole/M\nbarhopped\nbarhopping\nbarhop/S\nBari/M\nbaritone/MS\nbarium/MS\nbarked/C\nbarkeeper/M\nbarkeep/SRZ\nbarker/M\nBarker/M\nbark/GZDRMS\nBarkley/M\nbarks/C\nbarleycorn/MS\nbarley/MS\nBarlow/M\nbarmaid/SM\nbarman/M\nbarmen\nBar/MH\nBarnabas\nBarnabe/M\nBarnaby/M\nbarnacle/MDS\nBarnard/M\nBarnaul/M\nBarnebas/M\nBarnes\nBarnett/M\nBarney/M\nbarnful\nbarn/GDSM\nBarnhard/M\nBarnie/M\nBarn/M\nbarnsful\nbarnstorm/DRGZS\nbarnstormer/M\nBarnum/M\nbarnyard/MS\nBarny/M\nBaroda/M\nbarometer/MS\nbarometric\nbarometrically\nbaronage/MS\nbaroness/MS\nbaronetcy/SM\nbaronet/MS\nbaronial\nBaron/M\nbaron/SM\nbarony/SM\nbaroque/SPMY\nbarque's\nBarquisimeto/M\nbarracker/M\nbarrack/SDRG\nbarracuda/MS\nbarrage/MGSD\nBarranquilla/M\nbarred/ECU\nbarre/GMDSJ\nbarrel/SGMD\nbarrenness/SM\nbarren/SPRT\nBarrera/M\nBarret/M\nbarrette/SM\nBarrett/M\nbarricade/SDMG\nBarrie/M\nbarrier/MS\nbarring/R\nbarrio/SM\nBarri/SM\nbarrister/MS\nBarr/M\nBarron/M\nbarroom/SM\nbarrow/MS\nBarry/M\nBarrymore/MS\nbars/ECU\nbarstool/SM\nBarstow/M\nBartel/M\nbartender/M\nbartend/ZR\nbarterer/M\nbarter/SRDZG\nbar/TGMDRS\nBarthel/M\nBarth/M\nBartholdi/M\nBartholemy/M\nBartholomeo/M\nBartholomeus/M\nBartholomew/M\nBartie/M\nBartlet/M\nBartlett/M\nBart/M\nBart<72>k/M\nBartolemo/M\nBartolomeo/M\nBarton/M\nBartram/M\nBarty/M\nbarycenter\nbarycentre's\nbarycentric\nBary/M\nbaryon/SM\nBaryram/M\nBaryshnikov/M\nbasaltic\nbasalt/SM\nbasal/Y\nBascom/M\nbas/DRSTG\nbaseball/MS\nbaseband\nbaseboard/MS\nbase/CGRSDL\nbaseless\nbaseline/SM\nBasel/M\nbasely\nBase/M\nbaseman/M\nbasemen\nbasement/CSM\nbaseness/MS\nbaseplate/M\nbase's\nbasetting\nbashfulness/MS\nbashful/PY\nbash/JGDSR\nBasho/M\nBasia/M\nBASIC\nbasically\nbasic/S\nBasie/M\nbasilar\nBasile/M\nbasilica/SM\nBasilio/M\nbasilisk/SM\nBasilius/M\nBasil/M\nbasil/MS\nbasin/DMS\nbasinful/S\nbasis/M\nbasketball/MS\nbasketry/MS\nbasket/SM\nbasketwork/SM\nbask/GSD\nbasophilic\nBasque/SM\nBasra/M\nBasseterre/M\nbasset/GMDS\nBassett/M\nbassinet/SM\nbassist/MS\nBass/M\nbasso/MS\nbassoonist/MS\nbassoon/MS\nbass/SM\nbasswood/SM\nbastardization/MS\nbastardized/U\nbastardize/SDG\nbastard/MYS\nbastardy/MS\nbaste/NXS\nbaster/M\nBastian/M\nBastien/M\nBastille/M\nbasting/M\nbastion/DM\nbast/SGZMDR\nBasutoland/M\nBataan/M\nBatavia/M\nbatch/MRSDG\nbated/U\nbate/KGSADC\nbater/AC\nBates\nbathe\nbather/M\nbathetic\nbathhouse/SM\nbath/JMDSRGZ\nbathmat/S\nBatholomew/M\nbathos/SM\nbathrobe/MS\nbathroom/SDM\nbaths\nBathsheba/M\nbathtub/MS\nbathwater\nbathyscaphe's\nbathysphere/MS\nbatik/DMSG\nBatista/M\nbatiste/SM\nBat/M\nbatman/M\nBatman/M\nbatmen\nbaton/SM\nBatsheva/M\nbatsman/M\nbat/SMDRG\nbatsmen\nbattalion/MS\nbatted\nbatten/SDMG\nbatter/SRDZG\nbattery/MS\nbatting/MS\nbattledore/MS\nbattledress\nbattlefield/SM\nbattlefront/SM\nbattle/GMZRSDL\nbattleground/SM\nBattle/M\nbattlement/SMD\nbattler/M\nbattleship/MS\nbatty/RT\nBatu/M\nbatwings\nbauble/SM\nBaudelaire/M\nbaud/M\nBaudoin/M\nBaudouin/M\nBauer/M\nBauhaus/M\nbaulk/GSDM\nBausch/M\nbauxite/SM\nBavaria/M\nBavarian/S\nbawdily\nbawdiness/MS\nbawd/SM\nbawdy/PRST\nbawler/M\nbawl/SGDR\nBaxie/M\nBax/M\nBaxter/M\nBaxy/M\nBayamon\nBayard/M\nbayberry/MS\nBayda/M\nBayer/M\nBayes\nBayesian\nbay/GSMDY\nBaylor/M\nBay/MR\nbayonet/SGMD\nBayonne/M\nbayou/MS\nBayreuth/M\nbazaar/MS\nbazillion/S\nbazooka/MS\nBB\nBBB\nBBC\nbbl\nBBQ\nBBS\nBC\nBCD\nbdrm\nbeachcomber/SM\nbeachhead/SM\nBeach/M\nbeach/MSDG\nbeachwear/M\nbeacon/DMSG\nbeading/M\nBeadle/M\nbeadle/SM\nbead/SJGMD\nbeadsman/M\nbeadworker\nbeady/TR\nbeagle/SDGM\nbeaker/M\nbeak/ZSDRM\nBeale/M\nBealle/M\nBea/M\nbeam/MDRSGZ\nbeanbag/SM\nbean/DRMGZS\nbeanie/SM\nBean/M\nbeanpole/MS\nbeanstalk/SM\nbearable/U\nbearably/U\nbeard/DSGM\nbearded/P\nbeardless\nBeard/M\nBeardmore/M\nBeardsley/M\nbearer/M\nbearing/M\nbearishness/SM\nbearish/PY\nbearlike\nBear/M\nBearnaise/M\nBearnard/M\nbearskin/MS\nbear/ZBRSJG\nBeasley/M\nbeasties\nbeastings/M\nbeastliness/MS\nbeastly/PTR\nbeast/SJMY\nbeatable/U\nbeatably/U\nbeaten/U\nbeater/M\nbeatific\nbeatifically\nbeatification/M\nbeatify/GNXDS\nbeating/M\nbeatitude/MS\nBeatlemania/M\nBeatles/M\nbeatnik/SM\nbeat/NRGSBZJ\nBeatrice/M\nBeatrisa/M\nBeatrix/M\nBeatriz/M\nBeauchamps\nBeaufort/M\nBeaujolais/M\nBeau/M\nBeaumarchais/M\nBeaumont/M\nbeau/MS\nBeauregard/M\nbeauteousness/M\nbeauteous/YP\nbeautician/MS\nbeautification/M\nbeautifier/M\nbeautifully/U\nbeautifulness/M\nbeautiful/PTYR\nbeautify/SRDNGXZ\nbeaut/SM\nbeauty/SM\nBeauvoir/M\nbeaux's\nbeaver/DMSG\nBeaverton/M\nBebe/M\nbebop/MS\nbecalm/GDS\nbecame\nbecause\nBecca/M\nBechtel/M\nBecka/M\nBecker/M\nBecket/M\nBeckett/M\nbeck/GSDM\nBeckie/M\nBecki/M\nbeckon/SDG\nBeck/RM\nBecky/M\nbecloud/SGD\nbecome/GJS\nbecoming/UY\nBecquerel/M\nbedaub/GDS\nbedazzle/GLDS\nbedazzlement/SM\nbedbug/SM\nbedchamber/M\nbedclothes\nbedded\nbedder/MS\nbedding/MS\nbedeck/DGS\nBede/M\nbedevil/DGLS\nbedevilment/SM\nbedfast\nbedfellow/MS\nBedford/M\nbedimmed\nbedimming\nbedim/S\nbedizen/DGS\nbedlam/MS\nbedlinen\nbedmaker/SM\nbedmate/MS\nbed/MS\nBedouin/SM\nbedpan/SM\nbedpost/SM\nbedraggle/GSD\nbedridden\nbedrock/SM\nbedroll/SM\nbedroom/DMS\nbedsheets\nbedside/MS\nbedsit\nbedsitter/M\nbedsore/MS\nbedspread/SM\nbedspring/SM\nbedstead/SM\nbedstraw/M\nbedtime/SM\nBeebe/M\nbeebread/MS\nBeecher/M\nbeech/MRSN\nbeechnut/MS\nbeechwood\nbeefburger/SM\nbeefcake/MS\nbeef/GZSDRM\nbeefiness/MS\nbeefsteak/MS\nbeefy/TRP\nbeehive/MS\nbeekeeper/MS\nbeekeeping/SM\nbeeline/MGSD\nBeelzebub/M\nBee/M\nbee/MZGJRS\nbeen/S\nbeeper/M\nbeep/GZSMDR\nBeerbohm/M\nbeer/M\nbeermat/S\nbeery/TR\nbeeswax/DSMG\nBeethoven/M\nbeetle/GMRSD\nBeeton/M\nbeetroot/M\nbeet/SM\nbeeves/M\nbefall/SGN\nbefell\nbefit/SM\nbefitted\nbefitting/Y\nbefogged\nbefogging\nbefog/S\nbefore\nbeforehand\nbefoul/GSD\nbefriend/DGS\nbefuddle/GLDS\nbefuddlement/SM\nbegan\nbeget/S\nbegetting\nbeggar/DYMSG\nbeggarliness/M\nbeggarly/P\nbeggary/MS\nbegged\nbegging\nBegin/M\nbeginner/MS\nbeginning/MS\nbegin/S\nbegone/S\nbegonia/SM\nbegot\nbegotten\nbegrime/SDG\nbegrudge/GDRS\nbegrudging/Y\nbeg/S\nbeguilement/SM\nbeguiler/M\nbeguile/RSDLZG\nbeguiling/Y\nbeguine/SM\nbegum/MS\nbegun\nbehalf/M\nbehalves\nBehan/M\nbehave/GRSD\nbehavioral/Y\nbehaviorism/MS\nbehavioristic/S\nbehaviorist/S\nbehavior/SMD\nbehead/GSD\nbeheld\nbehemoth/M\nbehemoths\nbehest/SM\nbehindhand\nbehind/S\nbeholder/M\nbehold/ZGRNS\nbehoofs\nbehoove/SDJMG\nbehooving/YM\nBehring/M\nBeiderbecke/M\nbeige/MS\nBeijing\nBeilul/M\nbeing/M\nBeirut/M\nBeitris/M\nbejewel/SDG\nBekesy/M\nBekki/M\nbe/KS\nbelabor/MDSG\nBela/M\nBelarus\nbelate/D\nbelatedness/M\nbelated/PY\nBelau/M\nbelay/GSD\nbelch/GSD\nbeleaguer/GDS\nBelem/M\nBelfast/M\nbelfry/SM\nBelgian/MS\nBelgium/M\nBelg/M\nBelgrade/M\nBelia/M\nBelicia/M\nbelie\nbelief/ESUM\nbelier/M\nbelievability's\nbelievability/U\nbelievable/U\nbelievably/U\nbelieved/U\nbelieve/EZGDRS\nbeliever/MUSE\nbelieving/U\nBelinda/M\nBelita/M\nbelittlement/MS\nbelittler/M\nbelittle/RSDGL\nBelize/M\nbelladonna/MS\nBella/M\nBellamy/M\nBellanca/M\nBellatrix/M\nbellboy/MS\nbelled/A\nBelle/M\nbelle/MS\nbelletristic\nbelletrist/SM\nBelleville/M\nbellflower/M\nbell/GSMD\nbellhop/MS\nbellicoseness/M\nbellicose/YP\nbellicosity/MS\nbelligerence/SM\nbelligerency/MS\nbelligerent/SMY\nBellina/M\nbelling/A\nBellini/M\nBell/M\nbellman/M\nbellmen\nBellovin/M\nbellow/DGS\nBellow/M\nbellows/M\nbells/A\nbellwether/MS\nBellwood/M\nbellyacher/M\nbellyache/SRDGM\nbellybutton/MS\nbellyfull\nbellyful/MS\nbelly/SDGM\nBel/M\nBelmont/M\nBelmopan/M\nBeloit/M\nbelong/DGJS\nbelonging/MP\nBelorussian/S\nBelorussia's\nbelove/D\nbeloved/S\nbelow/S\nBelshazzar/M\nbelted/U\nbelt/GSMD\nbelting/M\nBelton/M\nBeltran/M\nBeltsville/M\nbeltway/SM\nbeluga/SM\nBelushi/M\nBelva/M\nbelvedere/M\nBelvia/M\nbely/DSRG\nbeman\nBe/MH\nbemire/SDG\nbemoan/GDS\nbemused/Y\nbemuse/GSDL\nbemusement/SM\nBenacerraf/M\nBenares's\nbencher/M\nbenchmark/GDMS\nbench/MRSDG\nbend/BUSG\nbended\nBender/M\nbender/MS\nBendick/M\nBendicty/M\nBendite/M\nBendix/M\nbeneath\nBenedetta/M\nBenedetto/M\nBenedick/M\nBenedicta/M\nBenedictine/MS\nbenediction/MS\nBenedict/M\nBenedicto/M\nbenedictory\nBenedikta/M\nBenedikt/M\nbenefaction/MS\nbenefactor/MS\nbenefactress/S\nbenefice/MGSD\nbeneficence/SM\nbeneficent/Y\nbeneficialness/M\nbeneficial/PY\nbeneficiary/MS\nbenefiter/M\nbenefit/SRDMZG\nBenelux/M\nBenet/M\nBenetta/M\nBenetton/M\nbenevolence/SM\nbenevolentness/M\nbenevolent/YP\nBengali/M\nBengal/SM\nBenghazi/M\nBengt/M\nBeniamino/M\nbenightedness/M\nbenighted/YP\nbenignant\nbenignity/MS\nbenign/Y\nBeninese\nBenin/M\nBenita/M\nBenito/M\nBenjamen/M\nBenjamin/M\nBenjie/M\nBenji/M\nBenjy/M\nBen/M\nBennett/M\nBennie/M\nBenni/M\nBennington/M\nBenn/M\nBenny/M\nBenoite/M\nBenoit/M\nBenson/M\nBentham/M\nBentlee/M\nBentley/MS\nBent/M\nBenton/M\nbents\nbent/U\nbentwood/SM\nbenumb/SGD\nBenyamin/M\nBenzedrine/M\nbenzene/MS\nbenzine/SM\nBenz/M\nBeograd's\nBeowulf/M\nbequeath/GSD\nbequeaths\nbequest/MS\nberate/GSD\nBerber/MS\nbereave/GLSD\nbereavement/MS\nbereft\nBerenice/M\nBeret/M\nberet/SM\nBergen/M\nBergerac/M\nBerger/M\nBerget/M\nBerglund/M\nBergman/M\nBerg/NRM\nberg/NRSM\nBergson/M\nBergsten/M\nBergstrom/M\nberibbon/D\nberiberi/SM\nBeringer/M\nBering/RM\nBerkeley/M\nberkelium/SM\nBerke/M\nBerkie/M\nBerkley/M\nBerkly/M\nBerkowitz/M\nBerkshire/SM\nBerky/M\nBerk/YM\nBerle/M\nBerliner/M\nBerlin/SZRM\nBerlioz/M\nBerlitz/M\nBerman/M\nBer/MG\nberm/SM\nBermuda/MS\nBermudan/S\nBermudian/S\nBernadene/M\nBernadette/M\nBernadina/M\nBernadine/M\nBerna/M\nBernardina/M\nBernardine/M\nBernardino/M\nBernard/M\nBernardo/M\nBernarr/M\nBernays/M\nBernbach/M\nBernelle/M\nBerne's\nBernese\nBernete/M\nBernetta/M\nBernette/M\nBernhard/M\nBernhardt/M\nBernice/M\nBerniece/M\nBernie/M\nBerni/M\nBernini/M\nBernita/M\nBern/M\nBernoulli/M\nBernstein/M\nBerny/M\nBerra/M\nBerrie/M\nBerri/M\nberrylike\nBerry/M\nberry/SDMG\nberserker/M\nberserk/SR\nBerta/M\nBerte/M\nBertha/M\nBerthe/M\nberth/MDGJ\nberths\nBertie/M\nBertillon/M\nBerti/M\nBertina/M\nBertine/M\nBert/M\nBerton/M\nBertram/M\nBertrand/M\nBertrando/M\nBerty/M\nBeryle/M\nberyllium/MS\nBeryl/M\nberyl/SM\nBerzelius/M\nbes\nbeseecher/M\nbeseeching/Y\nbeseech/RSJZG\nbeseem/GDS\nbeset/S\nbesetting\nbeside/S\nbesieger/M\nbesiege/SRDZG\nbesmear/GSD\nbesmirch/GSD\nbesom/GMDS\nbesot/S\nbesotted\nbesotting\nbesought\nbespangle/GSD\nbespatter/SGD\nbespeak/SG\nbespectacled\nbespoke\nbespoken\nBess\nBessel/M\nBessemer/M\nBessie/M\nBessy/M\nbest/DRSG\nbestiality/MS\nbestial/Y\nbestiary/MS\nbestirred\nbestirring\nbestir/S\nBest/M\nbestowal/SM\nbestow/SGD\nbestrew/DGS\nbestrewn\nbestridden\nbestride/SG\nbestrode\nbestseller/MS\nbestselling\nbestubble/D\nbetaken\nbetake/SG\nbeta/SM\nbetatron/M\nbetcha\nBetelgeuse/M\nbetel/MS\nBethanne/M\nBethany/M\nbethel/M\nBethe/M\nBethena/M\nBethesda/M\nBethina/M\nbethink/GS\nBethlehem/M\nbeth/M\nBeth/M\nbethought\nBethune\nbetide/GSD\nbetimes\nbet/MS\nbetoken/GSD\nbetook\nbetrayal/SM\nbetrayer/M\nbetray/SRDZG\nbetrothal/SM\nbetrothed/U\nbetroth/GD\nbetroths\nBetsey/M\nBetsy/M\nBetta/M\nBetteanne/M\nBetteann/M\nBette/M\nbetterment/MS\nbetter/SDLG\nBettie/M\nBetti/M\nBettina/M\nBettine/M\nbetting\nbettor/SM\nBettye/M\nBetty/SM\nbetweenness/M\nbetween/SP\nbetwixt\nBeulah/M\nBevan/M\nbevel/SJGMRD\nbeverage/MS\nBeverie/M\nBeverlee/M\nBeverley/M\nBeverlie/M\nBeverly/M\nBevin/M\nBevon/M\nBev's\nBevvy/M\nbevy/SM\nbewail/GDS\nbeware/GSD\nbewhisker/D\nbewigged\nbewildered/PY\nbewildering/Y\nbewilder/LDSG\nbewilderment/SM\nbewitching/Y\nbewitch/LGDS\nbewitchment/SM\nbey/MS\nbeyond/S\nbezel/MS\nbf\nB/GT\nBhopal/M\nBhutanese\nBhutan/M\nBhutto/M\nBialystok/M\nBianca/M\nBianco/M\nBianka/M\nbiannual/Y\nbias/DSMPG\nbiased/U\nbiathlon/MS\nbiaxial/Y\nbibbed\nBibbie/M\nbibbing\nBibbye/M\nBibby/M\nBibi/M\nbible/MS\nBible/MS\nbiblical/Y\nbiblicists\nbibliographer/MS\nbibliographical/Y\nbibliographic/S\nbibliography/MS\nbibliophile/MS\nBib/M\nbib/MS\nbibulous\nbicameral\nbicameralism/MS\nbicarb/MS\nbicarbonate/MS\nbicentenary/S\nbicentennial/S\nbicep/S\nbiceps/M\nbichromate/DM\nbickerer/M\nbickering/M\nbicker/SRDZG\nbiconcave\nbiconnected\nbiconvex\nbicuspid/S\nbicycler/M\nbicycle/RSDMZG\nbicyclist/SM\nbiddable\nbidden/U\nbidder/MS\nBiddie/M\nbidding/MS\nBiddle/M\nBiddy/M\nbiddy/SM\nbider/M\nbide/S\nbidet/SM\nBidget/M\nbid/GMRS\nbidiagonal\nbidirectional/Y\nbids/A\nbiennial/SY\nbiennium/SM\nBienville/M\nBierce/M\nbier/M\nbifocal/S\nbifurcate/SDXGNY\nbifurcation/M\nbigamist/SM\nbigamous\nbigamy/SM\nBigelow/M\nBigfoot\nbigged\nbigger\nbiggest\nbiggie/SM\nbigging\nbiggish\nbighead/MS\nbigheartedness/S\nbighearted/P\nbighorn/MS\nbight/SMDG\nbigmouth/M\nbigmouths\nbigness/SM\nbigoted/Y\nbigot/MDSG\nbigotry/MS\nbig/PYS\nbigwig/MS\nbiharmonic\nbijection/MS\nbijective/Y\nbijou/M\nbijoux\nbike/MZGDRS\nbiker/M\nbikini/SMD\nBiko/M\nbilabial/S\nbilateralness/M\nbilateral/PY\nbilayer/S\nBilbao/M\nbilberry/MS\nBilbo/M\nbile/SM\nbilge/GMDS\nbiliary\nBili/M\nbilinear\nbilingualism/SM\nbilingual/SY\nbiliousness/SM\nbilious/P\nbilker/M\nbilk/GZSDR\nbillboard/MDGS\nbiller/M\nbillet/MDGS\nbillfold/MS\nbilliard/SM\nBillie/M\nBilli/M\nbilling/M\nbillingsgate/SM\nBillings/M\nbillionaire/MS\nbillion/SHM\nbillionths\nbill/JGZSBMDR\nBill/JM\nbillow/DMGS\nbillowy/RT\nbillposters\nBillye/M\nBilly/M\nbilly/SM\nBil/MY\nbi/M\nBi/M\nbimbo/MS\nbimetallic/S\nbimetallism/MS\nBimini/M\nbimodal\nbimolecular/Y\nbimonthly/S\nbinary/S\nbinaural/Y\nbinder/M\nbindery/MS\nbinding/MPY\nbindingness/M\nbind/JDRGZS\nbindle/M\nbinds/AU\nbindweed/MS\nbinge/MS\nbing/GNDM\nBingham/M\nBinghamton/M\nBing/M\nbingo/MS\nBini/M\nBink/M\nBinky/M\nbinnacle/MS\nbinned\nBinnie/M\nBinni/M\nbinning\nBinny/M\nbinocular/SY\nbinodal\nbinomial/SYM\nbin/SM\nbinuclear\nbiochemical/SY\nbiochemist/MS\nbiochemistry/MS\nbiodegradability/S\nbiodegradable\nbiodiversity/S\nbioengineering/M\nbioethics\nbiofeedback/SM\nbiographer/M\nbiographic\nbiographical/Y\nbiograph/RZ\nbiography/MS\nbiog/S\nBioko/M\nbiol\nbiological/SY\nbiologic/S\nbiologist/SM\nbiology/MS\nbiomass/SM\nbiomedical\nbiomedicine/M\nbiometric/S\nbiometrics/M\nbiometry/M\nbiomolecule/S\nbiomorph\nbionically\nbionic/S\nbionics/M\nbiophysical/Y\nbiophysicist/SM\nbiophysic/S\nbiophysics/M\nbiopic/S\nbiopsy/SDGM\nbiorhythm/S\nBIOS\nbioscience/S\nbiosphere/MS\nbiostatistic/S\nbiosynthesized\nbiotechnological\nbiotechnologist\nbiotechnology/SM\nbiotic\nbiotin/SM\nbipartisan\nbipartisanship/MS\nbipartite/YN\nbipartition/M\nbipedal\nbiped/MS\nbiplane/MS\nbipolar\nbipolarity/MS\nbiracial\nBirch/M\nbirch/MRSDNG\nbirdbath/M\nbirdbaths\nbirdbrain/SDM\nbirdcage/SM\nbirder/M\nbirdhouse/MS\nbirdieing\nBirdie/M\nbirdie/MSD\nbirdlike\nbirdlime/MGDS\nBird/M\nbirdseed/MS\nBirdseye/M\nbird/SMDRGZ\nbirdsong\nbirdtables\nbirdwatch/GZR\nbirefringence/M\nbirefringent\nbiretta/SM\nBirgit/M\nBirgitta/M\nBirkenstock/M\nBirk/M\nBirmingham/M\nBiro/M\nBiron/M\nbirthday/SM\nbirthmark/MS\nbirth/MDG\nbirthplace/SM\nbirthrate/MS\nbirthright/MS\nbirth's/A\nbirths/A\nbirthstone/SM\nbis\nBiscay/M\nBiscayne/M\nbiscuit/MS\nbisect/DSG\nbisection/MS\nbisector/MS\nbiserial\nbisexuality/MS\nbisexual/YMS\nBishkek\nbishop/DGSM\nBishop/M\nbishopric/SM\nBismarck/M\nBismark/M\nbismuth/M\nbismuths\nbison/M\nbisque/SM\nBissau/M\nbistable\nbistate\nbistro/SM\nbisyllabic\nbitblt/S\nbitchily\nbitchiness/MS\nbitch/MSDG\nbitchy/PTR\nbiter/M\nbite/S\nbiting/Y\nbitmap/SM\nbit/MRJSZG\nBITNET/M\nbit's/C\nbits/C\nbitser/M\nbitted\nbitten\nbitterness/SM\nbittern/SM\nbitternut/M\nbitter/PSRDYTG\nbitterroot/M\nbittersweet/YMSP\nbitting\nbitty/PRT\nbitumen/MS\nbituminous\nbitwise\nbivalent/S\nbivalve/MSD\nbivariate\nbivouacked\nbivouacking\nbivouac/MS\nbiweekly/S\nbiyearly\nbizarreness/M\nbizarre/YSP\nBizet/M\nbiz/M\nbizzes\nBjorn/M\nbk\nb/KGD\nBk/M\nblabbed\nblabber/GMDS\nblabbermouth/M\nblabbermouths\nblabbing\nblab/S\nblackamoor/SM\nblackball/SDMG\nblackberry/GMS\nblackbirder/M\nblackbird/SGDRM\nblackboard/SM\nblackbody/S\nBlackburn/M\nblackcurrant/M\nblackener/M\nblacken/GDR\nBlackfeet\nBlackfoot/M\nblackguard/MDSG\nblackhead/SM\nblacking/M\nblackish\nblackjack/SGMD\nblackleg/M\nblacklist/DRMSG\nblackmail/DRMGZS\nblackmailer/M\nBlackman/M\nBlackmer/M\nblackness/MS\nblackout/SM\nBlackpool/M\nBlack's\nblack/SJTXPYRDNG\nblacksmith/MG\nblacksmiths\nblacksnake/MS\nblackspot\nBlackstone/M\nblackthorn/MS\nblacktop/MS\nblacktopped\nblacktopping\nBlackwell/MS\nbladder/MS\nbladdernut/M\nbladderwort/M\nblade/DSGM\nblah/MDG\nblahs\nBlaine/M\nBlaire/M\nBlair/M\nBlakelee/M\nBlakeley/M\nBlake/M\nBlakey/M\nblame/DSRBGMZ\nblamelessness/SM\nblameless/YP\nblamer/M\nblameworthiness/SM\nblameworthy/P\nBlanca/M\nBlancha/M\nBlanchard/M\nblanch/DRSG\nBlanche/M\nblancher/M\nBlanch/M\nblanc/M\nblancmange/SM\nblandishment/MS\nblandish/SDGL\nblandness/MS\nbland/PYRT\nBlane/M\nBlankenship/M\nblanketing/M\nblanket/SDRMZG\nblankness/MS\nblank/SPGTYRD\nBlanton/M\nBlantyre/M\nblare/DSG\nblarney/DMGS\nblas<61>\nblasphemer/M\nblaspheme/RSDZG\nblasphemousness/M\nblasphemous/PY\nblasphemy/SM\nblaster/M\nblasting/M\nblastoff/SM\nblast/SMRDGZ\nblatancy/SM\nblatant/YP\nblather/DRGS\nblatting\nBlatz/M\nBlavatsky/M\nBlayne/M\nblaze/DSRGMZ\nblazer/M\nblazing/Y\nblazoner/M\nblazon/SGDR\nbl/D\nbldg\nbleach/DRSZG\nbleached/U\nbleacher/M\nbleakness/MS\nbleak/TPYRS\nblear/GDS\nblearily\nbleariness/SM\nbleary/PRT\nbleater/M\nbleat/RDGS\nbleeder/M\nbleed/ZRJSG\nBleeker/M\nbleep/GMRDZS\nblemish/DSMG\nblemished/U\nblench/DSG\nblender/M\nblend/GZRDS\nBlenheim/M\nblessedness/MS\nblessed/PRYT\nblessing/M\nbless/JGSD\nBlevins/M\nblew\nBligh/M\nblighter/M\nblight/GSMDR\nblimey/S\nblimp/MS\nblinded/U\nblinder/M\nblindfold/SDG\nblinding/MY\nblind/JGTZPYRDS\nblindness/MS\nblindside/SDG\nblinker/MDG\nblinking/U\nblink/RDGSZ\nblinks/M\nBlinnie/M\nBlinni/M\nBlinny/M\nblintze/M\nblintz/SM\nblip/MS\nblipped\nblipping\nBlisse/M\nblissfulness/MS\nblissful/PY\nBliss/M\nbliss/SDMG\nblistering/Y\nblister/SMDG\nblistery\nBlithe/M\nblitheness/SM\nblither/G\nblithesome\nblithe/TYPR\nblitz/GSDM\nblitzkrieg/SM\nblizzard/MS\nbloater/M\nbloat/SRDGZ\nblobbed\nblobbing\nblob/MS\nBloch/M\nblockader/M\nblockade/ZMGRSD\nblockage/MS\nblockbuster/SM\nblockbusting/MS\nblocker/MS\nblockhead/MS\nblockhouse/SM\nblock's\nblock/USDG\nblocky/R\nbloc/MS\nBloemfontein/M\nbloke/SM\nBlomberg/M\nBlomquist/M\nBlondelle/M\nBlondell/M\nblonde's\nBlondie/M\nblondish\nblondness/MS\nblond/SPMRT\nBlondy/M\nbloodbath\nbloodbaths\nbloodcurdling\nbloodhound/SM\nbloodied/U\nbloodiness/MS\nbloodlessness/SM\nbloodless/PY\nbloodletting/MS\nbloodline/SM\nbloodmobile/MS\nbloodroot/M\nbloodshed/SM\nbloodshot\nblood/SMDG\nbloodsport/S\nbloodstain/MDS\nbloodstock/SM\nbloodstone/M\nbloodstream/SM\nbloodsucker/SM\nbloodsucking/S\nbloodthirstily\nbloodthirstiness/MS\nbloodthirsty/RTP\nbloodworm/M\nbloodymindedness\nbloody/TPGDRS\nbloomer/M\nBloomer/M\nBloomfield/M\nBloomington/M\nBloom/MR\nbloom/SMRDGZ\nblooper/M\nbloop/GSZRD\nblossom/DMGS\nblossomy\nblotch/GMDS\nblotchy/RT\nblot/MS\nblotted\nblotter/MS\nblotting\nblotto\nblouse/GMSD\nblower/M\nblowfish/M\nblowfly/MS\nblowgun/SM\nblow/GZRS\nblowing/M\nblown/U\nblowout/MS\nblowpipe/SM\nblowtorch/SM\nblowup/MS\nblowy/RST\nblowzy/RT\nBLT\nblubber/GSDR\nblubbery\nBlucher/M\nbludgeon/GSMD\nblueback\nBluebeard/M\nbluebell/MS\nblueberry/SM\nbluebill/M\nbluebird/MS\nbluebonnet/SM\nbluebook/M\nbluebottle/MS\nbluebush\nbluefish/SM\nbluegill/SM\nbluegrass/MS\nblueing's\nblueish\nbluejacket/MS\nbluejeans\nblue/JMYTGDRSP\nblueness/MS\nbluenose/MS\nbluepoint/SM\nblueprint/GDMS\nbluer/M\nbluest/M\nbluestocking/SM\nbluesy/TR\nbluet/MS\nbluffer/M\nbluffness/MS\nbluff/SPGTZYRD\nbluing/M\nbluishness/M\nbluish/P\nBlumenthal/M\nBlum/M\nblunderbuss/MS\nblunderer/M\nblunder/GSMDRJZ\nblundering/Y\nbluntness/MS\nblunt/PSGTYRD\nblurb/GSDM\nblur/MS\nblurred/Y\nblurriness/S\nblurring/Y\nblurry/RPT\nblurt/GSRD\nblusher/M\nblushing/UY\nblush/RSDGZ\nblusterer/M\nblustering/Y\nblusterous\nbluster/SDRZG\nblustery\nblvd\nBlvd\nBlythe/M\nBM\nBMW/M\nBO\nboarded\nboarder/SM\nboardgames\nboardinghouse/SM\nboarding/SM\nboard/IS\nboardroom/MS\nboard's\nboardwalk/SM\nboar/MS\nboa/SM\nboaster/M\nboastfulness/MS\nboastful/YP\nboast/SJRDGZ\nboatclubs\nboater/M\nboathouse/SM\nboating/M\nboatload/SM\nboatman/M\nboat/MDRGZJS\nboatmen\nboatswain/SM\nboatyard/SM\nbobbed\nBobbee/M\nBobbe/M\nBobbette/M\nBobbie/M\nBobbi/M\nbobbing/M\nbobbin/MS\nBobbitt/M\nbobble/SDGM\nBobbsey/M\nBobbye/M\nBobby/M\nbobby/SM\nbobbysoxer's\nbobcat/MS\nBobette/M\nBobina/M\nBobine/M\nBobinette/M\nBob/M\nbobolink/SM\nBobrow/M\nbobsledded\nbobsledder/MS\nbobsledding/M\nbobsled/MS\nbobsleigh/M\nbobsleighs\nbobs/M\nbob/SM\nbobtail/SGDM\nbobwhite/SM\nBoca/M\nBoccaccio/M\nboccie/SM\nbock/GDS\nbockwurst\nbodega/MS\nBodenheim/M\nbode/S\nBodhidharma/M\nbodhisattva\nBodhisattva/M\nbodice/SM\nbodied/M\nbodiless\nbodily\nboding/M\nbodkin/SM\nbod/SGMD\nbodybuilder/SM\nbodybuilding/S\nbody/DSMG\nbodyguard/MS\nbodying/M\nbodysuit/S\nbodyweight\nbodywork/SM\nBoeing/M\nBoeotia/M\nBoeotian\nBoer/M\nBogartian/M\nBogart/M\nBogey/M\nbogeyman/M\nbogeymen\nbogey/SGMD\nbogged\nbogging\nboggle/SDG\nboggling/Y\nboggy/RT\nbogie's\nbog/MS\nBogot<6F>/M\nbogus\nbogyman\nbogymen\nbogy's\nBoheme/M\nbohemianism/S\nbohemian/S\nBohemian/SM\nBohemia/SM\nBohr/M\nBoigie/M\nboiled/AU\nboiler/M\nboilermaker/MS\nboilerplate/SM\nboil/JSGZDR\nboils/A\nBoise/M\nBois/M\nboisterousness/MS\nboisterous/YP\nbola/SM\nboldface/SDMG\nboldness/MS\nbold/YRPST\nbole/MS\nbolero/MS\nBoleyn/M\nbolivares\nBolivar/M\nbolivar/MS\nBolivia/M\nBolivian/S\nbollard/SM\nbollix/GSD\nboll/MDSG\nBologna/M\nbologna/MS\nbolometer/MS\nbolo/MS\nboloney's\nBolshevik/MS\nBolshevism/MS\nBolshevistic/M\nBolshevist/MS\nBolshoi/M\nbolsterer/M\nbolster/SRDG\nbolted/U\nbolter/M\nbolt/MDRGS\nBolton/M\nbolts/U\nBoltzmann/M\nbolus/SM\nbombardier/MS\nbombard/LDSG\nbombardment/SM\nbombastic\nbombastically\nbombast/RMS\nBombay/M\nbomber/M\nbombproof\nbomb/SGZDRJ\nbombshell/SM\nBo/MRZ\nbona\nbonanza/MS\nBonaparte/M\nBonaventure/M\nbonbon/SM\nbondage/SM\nbonder/M\nbondholder/SM\nBondie/M\nbond/JMDRSGZ\nBond/M\nbondman/M\nbondmen\nBondon/M\nbonds/A\nbondsman/M\nbondsmen\nbondwoman/M\nbondwomen\nBondy/M\nboned/U\nbonehead/SDM\nboneless\nBone/M\nbone/MZDRSG\nboner/M\nbonfire/MS\nbong/GDMS\nbongo/MS\nBonham/M\nbonhomie/MS\nBoniface/M\nboniness/MS\nBonita/M\nbonito/MS\nbonjour\nbonkers\nBonnee/M\nBonner/M\nbonneted/U\nbonnet/SGMD\nBonneville/M\nBonnibelle/M\nbonnie\nBonnie/M\nBonni/M\nBonn/RM\nBonny/M\nbonny/RT\nbonsai/SM\nBontempo/M\nbonus/SM\nbony/RTP\nbonzes\nboob/DMSG\nbooby/SM\nboodle/GMSD\nboogeyman's\nboogieing\nboogie/SD\nboo/GSDH\nboohoo/GDS\nbookbinder/M\nbookbindery/SM\nbookbinding/M\nbookbind/JRGZ\nbookcase/MS\nbooked/U\nbookend/SGD\nBooker/M\nbook/GZDRMJSB\nbookie/SM\nbooking/M\nbookishness/M\nbookish/PY\nbookkeeper/M\nbookkeep/GZJR\nbookkeeping/M\nbooklet/MS\nbookmaker/MS\nbookmaking/MS\nbookmark/MDGS\nbookmobile/MS\nbookplate/SM\nbookseller/SM\nbookshelf/M\nbookshelves\nbookshop/MS\nbookstall/MS\nbookstore/SM\nbookwork/M\nbookworm/MS\nBoolean\nboolean/S\nBoole/M\nboom/DRGJS\nboomerang/MDSG\nboomer/M\nboomtown/S\nboondocks\nboondoggle/DRSGZ\nboondoggler/M\nBoone/M\nBoonie/M\nboonies\nboon/MS\nBoony/M\nboorishness/SM\nboorish/PY\nboor/MS\nboosterism\nbooster/M\nboost/SGZMRD\nboot/AGDS\nbootblack/MS\nbootee/MS\nBoote/M\nBo<42>tes\nBoothe/M\nbooth/M\nBooth/M\nbooths\nbootie's\nbootlaces\nbootlegged/M\nbootlegger/SM\nbootlegging/M\nbootleg/S\nBootle/M\nbootless\nBoot/M\nbootprints\nboot's\nbootstrapped\nbootstrapping\nbootstrap/SM\nbooty/SM\nbooze/DSRGMZ\nboozer/M\nboozy/TR\nbopped\nbopping\nbop/S\nborate/MSD\nborax/MS\nBordeaux/M\nbordello/MS\nBorden/M\nborderer/M\nborder/JRDMGS\nborderland/SM\nborderline/MS\nBordie/M\nBord/MN\nBordon/M\nBordy/M\nBorealis/M\nBoreas/M\nboredom/MS\nboreholes\nborer/M\nbore/ZGJDRS\nBorges\nBorgia/M\nBorg/M\nboric\nboring/YMP\nBoris\nBork/M\nborn/AIU\nBorneo/M\nborne/U\nBorn/M\nBorodin/M\nboron/SM\nborosilicate/M\nborough/M\nboroughs\nBorroughs/M\nborrower/M\nborrowing/M\nborrow/JZRDGBS\nborscht/SM\nborstal/MS\nBoru/M\nborzoi/MS\nBosch/M\nBose/M\nbosh/MS\nBosnia/M\nBosnian/S\nbosom's\nbosom/SGUD\nbosomy/RT\nboson/SM\nBosporus/M\nboss/DSRMG\nbossily\nbossiness/MS\nbossism/MS\nbossy/PTSR\nBostitch/M\nBostonian/SM\nBoston/MS\nbosun's\nBoswell/MS\nbotanical/SY\nbotanic/S\nbotanist/SM\nbotany/SM\nbotcher/M\nbotch/SRDGZ\nbotfly/M\nbother/DG\nbothersome\nbothy/M\nboth/ZR\nbot/S\nBotswana/M\nBotticelli/M\nbottle/GMZSRD\nbottleneck/GSDM\nbottler/M\nbottomlessness/M\nbottomless/YP\nbottommost\nbottom/SMRDG\nbotulin/M\nbotulinus/M\nbotulism/SM\nBoucher/M\nboudoir/MS\nbouffant/S\nbougainvillea/SM\nbough/MD\nboughs\nbought/N\nbouillabaisse/MS\nbouillon/MS\nboulder/GMDS\nBoulder/M\nboulevard/MS\nbouncer/M\nbounce/SRDGZ\nbouncily\nbouncing/Y\nbouncy/TRP\nboundary/MS\nbound/AUDI\nboundedness/MU\nbounded/UP\nbounden\nbounder/AM\nbounders\nbounding\nboundlessness/SM\nboundless/YP\nbounds/IA\nbounteousness/MS\nbounteous/PY\nbountifulness/SM\nbountiful/PY\nbounty/SDM\nbouquet/SM\nBourbaki/M\nbourbon/SM\nBourbon/SM\nbourgeoisie/SM\nbourgeois/M\nBourke/M\nBourne/M\nBournemouth/M\nboutique/MS\nbout/MS\nboutonni<6E>re/MS\nBouvier\nBovary/M\nbovine/YS\nBowditch/M\nbowdlerization/MS\nbowdlerize/GRSD\nbowed/U\nbowel/GMDS\nBowell/M\nBowen/M\nbower/DMG\nBowers\nBowery/M\nBowes\nbowie\nBowie/M\nbowing/M\nbowlder's\nbowlegged\nbowleg/SM\nbowler/M\nbowlful/S\nbowl/GZSMDR\nbowline/MS\nbowling/M\nbowman/M\nBowman/M\nbowmen\nbowser/M\nbowsprit/SM\nbows/R\nbowstring/GSMD\nbow/SZGNDR\nbowwow/DMGS\nboxcar/SM\nbox/DRSJZGM\nboxer/M\nboxful/M\nboxing/M\nboxlike\nboxtops\nboxwood/SM\nboxy/TPR\nBoyce/M\nBoycey/M\nBoycie/M\nboycotter/M\nboycott/RDGS\nBoyd/M\nBoyer/M\nboyfriend/MS\nboyhood/SM\nboyishness/MS\nboyish/PY\nBoyle/M\nBoy/MR\nboy/MRS\nboyscout\nboysenberry/SM\nbozo/SM\nbpi\nbps\nBR\nbrace/DSRJGM\nbraced/U\nbracelet/MS\nbracer/M\nbrachia\nbrachium/M\nbracken/SM\nbracketed/U\nbracketing/M\nbracket/SGMD\nbrackishness/SM\nbrackish/P\nbract/SM\nBradan/M\nbradawl/M\nBradbury/M\nBradburys\nbradded\nbradding\nBraddock/M\nBrade/M\nBraden/M\nBradford/M\nBradley/M\nBradly/M\nBrad/MYN\nBradney/M\nBradshaw/M\nbrad/SM\nBradstreet/M\nBrady/M\nbrae/SM\nbraggadocio/SM\nbraggart/SM\nbragged\nbragger/MS\nbraggest\nbragging\nBragg/M\nbrag/S\nBrahe/M\nBrahma/MS\nBrahmanism/MS\nBrahman/SM\nBrahmaputra/M\nBrahmin's\nBrahms\nbraider/M\nbraiding/M\nbraid/RDSJG\nbraille/DSG\nBraille/GDSM\nBrainard/SM\nbraincell/S\nbrainchild/M\nbrainchildren\nbrain/GSDM\nbraininess/MS\nbrainlessness/M\nbrainless/YP\nBrain/M\nbrainpower/M\nbrainstorm/DRMGJS\nbrainstorming/M\nbrainteaser/S\nbrainteasing\nbrainwasher/M\nbrainwashing/M\nbrainwash/JGRSD\nbrainwave/S\nbrainy/RPT\nbraise/SDG\nbrake/DSGM\nbrakeman/M\nbrakemen/M\nbramble/DSGM\nbrambling/M\nbrambly/RT\nBram/M\nBrampton/M\nbra/MS\nBrana/M\nbranched/U\nbranching/M\nbranchlike\nBranch/M\nbranch/MDSJG\nBranchville/M\nBrandais/M\nBrandea/M\nbranded/U\nBrandeis/M\nBrandel/M\nBrande/M\nBrandenburg/M\nBranden/M\nbrander/GDM\nBrander/M\nBrandice/M\nBrandie/M\nBrandi/M\nBrandise/M\nbrandish/GSD\nBrand/MRN\nBrando/M\nBrandon/M\nbrand/SMRDGZ\nBrandt/M\nBrandtr/M\nbrandy/GDSM\nBrandy/M\nBrandyn/M\nbrandywine\nBraniff/M\nBran/M\nbranned\nbranning\nBrannon/M\nbran/SM\nBrantley/M\nBrant/M\nBraque/M\nbrashness/MS\nbrash/PYSRT\nBrasilia\nbrasserie/SM\nbrass/GSDM\nbrassiere/MS\nbrassily\nbrassiness/SM\nbrassy/RSPT\nBratislava/M\nbrat/SM\nBrattain/M\nbratty/RT\nbratwurst/MS\nBraun/M\nbravadoes\nbravado/M\nbrave/DSRGYTP\nbraveness/MS\nbravery/MS\nbravest/M\nbravo/SDG\nbravura/SM\nbrawler/M\nbrawl/MRDSGZ\nbrawniness/SM\nbrawn/MS\nbrawny/TRP\nbrayer/M\nBray/M\nbray/SDRG\nbraze/GZDSR\nbrazenness/MS\nbrazen/PYDSG\nbrazer/M\nbrazier/SM\nBrazilian/MS\nBrazil/M\nBrazos/M\nBrazzaville/M\nbreacher/M\nbreach/MDRSGZ\nbreadbasket/SM\nbreadboard/SMDG\nbreadbox/S\nbreadcrumb/S\nbreadfruit/MS\nbreadline/MS\nbread/SMDHG\nbreadth/M\nbreadths\nbreadwinner/MS\nbreakables\nbreakable/U\nbreakage/MS\nbreakaway/MS\nbreakdown/MS\nbreaker/M\nbreakfaster/M\nbreakfast/RDMGZS\nbreakfront/S\nbreaking/M\nbreakneck\nbreakout/MS\nbreakpoint/SMDG\nbreak/SZRBG\nbreakthroughs\nbreakthrough/SM\nbreakup/SM\nbreakwater/SM\nbream/SDG\nBreanne/M\nBrear/M\nbreastbone/MS\nbreastfed\nbreastfeed/G\nbreasting/M\nbreast/MDSG\nbreastplate/SM\nbreaststroke/SM\nbreastwork/MS\nbreathable/U\nbreathalyser/S\nBreathalyzer/SM\nbreathe\nbreather/M\nbreathing/M\nbreathlessness/SM\nbreathless/PY\nbreaths\nbreathtaking/Y\nbreathy/TR\nbreath/ZBJMDRSG\nBrecht/M\nBreckenridge/M\nbred/DG\nbredes\nbreeching/M\nbreech/MDSG\nbreeder/I\nbreeder's\nbreeding/IM\nbreeds/I\nbreed/SZJRG\nBree/M\nBreena/M\nbreeze/GMSD\nbreezeway/SM\nbreezily\nbreeziness/SM\nbreezy/RPT\nBremen/M\nbremsstrahlung/M\nBrena/M\nBrenda/M\nBrendan/M\nBrenden/M\nBrendin/M\nBrendis/M\nBrendon/M\nBren/M\nBrenna/M\nBrennan/M\nBrennen/M\nBrenner/M\nBrenn/RNM\nBrent/M\nBrenton/M\nBresenham/M\nBrest/M\nbrethren\nBret/M\nBreton\nBrett/M\nbreve/SM\nbrevet/MS\nbrevetted\nbrevetting\nbreviary/SM\nbrevity/MS\nbrew/DRGZS\nbrewer/M\nBrewer/M\nbrewery/MS\nbrewing/M\nbrewpub/S\nBrew/RM\nBrewster/M\nBrezhnev/M\nBria/M\nBriana/M\nBrian/M\nBrianna/M\nBrianne/M\nBriano/M\nBriant/M\nbriar's\nbribe/GZDSR\nbriber/M\nbribery/MS\nBrice/M\nbrickbat/SM\nbrick/GRDSM\nbricklayer/MS\nbricklaying/SM\nbrickmason/S\nbrickwork/SM\nbrickyard/M\nbridal/S\nBridalveil/M\nbridegroom/MS\nBride/M\nbride/MS\nbridesmaid/MS\nBridewell/M\nbridgeable/U\nbridged/U\nbridgehead/MS\nBridgeport/M\nBridger/M\nBridges\nbridge/SDGM\nBridget/M\nBridgetown/M\nBridgette/M\nBridgett/M\nBridgewater/M\nbridgework/MS\nbridging/M\nBridgman/M\nBridie/M\nbridled/U\nbridle/SDGM\nbridleway/S\nbriefcase/SM\nbriefed/C\nbriefing/M\nbriefness/MS\nbriefs/C\nbrief/YRDJPGTS\nBrien/M\nBrier/M\nbrier/MS\nBrie/RSM\nBrietta/M\nbrigade/GDSM\nbrigadier/MS\nBrigadoon\nbrigandage/MS\nbrigand/MS\nbrigantine/MS\nBrigg/MS\nBrigham/M\nbrightener/M\nbrighten/RDZG\nbright/GXTPSYNR\nBright/M\nbrightness/SM\nBrighton/M\nBrigida/M\nBrigid/M\nBrigit/M\nBrigitta/M\nBrigitte/M\nBrig/M\nbrig/SM\nbrilliance/MS\nbrilliancy/MS\nbrilliantine/MS\nbrilliantness/M\nbrilliant/PSY\nBrillo\nBrillouin/M\nbrimful\nbrimless\nbrimmed\nbrimming\nbrim/SM\nbrimstone/MS\nBrina/M\nBrindisi/M\nbrindle/DSM\nbrine/GMDSR\nbriner/M\nBriney/M\nbringer/M\nbring/RGZS\nbrininess/MS\nBrinkley/M\nbrinkmanship/SM\nbrink/MS\nBrinna/M\nBrinn/M\nBriny/M\nbriny/PTSR\nbrioche/SM\nBrion/M\nbriquet's\nbriquette/MGSD\nBrisbane/M\nbrisket/SM\nbriskness/MS\nbrisk/YRDPGTS\nbristle/DSGM\nbristly/TR\nBristol/M\nbristol/S\nBritain/M\nBrita/M\nBritannia/M\nBritannic\nBritannica/M\nbritches\nBriticism/MS\nBritisher/M\nBritishly/M\nBritish/RYZ\nBrit/MS\nBritney/M\nBritni/M\nBriton/MS\nBritta/M\nBrittaney/M\nBrittani/M\nBrittan/M\nBrittany/MS\nBritte/M\nBritten/M\nBritteny/M\nbrittleness/MS\nbrittle/YTPDRSG\nBritt/MN\nBrittne/M\nBrittney/M\nBrittni/M\nBrnaba/M\nBrnaby/M\nBrno/M\nbroach/DRSG\nbroacher/M\nbroadband\nbroadcaster/M\nbroadcast/RSGZJ\nbroadcasts/A\nbroadcloth/M\nbroadcloths\nbroaden/JGRDZ\nbroadleaved\nbroadloom/SM\nbroadminded/P\nbroadness/S\nbroadsheet/MS\nbroadside/SDGM\nbroadsword/MS\nbroad/TXSYRNP\nBroadway/SM\nBrobdingnagian\nBrobdingnag/M\nbrocade/DSGM\nbroccoli/MS\nbrochette/SM\nbrochure/SM\nBrockie/M\nBrock/M\nBrocky/M\nBroddie/M\nBroddy/M\nBroderick/M\nBroderic/M\nBrodie/M\nBrod/M\nBrody/M\nbrogan/MS\nBroglie/M\nbrogue/MS\nbroiler/M\nbroil/RDSGZ\nbrokenhearted/Y\nbrokenness/MS\nbroken/YP\nbrokerage/MS\nbroker/DMG\nbroke/RGZ\nBrok/M\nbromide/MS\nbromidic\nbromine/MS\nbronchial\nbronchi/M\nbronchiolar\nbronchiole/MS\nbronchiolitis\nbronchitic/S\nbronchitis/MS\nbroncho's\nbronchus/M\nbroncobuster/SM\nbronco/SM\nbronc/S\nBron/M\nBronnie/M\nBronny/M\nBronson/M\nBronte\nbrontosaur/SM\nbrontosaurus/SM\nBronx/M\nbronzed/M\nbronze/SRDGM\nbronzing/M\nbrooch/MS\nbrooder/M\nbroodiness/M\nbrooding/Y\nbroodmare/SM\nbrood/SMRDGZ\nbroody/PTR\nBrookdale/M\nBrooke/M\nBrookfield/M\nBrookhaven/M\nbrooklet/MS\nBrooklyn/M\nBrookmont/M\nbrook/SGDM\nbrookside\nBrook/SM\nbroom/SMDG\nbroomstick/MS\nBros\nBrose/M\nbro/SH\nbros/S\nbrothel/MS\nbrother/DYMG\nbrotherhood/SM\nbrotherliness/MS\nbrotherly/P\nbroths\nbroth/ZMR\nbrougham/MS\nbrought\nbrouhaha/MS\nbrowbeat/NSG\nbrow/MS\nBrownell/M\nBrowne/M\nBrownian/M\nBrownie/MS\nbrownie/MTRS\nbrowning/M\nBrowning/M\nbrownish\nBrown/MG\nbrownness/MS\nbrownout/MS\nbrownstone/MS\nBrownsville/M\nbrown/YRDMSJGTP\nbrowse\nbrowser/M\nbrows/SRDGZ\nbrr\nBr/TMN\nBrubeck/M\nbrucellosis/M\nBruce/M\nBrucie/M\nBruckner/M\nBruegel/M\nBrueghel's\nbruin/MS\nbruised/U\nbruise/JGSRDZ\nbruiser/M\nBruis/M\nbruit/DSG\nBrumidi/M\nBrummel/M\nbrunch/MDSG\nBrunei/M\nBrunelleschi/M\nbrunet/S\nbrunette/SM\nBrunhilda/M\nBrunhilde/M\nBruno/M\nBrunswick/M\nbrunt/GSMD\nbrusher/M\nbrushfire/MS\nbrushlike\nbrush/MSRDG\nbrushoff/S\nbrushwood/SM\nbrushwork/MS\nbrushy/R\nbrusqueness/MS\nbrusque/PYTR\nBrussels\nbrutality/SM\nbrutalization/SM\nbrutalized/U\nbrutalizes/AU\nbrutalize/SDG\nbrutal/Y\nbrute/DSRGM\nbrutishness/SM\nbrutish/YP\nBrutus/M\nBruxelles/M\nBryana/M\nBryan/M\nBryant/M\nBryanty/M\nBryce/M\nBryna/M\nBryn/M\nBrynna/M\nBrynne/M\nBrynner/M\nBrynn/RM\nBryon/M\nBrzezinski/M\nB's\nBS\nBSA\nBSD\nBtu\nBTU\nBTW\nbu\nbubblegum/S\nbubbler/M\nbubble/RSDGM\nbubbly/TRS\nBuber/M\nbub/MS\nbuboes\nbubo/M\nbubonic\nbuccaneer/GMDS\nBuchanan/M\nBucharest/M\nBuchenwald/M\nBuchwald/M\nbuckaroo/SM\nbuckboard/SM\nbucker/M\nbucketful/MS\nbucket/SGMD\nbuckeye/SM\nbuck/GSDRM\nbuckhorn/M\nBuckie/M\nBuckingham/M\nbuckled/U\nbuckler/MDG\nbuckle/RSDGMZ\nbuckles/U\nBuckley/M\nbuckling's\nbuckling/U\nBuck/M\nBuckner/M\nbuckram/GSDM\nbucksaw/SM\nbuckshot/MS\nbuckskin/SM\nbuckteeth\nbucktooth/DM\nbuckwheat/SM\nBucky/M\nbucolically\nbucolic/S\nBudapest/M\nbudded\nBuddha/MS\nBuddhism/SM\nBuddhist/SM\nBuddie/M\nbudding/S\nBudd/M\nbuddy/GSDM\nBuddy/M\nbudge/GDS\nbudgerigar/MS\nbudgetary\nbudgeter/M\nbudget/GMRDZS\nbudgie/MS\nbudging/U\nBud/M\nbud/MS\nBudweiser/MS\nBuehring/M\nBuena/M\nbuffaloes\nBuffalo/M\nbuffalo/MDG\nbuff/ASGD\nbuffered/U\nbufferer/M\nbuffer/RDMSGZ\nbuffet/GMDJS\nbufflehead/M\nbuffoonery/MS\nbuffoonish\nbuffoon/SM\nbuff's\nBuffy/M\nBuford/M\nbugaboo/SM\nBugatti/M\nbugbear/SM\nbug/CS\nbugeyed\nbugged/C\nbuggered\nbuggering\nbugger/SCM!\nbuggery/M\nbugging/C\nbuggy/RSMT\nbugle/GMDSRZ\nbugler/M\nbug's\nBuick/M\nbuilder/SM\nbuilding/SM\nbuild/SAG\nbuildup/MS\nbuilt/AUI\nBuiron/M\nBujumbura/M\nBukhara/M\nBukharin/M\nBulawayo/M\nBulba/M\nbulb/DMGS\nbulblet\nbulbous\nBulfinch/M\nBulganin/M\nBulgaria/M\nBulgarian/S\nbulge/DSGM\nbulgy/RT\nbulimarexia/S\nbulimia/MS\nbulimic/S\nbulk/GDRMS\nbulkhead/SDM\nbulkiness/SM\nbulky/RPT\nbulldogged\nbulldogger\nbulldogging\nbulldog/SM\nbulldoze/GRSDZ\nbulldozer/M\nbullet/GMDS\nbulletin/SGMD\nbulletproof/SGD\nbullfighter/M\nbullfighting/M\nbullfight/SJGZMR\nbullfinch/MS\nbullfrog/SM\nbullhead/DMS\nbullheadedness/SM\nbullheaded/YP\nbullhide\nbullhorn/SM\nbullied/M\nbullion/SM\nbullishness/SM\nbullish/PY\nbull/MDGS\nBullock/M\nbullock/MS\nbullpen/MS\nbullring/SM\nbullseye\nbullshit/MS!\nbullshitted/!\nbullshitter/S!\nbullshitting/!\nbullwhackers\nBullwinkle/M\nbullyboy/MS\nbullying/M\nbully/TRSDGM\nbulrush/SM\nBultmann/M\nbulwark/GMDS\nbumblebee/MS\nbumble/JGZRSD\nbumbler/M\nbumbling/Y\nBumbry/M\nbummed/M\nbummer/MS\nbummest\nbumming/M\nbumper/DMG\nbump/GZDRS\nbumpiness/MS\nbumpkin/MS\nBumppo/M\nbumptiousness/SM\nbumptious/PY\nbumpy/PRT\nbum/SM\nBunche/M\nbunch/MSDG\nbunchy/RT\nbuncombe's\nbunco's\nBundestag/M\nbundled/U\nbundle/GMRSD\nbundler/M\nBundy/M\nbungalow/MS\nbungee/SM\nbung/GDMS\nbunghole/MS\nbungle/GZRSD\nbungler/M\nbungling/Y\nBunin/M\nbunion/SM\nbunk/CSGDR\nBunker/M\nbunker's/C\nbunker/SDMG\nbunkhouse/SM\nbunkmate/MS\nbunko's\nbunk's\nbunkum/SM\nBunnie/M\nBunni/M\nBunny/M\nbunny/SM\nBunsen/SM\nbun/SM\nbunt/GJZDRS\nbunting/M\nBu<42>uel/M\nBunyan/M\nbuoyancy/MS\nbuoyant/Y\nbuoy/SMDG\nBurbank/M\nburbler/M\nburble/RSDG\nburbs\nBurch/M\nburden's\nburdensomeness/M\nburdensome/PY\nburden/UGDS\nburdock/SM\nbureaucracy/MS\nbureaucratically\nbureaucratic/U\nbureaucratization/MS\nbureaucratize/SDG\nbureaucrat/MS\nbureau/MS\nburgeon/GDS\nburger/M\nBurger/M\nBurgess/M\nburgess/MS\nburgher/M\nburgh/MRZ\nburghs\nburglarize/GDS\nburglarproof/DGS\nburglar/SM\nburglary/MS\nburgle/SDG\nburgomaster/SM\nBurgoyne/M\nBurg/RM\nburg/SZRM\nBurgundian/S\nBurgundy/MS\nburgundy/S\nburial/ASM\nburied/U\nburier/M\nBurke/M\nBurk/SM\nburlap/MS\nburler/M\nburlesquer/M\nburlesque/SRDMYG\nburley/M\nBurlie/M\nburliness/SM\nBurlingame/M\nBurlington/M\nBurl/M\nburl/SMDRG\nburly/PRT\nBurma/M\nBurmese\nbur/MYS\nburnable/S\nBurnaby/M\nBurnard/M\nburned/U\nBurne/MS\nburner/M\nBurnett/M\nburn/GZSDRBJ\nburning/Y\nburnisher/M\nburnish/GDRSZ\nburnoose/MS\nburnout/MS\nBurns\nBurnside/MS\nburnt/YP\nburp/SGMD\nburr/GSDRM\nBurris/M\nburrito/S\nBurr/M\nburro/SM\nBurroughs/M\nburrower/M\nburrow/GRDMZS\nbursae\nbursa/M\nBursa/M\nbursar/MS\nbursary/MS\nbursitis/MS\nburster/M\nburst/SRG\nBurtie/M\nBurt/M\nBurton/M\nBurty/M\nBurundian/S\nBurundi/M\nbury/ASDG\nbusboy/MS\nbusby/SM\nBusch/M\nbuses/A\nbusgirl/S\nbus/GMDSJ\nbushel/MDJSG\nBushido/M\nbushiness/MS\nbushing/M\nbush/JMDSRG\nbushland\nBush/M\nbushman/M\nbushmaster/SM\nbushmen\nBushnell/M\nbushwhacker/M\nbushwhacking/M\nbushwhack/RDGSZ\nbushy/PTR\nbusily\nbusinesslike\nbusinessman/M\nbusinessmen\nbusiness/MS\nbusinesspeople\nbusinessperson/S\nbusinesswoman/M\nbusinesswomen\nbusker/M\nbusk/GRM\nbuskin/SM\nbus's/A\nbuss/D\nbustard/MS\nbuster/M\nbustle/GSD\nbustling/Y\nbust/MSDRGZ\nbusty/RT\nbusybody/MS\nbusy/DSRPTG\nbusyness/MS\nbusywork/SM\nbut/ACS\nbutane/MS\nbutcherer/M\nbutcher/MDRYG\nbutchery/MS\nButch/M\nbutch/RSZ\nbutene/M\nButler/M\nbutler/SDMG\nbutted/A\nbutte/MS\nbutterball/MS\nbuttercup/SM\nbuttered/U\nbutterfat/MS\nButterfield/M\nbutterfingered\nbutterfingers/M\nbutterfly/MGSD\nbuttermilk/MS\nbutternut/MS\nbutter/RDMGZ\nbutterscotch/SM\nbuttery/TRS\nbutting/M\nbuttock/SGMD\nbuttoner/M\nbuttonhole/GMRSD\nbuttonholer/M\nbutton's\nbutton/SUDG\nbuttonweed\nbuttonwood/SM\nbuttress/MSDG\nbutt/SGZMDR\nbutyl/M\nbutyrate/M\nbuxomness/M\nbuxom/TPYR\nBuxtehude/M\nbuyback/S\nbuyer/M\nbuyout/S\nbuy/ZGRS\nbuzzard/MS\nbuzz/DSRMGZ\nbuzzer/M\nbuzzword/SM\nbuzzy\nbx\nbxs\nbyelaw's\nByelorussia's\nbye/MZS\nByers/M\nbygone/S\nbylaw/SM\nbyliner/M\nbyline/RSDGM\nBYOB\nbypass/GSDM\nbypath/M\nbypaths\nbyplay/S\nbyproduct/SM\nByram/M\nByran/M\nByrann/M\nByrd/M\nbyre/SM\nByrle/M\nByrne/M\nbyroad/MS\nByrom/M\nByronic\nByronism/M\nByron/M\nbystander/SM\nbyte/SM\nbyway/SM\nbyword/SM\nbyzantine\nByzantine/S\nByzantium/M\nby/ZR\nC\nca\nCA\ncabala/MS\ncaballed\ncaballero/SM\ncaballing\ncabal/SM\ncabana/MS\ncabaret/SM\ncabbage/MGSD\ncabbed\ncabbing\ncabby's\ncabdriver/SM\ncaber/M\nCabernet/M\ncabinetmaker/SM\ncabinetmaking/MS\ncabinet/MS\ncabinetry/SM\ncabinetwork/MS\ncabin/GDMS\ncablecast/SG\ncable/GMDS\ncablegram/SM\ncabochon/MS\ncaboodle/SM\ncaboose/MS\nCabot/M\nCabrera/M\nCabrini/M\ncabriolet/MS\ncab/SMR\ncabstand/MS\ncacao/SM\ncacciatore\ncache/DSRGM\ncachepot/MS\ncachet/MDGS\nCacilia/M\nCacilie/M\ncackler/M\ncackle/RSDGZ\ncackly\nCACM\ncacophonist\ncacophonous\ncacophony/SM\ncacti\ncactus/M\nCAD\ncadaverous/Y\ncadaver/SM\ncaddishness/SM\ncaddish/PY\nCaddric/M\ncaddy/GSDM\ncadence/CSM\ncadenced\ncadencing\ncadent/C\ncadenza/MS\ncadet/SM\nCadette/S\ncadge/DSRGZ\ncadger/M\nCadillac/MS\nCadiz/M\nCad/M\ncadmium/MS\ncadre/SM\ncad/SM\ncaducei\ncaduceus/M\nCaedmon/M\nCaesar/MS\ncaesura/SM\ncaf<61>/MS\ncafeteria/SM\ncaffeine/SM\ncaftan/SM\ncaged/U\nCage/M\ncage/MZGDRS\ncager/M\ncagey/P\ncagier\ncagiest\ncagily\ncaginess/MS\nCagney/M\nCahokia/M\ncahoot/MS\nCahra/M\nCAI\nCaiaphas/M\ncaiman's\nCaine/M\nCain/MS\nCairistiona/M\ncairn/SDM\nCairo/M\ncaisson/SM\ncaitiff/MS\nCaitlin/M\nCaitrin/M\ncajole/LGZRSD\ncajolement/MS\ncajoler/M\ncajolery/SM\nCajun/MS\ncake/MGDS\ncakewalk/SMDG\ncalabash/SM\ncalaboose/MS\nCalais/M\ncalamari/S\ncalamine/GSDM\ncalamitousness/M\ncalamitous/YP\ncalamity/MS\ncal/C\ncalcareousness/M\ncalcareous/PY\ncalciferous\ncalcification/M\ncalcify/XGNSD\ncalcimine/GMSD\ncalcine/SDG\ncalcite/SM\ncalcium/SM\nCalcomp/M\nCalComp/M\nCALCOMP/M\ncalculability/IM\ncalculable/IP\ncalculate/AXNGDS\ncalculated/PY\ncalculatingly\ncalculating/U\ncalculation/AM\ncalculative\ncalculator/SM\ncalculi\ncalculus/M\nCalcutta/M\ncaldera/SM\nCalder/M\nCalderon/M\ncaldron's\nCaldwell/M\nCaleb/M\nCaledonia/M\nCale/M\ncalendar/MDGS\ncalender/MDGS\ncalf/M\ncalfskin/SM\nCalgary/M\nCalhoun/M\nCaliban/M\ncaliber/SM\ncalibrated/U\ncalibrater's\ncalibrate/XNGSD\ncalibrating/A\ncalibration/M\ncalibrator/MS\ncalicoes\ncalico/M\nCalida/M\nCalif/M\nCalifornia/M\nCalifornian/MS\ncalifornium/SM\ncalif's\nCaligula/M\nCali/M\ncaliper/SDMG\ncaliphate/SM\ncaliph/M\ncaliphs\ncalisthenic/S\ncalisthenics/M\nCallaghan/M\ncall/AGRDBS\nCallahan/M\ncalla/MS\nCalla/MS\nCallao/M\ncallback/S\nCallean/M\ncalled/U\ncallee/M\ncaller/MS\nCalley/M\nCallida/M\nCallie/M\ncalligrapher/M\ncalligraphic\ncalligraphist/MS\ncalligraph/RZ\ncalligraphy/MS\nCalli/M\ncalling/SM\nCalliope/M\ncalliope/SM\ncallisthenics's\nCallisto/M\ncallosity/MS\ncallousness/SM\ncallous/PGSDY\ncallowness/MS\ncallow/RTSP\ncallus/SDMG\nCally/M\ncalming/Y\ncalmness/MS\ncalm/PGTYDRS\nCal/MY\nCaloocan/M\ncaloric/S\ncalorie/SM\ncalorific\ncalorimeter/MS\ncalorimetric\ncalorimetry/M\nCaltech/M\nCalumet/M\ncalumet/MS\ncalumniate/NGSDX\ncalumniation/M\ncalumniator/SM\ncalumnious\ncalumny/MS\ncalvary/M\nCalvary/M\ncalve/GDS\nCalvert/M\ncalves/M\nCalvinism/MS\nCalvinistic\nCalvinist/MS\nCalvin/M\nCalv/M\ncalyces's\nCalypso/M\ncalypso/SM\ncalyx/MS\nCa/M\nCAM\nCamacho/M\nCamala/M\ncamaraderie/SM\ncamber/DMSG\ncambial\ncambium/SM\nCambodia/M\nCambodian/S\nCambrian/S\ncambric/MS\nCambridge/M\ncamcorder/S\nCamden/M\ncamelhair's\nCamella/M\nCamellia/M\ncamellia/MS\nCamel/M\nCamelopardalis/M\nCamelot/M\ncamel/SM\nCamembert/MS\ncameo/GSDM\ncamerae\ncameraman/M\ncameramen\ncamera/MS\ncamerawoman\ncamerawomen\nCameron/M\nCameroonian/S\nCameroon/SM\ncame/N\nCamey/M\nCamila/M\nCamile/M\nCamilla/M\nCamille/M\nCami/M\nCamino/M\ncamion/M\ncamisole/MS\nCam/M\ncammed\nCammie/M\nCammi/M\ncam/MS\nCammy/M\nCamoens/M\ncamomile's\ncamouflage/DRSGZM\ncamouflager/M\ncampaigner/M\ncampaign/ZMRDSG\ncampanile/SM\ncampanological\ncampanologist/SM\ncampanology/MS\nCampbell/M\nCampbellsport/M\ncamper/SM\ncampesinos\ncampest\ncampfire/SM\ncampground/MS\ncamphor/MS\nCampinas/M\ncamping/S\nCampos\ncamp's\ncamp/SCGD\ncampsite/MS\ncampus/GSDM\ncampy/RT\nCamry/M\ncamshaft/SM\nCamus/M\nCanaanite/SM\nCanaan/M\nCanada/M\nCanadianism/SM\nCanadian/S\nCanad/M\nCanaletto/M\ncanalization/MS\ncanalize/GSD\ncanal/SGMD\ncanap<61>/S\ncanard/MS\nCanaries\ncanary/SM\ncanasta/SM\nCanaveral/M\nCanberra/M\ncancan/SM\ncancelate/D\ncanceled/U\ncanceler/M\ncancellation/MS\ncancel/RDZGS\ncancer/MS\nCancer/MS\ncancerous/Y\nCancun/M\nCandace/M\ncandelabra/S\ncandelabrum/M\nCandice/M\ncandidacy/MS\nCandida/M\ncandidate/SM\ncandidature/S\nCandide/M\ncandidly/U\ncandidness/SM\ncandid/TRYPS\nCandie/M\nCandi/SM\ncandle/GMZRSD\ncandlelight/SMR\ncandlelit\ncandlepower/SM\ncandler/M\ncandlestick/SM\nCandlewick/M\ncandlewick/MS\ncandor/MS\nCandra/M\ncandy/GSDM\nCandy/M\ncanebrake/SM\ncaner/M\ncane/SM\ncanine/S\ncaning/M\nCanis/M\ncanister/SGMD\ncankerous\ncanker/SDMG\nCan/M\ncan/MDRSZGJ\ncannabis/MS\ncanned\ncannelloni\ncanner/SM\ncannery/MS\nCannes\ncannibalism/MS\ncannibalistic\ncannibalization/SM\ncannibalize/GSD\ncannibal/SM\ncannily/U\ncanninesses\ncanniness/UM\ncanning/M\ncannister/SM\ncannonade/SDGM\ncannonball/SGDM\nCannon/M\ncannon/SDMG\ncannot\ncanny/RPUT\ncanoe/DSGM\ncanoeist/SM\nCanoga/M\ncanonic\ncanonicalization\ncanonicalize/GSD\ncanonical/SY\ncanonist/M\ncanonization/MS\ncanonized/U\ncanonize/SDG\ncanon/SM\nCanopus/M\ncanopy/GSDM\ncanst\ncan't\ncantabile/S\nCantabrigian\ncantaloupe/MS\ncantankerousness/SM\ncantankerous/PY\ncantata/SM\ncant/CZGSRD\ncanted/IA\ncanteen/MS\nCanterbury/M\ncanter/CM\ncantered\ncantering\ncanticle/SM\ncantilever/SDMG\ncanto/MS\ncantonal\nCantonese/M\nCanton/M\ncantonment/SM\ncanton/MGSLD\nCantor/M\ncantor/MS\nCantrell/M\ncant's\ncants/A\nCantu/M\nCanute/M\ncanvasback/MS\ncanvas/RSDMG\ncanvasser/M\ncanvass/RSDZG\ncanyon/MS\nCAP\ncapability/ISM\ncapableness/IM\ncapable/PI\ncapabler\ncapablest\ncapably/I\ncapaciousness/MS\ncapacious/PY\ncapacitance/SM\ncapacitate/V\ncapacitive/Y\ncapacitor/MS\ncapacity/IMS\ncaparison/SDMG\nCapek/M\nCapella/M\ncaper/GDM\ncapeskin/SM\ncape/SM\nCapet/M\nCapetown/M\nCaph/M\ncapillarity/MS\ncapillary/S\nCapistrano/M\ncapitalism/SM\ncapitalistic\ncapitalistically\ncapitalist/SM\ncapitalization/SMA\ncapitalized/AU\ncapitalizer/M\ncapitalize/RSDGZ\ncapitalizes/A\ncapital/SMY\ncapita/M\nCapitan/M\ncapitation/CSM\nCapitoline/M\nCapitol/MS\ncapitol/SM\ncapitulate/AXNGSD\ncapitulation/MA\ncaplet/S\ncap/MDRSZB\nCapone/M\ncapon/SM\ncapo/SM\nCapote/M\ncapped/UA\ncapping/M\ncappuccino/MS\nCappy/M\nCapra/M\nCaprice/M\ncaprice/MS\ncapriciousness/MS\ncapricious/PY\nCapricorn/MS\nCapri/M\ncaps/AU\ncapsicum/MS\ncapsize/SDG\ncapstan/MS\ncapstone/MS\ncapsular\ncapsule/MGSD\ncapsulize/GSD\ncaptaincy/MS\ncaptain/SGDM\ncaption/GSDRM\ncaptiousness/SM\ncaptious/PY\ncaptivate/XGNSD\ncaptivation/M\ncaptivator/SM\ncaptive/MS\ncaptivity/SM\nCapt/M\ncaptor/SM\ncapture/AGSD\ncapturer/MS\ncapt/V\nCapulet/M\nCaputo/M\nCaracalla/M\nCaracas/M\ncaracul's\ncarafe/SM\nCaralie/M\nCara/M\ncaramelize/SDG\ncaramel/MS\ncarapace/SM\ncarapaxes\ncarat/SM\nCaravaggio/M\ncaravan/DRMGS\ncaravaner/M\ncaravansary/MS\ncaravanserai's\ncaravel/MS\ncaraway/MS\ncarbide/MS\ncarbine/MS\ncarbohydrate/MS\ncarbolic\nCarboloy/M\ncarbonaceous\ncarbonate/SDXMNG\ncarbonation/M\nCarbondale/M\nCarbone/MS\ncarbonic\ncarboniferous\nCarboniferous\ncarbonization/SAM\ncarbonizer/AS\ncarbonizer's\ncarbonizes/A\ncarbonize/ZGRSD\ncarbon/MS\ncarbonyl/M\ncarborundum\nCarborundum/MS\ncarboy/MS\ncarbuncle/SDM\ncarbuncular\ncarburetor/MS\ncarburetter/S\ncarburettor/SM\ncarcase/MS\ncarcass/SM\nCarce/M\ncarcinogenic\ncarcinogenicity/MS\ncarcinogen/SM\ncarcinoma/SM\ncardamom/MS\ncardboard/MS\ncard/EDRSG\nCardenas/M\ncarder/MS\ncarder's/E\ncardholders\ncardiac/S\nCardiff/M\ncardigan/SM\ncardinality/SM\ncardinal/SYM\ncarding/M\nCardin/M\nCardiod/M\ncardiogram/MS\ncardiograph/M\ncardiographs\ncardioid/M\ncardiologist/SM\ncardiology/MS\ncardiomegaly/M\ncardiopulmonary\ncardiovascular\ncard's\ncardsharp/ZSMR\nCARE\ncared/U\ncareen/DSG\ncareerism/M\ncareerist/MS\ncareer/SGRDM\ncarefree\ncarefuller\ncarefullest\ncarefulness/MS\ncareful/PY\ncaregiver/S\ncarelessness/MS\ncareless/YP\nCare/M\nCarena/M\nCaren/M\ncarer/M\ncare/S\nCaresa/M\nCaressa/M\nCaresse/M\ncaresser/M\ncaressing/Y\ncaressive/Y\ncaress/SRDMVG\ncaretaker/SM\ncaret/SM\ncareworn\nCarey/M\ncarfare/MS\ncargoes\ncargo/M\ncarhopped\ncarhopping\ncarhop/SM\nCaria/M\nCaribbean/S\nCarib/M\ncaribou/MS\ncaricature/GMSD\ncaricaturisation\ncaricaturist/MS\ncaricaturization\nCarie/M\ncaries/M\ncarillonned\ncarillonning\ncarillon/SM\nCaril/M\nCarilyn/M\nCari/M\nCarina/M\nCarine/M\ncaring/U\nCarin/M\nCariotta/M\ncarious\nCarissa/M\nCarita/M\nCaritta/M\ncarjack/GSJDRZ\nCarla/M\nCarlee/M\nCarleen/M\nCarlene/M\nCarlen/M\nCarletonian/M\nCarleton/M\nCarley/M\nCarlie/M\nCarlina/M\nCarline/M\nCarling/M\nCarlin/M\nCarlita/M\nCarl/MNG\ncarload/MSG\nCarlo/SM\nCarlota/M\nCarlotta/M\nCarlsbad/M\nCarlson/M\nCarlton/M\nCarlye/M\nCarlyle/M\nCarly/M\nCarlyn/M\nCarlynne/M\nCarlynn/M\nCarma/M\nCarmela/M\nCarmelia/M\nCarmelina/M\nCarmelita/M\nCarmella/M\nCarmelle/M\nCarmel/M\nCarmelo/M\nCarmencita/M\nCarmen/M\nCarmichael/M\nCarmina/M\nCarmine/M\ncarmine/MS\nCarmita/M\nCar/MNY\nCarmon/M\ncarnage/MS\ncarnality/SM\ncarnal/Y\nCarnap/M\ncarnation/IMS\nCarnegie/M\ncarnelian/SM\nCarney/M\ncarney's\ncarnival/MS\ncarnivore/SM\ncarnivorousness/MS\ncarnivorous/YP\nCarnot/M\nCarny/M\ncarny/SDG\ncarob/SM\nCarola/M\nCarolan/M\nCarolann/M\nCarolee/M\nCarole/M\ncaroler/M\nCarolina/MS\nCaroline/M\nCarolingian\nCarolinian/S\nCarolin/M\nCaroljean/M\nCarol/M\ncarol/SGZMRD\nCarolus/M\nCarolyne/M\nCarolyn/M\nCarolynn/M\nCaro/M\ncarom/GSMD\nCaron/M\ncarotene/MS\ncarotid/MS\ncarousal/MS\ncarousel/MS\ncarouser/M\ncarouse/SRDZG\ncarpal/SM\nCarpathian/MS\ncarpel/SM\ncarpenter/DSMG\ncarpentering/M\nCarpenter/M\ncarpentry/MS\ncarper/M\ncarpetbagged\ncarpetbagger/MS\ncarpetbagging\ncarpetbag/MS\ncarpeting/M\ncarpet/MDJGS\ncarpi/M\ncarping/Y\ncarp/MDRSGZ\ncarpool/DGS\ncarport/MS\ncarpus/M\ncarrageen/M\nCarree/M\ncarrel/SM\ncarriage/SM\ncarriageway/SM\nCarrie/M\ncarrier/M\nCarrier/M\nCarrillo/M\nCarri/M\ncarrion/SM\nCarrissa/M\nCarr/M\nCarroll/M\nCarrol/M\ncarrot/MS\ncarroty/RT\ncarrousel's\ncarryall/MS\nCarry/MR\ncarryout/S\ncarryover/S\ncarry/RSDZG\ncarsickness/SM\ncarsick/P\nCarson/M\ncartage/MS\ncartel/SM\ncarte/M\ncarter/M\nCarter/M\nCartesian\nCarthage/M\nCarthaginian/S\ncarthorse/MS\nCartier/M\ncartilage/MS\ncartilaginous\ncartload/MS\ncart/MDRGSZ\nCart/MR\ncartographer/MS\ncartographic\ncartography/MS\ncarton/GSDM\ncartoon/GSDM\ncartoonist/MS\ncartridge/SM\ncartwheel/MRDGS\nCartwright/M\nCarty/RM\nCaruso/M\ncarve/DSRJGZ\ncarven\ncarver/M\nCarver/M\ncarving/M\ncaryatid/MS\nCaryl/M\nCary/M\nCaryn/M\ncar/ZGSMDR\ncasaba/SM\nCasablanca/M\nCasals/M\nCasandra/M\nCasanova/SM\nCasar/M\ncasbah/M\ncascade/MSDG\nCascades/M\ncascara/MS\ncasebook/SM\ncase/DSJMGL\ncased/U\ncaseharden/SGD\ncasein/SM\ncaseload/MS\nCase/M\ncasement/SM\ncaseworker/M\ncasework/ZMRS\nCasey/M\ncashbook/SM\ncashew/MS\ncash/GZMDSR\ncashier/SDMG\ncashless\nCash/M\ncashmere/MS\nCasie/M\nCasi/M\ncasing/M\ncasino/MS\ncasket/SGMD\ncask/GSDM\nCaspar/M\nCasper/M\nCaspian\nCass\nCassandra/SM\nCassandre/M\nCassandry/M\nCassatt/M\nCassaundra/M\ncassava/MS\ncasserole/MGSD\ncassette/SM\nCassey/M\ncassia/MS\nCassie/M\nCassi/M\ncassino's\nCassiopeia/M\nCassite/M\nCassius/M\ncassock/SDM\nCassondra/M\ncassowary/SM\nCassy/M\nCastaneda/M\ncastanet/SM\ncastaway/SM\ncastellated\ncaste/MHS\ncaster/M\ncast/GZSJMDR\ncastigate/XGNSD\ncastigation/M\ncastigator/SM\nCastile's\nCastillo/M\ncasting/M\ncastle/GMSD\ncastoff/S\nCastor/M\ncastor's\ncastrate/DSNGX\ncastration/M\nCastries/M\nCastro/M\ncasts/A\ncasualness/SM\ncasual/SYP\ncasualty/SM\ncasuistic\ncasuist/MS\ncasuistry/SM\ncataclysmal\ncataclysmic\ncataclysm/MS\ncatacomb/MS\ncatafalque/SM\nCatalan/MS\ncatalepsy/MS\ncataleptic/S\nCatalina/M\ncataloger/M\ncatalog/SDRMZG\nCatalonia/M\ncatalpa/SM\ncatalysis/M\ncatalyst/SM\ncatalytic\ncatalytically\ncatalyze/DSG\ncatamaran/MS\ncatapult/MGSD\ncataract/MS\nCatarina/M\ncatarrh/M\ncatarrhs\ncatastrophe/SM\ncatastrophic\ncatastrophically\ncatatonia/MS\ncatatonic/S\nCatawba/M\ncatbird/MS\ncatboat/SM\ncatcall/SMDG\ncatchable/U\ncatchall/MS\ncatch/BRSJLGZ\ncatcher/M\ncatchment/SM\ncatchpenny/S\ncatchphrase/S\ncatchup/MS\ncatchword/MS\ncatchy/TR\ncatechism/MS\ncatechist/SM\ncatechize/SDG\ncatecholamine/MS\ncategoric\ncategorical/Y\ncategorization/MS\ncategorized/AU\ncategorize/RSDGZ\ncategory/MS\nCate/M\ncatenate/NF\ncatenation/MF\ncatercorner\ncaterer/M\ncater/GRDZ\nCaterina/M\ncatering/M\nCaterpillar\ncaterpillar/SM\ncaterwaul/DSG\ncatfish/MS\ncatgut/SM\nCatha/M\nCatharina/M\nCatharine/M\ncatharses\ncatharsis/M\ncathartic/S\nCathay/M\ncathedral/SM\nCathee/M\nCatherina/M\nCatherine/M\nCatherin/M\nCather/M\nCathe/RM\ncatheterize/GSD\ncatheter/SM\nCathie/M\nCathi/M\nCathleen/M\nCathlene/M\ncathode/MS\ncathodic\ncatholicism\nCatholicism/SM\ncatholicity/MS\ncatholic/MS\nCatholic/S\nCathrine/M\nCathrin/M\nCathryn/M\nCathyleen/M\nCathy/M\nCatie/M\nCatiline/M\nCati/M\nCatina/M\ncationic\ncation/MS\ncatkin/SM\nCatlaina/M\nCatlee/M\ncatlike\nCatlin/M\ncatnapped\ncatnapping\ncatnap/SM\ncatnip/MS\nCato/M\nCatrina/M\nCatriona/M\nCatskill/SM\ncat/SMRZ\ncatsup's\ncattail/SM\ncatted\ncattery/M\ncattily\ncattiness/SM\ncatting\ncattle/M\ncattleman/M\ncattlemen\nCatt/M\ncatty/PRST\nCatullus/M\nCATV\ncatwalk/MS\nCaty/M\nCaucasian/S\nCaucasoid/S\nCaucasus/M\nCauchy/M\ncaucus/SDMG\ncaudal/Y\ncaught/U\ncauldron/MS\ncauliflower/MS\ncaulker/M\ncaulk/JSGZRD\ncausality/SM\ncausal/YS\ncausate/XVN\ncausation/M\ncausative/SY\ncause/DSRGMZ\ncaused/U\ncauseless\ncauserie/MS\ncauser/M\ncauseway/SGDM\ncaustically\ncausticity/MS\ncaustic/YS\ncauterization/SM\ncauterized/U\ncauterize/GSD\ncautionary\ncautioner/M\ncaution/GJDRMSZ\ncautiousness's/I\ncautiousness/SM\ncautious/PIY\ncavalcade/MS\ncavalierness/M\ncavalier/SGYDP\ncavalryman/M\ncavalrymen\ncavalry/MS\ncaveat/SM\ncaveatted\ncaveatting\ncave/GFRSD\ncaveman/M\ncavemen\nCavendish/M\ncaver/M\ncavern/GSDM\ncavernous/Y\ncave's\ncaviar/MS\ncaviler/M\ncavil/SJRDGZ\ncaving/MS\ncavity/MFS\ncavort/SDG\nCavour/M\ncaw/SMDG\nCaxton/M\nCaye/M\nCayenne/M\ncayenne/SM\nCayla/M\nCayman/M\ncayman/SM\ncay's\ncay/SC\nCayuga/M\ncayuse/SM\nCaz/M\nCazzie/M\nc/B\nCB\nCBC\nCb/M\nCBS\ncc\nCchaddie/M\nCCTV\nCCU\nCD\nCDC/M\nCd/M\nCDT\nCe\ncease/DSCG\nceasefire/S\nceaselessness/SM\nceaseless/YP\nceasing/U\nCeausescu/M\nCebuano/M\nCebu/M\nceca\ncecal\nCecelia/M\nCece/M\nCecile/M\nCeciley/M\nCecilia/M\nCecilio/M\nCecilius/M\nCecilla/M\nCecil/M\nCecily/M\ncecum/M\ncedar/SM\nceded/A\ncede/FRSDG\nceder's/F\nceder/SM\ncedes/A\ncedilla/SM\nceding/A\nCed/M\nCedric/M\nceilidh/M\nceiling/MDS\nCeil/M\ncelandine/MS\nCelanese/M\nCelebes's\ncelebrant/MS\ncelebratedness/M\ncelebrated/P\ncelebrate/XSDGN\ncelebration/M\ncelebrator/MS\ncelebratory\ncelebrity/MS\nCele/M\nCelene/M\ncelerity/SM\ncelery/SM\nCelesta/M\ncelesta/SM\nCeleste/M\ncelestial/YS\nCelestia/M\nCelestina/M\nCelestine/M\nCelestyna/M\nCelestyn/M\nCelia/M\ncelibacy/MS\ncelibate/SM\nCelie/M\nCelina/M\nCelinda/M\nCeline/M\nCelinka/M\nCelisse/M\nCelka/M\ncellarer/M\ncellar/RDMGS\nCelle/M\ncell/GMDS\nCellini/M\ncellist/SM\nCello/M\ncello/MS\ncellophane/SM\ncellphone/S\ncellular/SY\ncellulite/S\ncelluloid/SM\ncellulose/SM\nCelsius/S\nCeltic/SM\nCelt/MS\ncementa\ncementer/M\ncementum/SM\ncement/ZGMRDS\ncemetery/MS\ncenobite/MS\ncenobitic\ncenotaph/M\ncenotaphs\nCenozoic\ncenser/MS\ncensored/U\ncensor/GDMS\ncensorial\ncensoriousness/MS\ncensorious/YP\ncensorship/MS\ncensure/BRSDZMG\ncensurer/M\ncensus/SDMG\ncentaur/SM\nCentaurus/M\ncentavo/SM\ncentenarian/MS\ncentenary/S\ncentennial/YS\ncenter/AC\ncenterboard/SM\ncentered\ncenterer/S\ncenterfold/S\ncentering/SM\ncenterline/SM\ncenterpiece/SM\ncenter's\nCentigrade\ncentigrade/S\ncentigram/SM\ncentiliter/MS\ncentime/SM\ncentimeter/SM\ncentipede/MS\nCentralia/M\ncentralism/M\ncentralist/M\ncentrality/MS\ncentralization/CAMS\ncentralize/CGSD\ncentralizer/SM\ncentralizes/A\ncentral/STRY\ncentrefold's\nCentrex\nCENTREX/M\ncentric/F\ncentrifugal/SY\ncentrifugate/NM\ncentrifugation/M\ncentrifuge/GMSD\ncentripetal/Y\ncentrist/MS\ncentroid/MS\ncent/SZMR\ncenturion/MS\ncentury/MS\nCEO\ncephalic/S\nCepheid\nCepheus/M\nceramicist/S\nceramic/MS\nceramist/MS\ncerate/MD\nCerberus/M\ncereal/MS\ncerebellar\ncerebellum/MS\ncerebra\ncerebral/SY\ncerebrate/XSDGN\ncerebration/M\ncerebrum/MS\ncerement/SM\nceremonial/YSP\nceremoniousness/MS\nceremoniousness's/U\nceremonious/YUP\nceremony/MS\nCerenkov/M\nCeres/M\nCerf/M\ncerise/SM\ncerium/MS\ncermet/SM\nCERN/M\ncertainer\ncertainest\ncertainty/UMS\ncertain/UY\ncert/FS\ncertifiable\ncertifiably\ncertificate/SDGM\ncertification/AMC\ncertified/U\ncertifier/M\ncertify/DRSZGNX\ncertiorari/M\ncertitude/ISM\ncerulean/MS\nCervantes/M\ncervical\ncervices/M\ncervix/M\nCesarean\ncesarean/S\nCesare/M\nCesar/M\nCesaro/M\ncesium/MS\ncessation/SM\ncession/FAMSK\nCessna/M\ncesspit/M\ncesspool/SM\nCesya/M\ncetacean/S\ncetera/S\nCetus/M\nCeylonese\nCeylon/M\nCezanne/S\ncf\nCF\nCFC\nCf/M\nCFO\ncg\nChablis/SM\nChaddie/M\nChadd/M\nChaddy/M\nChadian/S\nChad/M\nChadwick/M\nchafe/GDSR\nchafer/M\nchaffer/DRG\nchafferer/M\nChaffey/M\nchaff/GRDMS\nchaffinch/SM\nChagall/M\nchagrin/DGMS\nChaim/M\nchainlike\nchain's\nchainsaw/SGD\nchain/SGUD\nchairlady/M\nchairlift/MS\nchairman/MDGS\nchairmanship/MS\nchairmen\nchairperson/MS\nchair/SGDM\nchairwoman/M\nchairwomen\nchaise/SM\nchalcedony/MS\nChaldea/M\nChaldean/M\nchalet/SM\nchalice/DSM\nchalkboard/SM\nchalk/DSMG\nchalkiness/S\nchalkline\nchalky/RPT\nchallenged/U\nchallenger/M\nchallenge/ZGSRD\nchallenging/Y\nchallis/SM\nChalmers\nchamberer/M\nChamberlain/M\nchamberlain/MS\nchambermaid/MS\nchamberpot/S\nChambers/M\nchamber/SZGDRM\nchambray/MS\nchameleon/SM\nchamfer/DMGS\nchammy's\nchamois/DSMG\nchamomile/MS\nchampagne/MS\nchampaign/M\nchamp/DGSZ\nchampion/MDGS\nchampionship/MS\nChamplain/M\nchanced/M\nchance/GMRSD\nchancellery/SM\nchancellorship/SM\nchancellor/SM\nChancellorsville/M\nchancel/SM\nChance/M\nchancery/SM\nChancey/M\nchanciness/S\nchancing/M\nchancre/SM\nchancy/RPT\nChandal/M\nChanda/M\nchandelier/SM\nChandigarh/M\nChandler/M\nchandler/MS\nChandragupta/M\nChandra/M\nChandrasekhar/M\nChandy/M\nChanel/M\nChane/M\nChaney/M\nChangchun/M\nchangeabilities\nchangeability/UM\nchangeableness/SM\nchangeable/U\nchangeably/U\nchanged/U\nchange/GZRSD\nchangeless\nchangeling/M\nchangeover/SM\nchanger/M\nchanging/U\nChang/M\nChangsha/M\nChan/M\nChanna/M\nchanneler/M\nchanneling/M\nchannelization/SM\nchannelize/GDS\nchannellings\nchannel/MDRZSG\nChanning/M\nchanson/SM\nChantalle/M\nChantal/M\nchanter/M\nchanteuse/MS\nchantey/SM\nchanticleer/SM\nChantilly/M\nchantry/MS\nchant/SJGZMRD\nchanty's\nChanukah's\nChao/M\nchaos/SM\nchaotic\nchaotically\nchaparral/MS\nchapbook/SM\nchapeau/MS\nchapel/MS\nchaperonage/MS\nchaperoned/U\nchaperone's\nchaperon/GMDS\nchaplaincy/MS\nchaplain/MS\nchaplet/SM\nChaplin/M\nChapman/M\nchap/MS\nChappaquiddick/M\nchapped\nchapping\nchapter/SGDM\nChara\ncharabanc/MS\ncharacterful\ncharacteristically/U\ncharacteristic/SM\ncharacterizable/MS\ncharacterization/MS\ncharacterize/DRSBZG\ncharacterized/U\ncharacterizer/M\ncharacterless\ncharacter/MDSG\ncharade/SM\ncharbroil/SDG\ncharcoal/MGSD\nChardonnay\nchardonnay/S\nchard/SM\nchargeableness/M\nchargeable/P\ncharged/U\ncharge/EGRSDA\ncharger/AME\nchargers\nchar/GS\nCharil/M\ncharily\nchariness/MS\nCharin/M\ncharioteer/GSDM\nChariot/M\nchariot/SMDG\nCharis\ncharisma/M\ncharismata\ncharismatically\ncharismatic/S\nCharissa/M\nCharisse/M\ncharitablenesses\ncharitableness/UM\ncharitable/UP\ncharitably/U\nCharita/M\nCharity/M\ncharity/MS\ncharlady/M\nCharla/M\ncharlatanism/MS\ncharlatanry/SM\ncharlatan/SM\nCharlean/M\nCharleen/M\nCharlemagne/M\nCharlena/M\nCharlene/M\nCharles/M\nCharleston/SM\nCharley/M\nCharlie/M\nCharline/M\nCharlot/M\nCharlotta/M\nCharlotte/M\nCharlottesville/M\nCharlottetown/M\nCharlton/M\nCharmaine/M\nCharmain/M\nCharmane/M\ncharmer/M\nCharmian/M\nCharmine/M\ncharming/RYT\nCharmin/M\nCharmion/M\ncharmless\ncharm/SGMZRD\nCharolais\nCharo/M\nCharon/M\ncharred\ncharring\ncharted/U\ncharter/AGDS\nchartered/U\ncharterer/SM\ncharter's\nchartist/SM\nChartres/M\nchartreuse/MS\nchartroom/S\nchart/SJMRDGBZ\ncharwoman/M\ncharwomen\nCharybdis/M\nCharyl/M\nchary/PTR\nChas\nchase/DSRGZ\nChase/M\nchaser/M\nchasing/M\nChasity/M\nchasm/SM\nchassis/M\nchastely\nchasteness/SM\nchasten/GSD\nchaste/UTR\nchastisement/SM\nchastiser/M\nchastise/ZGLDRS\nChastity/M\nchastity/SM\nchastity's/U\nchasuble/SM\nChateaubriand\nch<63>teau/M\nchateaus\nch<63>teaux\nch<63>telaine/SM\nchat/MS\nChattahoochee/M\nChattanooga/M\nchatted\nchattel/MS\nchatterbox/MS\nchatterer/M\nChatterley/M\nchatter/SZGDRY\nChatterton/M\nchattily\nchattiness/SM\nchatting\nchatty/RTP\nChaucer/M\nchauffeur/GSMD\nChaunce/M\nChauncey/M\nChautauqua/M\nchauvinism/MS\nchauvinistic\nchauvinistically\nchauvinist/MS\nChavez/M\nchaw\nChayefsky/M\ncheapen/DG\ncheapish\ncheapness/MS\ncheapskate/MS\ncheap/YRNTXSP\ncheater/M\ncheat/RDSGZ\nChechen/M\nChechnya/M\ncheckable/U\ncheckbook/MS\nchecked/UA\ncheckerboard/MS\nchecker/DMG\ncheck/GZBSRDM\nchecklist/S\ncheckmate/MSDG\ncheckoff/SM\ncheckout/S\ncheckpoint/MS\ncheckroom/MS\ncheck's/A\nchecks/A\nchecksummed\nchecksumming\nchecksum/SM\ncheckup/MS\nCheddar/MS\ncheddar/S\ncheekbone/SM\ncheek/DMGS\ncheekily\ncheekiness/SM\ncheeky/PRT\ncheep/GMDS\ncheerer/M\ncheerfuller\ncheerfullest\ncheerfulness/MS\ncheerful/YP\ncheerily\ncheeriness/SM\ncheerio/S\nCheerios/M\ncheerleader/SM\ncheerlessness/SM\ncheerless/PY\ncheers/S\ncheery/PTR\ncheer/YRDGZS\ncheeseburger/SM\ncheesecake/SM\ncheesecloth/M\ncheesecloths\ncheeseparing/S\ncheese/SDGM\ncheesiness/SM\ncheesy/PRT\ncheetah/M\ncheetahs\nCheeto/M\nCheever/M\ncheffed\ncheffing\nchef/SM\nChekhov/M\nchelate/XDMNG\nchelation/M\nChelsae/M\nChelsea/M\nChelsey/M\nChelsie/M\nChelsy/M\nChelyabinsk/M\nchem\nChe/M\nchemic\nchemical/SYM\nchemiluminescence/M\nchemiluminescent\nchemise/SM\nchemistry/SM\nchemist/SM\nchemotherapeutic/S\nchemotherapy/SM\nchemurgy/SM\nChengdu\nCheng/M\nchenille/SM\nChen/M\nCheops/M\nChere/M\nCherey/M\nCherianne/M\nCherice/M\nCherida/M\nCherie/M\nCherilyn/M\nCherilynn/M\nCheri/M\nCherin/M\nCherise/M\ncherisher/M\ncherish/GDRS\nCherish/M\nCheriton/M\nCherlyn/M\nCher/M\nChernenko/M\nChernobyl/M\nCherokee/MS\ncheroot/MS\nCherri/M\nCherrita/M\nCherry/M\ncherry/SM\nchert/MS\ncherubic\ncherubim/S\ncherub/SM\nchervil/MS\nCherye/M\nCheryl/M\nChery/M\nChesapeake/M\nCheshire/M\nCheslie/M\nchessboard/SM\nchessman/M\nchessmen\nchess/SM\nChesterfield/M\nchesterfield/MS\nChester/M\nChesterton/M\nchestful/S\nchest/MRDS\nchestnut/SM\nCheston/M\nchesty/TR\nChet/M\nChevalier/M\nchevalier/SM\nCheviot/M\ncheviot/S\nChev/M\nChevrolet/M\nchevron/DMS\nChevy/M\nchewer/M\nchew/GZSDR\nchewiness/S\nchewy/RTP\nCheyenne/SM\nchg\nchge\nChiang/M\nchianti/M\nChianti/S\nchiaroscuro/SM\nChiarra/M\nChiba/M\nChicagoan/SM\nChicago/M\nChicana/MS\nchicane/MGDS\nchicanery/MS\nChicano/MS\nchichi/RTS\nchickadee/SM\nChickasaw/SM\nchickenfeed\nchicken/GDM\nchickenhearted\nchickenpox/MS\nChickie/M\nChick/M\nchickpea/MS\nchickweed/MS\nchick/XSNM\nChicky/M\nchicle/MS\nChic/M\nchicness/S\nChico/M\nchicory/MS\nchic/SYRPT\nchide/GDS\nchiding/Y\nchiefdom/MS\nchieftain/SM\nchief/YRMST\nchiffonier/MS\nchiffon/MS\nchigger/MS\nchignon/MS\nChihuahua/MS\nchihuahua/S\nchilblain/MS\nchildbearing/MS\nchildbirth/M\nchildbirths\nchildcare/S\nchildes\nchild/GMYD\nchildhood/MS\nchildishness/SM\nchildish/YP\nchildlessness/SM\nchildless/P\nchildlikeness/M\nchildlike/P\nchildminders\nchildproof/GSD\nchildrearing\nchildren/M\nChilean/S\nChile/MS\nchile's\nchilies\nchili/M\nchiller/M\nchilliness/MS\nchilling/Y\nchilli's\nchill/MRDJGTZPS\nchillness/MS\nchilly/TPRS\nChilton/M\nChi/M\nchimaera's\nchimaerical\nChimborazo/M\nchime/DSRGMZ\nChimera/S\nchimera/SM\nchimeric\nchimerical\nchimer/M\nChimiques\nchimney/SMD\nchimpanzee/SM\nchimp/MS\nchi/MS\nChimu/M\nCh'in\nChina/M\nChinaman/M\nChinamen\nchina/MS\nChinatown/SM\nchinchilla/SM\nchine/MS\nChinese/M\nChing/M\nchink/DMSG\nchinless\nChin/M\nchinned\nchinner/S\nchinning\nchino/MS\nChinook/MS\nchin/SGDM\nchinstrap/S\nchintz/SM\nchintzy/TR\nchipboard/M\nChipewyan/M\nChip/M\nchipmunk/SM\nchipped\nChippendale/M\nchipper/DGS\nChippewa/MS\nchipping/MS\nchip/SM\nChiquia/M\nChiquita/M\nchiral\nChirico/M\nchirography/SM\nchiropodist/SM\nchiropody/MS\nchiropractic/MS\nchiropractor/SM\nchirp/GDS\nchirpy/RT\nchirrup/DGS\nchiseler/M\nchisel/ZGSJMDR\nChisholm/M\nChisinau/M\nchitchat/SM\nchitchatted\nchitchatting\nchitinous\nchitin/SM\nchit/SM\nChittagong/M\nchitterlings\nchivalric\nchivalrously/U\nchivalrousness/MS\nchivalrous/YP\nchivalry/SM\nchive/GMDS\nchivvy/D\nchivying\nchlamydiae\nchlamydia/S\nChloe/M\nChloette/M\nChlo/M\nchloral/MS\nchlorate/M\nchlordane/MS\nchloride/MS\nchlorinated/C\nchlorinates/C\nchlorinate/XDSGN\nchlorination/M\nchlorine/MS\nChloris\nchlorofluorocarbon/S\nchloroform/DMSG\nchlorophyll/SM\nchloroplast/MS\nchloroquine/M\nchm\nCh/MGNRS\nchockablock\nchock/SGRDM\nchocoholic/S\nchocolate/MS\nchocolaty\nChoctaw/MS\nchoiceness/M\nchoice/RSMTYP\nchoirboy/MS\nchoirmaster/SM\nchoir/SDMG\nchokeberry/M\nchokecherry/SM\nchoke/DSRGZ\nchoker/M\nchokes/M\nchoking/Y\ncholera/SM\ncholeric\ncholer/SM\ncholesterol/SM\ncholine/M\ncholinesterase/M\nchomp/DSG\nChomsky/M\nChongqing\nchoose/GZRS\nchooser/M\nchoosiness/S\nchoosy/RPT\nchophouse/SM\nChopin/M\nchopped\nchopper/SDMG\nchoppily\nchoppiness/MS\nchopping\nchoppy/RPT\nchop/S\nchopstick/SM\nchorale/MS\nchoral/SY\nchordal\nchordata\nchordate/MS\nchording/M\nchord/SGMD\nchorea/MS\nchore/DSGNM\nchoreographer/M\nchoreographic\nchoreographically\nchoreographs\nchoreography/MS\nchoreograph/ZGDR\nchorines\nchorion/M\nchorister/SM\nchoroid/S\nchortler/M\nchortle/ZGDRS\nchorus/GDSM\nchosen/U\nchose/S\nChou/M\nchowder/SGDM\nchow/DGMS\nChretien/M\nChris/M\nchrism/SM\nchrissake\nChrisse/M\nChrissie/M\nChrissy/M\nChristabella/M\nChristabel/M\nChristalle/M\nChristal/M\nChrista/M\nChristan/M\nChristchurch/M\nChristean/M\nChristel/M\nChristendom/MS\nchristened/U\nchristening/SM\nChristen/M\nchristen/SAGD\nChristensen/M\nChristenson/M\nChristiana/M\nChristiane/M\nChristianity/SM\nChristianize/GSD\nChristian/MS\nChristiano/M\nChristiansen/M\nChristians/N\nChristie/SM\nChristi/M\nChristina/M\nChristine/M\nChristin/M\nChristlike\nChristmas/SM\nChristmastide/SM\nChristmastime/S\nChristoffel/M\nChristoffer/M\nChristoforo/M\nChristoper/M\nChristophe/M\nChristopher/M\nChristoph/MR\nChristophorus/M\nChristos/M\nChrist/SMN\nChristye/M\nChristyna/M\nChristy's\nChrisy/M\nchroma/M\nchromate/M\nchromatically\nchromaticism/M\nchromaticness/M\nchromatic/PS\nchromatics/M\nchromatin/MS\nchromatogram/MS\nchromatograph\nchromatographic\nchromatography/M\nchrome/GMSD\nchromic\nchromite/M\nchromium/SM\nchromosomal\nchromosome/MS\nchromosphere/M\nchronically\nchronicled/U\nchronicler/M\nchronicle/SRDMZG\nchronic/S\nchronograph/M\nchronographs\nchronography\nchronological/Y\nchronologist/MS\nchronology/MS\nchronometer/MS\nchronometric\nChrotoem/M\nchrysalids\nchrysalis/SM\nChrysa/M\nchrysanthemum/MS\nChrysler/M\nChrysostom/M\nChrystal/M\nChrystel/M\nChryste/M\nchubbiness/SM\nchubby/RTP\nchub/MS\nChucho/M\nchuck/GSDM\nchuckhole/SM\nchuckle/DSG\nchuckling/Y\nChuck/M\nchuff/DM\nchugged\nchugging\nchug/MS\nChukchi/M\nchukka/S\nChumash/M\nchummed\nchummily\nchumminess/MS\nchumming\nchum/MS\nchummy/SRTP\nchumping/M\nchump/MDGS\nChungking's\nChung/M\nchunkiness/MS\nchunk/SGDM\nchunky/RPT\nchuntering\nchurchgoer/SM\nchurchgoing/SM\nChurchillian\nChurchill/M\nchurchliness/M\nchurchly/P\nchurchman/M\nchurch/MDSYG\nchurchmen\nChurch/MS\nchurchwarden/SM\nchurchwoman/M\nchurchwomen\nchurchyard/SM\nchurlishness/SM\nchurlish/YP\nchurl/SM\nchurner/M\nchurning/M\nchurn/SGZRDM\nchute/DSGM\nchutney/MS\nchutzpah/M\nchutzpahs\nchutzpa/SM\nChuvash/M\nch/VT\nchyme/SM\nCi\nCIA\nciao/S\ncicada/MS\ncicatrice/S\ncicatrix's\nCicely/M\nCicero/M\ncicerone/MS\nciceroni\nCiceronian\nCicily/M\nCID\ncider's/C\ncider/SM\nCid/M\nCiel/M\ncigarette/MS\ncigarillo/MS\ncigar/SM\ncilantro/S\ncilia/M\nciliate/FDS\nciliately\ncilium/M\nCilka/M\ncinch/MSDG\ncinchona/SM\nCincinnati/M\ncincture/MGSD\nCinda/M\nCindee/M\nCindelyn/M\ncinder/DMGS\nCinderella/MS\nCindie/M\nCindi/M\nCindra/M\nCindy/M\ncine/M\ncinema/SM\ncinematic\ncinematographer/MS\ncinematographic\ncinematography/MS\nCinerama/M\ncinnabar/MS\nCinnamon/M\ncinnamon/MS\nciphered/C\ncipher/MSGD\nciphers/C\ncir\ncirca\ncircadian\nCirce/M\ncircler/M\ncircle/RSDGM\ncirclet/MS\ncircuital\ncircuit/GSMD\ncircuitousness/MS\ncircuitous/YP\ncircuitry/SM\ncircuity/MS\ncirculant\ncircularity/SM\ncircularize/GSD\ncircularness/M\ncircular/PSMY\ncirculate/ASDNG\ncirculation/MA\ncirculations\ncirculative\ncirculatory\ncircumcise/DRSXNG\ncircumcised/U\ncircumciser/M\ncircumcision/M\ncircumference/SM\ncircumferential/Y\ncircumflex/MSDG\ncircumlocution/MS\ncircumlocutory\ncircumnavigate/DSNGX\ncircumnavigational\ncircumnavigation/M\ncircumpolar\ncircumscribe/GSD\ncircumscription/SM\ncircumspection/SM\ncircumspect/Y\ncircumsphere\ncircumstance/SDMG\ncircumstantial/YS\ncircumvention/MS\ncircumvent/SBGD\ncircus/SM\nCirillo/M\nCirilo/M\nCiro/M\ncirque/SM\ncirrhoses\ncirrhosis/M\ncirrhotic/S\ncirri/M\ncirrus/M\nCissiee/M\nCissy/M\ncistern/SM\ncitadel/SM\ncitations/I\ncitation/SMA\ncit/DSG\ncite/ISDAG\nCitibank/M\ncitified\ncitizenry/SM\ncitizenship/MS\ncitizen/SYM\ncitrate/DM\ncitric\nCitroen/M\ncitronella/MS\ncitron/MS\ncitrus/SM\ncity/DSM\ncityscape/MS\ncitywide\ncivet/SM\ncivic/S\ncivics/M\ncivilian/SM\ncivility/IMS\ncivilizational/MS\ncivilization/AMS\ncivilizedness/M\ncivilized/PU\ncivilize/DRSZG\ncivilizer/M\ncivilizes/AU\ncivil/UY\ncivvies\nck/C\nclack/SDG\ncladding/SM\nclads\nclad/U\nClaiborne/M\nClaiborn/M\nclaimable\nclaimant/MS\nclaim/CDRSKAEGZ\nclaimed/U\nclaimer/KMACE\nClaire/M\nClair/M\nClairol/M\nclairvoyance/MS\nclairvoyant/YS\nclambake/MS\nclamberer/M\nclamber/SDRZG\nclammed\nclammily\nclamminess/MS\nclamming\nclam/MS\nclammy/TPR\nclamorer/M\nclamor/GDRMSZ\nclamorousness/UM\nclamorous/PUY\nclampdown/SM\nclamper/M\nclamp/MRDGS\nclamshell/MS\nClancy/M\nclandestineness/M\nclandestine/YP\nclanger/M\nclangor/MDSG\nclangorous/Y\nclang/SGZRD\nclanking/Y\nclank/SGDM\nclan/MS\nclannishness/SM\nclannish/PY\nclansman/M\nclansmen\nclapboard/SDGM\nClapeyron/M\nclapped\nclapper/GMDS\nclapping\nclap/S\nClapton/M\nclaptrap/SM\nclaque/MS\nClarabelle/M\nClara/M\nClarance/M\nClare/M\nClaremont/M\nClarence/M\nClarendon/M\nClaresta/M\nClareta/M\nclaret/MDGS\nClaretta/M\nClarette/M\nClarey/M\nClaribel/M\nClarice/M\nClarie/M\nclarification/M\nclarifier/M\nclarify/NGXDRS\nClari/M\nClarinda/M\nClarine/M\nclarinetist/SM\nclarinet/SM\nclarinettist's\nclarion/GSMD\nClarissa/M\nClarisse/M\nClarita/M\nclarities\nclarity/UM\nClarke/M\nClark/M\nClarridge/M\nClary/M\nclasher/M\nclash/RSDG\nclasped/M\nclasper/M\nclasp's\nclasp/UGSD\nclasser/M\nclass/GRSDM\nclassical/Y\nclassicism/SM\nclassicist/SM\nclassic/S\nclassics/M\nclassifiable/U\nclassification/AMC\nclassificatory\nclassified/S\nclassifier/SM\nclassify/CNXASDG\nclassiness/SM\nclassless/P\nclassmate/MS\nclassroom/MS\nclasswork/M\nclassy/PRT\nclatterer/M\nclattering/Y\nclatter/SGDR\nclattery\nClaudelle/M\nClaudell/M\nClaude/M\nClaudetta/M\nClaudette/M\nClaudia/M\nClaudian/M\nClaudianus/M\nClaudie/M\nClaudina/M\nClaudine/M\nClaudio/M\nClaudius/M\nclausal\nclause/MS\nClausen/M\nClausewitz/M\nClausius/M\nClaus/NM\nclaustrophobia/SM\nclaustrophobic\nclave/RM\nclave's/F\nclavichord/SM\nclavicle/MS\nclavier/MS\nclawer/M\nclaw/GDRMS\nClayborne/M\nClayborn/M\nClaybourne/M\nclayey\nclayier\nclayiest\nClay/M\nclay/MDGS\nclaymore/MS\nClayson/M\nClayton/M\nClea/M\ncleanable\ncleaner/MS\ncleaning/SM\ncleanliness/UMS\ncleanly/PRTU\ncleanness/MSU\ncleanse\ncleanser/M\ncleans/GDRSZ\ncleanup/MS\nclean/UYRDPT\nclearance/MS\nclearcut\nclearer/M\nclearheadedness/M\nclearheaded/PY\nclearinghouse/S\nclearing/MS\nclearly\nclearness/MS\nclears\nclear/UTRD\nClearwater/M\nclearway/M\ncleat/MDSG\ncleavage/MS\ncleaver/M\ncleave/RSDGZ\nCleavland/M\nclef/SM\ncleft/MDGS\nclematis/MS\nclemence\nClemenceau/M\nClemence/M\nclemency/ISM\nClemente/M\nClementia/M\nClementina/M\nClementine/M\nClementius/M\nclement/IY\nClement/MS\nclements\nClemmie/M\nClemmy/M\nClemons\nClemson/M\nClem/XM\nclenches\nclenching\nclench/UD\nCleo/M\nCleon/M\nCleopatra/M\nClerc/M\nclerestory/MS\nclergyman/M\nclergymen\nclergy/MS\nclergywoman\nclergywomen\nclericalism/SM\nclerical/YS\ncleric/SM\nClerissa/M\nclerk/SGYDM\nclerkship/MS\nCletis\nCletus/M\nCleveland/M\nCleve/M\ncleverness/SM\nclever/RYPT\nClevey/M\nClevie/M\nclevis/SM\nclew/DMGS\ncl/GJ\nCliburn/M\nclich<63>d\nclich<63>/SM\nclicker/M\nclick/GZSRDM\nclient<6E>le/SM\nclient/SM\ncliffhanger/MS\ncliffhanging\nCliff/M\nClifford/M\ncliff/SM\nClifton/M\nclimacteric/SM\nclimactic\nclimate/MS\nclimatic\nclimatically\nclimatological/Y\nclimatologist/SM\nclimatology/MS\nclimax/MDSG\nclimbable/U\nclimb/BGZSJRD\nclimbdown\nclimbed/U\nclimber/M\nclime/SM\nClim/M\nclinch/DRSZG\nclincher/M\nclinching/Y\nCline/M\nclinger/MS\nclinging\ncling/U\nclingy/TR\nclinical/Y\nclinician/MS\nclinic/MS\nclinker/GMD\nclink/RDGSZ\nclinometer/MIS\nClint/M\nClinton/M\nClio/M\ncliometrician/S\ncliometric/S\nclipboard/SM\nclipped/U\nclipper/MS\nclipping/SM\nclip/SM\nclique/SDGM\ncliquey\ncliquier\ncliquiest\ncliquishness/SM\ncliquish/YP\nclitoral\nclitorides\nclitoris/MS\nClive/M\ncloacae\ncloaca/M\ncloakroom/MS\ncloak's\ncloak/USDG\nclobber/DGS\ncloche/MS\nclocker/M\nclockmaker/M\nclock/SGZRDMJ\nclockwatcher\nclockwise\nclockwork/MS\nclodded\nclodding\ncloddishness/M\ncloddish/P\nclodhopper/SM\nclod/MS\nCloe/M\nclogged/U\nclogging/U\nclog's\nclog/US\ncloisonn<6E>\ncloisonnes\ncloister/MDGS\ncloistral\nClo/M\nclomp/MDSG\nclonal\nclone/DSRGMZ\nclonk/SGD\nclopped\nclopping\nclop/S\nCloris/M\nclosed/U\nclose/EDSRG\nclosefisted\nclosely\nclosemouthed\ncloseness/MS\ncloseout/MS\ncloser/EM\nclosers\nclosest\ncloset/MDSG\ncloseup/S\nclosing/S\nclosured\nclosure/EMS\nclosure's/I\nclosuring\nclothbound\nclothesbrush\nclotheshorse/MS\nclothesline/SDGM\nclothesman\nclothesmen\nclothespin/MS\nclothe/UDSG\ncloth/GJMSD\nclothier/MS\nclothing/M\nClotho/M\ncloths\nClotilda/M\nclot/MS\nclotted\nclotting\ncloture/MDSG\ncloudburst/MS\nclouded/U\ncloudiness/SM\ncloudlessness/M\ncloudless/YP\ncloudscape/SM\ncloud/SGMD\ncloudy/TPR\nclout/GSMD\ncloven\ncloverleaf/MS\nclover/M\nclove/SRMZ\nClovis/M\nclown/DMSG\nclownishness/SM\nclownish/PY\ncloy/DSG\ncloying/Y\nclubbed/M\nclubbing/M\nclubfeet\nclubfoot/DM\nclubhouse/SM\nclub/MS\nclubroom/SM\ncluck/GSDM\nclueless\nclue/MGDS\nCluj/M\nclump/MDGS\nclumpy/RT\nclumsily\nclumsiness/MS\nclumsy/PRT\nclung\nclunk/SGZRDM\nclunky/PRYT\nclustered/AU\nclusters/A\ncluster/SGJMD\nclutch/DSG\ncluttered/U\nclutter/GSD\nCl/VM\nClyde/M\nClydesdale/M\nCly/M\nClytemnestra/M\nClyve/M\nClywd/M\ncm\nCm/M\nCMOS\ncnidarian/MS\nCNN\nCNS\nCO\ncoacher/M\ncoachman/M\ncoachmen\ncoach/MSRDG\ncoachwork/M\ncoadjutor/MS\ncoagulable\ncoagulant/SM\ncoagulate/GNXSD\ncoagulation/M\ncoagulator/S\ncoaler/M\ncoalesce/GDS\ncoalescence/SM\ncoalescent\ncoalface/SM\ncoalfield/MS\ncoalitionist/SM\ncoalition/MS\ncoal/MDRGS\ncoalminers\ncoarseness/SM\ncoarsen/SGD\ncoarse/TYRP\ncoastal\ncoaster/M\ncoastguard/MS\ncoastline/SM\ncoast/SMRDGZ\ncoated/U\nCoates/M\ncoating/M\ncoat/MDRGZJS\ncoattail/S\ncoattest\ncoauthor/MDGS\ncoaxer/M\ncoax/GZDSR\ncoaxial/Y\ncoaxing/Y\nCobain/M\ncobalt/MS\ncobbed\nCobbie/M\ncobbing\ncobbler/M\ncobble/SRDGMZ\ncobblestone/MSD\nCobb/M\nCobby/M\ncoble/M\nCob/M\nCOBOL\nCobol/M\ncobra/MS\ncob/SM\ncobwebbed\ncobwebbing\ncobwebby/RT\ncobweb/SM\ncocaine/MS\ncoca/MS\ncocci/MS\ncoccus/M\ncoccyges\ncoccyx/M\nCochabamba/M\ncochineal/SM\nCochin/M\nCochise/M\ncochleae\ncochlear\ncochlea/SM\nCochran/M\ncockade/SM\ncockamamie\ncockatoo/SM\ncockatrice/MS\ncockcrow/MS\ncockerel/MS\ncocker/M\ncockeye/DM\ncockeyed/PY\ncockfighting/M\ncockfight/MJSG\ncock/GDRMS\ncockily\ncockiness/MS\ncocklebur/M\ncockle/SDGM\ncockleshell/SM\nCockney\ncockney/MS\ncockpit/MS\ncockroach/SM\ncockscomb/SM\ncockshies\ncocksucker/S!\ncocksure\ncocktail/GDMS\ncocky/RPT\ncocoa/SM\ncoco/MS\ncoconut/SM\ncocoon/GDMS\nCocteau/M\nCOD\ncoda/SM\ncodded\ncodding\ncoddle/GSRD\ncoddler/M\ncodebook/S\ncodebreak/R\ncoded/UA\nCodee/M\ncodeine/MS\ncodename/D\ncodependency/S\ncodependent/S\ncoder/CM\ncode's\nco/DES\ncodes/A\ncode/SCZGJRD\ncodetermine/S\ncodeword/SM\ncodex/M\ncodfish/SM\ncodger/MS\ncodices/M\ncodicil/SM\nCodie/M\ncodification/M\ncodifier/M\ncodify/NZXGRSD\nCodi/M\ncoding/M\ncodling/M\nCod/M\ncod/MDRSZGJ\ncodpiece/MS\nCody/M\ncoedited\ncoediting\ncoeditor/MS\ncoedits\ncoed/SM\ncoeducational\ncoeducation/SM\ncoefficient/SYM\ncoelenterate/MS\ncoequal/SY\ncoercer/M\ncoerce/SRDXVGNZ\ncoercible/I\ncoercion/M\ncoerciveness/M\ncoercive/PY\ncoeval/YS\ncoexistence/MS\ncoexistent\ncoexist/GDS\ncoextensive/Y\ncofactor/MS\ncoffeecake/SM\ncoffeecup\ncoffeehouse/SM\ncoffeemaker/S\ncoffeepot/MS\ncoffee/SM\ncofferdam/SM\ncoffer/DMSG\nCoffey/M\ncoffin/DMGS\nCoffman/M\ncogency/MS\ncogent/Y\ncogged\ncogging\ncogitate/DSXNGV\ncogitation/M\ncogitator/MS\ncog/MS\nCognac/M\ncognac/SM\ncognate/SXYN\ncognation/M\ncognitional\ncognition/SAM\ncognitive/SY\ncognizable\ncognizance/MAI\ncognizances/A\ncognizant/I\ncognomen/SM\ncognoscente\ncognoscenti\ncogwheel/SM\ncohabitant/MS\ncohabitational\ncohabitation/SM\ncohabit/SDG\nCohan/M\ncoheir/MS\nCohen/M\ncohere/GSRD\ncoherence/SIM\ncoherencies\ncoherency/I\ncoherent/IY\ncoherer/M\ncohesion/MS\ncohesiveness/SM\ncohesive/PY\nCohn/M\ncohoes\ncoho/MS\ncohort/SM\ncoiffed\ncoiffing\ncoiffure/MGSD\ncoif/SM\ncoil/UGSAD\nCoimbatore/M\ncoinage's/A\ncoinage/SM\ncoincide/GSD\ncoincidence/MS\ncoincidental/Y\ncoincident/Y\ncoined/U\ncoiner/M\ncoin/GZSDRM\ncoinsurance/SM\nCointon/M\ncointreau\ncoital/Y\ncoitus/SM\ncoke/MGDS\nCoke/MS\nCOL\nCOLA\ncolander/SM\nColan/M\nColas\ncola/SM\ncolatitude/MS\nColbert/M\nColby/M\ncoldblooded\ncoldish\ncoldness/MS\ncold/YRPST\nColeen/M\nCole/M\nColeman/M\nColene/M\nColeridge/M\ncoleslaw/SM\nColet/M\nColetta/M\nColette/M\ncoleus/SM\nColfax/M\nColgate/M\ncolicky\ncolic/SM\ncoliform\nColin/M\ncoliseum/SM\ncolitis/MS\ncollaborate/VGNXSD\ncollaboration/M\ncollaborative/SY\ncollaborator/SM\ncollage/MGSD\ncollagen/M\ncollapse/SDG\ncollapsibility/M\ncollapsible\ncollarbone/MS\ncollar/DMGS\ncollard/SM\ncollarless\ncollated/U\ncollateral/SYM\ncollate/SDVNGX\ncollation/M\ncollator/MS\ncolleague/SDGM\ncollectedness/M\ncollected/PY\ncollectible/S\ncollection/AMS\ncollective/SY\ncollectivism/SM\ncollectivist/MS\ncollectivity/MS\ncollectivization/MS\ncollectivize/DSG\ncollector/MS\ncollect/SAGD\nColleen/M\ncolleen/SM\ncollege/SM\ncollegiality/S\ncollegian/SM\ncollegiate/Y\nCollen/M\nCollete/M\nCollette/M\ncoll/G\ncollide/SDG\nCollie/M\ncollie/MZSRD\ncollier/M\nCollier/M\ncolliery/MS\ncollimate/C\ncollimated/U\ncollimates\ncollimating\ncollimation/M\ncollimator/M\ncollinear\ncollinearity/M\nColline/M\nCollin/MS\ncollisional\ncollision/SM\ncollocate/XSDGN\ncollocation/M\ncolloidal/Y\ncolloid/MS\ncolloq\ncolloquialism/MS\ncolloquial/SY\ncolloquies\ncolloquium/SM\ncolloquy/M\ncollude/SDG\ncollusion/SM\ncollusive\ncollying\nColly/RM\nColman/M\nCol/MY\nCologne/M\ncologne/MSD\nColo/M\nColombia/M\nColombian/S\nColombo/M\ncolonelcy/MS\ncolonel/MS\ncolonialism/MS\ncolonialist/MS\ncolonial/SPY\ncolonist/SM\ncolonization/ACSM\ncolonize/ACSDG\ncolonized/U\ncolonizer/MS\ncolonizes/U\nColon/M\ncolonnade/MSD\ncolon/SM\ncolony/SM\ncolophon/SM\nColoradan/S\nColoradoan/S\nColorado/M\ncolorant/SM\ncoloration/EMS\ncoloratura/SM\ncolorblindness/S\ncolorblind/P\ncolored/USE\ncolorer/M\ncolorfastness/SM\ncolorfast/P\ncolorfulness/MS\ncolorful/PY\ncolorimeter/SM\ncolorimetry\ncoloring/M\ncolorization/S\ncolorize/GSD\ncolorizing/C\ncolorlessness/SM\ncolorless/PY\ncolors/EA\ncolor/SRDMGZJ\ncolossal/Y\nColosseum/M\ncolossi\ncolossus/M\ncolostomy/SM\ncolostrum/SM\ncol/SD\ncolter/M\ncoltishness/M\ncoltish/PY\nColt/M\ncolt/MRS\nColtrane/M\nColumbia/M\nColumbian\nColumbine/M\ncolumbine/SM\nColumbus/M\ncolumnar\ncolumnist/MS\ncolumnize/GSD\ncolumn/SDM\nColver/M\nCo/M\ncomae\ncomaker/SM\nComanche/MS\ncoma/SM\ncomatose\ncombatant/SM\ncombativeness/MS\ncombative/PY\ncombat/SVGMD\ncombed/U\ncomber/M\ncombinational/A\ncombination/ASM\ncombinatorial/Y\ncombinatoric/S\ncombinator/SM\ncombined/AU\ncombiner/M\ncombines/A\ncombine/ZGBRSD\ncombining/A\ncombo/MS\ncomb/SGZDRMJ\nCombs/M\ncombusted\ncombustibility/SM\ncombustible/SI\ncombustion/MS\ncombustive\nComdex/M\nComdr/M\ncomeback/SM\ncomedian/SM\ncomedic\ncomedienne/SM\ncomedown/MS\ncomedy/SM\ncome/IZSRGJ\ncomeliness/SM\ncomely/TPR\ncomer/IM\ncomes/M\ncomestible/MS\ncometary\ncometh\ncomet/SM\ncomeuppance/SM\ncomfit's\ncomfit/SE\ncomfortability/S\ncomfortableness/MS\ncomfortable/U\ncomfortably/U\ncomforted/U\ncomforter/MS\ncomfort/ESMDG\ncomforting/YE\ncomfy/RT\ncomicality/MS\ncomical/Y\ncomic/MS\nCominform/M\ncomity/SM\ncom/LJRTZG\ncomm\nCom/M\ncomma/MS\ncommandant/MS\ncommandeer/SDG\ncommander/M\ncommanding/Y\ncommandment/SM\ncommando/SM\ncommand/SZRDMGL\ncommemorate/SDVNGX\ncommemoration/M\ncommemorative/YS\ncommemorator/S\ncommence/ALDSG\ncommencement/AMS\ncommencer/M\ncommendably\ncommendation/ASM\ncommendatory/A\ncommender/AM\ncommend/GSADRB\ncommensurable/I\ncommensurate/IY\ncommensurates\ncommensuration/SM\ncommentary/MS\ncommentate/GSD\ncommentator/SM\ncommenter/M\ncomment's\ncomment/SUGD\ncommerce/MGSD\ncommercialism/MS\ncommercialization/SM\ncommercialize/GSD\ncommercial/PYS\nCommie\ncommie/SM\ncommingle/GSD\ncommiserate/VGNXSD\ncommiseration/M\ncommissariat/MS\ncommissar/MS\ncommissary/MS\ncommission/ASCGD\ncommissioner/SM\ncommission's/A\ncommitment/SM\ncommit/SA\ncommittable\ncommittal/MA\ncommittals\ncommitted/UA\ncommitteeman/M\ncommitteemen\ncommittee/MS\ncommitteewoman/M\ncommitteewomen\ncommitting/A\ncommode/MS\ncommodes/IE\ncommodiousness/MI\ncommodious/YIP\ncommodity/MS\ncommodore/SM\ncommonality/MS\ncommonalty/MS\ncommoner/MS\ncommonness/MSU\ncommonplaceness/M\ncommonplace/SP\ncommon/RYUPT\ncommonsense\ncommons/M\nCommons/M\ncommonweal/SHM\ncommonwealth/M\nCommonwealth/M\ncommonwealths\nCommonwealths\ncommotion/MS\ncommunality/M\ncommunal/Y\ncommune/XSDNG\ncommunicability/MS\ncommunicable/IU\ncommunicably\ncommunicant/MS\ncommunicate/VNGXSD\ncommunicational\ncommunication/M\ncommunicativeness/M\ncommunicative/PY\ncommunicator/SM\ncommunion/M\nCommunion/SM\ncommunique/S\ncommunism/MS\nCommunism/S\ncommunistic\ncommunist/MS\nCommunist/S\ncommunitarian/M\ncommunity/MS\ncommunize/SDG\ncommutable/I\ncommutate/XVGNSD\ncommutation/M\ncommutative/Y\ncommutativity\ncommutator/MS\ncommute/BZGRSD\ncommuter/M\nComoros\ncompaction/M\ncompactness/MS\ncompactor/MS\ncompact/TZGSPRDY\ncompanionableness/M\ncompanionable/P\ncompanionably\ncompanion/GBSMD\ncompanionship/MS\ncompanionway/MS\ncompany/MSDG\nCompaq/M\ncomparabilities\ncomparability/IM\ncomparableness/M\ncomparable/P\ncomparably/I\ncomparativeness/M\ncomparative/PYS\ncomparator/SM\ncompare/GRSDB\ncomparer/M\ncomparison/MS\ncompartmental\ncompartmentalization/SM\ncompartmentalize/DSG\ncompartment/SDMG\ncompassionateness/M\ncompassionate/PSDGY\ncompassion/MS\ncompass/MSDG\ncompatibility/IMS\ncompatibleness/M\ncompatible/SI\ncompatibly/I\ncompatriot/SM\ncompeer/DSGM\ncompellable\ncompelled\ncompelling/YM\ncompel/S\ncompendious\ncompendium/MS\ncompensable\ncompensated/U\ncompensate/XVNGSD\ncompensation/M\ncompensator/M\ncompensatory\ncompete/GSD\ncompetence/ISM\ncompetency/IS\ncompetency's\ncompetent/IY\ncompetition/SM\ncompetitiveness/SM\ncompetitive/YP\ncompetitor/MS\ncomp/GSYD\ncompilable/U\ncompilation/SAM\ncompile/ASDCG\ncompiler/CS\ncompiler's\ncomplacence/S\ncomplacency/SM\ncomplacent/Y\ncomplainant/MS\ncomplainer/M\ncomplain/GZRDS\ncomplaining/YU\ncomplaint/MS\ncomplaisance/SM\ncomplaisant/Y\ncomplected\ncomplementariness/M\ncomplementarity\ncomplementary/SP\ncomplementation/M\ncomplementer/M\ncomplement/ZSMRDG\ncomplete/BTYVNGPRSDX\ncompleted/U\ncompletely/I\ncompleteness/ISM\ncompleter/M\ncompletion/MI\ncomplexional\ncomplexion/DMS\ncomplexity/MS\ncomplexness/M\ncomplex/TGPRSDY\ncompliance/SM\ncompliant/Y\ncomplicatedness/M\ncomplicated/YP\ncomplicate/SDG\ncomplication/M\ncomplicator/SM\ncomplicit\ncomplicity/MS\ncomplier/M\ncomplimentary/U\ncomplimenter/M\ncompliment/ZSMRDG\ncomply/ZXRSDNG\ncomponent/SM\ncomport/GLSD\ncomportment/SM\ncompose/CGASDE\ncomposedness/M\ncomposed/PY\ncomposer/CM\ncomposers\ncomposite/YSDXNG\ncompositional/Y\ncomposition/CMA\ncompositions/C\ncompositor/MS\ncompost/DMGS\ncomposure/ESM\ncompote/MS\ncompounded/U\ncompounder/M\ncompound/RDMBGS\ncomprehend/DGS\ncomprehending/U\ncomprehensibility/SIM\ncomprehensibleness/IM\ncomprehensible/PI\ncomprehensibly/I\ncomprehension/IMS\ncomprehensiveness/SM\ncomprehensive/YPS\ncompressed/Y\ncompressibility/IM\ncompressible/I\ncompressional\ncompression/CSM\ncompressive/Y\ncompressor/MS\ncompress/SDUGC\ncomprise/GSD\ncompromiser/M\ncompromise/SRDGMZ\ncompromising/UY\nCompton/M\ncomptroller/SM\ncompulsion/SM\ncompulsiveness/MS\ncompulsive/PYS\ncompulsivity\ncompulsorily\ncompulsory/S\ncompunction/MS\nCompuserve/M\nCompuServe/M\ncomputability/M\ncomputable/UI\ncomputably\ncomputational/Y\ncomputation/SM\ncomputed/A\ncomputerese\ncomputerization/MS\ncomputerize/SDG\ncomputer/M\ncompute/RSDZBG\ncomputes/A\ncomputing/A\ncomradely/P\ncomradeship/MS\ncomrade/YMS\nComte/M\nConakry/M\nConan/M\nConant/M\nconcatenate/XSDG\nconcaveness/MS\nconcave/YP\nconceal/BSZGRDL\nconcealed/U\nconcealer/M\nconcealing/Y\nconcealment/MS\nconceded/Y\nconceitedness/SM\nconceited/YP\nconceit/SGDM\nconceivable/IU\nconceivably/I\nconceive/BGRSD\nconceiver/M\nconcentrate/VNGSDX\nconcentration/M\nconcentrator/MS\nconcentrically\nConcepci<63>n/M\nconceptional\nconception/MS\nconcept/SVM\nconceptuality/M\nconceptualization/A\nconceptualizations\nconceptualization's\nconceptualize/DRSG\nconceptualizing/A\nconceptual/Y\nconcerned/YU\nconcern/USGD\nconcerted/PY\nconcert/EDSG\nconcertina/MDGS\nconcertize/GDS\nconcertmaster/MS\nconcerto/SM\nconcert's\nconcessionaire/SM\nconcessional\nconcessionary\nconcession/R\nConcetta/M\nConcettina/M\nConchita/M\nconch/MDG\nconchs\nconcierge/SM\nconciliar\nconciliate/GNVX\nconciliation/ASM\nconciliator/MS\nconciliatory/A\nconciseness/SM\nconcise/TYRNPX\nconcision/M\nconclave/S\nconcluder/M\nconclude/RSDG\nconclusion/SM\nconclusive/IPY\nconclusiveness/ISM\nconcocter/M\nconcoction/SM\nconcoct/RDVGS\nconcomitant/YS\nconcordance/MS\nconcordant/Y\nconcordat/SM\nConcorde/M\nConcordia/M\nConcord/MS\nconcourse\nconcreteness/MS\nconcrete/NGXRSDPYM\nconcretion/M\nconcubinage/SM\nconcubine/SM\nconcupiscence/SM\nconcupiscent\nconcurrence/MS\nconcur/S\nconcussion/MS\nconcuss/VD\ncondemnate/XN\ncondemnation/M\ncondemnatory\ncondemner/M\ncondemn/ZSGRDB\ncondensate/NMXS\ncondensation/M\ncondenser/M\ncondense/ZGSD\ncondensible\ncondescend\ncondescending/Y\ncondescension/MS\ncondign\ncondiment/SM\ncondition/AGSJD\nconditionals\nconditional/UY\nconditioned/U\nconditioner/MS\nconditioning/M\ncondition's\ncondole\ncondolence/MS\ncondominium/MS\ncondom/SM\ncondone/GRSD\ncondoner/M\nCondorcet/M\ncondor/MS\ncondo/SM\nconduce/VGSD\nconduciveness/M\nconducive/P\nconductance/SM\nconductibility/SM\nconductible\nconduction/MS\nconductive/Y\nconductivity/MS\nconductor/MS\nconductress/MS\nconduct/V\nconduit/MS\nconeflower/M\nConestoga\nconey's\nconfabbed\nconfabbing\nconfab/MS\nconfabulate/XSDGN\nconfabulation/M\nconfectioner/M\nconfectionery/SM\nconfectionist\nconfection/RDMGZS\nconfect/S\nConfederacy/M\nconfederacy/MS\nconfederate/M\nConfederate/S\nconferee/MS\nconference/DSGM\nconferrable\nconferral/SM\nconferred\nconferrer/SM\nconferring\nconfer/SB\nconfessed/Y\nconfessional/SY\nconfession/MS\nconfessor/SM\nconfetti/M\nconfidante/SM\nconfidant/SM\nconfidence/SM\nconfidentiality/MS\nconfidentialness/M\nconfidential/PY\nconfident/Y\nconfider/M\nconfide/ZGRSD\nconfiding/PY\nconfiguration/ASM\nconfigure/AGSDB\nconfined/U\nconfine/L\nconfinement/MS\nconfiner/M\nconfirm/AGDS\nconfirmation/ASM\nconfirmatory\nconfirmedness/M\nconfirmed/YP\nconfiscate/DSGNX\nconfiscation/M\nconfiscator/MS\nconfiscatory\nconflagration/MS\nconflate/NGSDX\nconflation/M\nconflicting/Y\nconflict/SVGDM\nconfluence/MS\nconformable/U\nconformal\nconformance/SM\nconformational/Y\nconform/B\nconformer/M\nconformism/SM\nconformist/SM\nconformities\nconformity/MUI\nconfounded/Y\nconfound/R\nconfr<66>re/MS\nconfrontational\nconfrontation/SM\nconfronter/M\nconfront/Z\nConfucianism/SM\nConfucian/S\nConfucius/M\nconfusedness/M\nconfused/PY\nconfuse/RBZ\nconfusing/Y\nconfutation/MS\nconfute/GRSD\nconfuter/M\nconga/MDG\ncongeal/GSDL\ncongealment/MS\ncongeniality/UM\ncongenial/U\ncongeries/M\nconger/SM\ncongestion/MS\ncongest/VGSD\nconglomerate/XDSNGVM\nconglomeration/M\nCong/M\nCongolese\nCongo/M\ncongrats\ncongratulate/NGXSD\ncongratulation/M\ncongratulatory\ncongregate/DSXGN\ncongregational\nCongregational\ncongregationalism/MS\ncongregationalist/MS\nCongregationalist/S\ncongregation/M\ncongressional/Y\ncongressman/M\ncongressmen\nCongress/MS\ncongress/MSDG\ncongresspeople\ncongressperson/S\ncongresswoman/M\ncongresswomen\nCongreve/M\ncongruence/IM\ncongruences\ncongruency/M\ncongruential\ncongruent/YI\ncongruity/MSI\ncongruousness/IM\ncongruous/YIP\nconicalness/M\nconical/PSY\nconic/S\nconics/M\nconifer/MS\nconiferous\nconjectural/Y\nconjecture/GMDRS\nconjecturer/M\nconjoint\nconjugacy\nconjugal/Y\nconjugate/XVNGYSDP\nconjugation/M\nconjunct/DSV\nconjunctiva/MS\nconjunctive/YS\nconjunctivitis/SM\nconjuration/MS\nconjurer/M\nconjure/RSDZG\nconjuring/M\nconker/M\nconk/ZDR\nConley/M\nCon/M\nconman\nconnect/ADGES\nconnectedly/E\nconnectedness/ME\nconnected/U\nconnectible\nConnecticut/M\nconnection/AME\nconnectionless\nconnections/E\nconnective/SYM\nconnectivity/MS\nconnector/MS\nConnelly/M\nConner/M\nConnery/M\nconnexion/MS\nConney/M\nconn/GVDR\nConnie/M\nConni/M\nconniption/MS\nconnivance/MS\nconniver/M\nconnive/ZGRSD\nconnoisseur/MS\nConnor/SM\nconnotative/Y\nConn/RM\nconnubial/Y\nConny/M\nconquerable/U\nconquered/AU\nconqueror/MS\nconquer/RDSBZG\nconquers/A\nconquest/ASM\nconquistador/MS\nConrade/M\nConrad/M\nConrado/M\nConrail/M\nConroy/M\nConsalve/M\nconsanguineous/Y\nconsanguinity/SM\nconscienceless\nconscientiousness/MS\nconscientious/YP\nconscionable/U\nconsciousness/MUS\nconscious/UYSP\nconscription/SM\nconsecrated/AU\nconsecrates/A\nconsecrate/XDSNGV\nconsecrating/A\nconsecration/AMS\nconsecutiveness/M\nconsecutive/YP\nconsensus/SM\nconsenter/M\nconsenting/Y\nconsent/SZGRD\nconsequence\nconsequentiality/S\nconsequential/IY\nconsequentialness/M\nconsequently/I\nconsequent/PSY\nconservancy/SM\nconservationism\nconservationist/SM\nconservation/SM\nconservatism/SM\nconservativeness/M\nConservative/S\nconservative/SYP\nconservator/MS\nconservatory/MS\ncon/SGM\nconsiderable/I\nconsiderables\nconsiderably/I\nconsiderateness/MSI\nconsiderate/XIPNY\nconsideration/ASMI\nconsidered/U\nconsiderer/M\nconsider/GASD\nconsidering/S\nconsign/ASGD\nconsignee/SM\nconsignment/SM\nconsist/DSG\nconsistence/S\nconsistency/IMS\nconsistent/IY\nconsistory/MS\nconsolable/I\nConsolata/M\nconsolation/MS\nconsolation's/E\nconsolatory\nconsoled/U\nconsoler/M\nconsole/ZBG\nconsolidated/AU\nconsolidate/NGDSX\nconsolidates/A\nconsolidation/M\nconsolidator/SM\nconsoling/Y\nconsomm<6D>/S\nconsonance/IM\nconsonances\nconsonantal\nconsonant/MYS\nconsortia\nconsortium/M\nconspectus/MS\nconspicuousness/IMS\nconspicuous/YIP\nconspiracy/MS\nconspiratorial/Y\nconspirator/SM\nconstable\nConstable/M\nconstabulary/MS\nconstance\nConstance/M\nConstancia/M\nconstancy/IMS\nConstancy/M\nConstanta/M\nConstantia/M\nConstantina/M\nConstantine/M\nConstantin/M\nConstantino/M\nConstantinople/M\nconstant/IY\nconstants\nconstellation/SM\nconsternate/XNGSD\nconsternation/M\nconstipate/XDSNG\nconstipation/M\nconstituency/MS\nconstituent/SYM\nconstituted/A\nconstitute/NGVXDS\nconstitutes/A\nconstituting/A\nConstitution\nconstitutionality's\nconstitutionality/US\nconstitutionally/U\nconstitutional/SY\nconstitution/AMS\nconstitutive/Y\nconstrain\nconstrainedly\nconstrained/U\nconstraint/MS\nconstriction/MS\nconstrictor/MS\nconstrict/SDGV\nconstruable\nconstruct/ASDGV\nconstructibility\nconstructible/A\nconstructional/Y\nconstructionist/MS\nconstruction/MAS\nconstructions/C\nconstructiveness/SM\nconstructive/YP\nconstructor/MS\nconstrue/GSD\nConsuela/M\nConsuelo/M\nconsular/S\nconsulate/MS\nconsul/KMS\nconsulship/MS\nconsultancy/S\nconsultant/MS\nconsultation/SM\nconsultative\nconsulted/A\nconsulter/M\nconsult/RDVGS\nconsumable/S\nconsumed/Y\nconsume/JZGSDB\nconsumerism/MS\nconsumerist/S\nconsumer/M\nconsuming/Y\nconsummate/DSGVY\nconsummated/U\nconsumption/SM\nconsumptive/YS\ncont\ncontact/BGD\ncontacted/A\ncontact's/A\ncontacts/A\ncontagion/SM\ncontagiousness/MS\ncontagious/YP\ncontainerization/SM\ncontainerize/GSD\ncontainer/M\ncontainment/SM\ncontain/SLZGBRD\ncontaminant/SM\ncontaminated/AU\ncontaminates/A\ncontaminate/SDCXNG\ncontaminating/A\ncontamination/CM\ncontaminative\ncontaminator/MS\ncontd\ncont'd\ncontemn/SGD\ncontemplate/DVNGX\ncontemplation/M\ncontemplativeness/M\ncontemplative/PSY\ncontemporaneity/MS\ncontemporaneousness/M\ncontemporaneous/PY\ncontemptibleness/M\ncontemptible/P\ncontemptibly\ncontempt/M\ncontemptuousness/SM\ncontemptuous/PY\ncontentedly/E\ncontentedness/SM\ncontented/YP\ncontent/EMDLSG\ncontention/MS\ncontentiousness/SM\ncontentious/PY\ncontently\ncontentment/ES\ncontentment's\nconterminous/Y\ncontestable/I\ncontestant/SM\ncontested/U\ncontextualize/GDS\ncontiguity/MS\ncontiguousness/M\ncontiguous/YP\ncontinence/ISM\nContinental/S\ncontinental/SY\ncontinent/IY\nContinent/M\ncontinents\ncontinent's\ncontingency/SM\ncontingent/SMY\ncontinua\ncontinuable\ncontinual/Y\ncontinuance/ESM\ncontinuant/M\ncontinuation/ESM\ncontinue/ESDG\ncontinuer/M\ncontinuity/SEM\ncontinuousness/M\ncontinuous/YE\ncontinuum/M\ncontortionist/SM\ncontortion/MS\ncontort/VGD\ncontour\ncontraband/SM\ncontrabass/M\ncontraception/SM\ncontraceptive/S\ncontract/DG\ncontractible\ncontractile\ncontractual/Y\ncontradict/GDS\ncontradiction/MS\ncontradictorily\ncontradictoriness/M\ncontradictory/PS\ncontradistinction/MS\ncontraflow/S\ncontrail/M\ncontraindicate/SDVNGX\ncontraindication/M\ncontralto/SM\ncontrapositive/S\ncontraption/MS\ncontrapuntal/Y\ncontrariety/MS\ncontrarily\ncontrariness/MS\ncontrariwise\ncontrary/PS\ncontra/S\ncontrasting/Y\ncontrastive/Y\ncontrast/SRDVGZ\ncontravene/GSRD\ncontravener/M\ncontravention/MS\nContreras/M\ncontretemps/M\ncontribute/XVNZRD\ncontribution/M\ncontributive/Y\ncontributorily\ncontributor/SM\ncontributory/S\ncontriteness/M\ncontrite/NXP\ncontrition/M\ncontrivance/SM\ncontriver/M\ncontrive/ZGRSD\ncontrol/CS\ncontrollability/M\ncontrollable/IU\ncontrollably/U\ncontrolled/CU\ncontroller/SM\ncontrolling/C\ncontrol's\ncontroversialists\ncontroversial/UY\ncontroversy/MS\ncontrovert/DGS\ncontrovertible/I\ncontumacious/Y\ncontumacy/MS\ncontumelious\ncontumely/MS\ncontuse/NGXSD\ncontusion/M\nconundrum/SM\nconurbation/MS\nconvalesce/GDS\nconvalescence/SM\nconvalescent/S\nconvect/DSVG\nconvectional\nconvection/MS\nconvector\nconvene/ASDG\nconvener/MS\nconvenience/ISM\nconvenient/IY\nconventicle/SM\nconventionalism/M\nconventionalist/M\nconventionality/SUM\nconventionalize/GDS\nconventional/UY\nconvention/MA\nconventions\nconvergence/MS\nconvergent\nconversant/Y\nconversationalist/SM\nconversational/Y\nconversation/SM\nconversazione/M\nconverse/Y\nconversion/AM\nconversioning\nconverted/U\nconverter/MS\nconvert/GADS\nconvertibility's/I\nconvertibility/SM\nconvertibleness/M\nconvertible/PS\nconvexity/MS\nconvex/Y\nconveyance/DRSGMZ\nconveyancer/M\nconveyancing/M\nconvey/BDGS\nconveyor/MS\nconviction/MS\nconvict/SVGD\nconvinced/U\nconvincer/M\nconvince/RSDZG\nconvincingness/M\nconvincing/PUY\nconviviality/MS\nconvivial/Y\nconvoke/GSD\nconvolute/XDNY\nconvolution/M\nconvolve/C\nconvolved\nconvolves\nconvolving\nconvoy/GMDS\nconvulse/SDXVNG\nconvulsion/M\nconvulsiveness/M\nconvulsive/YP\nConway/M\ncony/SM\ncoo/GSD\ncookbook/SM\ncooked/AU\nCooke/M\ncooker/M\ncookery/MS\ncook/GZDRMJS\nCookie/M\ncookie/SM\ncooking/M\nCook/M\ncookout/SM\ncooks/A\ncookware/SM\ncooky's\ncoolant/SM\ncooled/U\ncooler/M\nCooley/M\ncoolheaded\nCoolidge/M\ncoolie/MS\ncoolness/MS\ncool/YDRPJGZTS\ncoon/MS!\ncoonskin/MS\ncooperage/MS\ncooperate/VNGXSD\ncooperation/M\ncooperativeness/SM\ncooperative/PSY\ncooperator/MS\ncooper/GDM\nCooper/M\ncoop/MDRGZS\nCoop/MR\ncoordinated/U\ncoordinateness/M\ncoordinate/XNGVYPDS\ncoordination/M\ncoordinator/MS\nCoors/M\ncootie/SM\ncoot/MS\ncopay/S\nCopeland/M\nCopenhagen/M\ncoper/M\nCopernican\nCopernicus/M\ncope/S\ncopied/A\ncopier/M\ncopies/A\ncopilot/SM\ncoping/M\ncopiousness/SM\ncopious/YP\ncoplanar\nCopland/M\nCopley/M\ncopolymer/MS\ncopora\ncopped\nCopperfield/M\ncopperhead/MS\ncopper/MSGD\ncopperplate/MS\ncoppersmith/M\ncoppersmiths\ncoppery\ncoppice's\ncopping\nCoppola/M\ncopra/MS\ncoprolite/M\ncoprophagous\ncopse/M\ncops/GDS\ncop/SJMDRG\ncopter/SM\nCoptic/M\ncopula/MS\ncopulate/XDSNGV\ncopulation/M\ncopulative/S\ncopybook/MS\ncopycat/SM\ncopycatted\ncopycatting\ncopyist/SM\ncopy/MZBDSRG\ncopyrighter/M\ncopyright/MSRDGZ\ncopywriter/MS\ncoquetry/MS\ncoquette/DSMG\ncoquettish/Y\nCorabella/M\nCorabelle/M\nCorabel/M\ncoracle/SM\nCoralie/M\nCoraline/M\ncoralline\nCoral/M\ncoral/SM\nCoralyn/M\nCora/M\ncorbel/GMDJS\nCorbet/M\nCorbett/M\nCorbie/M\nCorbin/M\nCorby/M\ncordage/MS\ncorded/AE\nCordelia/M\nCordelie/M\nCordell/M\ncorder/AM\nCordey/M\ncord/FSAEM\ncordiality/MS\ncordialness/M\ncordial/PYS\nCordie/M\ncordillera/MS\nCordilleras\nCordi/M\ncording/MA\ncordite/MS\ncordless\nCord/M\nCordoba\ncordon/DMSG\ncordovan/SM\nCordula/M\ncorduroy/GDMS\nCordy/M\ncored/A\nCoreen/M\nCorella/M\ncore/MZGDRS\nCorenda/M\nCorene/M\ncorer/M\ncorespondent/MS\nCoretta/M\nCorette/M\nCorey/M\nCorfu/M\ncorgi/MS\ncoriander/SM\nCorie/M\nCorilla/M\nCori/M\nCorina/M\nCorine/M\ncoring/M\nCorinna/M\nCorinne/M\nCorinthian/S\nCorinthians/M\nCorinth/M\nCoriolanus/M\nCoriolis/M\nCorissa/M\nCoriss/M\ncorked/U\ncorker/M\ncork/GZDRMS\nCork/M\ncorkscrew/DMGS\ncorks/U\nCorliss/M\nCorly/M\nCormack/M\ncorm/MS\ncormorant/MS\nCornall/M\ncornball/SM\ncornbread/S\ncorncob/SM\ncorncrake/M\ncorneal\ncornea/SM\nCorneille/M\nCornela/M\nCornelia/M\nCornelius/M\nCornelle/M\nCornell/M\ncorner/GDM\ncornerstone/MS\ncornet/SM\nCorney/M\ncornfield/SM\ncornflake/S\ncornflour/M\ncornflower/SM\ncorn/GZDRMS\ncornice/GSDM\nCornie/M\ncornily\ncorniness/S\nCornish/S\ncornmeal/S\ncornrow/GDS\ncornstalk/MS\ncornstarch/SM\ncornucopia/MS\nCornwallis/M\nCornwall/M\nCorny/M\ncorny/RPT\ncorolla/MS\ncorollary/SM\nCoronado/M\ncoronal/MS\ncoronary/S\ncorona/SM\ncoronate/NX\ncoronation/M\ncoroner/MS\ncoronet/DMS\nCorot/M\ncoroutine/SM\nCorp\ncorporal/SYM\ncorpora/MS\ncorporate/INVXS\ncorporately\ncorporation/MI\ncorporatism/M\ncorporatist\ncorporeality/MS\ncorporeal/IY\ncorporealness/M\ncorp/S\ncorpse/M\ncorpsman/M\ncorpsmen\ncorps/SM\ncorpulence/MS\ncorpulentness/S\ncorpulent/YP\ncorpuscle/SM\ncorpuscular\ncorpus/M\ncorr\ncorralled\ncorralling\ncorral/MS\ncorrectable/U\ncorrect/BPSDRYTGV\ncorrected/U\ncorrectional\ncorrection/MS\ncorrective/YPS\ncorrectly/I\ncorrectness/MSI\ncorrector/MS\nCorreggio/M\ncorrelated/U\ncorrelate/SDXVNG\ncorrelation/M\ncorrelative/YS\nCorrena/M\ncorrespond/DSG\ncorrespondence/MS\ncorrespondent/SM\ncorresponding/Y\nCorrey/M\nCorrianne/M\ncorridor/SM\nCorrie/M\ncorrigenda\ncorrigendum/M\ncorrigible/I\nCorri/M\nCorrina/M\nCorrine/M\nCorrinne/M\ncorroborated/U\ncorroborate/GNVXDS\ncorroboration/M\ncorroborative/Y\ncorroborator/MS\ncorroboratory\ncorrode/SDG\ncorrodible\ncorrosion/SM\ncorrosiveness/M\ncorrosive/YPS\ncorrugate/NGXSD\ncorrugation/M\ncorrupt/DRYPTSGV\ncorrupted/U\ncorrupter/M\ncorruptibility/SMI\ncorruptible/I\ncorruption/IM\ncorruptions\ncorruptive/Y\ncorruptness/MS\nCorry/M\ncorsage/MS\ncorsair/SM\ncorset/GMDS\nCorsica/M\nCorsican/S\ncort<72>ge/MS\nCortes/S\ncortex/M\nCortez's\ncortical/Y\ncortices\ncorticosteroid/SM\nCortie/M\ncortisone/SM\nCortland/M\nCort/M\nCortney/M\nCorty/M\ncorundum/MS\ncoruscate/XSDGN\ncoruscation/M\nCorvallis/M\ncorvette/MS\nCorvus/M\nCory/M\nCos\nCosby/M\nCosetta/M\nCosette/M\ncos/GDS\ncosignatory/MS\ncosign/SRDZG\ncosily\nCosimo/M\ncosine/MS\ncosiness/MS\nCosme/M\ncosmetically\ncosmetician/MS\ncosmetic/SM\ncosmetologist/MS\ncosmetology/MS\ncosmic\ncosmical/Y\ncosmogonist/MS\ncosmogony/SM\ncosmological/Y\ncosmologist/MS\ncosmology/SM\nCosmo/M\ncosmonaut/MS\ncosmopolitanism/MS\ncosmopolitan/SM\ncosmos/SM\ncosponsor/DSG\ncossack/S\nCossack/SM\ncosset/GDS\nCosta/M\nCostanza/M\ncostarred\ncostarring\ncostar/S\nCostello/M\ncostiveness/M\ncostive/PY\ncostless\ncostliness/SM\ncostly/RTP\ncost/MYGVJS\nCostner/M\ncostumer/M\ncostume/ZMGSRD\ncotangent/SM\nCote/M\ncote/MS\ncoterie/MS\ncoterminous/Y\ncotillion/SM\nCotonou/M\nCotopaxi/M\ncot/SGMD\ncottager/M\ncottage/ZMGSRD\ncottar's\ncotted\ncotter/SDM\ncotton/GSDM\nCotton/M\ncottonmouth/M\ncottonmouths\ncottonseed/MS\ncottontail/SM\ncottonwood/SM\ncottony\ncotyledon/MS\ncouching/M\ncouch/MSDG\ncougar/MS\ncougher/M\ncough/RDG\ncoughs\ncouldn't\ncould/T\ncould've\ncoul<75>e/MS\nCoulomb/M\ncoulomb/SM\ncouncilman/M\ncouncilmen\ncouncilor/MS\ncouncilperson/S\ncouncil/SM\ncouncilwoman/M\ncouncilwomen\ncounsel/GSDM\ncounsellings\ncounselor/MS\ncountability/E\ncountable/U\ncountably/U\ncountdown/SM\ncounted/U\ncount/EGARDS\ncountenance/EGDS\ncountenancer/M\ncountenance's\ncounteract/DSVG\ncounteraction/SM\ncounterargument/SM\ncounterattack/DRMGS\ncounterbalance/MSDG\ncounterclaim/GSDM\ncounterclockwise\ncounterculture/MS\ncountercyclical\ncounterespionage/MS\ncounterexample/S\ncounterfeiter/M\ncounterfeit/ZSGRD\ncounterflow\ncounterfoil/MS\ncounterforce/M\ncounter/GSMD\ncounterinsurgency/MS\ncounterintelligence/MS\ncounterintuitive\ncountermand/DSG\ncounterman/M\ncountermeasure/SM\ncountermen\ncounteroffensive/SM\ncounteroffer/SM\ncounterpane/SM\ncounterpart/SM\ncounterpoint/GSDM\ncounterpoise/GMSD\ncounterproductive\ncounterproposal/M\ncounterrevolutionary/MS\ncounterrevolution/MS\ncounter's/E\ncounters/E\ncountersignature/MS\ncountersign/SDG\ncountersink/SG\ncounterspy/MS\ncounterstrike\ncountersunk\ncountertenor/SM\ncountervail/DSG\ncounterweight/GMDS\ncountess/MS\ncountless/Y\ncountrify/D\ncountryman/M\ncountrymen\ncountry/MS\ncountryside/MS\ncountrywide\ncountrywoman/M\ncountrywomen\ncounty/SM\ncoup/ASDG\ncoupe/MS\nCouperin/M\ncouple/ACU\ncoupled/CU\ncoupler/C\ncouplers\ncoupler's\ncouple's\ncouples/CU\ncouplet/SM\ncoupling's/C\ncoupling/SM\ncoupon/SM\ncoup's\ncourage/MS\ncourageously\ncourageousness/MS\ncourageous/U\ncourages/E\nCourbet/M\ncourgette/MS\ncourier/GMDS\ncourse/EGSRDM\ncourser's/E\ncourser/SM\ncourse's/AF\ncourses/FA\ncoursework\ncoursing/M\nCourtenay/M\ncourteousness/EM\ncourteousnesses\ncourteous/PEY\ncourtesan/MS\ncourtesied\ncourtesy/ESM\ncourtesying\ncourt/GZMYRDS\ncourthouse/MS\ncourtier/SM\ncourtliness/MS\ncourtly/RTP\nCourt/M\nCourtnay/M\nCourtney/M\ncourtroom/MS\ncourtship/SM\ncourtyard/SM\ncouscous/MS\ncousinly/U\ncousin/YMS\nCousteau/M\ncouture/SM\ncouturier/SM\ncovalent/Y\ncovariance/SM\ncovariant/S\ncovariate/SN\ncovary\ncove/DRSMZG\ncovenanted/U\ncovenanter/M\ncovenant/SGRDM\ncoven/SM\nCovent/M\nCoventry/MS\ncoverable/E\ncover/AEGUDS\ncoverage/MS\ncoverall/DMS\ncoverer/AME\ncovering/MS\ncoverlet/MS\ncoversheet\ncovers/M\ncovertness/SM\ncovert/YPS\ncoveter/M\ncoveting/Y\ncovetousness/SM\ncovetous/PY\ncovet/SGRD\ncovey/SM\ncovington\ncowardice/MS\ncowardliness/MS\ncowardly/P\nCoward/M\ncoward/MYS\ncowbell/MS\ncowbird/MS\ncowboy/MS\ncowcatcher/SM\ncowed/Y\ncowering/Y\ncower/RDGZ\ncowgirl/MS\ncowhand/S\ncowherd/SM\ncowhide/MGSD\nCowley/M\ncowlick/MS\ncowling/M\ncowl/SGMD\ncowman/M\ncow/MDRSZG\ncowmen\ncoworker/MS\nCowper/M\ncowpoke/MS\ncowpony\ncowpox/MS\ncowpuncher/M\ncowpunch/RZ\ncowrie/SM\ncowshed/SM\ncowslip/MS\ncoxcomb/MS\nCox/M\ncox/MDSG\ncoxswain/GSMD\ncoy/CDSG\ncoyer\ncoyest\ncoyly\nCoy/M\ncoyness/MS\ncoyote/SM\ncoypu/SM\ncozenage/MS\ncozen/SGD\ncozily\ncoziness/MS\nCozmo/M\nCozumel/M\ncozy/DSRTPG\nCPA\ncpd\nCPI\ncpl\nCpl\nCPO\nCPR\ncps\nCPU/SM\ncrabapple\ncrabbedness/M\ncrabbed/YP\nCrabbe/M\ncrabber/MS\ncrabbily\ncrabbiness/S\ncrabbing/M\ncrabby/PRT\ncrabgrass/S\ncrablike\ncrab/MS\ncrackable/U\ncrackdown/MS\ncrackerjack/S\ncracker/M\ncrackle/GJDS\ncrackling/M\ncrackly/RT\ncrackpot/SM\ncrackup/S\ncrack/ZSBYRDG\ncradler/M\ncradle/SRDGM\ncradling/M\ncraftily\ncraftiness/SM\nCraft/M\ncraft/MRDSG\ncraftsman/M\ncraftsmanship/SM\ncraftsmen\ncraftspeople\ncraftspersons\ncraftswoman\ncraftswomen\ncrafty/TRP\nCraggie/M\ncragginess/SM\nCraggy/M\ncraggy/RTP\ncrag/SM\nCraig/M\nCramer/M\ncrammed\ncrammer/M\ncramming\ncramper/M\ncramp/MRDGS\ncrampon/SM\ncram/S\nCranach/M\ncranberry/SM\nCrandall/M\ncrane/DSGM\ncranelike\nCrane/M\nCranford/M\ncranial\ncranium/MS\ncrankcase/MS\ncrankily\ncrankiness/MS\ncrank/SGTRDM\ncrankshaft/MS\ncranky/TRP\nCranmer/M\ncranny/DSGM\nCranston/M\ncrape/SM\ncrapped\ncrappie/M\ncrapping\ncrappy/RST\ncrapshooter/SM\ncrap/SMDG!\ncrasher/M\ncrashing/Y\ncrash/SRDGZ\ncrassness/MS\ncrass/TYRP\ncrate/DSRGMZ\ncrater/DMG\nCrater/M\ncravat/SM\ncravatted\ncravatting\ncrave/DSRGJ\ncravenness/SM\ncraven/SPYDG\ncraver/M\ncraving/M\ncrawdad/S\ncrawfish's\nCrawford/M\ncrawler/M\ncrawl/RDSGZ\ncrawlspace/S\ncrawlway\ncrawly/TRS\ncraw/SYM\ncrayfish/GSDM\nCrayola/M\ncrayon/GSDM\nCray/SM\ncraze/GMDS\ncrazily\ncraziness/MS\ncrazy/SRTP\ncreakily\ncreakiness/SM\ncreak/SDG\ncreaky/PTR\ncreamer/M\ncreamery/MS\ncreamily\ncreaminess/SM\ncream/SMRDGZ\ncreamy/TRP\ncreased/CU\ncrease/IDRSG\ncrease's\ncreases/C\ncreasing/C\ncreated/U\ncreate/XKVNGADS\ncreationism/MS\ncreationist/MS\nCreation/M\ncreation/MAK\ncreativeness/SM\ncreative/YP\ncreativities\ncreativity/K\ncreativity's\nCreator/M\ncreator/MS\ncreatureliness/M\ncreaturely/P\ncreature/YMS\ncr<63>che/SM\ncredence/MS\ncredent\ncredential/SGMD\ncredenza/SM\ncredibility/IMS\ncredible/I\ncredibly/I\ncreditability/M\ncreditableness/M\ncreditable/P\ncreditably/E\ncredited/U\ncredit/EGBSD\ncreditor/MS\ncredit's\ncreditworthiness\ncredo/SM\ncredulity/ISM\ncredulous/IY\ncredulousness/SM\ncreedal\ncreed/C\ncreeds\ncreed's\ncreekside\ncreek/SM\nCreek/SM\ncreel/SMDG\nCree/MDS\ncreeper/M\ncreepily\ncreepiness/SM\ncreep/SGZR\ncreepy/PRST\nCreigh/M\nCreight/M\nCreighton/M\ncremate/XDSNG\ncremation/M\ncrematoria\ncrematorium/MS\ncrematory/S\ncreme/S\ncrenelate/XGNSD\ncrenelation/M\nCreole/MS\ncreole/SM\nCreon/M\ncreosote/MGDS\ncrepe/DSGM\ncrept\ncrescendoed\ncrescendoing\ncrescendo/SCM\ncrescent/MS\ncress/S\ncrestfallenness/M\ncrestfallen/PY\ncresting/M\ncrestless\ncrest/SGMD\nCrestview/M\ncretaceous\nCretaceously/M\nCretaceous/Y\nCretan/S\nCrete/M\ncretinism/MS\ncretin/MS\ncretinous\ncretonne/SM\ncrevasse/DSMG\ncrevice/SM\ncrew/DMGS\ncrewel/SM\ncrewelwork/SM\ncrewman/M\ncrewmen\ncribbage/SM\ncribbed\ncribber/SM\ncribbing/M\ncrib/SM\nCrichton/M\ncricketer/M\ncricket/SMZRDG\ncrick/GDSM\nCrick/M\ncried/C\ncrier/CM\ncries/C\nCrimea/M\nCrimean\ncrime/GMDS\ncriminality/MS\ncriminalization/C\ncriminalize/GC\ncriminal/SYM\ncriminologist/SM\ncriminology/MS\ncrimper/M\ncrimp/RDGS\ncrimson/DMSG\ncringer/M\ncringe/SRDG\ncrinkle/DSG\ncrinkly/TRS\nCrin/M\ncrinoline/SM\ncripple/GMZDRS\ncrippler/M\ncrippling/Y\nCrisco/M\ncrises\ncrisis/M\nCris/M\ncrisper/M\ncrispiness/SM\ncrispness/MS\ncrisp/PGTYRDS\ncrispy/RPT\ncriss\ncrisscross/GDS\nCrissie/M\nCrissy/M\nCristabel/M\nCristal/M\nCrista/M\nCristen/M\nCristian/M\nCristiano/M\nCristie/M\nCristi/M\nCristina/M\nCristine/M\nCristin/M\nCristionna/M\nCristobal/M\nCristy/M\ncriteria\ncriterion/M\ncriticality\ncritically/U\ncriticalness/M\ncritical/YP\ncriticism/MS\ncriticized/U\ncriticize/GSRDZ\ncriticizer/M\ncriticizes/A\ncriticizingly/S\ncriticizing/UY\ncritic/MS\ncritique/MGSD\ncritter/SM\nCr/M\ncroaker/M\ncroak/SRDGZ\ncroaky/RT\nCroatia/M\nCroatian/S\nCroat/SM\nCroce/M\ncrocheter/M\ncrochet/RDSZJG\ncrockery/SM\nCrockett/M\nCrockpot/M\ncrock/SGRDM\ncrocodile/MS\ncrocus/SM\nCroesus/SM\ncrofter/M\ncroft/MRGZS\ncroissant/MS\nCroix/M\nCromwellian\nCromwell/M\ncrone/SM\nCronin/M\nCronkite/M\nCronus/M\ncrony/SM\ncrookedness/SM\ncrooked/TPRY\nCrookes/M\ncrookneck/MS\ncrook/SGDM\ncrooner/M\ncroon/SRDGZ\ncropland/MS\ncrop/MS\ncropped\ncropper/SM\ncropping\ncroquet/MDSG\ncroquette/SM\nCrosby/M\ncrosier/SM\ncrossarm\ncrossbarred\ncrossbarring\ncrossbar/SM\ncrossbeam/MS\ncrossbones\ncrossbowman/M\ncrossbowmen\ncrossbow/SM\ncrossbred/S\ncrossbreed/SG\ncrosscheck/SGD\ncrosscurrent/SM\ncrosscut/SM\ncrosscutting\ncrossed/UA\ncrosses/UA\ncrossfire/SM\ncrosshatch/GDS\ncrossing/M\nCross/M\ncrossness/MS\ncrossover/MS\ncrosspatch/MS\ncrosspiece/SM\ncrosspoint\ncrossproduct/S\ncrossroad/GSM\ncrossroads/M\ncrosstalk/M\ncrosstown\ncrosswalk/MS\ncrossway/M\ncrosswind/SM\ncrosswise\ncrossword/MS\ncross/ZTYSRDMPBJG\ncrotchetiness/M\ncrotchet/MS\ncrotchety/P\ncrotchless\ncrotch/MDS\ncrouch/DSG\ncroupier/M\ncroup/SMDG\ncroupy/TZR\ncro<72>ton/MS\ncrowbait\ncrowbarred\ncrowbarring\ncrowbar/SM\ncrowdedness/M\ncrowded/P\ncrowd/MRDSG\ncrowfeet\ncrowfoot/M\ncrow/GDMS\nCrowley/M\ncrowned/U\ncrowner/M\ncrown/RDMSJG\ncrozier's\nCRT/S\ncrucial/Y\ncrucible/MS\ncrucifiable\ncrucifixion/MS\nCrucifixion/MS\ncrucifix/SM\ncruciform/S\ncrucify/NGDS\ncrudded\ncrudding\ncruddy/TR\ncrudeness/MS\ncrude/YSP\ncrudit<69>s\ncrudity/MS\ncrud/STMR\ncruelness/MS\ncruelty/SM\ncruel/YRTSP\ncruet/MS\ncruft\ncrufty\nCruikshank/M\ncruise/GZSRD\ncruiser/M\ncruller/SM\ncrumb/GSYDM\ncrumble/DSJG\ncrumbliness/MS\ncrumbly/PTRS\ncrumby/RT\ncrumminess/S\ncrummy/SRTP\ncrump\ncrumpet/SM\ncrumple/DSG\ncrunch/DSRGZ\ncrunchiness/MS\ncrunchy/TRP\ncrupper/MS\ncrusade/GDSRMZ\ncrusader/M\ncruse/MS\ncrushable/U\ncrusher/M\ncrushing/Y\ncrushproof\ncrush/SRDBGZ\nCrusoe/M\ncrustacean/MS\ncrustal\ncrust/GMDS\ncrustily\ncrustiness/SM\ncrusty/SRTP\ncrutch/MDSG\nCrux/M\ncrux/MS\nCruz/M\ncrybaby/MS\ncry/JGDRSZ\ncryogenic/S\ncryogenics/M\ncryostat/M\ncryosurgery/SM\ncryptanalysis/M\ncryptanalyst/M\ncryptanalytic\ncrypt/CS\ncryptic\ncryptically\ncryptogram/MS\ncryptographer/MS\ncryptographic\ncryptographically\ncryptography/MS\ncryptologic\ncryptological\ncryptologist/M\ncryptology/M\nCryptozoic/M\ncrypt's\ncrystalline/S\ncrystallite/SM\ncrystallization/AMS\ncrystallized/UA\ncrystallizes/A\ncrystallize/SRDZG\ncrystallizing/A\ncrystallographer/MS\ncrystallographic\ncrystallography/M\nCrystal/M\ncrystal/SM\nCrysta/M\nCrystie/M\nCs\nC's\ncs/EA\ncs's\nCST\nct\nCT\nCthrine/M\nCt/M\nctn\nctr\nCuba/M\nCuban/S\ncubbed\ncubbing\ncubbyhole/MS\ncuber/M\ncube/SM\ncubical/Y\ncubicle/SM\ncubic/YS\ncubism/SM\ncubist/MS\ncubit/MS\ncub/MDRSZG\ncuboid\nCuchulain/M\ncuckold/GSDM\ncuckoldry/MS\ncuckoo/SGDM\ncucumber/MS\ncuddle/GSD\ncuddly/TRP\ncu/DG\ncudgel/GSJMD\ncud/MS\ncue/MS\ncuff/GSDM\nCuisinart/M\ncuisine/MS\nCulbertson/M\nculinary\nCullan/M\ncull/DRGS\ncullender's\nCullen/M\nculler/M\nCulley/M\nCullie/M\nCullin/M\nCull/MN\nCully/M\nculminate/XSDGN\nculmination/M\nculotte/S\nculpability/MS\nculpable/I\nculpableness/M\nculpably\nculpa/SM\nculprit/SM\ncultism/SM\ncultist/SM\ncultivable\ncultivated/U\ncultivate/XBSDGN\ncultivation/M\ncultivator/SM\ncult/MS\ncultural/Y\ncultured/U\nculture/SDGM\nCulver/MS\nculvert/SM\nCu/M\ncumber/DSG\nCumberland/M\ncumbersomeness/MS\ncumbersome/YP\ncumbrous\ncumin/MS\ncummerbund/MS\nCummings\ncumquat's\ncum/S\ncumulate/XVNGSD\ncumulation/M\ncumulative/Y\ncumuli\ncumulonimbi\ncumulonimbus/M\ncumulus/M\nCunard/M\ncuneiform/S\ncunnilingus/SM\nCunningham/M\ncunningness/M\ncunning/RYSPT\ncunt/SM!\ncupboard/SM\ncupcake/SM\nCupertino/M\ncupful/SM\ncupidinously\ncupidity/MS\nCupid/M\ncupid/S\ncup/MS\ncupola/MDGS\ncupped\ncupping/M\ncupric\ncuprous\ncurability/MS\ncurable/IP\ncurableness/MI\ncurably/I\nCuracao/M\ncuracy/SM\ncurare/MS\ncurate/VGMSD\ncurative/YS\ncuratorial\ncurator/KMS\ncurbing/M\ncurbside\ncurb/SJDMG\ncurbstone/MS\nCurcio/M\ncurdle/SDG\ncurd/SMDG\ncured/U\ncure/KBDRSGZ\ncurer/MK\ncurettage/SM\ncurfew/SM\ncurfs\ncuriae\ncuria/M\ncur/IBS\nCurie/M\ncurie/SM\ncuriosity/SM\ncurio/SM\ncuriousness/SM\ncurious/TPRY\nCuritiba/M\ncurium/MS\ncurler/SM\ncurlew/MS\ncurlicue/MGDS\ncurliness/SM\ncurling/M\ncurl/UDSG\ncurlycue's\ncurly/PRT\ncurmudgeon/MYS\nCurran/M\ncurrant/SM\ncurred/AFI\ncurrency's\ncurrency/SF\ncurrent/FSY\ncurrently/A\ncurrentness/M\nCurrey/M\ncurricle/M\ncurricula\ncurricular\ncurriculum/M\nCurrie/M\ncurrier/M\nCurrier/M\ncurring/FAI\nCurr/M\ncurrycomb/DMGS\nCurry/MR\ncurry/RSDMG\ncur's\ncurs/ASDVG\ncurse/A\ncursedness/M\ncursed/YRPT\ncurse's\ncursive/EPYA\ncursiveness/EM\ncursives\ncursor/DMSG\ncursorily\ncursoriness/SM\ncursory/P\ncurtailer/M\ncurtail/LSGDR\ncurtailment/SM\ncurtain/GSMD\nCurtice/M\nCurtis/M\nCurt/M\ncurtness/MS\ncurtsey's\ncurtsy/SDMG\ncurt/TYRP\ncurvaceousness/S\ncurvaceous/YP\ncurvature/MS\ncurved/A\ncurved's\ncurve/DSGM\ncurvilinearity/M\ncurvilinear/Y\ncurving/M\ncurvy/RT\ncushion/SMDG\nCushman/M\ncushy/TR\ncuspid/MS\ncuspidor/MS\ncusp/MS\ncussedness/M\ncussed/YP\ncuss/EGDSR\ncusses/F\ncussing/F\ncuss's\ncustard/MS\nCuster/M\ncustodial\ncustodianship/MS\ncustodian/SM\ncustody/MS\ncustomarily\ncustomariness/M\ncustomary/PS\ncustomer/M\ncustomhouse/S\ncustomization/SM\ncustomize/ZGBSRD\ncustom/SMRZ\ncutaneous/Y\ncutaway/SM\ncutback/SM\ncuteness/MS\ncute/SPY\ncutesy/RT\ncuticle/SM\ncutlass/MS\ncutler/SM\ncutlery/MS\ncutlet/SM\ncut/MRST\ncutoff/MS\ncutout/SM\ncutter/SM\ncutthroat/SM\ncutting/MYS\ncuttlebone/SM\ncuttlefish/MS\ncuttle/M\ncutup/MS\ncutworm/MS\nCuvier/M\nCuzco/M\nCV\ncw\ncwt\nCyanamid/M\ncyanate/M\ncyanic\ncyanide/GMSD\ncyan/MS\ncyanogen/M\nCybele/M\ncybernetic/S\ncybernetics/M\ncyberpunk/S\ncyberspace/S\nCybill/M\nCybil/M\nCyb/M\ncyborg/S\nCyclades\ncyclamen/MS\ncycle/ASDG\ncycler\ncycle's\ncycleway/S\ncyclic\ncyclical/SY\ncycling/M\ncyclist/MS\ncyclohexanol\ncycloidal\ncycloid/SM\ncyclometer/MS\ncyclone/SM\ncyclonic\ncyclopean\ncyclopedia/MS\ncyclopes\nCyclopes\ncyclops\nCyclops/M\ncyclotron/MS\ncyder/SM\ncygnet/MS\nCygnus/M\ncylinder/GMDS\ncylindric\ncylindrical/Y\nCy/M\ncymbalist/MS\ncymbal/SM\nCymbre/M\nCynde/M\nCyndia/M\nCyndie/M\nCyndi/M\nCyndy/M\ncynical/UY\ncynicism/MS\ncynic/MS\ncynosure/SM\nCynthea/M\nCynthia/M\nCynthie/M\nCynthy/M\ncypher/MGSD\ncypreses\ncypress/SM\nCyprian\nCypriot/SM\nCyprus/M\nCyrano/M\nCyrille/M\nCyrillic\nCyrill/M\nCyrillus/M\nCyril/M\nCyrus/M\ncystic\ncyst/MS\ncytochemistry/M\ncytochrome/M\ncytologist/MS\ncytology/MS\ncytolysis/M\ncytoplasmic\ncytoplasm/SM\ncytosine/MS\ncytotoxic\nCZ\nczarevitch/M\nczarina/SM\nczarism/M\nczarist/S\nczarship\nczar/SM\nCzech\nCzechoslovakia/M\nCzechoslovakian/S\nCzechoslovak/S\nCzechs\nCzerniak/M\nCzerny/M\nD\nDA\ndabbed\ndabber/MS\ndabbing\ndabbler/M\ndabble/RSDZG\ndab/S\nDacca's\ndace/MS\nDacey/M\ndacha/SM\nDachau/M\ndachshund/SM\nDacia/M\nDacie/M\nDacron/MS\ndactylic/S\ndactyl/MS\nDacy/M\nDadaism/M\ndadaism/S\nDadaist/M\ndadaist/S\nDada/M\ndaddy/SM\nDade/M\ndado/DMG\ndadoes\ndad/SM\nDaedalus/M\nDael/M\ndaemonic\ndaemon/SM\nDaffie/M\nDaffi/M\ndaffiness/S\ndaffodil/MS\nDaffy/M\ndaffy/PTR\ndaftness/MS\ndaft/TYRP\nDAG\ndagger/DMSG\nDag/M\nDagmar/M\nDagny/M\nDaguerre/M\ndaguerreotype/MGDS\nDagwood/M\nDahlia/M\ndahlia/MS\nDahl/M\nDahomey/M\nDaile/M\ndailiness/MS\ndaily/PS\nDaimler/M\ndaintily\ndaintiness/MS\ndainty/TPRS\ndaiquiri/SM\ndairying/M\ndairyland\ndairymaid/SM\ndairyman/M\ndairymen\ndairy/MJGS\ndairywoman/M\ndairywomen\nDaisey/M\nDaisie/M\nDaisi/M\ndais/SM\nDaisy/M\ndaisy/SM\nDakar/M\nDakotan\nDakota/SM\nDale/M\nDalenna/M\ndale/SMH\ndaleth/M\nDaley/M\nDalhousie/M\nDalia/M\nDalian/M\nDalila/M\nDali/SM\nDallas/M\ndalliance/SM\ndallier/M\nDalli/MS\nDall/M\nDallon/M\ndally/ZRSDG\nDal/M\nDalmatia/M\ndalmatian/S\nDalmatian/SM\nDaloris/M\nDalston/M\nDalt/M\nDalton/M\nDaly/M\ndamageable\ndamaged/U\ndamage/MZGRSD\ndamager/M\ndamaging/Y\nDamara/M\nDamaris/M\nDamascus/M\ndamask/DMGS\ndame/SM\nDame/SMN\nDamian/M\nDamiano/M\nDamien/M\nDamion/M\nDamita/M\ndam/MDS\ndammed\ndamming\ndammit/S\ndamnably\ndamnation/MS\ndamnedest/MS\ndamned/TR\ndamn/GSBRD\ndamning/Y\nDamocles/M\nDamon/M\ndamped/U\ndampener/M\ndampen/RDZG\ndamper/M\ndampness/MS\ndamp/SGZTXYRDNP\ndamselfly/MS\ndamsel/MS\ndamson/MS\nDana<6E>\nDana/M\nDanbury/M\ndancelike\ndancer/M\ndance/SRDJGZ\ndandelion/MS\ndander/DMGS\ndandify/SDG\ndandily\ndandle/GSD\ndandruff/MS\ndandy/TRSM\nDanelaw/M\nDanella/M\nDanell/M\nDane/SM\nDanette/M\ndanger/DMG\nDangerfield/M\ndangerousness/M\ndangerous/YP\ndangler/M\ndangle/ZGRSD\ndangling/Y\ndang/SGZRD\nDanial/M\nDania/M\nDanica/M\nDanice/M\nDaniela/M\nDaniele/M\nDaniella/M\nDanielle/M\nDaniel/SM\nDanielson/M\nDanie/M\nDanika/M\nDanila/M\nDani/M\nDanish\ndanish/S\nDanita/M\nDanit/M\ndankness/MS\ndank/TPYR\nDanna/M\nDannel/M\nDannie/M\nDanni/M\nDannye/M\nDanny/M\ndanseuse/SM\nDan/SM\nDante/M\nDanton/M\nDanube/M\nDanubian\nDanville/M\nDanya/M\nDanyelle/M\nDanyette/M\nDanzig/M\nDaphene/M\nDaphna/M\nDaphne/M\ndapperness/M\ndapper/PSTRY\ndapple/SDG\nDara/M\nDarbee/M\nDarbie/M\nDarb/M\nDarby/M\nDarcee/M\nDarcey/M\nDarcie/M\nDarci/M\nD'Arcy\nDarcy/M\nDarda/M\nDardanelles\ndaredevil/MS\ndaredevilry/S\nDareen/M\nDarelle/M\nDarell/M\nDare/M\nDaren/M\ndarer/M\ndaresay\ndare/ZGDRSJ\nd'Arezzo\nDaria/M\nDarice/M\nDarill/M\nDari/M\ndaringness/M\ndaring/PY\nDarin/M\nDario/M\nDarius/M\nDarjeeling/M\ndarkener/M\ndarken/RDZG\ndark/GTXYRDNSP\ndarkish\ndarkly/TR\ndarkness/MS\ndarkroom/SM\nDarla/M\nDarleen/M\nDarlene/M\nDarline/M\nDarling/M\ndarlingness/M\nDarlington/M\ndarling/YMSP\nDarlleen/M\nDar/MNH\nDarnall/M\ndarned/TR\nDarnell/M\ndarner/M\ndarn/GRDZS\ndarning/M\nDarn/M\nDaron/M\nDARPA/M\nDarrelle/M\nDarrell/M\nDarrel/M\nDarren/M\nDarrick/M\nDarrin/M\nDarrow/M\nDarryl/M\nDarsey/M\nDarsie/M\nd'art\ndartboard/SM\ndarter/M\nDarth/M\nDartmouth/M\ndart/MRDGZS\nDarvon/M\nDarwinian/S\nDarwinism/MS\nDarwinist/MS\nDarwin/M\nDarya/M\nDaryle/M\nDaryl/M\nDaryn/M\nDasha/M\ndashboard/SM\ndasher/M\ndash/GZSRD\ndashiki/SM\ndashing/Y\nDasie/M\nDasi/M\ndastardliness/SM\ndastardly/P\ndastard/MYS\nDasya/M\nDAT\ndatabase/DSMG\ndatafile\ndatagram/MS\ndata/M\nDatamation/M\nDatamedia/M\ndataset/S\ndatedly\ndatedness\ndate/DRSMZGV\ndated/U\ndateless\ndateline/DSMG\ndater/M\nDatha/M\ndative/S\nDatsun/M\ndatum/MS\ndauber/M\ndaub/RDSGZ\nDaugherty/M\ndaughter/MYS\nDaumier/M\nDaune/M\ndaunt/DSG\ndaunted/U\ndaunting/Y\ndauntlessness/SM\ndauntless/PY\ndauphin/SM\nDavao/M\nDaveen/M\nDave/M\nDaven/M\nDavenport/M\ndavenport/MS\nDaveta/M\nDavey/M\nDavida/M\nDavidde/M\nDavide/M\nDavid/SM\nDavidson/M\nDavie/M\nDavina/M\nDavine/M\nDavinich/M\nDavin/M\nDavis/M\nDavita/M\ndavit/SM\nDav/MN\nDavon/M\nDavy/SM\ndawdler/M\ndawdle/ZGRSD\nDawes/M\nDawna/M\ndawn/GSDM\nDawn/M\nDawson/M\ndaybed/S\ndaybreak/SM\ndaycare/S\ndaydreamer/M\ndaydream/RDMSZG\nDayle/M\ndaylight/GSDM\nDay/M\nDayna/M\ndaysack\nday/SM\ndaytime/SM\nDayton/M\ndazed/PY\ndaze/DSG\ndazzler/M\ndazzle/ZGJRSD\ndazzling/Y\ndb\nDB\ndbl\ndB/M\nDBMS\nDC\nDD\nDdene/M\nDDS\nDDT\nDE\ndeacon/DSMG\ndeaconess/MS\ndeadbeat/SM\ndeadbolt/S\ndeadener/M\ndeadening/MY\ndeaden/RDG\ndeadhead/MS\ndeadline/MGDS\ndeadliness/SM\ndeadlock/MGDS\ndeadly/RPT\ndeadness/M\ndeadpanned\ndeadpanner\ndeadpanning\ndeadpan/S\ndead/PTXYRN\ndeadwood/SM\ndeafening/MY\ndeafen/JGD\ndeafness/MS\ndeaf/TXPYRN\ndealer/M\ndealership/MS\ndealing/M\ndeallocator\ndeal/RSGZJ\ndealt\nDeana/M\ndean/DMG\nDeandre/M\nDeane/M\ndeanery/MS\nDean/M\nDeanna/M\nDeanne/M\nDeann/M\ndeanship/SM\nDearborn/M\ndearness/MS\ndearth/M\ndearths\ndear/TYRHPS\ndeary/MS\ndeassign\ndeathbed/MS\ndeathblow/SM\ndeathless/Y\ndeathlike\ndeathly/TR\ndeath/MY\ndeaths\ndeathtrap/SM\ndeathward\ndeathwatch/MS\ndebacle/SM\ndebarkation/SM\ndebark/G\ndebar/L\ndebarment/SM\ndebarring\ndebaser/M\ndebatable/U\ndebate/BMZ\ndebater/M\ndebauchedness/M\ndebauched/PY\ndebauchee/SM\ndebaucher/M\ndebauchery/SM\ndebauch/GDRS\nDebbie/M\nDebbi/M\nDebby/M\nDebee/M\ndebenture/MS\nDebera/M\ndebilitate/NGXSD\ndebilitation/M\ndebility/MS\nDebi/M\ndebit/DG\ndeb/MS\nDeb/MS\ndebonairness/SM\ndebonair/PY\nDeborah/M\nDebora/M\nDebor/M\ndebouch/DSG\nDebra/M\ndebrief/GJ\ndebris/M\ndebtor/SM\ndebt/SM\nDebussy/M\nd<6E>butante/SM\ndebut/MDG\ndecade/MS\ndecadency/S\ndecadent/YS\ndecaffeinate/DSG\ndecaf/S\ndecagon/MS\nDecalogue/M\ndecal/SM\ndecamp/L\ndecampment/MS\ndecapitate/GSD\ndecapitator/SM\ndecathlon/SM\nDecatur/M\ndecay/GRD\nDecca/M\nDeccan/M\ndecease/M\ndecedent/MS\ndeceitfulness/SM\ndeceitful/PY\ndeceit/SM\ndeceived/U\ndeceiver/M\ndeceives/U\ndeceive/ZGRSD\ndeceivingly\ndeceiving/U\ndecelerate/XNGSD\ndeceleration/M\ndecelerator/SM\nDecember/SM\ndecency/ISM\ndecennial/SY\ndecent/TIYR\ndeception/SM\ndeceptiveness/SM\ndeceptive/YP\ndecertify/N\ndechlorinate/N\ndecibel/MS\ndecidability/U\ndecidable/U\ndecidedness/M\ndecided/PY\ndecide/GRSDB\ndeciduousness/M\ndeciduous/YP\ndecile/SM\ndeciliter/SM\ndecimal/SYM\ndecimate/XNGDS\ndecimation/M\ndecimeter/MS\ndecipherable/IU\ndecipher/BRZG\ndecipherer/M\ndecisional\ndecisioned\ndecisioning\ndecision/ISM\ndecisive/IPY\ndecisiveness/MSI\ndeckchair\ndecker/M\nDecker/M\ndeck/GRDMSJ\ndeckhand/S\ndecking/M\nDeck/RM\ndeclamation/SM\ndeclamatory\ndeclarable\ndeclaration/MS\ndeclaration's/A\ndeclarative/SY\ndeclarator/MS\ndeclaratory\ndeclare/AGSD\ndeclared/U\ndeclarer/MS\ndeclension/SM\ndeclination/MS\ndecliner/M\ndecline/ZGRSD\ndeclivity/SM\nDec/M\nDEC/M\nDECNET\nDECnet/M\ndeco\nd<6E>colletage/S\nd<6E>collet<65>\ndecolletes\ndecolorising\ndecomposability/M\ndecomposable/IU\ndecompose/B\ndecompress/R\ndecongestant/S\ndeconstruction\ndeconvolution\ndecorated/AU\ndecorate/NGVDSX\ndecorates/A\ndecorating/A\ndecoration/ASM\ndecorativeness/M\ndecorative/YP\ndecorator/SM\ndecorousness/MS\ndecorousness's/I\ndecorous/PIY\ndecor/S\ndecorticate/GNDS\ndecortication/M\ndecorum/MS\ndecoupage/MGSD\ndecouple/G\ndecoy/M\ndecrease\ndecreasing/Y\ndecreeing\ndecree/RSM\ndecremental\ndecrement/DMGS\ndecrepit\ndecrepitude/SM\ndecriminalization/S\ndecriminalize/DS\ndecry/G\ndecrypt/GD\ndecryption\nDECstation/M\nDECsystem/M\nDECtape/M\ndecustomised\nDedekind/M\nDede/M\ndedicate/AGDS\ndedicated/Y\ndedication/MS\ndedicative\ndedicator/MS\ndedicatory\nDedie/M\nDedra/M\ndeduce/RSDG\ndeducible\ndeductibility/M\ndeductible/S\ndeduction/SM\ndeductive/Y\ndeduct/VG\nDeeanne/M\nDeeann/M\ndeeded\nDeedee/M\ndeeding\ndeed/IS\ndeed's\ndeejay/MDSG\nDee/M\ndeem/ADGS\ndeemphasis\nDeena/M\ndeepen/DG\ndeepish\ndeepness/MS\ndeep/PTXSYRN\nDeerdre/M\nDeere/M\ndeerskin/MS\ndeer/SM\ndeerstalker/SM\ndeerstalking/M\nDeeyn/M\ndeface/LZ\ndefacement/SM\ndefaecate\ndefalcate/NGXSD\ndefalcation/M\ndefamation/SM\ndefamatory\ndefamer/M\ndefame/ZR\ndefaulter/M\ndefault/ZR\ndefeated/U\ndefeater/M\ndefeatism/SM\ndefeatist/SM\ndefeat/ZGD\ndefecate/DSNGX\ndefecation/M\ndefection/SM\ndefectiveness/MS\ndefective/PYS\ndefect/MDSVG\ndefector/MS\ndefendant/SM\ndefended/U\ndefenestrate/GSD\ndefenselessness/MS\ndefenseless/PY\ndefenses/U\ndefense/VGSDM\ndefensibility/M\ndefensible/I\ndefensibly/I\ndefensiveness/MS\ndefensive/PSY\ndeference/MS\ndeferential/Y\ndeferent/S\ndeferrable\ndeferral/SM\ndeferred\ndeferrer/MS\ndeferring\ndeffer\ndefiance/MS\ndefiant/Y\ndefibrillator/M\ndeficiency/MS\ndeficient/SY\ndeficit/MS\ndefier/M\ndefile/L\ndefilement/MS\ndefinable/UI\ndefinably/I\ndefine/AGDRS\ndefined/U\ndefiner/SM\ndefinite/IPY\ndefiniteness/IMS\ndefinitional\ndefinition/ASM\ndefinitiveness/M\ndefinitive/SYP\ndefis\ndeflate/XNGRSDB\ndeflationary\ndeflation/M\ndeflect/DSGV\ndeflected/U\ndeflection/MS\ndeflector/MS\ndefocus\ndefocussing\nDefoe/M\ndefog\ndefogger/S\ndefoliant/SM\ndefoliator/SM\ndeformational\ndeform/B\ndeformed/U\ndeformity/SM\ndefrauder/M\ndefraud/ZGDR\ndefrayal/SM\ndefroster/M\ndefrost/RZ\ndeftness/MS\ndeft/TYRP\ndefunct/S\ndefying/Y\ndefy/RDG\ndef/Z\ndeg\nDegas/M\ndegassing\ndegauss/GD\ndegeneracy/MS\ndegenerateness/M\ndegenerate/PY\ndegrade/B\ndegradedness/M\ndegraded/YP\ndegrading/Y\ndegrease\ndegree/SM\ndegum\nDehlia/M\ndehumanize\ndehydrator/MS\ndeicer/M\ndeice/ZR\ndeictic\nDeidre/M\ndeification/M\ndeify/SDXGN\ndeign/DGS\nDeimos/M\nDeina/M\nDeirdre/MS\ndeistic\ndeist/SM\nDeity/M\ndeity/SM\ndeja\ndeject/DSG\ndejectedness/M\ndejected/PY\ndejection/SM\nDejesus/M\nDeKalb/M\nDeKastere/M\nDelacroix/M\nDelacruz/M\nDelainey/M\nDela/M\nDelaney/M\nDelano/M\nDelawarean/SM\nDelaware/MS\ndelay/D\ndelayer/G\nDelbert/M\nDelcina/M\nDelcine/M\ndelectableness/M\ndelectable/SP\ndelectably\ndelectation/MS\ndelegable\nDeleon/M\ndeleted/U\ndeleteriousness/M\ndeleterious/PY\ndelete/XBRSDNG\ndeletion/M\ndelfs\nDelft/M\ndelft/MS\ndelftware/S\nDelgado/M\nDelhi/M\nDelia/M\ndeliberateness/SM\ndeliberate/PVY\ndeliberativeness/M\ndeliberative/PY\nDelibes/M\ndelicacy/IMS\ndelicate/IYP\ndelicatenesses\ndelicateness/IM\ndelicates\ndelicatessen/MS\ndeliciousness/MS\ndelicious/YSP\ndelicti\ndelightedness/M\ndelighted/YP\ndelightfulness/M\ndelightful/YP\nDelilah/M\nDelilahs\nDelila/M\nDelinda/M\ndelineate/SDXVNG\ndelineation/M\ndelinquency/MS\ndelinquent/SYM\ndeliquesce/GSD\ndeliquescent\ndeliriousness/MS\ndelirious/PY\ndelirium/SM\ndeli/SM\nDelius/M\ndeliverables\ndeliverable/U\ndeliver/AGSD\ndeliverance/SM\ndelivered/U\ndeliverer/SM\ndelivery/AM\ndeliverymen/M\nDella/M\nDell/M\ndell/SM\nDellwood/M\nDelly/M\nDelmar/M\nDelmarva/M\nDelmer/M\nDelmonico\nDelmore/M\nDelmor/M\nDel/MY\nDelora/M\nDelores/M\nDeloria/M\nDeloris/M\nDelphic\nDelphi/M\nDelphine/M\nDelphinia/M\ndelphinium/SM\nDelphinus/M\nDelta/M\ndelta/MS\ndeltoid/SM\ndeluder/M\ndelude/RSDG\ndeluding/Y\ndeluge/SDG\ndelusional\ndelusion/SM\ndelusiveness/M\ndelusive/PY\ndeluxe\ndelve/GZSRD\ndelver/M\ndemagnify/N\ndemagogic\ndemagogue/GSDM\ndemagoguery/SM\ndemagogy/MS\ndemander/M\ndemand/GSRD\ndemandingly\ndemanding/U\ndemarcate/SDNGX\ndemarcation/M\nDemavend/M\ndemean/GDS\ndemeanor/SM\ndementedness/M\ndemented/YP\ndementia/MS\nDemerol/M\ndemesne/SM\nDemeter/M\nDemetra/M\nDemetre/M\nDemetria/M\nDemetri/MS\nDemetrius/M\ndemigod/MS\ndemijohn/MS\ndemimondaine/SM\ndemimonde/SM\ndemineralization/SM\nDeming/M\ndemise/DMG\ndemit\ndemitasse/MS\ndemitted\ndemitting\nDem/MG\ndemocracy/MS\nDemocratic\ndemocratically/U\ndemocratic/U\ndemocratization/MS\ndemocratize/DRSG\ndemocratizes/U\nDemocrat/MS\ndemocrat/SM\nDemocritus/M\nd<6E>mod<6F>\ndemo/DMPG\ndemographer/MS\ndemographical/Y\ndemographic/S\ndemography/MS\ndemolisher/M\ndemolish/GSRD\ndemolition/MS\ndemonetization/S\ndemoniacal/Y\ndemoniac/S\ndemonic\ndemonology/M\ndemon/SM\ndemonstrable/I\ndemonstrableness/M\ndemonstrably/I\ndemonstrate/XDSNGV\ndemonstration/M\ndemonstrativenesses\ndemonstrativeness/UM\ndemonstratives\ndemonstrative/YUP\ndemonstrator/MS\ndemoralization/M\ndemoralizer/M\ndemoralizing/Y\nDeMorgan/M\nDemosthenes/M\ndemote/DGX\ndemotic/S\nDemott/M\ndemount/B\nDempsey/M\ndemulcent/S\ndemultiplex\ndemureness/SM\ndemure/YP\ndemurral/MS\ndemurred\ndemurrer/MS\ndemurring\ndemur/RTS\ndemythologization/M\ndemythologize/R\nden\nDena/M\ndendrite/MS\nDeneb/M\nDenebola/M\nDeneen/M\nDene/M\nDeng/M\ndengue/MS\ndeniable/U\ndenial/SM\nDenice/M\ndenier/M\ndenigrate/VNGXSD\ndenigration/M\ndenim/SM\nDenise/M\nDeni/SM\ndenizen/SMDG\nDen/M\nDe/NM\nDenmark/M\nDenna/M\ndenned\nDennet/M\nDenney/M\nDennie/M\nDenni/MS\ndenning\nDennison/M\nDenny/M\ndenominate/V\ndenominational/Y\ndenote/B\ndenouement/MS\ndenounce/LZRSDG\ndenouncement/SM\ndenouncer/M\ndense/FR\ndensely\ndenseness/SM\ndensitometer/MS\ndensitometric\ndensitometry/M\ndensity/MS\ndens/RT\ndental/YS\ndentifrice/SM\ndentine's\ndentin/SM\ndent/ISGD\ndentistry/MS\ndentist/SM\ndentition/MS\ndent's\ndenture/IMS\ndenuclearize/GSD\ndenudation/SM\ndenude/DG\ndenuder/M\ndenunciate/VNGSDX\ndenunciation/M\nDenver/M\ndenying/Y\nDeny/M\nDenys\nDenyse/M\ndeny/SRDZG\ndeodorant/SM\ndeodorization/SM\ndeodorize/GZSRD\ndeodorizer/M\nDeon/M\nDeonne/M\ndeoxyribonucleic\ndepart/L\ndepartmentalization/SM\ndepartmentalize/DSG\ndepartmental/Y\ndepartment/MS\ndeparture/MS\ndependability/MS\ndependableness/M\ndependable/P\ndependably\nDependant/MS\ndepend/B\ndependence/ISM\ndependency/MS\ndependent/IYS\ndependent's\ndepicted/U\ndepicter/M\ndepiction/SM\ndepict/RDSG\ndepilatory/S\ndeplete/VGNSDX\ndepletion/M\ndeplorableness/M\ndeplorable/P\ndeplorably\ndeplorer/M\ndeplore/SRDBG\ndeploring/Y\ndeployable\ndeploy/AGDLS\ndeployment/SAM\ndepolarize\ndeponent/S\ndeportation/MS\ndeportee/SM\ndeport/LG\ndeportment/MS\ndepose\ndeposit/ADGS\ndepositary/M\ndeposition/A\ndepositor/SAM\ndepository/MS\ndepravedness/M\ndepraved/PY\ndeprave/GSRD\ndepraver/M\ndepravity/SM\ndeprecate/XSDNG\ndeprecating/Y\ndeprecation/M\ndeprecatory\ndepreciable\ndepreciate/XDSNGV\ndepreciating/Y\ndepreciation/M\ndepreciative/Y\ndepressant/S\ndepressible\ndepression/MS\ndepressive/YS\ndepressor/MS\ndepress/V\ndeprive/GSD\ndepth/M\ndepths\nDept/M\ndeputation/SM\ndepute/SDG\ndeputize/DSG\ndeputy/MS\ndequeue\nderail/L\nd<6E>railleur/MS\nderailment/MS\nderange/L\nderangement/MS\nDerbyshire/M\nderby/SM\nDerby/SM\ndereference/Z\nDerek/M\ndereliction/SM\nderelict/S\nDerick/M\nderide/D\nderiding/Y\nderision/SM\nderisiveness/MS\nderisive/PY\nderisory\nderivable/U\nderivate/XNV\nderivation/M\nderivativeness/M\nderivative/SPYM\nderive/B\nderived/U\nDerk/M\nDer/M\ndermal\ndermatitides\ndermatitis/MS\ndermatological\ndermatologist/MS\ndermatology/MS\ndermis/SM\nDermot/M\nderogate/XDSNGV\nderogation/M\nderogatorily\nderogatory\nDerrek/M\nDerrick/M\nderrick/SMDG\nDerrida/M\nderri<72>re/S\nDerrik/M\nDerril/M\nderringer/SM\nDerron/M\nDerry/M\ndervish/SM\nDerward/M\nDerwin/M\nDes\ndesalinate/NGSDX\ndesalination/M\ndesalinization/MS\ndesalinize/GSD\ndesalt/G\ndescant/M\nDescartes/M\ndescendant/SM\ndescended/FU\ndescendent's\ndescender/M\ndescending/F\ndescends/F\ndescend/ZGSDR\ndescent\ndescribable/I\ndescribe/ZB\ndescription/MS\ndescriptiveness/MS\ndescriptive/SYP\ndescriptor/SM\ndescry/SDG\nDesdemona/M\ndesecrater/M\ndesecrate/SRDGNX\ndesecration/M\ndeserter/M\ndesertification\ndesertion/MS\ndesert/ZGMRDS\ndeservedness/M\ndeserved/YU\ndeserve/J\ndeserving/Y\nd<6E>shabill<6C>'s\ndesiccant/S\ndesiccate/XNGSD\ndesiccation/M\ndesiccator/SM\ndesiderata\ndesideratum/M\ndesignable\ndesign/ADGS\ndesignate/VNGSDX\ndesignational\ndesignation/M\ndesignator/SM\ndesigned/Y\ndesigner/M\ndesigning/U\nDesi/M\ndesirabilia\ndesirability's\ndesirability/US\ndesirableness/SM\ndesirableness's/U\ndesirable/UPS\ndesirably/U\nDesirae/M\ndesire/BR\ndesired/U\nDesiree/M\ndesirer/M\nDesiri/M\ndesirousness/M\ndesirous/PY\ndesist/DSG\ndesk/SM\ndesktop/S\nDesmond/M\nDesmund/M\ndesolateness/SM\ndesolate/PXDRSYNG\ndesolater/M\ndesolating/Y\ndesolation/M\ndesorption/M\ndespairer/M\ndespairing/Y\ndespair/SGDR\ndesperadoes\ndesperado/M\ndesperateness/SM\ndesperate/YNXP\ndesperation/M\ndespicable\ndespicably\ndespiser/M\ndespise/SRDG\ndespoil/L\ndespoilment/MS\ndespond\ndespondence/S\ndespondency/MS\ndespondent/Y\ndespotic\ndespotically\ndespotism/SM\ndessert/SM\ndessicate/DN\nd'Estaing\ndestinate/NX\ndestination/M\ndestine/GSD\ndestiny/MS\ndestituteness/M\ndestitute/NXP\ndestitution/M\ndestroy/BZGDRS\ndestroyer/M\ndestructibility/SMI\ndestructible/I\ndestruction/SM\ndestructiveness/MS\ndestructive/YP\ndestructor/M\ndestruct/VGSD\ndesuetude/MS\ndesultorily\ndesultoriness/M\ndesultory/P\ndetachedness/M\ndetached/YP\ndetacher/M\ndetach/LSRDBG\ndetachment/SM\ndetailedness/M\ndetailed/YP\ndetainee/S\ndetainer/M\ndetain/LGRDS\ndetainment/MS\nd'etat\ndetectability/U\ndetectable/U\ndetectably/U\ndetect/DBSVG\ndetected/U\ndetection/SM\ndetective/MS\ndetector/MS\nd<6E>tente\ndetentes\ndetention/SM\ndetergency/M\ndetergent/SM\ndeteriorate/XDSNGV\ndeterioration/M\ndeterment/SM\ndeterminability/M\ndeterminable/IP\ndeterminableness/IM\ndeterminacy/I\ndeterminant/MS\ndeterminateness/IM\ndeterminate/PYIN\ndetermination/IM\ndeterminativeness/M\ndeterminative/P\ndeterminedly\ndeterminedness/M\ndetermined/U\ndetermine/GASD\ndeterminer/SM\ndeterminism/MS\ndeterminism's/I\ndeterministically\ndeterministic/I\ndeterred/U\ndeterrence/SM\ndeterrent/SMY\ndeterring\ndetersive/S\ndeter/SL\ndeters/V\ndetestableness/M\ndetestable/P\ndetestably\ndetestation/SM\ndethrone/L\ndethronement/SM\ndetonable\ndetonated/U\ndetonate/XDSNGV\ndetonation/M\ndetonator/MS\ndetour/G\ndetoxification/M\ndetoxify/NXGSD\ndetox/SDG\ndetract/GVD\ndetractive/Y\nd'etre\ndetribalize/GSD\ndetrimental/SY\ndetriment/SM\ndetritus/M\nDetroit/M\ndeuced/Y\ndeuce/SDGM\ndeus\ndeuterium/MS\ndeuteron/M\nDeuteronomy/M\nDeutsch/M\nDeva/M\nDevanagari/M\nDevan/M\ndevastate/XVNGSD\ndevastating/Y\ndevastation/M\ndevastator/SM\ndevelop/ALZSGDR\ndeveloped/U\ndeveloper/MA\ndevelopmental/Y\ndevelopment/ASM\ndeviance/MS\ndeviancy/S\ndeviant/YMS\ndeviated/U\ndeviate/XSDGN\ndeviating/U\ndeviation/M\ndevilishness/MS\ndevilish/PY\ndevilment/SM\ndevilry/MS\ndevil/SLMDG\ndeviltry/MS\nDevi/M\nDevina/M\nDevin/M\nDevinne/M\ndeviousness/SM\ndevious/YP\ndevise/JR\ndeviser/M\nDevland/M\nDevlen/M\nDevlin/M\nDev/M\ndevoice\ndevolution/MS\ndevolve/GSD\nDevondra/M\nDevonian\nDevon/M\nDevonna/M\nDevonne/M\nDevonshire/M\nDevora/M\ndevoted/Y\ndevotee/MS\ndevote/XN\ndevotional/YS\ndevotion/M\ndevourer/M\ndevour/SRDZG\ndevoutness/MS\ndevout/PRYT\nDevy/M\nDewain/M\ndewar\nDewar/M\nDewayne/M\ndewberry/MS\ndewclaw/SM\ndewdrop/MS\nDewey/M\nDewie/M\ndewiness/MS\nDewitt/M\ndewlap/MS\nDew/M\ndew/MDGS\ndewy/TPR\nDexedrine/M\ndexes/I\nDex/M\ndexter\ndexterity/MS\nDexter/M\ndexterousness/MS\ndexterous/PY\ndextrose/SM\nDH\nDhaka\nDhaulagiri/M\ndhoti/SM\ndhow/MS\nDI\ndiabase/M\ndiabetes/M\ndiabetic/S\ndiabolic\ndiabolicalness/M\ndiabolical/YP\ndiabolism/M\ndiachronic/P\ndiacritical/YS\ndiacritic/MS\ndiadem/GMDS\ndiaereses\ndiaeresis/M\nDiaghilev/M\ndiagnometer/SM\ndiagnosable/U\ndiagnose/BGDS\ndiagnosed/U\ndiagnosis/M\ndiagnostically\ndiagnostician/SM\ndiagnostic/MS\ndiagnostics/M\ndiagonalize/GDSB\ndiagonal/YS\ndiagrammable\ndiagrammatic\ndiagrammaticality\ndiagrammatically\ndiagrammed\ndiagrammer/SM\ndiagramming\ndiagram/MS\nDiahann/M\ndialectal/Y\ndialectical/Y\ndialectic/MS\ndialect/MS\ndialed/A\ndialer/M\ndialing/M\ndial/MRDSGZJ\ndialogged\ndialogging\ndialog/MS\ndials/A\ndialysis/M\ndialyzed/U\ndialyzes\ndiam\ndiamagnetic\ndiameter/MS\ndiametric\ndiametrical/Y\ndiamondback/SM\ndiamond/GSMD\nDiana/M\nDiandra/M\nDiane/M\nDianemarie/M\nDian/M\nDianna/M\nDianne/M\nDiann/M\nDiannne/M\ndiapason/MS\ndiaper/SGDM\ndiaphanousness/M\ndiaphanous/YP\ndiaphragmatic\ndiaphragm/SM\ndiarist/SM\nDiarmid/M\ndiarrheal\ndiarrhea/MS\ndiary/MS\ndiaspora\nDiaspora/SM\ndiastase/SM\ndiastole/MS\ndiastolic\ndiathermy/SM\ndiathesis/M\ndiatomic\ndiatom/SM\ndiatonic\ndiatribe/MS\nDiaz's\ndibble/SDMG\ndibs\nDiCaprio/M\ndice/GDRS\ndicer/M\ndicey\ndichloride/M\ndichotomization/M\ndichotomize/DSG\ndichotomous/PY\ndichotomy/SM\ndicier\ndiciest\ndicing/M\nDickensian/S\ndickens/M\nDickens/M\ndicker/DG\nDickerson/M\ndickey/SM\ndick/GZXRDMS!\nDickie/M\ndickier\ndickiest\nDickinson/M\nDickson/M\nDick/XM\nDicky/M\ndicky's\ndicotyledonous\ndicotyledon/SM\ndicta/M\nDictaphone/SM\ndictate/SDNGX\ndictation/M\ndictatorialness/M\ndictatorial/YP\ndictator/MS\ndictatorship/SM\ndictionary/SM\ndiction/MS\ndictum/M\ndidactically\ndidactic/S\ndidactics/M\ndid/AU\ndiddler/M\ndiddle/ZGRSD\nDiderot/M\nDidi/M\ndidn't\ndidoes\ndido/M\nDido/M\ndidst\ndie/DS\nDiefenbaker/M\nDiego/M\ndieing\ndielectric/MS\ndiem\nDiem/M\nDiena/M\nDierdre/M\ndiereses\ndieresis/M\ndiesel/GMDS\nDiesel's\ndies's\ndies/U\ndietary/S\ndieter/M\nDieter/M\ndietetic/S\ndietetics/M\ndiethylaminoethyl\ndiethylstilbestrol/M\ndietitian/MS\ndiet/RDGZSM\nDietrich/M\nDietz/M\ndifference/DSGM\ndifference's/I\ndifferences/I\ndifferentiability\ndifferentiable\ndifferential/SMY\ndifferentiated/U\ndifferentiate/XSDNG\ndifferentiation/M\ndifferentiator/SM\ndifferentness\ndifferent/YI\ndiffer/SZGRD\ndifficile\ndifficult/Y\ndifficulty/SM\ndiffidence/MS\ndiffident/Y\ndiffract/GSD\ndiffraction/SM\ndiffractometer/SM\ndiffuseness/MS\ndiffuse/PRSDZYVXNG\ndiffuser/M\ndiffusible\ndiffusional\ndiffusion/M\ndiffusiveness/M\ndiffusive/YP\ndiffusivity/M\ndigerati\ndigested/IU\ndigester/M\ndigestibility/MS\ndigestible/I\ndigestifs\ndigestion/ISM\ndigestive/YSP\ndigest/RDVGS\ndigger/MS\ndigging/S\ndigitalis/M\ndigitalization/MS\ndigitalized\ndigitalizes\ndigitalizing\ndigital/SY\ndigitization/M\ndigitizer/M\ndigitize/ZGDRS\ndigit/SM\ndignified/U\ndignify/DSG\ndignitary/SM\ndignity/ISM\ndigram\ndigraph/M\ndigraphs\ndigress/GVDS\ndigression/SM\ndigressiveness/M\ndigressive/PY\ndig/TS\ndihedral\nDijkstra/M\nDijon/M\ndike/DRSMG\ndiker/M\ndiktat/SM\nDilan/M\ndilapidate/XGNSD\ndilapidation/M\ndilatation/SM\ndilated/YP\ndilate/XVNGSD\ndilation/M\ndilatoriness/M\ndilator/SM\ndilatory/P\nDilbert/M\ndilemma/MS\ndilettante/MS\ndilettantish\ndilettantism/MS\ndiligence/SM\ndiligentness/M\ndiligent/YP\ndilithium\nDillard/M\nDillie/M\nDillinger/M\ndilling/R\ndillis\nDill/M\nDillon/M\ndill/SGMD\ndillydally/GSD\nDilly/M\ndilly/SM\ndilogarithm\ndiluent\ndiluted/U\ndiluteness/M\ndilute/RSDPXYVNG\ndilution/M\nDi/M\nDiMaggio/M\ndimensionality/M\ndimensional/Y\ndimensionless\ndimension/MDGS\ndimer/M\ndime/SM\ndimethylglyoxime\ndimethyl/M\ndiminished/U\ndiminish/SDGBJ\ndiminuendo/SM\ndiminution/SM\ndiminutiveness/M\ndiminutive/SYP\nDimitri/M\nDimitry/M\ndimity/MS\ndimmed/U\ndimmer/MS\ndimmest\ndimming\ndimness/SM\ndimorphism/M\ndimple/MGSD\ndimply/RT\ndim/RYPZS\ndimwit/MS\ndimwitted\nDinah/M\nDina/M\ndinar/SM\ndiner/M\ndine/S\ndinette/MS\ndingbat/MS\nding/GD\ndinghy/SM\ndingily\ndinginess/SM\ndingle/MS\ndingoes\ndingo/MS\ndingus/SM\ndingy/PRST\ndinky/RST\ndin/MDRZGS\ndinned\ndinner/SM\ndinnertime/S\ndinnerware/MS\nDinnie/M\ndinning\nDinny/M\nDino/M\ndinosaur/MS\ndint/SGMD\ndiocesan/S\ndiocese/SM\nDiocletian/M\ndiode/SM\nDiogenes/M\nDione/M\nDionisio/M\nDionis/M\nDion/M\nDionne/M\nDionysian\nDionysus/M\nDiophantine/M\ndiopter/MS\ndiorama/SM\nDior/M\ndioxalate\ndioxide/MS\ndioxin/S\ndiphtheria/SM\ndiphthong/SM\ndiplexers\ndiploid/S\ndiplomacy/SM\ndiploma/SMDG\ndiplomata\ndiplomatically\ndiplomatic/S\ndiplomatics/M\ndiplomatist/SM\ndiplomat/MS\ndipodic\ndipody/M\ndipole/MS\ndipped\nDipper/M\ndipper/SM\ndipping/S\ndippy/TR\ndip/S\ndipsomaniac/MS\ndipsomania/SM\ndipstick/MS\ndipterous\ndiptych/M\ndiptychs\nDir\nDirac/M\ndirected/IUA\ndirectionality\ndirectional/SY\ndirection/MIS\ndirections/A\ndirective/SM\ndirectivity/M\ndirectly/I\ndirectness/ISM\ndirector/AMS\ndirectorate/SM\ndirectorial\ndirectorship/SM\ndirectory/SM\ndirect/RDYPTSVG\ndirectrix/MS\ndirects/IA\ndireful/Y\ndireness/M\ndire/YTRP\ndirge/GSDM\nDirichlet/M\ndirigible/S\ndirk/GDMS\nDirk/M\ndirndl/MS\ndirtily\ndirtiness/SM\ndirt/MS\ndirty/GPRSDT\nDis\ndisable/LZGD\ndisablement/MS\ndisabler/M\ndisabuse\ndisadvantaged/P\ndisagreeable/S\ndisallow/D\ndisambiguate/DSGNX\ndisappointed/Y\ndisappointing/Y\ndisarming/Y\ndisarrange/L\ndisastrous/Y\ndisband/L\ndisbandment/SM\ndisbar/L\ndisbarment/MS\ndisbarring\ndisbelieving/Y\ndisbursal/S\ndisburse/GDRSL\ndisbursement/MS\ndisburser/M\ndiscerner/M\ndiscernibility\ndiscernible/I\ndiscernibly\ndiscerning/Y\ndiscernment/MS\ndiscern/SDRGL\ndisc/GDM\ndischarged/U\ndisciple/DSMG\ndiscipleship/SM\ndisciplinarian/SM\ndisciplinary\ndisciplined/U\ndiscipline/IDM\ndiscipliner/M\ndisciplines\ndisciplining\ndisclosed/U\ndiscography/MS\ndiscolored/MP\ndiscoloreds/U\ndiscolor/G\ndiscombobulate/SDGNX\ndiscomfit/DG\ndiscomfiture/MS\ndisco/MG\ndiscommode/DG\ndisconcerting/Y\ndisconnectedness/S\ndisconnected/P\ndisconnecter/M\ndisconnect/R\ndisconsolate/YN\ndiscordance/SM\ndiscordant/Y\ndiscord/G\ndiscorporate/D\ndiscotheque/MS\ndiscount/B\ndiscourage/LGDR\ndiscouragement/MS\ndiscouraging/Y\ndiscoverable/I\ndiscover/ADGS\ndiscovered/U\ndiscoverer/S\ndiscovery/SAM\ndiscreetly/I\ndiscreetness's/I\ndiscreetness/SM\ndiscreet/TRYP\ndiscrepancy/SM\ndiscrepant/Y\ndiscreteness/SM\ndiscrete/YPNX\ndiscretionary\ndiscretion/IMS\ndiscretization\ndiscretized\ndiscriminable\ndiscriminant/MS\ndiscriminated/U\ndiscriminate/SDVNGX\ndiscriminating/YI\ndiscrimination/MI\ndiscriminator/MS\ndiscriminatory\ndiscursiveness/S\ndiscussant/MS\ndiscussed/UA\ndiscusser/M\ndiscussion/SM\ndiscus/SM\ndisdainfulness/M\ndisdainful/YP\ndisdain/MGSD\ndisease/G\ndisembowelment/SM\ndisembowel/SLGD\ndisengage/L\ndisfigure/L\ndisfigurement/MS\ndisfranchise/L\ndisfranchisement/MS\ndisgorge\ndisgrace/R\ndisgracer/M\ndisgruntle/DSLG\ndisgruntlement/MS\ndisguised/UY\ndisguise/R\ndisguiser/M\ndisgust\ndisgusted/Y\ndisgustful/Y\ndisgusting/Y\ndishabille/SM\ndisharmonious\ndishcloth/M\ndishcloths\ndishevel/LDGS\ndishevelment/MS\ndish/GD\ndishonest\ndishonored/U\ndishpan/MS\ndishrag/SM\ndishtowel/SM\ndishwasher/MS\ndishwater/SM\ndisillusion/LGD\ndisillusionment/SM\ndisinfectant/MS\ndisinherit\ndisinterestedness/SM\ndisinterested/P\ndisinvest/L\ndisjoin\ndisjointedness/S\ndisjunctive/YS\ndisjunct/VS\ndisk/D\ndiskette/S\ndislike/G\ndislodge/LG\ndislodgement/M\ndismalness/M\ndismal/PSTRY\ndismantle/L\ndismantlement/SM\ndismay/D\ndismayed/U\ndismaying/Y\ndis/MB\ndismember/LG\ndismemberment/MS\ndismissive/Y\ndismiss/RZ\nDisneyland/M\nDisney/M\ndisoblige/G\ndisorderedness/M\ndisordered/YP\ndisorderliness/M\ndisorderly/P\ndisorder/Y\ndisorganize\ndisorganized/U\ndisparagement/MS\ndisparager/M\ndisparage/RSDLG\ndisparaging/Y\ndisparateness/M\ndisparate/PSY\ndispatch/Z\ndispelled\ndispelling\ndispel/S\ndispensable/I\ndispensary/MS\ndispensate/NX\ndispensation/M\ndispenser/M\ndispense/ZGDRSB\ndispersal/MS\ndispersant/M\ndispersed/Y\ndisperser/M\ndisperse/XDRSZLNGV\ndispersible\ndispersion/M\ndispersiveness/M\ndispersive/PY\ndispirit/DSG\ndisplace/L\ndisplay/AGDS\ndisplayed/U\ndispleased/Y\ndisplease/G\ndispleasure\ndisport\ndisposable/S\ndisposal/SM\ndispose/IGSD\ndispositional\ndisposition/ISM\ndisproportional\ndisproportionate/N\ndisproportionation/M\ndisprove/B\ndisputable/I\ndisputably/I\ndisputant/SM\ndisputation/SM\ndisputatious/Y\ndisputed/U\ndisputer/M\ndispute/ZBGSRD\ndisquieting/Y\ndisquiet/M\ndisquisition/SM\nDisraeli/M\ndisregardful\ndisrepair/M\ndisreputableness/M\ndisreputable/P\ndisrepute/M\ndisrespect\ndisrupted/U\ndisrupter/M\ndisrupt/GVDRS\ndisruption/MS\ndisruptive/YP\ndisruptor/M\ndissatisfy\ndissect/DG\ndissed\ndissembler/M\ndissemble/ZGRSD\ndisseminate/XGNSD\ndissemination/M\ndissension/SM\ndissenter/M\ndissent/ZGSDR\ndissertation/SM\ndisservice\ndisses\ndissever\ndissidence/SM\ndissident/MS\ndissimilar/S\ndissing\ndissipatedly\ndissipatedness/M\ndissipated/U\ndissipater/M\ndissipate/XRSDVNG\ndissipation/M\ndissociable/I\ndissociate/DSXNGV\ndissociated/U\ndissociation/M\ndissociative/Y\ndissoluble/I\ndissoluteness/SM\ndissolute/PY\ndissolve/ASDG\ndissolved/U\ndissonance/SM\ndissonant/Y\ndissuade/GDRS\ndissuader/M\ndissuasive\ndist\ndistaff/SM\ndistal/Y\ndistance/DSMG\ndistantness/M\ndistant/YP\ndistaste\ndistemper\ndistend\ndistension\ndistention/SM\ndistillate/XNMS\ndistillation/M\ndistillery/MS\ndistincter\ndistinctest\ndistinction/MS\ndistinctiveness/MS\ndistinctive/YP\ndistinct/IYVP\ndistinctness/MSI\ndistinguishable/I\ndistinguishably/I\ndistinguish/BDRSG\ndistinguished/U\ndistinguisher/M\ndistort/BGDR\ndistorted/U\ndistorter/M\ndistortion/MS\ndistract/DG\ndistractedness/M\ndistracted/YP\ndistracting/Y\ndistrait\ndistraught/Y\ndistress\ndistressful\ndistressing/Y\ndistribute/ADXSVNGB\ndistributed/U\ndistributer\ndistributional\ndistribution/AM\ndistributiveness/M\ndistributive/SPY\ndistributivity\ndistributorship/M\ndistributor/SM\ndistrict/GSAD\ndistrict's\ndistrust/G\ndisturbance/SM\ndisturbed/U\ndisturber/M\ndisturbing/Y\ndisturb/ZGDRS\ndisulfide/M\ndisuse/M\ndisyllable/M\nDita/M\nditcher/M\nditch/MRSDG\ndither/RDZSG\nditsy/TR\nditto/DMGS\nditty/SDGM\nDitzel/M\nditz/S\ndiuresis/M\ndiuretic/S\ndiurnal/SY\ndivalent/S\ndiva/MS\ndivan/SM\ndived/M\ndivergence/SM\ndivergent/Y\ndiverge/SDG\ndiver/M\ndiverseness/MS\ndiverse/XYNP\ndiversification/M\ndiversifier/M\ndiversify/GSRDNX\ndiversionary\ndiversion/M\ndiversity/SM\ndivert/GSD\ndiverticulitis/SM\ndivertimento/M\ndive/S\ndivestiture/MS\ndivest/LDGS\ndivestment/S\ndividable\ndivide/AGDS\ndivided/U\ndividend/MS\ndivider/MS\ndivination/SM\ndiviner/M\ndivine/RSDTZYG\ndivinity/MS\ndivisibility/IMS\ndivisible/I\ndivisional\ndivision/SM\ndivisiveness/MS\ndivisive/PY\ndivisor/SM\ndivorc<72>e/MS\ndivorce/GSDLM\ndivorcement/MS\ndivot/MS\ndiv/TZGJDRS\ndivulge/GSD\ndivvy/GSDM\nDixiecrat/MS\ndixieland\nDixieland/MS\nDixie/M\nDix/M\nDixon/M\ndizzily\ndizziness/SM\ndizzying/Y\ndizzy/PGRSDT\nDJ\nDjakarta's\ndjellabah's\ndjellaba/S\nd/JGVX\nDjibouti/M\nDMD\nDmitri/M\nDMZ\nDNA\nDnepropetrovsk/M\nDnepr's\nDnieper's\nDniester/M\nDniren/M\nDOA\ndoable\nDOB\nDobbin/M\ndobbin/MS\nDoberman\nDobro/M\ndocent/SM\ndocile/Y\ndocility/MS\ndocker/M\ndocket/GSMD\ndock/GZSRDM\ndockland/MS\ndockside/M\ndockworker/S\ndockyard/SM\ndoc/MS\nDoctor\ndoctoral\ndoctorate/SM\ndoctor/GSDM\nDoctorow/M\ndoctrinaire/S\ndoctrinal/Y\ndoctrine/SM\ndocudrama/S\ndocumentary/MS\ndocumentation/MS\ndocumented/U\ndocument/RDMZGS\nDOD\ndodder/DGS\ndodecahedra\ndodecahedral\ndodecahedron/M\nDode/M\ndodge/GZSRD\nDodge/M\ndodgem/S\ndodger/M\nDodgson/M\nDodie/M\nDodi/M\nDodington/M\nDodoma/M\ndodo/SM\nDodson/M\nDody/M\nDOE\nDoe/M\ndoe/MS\ndoer/MU\ndoes/AU\ndoeskin/MS\ndoesn't\nd'oeuvre\ndoff/SGD\ndogcart/SM\ndogcatcher/MS\ndogeared\nDoge/M\ndoge/SM\ndogfight/GMS\ndogfish/SM\ndogfought\ndoggedness/SM\ndogged/PY\ndoggerel/SM\ndogging\ndoggone/RSDTG\ndoggy/SRMT\ndoghouse/SM\ndogie/SM\ndoglegged\ndoglegging\ndogleg/SM\ndogma/MS\ndogmatically/U\ndogmatic/S\ndogmatics/M\ndogmatism/SM\ndogmatist/SM\ndogsbody/M\ndog/SM\ndogtooth/M\nDogtown/M\ndogtrot/MS\ndogtrotted\ndogtrotting\ndogwood/SM\ndogy's\nDoha/M\ndoh's\ndoily/SM\ndoing/MU\nDolby/SM\ndoldrum/S\ndoldrums/M\ndoled/F\ndolefuller\ndolefullest\ndolefulness/MS\ndoleful/PY\nDole/M\ndole/MGDS\ndoles/F\nDolf/M\ndoling/F\ndollar/SM\nDolley/M\nDollie/M\nDolli/M\nDoll/M\ndoll/MDGS\ndollop/GSMD\nDolly/M\ndolly/SDMG\ndolmen/MS\ndolomite/SM\ndolomitic\nDolores/M\nDolorita/SM\ndolorous/Y\ndolor/SM\ndolphin/SM\nDolph/M\ndoltishness/SM\ndoltish/YP\ndolt/MS\ndomain/MS\ndome/DSMG\nDomenic/M\nDomenico/M\nDomeniga/M\nDomesday/M\ndomestically\ndomesticate/DSXGN\ndomesticated/U\ndomestication/M\ndomesticity/MS\ndomestic/S\ndomicile/SDMG\ndomiciliary\ndominance/MS\ndominant/YS\ndominate/VNGXSD\ndomination/M\ndominator/M\ndominatrices\ndominatrix\ndomineer/DSG\ndomineeringness/M\ndomineering/YP\nDominga/M\nDomingo/M\nDominguez/M\nDominica/M\nDominican/MS\nDominick/M\nDominic/M\nDominik/M\nDomini/M\ndominion/MS\nDominique/M\ndominoes\ndomino/M\nDomitian/M\nDom/M\nDonahue/M\nDonald/M\nDonaldson/M\nDonall/M\nDonal/M\nDonalt/M\nDona/M\ndona/MS\nDonatello/M\ndonate/XVGNSD\ndonation/M\ndonative/M\nDonaugh/M\nDonavon/M\ndone/AUF\nDonella/M\nDonelle/M\nDonetsk/M\nDonetta/M\ndong/GDMS\ndongle/S\nDonia/M\nDonica/M\nDonielle/M\nDonizetti/M\ndonkey/MS\nDonna/M\nDonnamarie/M\ndonned\nDonnell/M\nDonnelly/M\nDonne/M\nDonner/M\nDonnie/M\nDonni/M\ndonning\ndonnishness/M\ndonnish/YP\nDonn/RM\ndonnybrook/MS\nDonny/M\ndonor/MS\nDonovan/M\ndon/S\nDon/SM\ndon't\ndonut/MS\ndonutted\ndonutting\ndoodad/MS\ndoodlebug/MS\ndoodler/M\ndoodle/SRDZG\ndoohickey/MS\nDooley/M\nDoolittle/M\ndoom/MDGS\ndoomsday/SM\nDoonesbury/M\ndoorbell/SM\ndoor/GDMS\ndoorhandles\ndoorkeeper/M\ndoorkeep/RZ\ndoorknob/SM\ndoorman/M\ndoormat/SM\ndoormen\ndoornail/M\ndoorplate/SM\ndoors/I\ndoorstep/MS\ndoorstepped\ndoorstepping\ndoorstop/MS\ndoorway/MS\ndooryard/SM\ndopamine\ndopant/M\ndopa/SM\ndope/DRSMZG\ndoper/M\ndopey\ndopier\ndopiest\ndopiness/S\nDoppler/M\nDorado/M\nDoralia/M\nDoralin/M\nDoralyn/M\nDoralynne/M\nDoralynn/M\nDora/M\nDorcas\nDorchester/M\nDoreen/M\nDorelia/M\nDorella/M\nDorelle/M\nDor<6F>/M\nDorena/M\nDorene/M\nDoretta/M\nDorette/M\nDorey/M\nDoria/M\nDorian/M\nDoric\nDorice/M\nDorie/M\nDori/MS\nDorine/M\nDorisa/M\nDorise/M\nDorita/M\ndork/S\ndorky/RT\ndormancy/MS\ndormant/S\ndormer/M\ndormice\ndormitory/SM\ndorm/MRZS\ndormouse/M\nDorolice/M\nDorolisa/M\nDoro/M\nDorotea/M\nDoroteya/M\nDorothea/M\nDorothee/M\nDorothy/M\nDorree/M\nDorrie/M\nDorri/SM\nDorry/M\ndorsal/YS\nDorsey/M\nDorthea/M\nDorthy/M\nDortmund/M\nDory/M\ndory/SM\nDOS\ndosage/SM\ndose/M\ndos/GDS\nDosi/M\ndosimeter/MS\ndosimetry/M\ndossier/MS\ndost\nDostoevsky/M\nDOT\ndotage/SM\ndotard/MS\ndoter/M\ndote/S\nDoti/M\ndoting/Y\nDot/M\ndot/MDRSJZG\nDotson/M\ndotted\nDottie/M\nDotti/M\ndottiness/M\ndotting\nDotty/M\ndotty/PRT\ndo/TZRHGJ\nDouala/M\nDouay/M\nDoubleday/M\ndoubled/UA\ndouble/GPSRDZ\ndoubleheader/MS\ndoubleness/M\ndoubler/M\ndoubles/M\ndoublespeak/S\ndoublethink/M\ndoublet/MS\ndoubleton/M\ndoubling/A\ndoubloon/MS\ndoubly\ndoubt/AGSDMB\ndoubted/U\ndoubter/SM\ndoubtfulness/SM\ndoubtful/YP\ndoubting/Y\ndoubtlessness/M\ndoubtless/YP\ndouche/GSDM\nDougherty/M\ndough/M\ndoughs\ndoughty/RT\ndoughy/RT\nDougie/M\nDouglas/M\nDouglass\nDoug/M\nDougy/M\ndourness/MS\nDouro/M\ndour/TYRP\ndouser/M\ndouse/SRDG\ndovecote/MS\nDover/M\ndove/RSM\ndovetail/GSDM\ndovish\nDov/MR\ndowager/SM\ndowdily\ndowdiness/MS\ndowdy/TPSR\ndowel/GMDS\ndower/GDMS\nDow/M\ndownbeat/SM\ndowncast/S\ndowndraft/M\ndowner/M\nDowney/M\ndownfall/NMS\ndowngrade/GSD\ndown/GZSRD\ndownheartedness/MS\ndownhearted/PY\ndownhill/RS\ndownland\ndownload/DGS\ndownpipes\ndownplay/GDS\ndownpour/MS\ndownrange\ndownrightness/M\ndownright/YP\ndownriver\nDowns\ndownscale/GSD\ndownside/S\ndownsize/DSG\ndownslope\ndownspout/SM\ndownstage/S\ndownstairs\ndownstate/SR\ndownstream\ndownswing/MS\ndowntime/SM\ndowntowner/M\ndowntown/MRS\ndowntrend/M\ndowntrodden\ndownturn/MS\ndownwardness/M\ndownward/YPS\ndownwind\ndowny/RT\ndowry/SM\ndowse/GZSRD\ndowser/M\ndoxology/MS\ndoyenne/SM\ndoyen/SM\nDoyle/M\nDoy/M\ndoze\ndozen/GHD\ndozenths\ndozer/M\ndoz/XGNDRS\ndozy\nDP\nDPs\ndpt\nDPT\ndrabbed\ndrabber\ndrabbest\ndrabbing\ndrabness/MS\ndrab/YSP\ndrachma/MS\nDraco/M\ndraconian\nDraconian\nDracula/M\ndraft/AMDGS\ndraftee/SM\ndrafter/MS\ndraftily\ndraftiness/SM\ndrafting/S\ndraftsman/M\ndraftsmanship/SM\ndraftsmen\ndraftsperson\ndraftswoman\ndraftswomen\ndrafty/PTR\ndragged\ndragger/M\ndragging/Y\ndraggy/RT\ndrag/MS\ndragnet/MS\ndragonfly/SM\ndragonhead/M\ndragon/SM\ndragoon/DMGS\ndrainage/MS\ndrainboard/SM\ndrained/U\ndrainer/M\ndrainpipe/MS\ndrain/SZGRDM\nDrake/M\ndrake/SM\nDramamine/MS\ndrama/SM\ndramatically/U\ndramatical/Y\ndramatic/S\ndramatics/M\ndramatist/MS\ndramatization/MS\ndramatized/U\ndramatizer/M\ndramatize/SRDZG\ndramaturgy/M\nDrambuie/M\ndrammed\ndramming\ndram/MS\ndrank\nDrano/M\ndraper/M\ndrapery/MS\ndrape/SRDGZ\ndrastic\ndrastically\ndrat/S\ndratted\ndratting\nDravidian/M\ndrawable\ndraw/ASG\ndrawback/MS\ndrawbridge/SM\ndrawer/SM\ndrawing/SM\ndrawler/M\ndrawling/Y\ndrawl/RDSG\ndrawly\ndrawn/AI\ndrawnly\ndrawnness\ndrawstring/MS\ndray/SMDG\ndreadfulness/SM\ndreadful/YPS\ndreadlocks\ndreadnought/SM\ndread/SRDG\ndreamboat/SM\ndreamed/U\ndreamer/M\ndreamily\ndreaminess/SM\ndreaming/Y\ndreamland/SM\ndreamlessness/M\ndreamless/PY\ndreamlike\ndream/SMRDZG\ndreamworld/S\ndreamy/PTR\ndrearily\ndreariness/SM\ndrear/S\ndreary/TRSP\nDreddy/M\ndredge/MZGSRD\ndredger/M\nDredi/M\ndreg/MS\nDreiser/M\nDre/M\ndrencher/M\ndrench/GDRS\nDresden/M\ndress/ADRSG\ndressage/MS\ndressed/U\ndresser/MS\ndresser's/A\ndresses/U\ndressiness/SM\ndressing/MS\ndressmaker/MS\ndressmaking/SM\ndressy/PTR\ndrew/A\nDrew/M\nDrexel/M\nDreyfus/M\nDreyfuss\ndribble/DRSGZ\ndribbler/M\ndriblet/SM\ndrib/SM\ndried/U\ndrier/M\ndrifter/M\ndrifting/Y\ndrift/RDZSG\ndriftwood/SM\ndriller/M\ndrilling/M\ndrillmaster/SM\ndrill/MRDZGS\ndrinkable/S\ndrink/BRSZG\ndrinker/M\ndripped\ndripping/MS\ndrippy/RT\ndrip/SM\ndriveler/M\ndrivel/GZDRS\ndriven/P\ndriver/M\ndrive/SRBGZJ\ndriveway/MS\ndrizzle/DSGM\ndrizzling/Y\ndrizzly/TR\nDr/M\ndrogue/MS\ndrollery/SM\ndrollness/MS\ndroll/RDSPTG\ndrolly\ndromedary/MS\nDrona/M\ndrone/SRDGM\ndroning/Y\ndrool/GSRD\ndroopiness/MS\ndrooping/Y\ndroop/SGD\ndroopy/PRT\ndrophead\ndropkick/S\ndroplet/SM\ndropout/MS\ndropped\ndropper/SM\ndropping/MS\ndropsical\ndrop/SM\ndropsy/MS\ndrosophila/M\ndross/SM\ndrought/SM\ndrover/M\ndrove/SRDGZ\ndrowner/M\ndrown/RDSJG\ndrowse/SDG\ndrowsily\ndrowsiness/SM\ndrowsy/PTR\ndrubbed\ndrubber/MS\ndrubbing/SM\ndrub/S\nDrucie/M\nDrucill/M\nDruci/M\nDrucy/M\ndrudge/MGSRD\ndrudger/M\ndrudgery/SM\ndrudging/Y\nDrud/M\ndrugged\ndruggie/SRT\ndrugging\ndruggist/SM\nDrugi/M\ndrugless\ndrug/SM\ndrugstore/SM\ndruidism/MS\ndruid/MS\nDruid's\nDru/M\ndrumbeat/SGM\ndrumhead/M\ndrumlin/MS\ndrummed\ndrummer/SM\ndrumming\nDrummond/M\ndrum/SM\ndrumstick/SM\ndrunkard/SM\ndrunkenness/SM\ndrunken/YP\ndrunk/SRNYMT\ndrupe/SM\nDrury/M\nDrusie/M\nDrusilla/M\nDrusi/M\nDrusy/M\ndruthers\ndryad/MS\nDryden/M\ndryer/MS\ndry/GYDRSTZ\ndryish\ndryness/SM\ndrys\ndrystone\ndrywall/GSD\nD's\nd's/A\nDshubba/M\nDST\nDTP\ndualism/MS\ndualistic\ndualist/M\nduality/MS\ndual/YS\nDuane/M\nDubai/M\ndubbed\ndubber/S\ndubbing/M\ndubbin/MS\nDubcek/M\nDubhe/M\ndubiety/MS\ndubiousness/SM\ndubious/YP\nDublin/M\nDubrovnik/M\ndub/S\nDubuque/M\nducal\nducat/SM\nduce/CAIKF\nduce's\nDuchamp/M\nduchess/MS\nduchy/SM\nduckbill/SM\nducker/M\nduck/GSRDM\nduckling/SM\nduckpins\nduckpond\nduckweed/MS\nducky/RSMT\nducted/CFI\nductile/I\nductility/SM\nducting/F\nduct/KMSF\nductless\nduct's/A\nducts/CI\nductwork/M\ndudder\ndude/MS\ndudgeon/SM\ndud/GMDS\nDudley/M\nDud/M\nduelist/MS\nduel/MRDGZSJ\ndueness/M\nduenna/MS\ndue/PMS\nduet/MS\nduetted\nduetting\nduffel/M\nduffer/M\nduff/GZSRDM\nDuffie/M\nDuff/M\nDuffy/M\nDugald/M\ndugout/SM\ndug/S\nduh\nDUI\nDuisburg/M\ndukedom/SM\nduke/DSMG\nDuke/M\nDukey/M\nDukie/M\nDuky/M\nDulcea/M\nDulce/M\ndulcet/SY\nDulcia/M\nDulciana/M\nDulcie/M\ndulcify\nDulci/M\ndulcimer/MS\nDulcinea/M\nDulcine/M\nDulcy/M\ndullard/MS\nDulles/M\ndullness/MS\ndull/SRDPGT\ndully\ndulness's\nDulsea/M\nDuluth/M\nduly/U\nDu/M\nDumas\ndumbbell/MS\ndumbfound/GSDR\ndumbness/MS\nDumbo/M\ndumb/PSGTYRD\ndumbstruck\ndumbwaiter/SM\ndumdum/MS\ndummy/SDMG\nDumont/M\ndumper/UM\ndumpiness/MS\ndumpling/MS\ndump/SGZRD\ndumpster/S\nDumpster/S\nDumpty/M\ndumpy/PRST\nDunant/M\nDunbar/M\nDuncan/M\ndunce/MS\nDunc/M\nDundee/M\ndunderhead/MS\nDunedin/M\ndune/SM\ndungaree/SM\ndungeon/GSMD\ndunghill/MS\ndung/SGDM\nDunham/M\ndunker/M\ndunk/GSRD\nDunkirk/M\nDunlap/M\nDun/M\ndunned\nDunne/M\ndunner\ndunnest\ndunning\nDunn/M\ndunno/M\ndun/S\nDunstan/M\nduodecimal/S\nduodena\nduodenal\nduodenum/M\nduologue/M\nduo/MS\nduopolist\nduopoly/M\ndupe/NGDRSMZ\nduper/M\ndupion/M\nduple\nduplexer/M\nduplex/MSRDG\nduplicability/M\nduplicable\nduplicate/ADSGNX\nduplication/AM\nduplicative\nduplicator/MS\nduplicitous\nduplicity/SM\nDupont/MS\nDuPont/MS\ndurability/MS\ndurableness/M\ndurable/PS\ndurably\nDuracell/M\ndurance/SM\nDurand/M\nDuran/M\nDurante/M\nDurant/M\ndurational\nduration/MS\nDurban/M\nD<6E>rer/M\nduress/SM\nDurex/M\nDurham/MS\nduring\nDurkee/M\nDurkheim/M\nDur/M\nDurocher/M\ndurst\ndurum/MS\nDurward/M\nDuse/M\nDusenberg/M\nDusenbury/M\nDushanbe/M\ndusk/GDMS\nduskiness/MS\ndusky/RPT\nD<6E>sseldorf\ndustbin/MS\ndustcart/M\ndustcover\nduster/M\ndustily\ndustiness/MS\ndusting/M\nDustin/M\ndustless\ndustman/M\ndustmen\ndust/MRDGZS\ndustpan/SM\nDusty/M\ndusty/RPT\nDutch/M\nDutchman/M\nDutchmen\ndutch/MS\nDutchwoman\nDutchwomen\nduteous/Y\ndutiable\ndutifulness/S\ndutiful/UPY\nduty/SM\nDuvalier/M\nduvet/SM\nduxes\nDvina/M\nDvor<6F>k/M\nDwain/M\ndwarfish\ndwarfism/MS\ndwarf/MTGSPRD\nDwayne/M\ndweeb/S\ndweller/SM\ndwell/IGS\ndwelling/MS\ndwelt/I\nDWI\nDwight/M\ndwindle/GSD\ndyadic\ndyad/MS\nDyana/M\nDyane/M\nDyan/M\nDyanna/M\nDyanne/M\nDyann/M\ndybbukim\ndybbuk/SM\ndyed/A\ndyeing/M\ndye/JDRSMZG\ndyer/M\nDyer/M\ndyes/A\ndyestuff/SM\ndying/UA\nDyke/M\ndyke's\nDylan/M\nDy/M\nDynah/M\nDyna/M\ndynamical/Y\ndynamic/S\ndynamics/M\ndynamism/SM\ndynamiter/M\ndynamite/RSDZMG\ndynamized\ndynamo/MS\ndynastic\ndynasty/MS\ndyne/M\ndysentery/SM\ndysfunctional\ndysfunction/MS\ndyslectic/S\ndyslexia/MS\ndyslexically\ndyslexic/S\ndyspepsia/MS\ndyspeptic/S\ndysprosium/MS\ndystopia/M\ndystrophy/M\ndz\nDzerzhinsky/M\nE\nea\neach\nEachelle/M\nEada/M\nEadie/M\nEadith/M\nEadmund/M\neagerness/MS\neager/TSPRYM\neagle/SDGM\neaglet/SM\nEakins/M\nEalasaid/M\nEal/M\nEamon/M\nearache/SM\neardrum/SM\nearful/MS\near/GSMDYH\nEarhart/M\nearing/M\nearldom/MS\nEarle/M\nEarlene/M\nEarlie/M\nEarline/M\nearliness/SM\nEarl/M\nearl/MS\nearlobe/S\nEarly/M\nearly/PRST\nearmark/DGSJ\nearmuff/SM\nearned/U\nearner/M\nEarnestine/M\nEarnest/M\nearnestness/MS\nearnest/PYS\nearn/GRDZTSJ\nearning/M\nearphone/MS\nearpieces\nearplug/MS\nEarp/M\nearring/MS\nearshot/MS\nearsplitting\nEartha/M\nearthbound\nearthed/U\nearthenware/MS\nearthiness/SM\nearthliness/M\nearthling/MS\nearthly/TPR\nearth/MDNYG\nearthmen\nearthmover/M\nearthmoving\nearthquake/SDGM\nearthshaking\nearths/U\nearthward/S\nearthwork/MS\nearthworm/MS\nearthy/PTR\nEarvin/M\nearwax/MS\nearwigged\nearwigging\nearwig/MS\neased/E\nease/LDRSMG\neasel/MS\neasement/MS\neaser/M\nease's/EU\neases/UE\neasies\neasily/U\neasiness/MSU\neasing/M\neastbound\neasterly/S\nEaster/M\neasterner/M\nEasterner/M\neasternmost\nEastern/RZ\neastern/ZR\neaster/Y\neast/GSMR\nEasthampton/M\neasting/M\nEastland/M\nEastman/M\neastward/S\nEastwick/M\nEastwood/M\nEast/ZSMR\neasygoingness/M\neasygoing/P\neasy/PUTR\neatables\neatable/U\neaten/U\neater/M\neatery/MS\neating/M\nEaton/M\neat/SJZGNRB\neavesdropped\neavesdropper/MS\neavesdropping\neavesdrop/S\neave/SM\nEba/M\nEbba/M\nebb/DSG\nEBCDIC\nEbeneezer/M\nEbeneser/M\nEbenezer/M\nEben/M\nEberhard/M\nEberto/M\nEb/MN\nEbola\nEbonee/M\nEbonics\nEbony/M\nebony/SM\nEbro/M\nebullience/SM\nebullient/Y\nebullition/SM\nEC\neccentrically\neccentricity/SM\neccentric/MS\neccl\nEccles\nEcclesiastes/M\necclesiastical/Y\necclesiastic/MS\nECG\nechelon/SGDM\nechinoderm/SM\necho/DMG\nechoed/A\nechoes/A\nechoic\necholocation/SM\n<>clair/MS\n<>clat/MS\neclectically\neclecticism/MS\neclectic/S\neclipse/MGSD\necliptic/MS\neclogue/MS\necocide/SM\necol\nEcole/M\necologic\necological/Y\necologist/MS\necology/MS\nEco/M\necon\nEconometrica/M\neconometricians\neconometric/S\neconometrics/M\neconomical/YU\neconomic/S\neconomics/M\neconomist/MS\neconomization\neconomize/GZSRD\neconomizer/M\neconomizing/U\neconomy/MS\necosystem/MS\necru/SM\necstasy/MS\nEcstasy/S\necstatically\necstatic/S\nectoplasm/M\nEcuadoran/S\nEcuadorean/S\nEcuadorian/S\nEcuador/M\necumenical/Y\necumenicism/SM\necumenicist/MS\necumenic/MS\necumenics/M\necumenism/SM\necumenist/MS\neczema/MS\nEda/M\nEdam/SM\nEdan/M\ned/ASC\nEdda/M\nEddie/M\nEddi/M\nEdd/M\nEddy/M\neddy/SDMG\nEdee/M\nEdeline/M\nedelweiss/MS\nEde/M\nedema/SM\nedematous\neden\nEden/M\nEdgard/M\nEdgardo/M\nEdgar/M\nedge/DRSMZGJ\nedgeless\nedger/M\nEdgerton/M\nEdgewater/M\nedgewise\nEdgewood/M\nedgily\nedginess/MS\nedging/M\nedgy/TRP\nedibility/MS\nedibleness/SM\nedible/SP\nedict/SM\nEdie/M\nedification/M\nedifice/SM\nedifier/M\nedifying/U\nedify/ZNXGRSD\nEdik/M\nEdi/MH\nEdinburgh/M\nEdin/M\nEdison/M\neditable\nEdita/M\nedited/IU\nEditha/M\nEdithe/M\nEdith/M\nedition/SM\neditorialist/M\neditorialize/DRSG\neditorializer/M\neditorial/YS\neditor/MS\neditorship/MS\nedit/SADG\nEdiva/M\nEdlin/M\nEdmond/M\nEdmon/M\nEdmonton/M\nEdmund/M\nEdna/M\nEdouard/M\nEDP\neds\nEdsel/M\nEdsger/M\nEDT\nEduard/M\nEduardo/M\neducability/SM\neducable/S\neducated/YP\neducate/XASDGN\neducationalists\neducational/Y\neducation/AM\neducationists\neducative\neducator/MS\neduc/DBG\neduce/S\neduction/M\nEduino/M\nedutainment/S\nEdvard/M\nEdwardian\nEdwardo/M\nEdward/SM\nEdwina/M\nEdwin/M\nEd/XMN\nEdy/M\nEdythe/M\nEdyth/M\nEEC\nEEG\neek/S\neelgrass/M\neel/MS\ne'en\nEEO\nEEOC\ne'er\neerie/RT\neerily\neeriness/MS\nEeyore/M\neffaceable/I\neffacement/MS\neffacer/M\nefface/SRDLG\neffectiveness/ISM\neffectives\neffective/YIP\neffector/MS\neffect/SMDGV\neffectual/IYP\neffectualness/MI\neffectuate/SDGN\neffectuation/M\neffeminacy/MS\neffeminate/SY\neffendi/MS\nefferent/SY\neffervesce/GSD\neffervescence/SM\neffervescent/Y\neffeteness/SM\neffete/YP\nefficacious/IPY\nefficaciousness/MI\nefficacy/IMS\nefficiency/MIS\nefficient/ISY\nEffie/M\neffigy/SM\neffloresce\nefflorescence/SM\nefflorescent\neffluence/SM\neffluent/MS\neffluvia\neffluvium/M\neffluxion\nefflux/M\neffortlessness/SM\neffortless/PY\neffort/MS\neffrontery/MS\neffulgence/SM\neffulgent\neffuse/XSDVGN\neffusion/M\neffusiveness/MS\neffusive/YP\nEFL\ne/FMDS\nEfrain/M\nEfrem/M\nEfren/M\nEFT\negad\negalitarian/I\negalitarianism/MS\negalitarians\nEGA/M\nEgan/M\nEgbert/M\nEgerton/M\neggbeater/SM\neggcup/MS\negger/M\negg/GMDRS\neggheaded/P\negghead/SDM\neggnog/SM\neggplant/MS\neggshell/SM\negis's\neglantine/MS\negocentrically\negocentricity/SM\negocentric/S\negoism/SM\negoistic\negoistical/Y\negoist/SM\negomaniac/MS\negomania/MS\nEgon/M\nEgor/M\nego/SM\negotism/SM\negotistic\negotistical/Y\negotist/MS\negregiousness/MS\negregious/PY\negress/SDMG\negret/SM\nEgyptian/S\nEgypt/M\nEgyptology/M\neh\nEhrlich/M\nEichmann/M\neiderdown/SM\neider/SM\neidetic\nEiffel/M\neigenfunction/MS\neigenstate/S\neigenvalue/SM\neigenvector/MS\neighteen/MHS\neighteenths\neightfold\neighth/MS\neighths\neightieths\neightpence\neight/SM\neighty/SHM\nEileen/M\nEilis/M\nEimile/M\nEinsteinian\neinsteinium/MS\nEinstein/SM\nEire/M\nEirena/M\nEisenhower/M\nEisenstein/M\nEisner/M\neisteddfod/M\neither\nejaculate/SDXNG\nejaculation/M\nejaculatory\nejecta\nejection/SM\nejector/SM\neject/VGSD\nEkaterina/M\nEkberg/M\neked/A\neke/DSG\nEKG\nEkstrom/M\nEktachrome/M\nelaborateness/SM\nelaborate/SDYPVNGX\nelaboration/M\nelaborators\nElaina/M\nElaine/M\nElana/M\neland/SM\nElane/M\n<>lan/M\nElanor/M\nelans\nelapse/SDG\nel/AS\nelastically/I\nelasticated\nelasticity/SM\nelasticize/GDS\nelastic/S\nelastodynamics\nelastomer/M\nelatedness/M\nelated/PY\nelater/M\nelate/SRDXGN\nelation/M\nElayne/M\nElba/MS\nElbe/M\nElberta/M\nElbertina/M\nElbertine/M\nElbert/M\nelbow/GDMS\nelbowroom/SM\nElbrus/M\nElden/M\nelderberry/MS\nelderflower\nelderliness/M\nelderly/PS\nelder/SY\neldest\nEldin/M\nEldon/M\nEldorado's\nEldredge/M\nEldridge/M\nEleanora/M\nEleanore/M\nEleanor/M\nEleazar/M\nelectable/U\nelect/ASGD\nelected/U\nelectioneer/GSD\nelection/SAM\nelectiveness/M\nelective/SPY\nelectoral/Y\nelectorate/SM\nelector/SM\nElectra/M\nelectress/M\nelectricalness/M\nelectrical/PY\nelectrician/SM\nelectricity/SM\nelectric/S\nelectrification/M\nelectrifier/M\nelectrify/ZXGNDRS\nelectrocardiogram/MS\nelectrocardiograph/M\nelectrocardiographs\nelectrocardiography/MS\nelectrochemical/Y\nelectrocute/GNXSD\nelectrocution/M\nelectrode/SM\nelectrodynamics/M\nelectrodynamic/YS\nelectroencephalogram/SM\nelectroencephalographic\nelectroencephalograph/M\nelectroencephalographs\nelectroencephalography/MS\nelectrologist/MS\nelectroluminescent\nelectrolysis/M\nelectrolyte/SM\nelectrolytic\nelectrolytically\nelectrolyze/SDG\nelectro/M\nelectromagnetic\nelectromagnetically\nelectromagnetism/SM\nelectromagnet/SM\nelectromechanical\nelectromechanics\nelectromotive\nelectromyograph\nelectromyographic\nelectromyographically\nelectromyography/M\nelectronegative\nelectronically\nelectronic/S\nelectronics/M\nelectron/MS\nelectrophoresis/M\nelectrophorus/M\nelectroplate/DSG\nelectroscope/MS\nelectroscopic\nelectroshock/GDMS\nelectrostatic/S\nelectrostatics/M\nelectrotherapist/M\nelectrotype/GSDZM\nelectroweak\neleemosynary\nEleen/M\nelegance/ISM\nelegant/YI\nelegiacal\nelegiac/S\nelegy/SM\nelem\nelemental/YS\nelementarily\nelementariness/M\nelementary/P\nelement/MS\nElena/M\nElene/M\nEleni/M\nElenore/M\nEleonora/M\nEleonore/M\nelephantiases\nelephantiasis/M\nelephantine\nelephant/SM\nelevated/S\nelevate/XDSNG\nelevation/M\nelevator/SM\neleven/HM\nelevens/S\nelevenths\nelev/NX\nElfie/M\nelfin/S\nelfish\nelf/M\nElfreda/M\nElfrida/M\nElfrieda/M\nElga/M\nElgar/M\nElianora/M\nElianore/M\nElia/SM\nElicia/M\nelicitation/MS\nelicit/GSD\nelide/GSD\nElie/M\neligibility/ISM\neligible/SI\nElihu/M\nElijah/M\nEli/M\neliminate/XSDYVGN\nelimination/M\neliminator/SM\nElinore/M\nElinor/M\nEliot/M\nElisabeth/M\nElisabet/M\nElisabetta/M\nElisa/M\nElise/M\nEliseo/M\nElisha/M\nelision/SM\nElissa/M\nElita/M\nelite/MPS\nelitism/SM\nelitist/SM\nelixir/MS\nElizabethan/S\nElizabeth/M\nElizabet/M\nEliza/M\nElka/M\nElke/M\nElkhart/M\nelk/MS\nElladine/M\nElla/M\nEllary/M\nElle/M\nEllene/M\nEllen/M\nEllerey/M\nEllery/M\nEllesmere/M\nEllette/M\nEllie/M\nEllington/M\nElliot/M\nElliott/M\nellipse/MS\nellipsis/M\nellipsoidal\nellipsoid/MS\nellipsometer/MS\nellipsometry\nelliptic\nelliptical/YS\nellipticity/M\nElli/SM\nEllison/M\nEllissa/M\nell/MS\nEllswerth/M\nEllsworth/M\nEllwood/M\nElly/M\nEllyn/M\nEllynn/M\nElma/M\nElmer/M\nElmhurst/M\nElmira/M\nelm/MRS\nElmo/M\nElmore/M\nElmsford/M\nEl/MY\nElna/MH\nElnar/M\nElnath/M\nElnora/M\nElnore/M\nelocutionary\nelocutionist/MS\nelocution/SM\nelodea/S\nElohim/M\nEloisa/M\nEloise/M\nelongate/NGXSD\nelongation/M\nElonore/M\nelopement/MS\neloper/M\nelope/SRDLG\neloquence/SM\neloquent/IY\nElora/M\nEloy/M\nElroy/M\nels\nElsa/M\nElsbeth/M\nelse/M\nElse/M\nElset/M\nelsewhere\nElsey/M\nElsie/M\nElsi/M\nElsinore/M\nElspeth/M\nElston/M\nElsworth/M\nElsy/M\nEltanin/M\nElton/M\neluate/SM\nelucidate/SDVNGX\nelucidation/M\nelude/GSD\nelusiveness/SM\nelusive/YP\nelute/DGN\nelution/M\nElva/M\nelven\nElvera/M\nelver/SM\nelves/M\nElvia/M\nElvina/M\nElvin/M\nElvira/M\nelvish\nElvis/M\nElvyn/M\nElwin/M\nElwira/M\nElwood/M\nElwyn/M\nEly/M\nElyn/M\nElys<79>e/M\nElysees\nElyse/M\nElysha/M\nElysia/M\nelysian\nElysian\nElysium/SM\nElyssa/M\nEM\nemaciate/NGXDS\nemaciation/M\nemacs/M\nEmacs/M\nemail/SMDG\nEmalee/M\nEmalia/M\nEma/M\nemanate/XSDVNG\nemanation/M\nemancipate/DSXGN\nemancipation/M\nemancipator/MS\nEmanuele/M\nEmanuel/M\nemasculate/GNDSX\nemasculation/M\nembalmer/M\nembalm/ZGRDS\nembank/GLDS\nembankment/MS\nembarcadero\nembargoes\nembargo/GMD\nembark/ADESG\nembarkation/EMS\nembarrassedly\nembarrassed/U\nembarrassing/Y\nembarrassment/MS\nembarrass/SDLG\nembassy/MS\nembattle/DSG\nembeddable\nembedded\nembedder\nembedding/MS\nembed/S\nembellished/U\nembellisher/M\nembellish/LGRSD\nembellishment/MS\nember/MS\nembezzle/LZGDRS\nembezzlement/MS\nembezzler/M\nembitter/LGDS\nembitterment/SM\nemblazon/DLGS\nemblazonment/SM\nemblematic\nemblem/GSMD\nembodier/M\nembodiment/ESM\nembody/ESDGA\nembolden/DSG\nembolism/SM\nembosom\nembosser/M\nemboss/ZGRSD\nembouchure/SM\nembower/GSD\nembraceable\nembracer/M\nembrace/RSDVG\nembracing/Y\nembrasure/MS\nembrittle\nembrocation/SM\nembroiderer/M\nembroider/SGZDR\nembroidery/MS\nembroilment/MS\nembroil/SLDG\nembryologist/SM\nembryology/MS\nembryonic\nembryo/SM\nemceeing\nemcee/SDM\nEmelda/M\nEmelen/M\nEmelia/M\nEmelina/M\nEmeline/M\nEmelita/M\nEmelyne/M\nemendation/MS\nemend/SRDGB\nemerald/SM\nEmera/M\nemerge/ADSG\nemergence/MAS\nemergency/SM\nemergent/S\nemerita\nemeritae\nemeriti\nemeritus\nEmerson/M\nEmery/M\nemery/MGSD\nemetic/S\nemf/S\nemigrant/MS\nemigrate/SDXNG\nemigration/M\n<>migr<67>/S\nEmilee/M\nEmile/M\nEmilia/M\nEmilie/M\nEmili/M\nEmiline/M\nEmilio/M\nEmil/M\nEmily/M\neminence/MS\nEminence/MS\neminent/Y\nemirate/SM\nemir/SM\nemissary/SM\nemission/AMS\nemissivity/MS\nemit/S\nemittance/M\nemitted\nemitter/SM\nemitting\nEmlen/M\nEmlyn/M\nEmlynne/M\nEmlynn/M\nem/M\nEm/M\nEmmalee/M\nEmmaline/M\nEmmalyn/M\nEmmalynne/M\nEmmalynn/M\nEmma/M\nEmmanuel/M\nEmmeline/M\nEmmerich/M\nEmmery/M\nEmmet/M\nEmmett/M\nEmmey/M\nEmmie/M\nEmmi/M\nEmmit/M\nEmmott/M\nEmmye/M\nEmmy/SM\nEmogene/M\nemollient/S\nemolument/SM\nEmory/M\nemote/SDVGNX\nemotionalism/MS\nemotionality/M\nemotionalize/GDS\nemotional/UY\nemotionless\nemotion/M\nemotive/Y\nempaneled\nempaneling\nempath\nempathetic\nempathetical/Y\nempathic\nempathize/SDG\nempathy/MS\nemperor/MS\nemphases\nemphasis/M\nemphasize/ZGCRSDA\nemphatically/U\nemphatic/U\nemphysema/SM\nemphysematous\nempire/MS\nempirical/Y\nempiricism/SM\nempiricist/SM\nempiric/SM\nemplace/L\nemplacement/MS\nemployability/UM\nemployable/US\nemployed/U\nemployee/SM\nemployer/SM\nemploy/LAGDS\nemployment/UMAS\nemporium/MS\nempower/GLSD\nempowerment/MS\nempress/MS\nemptier/M\nemptily\nemptiness/SM\nempty/GRSDPT\nempyrean/SM\nems/C\nEMT\nemulate/SDVGNX\nemulation/M\nemulative/Y\nemulator/MS\nemulsification/M\nemulsifier/M\nemulsify/NZSRDXG\nemulsion/SM\nemu/SM\nEmylee/M\nEmyle/M\nenabler/M\nenable/SRDZG\nenactment/ASM\nenact/SGALD\nenameler/M\nenamelware/SM\nenamel/ZGJMDRS\nenamor/DSG\nen/BM\nenc\nencamp/LSDG\nencampment/MS\nencapsulate/SDGNX\nencapsulation/M\nencase/GSDL\nencasement/SM\nencephalitic\nencephalitides\nencephalitis/M\nencephalographic\nencephalopathy/M\nenchain/SGD\nenchanter/MS\nenchant/ESLDG\nenchanting/Y\nenchantment/MSE\nenchantress/MS\nenchilada/SM\nencipherer/M\nencipher/SRDG\nencircle/GLDS\nencirclement/SM\nencl\nenclave/MGDS\nenclosed/U\nenclose/GDS\nenclosure/SM\nencoder/M\nencode/ZJGSRD\nencomium/SM\nencompass/GDS\nencore/GSD\nencounter/GSD\nencouragement/SM\nencourager/M\nencourage/SRDGL\nencouraging/Y\nencroacher/M\nencroach/LGRSD\nencroachment/MS\nencrustation/MS\nencrust/DSG\nencrypt/DGS\nencrypted/U\nencryption/SM\nencumbered/U\nencumber/SEDG\nencumbrancer/M\nencumbrance/SRM\nency\nencyclical/SM\nencyclopaedia's\nencyclopedia/SM\nencyclopedic\nencyst/GSLD\nencystment/MS\nendanger/DGSL\nendangerment/SM\nendear/GSLD\nendearing/Y\nendearment/MS\nendeavored/U\nendeavorer/M\nendeavor/GZSMRD\nendemically\nendemicity\nendemic/S\nender/M\nendgame/M\nEndicott/M\nending/M\nendive/SM\nendlessness/MS\nendless/PY\nendmost\nendnote/MS\nendocrine/S\nendocrinologist/SM\nendocrinology/SM\nendogamous\nendogamy/M\nendogenous/Y\nendomorphism/SM\nendorse/DRSZGL\nendorsement/MS\nendorser/M\nendoscope/MS\nendoscopic\nendoscopy/SM\nendosperm/M\nendothelial\nendothermic\nendow/GSDL\nendowment/SM\nendpoint/MS\nendue/SDG\nendungeoned\nendurable/U\nendurably/U\nendurance/SM\nendure/BSDG\nenduringness/M\nenduring/YP\nendways\nEndymion/M\nend/ZGVMDRSJ\nENE\nenema/SM\nenemy/SM\nenergetically\nenergetic/S\nenergetics/M\nenergized/U\nenergizer/M\nenergize/ZGDRS\nenergy/MS\nenervate/XNGVDS\nenervation/M\nenfeeble/GLDS\nenfeeblement/SM\nenfilade/MGDS\nenfold/SGD\nenforceability/M\nenforceable/U\nenforced/Y\nenforce/LDRSZG\nenforcement/SM\nenforcer/M\nenforcible/U\nenfranchise/ELDRSG\nenfranchisement/EMS\nenfranchiser/M\nengage/ADSGE\nengagement/SEM\nengaging/Y\nEngelbert/M\nEngel/MS\nengender/DGS\nengineer/GSMDJ\nengineering/MY\nengine/MGSD\nEngland/M\nengland/ZR\nEnglebert/M\nEnglewood/M\nEnglish/GDRSM\nEnglishman/M\nEnglishmen\nEnglishwoman/M\nEnglishwomen\nEng/M\nengorge/LGDS\nengorgement/MS\nEngracia/M\nengram/MS\nengraver/M\nengrave/ZGDRSJ\nengraving/M\nengrossed/Y\nengrosser/M\nengross/GLDRS\nengrossing/Y\nengrossment/SM\nengulf/GDSL\nengulfment/SM\nenhanceable\nenhance/LZGDRS\nenhancement/MS\nenhancer/M\nenharmonic\nEnid/M\nEnif/M\nenigma/MS\nenigmatic\nenigmatically\nEniwetok/M\nenjambement's\nenjambment/MS\nenjoinder\nenjoin/GSD\nenjoyability\nenjoyableness/M\nenjoyable/P\nenjoyably\nenjoy/GBDSL\nenjoyment/SM\nEnkidu/M\nenlargeable\nenlarge/LDRSZG\nenlargement/MS\nenlarger/M\nenlightened/U\nenlighten/GDSL\nenlightening/U\nenlightenment/SM\nenlistee/MS\nenlister/M\nenlistment/SAM\nenlist/SAGDL\nenliven/LDGS\nenlivenment/SM\nenmesh/DSLG\nenmeshment/SM\nenmity/MS\nEnnis/M\nennoble/LDRSG\nennoblement/SM\nennobler/M\nennui/SM\nEnoch/M\nenormity/SM\nenormousness/MS\nenormous/YP\nEnos\nenough\nenoughs\nenplane/DSG\nenqueue/DS\nenquirer/S\nenquiringly\nenrage/SDG\nenrapture/GSD\nEnrica/M\nenricher/M\nEnrichetta/M\nenrich/LDSRG\nenrichment/SM\nEnrico/M\nEnrika/M\nEnrique/M\nEnriqueta/M\nenrobed\nenrollee/SM\nenroll/LGSD\nenrollment/SM\nens\nensconce/DSG\nensemble/MS\nenshrine/DSLG\nenshrinement/SM\nenshroud/DGS\nensign/SM\nensilage/DSMG\nenslavement/MS\nenslaver/M\nenslave/ZGLDSR\nensnare/GLDS\nensnarement/SM\nEnsolite/M\nensue/SDG\nensurer/M\nensure/SRDZG\nentailer/M\nentailment/MS\nentail/SDRLG\nentangle/EGDRSL\nentanglement/ESM\nentangler/EM\nentente/MS\nenter/ASDG\nentered/U\nenterer/M\nenteritides\nenteritis/SM\nenterprise/GMSR\nEnterprise/M\nenterpriser/M\nenterprising/Y\nentertainer/M\nentertaining/Y\nentertainment/SM\nentertain/SGZRDL\nenthalpy/SM\nenthrall/GDSL\nenthrallment/SM\nenthrone/GDSL\nenthronement/MS\nenthuse/DSG\nenthusiasm/SM\nenthusiastically/U\nenthusiastic/U\nenthusiast/MS\nenticement/SM\nentice/SRDJLZG\nenticing/Y\nentire/SY\nentirety/SM\nentitle/GLDS\nentitlement/MS\nentity/SM\nentomb/GDSL\nentombment/MS\nentomological\nentomologist/S\nentomology/MS\nentourage/SM\nentr'acte/S\nentrails\nentrainer/M\nentrain/GSLDR\nentrancement/MS\nentrance/MGDSL\nentranceway/M\nentrancing/Y\nentrant/MS\nentrapment/SM\nentrapped\nentrapping\nentrap/SL\nentreating/Y\nentreat/SGD\nentreaty/SM\nentr<74>e/S\nentrench/LSDG\nentrenchment/MS\nentrepreneurial\nentrepreneur/MS\nentrepreneurship/M\nentropic\nentropy/MS\nentrust/DSG\nentry/ASM\nentryway/SM\nentwine/DSG\nenumerable\nenumerate/AN\nenumerated/U\nenumerates\nenumerating\nenumeration's/A\nenumeration/SM\nenumerative\nenumerator/SM\nenunciable\nenunciated/U\nenunciate/XGNSD\nenunciation/M\nenureses\nenuresis/M\nenvelope/MS\nenveloper/M\nenvelopment/MS\nenvelop/ZGLSDR\nenvenom/SDG\nenviableness/M\nenviable/U\nenviably\nenvied/U\nenvier/M\nenviousness/SM\nenvious/PY\nenviron/LGSD\nenvironmentalism/SM\nenvironmentalist/SM\nenvironmental/Y\nenvironment/MS\nenvisage/DSG\nenvision/GSD\nenvoy/SM\nenvying/Y\nenvy/SRDMG\nenzymatic\nenzymatically\nenzyme/SM\nenzymology/M\nEocene\nEOE\neohippus/M\nEolanda/M\nEolande/M\neolian\neon/SM\nEPA\nepaulet/SM\n<>p<EFBFBD>e/S\nephedrine/MS\nephemeral/SY\nephemera/MS\nephemerids\nephemeris/M\nEphesian/S\nEphesians/M\nEphesus/M\nEphraim/M\nEphrayim/M\nEphrem/M\nepically\nepicenter/SM\nepic/SM\nEpictetus/M\nEpicurean\nepicurean/S\nepicure/SM\nEpicurus/M\nepicycle/MS\nepicyclic\nepicyclical/Y\nepicycloid/M\nepidemically\nepidemic/MS\nepidemiological/Y\nepidemiologist/MS\nepidemiology/MS\nepidermal\nepidermic\nepidermis/MS\nepidural\nepigenetic\nepiglottis/SM\nepigrammatic\nepigram/MS\nepigrapher/M\nepigraph/RM\nepigraphs\nepigraphy/MS\nepilepsy/SM\nepileptic/S\nepilogue/SDMG\nEpimethius/M\nepinephrine/SM\nepiphany/SM\nEpiphany/SM\nepiphenomena\nepiscopacy/MS\nepiscopalian\nEpiscopalian/S\nEpiscopal/S\nepiscopal/Y\nepiscopate/MS\nepisode/SM\nepisodic\nepisodically\nepistemic\nepistemological/Y\nepistemology/M\nepistle/MRS\nEpistle/SM\nepistolary/S\nepistolatory\nepitaph/GMD\nepitaphs\nepitaxial/Y\nepitaxy/M\nepithelial\nepithelium/MS\nepithet/MS\nepitome/MS\nepitomized/U\nepitomizer/M\nepitomize/SRDZG\nepochal/Y\nepoch/M\nepochs\neponymous\nepoxy/GSD\nepsilon/SM\nEpsom/M\nEpstein/M\nequability/MS\nequableness/M\nequable/P\nequably\nequaling\nequality/ISM\nequalization/MS\nequalize/DRSGJZ\nequalized/U\nequalizer/M\nequalizes/U\nequal/USDY\nequanimity/MS\nequate/NGXBSD\nequation/M\nequatorial/S\nequator/SM\nequerry/MS\nequestrianism/SM\nequestrian/S\nequestrienne/SM\nequiangular\nequidistant/Y\nequilateral/S\nequilibrate/GNSD\nequilibration/M\nequilibrium/MSE\nequine/S\nequinoctial/S\nequinox/MS\nequipage/SM\nequipartition/M\nequip/AS\nequipment/SM\nequipoise/GMSD\nequipotent\nequipped/AU\nequipping/A\nequiproportional\nequiproportionality\nequiproportionate\nequitable/I\nequitableness/M\nequitably/I\nequitation/SM\nequity/IMS\nequiv\nequivalence/DSMG\nequivalent/SY\nequivocalness/MS\nequivocal/UY\nequivocate/NGSDX\nequivocation/M\nequivocator/SM\nEquuleus/M\nER\nERA\neradicable/I\neradicate/SDXVGN\neradication/M\neradicator/SM\nera/MS\nEran/M\nerase/N\neraser/M\nerasion/M\nErasmus/M\neras/SRDBGZ\nErastus/M\nerasure/MS\nErato/M\nEratosthenes/M\nerbium/SM\nErda/M\nere\nErebus/M\nerect/GPSRDY\nerectile\nerection/SM\nerectness/MS\nerector/SM\nErek/M\nerelong\neremite/MS\nErena/M\nergo\nergodic\nergodicity/M\nergonomically\nergonomics/M\nergonomic/U\nergophobia\nergosterol/SM\nergot/SM\nerg/SM\nErhard/M\nErhart/M\nErica/M\nEricha/M\nErich/M\nEricka/M\nErick/M\nErickson/M\nEric/M\nEricson's\nEricsson's\nEridanus/M\nErie/SM\nErika/M\nErik/M\nErikson/M\nErina/M\nErin/M\nErinna/M\nErinn/M\neris\nEris\nEritrea/M\nErlang/M\nErlenmeyer/M\nErl/M\nEr/M\nErma/M\nErmanno/M\nErmengarde/M\nErmentrude/M\nErmina/M\nermine/MSD\nErminia/M\nErminie/M\nErmin/M\nErnaline/M\nErna/M\nErnesta/M\nErnestine/M\nErnest/M\nErnesto/M\nErnestus/M\nErnie/M\nErnst/M\nErny/M\nerode/SDG\nerodible\nerogenous\nerosible\nerosional\nerosion/SM\nerosiveness/M\nerosive/P\nEros/SM\nerotically\nerotica/M\neroticism/MS\nerotic/S\nerrancy/MS\nerrand/MS\nerrantry/M\nerrant/YS\nerrata/SM\nerratically\nerratic/S\nerratum/MS\nerr/DGS\nErrick/M\nerring/UY\nErroll/M\nErrol/M\nerroneousness/M\nerroneous/YP\nerror/SM\nersatz/S\nErse/M\nErskine/M\nerst\nerstwhile\nErtha/M\neructation/MS\neruct/DGS\nerudite/NYX\nerudition/M\nerupt/DSVG\neruption/SM\neruptive/SY\nErvin/M\nErvIn/M\nErv/M\nErwin/M\nEryn/M\nerysipelas/SM\nerythrocyte/SM\nes\ne's\nEs\nE's\nEsau/M\nescadrille/M\nescalate/CDSXGN\nescalation/MC\nescalator/SM\nescallop/SGDM\nescapable/I\nescapade/SM\nescapee/MS\nescape/LGSRDB\nescapement/MS\nescaper/M\nescapism/SM\nescapist/S\nescapology\nescarole/MS\nescarpment/MS\neschatology/M\nEscherichia/M\nEscher/M\neschew/SGD\nEscondido/M\nescort/SGMD\nescritoire/SM\nescrow/DMGS\nescudo/MS\nescutcheon/SM\nEsdras/M\nESE\nEskimo/SM\nESL\nEsma/M\nEsmaria/M\nEsmark/M\nEsme/M\nEsmeralda/M\nesophageal\nesophagi\nesophagus/M\nesoteric\nesoterica\nesoterically\nesp\nESP\nespadrille/MS\nEspagnol/M\nespalier/SMDG\nespecial/Y\nEsperanto/M\nEsperanza/M\nEspinoza/M\nespionage/SM\nesplanade/SM\nEsp/M\nEsposito/M\nespousal/MS\nespouser/M\nespouse/SRDG\nespresso/SM\nesprit/SM\nespy/GSD\nEsq/M\nesquire/GMSD\nEsquire/S\nEsra/M\nEssa/M\nessayer/M\nessayist/SM\nessay/SZMGRD\nessence/MS\nEssene/SM\nEssen/M\nessentialist/M\nessentially\nessentialness/M\nessential/USI\nEssequibo/M\nEssex/M\nEssie/M\nEssy/M\nEST\nestablished/U\nestablisher/M\nestablish/LAEGSD\nestablishment/EMAS\nEstablishment/MS\nEsta/M\nestate/GSDM\nEsteban/M\nesteem/EGDS\nEstela/M\nEstele/M\nEstella/M\nEstelle/M\nEstell/M\nEstel/M\nEsterh<72>zy/M\nester/M\nEster/M\nEstes\nEstevan/M\nEsther/M\nesthete's\nesthetically\nesthetic's\nesthetics's\nestimable/I\nestimableness/M\nestimate/XDSNGV\nestimating/A\nestimation/M\nestimator/SM\nEstonia/M\nEstonian/S\nestoppal\nEstrada/M\nestrange/DRSLG\nestrangement/SM\nestranger/M\nEstrella/M\nEstrellita/M\nestrogen/SM\nestrous\nestrus/SM\nest/RZ\nestuarine\nestuary/SM\net\nET\nETA\nEtan/M\neta/SM\netc\netcetera/SM\netcher/M\netch/GZJSRD\netching/M\nETD\neternalness/SM\neternal/PSY\neternity/SM\nethane/SM\nEthan/M\nethanol/MS\nEthelbert/M\nEthelda/M\nEthelind/M\nEtheline/M\nEthelin/M\nEthel/M\nEthelred/M\nEthelyn/M\nEthe/M\netherealness/M\nethereal/PY\netherized\nEthernet/MS\nether/SM\nethically/U\nethicalness/M\nethical/PYS\nethicist/S\nethic/MS\nEthiopia/M\nEthiopian/S\nethnically\nethnicity/MS\nethnic/S\nethnocentric\nethnocentrism/MS\nethnographers\nethnographic\nethnography/M\nethnological\nethnologist/SM\nethnology/SM\nethnomethodology\nethological\nethologist/MS\nethology/SM\nethos/SM\nethylene/MS\nEthyl/M\nethyl/SM\nEtienne/M\netiologic\netiological\netiology/SM\netiquette/SM\nEtna/M\nEtruria/M\nEtruscan/MS\nEtta/M\nEttie/M\nEtti/M\nEttore/M\nEtty/M\n<>tude/MS\netymological/Y\netymologist/SM\netymology/MS\nEU\neucalypti\neucalyptus/SM\nEucharistic\nEucharist/SM\neuchre/MGSD\neuclidean\nEuclid/M\nEudora/M\nEuell/M\nEugene/M\nEugenia/M\neugenically\neugenicist/SM\neugenic/S\neugenics/M\nEugenie/M\nEugenio/M\nEugenius/M\nEugen/M\nEugine/M\nEulalie/M\nEula/M\nEulerian/M\nEuler/M\neulogistic\neulogist/MS\neulogized/U\neulogize/GRSDZ\neulogizer/M\neulogy/MS\nEu/M\nEumenides\nEunice/M\neunuch/M\neunuchs\nEuphemia/M\neuphemism/MS\neuphemistic\neuphemistically\neuphemist/M\neuphonious/Y\neuphonium/M\neuphony/SM\neuphoria/SM\neuphoric\neuphorically\nEuphrates/M\nEurasia/M\nEurasian/S\neureka/S\nEuripides/M\nEur/M\nEurodollar/SM\nEuropa/M\nEuropeanization/SM\nEuropeanized\nEuropean/MS\nEurope/M\neuropium/MS\nEurydice/M\nEustace/M\nEustachian/M\nEustacia/M\neutectic\nEuterpe/M\neuthanasia/SM\neuthenics/M\nevacuate/DSXNGV\nevacuation/M\nevacuee/MS\nevader/M\nevade/SRDBGZ\nEvaleen/M\nevaluable\nevaluate/ADSGNX\nevaluated/U\nevaluational\nevaluation/MA\nevaluative\nevaluator/MS\nEva/M\nevanescence/MS\nevanescent\nEvangelia/M\nevangelic\nevangelicalism/SM\nEvangelical/S\nevangelical/YS\nEvangelina/M\nEvangeline/M\nEvangelin/M\nevangelism/SM\nevangelistic\nevangelist/MS\nEvangelist/MS\nevangelize/GDS\nEvania/M\nEvan/MS\nEvanne/M\nEvanston/M\nEvansville/M\nevaporate/VNGSDX\nevaporation/M\nevaporative/Y\nevaporator/MS\nevasion/SM\nevasiveness/SM\nevasive/PY\nEveleen/M\nEvelina/M\nEveline/M\nEvelin/M\nEvelyn/M\nEve/M\nevened\nevener/M\nevenhanded/YP\nevening/SM\nEvenki/M\nEven/M\nevenness/MSU\neven/PUYRT\nevens\nevensong/MS\neventfulness/SM\neventful/YU\neventide/SM\nevent/SGM\neventuality/MS\neventual/Y\neventuate/GSD\nEverard/M\nEveready/M\nEvered/M\nEverest/M\nEverette/M\nEverett/M\neverglade/MS\nEverglades\nevergreen/S\nEverhart/M\neverlastingness/M\neverlasting/PYS\neverliving\nevermore\nEverReady/M\neve/RSM\never/T\nevery\neverybody/M\neverydayness/M\neveryday/P\neveryman\neveryone/MS\neveryplace\neverything\neverywhere\neve's/A\neves/A\nEvey/M\nevict/DGS\neviction/SM\nevidence/MGSD\nevidential/Y\nevident/YS\nEvie/M\nevildoer/SM\nevildoing/MS\nevilness/MS\nevil/YRPTS\nevince/SDG\nEvin/M\neviscerate/GNXDS\nevisceration/M\nEvita/M\nEv/MN\nevocable\nevocate/NVX\nevocation/M\nevocativeness/M\nevocative/YP\nevoke/SDG\nevolute/NMXS\nevolutionarily\nevolutionary\nevolutionist/MS\nevolution/M\nevolve/SDG\nEvonne/M\nEvvie/M\nEvvy/M\nEvy/M\nEvyn/M\nEwan/M\nEward/M\nEwart/M\nEwell/M\newe/MZRS\nEwen/M\newer/M\nEwing/M\nexacerbate/NGXDS\nexacerbation/M\nexacter/M\nexactingness/M\nexacting/YP\nexaction/SM\nexactitude/ISM\nexactly/I\nexactness/MSI\nexact/TGSPRDY\nexaggerate/DSXNGV\nexaggerated/YP\nexaggeration/M\nexaggerative/Y\nexaggerator/MS\nexaltation/SM\nexalted/Y\nexalter/M\nexalt/ZRDGS\nexamen/M\nexamination/AS\nexamination's\nexamine/BGZDRS\nexamined/AU\nexaminees\nexaminer/M\nexamines/A\nexamining/A\nexam/MNS\nexample/DSGM\nexampled/U\nexasperate/DSXGN\nexasperated/Y\nexasperating/Y\nexasperation/M\nExcalibur/M\nexcavate/NGDSX\nexcavation/M\nexcavator/SM\nExcedrin/M\nexceeder/M\nexceeding/Y\nexceed/SGDR\nexcelled\nexcellence/SM\nexcellency/MS\nExcellency/MS\nexcellent/Y\nexcelling\nexcel/S\nexcelsior/S\nexcept/DSGV\nexceptionable/U\nexceptionalness/M\nexceptional/YU\nexception/BMS\nexcerpter/M\nexcerpt/GMDRS\nexcess/GVDSM\nexcessiveness/M\nexcessive/PY\nexchangeable\nexchange/GDRSZ\nexchanger/M\nexchequer/SM\nExchequer/SM\nexcise/XMSDNGB\nexcision/M\nexcitability/MS\nexcitableness/M\nexcitable/P\nexcitably\nexcitation/SM\nexcitatory\nexcited/Y\nexcitement/MS\nexciter/M\nexcite/RSDLBZG\nexcitingly\nexciting/U\nexciton/M\nexclaimer/M\nexclaim/SZDRG\nexclamation/MS\nexclamatory\nexclude/DRSG\nexcluder/M\nexclusionary\nexclusioner/M\nexclusion/SZMR\nexclusiveness/SM\nexclusive/SPY\nexclusivity/MS\nexcommunicate/XVNGSD\nexcommunication/M\nexcoriate/GNXSD\nexcoriation/M\nexcremental\nexcrement/SM\nexcrescence/MS\nexcrescent\nexcreta\nexcrete/NGDRSX\nexcreter/M\nexcretion/M\nexcretory/S\nexcruciate/NGDS\nexcruciating/Y\nexcruciation/M\nexculpate/XSDGN\nexculpation/M\nexculpatory\nexcursionist/SM\nexcursion/MS\nexcursiveness/SM\nexcursive/PY\nexcursus/MS\nexcusable/IP\nexcusableness/IM\nexcusably/I\nexcuse/BGRSD\nexcused/U\nexcuser/M\nexec/MS\nexecrableness/M\nexecrable/P\nexecrably\nexecrate/DSXNGV\nexecration/M\nexecutable/MS\nexecute/NGVZBXDRS\nexecuter/M\nexecutional\nexecutioner/M\nexecution/ZMR\nexecutive/SM\nexecutor/SM\nexecutrices\nexecutrix/M\nexegeses\nexegesis/M\nexegete/M\nexegetical\nexegetic/S\nexemplariness/M\nexemplar/MS\nexemplary/P\nexemplification/M\nexemplifier/M\nexemplify/ZXNSRDG\nexemption/MS\nexempt/SDG\nexerciser/M\nexercise/ZDRSGB\nexertion/MS\nexert/SGD\nExeter/M\nexeunt\nexhalation/SM\nexhale/GSD\nexhausted/Y\nexhauster/M\nexhaustible/I\nexhausting/Y\nexhaustion/SM\nexhaustiveness/MS\nexhaustive/YP\nexhaust/VGRDS\nexhibitioner/M\nexhibitionism/MS\nexhibitionist/MS\nexhibition/ZMRS\nexhibitor/SM\nexhibit/VGSD\nexhilarate/XSDVNG\nexhilarating/Y\nexhilaration/M\nexhortation/SM\nexhort/DRSG\nexhorter/M\nexhumation/SM\nexhume/GRSD\nexhumer/M\nexigence/S\nexigency/SM\nexigent/SY\nexiguity/SM\nexiguous\nexile/SDGM\nexistence/MS\nexistent/I\nexistentialism/MS\nexistentialistic\nexistentialist/MS\nexistential/Y\nexistents\nexist/SDG\nexit/MDSG\nexobiology/MS\nexocrine\nExodus/M\nexodus/SM\nexogamous\nexogamy/M\nexogenous/Y\nexonerate/SDVGNX\nexoneration/M\nexorbitance/MS\nexorbitant/Y\nexorcise/SDG\nexorcism/SM\nexorcist/SM\nexorcizer/M\nexoskeleton/MS\nexosphere/SM\nexothermic\nexothermically\nexotica\nexotically\nexoticism/SM\nexoticness/M\nexotic/PS\nexp\nexpandability/M\nexpand/DRSGZB\nexpanded/U\nexpander/M\nexpanse/DSXGNVM\nexpansible\nexpansionary\nexpansionism/MS\nexpansionist/MS\nexpansion/M\nexpansiveness/S\nexpansive/YP\nexpatiate/XSDNG\nexpatiation/M\nexpatriate/SDNGX\nexpatriation/M\nexpectancy/MS\nexpectant/YS\nexpectational\nexpectation/MS\nexpected/UPY\nexpecting/Y\nexpectorant/S\nexpectorate/NGXDS\nexpectoration/M\nexpect/SBGD\nexpedience/IS\nexpediency/IMS\nexpedients\nexpedient/YI\nexpediter/M\nexpedite/ZDRSNGX\nexpeditionary\nexpedition/M\nexpeditiousness/MS\nexpeditious/YP\nexpeditor's\nexpellable\nexpelled\nexpelling\nexpel/S\nexpendable/S\nexpended/U\nexpender/M\nexpenditure/SM\nexpend/SDRGB\nexpense/DSGVM\nexpensive/IYP\nexpensiveness/SMI\nexperienced/U\nexperience/ISDM\nexperiencing\nexperiential/Y\nexperimentalism/M\nexperimentalist/SM\nexperimental/Y\nexperimentation/SM\nexperimenter/M\nexperiment/GSMDRZ\nexperted\nexperting\nexpertise/SM\nexpertize/GD\nexpertnesses\nexpertness/IM\nexpert/PISY\nexpert's\nexpiable/I\nexpiate/XGNDS\nexpiation/M\nexpiatory\nexpiration/MS\nexpired/U\nexpire/SDG\nexpiry/MS\nexplainable/UI\nexplain/ADSG\nexplained/U\nexplainer/SM\nexplanation/MS\nexplanatory\nexpletive/SM\nexplicable/I\nexplicate/VGNSDX\nexplication/M\nexplicative/Y\nexplicitness/SM\nexplicit/PSY\nexplode/DSRGZ\nexploded/U\nexploder/M\nexploitation/MS\nexploitative\nexploited/U\nexploiter/M\nexploit/ZGVSMDRB\nexploration/MS\nexploratory\nexplore/DSRBGZ\nexplored/U\nexplorer/M\nexplosion/MS\nexplosiveness/SM\nexplosive/YPS\nexpo/MS\nexponential/SY\nexponentiate/XSDNG\nexponentiation/M\nexponent/MS\nexportability\nexportable\nexport/AGSD\nexportation/SM\nexporter/MS\nexport's\nexpose\nexposed/U\nexposer/M\nexposit/D\nexposition/SM\nexpositor/MS\nexpository\nexpos/RSDZG\nexpostulate/DSXNG\nexpostulation/M\nexposure/SM\nexpounder/M\nexpound/ZGSDR\nexpressed/U\nexpresser/M\nexpress/GVDRSY\nexpressibility/I\nexpressible/I\nexpressibly/I\nexpressionism/SM\nexpressionistic\nexpressionist/S\nexpressionless/YP\nexpression/MS\nexpressive/IYP\nexpressiveness/MS\nexpressiveness's/I\nexpressway/SM\nexpropriate/XDSGN\nexpropriation/M\nexpropriator/SM\nexpulsion/MS\nexpunge/GDSR\nexpunger/M\nexpurgated/U\nexpurgate/SDGNX\nexpurgation/M\nexquisiteness/SM\nexquisite/YPS\nex/S\next\nextant\nextemporaneousness/MS\nextemporaneous/YP\nextempore/S\nextemporization/SM\nextemporizer/M\nextemporize/ZGSRD\nextendability/M\nextendedly\nextendedness/M\nextended/U\nextender/M\nextendibility/M\nextendibles\nextend/SGZDR\nextensibility/M\nextensible/I\nextensional/Y\nextension/SM\nextensiveness/SM\nextensive/PY\nextensor/MS\nextent/SM\nextenuate/XSDGN\nextenuation/M\nexterior/MYS\nexterminate/XNGDS\nextermination/M\nexterminator/SM\nexternalities\nexternalization/SM\nexternalize/GDS\nexternal/YS\nextern/M\nextinct/DGVS\nextinction/MS\nextinguishable/I\nextinguish/BZGDRS\nextinguisher/M\nextirpate/XSDVNG\nextirpation/M\nextolled\nextoller/M\nextolling\nextol/S\nextort/DRSGV\nextorter/M\nextortionate/Y\nextortioner/M\nextortionist/SM\nextortion/ZSRM\nextracellular/Y\nextract/GVSBD\nextraction/SM\nextractive/Y\nextractor/SM\nextracurricular/S\nextradite/XNGSDB\nextradition/M\nextragalactic\nextralegal/Y\nextramarital\nextramural\nextraneousness/M\nextraneous/YP\nextraordinarily\nextraordinariness/M\nextraordinary/PS\nextrapolate/XVGNSD\nextrapolation/M\nextra/S\nextrasensory\nextraterrestrial/S\nextraterritorial\nextraterritoriality/MS\nextravagance/MS\nextravagant/Y\nextravaganza/SM\nextravehicular\nextravert's\nextrema\nextremal\nextreme/DSRYTP\nextremeness/MS\nextremism/SM\nextremist/MS\nextremity/SM\nextricable/I\nextricate/XSDNG\nextrication/M\nextrinsic\nextrinsically\nextroversion/SM\nextrovert/GMDS\nextrude/GDSR\nextruder/M\nextrusion/MS\nextrusive\nexuberance/MS\nexuberant/Y\nexudate/XNM\nexudation/M\nexude/GSD\nexultant/Y\nexultation/SM\nexult/DGS\nexulting/Y\nexurban\nexurbanite/SM\nexurbia/MS\nexurb/MS\nExxon/M\nEyck/M\nEyde/M\nEydie/M\neyeball/GSMD\neyebrow/MS\neyed/P\neyedropper/MS\neyeful/MS\neye/GDRSMZ\neyeglass/MS\neyelash/MS\neyeless\neyelet/GSMD\neyelid/SM\neyeliner/MS\neyeopener/MS\neyeopening\neyepiece/SM\neyer/M\neyeshadow\neyesight/MS\neyesore/SM\neyestrain/MS\neyeteeth\neyetooth/M\neyewash/MS\neyewitness/SM\nEyre/M\neyrie's\nEysenck/M\nEzechiel/M\nEzekiel/M\nEzequiel/M\nEziechiele/M\nEzmeralda/M\nEzra/M\nEzri/M\nF\nFAA\nFabe/MR\nFaberg<72>/M\nFaber/M\nFabiano/M\nFabian/S\nFabien/M\nFabio/M\nfable/GMSRD\nfabler/M\nfabricate/SDXNG\nfabrication/M\nfabricator/MS\nfabric/MS\nfabulists\nfabulousness/M\nfabulous/YP\nfacade/GMSD\nface/AGCSD\nfacecloth\nfacecloths\nfaceless/P\nfaceplate/M\nfacer/CM\nface's\nfacetiousness/MS\nfacetious/YP\nfacet/SGMD\nfacial/YS\nfacileness/M\nfacile/YP\nfacilitate/VNGXSD\nfacilitation/M\nfacilitator/SM\nfacilitatory\nfacility/MS\nfacing/MS\nfacsimileing\nfacsimile/MSD\nfactional\nfactionalism/SM\nfaction/SM\nfactiousness/M\nfactious/PY\nfactitious\nfact/MS\nfacto\nfactoid/S\nfactorial/MS\nfactoring/A\nfactoring's\nfactorisable\nfactorization/SM\nfactorize/GSD\nfactor/SDMJG\nfactory/MS\nfactotum/MS\nfactuality/M\nfactualness/M\nfactual/PY\nfaculty/MS\nfaddish\nfaddist/SM\nfadedly\nfaded/U\nfadeout\nfader/M\nfade/S\nfading's\nfading/U\nfad/ZGSMDR\nFae/M\nfaerie/MS\nFaeroe/M\nfaery's\nFafnir/M\nfagged\nfagging\nfaggoting's\nFagin/M\nfag/MS\nfagoting/M\nfagot/MDSJG\nFahd/M\nFahrenheit/S\nfa<66>ence/S\nfailing's\nfailing/UY\nfail/JSGD\nfaille/MS\nfailsafe\nfailure/SM\nFaina/M\nfain/GTSRD\nfainter/M\nfainthearted\nfaintness/MS\nfaint/YRDSGPT\nFairbanks\nFairchild/M\nfaired\nFairfax/M\nFairfield/M\nfairgoer/S\nfairground/MS\nfairing/MS\nfairish\nFairleigh/M\nfairless\nFairlie/M\nFair/M\nFairmont/M\nfairness's\nfairness/US\nFairport/M\nfairs\nfair/TURYP\nFairview/M\nfairway/MS\nfairyland/MS\nfairy/MS\nfairytale\nFaisalabad\nFaisal/M\nfaithed\nfaithfulness/MSU\nfaithfuls\nfaithful/UYP\nfaithing\nfaithlessness/SM\nfaithless/YP\nFaith/M\nfaiths\nfaith's\nfaith/U\nfajitas\nfaker/M\nfake/ZGDRS\nfakir/SM\nfalafel\nfalconer/M\nfalconry/MS\nfalcon/ZSRM\nFalito/M\nFalkland/MS\nFalk/M\nFalkner/M\nfallaciousness/M\nfallacious/PY\nfallacy/MS\nfaller/M\nfallibility/MSI\nfallible/I\nfallibleness/MS\nfallibly/I\nfalloff/S\nFallon/M\nfallopian\nFallopian/M\nfallout/MS\nfallowness/M\nfallow/PSGD\nfall/SGZMRN\nfalsehood/SM\nfalseness/SM\nfalse/PTYR\nfalsetto/SM\nfalsie/MS\nfalsifiability/M\nfalsifiable/U\nfalsification/M\nfalsifier/M\nfalsify/ZRSDNXG\nfalsity/MS\nFalstaff/M\nfalterer/M\nfaltering/UY\nfalter/RDSGJ\nFalwell/M\nfa/M\nfamed/C\nfame/DSMG\nfames/C\nfamilial\nfamiliarity/MUS\nfamiliarization/MS\nfamiliarized/U\nfamiliarizer/M\nfamiliarize/ZGRSD\nfamiliarizing/Y\nfamiliarly/U\nfamiliarness/M\nfamiliar/YPS\nfamily/MS\nfamine/SM\nfaming/C\nfamish/GSD\nfamously/I\nfamousness/M\nfamous/PY\nfanaticalness/M\nfanatical/YP\nfanaticism/MS\nfanatic/SM\nFanchette/M\nFanchon/M\nfancied\nFancie/M\nfancier/SM\nfanciest\nfancifulness/MS\nfanciful/YP\nfancily\nfanciness/SM\nfancying\nfancy/IS\nFancy/M\nfancywork/SM\nfandango/SM\nFanechka/M\nfanfare/SM\nfanfold/M\nfang/DMS\nfangled\nFania/M\nfanlight/SM\nFan/M\nfanned\nFannie/M\nFanni/M\nfanning\nfanny/SM\nFanny/SM\nfanout\nfan/SM\nfantail/SM\nfantasia/SM\nfantasist/M\nfantasize/SRDG\nfantastical/Y\nfantastic/S\nfantasy/GMSD\nFanya/M\nfanzine/S\nFAQ/SM\nFaraday/M\nfarad/SM\nFarah/M\nFara/M\nFarand/M\nfaraway\nFarber/M\nfarce/SDGM\nfarcical/Y\nfare/MS\nfarer/M\nfarewell/DGMS\nfarfetchedness/M\nfar/GDR\nFargo/M\nFarica/M\nfarinaceous\nfarina/MS\nFarkas/M\nFarlay/M\nFarlee/M\nFarleigh/M\nFarley/M\nFarlie/M\nFarly/M\nfarmer/M\nFarmer/M\nfarmhand/S\nfarmhouse/SM\nfarming/M\nFarmington/M\nfarmland/SM\nfarm/MRDGZSJ\nfarmstead/SM\nfarmworker/S\nFar/MY\nfarmyard/MS\nfaro/MS\nfarragoes\nfarrago/M\nFarragut/M\nFarrah/M\nFarrakhan/M\nFarra/M\nFarrand/M\nFarrell/M\nFarrel/M\nfarrier/SM\nFarris/M\nFarr/M\nfarrow/DMGS\nfarseeing\nfarsightedness/SM\nfarsighted/YP\nfarther\nfarthermost\nfarthest\nfarthing/SM\nfart/MDGS!\nfas\nfascia/SM\nfascicle/DSM\nfasciculate/DNX\nfasciculation/M\nfascinate/SDNGX\nfascinating/Y\nfascination/M\nfascism/MS\nFascism's\nfascistic\nFascist's\nfascist/SM\nfashionableness/M\nfashionable/PS\nfashionably/U\nfashion/ADSG\nfashioner/SM\nfashion's\nFassbinder/M\nfastback/MS\nfastball/S\nfasten/AGUDS\nfastener/MS\nfastening/SM\nfast/GTXSPRND\nfastidiousness/MS\nfastidious/PY\nfastness/MS\nfatalism/MS\nfatalistic\nfatalistically\nfatalist/MS\nfatality/MS\nfatal/SY\nfatback/SM\nfatefulness/MS\nfateful/YP\nfate/MS\nFates\nfatheaded/P\nfathead/SMD\nfather/DYMGS\nfathered/U\nfatherhood/MS\nfatherland/SM\nfatherless\nfatherliness/M\nfatherly/P\nFather/SM\nfathomable/U\nfathomless\nfathom/MDSBG\nfatigued/U\nfatigue/MGSD\nfatiguing/Y\nFatima/M\nfatness/SM\nfat/PSGMDY\nfatso/M\nfatted\nfattener/M\nfatten/JZGSRD\nfatter\nfattest/M\nfattiness/SM\nfatting\nfatty/RSPT\nfatuity/MS\nfatuousness/SM\nfatuous/YP\nfatwa/SM\nfaucet/SM\nFaulknerian\nFaulkner/M\nfault/CGSMD\nfaultfinder/MS\nfaultfinding/MS\nfaultily\nfaultiness/MS\nfaultlessness/SM\nfaultless/PY\nfaulty/RTP\nfauna/MS\nFaunie/M\nFaun/M\nfaun/MS\nFauntleroy/M\nFaustian\nFaustina/M\nFaustine/M\nFaustino/M\nFaust/M\nFaustus/M\nfauvism/S\nfavorableness/MU\nfavorable/UMPS\nfavorably/U\nfavoredness/M\nfavored's/U\nfavored/YPSM\nfavorer/EM\nfavor/ESMRDGZ\nfavoring/MYS\nfavorings/U\nfavorite/SMU\nfavoritism/MS\nfavors/A\nFawkes/M\nFawne/M\nfawner/M\nfawn/GZRDMS\nFawnia/M\nfawning/Y\nFawn/M\nfax/GMDS\nFax/M\nFaydra/M\nFaye/M\nFayette/M\nFayetteville/M\nFayina/M\nFay/M\nfay/MDRGS\nFayre/M\nFaythe/M\nFayth/M\nfaze/DSG\nFBI\nFCC\nFD\nFDA\nFDIC\nFDR/M\nfealty/MS\nfearfuller\nfearfullest\nfearfulness/MS\nfearful/YP\nfearlessness/MS\nfearless/PY\nfear/RDMSG\nfearsomeness/M\nfearsome/PY\nfeasibility/SM\nfeasibleness/M\nfeasible/UI\nfeasibly/U\nfeaster/M\nfeast/GSMRD\nfeater/C\nfeatherbed\nfeatherbedding/SM\nfeatherbrain/MD\nfeathered/U\nfeathering/M\nfeatherless\nfeatherlight\nFeatherman/M\nfeathertop\nfeatherweight/SM\nfeathery/TR\nfeather/ZMDRGS\nfeat/MYRGTS\nfeats/C\nfeatureless\nfeature/MGSD\nFeb/M\nfebrile\nFebruary/MS\nfecal\nfeces\nfecklessness/M\nfeckless/PY\nfecundability\nfecundate/XSDGN\nfecundation/M\nfecund/I\nfecundity/SM\nfederalism/SM\nFederalist\nfederalist/MS\nfederalization/MS\nfederalize/GSD\nFederal/S\nfederal/YS\nfederated/U\nfederate/FSDXVNG\nfederation/FM\nfederative/Y\nFederica/M\nFederico/M\nFedEx/M\nFedora/M\nfedora/SM\nfeds\nFed/SM\nfed/U\nfeebleness/SM\nfeeble/TPR\nfeebly\nfeedback/SM\nfeedbag/MS\nfeeder/M\nfeed/GRZJS\nfeeding/M\nfeedlot/SM\nfeedstock\nfeedstuffs\nfeeing\nfeeler/M\nfeel/GZJRS\nfeelingly/U\nfeeling/MYP\nfeelingness/M\nFee/M\nfee/MDS\nfeet/M\nfeigned/U\nfeigner/M\nfeign/RDGS\nfeint/MDSG\nfeisty/RT\nFelder/M\nFeldman/M\nfeldspar/MS\nFelecia/M\nFelicdad/M\nFelice/M\nFelicia/M\nFelicio/M\nfelicitate/XGNSD\nfelicitation/M\nfelicitous/IY\nfelicitousness/M\nfelicity/IMS\nFelicity/M\nFelicle/M\nFelic/M\nFelike/M\nFeliks/M\nfeline/SY\nFelipa/M\nFelipe/M\nFelisha/M\nFelita/M\nFelix/M\nFeliza/M\nFelizio/M\nfella/S\nfellatio/SM\nfelled/A\nfeller/M\nfelling/A\nFellini/M\nfellness/M\nfellowman\nfellowmen\nfellow/SGDYM\nfellowshipped\nfellowshipping\nfellowship/SM\nfell/PSGZTRD\nfeloniousness/M\nfelonious/PY\nfelon/MS\nfelony/MS\nfelt/GSD\nfelting/M\nFe/M\nfemale/MPS\nfemaleness/SM\nfeminineness/M\nfeminine/PYS\nfemininity/MS\nfeminism/MS\nfeminist/MS\nfemme/MS\nfemoral\nfem/S\nfemur/MS\nfenced/U\nfencepost/M\nfencer/M\nfence/SRDJGMZ\nfencing/M\nfender/CM\nfend/RDSCZG\nFenelia/M\nfenestration/CSM\nFenian/M\nfenland/M\nfen/MS\nfennel/SM\nFenwick/M\nFeodora/M\nFeodor/M\nferal\nFerber/M\nFerdie/M\nFerdinanda/M\nFerdinande/M\nFerdinand/M\nFerdinando/M\nFerd/M\nFerdy/M\nfer/FLC\nFergus/M\nFerguson/M\nFerlinghetti/M\nFermat/M\nfermentation/MS\nfermented\nfermenter\nferment/FSCM\nfermenting\nFermi/M\nfermion/MS\nfermium/MS\nFernanda/M\nFernande/M\nFernandez/M\nFernandina/M\nFernando/M\nFerne/M\nfernery/M\nFern/M\nfern/MS\nferny/TR\nferociousness/MS\nferocious/YP\nferocity/MS\nFerrari/M\nFerraro/M\nFerreira/M\nFerrell/M\nFerrel/M\nFerrer/M\nferreter/M\nferret/SMRDG\nferric\nferris\nFerris\nferrite/M\nferro\nferroelectric\nferromagnetic\nferromagnet/M\nferrous\nferrule/MGSD\nferryboat/MS\nferryman/M\nferrymen\nferry/SDMG\nfertileness/M\nfertile/YP\nfertility/IMS\nfertilization/ASM\nfertilized/U\nfertilizer/M\nfertilizes/A\nfertilize/SRDZG\nferule/SDGM\nfervency/MS\nfervent/Y\nfervidness/M\nfervid/YP\nfervor/MS\nfess/KGFSD\nFess/M\nfess's\nfestal/S\nfester/GD\nfestival/SM\nfestiveness/SM\nfestive/PY\nfestivity/SM\nfestoon/SMDG\nfest/RVZ\nfetal\nfeta/MS\nfetcher/M\nfetching/Y\nfetch/RSDGZ\nfeted\nf<6E>te/MS\nfetich's\nfetidness/SM\nfetid/YP\nfeting\nfetishism/SM\nfetishistic\nfetishist/SM\nfetish/MS\nfetlock/MS\nfetter's\nfetter/UGSD\nfettle/GSD\nfettling/M\nfettuccine/S\nfetus/SM\nfeudalism/MS\nfeudalistic\nfeudal/Y\nfeudatory/M\nfeud/MDSG\nfeverishness/SM\nfeverish/PY\nfever/SDMG\nfewness/MS\nfew/PTRS\nFey/M\nFeynman/M\nfey/RT\nfez/M\nFez/M\nfezzes\nff\nFHA\nfianc<6E>e/S\nfianc<6E>/MS\nFianna/M\nFiann/M\nfiascoes\nfiasco/M\nFiat/M\nfiat/MS\nfibbed\nfibber/MS\nfibbing\nfiberboard/MS\nfiber/DM\nfiberfill/S\nFiberglas/M\nfiberglass/DSMG\nFibonacci/M\nfibrillate/XGNDS\nfibrillation/M\nfibril/MS\nfibrin/MS\nfibroblast/MS\nfibroid/S\nfibroses\nfibrosis/M\nfibrousness/M\nfibrous/YP\nfib/SZMR\nfibulae\nfibula/M\nfibular\nFICA\nfices\nfiche/SM\nFichte/M\nfichu/SM\nfickleness/MS\nfickle/RTP\nficos\nfictionalization/MS\nfictionalize/DSG\nfictional/Y\nfiction/SM\nfictitiousness/M\nfictitious/PY\nfictive/Y\nficus\nfiddle/GMZJRSD\nfiddler/M\nfiddlestick/SM\nfiddly\nfide/F\nFidela/M\nFidelia/M\nFidelio/M\nfidelity/IMS\nFidelity/M\nFidel/M\nfidget/DSG\nfidgety\nFidole/M\nFido/M\nfiducial/Y\nfiduciary/MS\nfiefdom/S\nfief/MS\nfielded\nfielder/IM\nfielding\nFielding/M\nField/MGS\nfieldstone/M\nfieldworker/M\nfieldwork/ZMRS\nfield/ZISMR\nfiendishness/M\nfiendish/YP\nfiend/MS\nfierceness/SM\nfierce/RPTY\nfierily\nfieriness/MS\nfiery/PTR\nfie/S\nfies/C\nfiesta/MS\nfife/DRSMZG\nfifer/M\nFifi/M\nFifine/M\nFIFO\nfifteen/HRMS\nfifteenths\nfifths\nfifth/Y\nfiftieths\nfifty/HSM\nFigaro/M\nfigged\nfigging\nfightback\nfighter/MIS\nfighting/IS\nfight/ZSJRG\nfigment/MS\nfig/MLS\nFigueroa/M\nfigural\nfiguration/FSM\nfigurativeness/M\nfigurative/YP\nfigure/GFESD\nfigurehead/SM\nfigurer/SM\nfigure's\nfigurine/SM\nfiguring/S\nFijian/SM\nFiji/M\nfilamentary\nfilament/MS\nfilamentous\nFilberte/M\nFilbert/M\nfilbert/MS\nFilberto/M\nfilch/SDG\nfiled/AC\nfile/KDRSGMZ\nfilename/SM\nfiler/KMCS\nfiles/AC\nfilet's\nfilial/UY\nFilia/M\nfilibusterer/M\nfilibuster/MDRSZG\nFilide/M\nfiligreeing\nfiligree/MSD\nfiling/AC\nfilings\nFilipino/SM\nFilip/M\nFilippa/M\nFilippo/M\nfill/BAJGSD\nfilled/U\nfiller/MS\nfilleting/M\nfillet/MDSG\nfilling/M\nfillip/MDGS\nFillmore/M\nfilly/SM\nfilmdom/M\nFilmer/M\nfilminess/SM\nfilming/M\nfilmmaker/S\nFilmore/M\nfilm/SGMD\nfilmstrip/SM\nfilmy/RTP\nFilofax/S\nfiltered/U\nfilterer/M\nfilter/RDMSZGB\nfilthily\nfilthiness/SM\nfilth/M\nfilths\nfilthy/TRSDGP\nfiltrated/I\nfiltrate/SDXMNG\nfiltrates/I\nfiltrating/I\nfiltration/IMS\nfinagler/M\nfinagle/RSDZG\nfinale/MS\nfinalist/MS\nfinality/MS\nfinalization/SM\nfinalize/GSD\nfinal/SY\nFina/M\nfinanced/A\nfinance/MGSDJ\nfinances/A\nfinancial/Y\nfinancier/DMGS\nfinancing/A\nFinch/M\nfinch/MS\nfindable/U\nfind/BRJSGZ\nfinder/M\nfinding/M\nFindlay/M\nFindley/M\nfine/FGSCRDA\nfinely\nfineness/MS\nfinery/MAS\nfine's\nfinespun\nfinesse/SDMG\nfingerboard/SM\nfingerer/M\nfingering/M\nfingerless\nfingerling/M\nfingernail/MS\nfingerprint/SGDM\nfinger/SGRDMJ\nfingertip/MS\nfinial/SM\nfinical\nfinickiness/S\nfinicky/RPT\nfining/M\nfinished/UA\nfinisher/M\nfinishes/A\nfinish/JZGRSD\nfinis/SM\nfinite/ISPY\nfinitely/C\nfiniteness/MIC\nfink/GDMS\nFinland/M\nFinlay/M\nFinley/M\nFin/M\nFinnbogadottir/M\nfinned\nFinnegan/M\nfinner\nfinning\nFinnish\nFinn/MS\nfinny/RT\nfin/TGMDRS\nFiona/M\nFionna/M\nFionnula/M\nfiord's\nFiorello/M\nFiorenze/M\nFiori/M\nf/IRAC\nfirearm/SM\nfireball/SM\nfireboat/M\nfirebomb/MDSG\nfirebox/MS\nfirebrand/MS\nfirebreak/SM\nfirebrick/SM\nfirebug/SM\nfirecracker/SM\nfiredamp/SM\nfired/U\nfirefight/JRGZS\nfirefly/MS\nFirefox/M\nfireguard/M\nfirehouse/MS\nfirelight/GZSM\nfireman/M\nfiremen\nfire/MS\nfireplace/MS\nfireplug/MS\nfirepower/SM\nfireproof/SGD\nfirer/M\nfiresafe\nfireside/SM\nFirestone/M\nfirestorm/SM\nfiretrap/SM\nfiretruck/S\nfirewall/S\nfirewater/SM\nfirewood/MS\nfirework/MS\nfiring/M\nfirkin/M\nfirmament/MS\nfirmer\nfirmest\nfirm/ISFDG\nfirmly/I\nfirmness/MS\nfirm's\nfirmware/MS\nfirring\nfirstborn/S\nfirsthand\nfirst/SY\nfirth/M\nfirths\nfir/ZGJMDRHS\nfiscal/YS\nFischbein/M\nFischer/M\nfishbowl/MS\nfishcake/S\nfisher/M\nFisher/M\nfisherman/M\nfishermen/M\nfishery/MS\nfishhook/MS\nfishily\nfishiness/MS\nfishing/M\nfish/JGZMSRD\nFishkill/M\nfishmeal\nfishmonger/MS\nfishnet/SM\nfishpond/SM\nfishtail/DMGS\nfishtanks\nfishwife/M\nfishwives\nfishy/TPR\nFiske/M\nFisk/M\nfissile\nfissionable/S\nfission/BSDMG\nfissure/MGSD\nfistfight/SM\nfistful/MS\nfisticuff/SM\nfist/MDGS\nfistula/SM\nfistulous\nFitchburg/M\nFitch/M\nfitfulness/SM\nfitful/PY\nfitments\nfitness/USM\nfits/AK\nfit's/K\nfitted/UA\nfitter/SM\nfittest\nfitting/AU\nfittingly\nfittingness/M\nfittings\nfit/UYPS\nFitzgerald/M\nFitz/M\nFitzpatrick/M\nFitzroy/M\nfivefold\nfive/MRS\nfiver/M\nfixable\nfixate/VNGXSD\nfixatifs\nfixation/M\nfixative/S\nfixedness/M\nfixed/YP\nfixer/SM\nfixes/I\nfixing/SM\nfixity/MS\nfixture/SM\nfix/USDG\nFizeau/M\nfizzer/M\nfizzle/GSD\nfizz/SRDG\nfizzy/RT\nfjord/SM\nFL\nflabbergast/GSD\nflabbergasting/Y\nflabbily\nflabbiness/SM\nflabby/TPR\nflab/MS\nflaccidity/MS\nflaccid/Y\nflack/SGDM\nflagella/M\nflagellate/DSNGX\nflagellation/M\nflagellum/M\nflagged\nflaggingly/U\nflagging/SMY\nflagman/M\nflagmen\nflag/MS\nflagon/SM\nflagpole/SM\nflagrance/MS\nflagrancy/SM\nflagrant/Y\nflagship/MS\nflagstaff/MS\nflagstone/SM\nflail/SGMD\nflair/SM\nflaker/M\nflake/SM\nflakiness/MS\nflak/RDMGS\nflaky/PRT\nFla/M\nflamb<6D>/D\nflambeing\nflambes\nflamboyance/MS\nflamboyancy/MS\nflamboyant/YS\nflamenco/SM\nflamen/M\nflameproof/DGS\nflamer/IM\nflame's\nflame/SIGDR\nflamethrower/SM\nflamingo/SM\nflaming/Y\nflammability/ISM\nflammable/SI\nflam/MRNDJGZ\nFlanagan/M\nFlanders/M\nflange/GMSD\nflanker/M\nflank/SGZRDM\nflan/MS\nflannel/DMGS\nflannelet/MS\nflannelette's\nflapjack/SM\nflap/MS\nflapped\nflapper/SM\nflapping\nflaps/M\nflare/SDG\nflareup/S\nflaring/Y\nflashback/SM\nflashbulb/SM\nflashcard/S\nflashcube/MS\nflasher/M\nflashgun/S\nflashily\nflashiness/SM\nflashing/M\nflash/JMRSDGZ\nflashlight/MS\nflashy/TPR\nflask/SM\nflatbed/S\nflatboat/MS\nflatcar/MS\nflatfeet\nflatfish/SM\nflatfoot/SGDM\nflathead/M\nflatiron/SM\nflatland/RS\nflatmate/M\nflat/MYPS\nflatness/MS\nflatted\nflattener/M\nflatten/SDRG\nflatter/DRSZG\nflatterer/M\nflattering/YU\nflattery/SM\nflattest/M\nflatting\nflattish\nFlatt/M\nflattop/MS\nflatulence/SM\nflatulent/Y\nflatus/SM\nflatware/MS\nflatworm/SM\nFlaubert/M\nflaunting/Y\nflaunt/SDG\nflautist/SM\nflavored/U\nflavorer/M\nflavorful\nflavoring/M\nflavorless\nflavor/SJDRMZG\nflavorsome\nflaw/GDMS\nflawlessness/MS\nflawless/PY\nflax/MSN\nflaxseed/M\nflayer/M\nflay/RDGZS\nfleabag/MS\nfleabites\nflea/SM\nfleawort/M\nfleck/GRDMS\nFledermaus/M\nfledged/U\nfledge/GSD\nfledgling/SM\nfleecer/M\nfleece/RSDGMZ\nfleeciness/SM\nfleecy/RTP\nfleeing\nflee/RS\nfleetingly/M\nfleetingness/SM\nfleeting/YP\nfleet/MYRDGTPS\nfleetness/MS\nFleischer/M\nFleischman/M\nFleisher/M\nFleming/M\nFlemished/M\nFlemish/GDSM\nFlemishing/M\nFlem/JGM\nFlemming/M\nflesher/M\nfleshiness/M\nflesh/JMYRSDG\nfleshless\nfleshly/TR\nfleshpot/SM\nfleshy/TPR\nfletch/DRSGJ\nfletcher/M\nFletcher/M\nfletching/M\nFletch/MR\nFleurette/M\nFleur/M\nflew/S\nflews/M\nflexed/I\nflexibility/MSI\nflexible/I\nflexibly/I\nflexitime's\nflex/MSDAG\nflextime/S\nflexural\nflexure/M\nfl/GJD\nflibbertigibbet/MS\nflicker/GD\nflickering/Y\nflickery\nflick/GZSRD\nflier/M\nflight/GMDS\nflightiness/SM\nflightless\nflightpath\nflighty/RTP\nflimflammed\nflimflamming\nflimflam/MS\nflimsily\nflimsiness/MS\nflimsy/PTRS\nflincher/M\nflinch/GDRS\nflinching/U\nflinger/M\nfling/RMG\nFlin/M\nFlinn/M\nflintiness/M\nflintless\nflintlock/MS\nFlint/M\nflint/MDSG\nFlintstones\nflinty/TRP\nflipflop\nflippable\nflippancy/MS\nflippant/Y\nflipped\nflipper/SM\nflippest\nflipping\nflip/S\nflirtation/SM\nflirtatiousness/MS\nflirtatious/PY\nflirt/GRDS\nflit/S\nflitted\nflitting\nfloater/M\nfloat/SRDGJZ\nfloaty\nflocculate/GNDS\nflocculation/M\nflock/SJDMG\nfloe/MS\nflogged\nflogger/SM\nflogging/SM\nflog/S\nFlo/M\nfloodgate/MS\nfloodlight/DGMS\nfloodlit\nfloodplain/S\nflood/SMRDG\nfloodwater/SM\nfloorboard/MS\nfloorer/M\nflooring/M\nfloor/SJRDMG\nfloorspace\nfloorwalker/SM\nfloozy/SM\nflophouse/SM\nflop/MS\nflopped\nflopper/M\nfloppily\nfloppiness/SM\nflopping\nfloppy/TMRSP\nfloral/SY\nFlora/M\nFlorance/M\nflora/SM\nFlorella/M\nFlorence/M\nFlorencia/M\nFlorentia/M\nFlorentine/S\nFlorenza/M\nflorescence/MIS\nflorescent/I\nFlore/SM\nfloret/MS\nFlorette/M\nFloria/M\nFlorian/M\nFlorida/M\nFloridan/S\nFloridian/S\nfloridness/SM\nflorid/YP\nFlorie/M\nFlorina/M\nFlorinda/M\nFlorine/M\nflorin/MS\nFlori/SM\nflorist/MS\nFlor/M\nFlorrie/M\nFlorri/M\nFlorry/M\nFlory/M\nfloss/GSDM\nFlossie/M\nFlossi/M\nFlossy/M\nflossy/RST\nflotation/SM\nflotilla/SM\nflotsam/SM\nflounce/GDS\nflouncing/M\nflouncy/RT\nflounder/SDG\nflourisher/M\nflourish/GSRD\nflourishing/Y\nflour/SGDM\nfloury/TR\nflouter/M\nflout/GZSRD\nflowchart/SG\nflowed\nflowerbed/SM\nflower/CSGD\nflowerer/M\nfloweriness/SM\nflowerless\nflowerpot/MS\nflower's\nFlowers\nflowery/TRP\nflowing/Y\nflow/ISG\nflown\nflowstone\nFloyd/M\nFlss/M\nflt\nflubbed\nflubbing\nflub/S\nfluctuate/XSDNG\nfluctuation/M\nfluency/MS\nfluently\nfluent/SF\nflue/SM\nfluffiness/SM\nfluff/SGDM\nfluffy/PRT\nfluidity/SM\nfluidized\nfluid/MYSP\nfluidness/M\nfluke/SDGM\nfluky/RT\nflume/SDGM\nflummox/DSG\nflu/MS\nflung\nflunkey's\nflunk/SRDG\nflunky/MS\nfluoresce/GSRD\nfluorescence/MS\nfluorescent/S\nfluoridate/XDSGN\nfluoridation/M\nfluoride/SM\nfluorimetric\nfluorinated\nfluorine/SM\nfluorite/MS\nfluorocarbon/MS\nfluoroscope/MGDS\nfluoroscopic\nflurry/GMDS\nflushness/M\nflush/TRSDPBG\nfluster/DSG\nfluter/M\nflute/SRDGMJ\nfluting/M\nflutist/MS\nflutter/DRSG\nflutterer/M\nfluttery\nfluxed/A\nfluxes/A\nflux/IMS\nfluxing\nflyaway\nflyblown\nflyby/M\nflybys\nflycatcher/MS\nflyer's\nfly/JGBDRSTZ\nflyleaf/M\nflyleaves\nFlynn/M\nflyover/MS\nflypaper/MS\nflysheet/S\nflyspeck/MDGS\nflyswatter/S\nflyway/MS\nflyweight/MS\nflywheel/MS\nFM\nFm/M\nFNMA/M\nfoal/MDSG\nfoaminess/MS\nfoam/MRDSG\nfoamy/RPT\nfobbed\nfobbing\nfob/SM\nfocal/F\nfocally\nFoch/M\nfoci's\nfocused/AU\nfocuser/M\nfocuses/A\nfocus/SRDMBG\nfodder/GDMS\nfoe/SM\nfoetid\nFOFL\nfogbound\nfogged/C\nfoggily\nfogginess/MS\nfogging/C\nfoggy/RPT\nfoghorn/SM\nfogs/C\nfog/SM\nfogyish\nfogy/SM\nfoible/MS\nfoil/GSD\nfoist/GDS\nFokker/M\nfoldaway/S\nfolded/AU\nfolder/M\nfoldout/MS\nfold/RDJSGZ\nfolds/UA\nFoley/M\nfoliage/MSD\nfoliate/CSDXGN\nfoliation/CM\nfolio/SDMG\nfolklike\nfolklore/MS\nfolkloric\nfolklorist/SM\nfolk/MS\nfolksiness/MS\nfolksinger/S\nfolksinging/S\nfolksong/S\nfolksy/TPR\nfolktale/S\nfolkway/S\nfoll\nfollicle/SM\nfollicular\nfollower/M\nfollow/JSZBGRD\nfollowup's\nfolly/SM\nFolsom\nfol/Y\nFomalhaut/M\nfomentation/SM\nfomenter/M\nfoment/RDSG\nFonda/M\nfondant/SM\nfondle/GSRD\nfondler/M\nfondness/MS\nfond/PMYRDGTS\nfondue/MS\nFons\nFonsie/M\nFontainebleau/M\nFontaine/M\nFontana/M\nfontanelle's\nfontanel/MS\nfont/MS\nFonzie/M\nFonz/M\nfoodie/S\nfood/MS\nfoodstuff/MS\nfoolery/MS\nfoolhardily\nfoolhardiness/SM\nfoolhardy/PTR\nfoolishness/SM\nfoolish/PRYT\nfool/MDGS\nfoolproof\nfoolscap/MS\nfootage/SM\nfootball/SRDMGZ\nfootbridge/SM\nFoote/M\nfooter/M\nfootfall/SM\nfoothill/SM\nfoothold/MS\nfooting/M\nfootless\nfootlights\nfootling\nfootlocker/SM\nfootloose\nfootman/M\nfootmarks\nfootmen\nfootnote/MSDG\nfootpad/SM\nfootpath/M\nfootpaths\nfootplate/M\nfootprint/MS\nfootrace/S\nfootrest/MS\nfootsie/SM\nfoot/SMRDGZJ\nfootsore\nfootstep/SM\nfootstool/SM\nfootwear/M\nfootwork/SM\nfop/MS\nfopped\nfoppery/MS\nfopping\nfoppishness/SM\nfoppish/YP\nforage/GSRDMZ\nforager/M\nforayer/M\nforay/SGMRD\nforbade\nforbearance/SM\nforbearer/M\nforbear/MRSG\nForbes/M\nforbidden\nforbiddingness/M\nforbidding/YPS\nforbid/S\nforbore\nforborne\nforced/Y\nforcefield/MS\nforcefulness/MS\nforceful/PY\nforceps/M\nforcer/M\nforce/SRDGM\nforcibleness/M\nforcible/P\nforcibly\nfordable/U\nFordham/M\nFord/M\nford/SMDBG\nforearm/GSDM\nforebear/MS\nforebode/GJDS\nforebodingness/M\nforeboding/PYM\nforecaster/M\nforecastle/MS\nforecast/SZGR\nforeclose/GSD\nforeclosure/MS\nforecourt/SM\nforedoom/SDG\nforefather/SM\nforefeet\nforefinger/MS\nforefoot/M\nforefront/SM\nforegoer/M\nforegoing/S\nforegone\nforegos\nforeground/MGDS\nforehand/S\nforehead/MS\nforeigner/M\nforeignness/SM\nforeign/PRYZS\nforeknew\nforeknow/GS\nforeknowledge/MS\nforeknown\nforeleg/MS\nforelimb/MS\nforelock/MDSG\nforeman/M\nForeman/M\nforemast/SM\nforemen\nforemost\nforename/DSM\nforenoon/SM\nforensically\nforensic/S\nforensics/M\nforeordain/DSG\nforepart/MS\nforepaws\nforepeople\nforeperson/S\nforeplay/MS\nforequarter/SM\nforerunner/MS\nfore/S\nforesail/SM\nforesaw\nforeseeable/U\nforeseeing\nforeseen/U\nforeseer/M\nforesee/ZSRB\nforeshadow/SGD\nforeshore/M\nforeshorten/DSG\nforesightedness/SM\nforesighted/PY\nforesight/SMD\nforeskin/SM\nforestaller/M\nforestall/LGSRD\nforestallment/M\nforestation/MCS\nforestations/A\nforest/CSAGD\nForester/M\nforester/SM\nforestland/S\nForest/MR\nforestry/MS\nforest's\nforetaste/MGSD\nforeteller/M\nforetell/RGS\nforethought/MS\nforetold\nforevermore\nforever/PS\nforewarner/M\nforewarn/GSJRD\nforewent\nforewoman/M\nforewomen\nforeword/SM\nforfeiter/M\nforfeiture/MS\nforfeit/ZGDRMS\nforfend/GSD\nforgather/GSD\nforgave\nforged/A\nforge/JVGMZSRD\nforger/M\nforgery/MS\nforges/A\nforgetfulness/SM\nforgetful/PY\nforget/SV\nforgettable/U\nforgettably/U\nforgetting\nforging/M\nforgivable/U\nforgivably/U\nforgiven\nforgiveness/SM\nforgiver/M\nforgive/SRPBZG\nforgivingly\nforgivingness/M\nforgiving/UP\nforgoer/M\nforgoes\nforgone\nforgo/RSGZ\nforgot\nforgotten/U\nfor/HT\nforkful/S\nfork/GSRDM\nforklift/DMSG\nforlornness/M\nforlorn/PTRY\nformability/AM\nformaldehyde/SM\nformalin/M\nformalism/SM\nformalistic\nformalist/SM\nformality/SMI\nformal/IY\nformalization/SM\nformalized/U\nformalizer/M\nformalizes/I\nformalize/ZGSRD\nformalness/M\nformals\nformant/MIS\nformat/AVS\nformate/MXGNSD\nformation/AFSCIM\nformatively/I\nformativeness/IM\nformative/SYP\nformat's\nformatted/UA\nformatter/A\nformatters\nformatter's\nformatting/A\nform/CGSAFDI\nformed/U\nformer/FSAI\nformerly\nformfitting\nformic\nFormica/MS\nformidableness/M\nformidable/P\nformidably\nformlessness/MS\nformless/PY\nFormosa/M\nFormosan\nform's\nformulaic\nformula/SM\nformulate/AGNSDX\nformulated/U\nformulation/AM\nformulator/SM\nfornicate/GNXSD\nfornication/M\nfornicator/SM\nForrester/M\nForrest/RM\nforsaken\nforsake/SG\nforsook\nforsooth\nForster/M\nforswear/SG\nforswore\nforsworn\nforsythia/MS\nFortaleza/M\nforte/MS\nforthcome/JG\nforthcoming/U\nFORTH/M\nforthrightness/SM\nforthright/PYS\nforthwith\nfortieths\nfortification/MS\nfortified/U\nfortifier/SM\nfortify/ADSG\nfortiori\nfortissimo/S\nfortitude/SM\nfortnightly/S\nfortnight/MYS\nFORTRAN\nFortran/M\nfortress/GMSD\nfort/SM\nfortuitousness/SM\nfortuitous/YP\nfortuity/MS\nfortunateness/M\nfortunate/YUS\nfortune/MGSD\nfortuneteller/SM\nfortunetelling/SM\nforty/SRMH\nforum/MS\nforwarder/M\nforwarding/M\nforwardness/MS\nforward/PTZSGDRY\nforwent\nfossiliferous\nfossilization/MS\nfossilized/U\nfossilize/GSD\nfossil/MS\nFoss/M\nfosterer/M\nFoster/M\nfoster/SRDG\nFoucault/M\nfought\nfoulard/SM\nfoulmouth/D\nfoulness/MS\nfouls/M\nfoul/SYRDGTP\nfoundational\nfoundation/SM\nfounded/UF\nfounder/MDG\nfounder's/F\nfounding/F\nfoundling/MS\nfound/RDGZS\nfoundry/MS\nfounds/KF\nfountainhead/SM\nfountain/SMDG\nfount/MS\nfourfold\nFourier/M\nfourpence/M\nfourpenny\nfourposter/SM\nfourscore/S\nfour/SHM\nfoursome/SM\nfoursquare\nfourteener/M\nfourteen/SMRH\nfourteenths\nFourth\nfourths\nFourths\nfourth/Y\nfovea/M\nfowler/M\nFowler/M\nfowling/M\nfowl/SGMRD\nfoxfire/SM\nfoxglove/SM\nFoxhall/M\nfoxhole/SM\nfoxhound/SM\nfoxily\nfoxiness/MS\nfoxing/M\nfox/MDSG\nFox/MS\nfoxtail/M\nfoxtrot/MS\nfoxtrotted\nfoxtrotting\nfoxy/TRP\nfoyer/SM\nFPO\nfps\nfr\nfracas/SM\nfractal/SM\nfractional/Y\nfractionate/DNG\nfractionation/M\nfractioned\nfractioning\nfraction/ISMA\nfractiousness/SM\nfractious/PY\nfracture/MGDS\nfragile/Y\nfragility/MS\nfragmentarily\nfragmentariness/M\nfragmentary/P\nfragmentation/MS\nfragment/SDMG\nFragonard/M\nfragrance/SM\nfragrant/Y\nfrailness/MS\nfrail/STPYR\nfrailty/MS\nframed/U\nframer/M\nframe/SRDJGMZ\nframework/SM\nframing/M\nFrancaise/M\nFrance/MS\nFrancene/M\nFrancesca/M\nFrancesco/M\nfranchisee/S\nfranchise/ESDG\nfranchiser/SM\nfranchise's\nFranchot/M\nFrancie/M\nFrancine/M\nFrancis\nFrancisca/M\nFranciscan/MS\nFrancisco/M\nFranciska/M\nFranciskus/M\nfrancium/MS\nFrancklin/M\nFrancklyn/M\nFranck/M\nFrancoise/M\nFrancois/M\nFranco/M\nfrancophone/M\nfranc/SM\nFrancyne/M\nfrangibility/SM\nfrangible\nFrankel/M\nFrankenstein/MS\nfranker/M\nFrankford/M\nFrankfort/M\nFrankfurter/M\nfrankfurter/MS\nFrankfurt/RM\nFrankie/M\nfrankincense/MS\nFrankish/M\nfranklin/M\nFranklin/M\nFranklyn/M\nfrankness/MS\nfrank/SGTYRDP\nFrank/SM\nFranky/M\nFran/MS\nFrannie/M\nFranni/M\nFranny/M\nFransisco/M\nfrantically\nfranticness/M\nfrantic/PY\nFrants/M\nFranzen/M\nFranz/NM\nfrapp<70>\nfrappeed\nfrappeing\nfrappes\nFrasco/M\nFraser/M\nFrasier/M\nFrasquito/M\nfraternal/Y\nfraternity/MSF\nfraternization/SM\nfraternize/GZRSD\nfraternizer/M\nfraternizing/U\nfrat/MS\nfratricidal\nfratricide/MS\nfraud/CS\nfraud's\nfraudsters\nfraudulence/S\nfraudulent/YP\nfraught/SGD\nFraulein/S\nFrau/MN\nfray/CSDG\nFrayda/M\nFrayne/M\nfray's\nFraze/MR\nFrazer/M\nFrazier/M\nfrazzle/GDS\nfreakishness/SM\nfreakish/YP\nfreak/SGDM\nfreaky/RT\nfreckle/GMDS\nfreckly/RT\nFreda/M\nFreddie/M\nFreddi/M\nFreddy/M\nFredek/M\nFredelia/M\nFrederica/M\nFrederich/M\nFredericka/M\nFrederick/MS\nFrederic/M\nFrederico/M\nFredericton/M\nFrederigo/M\nFrederik/M\nFrederique/M\nFredholm/M\nFredia/M\nFredi/M\nFred/M\nFredra/M\nFredrick/M\nFredrickson/M\nFredric/M\nFredrika/M\nfreebase/GDS\nfreebie/MS\nfreebooter/M\nfreeboot/ZR\nfreeborn\nfreedman/M\nFreedman/M\nfreedmen\nfreedom/MS\nfreehand/D\nfreehanded/Y\nfreeholder/M\nfreehold/ZSRM\nfreeing/S\nfreelance/SRDGZM\nFreeland/M\nfreeloader/M\nfreeload/SRDGZ\nFree/M\nfreeman/M\nFreeman/M\nfreemasonry/M\nFreemasonry/MS\nFreemason/SM\nfreemen\nFreemon/M\nfreeness/M\nFreeport/M\nfreestanding\nfreestone/SM\nfreestyle/SM\nfreethinker/MS\nfreethinking/S\nFreetown/M\nfreeway/MS\nfreewheeler/M\nfreewheeling/P\nfreewheel/SRDMGZ\nfreewill\nfree/YTDRSP\nfreezable\nfreezer/SM\nfreeze/UGSA\nfreezing/S\nFreida/M\nfreighter/M\nfreight/ZGMDRS\nFremont/M\nFrenchman/M\nFrench/MDSG\nFrenchmen\nFrenchwoman/M\nFrenchwomen\nfrenetically\nfrenetic/S\nfrenzied/Y\nfrenzy/MDSG\nfreon/S\nFreon/SM\nfreq\nfrequency/ISM\nfrequented/U\nfrequenter/MS\nfrequentest\nfrequenting\nfrequent/IY\nfrequentness/M\nfrequents\nfresco/DMG\nfrescoes\nfresh/AZSRNDG\nfreshener/M\nfreshen/SZGDR\nfresher/MA\nfreshest\nfreshet/SM\nfreshly\nfreshman/M\nfreshmen\nfreshness/MS\nfreshwater/SM\nFresnel/M\nFresno/M\nfretboard\nfretfulness/MS\nfretful/PY\nfret/S\nfretsaw/S\nfretted\nfretting\nfretwork/MS\nFreudian/S\nFreud/M\nFreya/M\nFrey/M\nfriableness/M\nfriable/P\nfriary/MS\nfriar/YMS\nfricasseeing\nfricassee/MSD\nfrication/M\nfricative/MS\nFrick/M\nfrictional/Y\nfrictionless/Y\nfriction/MS\nFriday/SM\nfridge/SM\nfried/A\nFrieda/M\nFriedan/M\nfriedcake/SM\nFriederike/M\nFriedman/M\nFriedrich/M\nFriedrick/M\nfriendlessness/M\nfriendless/P\nfriendlies\nfriendlily\nfriendliness/USM\nfriendly/PUTR\nfriend/SGMYD\nfriendship/MS\nfrier's\nfries/M\nfrieze/SDGM\nfrigate/SM\nFrigga/M\nfrigged\nfrigging/S\nfrighten/DG\nfrightening/Y\nfrightfulness/MS\nfrightful/PY\nfright/GXMDNS\nFrigidaire/M\nfrigidity/MS\nfrigidness/SM\nfrigid/YP\nfrig/S\nfrill/MDGS\nfrilly/RST\nFri/M\nfringe/IGSD\nfringe's\nfrippery/SM\nFrisbee/MS\nFrisco/M\nFrisian/SM\nfrisker/M\nfriskily\nfriskiness/SM\nfrisk/RDGS\nfrisky/RTP\nfrisson/M\nFrito/M\nfritterer/M\nfritter/RDSG\nFritz/M\nfritz/SM\nfrivolity/MS\nfrivolousness/SM\nfrivolous/PY\nfrizz/GYSD\nfrizzle/DSG\nfrizzly/RT\nfrizzy/RT\nFr/MD\nFrobisher/M\nfrocking/M\nfrock's\nfrock/SUDGC\nfrogged\nfrogging\nfrogman/M\nfrogmarched\nfrogmen\nfrog/MS\nfro/HS\nFroissart/M\nfrolicked\nfrolicker/SM\nfrolicking\nfrolic/SM\nfrolicsome\nfrom\nFromm/M\nfrond/SM\nfrontage/MS\nfrontal/SY\nFrontenac/M\nfront/GSFRD\nfrontier/SM\nfrontiersman/M\nfrontiersmen\nfrontispiece/SM\nfrontrunner's\nfront's\nfrontward/S\nfrosh/M\nFrostbelt/M\nfrostbite/MS\nfrostbit/G\nfrostbiting/M\nfrostbitten\nfrost/CDSG\nfrosteds\nfrosted/U\nfrostily\nfrostiness/SM\nfrosting/MS\nFrost/M\nfrost's\nfrosty/PTR\nfroth/GMD\nfrothiness/SM\nfroths\nfrothy/TRP\nfroufrou/MS\nfrowardness/MS\nfroward/P\nfrowner/M\nfrowning/Y\nfrown/RDSG\nfrowzily\nfrowziness/SM\nfrowzy/RPT\nfrozenness/M\nfrozen/YP\nfroze/UA\nfructify/GSD\nfructose/MS\nFruehauf/M\nfrugality/SM\nfrugal/Y\nfruitcake/SM\nfruiterer/M\nfruiter/RM\nfruitfuller\nfruitfullest\nfruitfulness/MS\nfruitful/UYP\nfruit/GMRDS\nfruitiness/MS\nfruition/SM\nfruitlessness/MS\nfruitless/YP\nfruity/RPT\nfrumpish\nfrump/MS\nfrumpy/TR\nFrunze/M\nfrustrater/M\nfrustrate/RSDXNG\nfrustrating/Y\nfrustration/M\nfrustum/SM\nFrye/M\nfryer/MS\nFry/M\nfry/NGDS\nF's\nf's/KA\nFSLIC\nft/C\nFTC\nFTP\nfuchsia/MS\nFuchs/M\nfucker/M!\nfuck/GZJRDMS!\nFUD\nfuddle/GSD\nfudge/GMSD\nfuel/ASDG\nfueler/SM\nfuel's\nFuentes/M\nfugal\nFugger/M\nfugitiveness/M\nfugitive/SYMP\nfugue/GMSD\nfuhrer/S\nFuji/M\nFujitsu/M\nFujiyama\nFukuoka/M\nFulani/M\nFulbright/M\nfulcrum/SM\nfulfilled/U\nfulfiller/M\nfulfill/GLSRD\nfulfillment/MS\nfullback/SMG\nfuller/DMG\nFuller/M\nFullerton/M\nfullish\nfullness/MS\nfull/RDPSGZT\nfullstops\nfullword/SM\nfully\nfulminate/XSDGN\nfulmination/M\nfulness's\nfulsomeness/SM\nfulsome/PY\nFulton/M\nFulvia/M\nfumble/GZRSD\nfumbler/M\nfumbling/Y\nfume/DSG\nfumigant/MS\nfumigate/NGSDX\nfumigation/M\nfumigator/SM\nfuming/Y\nfumy/TR\nFunafuti\nfunctionalism/M\nfunctionalist/SM\nfunctionality/S\nfunctional/YS\nfunctionary/MS\nfunction/GSMD\nfunctor/SM\nfundamentalism/SM\nfundamentalist/SM\nfundamental/SY\nfund/ASMRDZG\nfunded/U\nfundholders\nfundholding\nfunding/S\nFundy/M\nfuneral/MS\nfunerary\nfunereal/Y\nfunfair/M\nfungal/S\nfungible/M\nfungicidal\nfungicide/SM\nfungi/M\nfungoid/S\nfungous\nfungus/M\nfunicular/SM\nfunk/GSDM\nfunkiness/S\nfunky/RTP\nfun/MS\nfunned\nfunnel/SGMD\nfunner\nfunnest\nfunnily/U\nfunniness/SM\nfunning\nfunny/RSPT\nfurbelow/MDSG\nfurbisher/M\nfurbish/GDRSA\nfuriousness/M\nfurious/RYP\nfurlong/MS\nfurlough/DGM\nfurloughs\nfurl/UDGS\nfurn\nfurnace/GMSD\nfurnished/U\nfurnisher/MS\nfurnish/GASD\nfurnishing/SM\nfurniture/SM\nfurore/MS\nfuror/MS\nfur/PMS\nfurred\nfurrier/M\nfurriness/SM\nfurring/SM\nfurrow/DMGS\nfurry/RTZP\nfurtherance/MS\nfurtherer/M\nfurthermore\nfurthermost\nfurther/TGDRS\nfurthest\nfurtiveness/SM\nfurtive/PY\nfury/SM\nfurze/SM\nfusebox/S\nfusee/SM\nfuse/FSDAGCI\nfuselage/SM\nfuse's/A\nFushun/M\nfusibility/SM\nfusible/I\nfusiform\nfusilier/MS\nfusillade/SDMG\nfusion/KMFSI\nfussbudget/MS\nfusser/M\nfussily\nfussiness/MS\nfusspot/SM\nfuss/SRDMG\nfussy/PTR\nfustian/MS\nfustiness/MS\nfusty/RPT\nfut\nfutileness/M\nfutile/PY\nfutility/MS\nfuton/S\nfuture/SM\nfuturism/SM\nfuturistic/S\nfuturist/S\nfuturity/MS\nfuturologist/S\nfuturology/MS\nfutz/GSD\nfuze's\nFuzhou/M\nFuzzbuster/M\nfuzzily\nfuzziness/SM\nfuzz/SDMG\nfuzzy/PRT\nfwd\nFWD\nfwy\nFY\nFYI\nGA\ngabardine/SM\ngabbed\nGabbey/M\nGabbie/M\nGabbi/M\ngabbiness/S\ngabbing\ngabble/SDG\nGabby/M\ngabby/TRP\nGabe/M\ngaberdine's\nGabey/M\ngabfest/MS\nGabie/M\nGabi/M\ngable/GMSRD\nGable/M\nGabonese\nGabon/M\nGaborone/M\nGabriela/M\nGabriele/M\nGabriella/M\nGabrielle/M\nGabriellia/M\nGabriell/M\nGabriello/M\nGabriel/M\nGabrila/M\ngab/S\nGaby/M\nGacrux/M\ngadabout/MS\ngadded\ngadder/MS\ngadding\ngadfly/MS\ngadgetry/MS\ngadget/SM\ngadolinium/MS\ngad/S\nGadsden/M\nGaea/M\nGaelan/M\nGaelic/M\nGael/SM\nGae/M\ngaffe/MS\ngaffer/M\ngaff/SGZRDM\ngaga\nGagarin/M\ngag/DRSG\nGage/M\ngager/M\ngage/SM\ngagged\ngagging\ngaggle/SDG\ngagwriter/S\ngaiety/MS\nGaile/M\nGail/M\ngaily\ngain/ADGS\ngainer/SM\nGaines/M\nGainesville/M\ngainfulness/M\ngainful/YP\ngaining/S\ngainly/U\ngainsaid\ngainsayer/M\ngainsay/RSZG\nGainsborough/M\ngaiter/M\ngait/GSZMRD\nGaithersburg/M\ngalactic\nGalahad/MS\nGalapagos/M\ngal/AS\ngala/SM\nGalatea/M\nGalatia/M\nGalatians/M\nGalaxy/M\ngalaxy/MS\nGalbraith/M\nGalbreath/M\ngale/AS\nGale/M\ngalen\ngalena/MS\ngalenite/M\nGalen/M\ngale's\nGalibi/M\nGalilean/MS\nGalilee/M\nGalileo/M\nGalina/M\nGallagher/M\ngallanted\ngallanting\ngallantry/MS\ngallants\ngallant/UY\nGallard/M\ngallbladder/MS\nGallegos/M\ngalleon/SM\ngalleria/S\ngallery/MSDG\ngalley/MS\nGallic\nGallicism/SM\ngallimaufry/MS\ngalling/Y\ngallium/SM\ngallivant/GDS\nGall/M\ngallonage/M\ngallon/SM\ngalloper/M\ngallop/GSRDZ\nGalloway/M\ngallows/M\ngall/SGMD\ngallstone/MS\nGallup/M\nGal/MN\nGalois/M\ngaloot/MS\ngalore/S\ngalosh/GMSD\ngal's\nGalsworthy/M\ngalumph/GD\ngalumphs\ngalvanic\nGalvani/M\ngalvanism/MS\ngalvanization/SM\ngalvanize/SDG\nGalvan/M\ngalvanometer/SM\ngalvanometric\nGalven/M\nGalveston/M\nGalvin/M\nGa/M\nGamaliel/M\nGama/M\nGambia/M\nGambian/S\ngambit/MS\ngamble/GZRSD\nGamble/M\ngambler/M\ngambol/SGD\ngamecock/SM\ngamekeeper/MS\ngameness/MS\ngame/PJDRSMYTZG\ngamesmanship/SM\ngamesmen\ngamester/M\ngamest/RZ\ngamete/MS\ngametic\ngamine/SM\ngaminess/MS\ngaming/M\ngamin/MS\ngamma/MS\ngammon/DMSG\nGamow/M\ngamut/MS\ngamy/TRP\ngander/DMGS\nGandhian\nGandhi/M\ngangbusters\nganger/M\nGanges/M\ngang/GRDMS\ngangland/SM\nganglia/M\ngangling\nganglionic\nganglion/M\ngangplank/SM\ngangrene/SDMG\ngangrenous\ngangster/SM\nGangtok/M\ngangway/MS\nGan/M\ngannet/SM\nGannie/M\nGannon/M\nGanny/M\ngantlet/GMDS\nGantry/M\ngantry/MS\nGanymede/M\nGAO\ngaoler/M\ngaol/MRDGZS\ngaper/M\ngape/S\ngaping/Y\ngapped\ngapping\ngap/SJMDRG\ngarage/GMSD\nGarald/M\ngarbageman/M\ngarbage/SDMG\ngarbanzo/MS\ngarb/DMGS\ngarbler/M\ngarble/RSDG\nGarbo/M\nGarcia/M\ngar<61>on/SM\ngardener/M\nGardener/M\ngardenia/SM\ngardening/M\ngarden/ZGRDMS\nGardie/M\nGardiner/M\nGard/M\nGardner/M\nGardy/M\nGarek/M\nGare/MH\nGareth/M\nGarey/M\nGarfield/M\ngarfish/MS\nGarfunkel/M\nGargantua/M\ngargantuan\ngargle/SDG\ngargoyle/DSM\nGaribaldi/M\nGarik/M\ngarishness/MS\ngarish/YP\nGarland/M\ngarland/SMDG\ngarlicked\ngarlicking\ngarlicky\ngarlic/SM\ngarment/MDGS\nGar/MH\nGarner/M\ngarner/SGD\nGarnet/M\ngarnet/SM\nGarnette/M\nGarnett/M\ngarnish/DSLG\ngarnisheeing\ngarnishee/SDM\ngarnishment/MS\nGarold/M\ngarote's\ngarotte's\nGarrard/M\ngarred\nGarrek/M\nGarreth/M\nGarret/M\ngarret/SM\nGarrett/M\nGarrick/M\nGarrik/M\ngarring\nGarrison/M\ngarrison/SGMD\ngarroter/M\ngarrote/SRDMZG\nGarrot/M\ngarrotte's\nGarrott/M\ngarrulity/SM\ngarrulousness/MS\ngarrulous/PY\nGarry/M\ngar/SLM\ngarter/SGDM\nGarth/M\nGarvey/M\nGarvin/M\nGarv/M\nGarvy/M\nGarwin/M\nGarwood/M\nGary/M\nGarza/M\ngasbag/MS\nGascony/M\ngaseousness/M\ngaseous/YP\ngases/C\ngas/FC\ngash/GTMSRD\ngasification/M\ngasifier/M\ngasify/SRDGXZN\ngasket/SM\ngaslight/DMS\ngasohol/S\ngasoline/MS\ngasometer/M\nGaspard/M\nGaspar/M\nGasparo/M\ngasper/M\nGasper/M\ngasp/GZSRD\ngasping/Y\ngas's\ngassed/C\nGasser/M\ngasser/MS\nGasset/M\ngassiness/M\ngassing/SM\ngassy/PTR\nGaston/M\ngastric\ngastritides\ngastritis/MS\ngastroenteritides\ngastroenteritis/M\ngastrointestinal\ngastronome/SM\ngastronomic\ngastronomical/Y\ngastronomy/MS\ngastropod/SM\ngasworks/M\ngateau/MS\ngateaux\ngatecrash/GZSRD\ngatehouse/MS\ngatekeeper/SM\ngate/MGDS\ngatepost/SM\nGates\ngateway/MS\ngathered/IA\ngatherer/M\ngathering/M\ngather/JRDZGS\ngathers/A\nGatlinburg/M\nGatling/M\nGatorade/M\ngator/MS\nGatsby/M\nGatun/M\ngaucheness/SM\ngaucherie/SM\ngauche/TYPR\ngaucho/SM\ngaudily\ngaudiness/MS\ngaudy/PRST\ngaugeable\ngauger/M\nGauguin/M\nGaulish/M\nGaulle/M\nGaul/MS\nGaultiero/M\ngauntlet/GSDM\nGauntley/M\ngauntness/MS\ngaunt/PYRDSGT\ngauss/C\ngausses\nGaussian\nGauss/M\ngauss's\nGautama/M\nGauthier/M\nGautier/M\ngauze/SDGM\ngauziness/MS\ngauzy/TRP\nGavan/M\ngave\ngavel/GMDS\nGaven/M\nGavin/M\nGav/MN\ngavotte/MSDG\nGavra/M\nGavrielle/M\nGawain/M\nGawen/M\ngawkily\ngawkiness/MS\ngawk/SGRDM\ngawky/RSPT\nGayel/M\nGayelord/M\nGaye/M\ngayety's\nGayla/M\nGayleen/M\nGaylene/M\nGayler/M\nGayle/RM\nGaylord/M\nGaylor/M\nGay/M\ngayness/SM\nGaynor/M\ngay/RTPS\nGaza/M\ngazebo/SM\ngaze/DRSZG\ngazelle/MS\ngazer/M\ngazetteer/SGDM\ngazette/MGSD\nGaziantep/M\ngazillion/S\ngazpacho/MS\nGB\nG/B\nGdansk/M\nGd/M\nGDP\nGearalt/M\nGearard/M\ngearbox/SM\ngear/DMJSG\ngearing/M\ngearshift/MS\ngearstick\ngearwheel/SM\nGeary/M\ngecko/MS\nGED\ngeegaw's\ngeeing\ngeek/SM\ngeeky/RT\ngeese/M\ngeest/M\ngee/TDS\ngeezer/MS\nGehenna/M\nGehrig/M\nGeiger/M\nGeigy/M\ngeisha/M\ngelatinousness/M\ngelatinous/PY\ngelatin/SM\ngelcap\ngelding/M\ngeld/JSGD\ngelid\ngelignite/MS\ngelled\ngelling\ngel/MBS\nGelya/M\nGe/M\nGE/M\nGemini/SM\ngemlike\nGemma/M\ngemmed\ngemming\ngem/MS\ngemological\ngemologist/MS\ngemology/MS\ngemstone/SM\ngen\nGena/M\nGenaro/M\ngendarme/MS\ngender/DMGS\ngenderless\ngenealogical/Y\ngenealogist/SM\ngenealogy/MS\nGene/M\ngene/MS\ngeneralissimo/SM\ngeneralist/MS\ngenerality/MS\ngeneralizable/SM\ngeneralization/MS\ngeneralized/U\ngeneralize/GZBSRD\ngeneralizer/M\ngeneral/MSPY\ngeneralness/M\ngeneralship/SM\ngenera/M\ngenerate/CXAVNGSD\ngenerational\ngeneration/MCA\ngenerative/AY\ngenerators/A\ngenerator/SM\ngenerically\ngeneric/PS\ngenerosity/MS\ngenerously/U\ngenerousness/SM\ngenerous/PY\nGenesco/M\ngenesis/M\nGenesis/M\ngenes/S\ngenetically\ngeneticist/MS\ngenetic/S\ngenetics/M\nGenet/M\nGeneva/M\nGenevieve/M\nGenevra/M\nGenghis/M\ngeniality/FMS\ngenially/F\ngenialness/M\ngenial/PY\nGenia/M\ngenies/K\ngenie/SM\ngenii/M\ngenitalia\ngenitals\ngenital/YF\ngenitive/SM\ngenitourinary\ngenius/SM\nGen/M\nGenna/M\nGennie/M\nGennifer/M\nGenni/M\nGenny/M\nGenoa/SM\ngenocidal\ngenocide/SM\nGeno/M\ngenome/SM\ngenotype/MS\nGenovera/M\ngenre/MS\ngent/AMS\ngenteelness/MS\ngenteel/PRYT\ngentian/SM\ngentile/S\nGentile's\ngentility/MS\ngentlefolk/S\ngentlemanliness/M\ngentlemanly/U\ngentleman/YM\ngentlemen\ngentleness/SM\ngentle/PRSDGT\ngentlewoman/M\ngentlewomen/M\ngently\ngentrification/M\ngentrify/NSDGX\nGentry/M\ngentry/MS\ngenuflect/GDS\ngenuflection/MS\ngenuineness/SM\ngenuine/PY\ngenus\nGenvieve/M\ngeocentric\ngeocentrically\ngeocentricism\ngeochemical/Y\ngeochemistry/MS\ngeochronology/M\ngeodesic/S\ngeode/SM\ngeodesy/MS\ngeodetic/S\nGeoff/M\nGeoffrey/M\nGeoffry/M\ngeog\ngeographer/MS\ngeographic\ngeographical/Y\ngeography/MS\ngeologic\ngeological/Y\ngeologist/MS\ngeology/MS\ngeom\nGeo/M\ngeomagnetic\ngeomagnetically\ngeomagnetism/SM\ngeometer/MS\ngeometrical/Y\ngeometrician/M\ngeometric/S\ngeometry/MS\ngeomorphological\ngeomorphology/M\ngeophysical/Y\ngeophysicist/MS\ngeophysics/M\ngeopolitical/Y\ngeopolitic/S\ngeopolitics/M\nGeoras/M\nGeordie/M\nGeorgeanna/M\nGeorgeanne/M\nGeorgena/M\nGeorge/SM\nGeorgeta/M\nGeorgetown/M\nGeorgetta/M\nGeorgette/M\nGeorgia/M\nGeorgiana/M\nGeorgianna/M\nGeorgianne/M\nGeorgian/S\nGeorgie/M\nGeorgi/M\nGeorgina/M\nGeorgine/M\nGeorg/M\nGeorgy/M\ngeostationary\ngeosynchronous\ngeosyncline/SM\ngeothermal\ngeothermic\nGeralda/M\nGeraldine/M\nGerald/M\ngeranium/SM\nGerard/M\nGerardo/M\nGerber/M\ngerbil/MS\nGerda/M\nGerek/M\nGerhardine/M\nGerhard/M\nGerhardt/M\nGerianna/M\nGerianne/M\ngeriatric/S\ngeriatrics/M\nGerick/M\nGerik/M\nGeri/M\nGeritol/M\nGerladina/M\nGer/M\nGermaine/M\nGermain/M\nGermana/M\ngermane\nGermania/M\nGermanic/M\ngermanium/SM\ngermanized\nGerman/SM\nGermantown/M\nGermany/M\nGermayne/M\ngermen/M\ngermicidal\ngermicide/MS\ngerminal/Y\ngerminated/U\ngerminate/XVGNSD\ngermination/M\ngerminative/Y\ngerm/MNS\nGerome/M\nGeronimo/M\ngerontocracy/M\ngerontological\ngerontologist/SM\ngerontology/SM\nGerrard/M\nGerrie/M\nGerrilee/M\nGerri/M\nGerry/M\ngerrymander/SGD\nGershwin/MS\nGerta/M\nGertie/M\nGerti/M\nGert/M\nGertruda/M\nGertrude/M\nGertrudis/M\nGertrud/M\nGerty/M\ngerundive/M\ngerund/SVM\nGery/M\ngestalt/M\ngestapo/S\nGestapo/SM\ngestate/SDGNX\ngestational\ngestation/M\ngesticulate/XSDVGN\ngesticulation/M\ngesticulative/Y\ngestural\ngesture/SDMG\ngesundheit\ngetaway/SM\nGethsemane/M\nget/S\ngetter/SDM\ngetting\nGetty/M\nGettysburg/M\ngetup/MS\ngewgaw/MS\nGew<65>rztraminer\ngeyser/GDMS\nGhanaian/MS\nGhana/M\nGhanian's\nghastliness/MS\nghastly/TPR\nghat/MS\nGhats/M\nGhent/M\nGherardo/M\ngherkin/SM\nghetto/DGMS\nghettoize/SDG\nGhibelline/M\nghostlike\nghostliness/MS\nghostly/TRP\nghost/SMYDG\nghostwrite/RSGZ\nghostwritten\nghostwrote\nghoulishness/SM\nghoulish/PY\nghoul/SM\nGHQ\nGI\nGiacinta/M\nGiacobo/M\nGiacometti/M\nGiacomo/M\nGiacopo/M\nGiana/M\nGianina/M\nGian/M\nGianna/M\nGianni/M\nGiannini/M\ngiantess/MS\ngiantkiller\ngiant/SM\nGiauque/M\nGiavani/M\ngibber/DGS\ngibberish/MS\ngibbet/MDSG\nGibbie/M\nGibb/MS\nGibbon/M\ngibbon/MS\ngibbousness/M\ngibbous/YP\nGibby/M\ngibe/GDRS\ngiber/M\ngiblet/MS\nGib/M\nGibraltar/MS\nGibson/M\ngiddap\ngiddily\ngiddiness/SM\nGiddings/M\ngiddy/GPRSDT\nGide/M\nGideon/MS\nGielgud/M\nGienah/M\nGiffard/M\nGiffer/M\nGiffie/M\nGifford/M\nGiff/RM\nGiffy/M\ngiftedness/M\ngifted/PY\ngift/SGMD\ngigabyte/S\ngigacycle/MS\ngigahertz/M\ngigantically\ngiganticness/M\ngigantic/P\ngigavolt\ngigawatt/M\ngigged\ngigging\ngiggler/M\ngiggle/RSDGZ\ngiggling/Y\ngiggly/TR\nGigi/M\ngig/MS\nGIGO\ngigolo/MS\ngila\nGila/M\nGilberta/M\nGilberte/M\nGilbertina/M\nGilbertine/M\ngilbert/M\nGilbert/M\nGilberto/M\nGilbertson/M\nGilburt/M\nGilchrist/M\nGilda/M\ngilder/M\ngilding/M\ngild/JSGZRD\nGilead/M\nGilemette/M\nGiles\nGilgamesh/M\nGilkson/M\nGillan/M\nGilles\nGillespie/M\nGillette/M\nGilliam/M\nGillian/M\nGillie/M\nGilligan/M\nGilli/M\nGill/M\ngill/SGMRD\nGilly/M\nGilmore/M\nGil/MY\ngilt/S\ngimbaled\ngimbals\nGimbel/M\ngimcrackery/SM\ngimcrack/S\ngimlet/MDSG\ngimme/S\ngimmick/GDMS\ngimmickry/MS\ngimmicky\ngimp/GSMD\ngimpy/RT\nGina/M\nGinelle/M\nGinevra/M\ngingerbread/SM\ngingerliness/M\ngingerly/P\nGinger/M\nginger/SGDYM\ngingersnap/SM\ngingery\ngingham/SM\ngingivitis/SM\nGingrich/M\nginkgoes\nginkgo/M\nginmill\ngin/MS\nginned\nGinnie/M\nGinnifer/M\nGinni/M\nginning\nGinny/M\nGino/M\nGinsberg/M\nGinsburg/M\nginseng/SM\nGioconda/M\nGiordano/M\nGiorgia/M\nGiorgi/M\nGiorgio/M\nGiorgione/M\nGiotto/M\nGiovanna/M\nGiovanni/M\nGipsy's\ngiraffe/MS\nGiralda/M\nGiraldo/M\nGiraud/M\nGiraudoux/M\ngirded/U\ngirder/M\ngirdle/GMRSD\ngirdler/M\ngird/RDSGZ\ngirlfriend/MS\ngirlhood/SM\ngirlie/M\ngirlishness/SM\ngirlish/YP\ngirl/MS\ngiro/M\ngirt/GDS\ngirth/MDG\ngirths\nGisela/M\nGiselbert/M\nGisele/M\nGisella/M\nGiselle/M\nGish/M\ngist/MS\ngit/M\nGiuditta/M\nGiulia/M\nGiuliano/M\nGiulietta/M\nGiulio/M\nGiuseppe/M\nGiustina/M\nGiustino/M\nGiusto/M\ngiveaway/SM\ngiveback/S\ngive/HZGRS\ngiven/SP\ngiver/M\ngiving/Y\nGiza/M\nGizela/M\ngizmo's\ngizzard/SM\nGk/M\nglac<61>/DGS\nglacial/Y\nglaciate/XNGDS\nglaciation/M\nglacier/SM\nglaciological\nglaciologist/M\nglaciology/M\ngladded\ngladden/GDS\ngladder\ngladdest\ngladding\ngladdy\nglade/SM\ngladiatorial\ngladiator/SM\nGladi/M\ngladiola/MS\ngladioli\ngladiolus/M\ngladly/RT\nGlad/M\ngladness/MS\ngladsome/RT\nGladstone/MS\nGladys\nglad/YSP\nglamor/DMGS\nglamorization/MS\nglamorizer/M\nglamorize/SRDZG\nglamorousness/M\nglamorous/PY\nglance/GJSD\nglancing/Y\nglanders/M\nglandes\nglandular/Y\ngland/ZSM\nglans/M\nglare/SDG\nglaringness/M\nglaring/YP\nGlaser/M\nGlasgow/M\nglasnost/S\nglassblower/S\nglassblowing/MS\nglassful/MS\nglass/GSDM\nglasshouse/SM\nglassily\nglassiness/SM\nglassless\nGlass/M\nglassware/SM\nglasswort/M\nglassy/PRST\nGlastonbury/M\nGlaswegian/S\nglaucoma/SM\nglaucous\nglazed/U\nglazer/M\nglaze/SRDGZJ\nglazier/SM\nglazing/M\ngleam/MDGS\ngleaner/M\ngleaning/M\nglean/RDGZJS\nGleason/M\nGleda/M\ngleed/M\nglee/DSM\ngleefulness/MS\ngleeful/YP\ngleeing\nGlendale/M\nGlenda/M\nGlenden/M\nGlendon/M\nGlenine/M\nGlen/M\nGlenna/M\nGlennie/M\nGlennis/M\nGlenn/M\nglen/SM\nglibber\nglibbest\nglibness/MS\nglib/YP\nglide/JGZSRD\nglider/M\nglim/M\nglimmer/DSJG\nglimmering/M\nglimpse/DRSZMG\nglimpser/M\nglint/DSG\nglissandi\nglissando/M\nglisten/DSG\nglister/DGS\nglitch/MS\nglitter/GDSJ\nglittering/Y\nglittery\nglitz/GSD\nglitzy/TR\ngloaming/MS\ngloater/M\ngloating/Y\ngloat/SRDG\nglobalism/S\nglobalist/S\nglobal/SY\nglobe/SM\nglobetrotter/MS\nglob/GDMS\nglobularity/M\nglobularness/M\nglobular/PY\nglobule/MS\nglobulin/MS\nglockenspiel/SM\nglommed\ngloom/GSMD\ngloomily\ngloominess/MS\ngloomy/RTP\nglop/MS\nglopped\nglopping\ngloppy/TR\nGloria/M\nGloriana/M\nGloriane/M\nglorification/M\nglorifier/M\nglorify/XZRSDNG\nGlori/M\nglorious/IYP\ngloriousness/IM\nGlory/M\nglory/SDMG\nglossary/MS\ngloss/GSDM\nglossily\nglossiness/SM\nglossolalia/SM\nglossy/RSPT\nglottal\nglottalization/M\nglottis/MS\nGloucester/M\ngloveless\nglover/M\nGlover/M\nglove/SRDGMZ\nglower/GD\nglow/GZRDMS\nglowing/Y\nglowworm/SM\nglucose/SM\nglue/DRSMZG\nglued/U\ngluer/M\ngluey\ngluier\ngluiest\nglummer\nglummest\nglumness/MS\nglum/SYP\ngluon/M\nglutamate/M\ngluten/M\nglutenous\nglutinousness/M\nglutinous/PY\nglut/SMNX\nglutted\nglutting\nglutton/MS\ngluttonous/Y\ngluttony/SM\nglyceride/M\nglycerinate/MD\nglycerine's\nglycerin/SM\nglycerolized/C\nglycerol/SM\nglycine/M\nglycogen/SM\nglycol/MS\nGlynda/M\nGlynis/M\nGlyn/M\nGlynnis/M\nGlynn/M\nglyph/M\nglyphs\ngm\nGM\nGMT\ngnarl/SMDG\ngnash/SDG\ngnat/MS\ngnawer/M\ngnaw/GRDSJ\ngnawing/M\ngneiss/SM\nGnni/M\ngnomelike\nGNOME/M\ngnome/SM\ngnomic\ngnomish\ngnomonic\ngnosticism\nGnosticism/M\ngnostic/K\nGnostic/M\nGNP\ngnu/MS\ngoad/MDSG\ngoalie/SM\ngoalkeeper/MS\ngoalkeeping/M\ngoalless\ngoal/MDSG\ngoalmouth/M\ngoalpost/S\ngoalscorer\ngoalscoring\ngoaltender/SM\nGoa/M\ngoatee/SM\ngoatherd/MS\ngoat/MS\ngoatskin/SM\ngobbed\ngobbet/MS\ngobbing\ngobbledegook's\ngobbledygook/S\ngobbler/M\ngobble/SRDGZ\nGobi/M\ngoblet/MS\ngoblin/SM\ngob/SM\nGodard/M\nGodart/M\ngodchild/M\ngodchildren\ngoddammit\ngoddamn/GS\nGoddard/M\nGoddart/M\ngoddaughter/SM\ngodded\ngoddess/MS\ngodding\nG<6E>del/M\ngodfather/GSDM\ngodforsaken\nGodfree/M\nGodfrey/M\nGodfry/M\ngodhead/S\ngodhood/SM\nGodiva/M\ngodlessness/MS\ngodless/P\ngodlikeness/M\ngodlike/P\ngodliness/UMS\ngodly/UTPR\nGod/M\ngodmother/MS\nGodot/M\ngodparent/SM\ngodsend/MS\ngod/SMY\ngodson/MS\nGodspeed/S\nGodthaab/M\nGodunov/M\nGodwin/M\nGodzilla/M\nGoebbels/M\nGoering/M\ngoer/MG\ngoes\nGoethals/M\nGoethe/M\ngofer/SM\nGoff/M\ngoggler/M\ngoggle/SRDGZ\nGogh/M\nGog/M\nGogol/M\nGoiania/M\ngoing/M\ngoiter/SM\nGolan/M\nGolconda/M\nGolda/M\nGoldarina/M\nGoldberg/M\ngoldbricker/M\ngoldbrick/GZRDMS\nGolden/M\ngoldenness/M\ngoldenrod/SM\ngoldenseal/M\ngolden/TRYP\ngoldfinch/MS\ngoldfish/SM\nGoldia/M\nGoldie/M\nGoldilocks/M\nGoldi/M\nGoldina/M\nGolding/M\nGoldman/M\ngoldmine/S\ngold/MRNGTS\ngoldsmith/M\nGoldsmith/M\ngoldsmiths\nGoldstein/M\nGoldwater/M\nGoldwyn/M\nGoldy/M\nGoleta/M\ngolfer/M\ngolf/RDMGZS\nGolgotha/M\nGoliath/M\nGoliaths\ngolly/S\nGomez/M\nGomorrah/M\nGompers/M\ngo/MRHZGJ\ngonadal\ngonad/SM\ngondola/SM\ngondolier/MS\nGondwanaland/M\ngoner/M\ngone/RZN\ngong/SGDM\ngonion/M\ngonna\ngonorrheal\ngonorrhea/MS\nGonzales/M\nGonzalez/M\nGonzalo/M\nGoober/M\ngoober/MS\ngoodbye/MS\ngoodhearted\ngoodie's\ngoodish\ngoodly/TR\nGood/M\nGoodman/M\ngoodness/MS\ngoodnight\nGoodrich/M\ngood/SYP\ngoodwill/MS\nGoodwin/M\nGoodyear/M\ngoody/SM\ngooey\ngoofiness/MS\ngoof/SDMG\ngoofy/RPT\nGoogle/M\ngooier\ngooiest\ngook/SM\ngoo/MS\ngoon/SM\ngoop/SM\ngooseberry/MS\ngoosebumps\ngoose/M\ngoos/SDG\nGOP\nGopher\ngopher/SM\nGoran/M\nGoraud/M\nGorbachev\nGordan/M\nGorden/M\nGordian/M\nGordie/M\nGordimer/M\nGordon/M\nGordy/M\ngore/DSMG\nGore/M\nGoren/M\nGorey/M\nGorgas\ngorged/E\ngorge/GMSRD\ngorgeousness/SM\ngorgeous/YP\ngorger/EM\ngorges/E\ngorging/E\nGorgon/M\ngorgon/S\nGorgonzola/M\nGorham/M\ngorilla/MS\ngorily\ngoriness/MS\ngoring/M\nGorky/M\ngormandizer/M\ngormandize/SRDGZ\ngormless\ngorp/S\ngorse/SM\ngory/PRT\ngos\ngoshawk/MS\ngosh/S\ngosling/M\ngospeler/M\ngospel/MRSZ\nGospel/SM\ngossamer/SM\ngossipy\ngossip/ZGMRDS\ngotcha/SM\nG<6E>teborg/M\nGotham/M\nGothart/M\nGothicism/M\nGothic/S\nGoth/M\nGoths\ngot/IU\ngoto\nGOTO/MS\ngotta\ngotten/U\nGottfried/M\nGoucher/M\nGouda/SM\ngouge/GZSRD\ngouger/M\ngoulash/SM\nGould/M\nGounod/M\ngourde/SM\ngourd/MS\ngourmand/MS\ngourmet/MS\ngout/SM\ngouty/RT\ngovernable/U\ngovernance/SM\ngoverned/U\ngoverness/SM\ngovern/LBGSD\ngovernmental/Y\ngovernment/MS\nGovernor\ngovernor/MS\ngovernorship/SM\ngov/S\ngovt\ngown/GSDM\nGoya/M\nGP\nGPA\nGPO\nGPSS\ngr\ngrabbed\ngrabber/SM\ngrabbing/S\ngrab/S\nGracchus/M\ngrace/ESDMG\ngraceful/EYPU\ngracefuller\ngracefullest\ngracefulness/ESM\nGraceland/M\ngracelessness/MS\ngraceless/PY\nGrace/M\nGracia/M\nGraciela/M\nGracie/M\ngraciousness/SM\ngracious/UY\ngrackle/SM\ngradate/DSNGX\ngradation/MCS\ngrade/ACSDG\ngraded/U\nGradeigh/M\ngradely\ngrader/MC\ngrade's\nGradey/M\ngradient/RMS\ngrad/MRDGZJS\ngradualism/MS\ngradualist/MS\ngradualness/MS\ngradual/SYP\ngraduand/SM\ngraduate/MNGDSX\ngraduation/M\nGrady/M\nGraehme/M\nGraeme/M\nGraffias/M\ngraffiti\ngraffito/M\nGraff/M\ngrafter/M\ngrafting/M\ngraft/MRDSGZ\nGrafton/M\nGrahame/M\nGraham/M\ngraham/SM\nGraig/M\ngrail/S\nGrail/SM\ngrainer/M\ngrain/IGSD\ngraininess/MS\ngraining/M\ngrain's\ngrainy/RTP\ngram/KSM\nGram/M\ngrammarian/SM\ngrammar/MS\ngrammaticality/M\ngrammaticalness/M\ngrammatical/UY\ngrammatic/K\ngramme/SM\nGrammy/S\ngramophone/SM\nGrampians\ngrampus/SM\nGranada/M\ngranary/MS\ngrandam/SM\ngrandaunt/MS\ngrandchild/M\ngrandchildren\ngranddaddy/MS\ngranddad/SM\ngranddaughter/MS\ngrandee/SM\ngrandeur/MS\ngrandfather/MYDSG\ngrandiloquence/SM\ngrandiloquent/Y\ngrandiose/YP\ngrandiosity/MS\ngrandkid/SM\ngrandma/MS\ngrandmaster/MS\ngrandmother/MYS\ngrandnephew/MS\ngrandness/MS\ngrandniece/SM\ngrandpa/MS\ngrandparent/MS\ngrandson/MS\ngrandstander/M\ngrandstand/SRDMG\ngrand/TPSYR\ngranduncle/MS\nGrange/MR\ngrange/MSR\nGranger/M\ngranite/MS\ngranitic\nGran/M\nGrannie/M\nGranny/M\ngranny/MS\ngranola/S\ngrantee/MS\ngranter/M\nGrantham/M\nGranthem/M\nGrantley/M\nGrant/M\ngrantor's\ngrant/SGZMRD\ngrantsmanship/S\ngranularity/SM\ngranular/Y\ngranulate/SDXVGN\ngranulation/M\ngranule/SM\ngranulocytic\nGranville/M\ngrapefruit/SM\ngrape/SDGM\ngrapeshot/M\ngrapevine/MS\ngrapheme/M\ngraph/GMD\ngraphical/Y\ngraphicness/M\ngraphic/PS\ngraphics/M\ngraphite/SM\ngraphologist/SM\ngraphology/MS\ngraphs\ngrapnel/SM\ngrapple/DRSG\ngrappler/M\ngrappling/M\ngrasper/M\ngraspingness/M\ngrasping/PY\ngrasp/SRDBG\ngrass/GZSDM\ngrasshopper/SM\ngrassland/MS\nGrass/M\ngrassroots\ngrassy/RT\nGrata/M\ngratefuller\ngratefullest\ngratefulness/USM\ngrateful/YPU\ngrater/M\ngrates/I\ngrate/SRDJGZ\nGratia/M\nGratiana/M\ngraticule/M\ngratification/M\ngratified/U\ngratifying/Y\ngratify/NDSXG\ngrating/YM\ngratis\ngratitude/IMS\ngratuitousness/MS\ngratuitous/PY\ngratuity/SM\ngravamen/SM\ngravedigger/SM\ngravel/SGMYD\ngraven\ngraveness/MS\ngraver/M\ngraveside/S\nGraves/M\ngrave/SRDPGMZTY\ngravestone/SM\ngraveyard/MS\ngravidness/M\ngravid/PY\ngravimeter/SM\ngravimetric\ngravitas\ngravitate/XVGNSD\ngravitational/Y\ngravitation/M\ngraviton/SM\ngravity/MS\ngravy/SM\ngraybeard/MS\nGrayce/M\ngrayish\nGray/M\ngrayness/S\ngray/PYRDGTS\nGrayson/M\ngraze/GZSRD\ngrazer/M\nGrazia/M\ngrazing/M\ngrease/GMZSRD\ngreasepaint/MS\ngreaseproof\ngreaser/M\ngreasily\ngreasiness/SM\ngreasy/PRT\ngreatcoat/DMS\ngreaten/DG\ngreathearted\ngreatness/MS\ngreat/SPTYRN\ngrebe/MS\nGrecian/S\nGreece/M\ngreed/C\ngreedily\ngreediness/SM\ngreeds\ngreed's\ngreedy/RTP\nGreek/SM\nGreeley/M\ngreenback/MS\ngreenbelt/S\nGreenberg/M\nGreenblatt/M\nGreenbriar/M\nGreene/M\ngreenery/MS\nGreenfeld/M\ngreenfield\nGreenfield/M\ngreenfly/M\ngreengage/SM\ngreengrocer/SM\ngreengrocery/M\ngreenhorn/SM\ngreenhouse/SM\ngreening/M\ngreenish/P\nGreenland/M\nGreen/M\ngreenmail/GDS\ngreenness/MS\nGreenpeace/M\ngreenroom/SM\nGreensboro/M\nGreensleeves/M\nGreensville/M\ngreensward/SM\ngreen/SYRDMPGT\nGreentree/M\nGreenville/M\nGreenwich/M\ngreenwood/MS\nGreer/M\ngreeter/M\ngreeting/M\ngreets/A\ngreet/SRDJGZ\ngregariousness/MS\ngregarious/PY\nGregg/M\nGreggory/M\nGreg/M\nGregoire/M\nGregoor/M\nGregorian\nGregorio/M\nGregorius/M\nGregor/M\nGregory/M\ngremlin/SM\nGrenada/M\ngrenade/MS\nGrenadian/S\ngrenadier/SM\nGrenadines\ngrenadine/SM\nGrendel/M\nGrenier/M\nGrenoble/M\nGrenville/M\nGresham/M\nGretal/M\nGreta/M\nGretchen/M\nGretel/M\nGrete/M\nGrethel/M\nGretna/M\nGretta/M\nGretzky/M\ngrew/A\ngreybeard/M\ngreyhound/MS\nGrey/M\ngreyness/M\ngridded\ngriddlecake/SM\ngriddle/DSGM\ngridiron/GSMD\ngridlock/DSG\ngrids/A\ngrid/SGM\ngrief/MS\nGrieg/M\nGrier/M\ngrievance/SM\ngriever/M\ngrieve/SRDGZ\ngrieving/Y\ngrievousness/SM\ngrievous/PY\nGriffie/M\nGriffin/M\ngriffin/SM\nGriffith/M\nGriff/M\ngriffon's\nGriffy/M\ngriller/M\ngrille/SM\ngrill/RDGS\ngrillwork/M\ngrimace/DRSGM\ngrimacer/M\nGrimaldi/M\ngrime/MS\nGrimes\ngriminess/MS\ngrimmer\ngrimmest\nGrimm/M\ngrimness/MS\ngrim/PGYD\ngrimy/TPR\nGrinch/M\ngrind/ASG\ngrinder/MS\ngrinding/SY\ngrindstone/SM\ngringo/SM\ngrinned\ngrinner/M\ngrinning/Y\ngrin/S\ngriper/M\ngripe/S\ngrippe/GMZSRD\ngripper/M\ngripping/Y\ngrip/SGZMRD\nGriselda/M\ngrisliness/SM\ngrisly/RPT\nGris/M\nGrissel/M\ngristle/SM\ngristliness/M\ngristly/TRP\ngristmill/MS\ngrist/MYS\nGriswold/M\ngrit/MS\ngritted\ngritter/MS\ngrittiness/SM\ngritting\ngritty/PRT\nGriz/M\ngrizzle/DSG\ngrizzling/M\ngrizzly/TRS\nGr/M\ngroaner/M\ngroan/GZSRDM\ngroat/SM\ngrocer/MS\ngrocery/MS\ngroggily\ngrogginess/SM\ngroggy/RPT\ngrog/MS\ngroin/MGSD\ngrokked\ngrokking\ngrok/S\ngrommet/GMDS\nGromyko/M\ngroofs\ngroomer/M\ngroom/GZSMRD\ngroomsman/M\ngroomsmen\nGroot/M\ngroover/M\ngroove/SRDGM\ngroovy/TR\ngroper/M\ngrope/SRDJGZ\nGropius/M\ngrosbeak/SM\ngrosgrain/MS\nGross\nGrosset/M\ngross/GTYSRDP\nGrossman/M\ngrossness/MS\nGrosvenor/M\nGrosz/M\ngrotesqueness/MS\ngrotesque/PSY\nGrotius/M\nGroton/M\ngrottoes\ngrotto/M\ngrouch/GDS\ngrouchily\ngrouchiness/MS\ngrouchy/RPT\ngroundbreaking/S\ngrounded/U\ngrounder/M\ngroundhog/SM\nground/JGZMDRS\ngroundlessness/M\ngroundless/YP\ngroundnut/MS\ngroundsheet/M\ngroundskeepers\ngroundsman/M\ngroundswell/S\ngroundwater/S\ngroundwork/SM\ngrouped/A\ngrouper/M\ngroupie/MS\ngrouping/M\ngroups/A\ngroup/ZJSMRDG\ngrouse/GMZSRD\ngrouser/M\ngrouter/M\ngrout/GSMRD\ngroveler/M\ngrovelike\ngroveling/Y\ngrovel/SDRGZ\nGrover/M\nGrove/RM\ngrove/SRMZ\ngrower/M\ngrow/GZYRHS\ngrowing/I\ngrowingly\ngrowler/M\ngrowling/Y\ngrowl/RDGZS\ngrowly/RP\ngrown/IA\ngrownup/MS\ngrows/A\ngrowth/IMA\ngrowths/IA\ngrubbed\ngrubber/SM\ngrubbily\ngrubbiness/SM\ngrubbing\ngrubby/RTP\ngrub/MS\ngrubstake/MSDG\ngrudge/GMSRDJ\ngrudger/M\ngrudging/Y\ngrueling/Y\ngruel/MDGJS\ngruesomeness/SM\ngruesome/RYTP\ngruffness/MS\ngruff/PSGTYRD\ngrumble/GZJDSR\ngrumbler/M\ngrumbling/Y\nGrumman/M\ngrumpily\ngrumpiness/MS\ngrump/MDGS\ngrumpy/TPR\nGrundy/M\nGr<47>newald/M\ngrunge/S\ngrungy/RT\ngrunion/SM\ngrunter/M\ngrunt/SGRD\nGrusky/M\nGrus/M\nGruy<75>re\nGruyeres\ngryphon's\ng's\nG's\ngs/A\nGSA\ngt\nGU\nguacamole/MS\nGuadalajara/M\nGuadalcanal/M\nGuadalquivir/M\nGuadalupe/M\nGuadeloupe/M\nGuallatiri/M\nGualterio/M\nGuamanian/SM\nGuam/M\nGuangzhou\nguanine/MS\nguano/MS\nGuantanamo/M\nGuarani/M\nguarani/SM\nguaranteeing\nguarantee/RSDZM\nguarantor/SM\nguaranty/MSDG\nguardedness/UM\nguarded/UYP\nguarder/M\nguardhouse/SM\nGuardia/M\nguardianship/MS\nguardian/SM\nguardrail/SM\nguard/RDSGZ\nguardroom/SM\nguardsman/M\nguardsmen\nGuarnieri/M\nGuatemala/M\nGuatemalan/S\nguava/SM\nGuayaquil/M\ngubernatorial\nGucci/M\ngudgeon/M\nGuelph/M\nGuendolen/M\nGuenevere/M\nGuenna/M\nGuenther/M\nguernsey/S\nGuernsey/SM\nGuerra/M\nGuerrero/M\nguerrilla/MS\nguessable/U\nguess/BGZRSD\nguessed/U\nguesser/M\nguesstimate/DSMG\nguesswork/MS\nguest/SGMD\nGuevara/M\nguffaw/GSDM\nguff/SM\nGuggenheim/M\nGuglielma/M\nGuglielmo/M\nGuhleman/M\nGUI\nGuiana/M\nguidance/MS\nguidebook/SM\nguided/U\nguide/GZSRD\nguideline/SM\nguidepost/MS\nguider/M\nGuido/M\nGuilbert/M\nguilder/M\nguildhall/SM\nguild/SZMR\nguileful\nguilelessness/MS\nguileless/YP\nguile/SDGM\nGuillaume/M\nGuillema/M\nGuillemette/M\nguillemot/MS\nGuillermo/M\nguillotine/SDGM\nguiltily\nguiltiness/MS\nguiltlessness/M\nguiltless/YP\nguilt/SM\nguilty/PTR\nGui/M\nGuinea/M\nGuinean/S\nguinea/SM\nGuinevere/M\nGuinna/M\nGuinness/M\nguise's\nguise/SDEG\nguitarist/SM\nguitar/SM\nGuiyang\nGuizot/M\nGujarati/M\nGujarat/M\nGujranwala/M\ngulag/S\ngulch/MS\ngulden/MS\ngulf/DMGS\nGullah/M\ngullet/MS\ngulley's\ngullibility/MS\ngullible\nGulliver/M\ngull/MDSG\ngully/SDMG\ngulp/RDGZS\ngumboil/MS\ngumbo/MS\ngumboots\ngumdrop/SM\ngummed\ngumminess/M\ngumming/C\ngum/MS\ngummy/RTP\ngumption/SM\ngumshoeing\ngumshoe/SDM\ngumtree/MS\nGunar/M\ngunboat/MS\nGunderson/M\ngunfighter/M\ngunfight/SRMGZ\ngunfire/SM\ngunflint/M\ngunfought\nGunilla/M\ngunk/SM\ngunky/RT\nGun/M\ngunman/M\ngunmen\ngunmetal/MS\ngun/MS\nGunnar/M\ngunned\ngunnel's\nGunner/M\ngunner/SM\ngunnery/MS\ngunning/M\ngunnysack/SM\ngunny/SM\ngunpoint/MS\ngunpowder/SM\ngunrunner/MS\ngunrunning/MS\ngunship/S\ngunshot/SM\ngunslinger/M\ngunsling/GZR\ngunsmith/M\ngunsmiths\nGuntar/M\nGunter/M\nGunther/M\ngunwale/MS\nGuofeng/M\nguppy/SM\nGupta/M\ngurgle/SDG\nGurkha/M\ngurney/S\nguru/MS\nGusella/M\ngusher/M\ngush/SRDGZ\ngushy/TR\nGus/M\nGuss\ngusset/MDSG\nGussie/M\nGussi/M\ngussy/GSD\nGussy/M\nGustaf/M\nGustafson/M\nGusta/M\ngustatory\nGustave/M\nGustav/M\nGustavo/M\nGustavus/M\ngusted/E\nGustie/M\ngustily\nGusti/M\ngustiness/M\ngusting/E\ngust/MDGS\ngustoes\ngusto/M\ngusts/E\nGusty/M\ngusty/RPT\nGutenberg/M\nGuthrey/M\nGuthrie/M\nGuthry/M\nGutierrez/M\ngutlessness/S\ngutless/P\ngutser/M\ngutsiness/M\ngut/SM\nguts/R\ngutsy/PTR\ngutted\ngutter/GSDM\nguttering/M\nguttersnipe/M\ngutting\ngutturalness/M\nguttural/SPY\ngutty/RSMT\nGuyana/M\nGuyanese\nGuy/M\nguy/MDRZGS\nGuzman/M\nguzzle/GZRSD\nguzzler/M\ng/VBX\nGwalior/M\nGwendolen/M\nGwendoline/M\nGwendolin/M\nGwendolyn/M\nGweneth/M\nGwenette/M\nGwen/M\nGwenneth/M\nGwennie/M\nGwenni/M\nGwenny/M\nGwenora/M\nGwenore/M\nGwyneth/M\nGwyn/M\nGwynne/M\ngymkhana/SM\ngym/MS\ngymnasia's\ngymnasium/SM\ngymnastically\ngymnastic/S\ngymnastics/M\ngymnast/SM\ngymnosperm/SM\ngynecologic\ngynecological/MS\ngynecologist/SM\ngynecology/MS\ngypped\ngypper/S\ngypping\ngyp/S\ngypsite\ngypster/S\ngypsum/MS\ngypsy/SDMG\nGypsy/SM\ngyrate/XNGSD\ngyration/M\ngyrator/MS\ngyrfalcon/SM\ngyrocompass/M\ngyro/MS\ngyroscope/SM\ngyroscopic\ngyve/GDS\nH\nHaag/M\nHaas/M\nHabakkuk/M\nhabeas\nhaberdasher/SM\nhaberdashery/SM\nHaber/M\nHaberman/M\nHabib/M\nhabiliment/SM\nhabitability/MS\nhabitableness/M\nhabitable/P\nhabitant/ISM\nhabitation/MI\nhabitations\nhabitat/MS\nhabit/IBDGS\nhabit's\nhabitualness/SM\nhabitual/SYP\nhabituate/SDNGX\nhabituation/M\nhabitu<74>/MS\nhacienda/MS\nhacker/M\nHackett/M\nhack/GZSDRBJ\nhackler/M\nhackle/RSDMG\nhackney/SMDG\nhacksaw/SDMG\nhackwork/S\nHadamard/M\nHadar/M\nHaddad/M\nhaddock/MS\nhades\nHades\nhad/GD\nhadji's\nhadj's\nHadlee/M\nHadleigh/M\nHadley/M\nHad/M\nhadn't\nHadria/M\nHadrian/M\nhadron/MS\nhadst\nhaemoglobin's\nhaemophilia's\nhaemorrhage's\nHafiz/M\nhafnium/MS\nhaft/GSMD\nHagan/M\nHagar/M\nHagen/M\nHager/M\nHaggai/M\nhaggardness/MS\nhaggard/SYP\nhagged\nhagging\nhaggish\nhaggis/SM\nhaggler/M\nhaggle/RSDZG\nHagiographa/M\nhagiographer/SM\nhagiography/MS\nhag/SMN\nHagstrom/M\nHague/M\nha/H\nhahnium/S\nHahn/M\nHaifa/M\nhaiku/M\nHailee/M\nhailer/M\nHailey/M\nhail/SGMDR\nhailstone/SM\nhailstorm/SM\nHaily/M\nHaiphong/M\nhairball/SM\nhairbreadth/M\nhairbreadths\nhairbrush/SM\nhaircare\nhaircloth/M\nhaircloths\nhaircut/MS\nhaircutting\nhairdo/SM\nhairdresser/SM\nhairdressing/SM\nhairdryer/S\nhairiness/MS\nhairlessness/M\nhairless/P\nhairlike\nhairline/SM\nhairnet/MS\nhairpiece/MS\nhairpin/MS\nhairsbreadth\nhairsbreadths\nhair/SDM\nhairsplitter/SM\nhairsplitting/MS\nhairspray\nhairspring/SM\nhairstyle/SMG\nhairstylist/S\nhairy/PTR\nHaitian/S\nHaiti/M\nhajjes\nhajji/MS\nhajj/M\nHakeem/M\nhake/MS\nHakim/M\nHakka/M\nHakluyt/M\nhalalled\nhalalling\nhalal/S\nhalberd/SM\nhalcyon/S\nHaldane/M\nHaleakala/M\nHaleigh/M\nhale/ISRDG\nHale/M\nhaler/IM\nhalest\nHalette/M\nHaley/M\nhalfback/SM\nhalfbreed\nhalfheartedness/MS\nhalfhearted/PY\nhalfpence/S\nhalfpenny/MS\nhalfpennyworth\nhalf/PM\nhalftime/S\nhalftone/MS\nhalfway\nhalfword/MS\nhalibut/SM\nhalide/SM\nHalie/M\nHalifax/M\nHali/M\nHalimeda/M\nhalite/MS\nhalitoses\nhalitosis/M\nhallelujah\nhallelujahs\nHalley/M\nhalliard's\nHallie/M\nHalli/M\nHallinan/M\nHall/M\nHallmark/M\nhallmark/SGMD\nhallo/GDS\nhalloo's\nHalloween/MS\nhallowing\nhallows\nhallow/UD\nhall/SMR\nHallsy/M\nhallucinate/VNGSDX\nhallucination/M\nhallucinatory\nhallucinogenic/S\nhallucinogen/SM\nhallway/SM\nHally/M\nhalocarbon\nhalogenated\nhalogen/SM\nhalon\nhalo/SDMG\nHalpern/M\nHalsey/M\nHal/SMY\nHalsy/M\nhalter/GDM\nhalt/GZJSMDR\nhalting/Y\nhalve/GZDS\nhalves/M\nhalyard/MS\nHa/M\nHamal/M\nHaman/M\nhamburger/M\nHamburg/MS\nhamburg/SZRM\nHamel/M\nHamey/M\nHamhung/M\nHamid/M\nHamilcar/M\nHamil/M\nHamiltonian/MS\nHamilton/M\nHamish/M\nHamitic/M\nHamlen/M\nHamlet/M\nhamlet/MS\nHamlin/M\nHam/M\nHammad/M\nHammarskjold/M\nhammed\nhammerer/M\nhammerhead/SM\nhammering/M\nhammerless\nhammerlock/MS\nHammerstein/M\nhammertoe/SM\nhammer/ZGSRDM\nHammett/M\nhamming\nhammock/MS\nHammond/M\nHammurabi/M\nhammy/RT\nHamnet/M\nhampered/U\nhamper/GSD\nHampshire/M\nHampton/M\nham/SM\nhamster/MS\nhamstring/MGS\nhamstrung\nHamsun/M\nHana/M\nHanan/M\nHancock/M\nhandbagged\nhandbagging\nhandbag/MS\nhandball/SM\nhandbarrow/MS\nhandbasin\nhandbill/MS\nhandbook/SM\nhandbrake/M\nhandcar/SM\nhandcart/MS\nhandclasp/MS\nhandcraft/GMDS\nhandcuff/GSD\nhandcuffs/M\nhandedness/M\nhanded/PY\nHandel/M\nhander/S\nhandful/SM\nhandgun/SM\nhandhold/M\nhandicapped\nhandicapper/SM\nhandicapping\nhandicap/SM\nhandicraftsman/M\nhandicraftsmen\nhandicraft/SMR\nhandily/U\nhandiness/SM\nhandiwork/MS\nhandkerchief/MS\nhandleable\nhandlebar/SM\nhandle/MZGRSD\nhandler/M\nhandless\nhandling/M\nhandmade\nhandmaiden/M\nhandmaid/NMSX\nhandout/SM\nhandover\nhandpick/GDS\nhandrail/SM\nhand's\nhandsaw/SM\nhandset/SM\nhandshake/GMSR\nhandshaker/M\nhandshaking/M\nhandsomely/U\nhandsomeness/MS\nhandsome/RPTY\nhandspike/SM\nhandspring/SM\nhandstand/MS\nhand/UDSG\nhandwork/SM\nhandwoven\nhandwrite/GSJ\nhandwriting/M\nhandwritten\nHandy/M\nhandyman/M\nhandymen\nhandy/URT\nHaney/M\nhangar/SGDM\nhangdog/S\nhanged/A\nhanger/M\nhang/GDRZBSJ\nhanging/M\nhangman/M\nhangmen\nhangnail/MS\nhangout/MS\nhangover/SM\nhangs/A\nHangul/M\nhangup/S\nHangzhou\nHankel/M\nhankerer/M\nhanker/GRDJ\nhankering/M\nhank/GZDRMS\nhankie/SM\nHank/M\nhanky's\nHannah/M\nHanna/M\nHannibal/M\nHannie/M\nHanni/MS\nHanny/M\nHanoi/M\nHanoverian\nHanover/M\nHansel/M\nHansen/M\nHansiain/M\nHan/SM\nHans/N\nhansom/MS\nHanson/M\nHanuka/S\nHanukkah/M\nHanukkahs\nHapgood/M\nhaphazardness/SM\nhaphazard/SPY\nhaplessness/MS\nhapless/YP\nhaploid/S\nhapped\nhappening/M\nhappen/JDGS\nhappenstance/SM\nhappily/U\nhappiness/UMS\nhapping\nHappy/M\nhappy/UTPR\nHapsburg/M\nhap/SMY\nHarald/M\nharangue/GDRS\nharanguer/M\nHarare\nharasser/M\nharass/LSRDZG\nharassment/SM\nHarbert/M\nharbinger/DMSG\nHarbin/M\nharborer/M\nharbor/ZGRDMS\nHarcourt/M\nhardback/SM\nhardball/SM\nhardboard/SM\nhardboiled\nhardbound\nhardcore/MS\nhardcover/SM\nhardened/U\nhardener/M\nhardening/M\nharden/ZGRD\nhardhat/S\nhardheadedness/SM\nhardheaded/YP\nhardheartedness/SM\nhardhearted/YP\nhardihood/MS\nhardily\nhardiness/SM\nHarding/M\nHardin/M\nhardliner/S\nhardness/MS\nhardscrabble\nhardshell\nhardship/MS\nhardstand/S\nhardtack/MS\nhardtop/MS\nhardware/SM\nhardwire/DSG\nhardwood/MS\nhardworking\nHardy/M\nhard/YNRPJGXTS\nhardy/PTRS\nharebell/MS\nharebrained\nharelip/MS\nharelipped\nhare/MGDS\nharem/SM\nHargreaves/M\nhark/GDS\nHarland/M\nHarlan/M\nHarlem/M\nHarlene/M\nHarlen/M\nHarlequin\nharlequin/MS\nHarley/M\nHarlie/M\nHarli/M\nHarlin/M\nharlotry/MS\nharlot/SM\nHarlow/M\nHarman/M\nharmed/U\nharmer/M\nharmfulness/MS\nharmful/PY\nharmlessness/SM\nharmless/YP\nharm/MDRGS\nHarmonia/M\nharmonically\nharmonica/MS\nharmonic/S\nharmonics/M\nHarmonie/M\nharmonious/IPY\nharmoniousness/MS\nharmoniousness's/I\nharmonium/MS\nharmonization/A\nharmonizations\nharmonization's\nharmonized/U\nharmonizer/M\nharmonizes/UA\nharmonize/ZGSRD\nHarmon/M\nharmony/EMS\nHarmony/M\nharness/DRSMG\nharnessed/U\nharnesser/M\nharnesses/U\nHarold/M\nHaroun/M\nharper/M\nHarper/M\nharping/M\nharpist/SM\nharp/MDRJGZS\nHarp/MR\nharpooner/M\nharpoon/SZGDRM\nharpsichordist/MS\nharpsichord/SM\nharpy/SM\nHarpy/SM\nHarrell/M\nharridan/SM\nHarrie/M\nharrier/M\nHarriet/M\nHarrietta/M\nHarriette/M\nHarriett/M\nHarrington/M\nHarriot/M\nHarriott/M\nHarrisburg/M\nHarri/SM\nHarrisonburg/M\nHarrison/M\nharrower/M\nharrow/RDMGS\nharrumph/SDG\nHarry/M\nharry/RSDGZ\nharshen/GD\nharshness/SM\nharsh/TRNYP\nHarte/M\nHartford/M\nHartley/M\nHartline/M\nHart/M\nHartman/M\nhart/MS\nHartwell/M\nHarvard/M\nharvested/U\nharvester/M\nharvestman/M\nharvest/MDRZGS\nHarvey/MS\nHarv/M\nHarwell/M\nHarwilll/M\nhas\nHasbro/M\nhash/AGSD\nHasheem/M\nhasher/M\nHashim/M\nhashing/M\nhashish/MS\nhash's\nHasidim\nHaskell/M\nHaskel/M\nHaskins/M\nHaslett/M\nhasn't\nhasp/GMDS\nhassle/MGRSD\nhassock/MS\nhaste/MS\nhastener/M\nhasten/GRD\nhast/GXJDN\nHastie/M\nhastily\nhastiness/MS\nHastings/M\nHasty/M\nhasty/RPT\nhatchback/SM\nhatcheck/S\nhatched/U\nhatcher/M\nhatchery/MS\nhatchet/MDSG\nhatching/M\nhatch/RSDJG\nHatchure/M\nhatchway/MS\nhatefulness/MS\nhateful/YP\nhater/M\nhate/S\nHatfield/M\nHathaway/M\nhatless\nhat/MDRSZG\nhatred/SM\nhatstands\nhatted\nHatteras/M\nhatter/SM\nHattie/M\nHatti/M\nhatting\nHatty/M\nhauberk/SM\nHaugen/M\nhaughtily\nhaughtiness/SM\nhaughty/TPR\nhaulage/MS\nhauler/M\nhaul/SDRGZ\nhaunch/GMSD\nhaunter/M\nhaunting/Y\nhaunt/JRDSZG\nHauptmann/M\nHausa/M\nHausdorff/M\nHauser/M\nhauteur/MS\nHavana/SM\nHavarti\nHavel/M\nhaven/DMGS\nHaven/M\nhaven't\nhaver/G\nhaversack/SM\nhave/ZGSR\nhavocked\nhavocking\nhavoc/SM\nHaw\nHawaiian/S\nHawaii/M\nhawker/M\nhawk/GZSDRM\nHawking\nhawking/M\nHawkins/M\nhawkishness/S\nhawkish/P\nHawley/M\nhaw/MDSG\nhawser/M\nhaws/RZ\nHawthorne/M\nhawthorn/MS\nhaycock/SM\nHayden/M\nHaydn/M\nHaydon/M\nHayes\nhayfield/MS\nhay/GSMDR\nHayley/M\nhayloft/MS\nhaymow/MS\nHaynes\nhayrick/MS\nhayride/MS\nhayseed/MS\nHay/SM\nhaystack/SM\nhaywain\nHayward/M\nhaywire/MS\nHaywood/M\nHayyim/M\nhazard/MDGS\nhazardousness/M\nhazardous/PY\nhaze/DSRJMZG\nHazel/M\nhazel/MS\nhazelnut/SM\nHaze/M\nhazer/M\nhazily\nhaziness/MS\nhazing/M\nHazlett/M\nHazlitt/M\nhazy/PTR\nHBO/M\nhdqrs\nHDTV\nheadache/MS\nheadband/SM\nheadboard/MS\nheadcount\nheaddress/MS\nheader/M\nheadfirst\nheadgear/SM\nheadhunter/M\nheadhunting/M\nheadhunt/ZGSRDMJ\nheadily\nheadiness/S\nheading/M\nheadlamp/S\nheadland/MS\nheadlessness/M\nheadless/P\nheadlight/MS\nheadline/DRSZMG\nheadliner/M\nheadlock/MS\nheadlong\nHead/M\nheadman/M\nheadmaster/MS\nheadmastership/M\nheadmen\nheadmistress/MS\nheadphone/SM\nheadpiece/SM\nheadpin/MS\nheadquarter/GDS\nheadrest/MS\nheadroom/SM\nheadscarf/M\nheadset/SM\nheadship/SM\nheadshrinker/MS\nhead/SJGZMDR\nheadsman/M\nheadsmen\nheadstall/SM\nheadstand/MS\nheadstock/M\nheadstone/MS\nheadstrong\nheadwaiter/SM\nheadwall/S\nheadwater/S\nheadway/MS\nheadwind/SM\nheadword/MS\nheady/PTR\nheal/DRHSGZ\nhealed/U\nhealer/M\nHeall/M\nhealthfully\nhealthfulness/SM\nhealthful/U\nhealthily/U\nhealthiness/MSU\nhealth/M\nhealths\nhealthy/URPT\nheap/SMDG\nheard/UA\nhearer/M\nhearing/AM\nhearken/SGD\nhearsay/SM\nhearse/M\nhears/SDAG\nHearst/M\nheartache/SM\nheartbeat/MS\nheartbreak/GMS\nheartbreaking/Y\nheartbroke\nheartbroken\nheartburning/M\nheartburn/SGM\nhearted/Y\nhearten/EGDS\nheartening/EY\nheartfelt\nhearth/M\nhearthrug\nhearths\nhearthstone/MS\nheartily\nheartiness/SM\nheartland/SM\nheartlessness/SM\nheartless/YP\nheartrending/Y\nheartsickness/MS\nheartsick/P\nheart/SMDNXG\nheartstrings\nheartthrob/MS\nheartwarming\nHeartwood/M\nheartwood/SM\nhearty/TRSP\nhear/ZTSRHJG\nheatedly\nheated/UA\nheater/M\nheathendom/SM\nheathenish/Y\nheathenism/MS\nheathen/M\nheather/M\nHeather/M\nheathery\nHeathkit/M\nheathland\nHeathman/M\nHeath/MR\nheath/MRNZX\nheaths\nheatproof\nheats/A\nheat/SMDRGZBJ\nheatstroke/MS\nheatwave\nheave/DSRGZ\nheavenliness/M\nheavenly/PTR\nheaven/SYM\nheavenward/S\nheaver/M\nheaves/M\nheavily\nheaviness/MS\nHeaviside/M\nheavyhearted\nheavyset\nheavy/TPRS\nheavyweight/SM\nHebe/M\nhebephrenic\nHebert/M\nHeb/M\nHebraic\nHebraism/MS\nHebrew/SM\nHebrides/M\nHecate/M\nhecatomb/M\nheckler/M\nheckle/RSDZG\nheck/S\nhectare/MS\nhectically\nhectic/S\nhectogram/MS\nhectometer/SM\nHector/M\nhector/SGD\nHecuba/M\nhe'd\nHeda/M\nHedda/M\nHeddie/M\nHeddi/M\nhedge/DSRGMZ\nhedgehog/MS\nhedgehopped\nhedgehopping\nhedgehop/S\nhedger/M\nhedgerow/SM\nhedging/Y\nHedi/M\nhedonism/SM\nhedonistic\nhedonist/MS\nHedvige/M\nHedvig/M\nHedwiga/M\nHedwig/M\nHedy/M\nheeded/U\nheedfulness/M\nheedful/PY\nheeding/U\nheedlessness/SM\nheedless/YP\nheed/SMGD\nheehaw/DGS\nheeler/M\nheeling/M\nheelless\nheel/SGZMDR\nHeep/M\nHefner/M\nheft/GSD\nheftily\nheftiness/SM\nhefty/TRP\nHegelian\nHegel/M\nhegemonic\nhegemony/MS\nHegira/M\nhegira/S\nHeida/M\nHeidegger/M\nHeidelberg/M\nHeidie/M\nHeidi/M\nheifer/MS\nHeifetz/M\nheighten/GD\nheight/SMNX\nHeimlich/M\nHeindrick/M\nHeineken/M\nHeine/M\nHeinlein/M\nheinousness/SM\nheinous/PY\nHeinrich/M\nHeinrick/M\nHeinrik/M\nHeinze/M\nHeinz/M\nheiress/MS\nheirloom/MS\nheir/SDMG\nHeisenberg/M\nHeiser/M\nheister/M\nheist/GSMRD\nHejira's\nHelaina/M\nHelaine/M\nheld\nHelena/M\nHelene/M\nHelenka/M\nHelen/M\nHelga/M\nHelge/M\nhelical/Y\nhelices/M\nhelicon/M\nHelicon/M\nhelicopter/GSMD\nheliocentric\nheliography/M\nHeliopolis/M\nHelios/M\nheliosphere\nheliotrope/SM\nheliport/MS\nhelium/MS\nhelix/M\nhe'll\nhellbender/M\nhellbent\nhellcat/SM\nhellebore/SM\nHellene/SM\nHellenic\nHellenism/MS\nHellenistic\nHellenist/MS\nHellenization/M\nHellenize\nheller/M\nHeller/M\nHellespont/M\nhellfire/M\nhell/GSMDR\nhellhole/SM\nHelli/M\nhellion/SM\nhellishness/SM\nhellish/PY\nHellman/M\nhello/GMS\nHell's\nhelluva\nhelmed\nhelmet/GSMD\nHelmholtz/M\nhelming\nhelms\nhelm's\nhelmsman/M\nhelmsmen\nhelm/U\nHelmut/M\nH<6E>loise/M\nhelot/S\nhelper/M\nhelpfulness/MS\nhelpful/UY\nhelp/GZSJDR\nhelping/M\nhelplessness/SM\nhelpless/YP\nhelpline/S\nhelpmate/SM\nhelpmeet's\nHelsa/M\nHelsinki/M\nhelve/GMDS\nHelvetian/S\nHelvetius/M\nHelyn/M\nHe/M\nhematite/MS\nhematologic\nhematological\nhematologist/SM\nhematology/MS\nheme/MS\nHemingway/M\nhemisphere/MSD\nhemispheric\nhemispherical\nhemline/SM\nhemlock/MS\nhemmed\nhemmer/SM\nhemming\nhem/MS\nhemoglobin/MS\nhemolytic\nhemophiliac/SM\nhemophilia/SM\nhemorrhage/GMDS\nhemorrhagic\nhemorrhoid/MS\nhemostat/SM\nhemp/MNS\nh/EMS\nhemstitch/DSMG\nhenceforth\nhenceforward\nhence/S\nHench/M\nhenchman/M\nhenchmen\nHenderson/M\nHendrick/SM\nHendrickson/M\nHendrika/M\nHendrik/M\nHendrix/M\nhenge/M\nHenka/M\nHenley/M\nhen/MS\nhenna/MDSG\nHennessey/M\nhenning\nhenpeck/GSD\nHenrie/M\nHenrieta/M\nHenrietta/M\nHenriette/M\nHenrik/M\nHenri/M\nHenryetta/M\nhenry/M\nHenry/M\nHensley/M\nHenson/M\nheparin/MS\nhepatic/S\nhepatitides\nhepatitis/M\nHepburn/M\nHephaestus/M\nHephzibah/M\nhepper\nheppest\nHepplewhite\nhep/S\nheptagonal\nheptagon/SM\nheptane/M\nheptathlon/S\nher\nHeracles/M\nHeraclitus/M\nheralded/U\nheraldic\nherald/MDSG\nheraldry/MS\nHera/M\nherbaceous\nherbage/MS\nherbalism\nherbalist/MS\nherbal/S\nHerbart/M\nHerbert/M\nherbicidal\nherbicide/MS\nHerbie/M\nherbivore/SM\nherbivorous/Y\nHerb/M\nherb/MS\nHerby/M\nHerc/M\nHerculaneum/M\nherculean\nHerculean\nHercule/MS\nHerculie/M\nherder/M\nHerder/M\nherd/MDRGZS\nherdsman/M\nherdsmen\nhereabout/S\nhereafter/S\nhereby\nhereditary\nheredity/MS\nHereford/SM\nherein\nhereinafter\nhere/IS\nhereof\nhereon\nhere's\nheres/M\nheresy/SM\nheretical\nheretic/SM\nhereto\nheretofore\nhereunder\nhereunto\nhereupon\nherewith\nHeriberto/M\nheritable\nheritage/MS\nheritor/IM\nHerkimer/M\nHerman/M\nHermann/M\nhermaphrodite/SM\nhermaphroditic\nHermaphroditus/M\nhermeneutic/S\nhermeneutics/M\nHermes\nhermetical/Y\nhermetic/S\nHermia/M\nHermie/M\nHermina/M\nHermine/M\nHerminia/M\nHermione/M\nhermitage/SM\nHermite/M\nhermitian\nhermit/MS\nHermon/M\nHermosa/M\nHermosillo/M\nHermy/M\nHernandez/M\nHernando/M\nhernial\nhernia/MS\nherniate/NGXDS\nHerod/M\nHerodotus/M\nheroes\nheroically\nheroics\nheroic/U\nheroine/SM\nheroin/MS\nheroism/SM\nHerold/M\nhero/M\nheron/SM\nherpes/M\nherpetologist/SM\nherpetology/MS\nHerrera/M\nHerrick/M\nherringbone/SDGM\nHerring/M\nherring/SM\nHerrington/M\nHerr/MG\nHerschel/M\nHersch/M\nherself\nHersey/M\nHershel/M\nHershey/M\nHersh/M\nHerta/M\nHertha/M\nhertz/M\nHertz/M\nHertzog/M\nHertzsprung/M\nHerve/M\nHervey/M\nHerzegovina/M\nHerzl/M\nhes\nHesiod/M\nhesitance/S\nhesitancy/SM\nhesitantly\nhesitant/U\nhesitater/M\nhesitate/XDRSNG\nhesitating/UY\nhesitation/M\nHesperus/M\nHesse/M\nHessian/MS\nHess/M\nHester/M\nHesther/M\nHestia/M\nHeston/M\nheterodox\nheterodoxy/MS\nheterodyne\nheterogamous\nheterogamy/M\nheterogeneity/SM\nheterogeneousness/M\nheterogeneous/PY\nheterosexuality/SM\nheterosexual/YMS\nheterostructure\nheterozygous\nHettie/M\nHetti/M\nHetty/M\nHeublein/M\nheuristically\nheuristic/SM\nHeusen/M\nHeuser/M\nhe/VMZ\nhew/DRZGS\nHewe/M\nhewer/M\nHewet/M\nHewett/M\nHewie/M\nHewitt/M\nHewlett/M\nHew/M\nhexachloride/M\nhexadecimal/YS\nhexafluoride/M\nhexagonal/Y\nhexagon/SM\nhexagram/SM\nhexameter/SM\nhex/DSRG\nhexer/M\nhey\nheyday/MS\nHeyerdahl/M\nHeywood/M\nHezekiah/M\nhf\nHF\nHf/M\nHg/M\nhgt\nhgwy\nHHS\nHI\nHialeah/M\nhiatus/SM\nHiawatha/M\nhibachi/MS\nhibernate/XGNSD\nhibernation/M\nhibernator/SM\nHibernia/M\nHibernian/S\nhibiscus/MS\nhiccup/MDGS\nhickey/SM\nHickey/SM\nHickman/M\nHickok/M\nhickory/MS\nhick/SM\nHicks/M\nhi/D\nhidden/U\nhideaway/SM\nhidebound\nhideousness/SM\nhideous/YP\nhideout/MS\nhider/M\nhide/S\nhiding/M\nhid/ZDRGJ\nhieing\nhierarchal\nhierarchic\nhierarchical/Y\nhierarchy/SM\nhieratic\nhieroglyph\nhieroglyphic/S\nhieroglyphics/M\nhieroglyphs\nHieronymus/M\nhie/S\nhifalutin\nHigashiosaka\nHiggins/M\nhighball/GSDM\nhighborn\nhighboy/MS\nhighbrow/SM\nhighchair/SM\nhighfalutin\nHighfield/M\nhighhandedness/SM\nhighhanded/PY\nhighish\nHighlander/SM\nHighlands\nhighland/ZSRM\nhighlight/GZRDMS\nHighness/M\nhighness/MS\nhighpoint\nhigh/PYRT\nhighroad/MS\nhighs\nhight\nhightail/DGS\nhighwayman/M\nhighwaymen\nhighway/MS\nhijacker/M\nhijack/JZRDGS\nhiker/M\nhike/ZGDSR\nHilario/M\nhilariousness/MS\nhilarious/YP\nhilarity/MS\nHilarius/M\nHilary/M\nHilbert/M\nHildagarde/M\nHildagard/M\nHilda/M\nHildebrand/M\nHildegaard/M\nHildegarde/M\nHilde/M\nHildy/M\nHillard/M\nHillary/M\nhillbilly/MS\nHillcrest/M\nHillel/M\nhiller/M\nHillery/M\nhill/GSMDR\nHilliard/M\nHilliary/M\nHillie/M\nHillier/M\nhilliness/SM\nHill/M\nhillman\nhillmen\nhillock/SM\nHillsboro/M\nHillsdale/M\nhillside/SM\nhilltop/MS\nhillwalking\nHillyer/M\nHilly/RM\nhilly/TRP\nhilt/MDGS\nHilton/M\nHi/M\nHimalaya/MS\nHimalayan/S\nHimmler/M\nhim/S\nhimself\nHinayana/M\nHinda/M\nHindemith/M\nHindenburg/M\nhindered/U\nhinderer/M\nhinder/GRD\nHindi/M\nhindmost\nhindquarter/SM\nhindrance/SM\nhind/RSZ\nhindsight/SM\nHinduism/SM\nHindu/MS\nHindustani/MS\nHindustan/M\nHines/M\nhinger\nhinge's\nhinge/UDSG\nHinkle/M\nHinsdale/M\nhinterland/MS\nhinter/M\nhint/GZMDRS\nHinton/M\nHinze/M\nhipbone/SM\nhipness/S\nHipparchus/M\nhipped\nhipper\nhippest\nhippie/MTRS\nhipping/M\nHippocrates/M\nHippocratic\nhippodrome/MS\nhippo/MS\nhippopotamus/SM\nhip/PSM\nhippy's\nhipster/MS\nhiragana\nHiram/M\nhire/AGSD\nhireling/SM\nhirer/SM\nHirey/M\nhiring/S\nHirohito/M\nHiroshi/M\nHiroshima/M\nHirsch/M\nhirsuteness/MS\nhirsute/P\nhis\nHispanic/SM\nHispaniola/M\nhiss/DSRMJG\nhisser/M\nhissing/M\nHiss/M\nhistamine/SM\nhistidine/SM\nhistochemic\nhistochemical\nhistochemistry/M\nhistogram/MS\nhistological\nhistologist/MS\nhistology/SM\nhistorian/MS\nhistoric\nhistoricalness/M\nhistorical/PY\nhistoricism/M\nhistoricist/M\nhistoricity/MS\nhistoriographer/SM\nhistoriography/MS\nhistory/MS\nhistrionically\nhistrionic/S\nhistrionics/M\nhist/SDG\nHitachi/M\nHitchcock/M\nhitcher/MS\nhitchhike/RSDGZ\nhitch/UGSD\nhither\nhitherto\nHitler/SM\nhitless\nhit/MS\nhittable\nhitter/SM\nhitting\nHittite/SM\nHIV\nhive/MGDS\nh'm\nHM\nHMO\nHmong\nHMS\nhoarder/M\nhoarding/M\nhoard/RDJZSGM\nhoarfrost/SM\nhoariness/MS\nhoar/M\nhoarseness/SM\nhoarse/RTYP\nhoary/TPR\nhoaxer/M\nhoax/GZMDSR\nHobard/M\nHobart/M\nhobbed\nHobbes/M\nhobbing\nhobbit\nhobbler/M\nhobble/ZSRDG\nHobbs/M\nhobbyhorse/SM\nhobbyist/SM\nhobby/SM\nHobday/M\nHobey/M\nhobgoblin/MS\nHobie/M\nhobnail/GDMS\nhobnobbed\nhobnobbing\nhobnob/S\nHoboken/M\nhobo/SDMG\nhob/SM\nhoc\nhocker/M\nhockey/SM\nhock/GDRMS\nHockney/M\nhockshop/SM\nhodge/MS\nHodge/MS\nhodgepodge/SM\nHodgkin/M\nho/DRYZ\nhod/SM\nHoebart/M\nhoecake/SM\nhoedown/MS\nhoeing\nhoer/M\nhoe/SM\nHoffa/M\nHoff/M\nHoffman/M\nHofstadter/M\nHogan/M\nhogan/SM\nHogarth/M\nhogback/MS\nhogged\nhogger\nhogging\nhoggish/Y\nhogshead/SM\nhog/SM\nhogtie/SD\nhogtying\nhogwash/SM\nHohenlohe/M\nHohenstaufen/M\nHohenzollern/M\nHohhot/M\nhoister/M\nhoist/GRDS\nhoke/DSG\nhokey/PRT\nhokier\nhokiest\nHokkaido/M\nhokum/MS\nHokusai/M\nHolbein/M\nHolbrook/M\nHolcomb/M\nholdall/MS\nHolden/M\nholder/M\nHolder/M\nholding/IS\nholding's\nhold/NRBSJGZ\nholdout/SM\nholdover/SM\nholdup/MS\nhole/MGDS\nholey\nholiday/GRDMS\nHoliday/M\nholidaymaker/S\nholier/U\nHoliness/MS\nholiness/MSU\nholistic\nholistically\nhollandaise\nHollandaise/M\nHollander/M\nHolland/RMSZ\nholler/GDS\nHollerith/M\nHolley/M\nHollie/M\nHolli/SM\nHollister/M\nHolloway/M\nhollowness/MS\nhollow/RDYTGSP\nhollowware/M\nHollyanne/M\nhollyhock/MS\nHolly/M\nholly/SM\nHollywood/M\nHolman/M\nHolmes\nholmium/MS\nHolm/M\nHolocaust\nholocaust/MS\nHolocene\nhologram/SM\nholograph/GMD\nholographic\nholographs\nholography/MS\nHolstein/MS\nholster/MDSG\nHolst/M\nHolt/M\nHolyoke/M\nholy/SRTP\nholystone/MS\nHolzman/M\nHo/M\nhomage/MGSRD\nhomager/M\nhombre/SM\nhomburg/SM\nhomebody/MS\nhomebound\nhomeboy/S\nhomebuilder/S\nhomebuilding\nhomebuilt\nhomecoming/MS\nhome/DSRMYZG\nhomegrown\nhomeland/SM\nhomelessness/SM\nhomeless/P\nhomelike\nhomeliness/SM\nhomely/RPT\nhomemade\nhomemake/JRZG\nhomemaker/M\nhomemaking/M\nhomeomorphic\nhomeomorphism/MS\nhomeomorph/M\nhomeopath\nhomeopathic\nhomeopaths\nhomeopathy/MS\nhomeostases\nhomeostasis/M\nhomeostatic\nhomeowner/S\nhomeownership\nhomepage\nHomere/M\nhomer/GDM\nHomeric\nhomerists\nHomer/M\nhomeroom/MS\nHomerus/M\nhomeschooling/S\nhomesickness/MS\nhomesick/P\nhomespun/S\nhomesteader/M\nhomestead/GZSRDM\nhomestretch/SM\nhometown/SM\nhomeward\nhomeworker/M\nhomework/ZSMR\nhomeyness/MS\nhomey/PS\nhomicidal/Y\nhomicide/SM\nhomier\nhomiest\nhomiletic/S\nhomily/SM\nhominess's\nhoming/M\nhominid/MS\nhominy/SM\nHom/MR\nhomogamy/M\nhomogenate/MS\nhomogeneity/ISM\nhomogeneous/PY\nhomogenization/MS\nhomogenize/DRSGZ\nhomogenizer/M\nhomograph/M\nhomographs\nhomological\nhomologous\nhomologue/M\nhomology/MS\nhomomorphic\nhomomorphism/SM\nhomonym/SM\nhomophobia/S\nhomophobic\nhomophone/MS\nhomopolymers\nhomosexuality/SM\nhomosexual/YMS\nhomo/SM\nhomotopy\nhomozygous/Y\nhoncho/DSG\nHonda/M\nHondo/M\nHonduran/S\nHonduras/M\nHonecker/M\nhone/SM\nhonestly/E\nhonest/RYT\nhonesty/ESM\nhoneybee/SM\nhoneycomb/SDMG\nhoneydew/SM\nhoney/GSMD\nhoneylocust\nHoney/M\nhoneymooner/M\nhoneymoon/RDMGZS\nhoneysuckle/MS\nHoneywell/M\nhong/M\nHoniara/M\nhonker/M\nhonk/GZSDRM\nhonky/SM\nHon/M\nhon/MDRSZTG\nHonolulu/M\nhonorableness/SM\nhonorable/PSM\nhonorables/U\nhonorablies/U\nhonorably/UE\nhonorarily\nhonorarium/SM\nhonorary/S\nhonored/U\nhonoree/S\nhonor/ERDBZGS\nhonorer/EM\nHonoria/M\nhonorific/S\nHonor/M\nhonor's\nhonors/A\nHonshu/M\nhooch/MS\nhoodedness/M\nhooded/P\nhoodlum/SM\nHood/M\nhood/MDSG\nhoodoo/DMGS\nhoodwinker/M\nhoodwink/SRDG\nhooey/SM\nhoof/DRMSG\nhoofer/M\nhoofmark/S\nhookah/M\nhookahs\nhookedness/M\nhooked/P\nHooke/MR\nhooker/M\nHooker/M\nhookey's\nhook/GZDRMS\nhooks/U\nhookup/SM\nhookworm/MS\nhooky/SRMT\nhooliganism/SM\nhooligan/SM\nhooper/M\nHooper/M\nhoopla/SM\nhoop/MDRSG\nhooray/SMDG\nhoosegow/MS\nHoosier/SM\nhootch's\nhootenanny/SM\nhooter/M\nhoot/MDRSGZ\nHoover/MS\nhooves/M\nhoped/U\nhopefulness/MS\nhopeful/SPY\nhopelessness/SM\nhopeless/YP\nHope/M\nhoper/M\nhope/SM\nHopewell/M\nHopi/SM\nHopkinsian/M\nHopkins/M\nhopped\nHopper/M\nhopper/MS\nhopping/M\nhoppled\nhopples\nhopscotch/MDSG\nhop/SMDRG\nHorace/M\nHoracio/M\nHoratia/M\nHoratio/M\nHoratius/M\nhorde/DSGM\nhorehound/MS\nhorizon/MS\nhorizontal/YS\nHormel/M\nhormonal/Y\nhormone/MS\nHormuz/M\nhornbeam/M\nhornblende/MS\nHornblower/M\nhornedness/M\nhorned/P\nHorne/M\nhornet/MS\nhorn/GDRMS\nhorniness/M\nhornless\nhornlike\nHorn/M\nhornpipe/MS\nhorny/TRP\nhorologic\nhorological\nhorologist/MS\nhorology/MS\nhoroscope/MS\nHorowitz/M\nhorrendous/Y\nhorribleness/SM\nhorrible/SP\nhorribly\nhorridness/M\nhorrid/PY\nhorrific\nhorrifically\nhorrify/DSG\nhorrifying/Y\nhorror/MS\nhors/DSGX\nhorseback/MS\nhorsedom\nhorseflesh/M\nhorsefly/MS\nhorsehair/SM\nhorsehide/SM\nhorselaugh/M\nhorselaughs\nhorseless\nhorselike\nhorsely\nhorseman/M\nhorsemanship/MS\nhorsemen\nhorseplayer/M\nhorseplay/SMR\nhorsepower/SM\nhorseradish/SM\nhorse's\nhorseshoeing\nhorseshoe/MRSD\nhorseshoer/M\nhorsetail/SM\nhorse/UGDS\nhorsewhipped\nhorsewhipping\nhorsewhip/SM\nhorsewoman/M\nhorsewomen\nhorsey\nhorsier\nhorsiest\nhorsing/M\nHorst/M\nhortatory\nHorten/M\nHortense/M\nHortensia/M\nhorticultural\nhorticulture/SM\nhorticulturist/SM\nHort/MN\nHorton/M\nHorus/M\nhosanna/SDG\nHosea/M\nhose/M\nhosepipe\nhos/GDS\nhosier/MS\nhosiery/SM\nhosp\nhospice/MS\nhospitable/I\nhospitably/I\nhospitality/MS\nhospitality's/I\nhospitalization/MS\nhospitalize/GSD\nhospital/MS\nhostage/MS\nhosteler/M\nhostelry/MS\nhostel/SZGMRD\nhostess/MDSG\nhostile/YS\nhostility/SM\nhostler/MS\nHost/MS\nhost/MYDGS\nhotbed/MS\nhotblooded\nhotbox/MS\nhotcake/S\nhotchpotch/M\nhotelier/MS\nhotelman/M\nhotel/MS\nhotfoot/DGS\nhothead/DMS\nhotheadedness/SM\nhotheaded/PY\nhothouse/MGDS\nhotness/MS\nhotplate/SM\nhotpot/M\nhot/PSY\nhotrod\nhotshot/S\nhotted\nHottentot/SM\nhotter\nhottest\nhotting\nHoudaille/M\nHoudini/M\nhough/M\nhounder/M\nhounding/M\nhound/MRDSG\nhourglass/MS\nhouri/MS\nhourly/S\nhour/YMS\nhouse/ASDG\nhouseboat/SM\nhousebound\nhouseboy/SM\nhousebreaker/M\nhousebreaking/M\nhousebreak/JSRZG\nhousebroke\nhousebroken\nhousebuilding\nhousecleaning/M\nhouseclean/JDSG\nhousecoat/MS\nhousefly/MS\nhouseful/SM\nhouseholder/M\nhousehold/ZRMS\nhousehusband/S\nhousekeeper/M\nhousekeeping/M\nhousekeep/JRGZ\nhouselights\nHouse/M\nhousemaid/MS\nhouseman/M\nhousemen\nhousemother/MS\nhousemoving\nhouseparent/SM\nhouseplant/S\nhouser\nhouse's\nhousetop/MS\nhousewares\nhousewarming/MS\nhousewifeliness/M\nhousewifely/P\nhousewife/YM\nhousewives\nhouseworker/M\nhousework/ZSMR\nhousing/MS\nHousman/M\nHouston/M\nHouyhnhnm/M\nHOV\nhovel/GSMD\nhovercraft/M\nhoverer/M\nhover/GRD\nhove/ZR\nHoward/M\nhowbeit\nhowdah/M\nhowdahs\nhowdy/GSD\nHowell/MS\nHowe/M\nhowever\nHowey/M\nHowie/M\nhowitzer/MS\nhowler/M\nhowl/GZSMDR\nHowrah/M\nhow/SM\nhowsoever\nhoyden/DMGS\nhoydenish\nHoyle/SM\nhoy/M\nHoyt/M\nhp\nHP\nHQ\nhr\nHR\nHRH\nHrothgar/M\nhrs\nh's\nH's\nHS\nHST\nht\nHTML\nHts/M\nHTTP\nHuang/M\nhuarache/SM\nhubba\nHubbard/M\nHubble/M\nhubbub/SM\nhubby/SM\nhubcap/SM\nHuber/M\nHube/RM\nHubert/M\nHuberto/M\nHubey/M\nHubie/M\nhub/MS\nhubris/SM\nhuckleberry/SM\nHuck/M\nhuckster/SGMD\nHUD\nHuddersfield/M\nhuddler/M\nhuddle/RSDMG\nHudson/M\nhue/MDS\nHuerta/M\nHuey/M\nhuffily\nhuffiness/SM\nHuff/M\nHuffman/M\nhuff/SGDM\nhuffy/TRP\nhugeness/MS\nhuge/YP\nhugged\nhugger\nhugging/S\nHuggins\nHughie/M\nHugh/MS\nHugibert/M\nHugo/M\nhug/RTS\nHuguenot/SM\nHugues/M\nhuh\nhuhs\nHui/M\nHuitzilopitchli/M\nhula/MDSG\nHulda/M\nhulk/GDMS\nhullabaloo/SM\nhuller/M\nhulling/M\nHull/M\nhull/MDRGZS\nhullo/GSDM\nhumane/IY\nhumaneness/SM\nhumaner\nhumanest\nhuman/IPY\nhumanism/SM\nhumanistic\nhumanist/SM\nhumanitarianism/SM\nhumanitarian/S\nhumanity/ISM\nhumanization/CSM\nhumanized/C\nhumanizer/M\nhumanize/RSDZG\nhumanizes/IAC\nhumanizing/C\nhumankind/M\nhumannesses\nhumanness/IM\nhumanoid/S\nhumans\nHumbert/M\nHumberto/M\nhumbleness/SM\nhumble/TZGPRSDJ\nhumbly\nHumboldt/M\nhumbugged\nhumbugging\nhumbug/MS\nhumdinger/MS\nhumdrum/S\nHume/M\nhumeral/S\nhumeri\nhumerus/M\nHumfrey/M\nHumfrid/M\nHumfried/M\nhumidification/MC\nhumidifier/CM\nhumidify/RSDCXGNZ\nhumidistat/M\nhumidity/MS\nhumidor/MS\nhumid/Y\nhumiliate/SDXNG\nhumiliating/Y\nhumiliation/M\nhumility/MS\nhummed\nHummel/M\nhummer/SM\nhumming\nhummingbird/SM\nhummock/MDSG\nhummocky\nhummus/S\nhumongous\nhumored/U\nhumorist/MS\nhumorlessness/MS\nhumorless/PY\nhumorousness/MS\nhumorous/YP\nhumor/RDMZGS\nhumpback/SMD\nhump/GSMD\nhumph/DG\nHumphrey/SM\nhumphs\nHumpty/M\nhum/S\nhumus/SM\nHumvee\nhunchback/DSM\nhunch/GMSD\nhundredfold/S\nhundred/SHRM\nhundredths\nhundredweight/SM\nHunfredo/M\nhung/A\nHungarian/MS\nHungary/M\nhunger/SDMG\nHung/M\nhungover\nhungrily\nhungriness/SM\nhungry/RTP\nhunker/DG\nhunky/RST\nhunk/ZRMS\nHun/MS\nhunter/M\nHunter/M\nhunt/GZJDRS\nhunting/M\nHuntington/M\nHuntlee/M\nHuntley/M\nHunt/MR\nhuntress/MS\nhuntsman/M\nhuntsmen\nHuntsville/M\nhurdle/JMZGRSD\nhurdler/M\nhurl/DRGZJS\nHurlee/M\nHurleigh/M\nhurler/M\nHurley/M\nhurling/M\nHuron/SM\nhurray/SDG\nhurricane/MS\nhurriedness/M\nhurried/UY\nhurry/RSDG\nHurst/M\nhurter/M\nhurtfulness/MS\nhurtful/PY\nhurting/Y\nhurtle/SDG\nhurts\nhurt/U\nHurwitz/M\nHus\nHusain's\nhusbander/M\nhusband/GSDRYM\nhusbandman/M\nhusbandmen\nhusbandry/SM\nHusein/M\nhush/DSG\nhusker/M\nhuskily\nhuskiness/MS\nhusking/M\nhusk/SGZDRM\nhusky/RSPT\nhussar/MS\nHussein/M\nHusserl/M\nhussy/SM\nhustings/M\nhustler/M\nhustle/RSDZG\nHuston/M\nHutchins/M\nHutchinson/M\nHutchison/M\nhutch/MSDG\nhut/MS\nhutted\nhutting\nHutton/M\nHutu/M\nHuxley/M\nHuygens/M\nhuzzah/GD\nhuzzahs\nhwy\nHyacintha/M\nHyacinthe/M\nHyacinthia/M\nHyacinthie/M\nhyacinth/M\nHyacinth/M\nhyacinths\nHyades\nhyaena's\nHyannis/M\nHyatt/M\nhybridism/SM\nhybridization/S\nhybridize/GSD\nhybrid/MS\nHyde/M\nHyderabad/M\nHydra/M\nhydra/MS\nhydrangea/SM\nhydrant/SM\nhydrate/CSDNGX\nhydrate's\nhydration/MC\nhydraulically\nhydraulicked\nhydraulicking\nhydraulic/S\nhydraulics/M\nhydrazine/M\nhydride/MS\nhydrocarbon/SM\nhydrocephali\nhydrocephalus/MS\nhydrochemistry\nhydrochloric\nhydrochloride/M\nhydrodynamical\nhydrodynamic/S\nhydrodynamics/M\nhydroelectric\nhydroelectrically\nhydroelectricity/SM\nhydrofluoric\nhydrofoil/MS\nhydrogenate/CDSGN\nhydrogenate's\nhydrogenation/MC\nhydrogenations\nhydrogen/MS\nhydrogenous\nhydrological/Y\nhydrologist/MS\nhydrology/SM\nhydrolysis/M\nhydrolyzed/U\nhydrolyze/GSD\nhydromagnetic\nhydromechanics/M\nhydrometer/SM\nhydrometry/MS\nhydrophilic\nhydrophobia/SM\nhydrophobic\nhydrophone/SM\nhydroplane/DSGM\nhydroponic/S\nhydroponics/M\nhydro/SM\nhydrosphere/MS\nhydrostatic/S\nhydrostatics/M\nhydrotherapy/SM\nhydrothermal/Y\nhydrous\nhydroxide/MS\nhydroxy\nhydroxylate/N\nhydroxyl/SM\nhydroxyzine/M\nhyena/MS\nhygiene/MS\nhygienically\nhygienic/S\nhygienics/M\nhygienist/MS\nhygrometer/SM\nhygroscopic\nhying\nHy/M\nHyman/M\nhymeneal/S\nHymen/M\nhymen/MS\nHymie/M\nhymnal/SM\nhymnbook/S\nhymn/GSDM\nHynda/M\nhype/MZGDSR\nhyperactive/S\nhyperactivity/SM\nhyperbola/MS\nhyperbole/MS\nhyperbolic\nhyperbolically\nhyperboloidal\nhyperboloid/SM\nhypercellularity\nhypercritical/Y\nhypercube/MS\nhyperemia/M\nhyperemic\nhyperfine\nhypergamous/Y\nhypergamy/M\nhyperglycemia/MS\nhyperinflation\nHyperion/M\nhypermarket/SM\nhypermedia/S\nhyperplane/SM\nhyperplasia/M\nhypersensitiveness/MS\nhypersensitive/P\nhypersensitivity/MS\nhypersonic\nhyperspace/M\nhypersphere/M\nhypertension/MS\nhypertensive/S\nhypertext/SM\nhyperthyroid\nhyperthyroidism/MS\nhypertrophy/MSDG\nhypervelocity\nhyperventilate/XSDGN\nhyperventilation/M\nhyphenated/U\nhyphenate/NGXSD\nhyphenation/M\nhyphen/DMGS\nhypnoses\nhypnosis/M\nhypnotherapy/SM\nhypnotically\nhypnotic/S\nhypnotism/MS\nhypnotist/SM\nhypnotize/SDG\nhypoactive\nhypoallergenic\nhypocellularity\nhypochondriac/SM\nhypochondria/MS\nhypocrisy/SM\nhypocrite/MS\nhypocritical/Y\nhypodermic/S\nhypo/DMSG\nhypoglycemia/SM\nhypoglycemic/S\nhypophyseal\nhypophysectomized\nhypotenuse/MS\nhypothalami\nhypothalamic\nhypothalamically\nhypothalamus/M\nhypothermia/SM\nhypotheses\nhypothesis/M\nhypothesizer/M\nhypothesize/ZGRSD\nhypothetic\nhypothetical/Y\nhypothyroid\nhypothyroidism/SM\nhypoxia/M\nhyssop/MS\nhysterectomy/MS\nhysteresis/M\nhysteria/SM\nhysterical/YU\nhysteric/SM\nHyundai/M\nHz\ni\nI\nIA\nIaccoca/M\nIago/M\nIain/M\nIa/M\niambi\niambic/S\niamb/MS\niambus/SM\nIan/M\nIanthe/M\nIbadan/M\nIbbie/M\nIbby/M\nIberia/M\nIberian/MS\nIbero/M\nibex/MS\nibid\nibidem\nibis/SM\nIBM/M\nIbo/M\nIbrahim/M\nIbsen/M\nibuprofen/S\nIcarus/M\nICBM/S\nICC\niceberg/SM\niceboat/MS\nicebound\nicebox/MS\nicebreaker/SM\nicecap/SM\nice/GDSC\nIcelander/M\nIcelandic\nIceland/MRZ\nIce/M\niceman/M\nicemen\nicepack\nicepick/S\nice's\nIchabod/M\nichneumon/M\nichthyologist/MS\nichthyology/MS\nicicle/SM\nicily\niciness/SM\nicing/MS\nicky/RT\niconic\nicon/MS\niconoclasm/MS\niconoclastic\niconoclast/MS\niconography/MS\nicosahedra\nicosahedral\nicosahedron/M\nictus/SM\nICU\nicy/RPT\nI'd\nID\nIdahoan/S\nIdahoes\nIdaho/MS\nIdalia/M\nIdalina/M\nIdaline/M\nIda/M\nidealism/MS\nidealistic\nidealistically\nidealist/MS\nidealization/MS\nidealized/U\nidealize/GDRSZ\nidealizer/M\nideal/MYS\nidealogical\nidea/SM\nideate/SN\nideation/M\nIdelle/M\nIdell/M\nidem\nidempotent/S\nidenticalness/M\nidentical/YP\nidentifiability\nidentifiable/U\nidentifiably\nidentification/M\nidentified/U\nidentifier/M\nidentify/XZNSRDG\nidentity/SM\nideogram/MS\nideographic\nideograph/M\nideographs\nideological/Y\nideologist/SM\nideologue/S\nideology/SM\nides\nIdette/M\nidiocy/MS\nidiolect/M\nidiomatically\nidiomatic/P\nidiom/MS\nidiopathic\nidiosyncrasy/SM\nidiosyncratic\nidiosyncratically\nidiotic\nidiotically\nidiot/MS\nidleness/MS\nidle/PZTGDSR\nidler/M\nid/MY\nidolater/MS\nidolatress/S\nidolatrous\nidolatry/SM\nidolization/SM\nidolized/U\nidolizer/M\nidolize/ZGDRS\nidol/MS\nids\nIDs\nidyllic\nidyllically\nidyll/MS\nIE\nIEEE\nIeyasu/M\nif\niffiness/S\niffy/TPR\nIfni/M\nifs\nIggie/M\nIggy/M\nigloo/MS\nIgnace/M\nIgnacio/M\nIgnacius/M\nIgnatius/M\nIgnazio/M\nIgnaz/M\nigneous\nignitable\nignite/ASDG\nigniter/M\nignition/MS\nignobleness/M\nignoble/P\nignobly\nignominious/Y\nignominy/MS\nignoramus/SM\nignorance/MS\nignorantness/M\nignorant/SPY\nignorer/M\nignore/SRDGB\nIgor/M\niguana/MS\nIguassu/M\nii\niii\nIjsselmeer/M\nIke/M\nIkey/M\nIkhnaton/M\nikon's\nIL\nIlaire/M\nIla/M\nIlario/M\nilea\nIleana/M\nIleane/M\nileitides\nileitis/M\nIlene/M\nileum/M\nilia\niliac\nIliad/MS\nIlise/M\nilium/M\nIlka/M\nilk/MS\nI'll\nIlla/M\nillegality/MS\nillegal/YS\nillegibility/MS\nillegible\nillegibly\nillegitimacy/SM\nillegitimate/SDGY\nilliberality/SM\nilliberal/Y\nillicitness/MS\nillicit/YP\nillimitableness/M\nillimitable/P\nIllinoisan/MS\nIllinois/M\nilliquid\nilliteracy/MS\nilliterateness/M\nilliterate/PSY\nIll/M\nillness/MS\nillogicality/SM\nillogicalness/M\nillogical/PY\nillogic/M\nill/PS\nillume/DG\nilluminate/XSDVNG\nIlluminati\nilluminatingly\nilluminating/U\nillumination/M\nillumine/BGSD\nillusionary\nillusion/ES\nillusionist/MS\nillusion's\nillusiveness/M\nillusive/PY\nillusoriness/M\nillusory/P\nillustrated/U\nillustrate/VGNSDX\nillustration/M\nillustrative/Y\nillustrator/SM\nillustriousness/SM\nillustrious/PY\nillus/V\nilly\nIlona/M\nIlsa/M\nIlse/M\nIlysa/M\nIlyse/M\nIlyssa/M\nIlyushin/M\nI'm\nimage/DSGM\nImagen/M\nimagery/MS\nimaginableness\nimaginable/U\nimaginably/U\nimaginariness/M\nimaginary/PS\nimagination/MS\nimaginativeness/M\nimaginative/UY\nimagined/U\nimaginer/M\nimagine/RSDJBG\nimagoes\nimago/M\nimam/MS\nimbalance/SDM\nimbecile/YMS\nimbecilic\nimbecility/MS\nimbiber/M\nimbibe/ZRSDG\nimbrication/SM\nImbrium/M\nimbroglio/MS\nimbruing\nimbue/GDS\nImelda/M\nIMF\nIMHO\nimitable/I\nimitate/SDVNGX\nimitation/M\nimitativeness/MS\nimitative/YP\nimitator/SM\nimmaculateness/SM\nimmaculate/YP\nimmanence/S\nimmanency/MS\nimmanent/Y\nImmanuel/M\nimmateriality/MS\nimmaterialness/MS\nimmaterial/PY\nimmatureness/M\nimmature/SPY\nimmaturity/MS\nimmeasurableness/M\nimmeasurable/P\nimmeasurably\nimmediacy/MS\nimmediateness/SM\nimmediate/YP\nimmemorial/Y\nimmenseness/M\nimmense/PRTY\nimmensity/MS\nimmerse/RSDXNG\nimmersible\nimmersion/M\nimmigrant/SM\nimmigrate/NGSDX\nimmigration/M\nimminence/SM\nimminentness/M\nimminent/YP\nimmobile\nimmobility/MS\nimmobilization/MS\nimmobilize/DSRG\nimmoderateness/M\nimmoderate/NYP\nimmoderation/M\nimmodest/Y\nimmodesty/SM\nimmolate/SDNGX\nimmolation/M\nimmorality/MS\nimmoral/Y\nimmortality/SM\nimmortalized/U\nimmortalize/GDS\nimmortal/SY\nimmovability/SM\nimmovableness/M\nimmovable/PS\nimmovably\nimmune/S\nimmunity/SM\nimmunization/MS\nimmunize/GSD\nimmunoassay/M\nimmunodeficiency/S\nimmunodeficient\nimmunologic\nimmunological/Y\nimmunologist/SM\nimmunology/MS\nimmure/GSD\nimmutability/MS\nimmutableness/M\nimmutable/P\nimmutably\nIMNSHO\nIMO\nImogene/M\nImogen/M\nImojean/M\nimpaction/SM\nimpactor/SM\nimpact/VGMRDS\nimpaired/U\nimpairer/M\nimpair/LGRDS\nimpairment/SM\nimpala/MS\nimpale/GLRSD\nimpalement/SM\nimpaler/M\nimpalpable\nimpalpably\nimpanel/DGS\nimpartation/M\nimpart/GDS\nimpartiality/SM\nimpartial/Y\nimpassableness/M\nimpassable/P\nimpassably\nimpasse/SXBMVN\nimpassibility/SM\nimpassible\nimpassibly\nimpassion/DG\nimpassioned/U\nimpassiveness/MS\nimpassive/YP\nimpassivity/MS\nimpasto/SM\nimpatience/SM\nimpatiens/M\nimpatient/Y\nimpeachable/U\nimpeach/DRSZGLB\nimpeacher/M\nimpeachment/MS\nimpeccability/SM\nimpeccable/S\nimpeccably\nimpecuniousness/MS\nimpecunious/PY\nimpedance/MS\nimpeded/U\nimpeder/M\nimpede/S\nimped/GRD\nimpedimenta\nimpediment/SM\nimpelled\nimpeller/MS\nimpelling\nimpel/S\nimpend/DGS\nimpenetrability/MS\nimpenetrableness/M\nimpenetrable/P\nimpenetrably\nimpenitence/MS\nimpenitent/YS\nimperativeness/M\nimperative/PSY\nimperceivable\nimperceptibility/MS\nimperceptible\nimperceptibly\nimperceptive\nimperf\nimperfectability\nimperfection/MS\nimperfectness/SM\nimperfect/YSVP\nimperialism/MS\nimperialistic\nimperialistically\nimperialist/SM\nimperial/YS\nimperil/GSLD\nimperilment/SM\nimperiousness/MS\nimperious/YP\nimperishableness/M\nimperishable/SP\nimperishably\nimpermanence/MS\nimpermanent/Y\nimpermeability/SM\nimpermeableness/M\nimpermeable/P\nimpermeably\nimpermissible\nimpersonality/M\nimpersonalized\nimpersonal/Y\nimpersonate/XGNDS\nimpersonation/M\nimpersonator/SM\nimpertinence/SM\nimpertinent/YS\nimperturbability/SM\nimperturbable\nimperturbably\nimperviousness/M\nimpervious/PY\nimpetigo/MS\nimpetuosity/MS\nimpetuousness/MS\nimpetuous/YP\nimpetus/MS\nimpiety/MS\nimpinge/LS\nimpingement/MS\nimping/GD\nimpiousness/SM\nimpious/PY\nimpishness/MS\nimpish/YP\nimplacability/SM\nimplacableness/M\nimplacable/P\nimplacably\nimplantation/SM\nimplant/BGSDR\nimplanter/M\nimplausibility/MS\nimplausible\nimplausibly\nimplementability\nimplementable/U\nimplementation/A\nimplementations\nimplementation's\nimplemented/AU\nimplementer/M\nimplementing/A\nimplementor/MS\nimplement/SMRDGZB\nimplicant/SM\nimplicate/VGSD\nimplication/M\nimplicative/PY\nimplicitness/SM\nimplicit/YP\nimplied/Y\nimplode/GSD\nimplore/GSD\nimploring/Y\nimplosion/SM\nimplosive/S\nimply/GNSDX\nimpoliteness/MS\nimpolite/YP\nimpoliticness/M\nimpolitic/PY\nimponderableness/M\nimponderable/PS\nimportance/SM\nimportant/Y\nimportation/MS\nimporter/M\nimporting/A\nimport/SZGBRD\nimportunateness/M\nimportunate/PYGDS\nimportuner/M\nimportune/SRDZYG\nimportunity/SM\nimposable\nimpose/ASDG\nimposer/SM\nimposingly\nimposing/U\nimposition/SM\nimpossibility/SM\nimpossibleness/M\nimpossible/PS\nimpossibly\nimposter's\nimpostor/SM\nimpost/SGMD\nimposture/SM\nimpotence/MS\nimpotency/S\nimpotent/SY\nimpound/GDS\nimpoundments\nimpoverisher/M\nimpoverish/LGDRS\nimpoverishment/SM\nimpracticableness/M\nimpracticable/P\nimpracticably\nimpracticality/SM\nimpracticalness/M\nimpractical/PY\nimprecate/NGXSD\nimprecation/M\nimpreciseness/MS\nimprecise/PYXN\nimprecision/M\nimpregnability/MS\nimpregnableness/M\nimpregnable/P\nimpregnably\nimpregnate/DSXNG\nimpregnation/M\nimpresario/SM\nimpress/DRSGVL\nimpressed/U\nimpresser/M\nimpressibility/MS\nimpressible\nimpressionability/SM\nimpressionableness/M\nimpressionable/P\nimpression/BMS\nimpressionism/SM\nimpressionistic\nimpressionist/MS\nimpressiveness/MS\nimpressive/YP\nimpressment/M\nimprimatur/SM\nimprinter/M\nimprinting/M\nimprint/SZDRGM\nimprison/GLDS\nimprisonment/MS\nimprobability/MS\nimprobableness/M\nimprobable/P\nimprobably\nimpromptu/S\nimproperness/M\nimproper/PY\nimpropitious\nimpropriety/SM\nimproved/U\nimprovement/MS\nimprover/M\nimprove/SRDGBL\nimprovidence/SM\nimprovident/Y\nimprovisational\nimprovisation/MS\nimprovisatory\nimproviser/M\nimprovise/RSDZG\nimprudence/SM\nimprudent/Y\nimp/SGMDRY\nimpudence/MS\nimpudent/Y\nimpugner/M\nimpugn/SRDZGB\nimpulse/XMVGNSD\nimpulsion/M\nimpulsiveness/MS\nimpulsive/YP\nimpunity/SM\nimpureness/M\nimpure/RPTY\nimpurity/MS\nimputation/SM\nimpute/SDBG\nImus/M\nIN\ninaction\ninactive\ninadequate/S\ninadvertence/MS\ninadvertent/Y\ninalienability/MS\ninalienably\ninalterableness/M\ninalterable/P\nIna/M\ninamorata/MS\ninane/SRPYT\ninanimateness/S\ninanimate/P\ninanity/MS\ninappeasable\ninappropriate/P\ninarticulate/P\nin/AS\ninasmuch\ninaugural/S\ninaugurate/XSDNG\ninauguration/M\ninauthenticity\ninbound/G\ninbred/S\ninbreed/JG\nincalculableness/M\nincalculably\nincandescence/SM\nincandescent/YS\nincant\nincantation/SM\nincantatory\nincapable/S\nincapacitate/GNSD\nincapacitation/M\nincarcerate/XGNDS\nincarceration/M\nincarnadine/GDS\nincarnate/AGSDNX\nincarnation/AM\nInca/SM\nincendiary/S\nincense/MGDS\nincentive/ESM\nincentively\nincept/DGVS\ninception/MS\ninceptive/Y\ninceptor/M\nincessant/Y\nincest/SM\nincestuousness/MS\nincestuous/PY\ninch/GMDS\ninchoate/DSG\nInchon/M\ninchworm/MS\nincidence/MS\nincidental/YS\nincident/SM\nincinerate/XNGSD\nincineration/M\nincinerator/SM\nincipience/SM\nincipiency/M\nincipient/Y\nincise/SDVGNX\nincision/M\nincisiveness/MS\nincisive/YP\nincisor/MS\nincitement/MS\ninciter/M\nincite/RZL\nincl\ninclination/ESM\nincline/EGSD\nincliner/M\ninclining/M\ninclude/GDS\ninclusion/MS\ninclusiveness/MS\ninclusive/PY\nInc/M\nincognito/S\nincoherency/M\nincome/M\nincommode/DG\nincommunicado\nincomparable\nincompetent/MS\nincomplete/P\ninconceivability/MS\ninconceivableness/M\ninconceivable/P\nincondensable\nincongruousness/S\ninconsiderableness/M\ninconsiderable/P\ninconsistence\ninconsolableness/M\ninconsolable/P\ninconsolably\nincontestability/SM\nincontestably\nincontrovertibly\ninconvenience/DG\ninconvertibility\ninconvertible\nincorporable\nincorporated/UE\nincorporate/GASDXN\nincorrect/P\nincorrigibility/MS\nincorrigibleness/M\nincorrigible/SP\nincorrigibly\nincorruptible/S\nincorruptibly\nincrease/JB\nincreaser/M\nincreasing/Y\nincredibleness/M\nincredible/P\nincremental/Y\nincrementation\nincrement/DMGS\nincriminate/XNGSD\nincrimination/M\nincriminatory\nincrustation/SM\ninc/T\nincubate/XNGVDS\nincubation/M\nincubator/MS\nincubus/MS\ninculcate/SDGNX\ninculcation/M\ninculpate/SDG\nincumbency/MS\nincumbent/S\nincunabula\nincunabulum\nincurable/S\nincurious\nincursion/SM\nind\nindebtedness/SM\nindebted/P\nindefatigableness/M\nindefatigable/P\nindefatigably\nindefeasible\nindefeasibly\nindefinableness/M\nindefinable/PS\nindefinite/S\nindelible\nindelibly\nindemnification/M\nindemnify/NXSDG\nindemnity/SM\nindentation/SM\nindented/U\nindenter/M\nindention/SM\nindent/R\nindenture/DG\nIndependence/M\nindescribableness/M\nindescribable/PS\nindescribably\nindestructibleness/M\nindestructible/P\nindestructibly\nindeterminably\nindeterminacy/MS\nindeterminism\nindexation/S\nindexer/M\nindex/MRDZGB\nIndia/M\nIndiana/M\nIndianan/S\nIndianapolis/M\nIndianian/S\nIndian/SM\nindicant/MS\nindicate/DSNGVX\nindication/M\nindicative/SY\nindicator/MS\nindices's\nindicter/M\nindictment/SM\nindict/SGLBDR\nindifference\nindigence/MS\nindigenousness/M\nindigenous/YP\nindigent/SY\nindigestible/S\nindignant/Y\nindignation/MS\nindigo/SM\nIndira/M\nindirect/PG\nindiscreet/P\nindiscriminateness/M\nindiscriminate/PY\nindispensability/MS\nindispensableness/M\nindispensable/SP\nindispensably\nindisputableness/M\nindisputable/P\nindissolubleness/M\nindissoluble/P\nindissolubly\nindistinguishableness/M\nindistinguishable/P\nindite/SDG\nindium/SM\nindividualism/MS\nindividualistic\nindividualistically\nindividualist/MS\nindividuality/MS\nindividualization/SM\nindividualize/DRSGZ\nindividualized/U\nindividualizer/M\nindividualizes/U\nindividualizing/Y\nindividual/YMS\nindividuate/DSXGN\nindividuation/M\nindivisibleness/M\nindivisible/SP\nindivisibly\nInd/M\nIndochina/M\nIndochinese\nindoctrinate/GNXSD\nindoctrination/M\nindoctrinator/SM\nindolence/SM\nindolent/Y\nindomitableness/M\nindomitable/P\nindomitably\nIndonesia/M\nIndonesian/S\nindoor\nIndore/M\nIndra/M\nindubitableness/M\nindubitable/P\nindubitably\ninducement/MS\ninducer/M\ninduce/ZGLSRD\ninducible\ninductance/MS\ninductee/SM\ninduct/GV\ninduction/SM\ninductiveness/M\ninductive/PY\ninductor/MS\nindulge/GDRS\nindulgence/SDGM\nindulgent/Y\nindulger/M\nIndus/M\nindustrialism/MS\nindustrialist/MS\nindustrialization/MS\nindustrialized/U\nindustrialize/SDG\nindustrial/SY\nindustriousness/SM\nindustrious/YP\nindustry/SM\nIndy/SM\ninebriate/NGSDX\ninebriation/M\ninedible\nineducable\nineffability/MS\nineffableness/M\nineffable/P\nineffably\ninelastic\nineligibly\nineluctable\nineluctably\nineptitude/SM\nineptness/MS\ninept/YP\ninequivalent\ninerrant\ninertial/Y\ninertia/SM\ninertness/MS\ninert/SPY\nInes\ninescapably\nInesita/M\nInessa/M\ninestimably\ninevitability/MS\ninevitableness/M\ninevitable/P\ninevitably\ninexact/P\ninexhaustibleness/M\ninexhaustible/P\ninexhaustibly\ninexorability/M\ninexorableness/M\ninexorable/P\ninexorably\ninexpedience/M\ninexplicableness/M\ninexplicable/P\ninexplicably\ninexplicit\ninexpressibility/M\ninexpressibleness/M\ninexpressible/PS\ninextricably\nInez/M\ninfamous\ninfamy/SM\ninfancy/M\ninfanticide/MS\ninfantile\ninfant/MS\ninfantryman/M\ninfantrymen\ninfantry/SM\ninfarction/SM\ninfarct/SM\ninfatuate/XNGSD\ninfatuation/M\ninfauna\ninfected/U\ninfecter\ninfect/ESGDA\ninfection/EASM\ninfectiousness/MS\ninfectious/PY\ninfective\ninfer/B\ninference/GMSR\ninferential/Y\ninferiority/MS\ninferior/SMY\ninfernal/Y\ninferno/MS\ninferred\ninferring\ninfertile\ninfestation/MS\ninfester/M\ninfest/GSDR\ninfidel/SM\ninfighting/M\ninfill/MG\ninfiltrate/V\ninfiltrator/MS\ninfinitesimal/SY\ninfinite/V\ninfinitival\ninfinitive/YMS\ninfinitude/MS\ninfinitum\ninfinity/SM\ninfirmary/SM\ninfirmity/SM\ninfix/M\ninflammableness/M\ninflammable/P\ninflammation/MS\ninflammatory\ninflatable/MS\ninflate/NGBDRSX\ninflater/M\ninflationary\ninflation/ESM\ninflect/GVDS\ninflectional/Y\ninflection/SM\ninflexibleness/M\ninflexible/P\ninflexion/SM\ninflict/DRSGV\ninflicter/M\ninfliction/SM\ninflow/M\ninfluenced/U\ninfluencer/M\ninfluence/SRDGM\ninfluent\ninfluential/SY\ninfluenza/MS\ninfomercial/S\nInformatica/M\ninformatics\ninformational\ninformation/ES\ninformativeness/S\ninformative/UY\ninformatory\ninformed/U\ninformer/M\ninfo/SM\ninfotainment/S\ninfra\ninfrared/SM\ninfrasonic\ninfrastructural\ninfrastructure/MS\ninfrequence/S\ninfringe/LR\ninfringement/SM\ninfringer/M\ninfuriate/GNYSD\ninfuriating/Y\ninfuriation/M\ninfuser/M\ninfuse/RZ\ninfusibleness/M\ninfusible/P\ninf/ZT\nIngaberg/M\nIngaborg/M\nInga/M\nIngamar/M\nIngar/M\nIngeberg/M\nIngeborg/M\nIngelbert/M\nIngemar/M\ningeniousness/MS\ningenious/YP\ning<6E>nue/S\ningenuity/SM\ningenuous/EY\ningenuousness/MS\nInger/M\nInge/RM\nIngersoll/M\ningest/DGVS\ningestible\ningestion/SM\nInglebert/M\ninglenook/MS\nInglewood/M\nInglis/M\nIngmar/M\ningoing\ningot/SMDG\ningrained/Y\nIngra/M\nIngram/M\ningrate/M\ningratiate/DSGNX\ningratiating/Y\ningratiation/M\ningredient/SM\nIngres/M\ningression/M\ningress/MS\nIngrid/M\nIngrim/M\ningrown/P\ninguinal\nIngunna/M\ninhabitable/U\ninhabitance\ninhabited/U\ninhabiter/M\ninhabit/R\ninhalant/S\ninhalation/SM\ninhalator/SM\ninhale/Z\ninhere/DG\ninherent/Y\ninheritableness/M\ninheritable/P\ninheritance/EMS\ninherit/BDSG\ninherited/E\ninheriting/E\ninheritor/S\ninheritress/MS\ninheritrix/MS\ninherits/E\ninhibit/DVGS\ninhibited/U\ninhibiter's\ninhibition/MS\ninhibitor/MS\ninhibitory\ninhomogeneous\ninhospitableness/M\ninhospitable/P\ninhospitality\nInigo/M\ninimical/Y\ninimitableness/M\ninimitable/P\ninimitably\ninion\niniquitousness/M\niniquitous/PY\niniquity/MS\ninitialer/M\ninitial/GSPRDY\ninitialization/A\ninitializations\ninitialization's\ninitialize/ASDG\ninitialized/U\ninitializer/S\ninitiates\ninitiate/UD\ninitiating\ninitiation/SM\ninitiative/SM\ninitiator/MS\ninitiatory\ninjectable/U\ninject/GVSDB\ninjection/MS\ninjector/SM\ninjunctive\ninjured/U\ninjurer/M\ninjure/SRDZG\ninjuriousness/M\ninjurious/YP\ninkblot/SM\ninker/M\ninkiness/MS\ninkling/SM\ninkstand/SM\ninkwell/SM\ninky/TP\nink/ZDRJ\ninland\ninlander/M\ninlay/RG\ninletting\ninly/G\ninmost\nInna/M\ninnards\ninnateness/SM\ninnate/YP\ninnermost/S\ninnersole/S\ninnerspring\ninnervate/GNSDX\ninnervation/M\ninner/Y\ninning/M\nInnis/M\ninnkeeper/MS\ninnocence/SM\nInnocent/M\ninnocent/SYRT\ninnocuousness/MS\ninnocuous/PY\ninnovate/SDVNGX\ninnovation/M\ninnovative/P\ninnovator/MS\ninnovatory\nInnsbruck/M\ninnuendo/MDGS\ninnumerability/M\ninnumerableness/M\ninnumerable/P\ninnumerably\ninnumerate\ninn/ZGDRSJ\ninoculate/ASDG\ninoculation/MS\ninoculative\ninoffensive/P\nInonu/M\ninopportuneness/M\ninopportune/P\ninordinateness/M\ninordinate/PY\ninorganic\ninpatient\nIn/PM\ninput/MRDG\ninquirer/M\ninquire/ZR\ninquiring/Y\ninquiry/MS\ninquisitional\ninquisition/MS\nInquisition/MS\ninquisitiveness/MS\ninquisitive/YP\ninquisitorial/Y\ninquisitor/MS\nINRI\ninrush/M\nins\nINS\ninsalubrious\ninsanitary\ninsatiability/MS\ninsatiableness/M\ninsatiable/P\ninsatiably\ninscribe/Z\ninscription/SM\ninscrutability/SM\ninscrutableness/SM\ninscrutable/P\ninscrutably\ninseam\ninsecticidal\ninsecticide/MS\ninsectivore/SM\ninsectivorous\ninsecureness/M\ninsecure/P\ninseminate/NGXSD\ninsemination/M\ninsensateness/M\ninsensate/P\ninsensible/P\ninsentient\ninseparable/S\ninsert/ADSG\ninserter/M\ninsertion/AMS\ninsetting\ninshore\ninsider/M\ninside/Z\ninsidiousness/MS\ninsidious/YP\ninsightful/Y\ninsigne's\ninsignia/SM\ninsignificant\ninsinuate/VNGXSD\ninsinuating/Y\ninsinuation/M\ninsinuator/SM\ninsipidity/MS\ninsipid/Y\ninsistence/SM\ninsistent/Y\ninsisting/Y\ninsist/SGD\ninsociable\ninsofar\ninsole/M\ninsolence/SM\ninsolent/YS\ninsolubleness/M\ninsoluble/P\ninsolubly\ninsomniac/S\ninsomnia/MS\ninsomuch\ninsouciance/SM\ninsouciant/Y\ninspect/AGSD\ninspection/SM\ninspective\ninspectorate/MS\ninspector/SM\ninspirational/Y\ninspiration/MS\ninspired/U\ninspire/R\ninspirer/M\ninspiring/U\ninspirit/DG\nInst\ninstallable\ninstall/ADRSG\ninstallation/SM\ninstaller/MS\ninstallment/MS\ninstance/GD\ninstantaneousness/M\ninstantaneous/PY\ninstantiated/U\ninstantiate/SDXNG\ninstantiation/M\ninstant/SRYMP\ninstate/AGSD\ninst/B\ninstead\ninstigate/XSDVGN\ninstigation/M\ninstigator/SM\ninstillation/SM\ninstinctive/Y\ninstinctual\ninstinct/VMS\ninstituter/M\ninstitutes/M\ninstitute/ZXVGNSRD\ninstitutionalism/M\ninstitutionalist/M\ninstitutionalization/SM\ninstitutionalize/GDS\ninstitutional/Y\ninstitution/AM\ninstitutor's\ninstr\ninstruct/DSVG\ninstructed/U\ninstructional\ninstruction/MS\ninstructiveness/M\ninstructive/PY\ninstructor/MS\ninstrumentalist/MS\ninstrumentality/SM\ninstrumental/SY\ninstrumentation/SM\ninstrument/GMDS\ninsubordinate\ninsubstantial\ninsufferable\ninsufferably\ninsularity/MS\ninsular/YS\ninsulate/DSXNG\ninsulated/U\ninsulation/M\ninsulator/MS\ninsulin/MS\ninsult/DRSG\ninsulter/M\ninsulting/Y\ninsuperable\ninsuperably\ninsupportableness/M\ninsupportable/P\ninsurance/MS\ninsurance's/A\ninsure/BZGS\ninsured/S\ninsurer/M\ninsurgence/SM\ninsurgency/MS\ninsurgent/MS\ninsurmountably\ninsurrectionist/SM\ninsurrection/SM\nintactness/M\nintact/P\nintaglio/GMDS\nintake/M\nintangible/M\ninteger/MS\nintegrability/M\nintegrable\nintegral/SYM\nintegrand/MS\nintegrate/AGNXEDS\nintegration/EMA\nintegrative/E\nintegrator/MS\nintegrity/SM\nintegument/SM\nintellective/Y\nintellect/MVS\nintellectualism/MS\nintellectuality/M\nintellectualize/GSD\nintellectualness/M\nintellectual/YPS\nintelligence/MSR\nintelligencer/M\nintelligentsia/MS\nintelligent/UY\nintelligibilities\nintelligibility/UM\nintelligibleness/MU\nintelligible/PU\nintelligibly/U\nIntel/M\nIntelsat/M\nintemperate/P\nintendant/MS\nintendedness/M\nintended/SYP\nintender/M\nintensification/M\nintensifier/M\nintensify/GXNZRSD\nintensional/Y\nintensiveness/MS\nintensive/PSY\nintentionality/M\nintentional/UY\nintention/SDM\nintentness/SM\nintent/YP\ninteraction/MS\ninteractive/PY\ninteractivity\ninteract/VGDS\ninteraxial\ninterbank\ninterbred\ninterbreed/GS\nintercalate/GNVDS\nintercalation/M\nintercase\nintercaste\ninterceder/M\nintercede/SRDG\nintercensal\nintercept/DGS\ninterception/MS\ninterceptor/MS\nintercession/MS\nintercessor/SM\nintercessory\ninterchangeability/M\ninterchangeableness/M\ninterchangeable/P\ninterchangeably\ninterchange/DSRGJ\ninterchanger/M\nintercity\ninterclass\nintercohort\nintercollegiate\nintercommunicate/SDXNG\nintercommunication/M\nintercom/SM\ninterconnectedness/M\ninterconnected/P\ninterconnect/GDS\ninterconnection/SM\ninterconnectivity\nintercontinental\ninterconversion/M\nintercorrelated\nintercourse/SM\nInterdata/M\ninterdenominational\ninterdepartmental/Y\ninterdependence/MS\ninterdependency/SM\ninterdependent/Y\ninterdiction/MS\ninterdict/MDVGS\ninterdisciplinary\ninterested/UYE\ninterest/GEMDS\ninterestingly/U\ninterestingness/M\ninteresting/YP\ninter/ESTL\ninterface/SRDGM\ninterfacing/M\ninterfaith\ninterference/MS\ninterferer/M\ninterfere/SRDG\ninterfering/Y\ninterferometer/SM\ninterferometric\ninterferometry/M\ninterferon/MS\ninterfile/GSD\nintergalactic\nintergenerational\nintergeneration/M\ninterglacial\nintergovernmental\nintergroup\ninterim/S\ninterindex\ninterindustry\ninterior/SMY\ninterj\ninterject/GDS\ninterjectional\ninterjection/MS\ninterlace/GSD\ninterlard/SGD\ninterlayer/G\ninterleave/SDG\ninterleukin/S\ninterlibrary\ninterlinear/S\ninterline/JGSD\ninterlingual\ninterlingua/M\ninterlining/M\ninterlink/GDS\ninterlisp/M\ninterlobular\ninterlocker/M\ninterlock/RDSG\ninterlocutor/MS\ninterlocutory\ninterlope/GZSRD\ninterloper/M\ninterlude/MSDG\nintermarriage/MS\nintermarry/GDS\nintermediary/MS\nintermediateness/M\nintermediate/YMNGSDP\nintermediation/M\ninterment/SME\nintermeshed\nintermetrics\nintermezzi\nintermezzo/SM\ninterminably\nintermingle/DSG\nintermission/MS\nintermittent/Y\nintermix/GSRD\nintermodule\nintermolecular/Y\ninternalization/SM\ninternalize/GDS\ninternal/SY\nInternationale/M\ninternationalism/SM\ninternationalist/SM\ninternationality/M\ninternationalization/MS\ninternationalize/DSG\ninternational/YS\ninternecine\ninternee/SM\ninterne's\nInternet/M\nINTERNET/M\ninternetwork\ninternist/SM\nintern/L\ninternment/SM\ninternship/MS\ninternuclear\ninterocular\ninteroffice\ninteroperability\ninterpenetrates\ninterpersonal/Y\ninterplanetary\ninterplay/GSMD\ninterpol\ninterpolate/XGNVBDS\ninterpolation/M\nInterpol/M\ninterpose/GSRD\ninterposer/M\ninterposition/MS\ninterpretable/U\ninterpret/AGSD\ninterpretation/MSA\ninterpretative/Y\ninterpreted/U\ninterpreter/SM\ninterpretive/Y\ninterpretor/S\ninterprocess\ninterprocessor\ninterquartile\ninterracial\ninterred/E\ninterregional\ninterregnum/MS\ninterrelatedness/M\ninterrelated/PY\ninterrelate/GNDSX\ninterrelation/M\ninterrelationship/SM\ninterring/E\ninterrogate/DSXGNV\ninterrogation/M\ninterrogative/SY\ninterrogator/SM\ninterrogatory/S\ninterrupted/U\ninterrupter/M\ninterruptibility\ninterruptible\ninterruption/MS\ninterrupt/VGZRDS\ninterscholastic\nintersect/GDS\nintersection/MS\nintersession/MS\ninterspecies\nintersperse/GNDSX\ninterspersion/M\ninterstage\ninterstate/S\ninterstellar\ninterstice/SM\ninterstitial/SY\nintersurvey\nintertask\nintertwine/GSD\ninterurban/S\ninterval/MS\nintervene/GSRD\nintervener/M\nintervenor/M\ninterventionism/MS\ninterventionist/S\nintervention/MS\ninterview/AMD\ninterviewed/U\ninterviewee/SM\ninterviewer/SM\ninterviewing\ninterviews\nintervocalic\ninterweave/GS\ninterwove\ninterwoven\nintestacy/SM\nintestinal/Y\nintestine/SM\ninti\nintifada\nintimacy/SM\nintimal\nintimateness/M\nintimater/M\nintimate/XYNGPDRS\nintimation/M\nintimidate/SDXNG\nintimidating/Y\nintimidation/M\ninto\nintolerableness/M\nintolerable/P\nintolerant/PS\nintonate/NX\nintonation/M\nintoxicant/MS\nintoxicate/DSGNX\nintoxicated/Y\nintoxication/M\nintra\nintracellular\nintracity\nintraclass\nintracohort\nintractability/M\nintractableness/M\nintractable/P\nintradepartmental\nintrafamily\nintragenerational\nintraindustry\nintraline\nintrametropolitan\nintramural/Y\nintramuscular/Y\nintranasal\nintransigence/MS\nintransigent/YS\nintransitive/S\nintraoffice\nintraprocess\nintrapulmonary\nintraregional\nintrasectoral\nintrastate\nintratissue\nintrauterine\nintravenous/YS\nintrepidity/SM\nintrepidness/M\nintrepid/YP\nintricacy/SM\nintricateness/M\nintricate/PY\nintrigue/DRSZG\nintriguer/M\nintriguing/Y\nintrinsically\nintrinsic/S\nintroduce/ADSG\nintroducer/M\nintroduction/ASM\nintroductory\nintroit/SM\nintroject/SD\nintro/S\nintrospection/MS\nintrospectiveness/M\nintrospective/YP\nintrospect/SGVD\nintroversion/SM\nintrovert/SMDG\nintruder/M\nintrude/ZGDSR\nintrusion/SM\nintrusiveness/MS\nintrusive/SYP\nintubate/NGDS\nintubation/M\nintuit/GVDSB\nintuitionist/M\nintuitiveness/MS\nintuitive/YP\nint/ZR\nInuit/MS\ninundate/SXNG\ninundation/M\ninure/GDS\ninvader/M\ninvade/ZSRDG\ninvalid/GSDM\ninvalidism/MS\ninvariable/P\ninvariant/M\ninvasion/SM\ninvasive/P\ninvectiveness/M\ninvective/PSMY\ninveigh/DRG\ninveigher/M\ninveighs\ninveigle/DRSZG\ninveigler/M\ninvent/ADGS\ninvented/U\ninvention/ASM\ninventiveness/MS\ninventive/YP\ninventor/MS\ninventory/SDMG\nInverness/M\ninverse/YV\ninverter/M\ninvertible\ninvert/ZSGDR\ninvest/ADSLG\ninvestigate/XDSNGV\ninvestigation/MA\ninvestigator/MS\ninvestigatory\ninvestiture/SM\ninvestment/ESA\ninvestment's/A\ninvestor/SM\ninveteracy/MS\ninveterate/Y\ninviability\ninvidiousness/MS\ninvidious/YP\ninvigilate/GD\ninvigilator/SM\ninvigorate/ANGSD\ninvigorating/Y\ninvigoration/AM\ninvigorations\ninvincibility/SM\ninvincibleness/M\ninvincible/P\ninvincibly\ninviolability/MS\ninviolably\ninviolateness/M\ninviolate/YP\ninviscid\ninvisibleness/M\ninvisible/S\ninvitational/S\ninvitation/MS\ninvited/U\ninvitee/S\ninviter/M\ninvite/SRDG\ninviting/Y\ninvocable\ninvocate\ninvoked/A\ninvoke/GSRDBZ\ninvoker/M\ninvokes/A\ninvoluntariness/S\ninvoluntary/P\ninvolute/XYN\ninvolution/M\ninvolutorial\ninvolvedly\ninvolved/U\ninvolve/GDSRL\ninvolvement/SM\ninvolver/M\ninvulnerability/M\ninvulnerableness/M\ninwardness/M\ninward/PY\nioctl\niodate/MGND\niodation/M\niodide/MS\niodinate/DNG\niodine/MS\niodize/GSD\nIolande/M\nIolanthe/M\nIo/M\nIona/M\nIonesco/M\nIonian/M\nionic/S\nIonic/S\nionization's\nionization/SU\nionized/UC\nionize/GNSRDJXZ\nionizer's\nionizer/US\nionizes/U\nionizing/U\nionosphere/SM\nionospheric\nion's/I\nion/SMU\nIorgo/MS\nIormina/M\nIosep/M\niota/SM\nIOU\nIowan/S\nIowa/SM\nIPA\nipecac/MS\nIphigenia/M\nipso\nIpswich/M\nIQ\nIqbal/M\nIquitos/M\nIra/M\nIranian/MS\nIran/M\nIraqi/SM\nIraq/M\nIRA/S\nirascibility/SM\nirascible\nirascibly\nirateness/S\nirate/RPYT\nireful\nIreland/M\nire/MGDS\nIrena/M\nIrene/M\nirenic/S\niridescence/SM\niridescent/Y\nirides/M\niridium/MS\nirids\nIrina/M\nIris\niris/GDSM\nIrishman/M\nIrishmen\nIrish/R\nIrishwoman/M\nIrishwomen\nIrita/M\nirk/GDS\nirksomeness/SM\nirksome/YP\nIrkutsk/M\nIr/M\nIrma/M\nironclad/S\niron/DRMPSGJ\nironer/M\nironic\nironicalness/M\nironical/YP\nironing/M\nironmonger/M\nironmongery/M\nironside/MS\nironstone/MS\nironware/SM\nironwood/SM\nironworker/M\nironwork/MRS\nirony/SM\nIroquoian/MS\nIroquois/M\nirradiate/XSDVNG\nirradiation/M\nirrationality/MS\nirrationalness/M\nirrational/YSP\nIrrawaddy/M\nirreclaimable\nirreconcilability/MS\nirreconcilableness/M\nirreconcilable/PS\nirreconcilably\nirrecoverableness/M\nirrecoverable/P\nirrecoverably\nirredeemable/S\nirredeemably\nirredentism/M\nirredentist/M\nirreducibility/M\nirreducible\nirreducibly\nirreflexive\nirrefutable\nirrefutably\nirregardless\nirregularity/SM\nirregular/YS\nirrelevance/SM\nirrelevancy/MS\nirrelevant/Y\nirreligious\nirremediableness/M\nirremediable/P\nirremediably\nirremovable\nirreparableness/M\nirreparable/P\nirreparably\nirreplaceable/P\nirrepressible\nirrepressibly\nirreproachableness/M\nirreproachable/P\nirreproachably\nirreproducibility\nirreproducible\nirresistibility/M\nirresistibleness/M\nirresistible/P\nirresistibly\nirresoluteness/SM\nirresolute/PNXY\nirresolution/M\nirresolvable\nirrespective/Y\nirresponsibility/SM\nirresponsibleness/M\nirresponsible/PS\nirresponsibly\nirretrievable\nirretrievably\nirreverence/MS\nirreverent/Y\nirreversible\nirreversibly\nirrevocableness/M\nirrevocable/P\nirrevocably\nirrigable\nirrigate/DSXNG\nirrigation/M\nirritability/MS\nirritableness/M\nirritable/P\nirritably\nirritant/S\nirritate/DSXNGV\nirritated/Y\nirritating/Y\nirritation/M\nirrupt/GVSD\nirruption/SM\nIRS\nIrtish/M\nIrvine/M\nIrving/M\nIrvin/M\nIrv/MG\nIrwin/M\nIrwinn/M\nis\ni's\nIsaac/SM\nIsaak/M\nIsabelita/M\nIsabella/M\nIsabelle/M\nIsabel/M\nIsacco/M\nIsac/M\nIsadora/M\nIsadore/M\nIsador/M\nIsahella/M\nIsaiah/M\nIsak/M\nIsa/M\nISBN\nIscariot/M\nIseabal/M\nIsfahan/M\nIsherwood/M\nIshim/M\nIshmael/M\nIshtar/M\nIsiahi/M\nIsiah/M\nIsidora/M\nIsidore/M\nIsidor/M\nIsidoro/M\nIsidro/M\nisinglass/MS\nIsis/M\nIslamabad/M\nIslamic/S\nIslam/SM\nislander/M\nisland/GZMRDS\nIslandia/M\nisle/MS\nislet/SM\nisl/GD\nIsmael/M\nism/MCS\nisn't\nISO\nisobaric\nisobar/MS\nIsobel/M\nisochronal/Y\nisochronous/Y\nisocline/M\nisocyanate/M\nisodine\nisolate/SDXNG\nisolationism/SM\nisolationistic\nisolationist/SM\nisolation/M\nisolator/MS\nIsolde/M\nisomeric\nisomerism/SM\nisomer/SM\nisometrically\nisometric/S\nisometrics/M\nisomorphic\nisomorphically\nisomorphism/MS\nisomorph/M\nisoperimetrical\nisopleth/M\nisopleths\nisosceles\nisostatic\nisothermal/Y\nisotherm/MS\nisotonic\nisotope/SM\nisotopic\nisotropic\nisotropically\nisotropy/M\nIspahan's\nispell/M\nIspell/M\nIsraeli/MS\nIsraelite/SM\nIsrael/MS\nIssac/M\nIssiah/M\nIssie/M\nIssi/M\nissuable\nissuance/MS\nissuant\nissued/A\nissue/GMZDSR\nissuer/AMS\nissues/A\nissuing/A\nIssy/M\nIstanbul/M\nisthmian/S\nisthmus/SM\nIstvan/M\nIsuzu/M\nIt\nIT\nItaipu/M\nital\nItalianate/GSD\nItalian/MS\nitalicization/MS\nitalicized/U\nitalicize/GSD\nitalic/S\nItal/M\nItaly/M\nItasca/M\nitch/GMDS\nitchiness/MS\nItch/M\nitchy/RTP\nITcorp/M\nITCorp/M\nit'd\nItel/M\nitemization/SM\nitemized/U\nitemize/GZDRS\nitemizer/M\nitemizes/A\nitem/MDSG\niterate/ASDXVGN\niteration/M\niterative/YA\niterator/MS\nIthaca/M\nIthacan\nitinerant/SY\nitinerary/MS\nit'll\nit/MUS\nIto/M\nits\nitself\nITT\nIUD/S\nIV\nIva/M\nIvanhoe/M\nIvan/M\nIvar/M\nI've\nIve/MRS\nIver/M\nIvette/M\nIvett/M\nIvie/M\niv/M\nIvonne/M\nIvor/M\nIvory/M\nivory/SM\nIVs\nIvy/M\nivy/MDS\nix\nIzaak/M\nIzabel/M\nIzak/M\nIzanagi/M\nIzanami/M\nIzhevsk/M\nIzmir/M\nIzvestia/M\nIzzy/M\njabbed\njabberer/M\njabber/JRDSZG\njabbing\nJabez/M\nJablonsky/M\njabot/MS\njab/SM\njacaranda/MS\nJacenta/M\nJacinda/M\nJacinta/M\nJacintha/M\nJacinthe/M\njackal/SM\njackass/SM\njackboot/DMS\njackdaw/SM\nJackelyn/M\njacketed/U\njacket/GSMD\njack/GDRMS\njackhammer/MDGS\nJackie/M\nJacki/M\njackknife/MGSD\njackknives\nJacklin/M\nJacklyn/M\nJack/M\nJackman/M\njackpot/MS\nJackqueline/M\nJackquelin/M\njackrabbit/DGS\nJacksonian\nJackson/SM\nJacksonville/M\njackstraw/MS\nJacky/M\nJaclin/M\nJaclyn/M\nJacobean\nJacobian/M\nJacobi/M\nJacobin/M\nJacobite/M\nJacobo/M\nJacobsen/M\nJacob/SM\nJacobs/N\nJacobson/M\nJacobus\nJacoby/M\njacquard/MS\nJacquard/SM\nJacqueline/M\nJacquelin/M\nJacquelyn/M\nJacquelynn/M\nJacquenetta/M\nJacquenette/M\nJacques/M\nJacquetta/M\nJacquette/M\nJacquie/M\nJacqui/M\njacuzzi\nJacuzzi/S\nJacynth/M\nJada/M\njadedness/SM\njaded/PY\njadeite/SM\nJade/M\njade/MGDS\nJaeger/M\nJae/M\njaggedness/SM\njagged/RYTP\nJagger/M\njaggers\njagging\njag/S\njaguar/MS\njailbird/MS\njailbreak/SM\njailer/M\njail/GZSMDR\nJaime/M\nJaimie/M\nJaine/M\nJainism/M\nJain/M\nJaipur/M\nJakarta/M\nJake/MS\nJakie/M\nJakob/M\njalape<70>o/S\njalopy/SM\njalousie/MS\nJamaal/M\nJamaica/M\nJamaican/S\nJamal/M\nJamar/M\njambalaya/MS\njamb/DMGS\njamboree/MS\nJamel/M\nJame/MS\nJameson/M\nJamestown/M\nJamesy/M\nJamey/M\nJamie/M\nJamill/M\nJamil/M\nJami/M\nJamima/M\nJamison/M\nJammal/M\njammed/U\nJammie/M\njamming/U\njam/SM\nJanacek/M\nJana/M\nJanaya/M\nJanaye/M\nJandy/M\nJanean/M\nJaneczka/M\nJaneen/M\nJaneiro/M\nJanek/M\nJanela/M\nJanella/M\nJanelle/M\nJanell/M\nJanel/M\nJane/M\nJanene/M\nJanenna/M\nJanessa/M\nJanesville/M\nJaneta/M\nJanet/M\nJanetta/M\nJanette/M\nJaneva/M\nJaney/M\njangler/M\njangle/RSDGZ\njangly\nJania/M\nJanice/M\nJanie/M\nJanifer/M\nJanina/M\nJanine/M\nJanis/M\njanissary/MS\nJanith/M\njanitorial\njanitor/SM\nJanka/M\nJan/M\nJanna/M\nJannelle/M\nJannel/M\nJannie/M\nJanos/M\nJanot/M\nJansenist/M\nJansen/M\nJanuary/MS\nJanus/M\nJany/M\nJapanese/SM\nJapan/M\njapanned\njapanner\njapanning\njapan/SM\njape/DSMG\nJapura/M\nJaquelin/M\nJaquelyn/M\nJaquenetta/M\nJaquenette/M\nJaquith/M\nJarad/M\njardini<6E>re/MS\nJard/M\nJareb/M\nJared/M\njarful/S\njargon/SGDM\nJarib/M\nJarid/M\nJarlsberg\njar/MS\nJarrad/M\njarred\nJarred/M\nJarret/M\nJarrett/M\nJarrid/M\njarring/SY\nJarrod/M\nJarvis/M\nJase/M\nJasen/M\nJasmina/M\nJasmine/M\njasmine/MS\nJasmin/M\nJason/M\nJasper/M\njasper/MS\nJastrow/M\nJasun/M\njato/SM\njaundice/DSMG\njaundiced/U\njauntily\njauntiness/MS\njaunt/MDGS\njaunty/SRTP\nJavanese\nJava/SM\njavelin/SDMG\nJavier/M\njawbone/SDMG\njawbreaker/SM\njawline\njaw/SMDG\nJaxartes/M\nJayapura/M\njaybird/SM\nJaycee/SM\nJaye/M\nJay/M\nJaymee/M\nJayme/M\nJaymie/M\nJaynell/M\nJayne/M\njay/SM\nJayson/M\njaywalker/M\njaywalk/JSRDZG\nJazmin/M\njazziness/M\njazzmen\njazz/MGDS\njazzy/PTR\nJCS\njct\nJD\nJdavie/M\njealousness/M\njealous/PY\njealousy/MS\nJeana/M\nJeanelle/M\nJeane/M\nJeanette/M\nJeanie/M\nJeanine/M\nJean/M\njean/MS\nJeanna/M\nJeanne/M\nJeannette/M\nJeannie/M\nJeannine/M\nJecho/M\nJedd/M\nJeddy/M\nJedediah/M\nJedidiah/M\nJedi/M\nJed/M\njeep/GZSMD\nJeep/S\njeerer/M\njeering/Y\njeer/SJDRMG\nJeeves/M\njeez\nJefferey/M\nJeffersonian/S\nJefferson/M\nJeffery/M\nJeffie/M\nJeff/M\nJeffrey/SM\nJeffry/M\nJeffy/M\njehad's\nJehanna/M\nJehoshaphat/M\nJehovah/M\nJehu/M\njejuna\njejuneness/M\njejune/PY\njejunum/M\nJekyll/M\nJelene/M\njell/GSD\nJello/M\njello's\njellybean/SM\njellyfish/MS\njellying/M\njellylike\njellyroll/S\njelly/SDMG\nJemie/M\nJemimah/M\nJemima/M\nJemmie/M\njemmy/M\nJemmy/M\nJena/M\nJenda/M\nJenelle/M\nJenica/M\nJeniece/M\nJenifer/M\nJeniffer/M\nJenilee/M\nJeni/M\nJenine/M\nJenkins/M\nJen/M\nJenna/M\nJennee/M\nJenner/M\njennet/SM\nJennette/M\nJennica/M\nJennie/M\nJennifer/M\nJennilee/M\nJenni/M\nJennine/M\nJennings/M\nJenn/RMJ\nJenny/M\njenny/SM\nJeno/M\nJensen/M\nJens/N\njeopard\njeopardize/GSD\njeopardy/MS\nJephthah/M\nJerad/M\nJerald/M\nJeralee/M\nJeramey/M\nJeramie/M\nJere/M\nJereme/M\njeremiad/SM\nJeremiah/M\nJeremiahs\nJeremias/M\nJeremie/M\nJeremy/M\nJericho/M\nJeri/M\njerker/M\njerk/GSDRJ\njerkily\njerkiness/SM\njerkin/SM\njerkwater/S\njerky/RSTP\nJermaine/M\nJermain/M\nJermayne/M\nJeroboam/M\nJerold/M\nJerome/M\nJeromy/M\nJerrie/M\nJerrilee/M\nJerrilyn/M\nJerri/M\nJerrine/M\nJerrod/M\nJerrold/M\nJerrome/M\njerrybuilt\nJerrylee/M\njerry/M\nJerry/M\njersey/MS\nJersey/MS\nJerusalem/M\nJervis/M\nJes\nJessalin/M\nJessalyn/M\nJessa/M\nJessamine/M\njessamine's\nJessamyn/M\nJessee/M\nJesselyn/M\nJesse/M\nJessey/M\nJessica/M\nJessie/M\nJessika/M\nJessi/M\njess/M\nJess/M\nJessy/M\njest/DRSGZM\njester/M\njesting/Y\nJesuit/SM\nJesus\nJeth/M\nJethro/M\njetliner/MS\njet/MS\njetport/SM\njetsam/MS\njetted/M\njetting/M\njettison/DSG\njetty/RSDGMT\njeweler/M\njewelery/S\njewel/GZMRDS\nJewelled/M\nJewelle/M\njewellery's\nJewell/MD\nJewel/M\njewelry/MS\nJewess/SM\nJewishness/MS\nJewish/P\nJew/MS\nJewry/MS\nJezebel/MS\nj/F\nJFK/M\njg/M\njibbed\njibbing\njibe/S\njib/MDSG\nJidda/M\njiff/S\njiffy/SM\njigged\njigger/SDMG\njigging/M\njiggle/SDG\njiggly/TR\njig/MS\njigsaw/GSDM\njihad/SM\nJilin\nJillana/M\nJillane/M\nJillayne/M\nJilleen/M\nJillene/M\nJillian/M\nJillie/M\nJilli/M\nJill/M\nJilly/M\njilt/DRGS\njilter/M\nJimenez/M\nJim/M\nJimmie/M\njimmy/GSDM\nJimmy/M\njimsonweed/S\nJinan\njingler/M\njingle/RSDG\njingly/TR\njingoism/SM\njingoistic\njingoist/SM\njingo/M\nJinnah/M\njinni's\njinn/MS\nJinny/M\njinrikisha/SM\njinx/GMDS\njitney/MS\njitterbugged\njitterbugger\njitterbugging\njitterbug/SM\njitter/S\njittery/TR\njiujitsu's\nJivaro/M\njive/MGDS\nJoachim/M\nJoana/M\nJoane/M\nJoanie/M\nJoan/M\nJoanna/M\nJoanne/SM\nJoann/M\nJoaquin/M\njobbed\njobber/MS\njobbery/M\njobbing/M\nJobey/M\njobholder/SM\nJobie/M\nJobi/M\nJobina/M\njoblessness/MS\njobless/P\nJobrel/M\njob/SM\nJob/SM\nJobye/M\nJoby/M\nJobyna/M\nJocasta/M\nJoceline/M\nJocelin/M\nJocelyne/M\nJocelyn/M\njockey/SGMD\njock/GDMS\nJock/M\nJocko/M\njockstrap/MS\njocoseness/MS\njocose/YP\njocosity/SM\njocularity/SM\njocular/Y\njocundity/SM\njocund/Y\nJodee/M\njodhpurs\nJodie/M\nJodi/M\nJody/M\nJoeann/M\nJoela/M\nJoelie/M\nJoella/M\nJoelle/M\nJoellen/M\nJoell/MN\nJoelly/M\nJoellyn/M\nJoel/MY\nJoelynn/M\nJoe/M\nJoesph/M\nJoete/M\njoey/M\nJoey/M\njogged\njogger/SM\njogging/S\njoggler/M\njoggle/SRDG\nJogjakarta/M\njog/S\nJohan/M\nJohannah/M\nJohanna/M\nJohannes\nJohannesburg/M\nJohann/M\nJohansen/M\nJohanson/M\nJohna/MH\nJohnathan/M\nJohnath/M\nJohnathon/M\nJohnette/M\nJohnie/M\nJohnna/M\nJohnnie/M\njohnnycake/SM\nJohnny/M\njohnny/SM\nJohnsen/M\njohn/SM\nJohn/SM\nJohns/N\nJohnson/M\nJohnston/M\nJohnstown/M\nJohny/M\nJoice/M\njoin/ADGFS\njoined/U\njoiner/FSM\njoinery/MS\njointed/EYP\njointedness/ME\njoint/EGDYPS\njointer/M\njointly/F\njoint's\njointures\njoist/GMDS\nJojo/M\njoke/MZDSRG\njoker/M\njokey\njokier\njokiest\njokily\njoking/Y\nJolee/M\nJoleen/M\nJolene/M\nJoletta/M\nJolie/M\nJoliet's\nJoli/M\nJoline/M\nJolla/M\njollification/MS\njollily\njolliness/SM\njollity/MS\njolly/TSRDGP\nJolson/M\njolt/DRGZS\njolter/M\nJoly/M\nJolyn/M\nJolynn/M\nJo/MY\nJonah/M\nJonahs\nJonas\nJonathan/M\nJonathon/M\nJonell/M\nJone/MS\nJones/S\nJonie/M\nJoni/MS\nJon/M\njonquil/MS\nJonson/M\nJoplin/M\nJordain/M\nJordana/M\nJordanian/S\nJordan/M\nJordanna/M\nJordon/M\nJorey/M\nJorgan/M\nJorge/M\nJorgensen/M\nJorgenson/M\nJorie/M\nJori/M\nJorrie/M\nJorry/M\nJory/M\nJoscelin/M\nJosee/M\nJosefa/M\nJosefina/M\nJosef/M\nJoseito/M\nJose/M\nJosepha/M\nJosephina/M\nJosephine/M\nJoseph/M\nJosephs\nJosephson/M\nJosephus/M\nJosey/M\njosh/DSRGZ\njosher/M\nJoshia/M\nJosh/M\nJoshuah/M\nJoshua/M\nJosiah/M\nJosias/M\nJosie/M\nJosi/M\nJosselyn/M\njoss/M\njostle/SDG\nJosue/M\nJosy/M\njot/S\njotted\njotter/SM\njotting/SM\nJoule/M\njoule/SM\njounce/SDG\njouncy/RT\nJourdain/M\nJourdan/M\njournalese/MS\njournal/GSDM\njournalism/SM\njournalistic\njournalist/SM\njournalize/DRSGZ\njournalized/U\njournalizer/M\njourney/DRMZSGJ\njourneyer/M\njourneyman/M\njourneymen\njouster/M\njoust/ZSMRDG\nJovanovich/M\nJove/M\njoviality/SM\njovial/Y\nJovian\njowl/SMD\njowly/TR\nJoya/M\nJoyan/M\nJoyann/M\nJoycean\nJoycelin/M\nJoyce/M\nJoye/M\njoyfuller\njoyfullest\njoyfulness/SM\njoyful/PY\njoylessness/MS\njoyless/PY\nJoy/M\njoy/MDSG\nJoyner/M\njoyousness/MS\njoyous/YP\njoyridden\njoyride/SRZMGJ\njoyrode\njoystick/S\nJozef/M\nJP\nJpn\nJr/M\nj's\nJ's\nJsandye/M\nJuana/M\nJuanita/M\nJuan/M\nJuarez\nJubal/M\njubilant/Y\njubilate/XNGDS\njubilation/M\njubilee/SM\nJudah/M\nJudaic\nJudaical\nJudaism/SM\nJudas/S\njuddered\njuddering\nJudd/M\nJudea/M\nJude/M\njudge/AGDS\njudger/M\njudge's\njudgeship/SM\njudgmental/Y\njudgment/MS\njudicable\njudicatory/S\njudicature/MS\njudicial/Y\njudiciary/S\njudicious/IYP\njudiciousness/SMI\nJudie/M\nJudi/MH\nJuditha/M\nJudith/M\nJud/M\njudo/MS\nJudon/M\nJudson/M\nJudye/M\nJudy/M\njugate/F\njugful/SM\njugged\nJuggernaut/M\njuggernaut/SM\njugging\njuggler/M\njuggle/RSDGZ\njugglery/MS\njug/MS\njugular/S\njuice/GMZDSR\njuicer/M\njuicily\njuiciness/MS\njuicy/TRP\nJuieta/M\njujitsu/MS\njujube/SM\njuju/M\njujutsu's\njukebox/SM\njuke/GS\nJulee/M\nJule/MS\njulep/SM\nJulia/M\nJuliana/M\nJuliane/M\nJulian/M\nJulianna/M\nJulianne/M\nJuliann/M\nJulie/M\njulienne/GSD\nJulienne/M\nJulieta/M\nJuliet/M\nJulietta/M\nJuliette/M\nJuli/M\nJulina/M\nJuline/M\nJulio/M\nJulissa/M\nJulita/M\nJulius/M\nJul/M\nJulys\nJuly/SM\njumble/GSD\njumbo/MS\njumper/M\njump/GZDRS\njumpily\njumpiness/MS\njumpsuit/S\njumpy/PTR\njun\njunco/MS\njunction/IMESF\njuncture/SFM\nJuneau/M\nJune/MS\nJunette/M\nJungfrau/M\nJungian\njungle/SDM\nJung/M\nJunia/M\nJunie/M\nJunina/M\njuniority/M\njunior/MS\nJunior/S\njuniper/SM\njunkerdom\nJunker/SM\njunketeer/SGDM\njunket/SMDG\njunk/GZDRMS\njunkie/RSMT\njunkyard/MS\nJun/M\nJuno/M\njunta/MS\nJupiter/M\nJurassic\njuridic\njuridical/Y\njuried\njurisdictional/Y\njurisdiction/SM\njurisprudence/SM\njurisprudent\njurisprudential/Y\njuristic\njurist/MS\njuror/MS\nJurua/M\njury/IMS\njurying\njuryman/M\njurymen\njurywoman/M\njurywomen\njusted\nJusten/M\njuster/M\njustest\nJustice/M\njustice/MIS\njusticiable\njustifiability/M\njustifiable/U\njustifiably/U\njustification/M\njustified/UA\njustifier/M\njustify/GDRSXZN\nJustina/M\nJustine/M\njusting\nJustinian/M\nJustin/M\nJustinn/M\nJustino/M\nJustis/M\njustness/MS\njustness's/U\njusts\njust/UPY\nJustus/M\njute/SM\nJutish\nJutland/M\njut/S\njutted\njutting\nJuvenal/M\njuvenile/SM\njuxtapose/SDG\njuxtaposition/SM\nJV\nJ/X\nJyoti/M\nKaaba/M\nkabob/SM\nkaboom\nKabuki\nkabuki/SM\nKabul/M\nKacey/M\nKacie/M\nKacy/M\nKaddish/M\nkaddish/S\nKaela/M\nkaffeeklatch\nkaffeeklatsch/S\nKafkaesque\nKafka/M\nkaftan's\nKagoshima/M\nKahaleel/M\nKahlil/M\nKahlua/M\nKahn/M\nKaia/M\nKaifeng/M\nKaila/M\nKaile/M\nKailey/M\nKai/M\nKaine/M\nKain/M\nkaiser/MS\nKaiser/SM\nKaitlin/M\nKaitlyn/M\nKaitlynn/M\nKaja/M\nKajar/M\nKakalina/M\nKalahari/M\nKala/M\nKalamazoo/M\nKalashnikov/M\nKalb/M\nKaleb/M\nKaleena/M\nkaleidescope\nkaleidoscope/SM\nkaleidoscopic\nkaleidoscopically\nKale/M\nkale/MS\nKalgoorlie/M\nKalie/M\nKalila/M\nKalil/M\nKali/M\nKalina/M\nKalinda/M\nKalindi/M\nKalle/M\nKalli/M\nKally/M\nKalmyk\nKalvin/M\nKama/M\nKamchatka/M\nKamehameha/M\nKameko/M\nKamikaze/MS\nkamikaze/SM\nKamilah/M\nKamila/M\nKamillah/M\nKampala/M\nKampuchea/M\nKanchenjunga/M\nKandace/M\nKandahar/M\nKandinsky/M\nKandy/M\nKane/M\nkangaroo/SGMD\nKania/M\nKankakee/M\nKan/MS\nKannada/M\nKano/M\nKanpur/M\nKansan/S\nKansas\nKantian\nKant/M\nKanya/M\nKaohsiung/M\nkaolinite/M\nkaolin/MS\nKaplan/M\nkapok/SM\nKaposi/M\nkappa/MS\nkaput/M\nKarachi/M\nKaraganda/M\nKarakorum/M\nkarakul/MS\nKaralee/M\nKaralynn/M\nKara/M\nKaramazov/M\nkaraoke/S\nkarate/MS\nkarat/SM\nKaree/M\nKareem/M\nKarel/M\nKare/M\nKarena/M\nKarenina/M\nKaren/M\nKaria/M\nKarie/M\nKaril/M\nKarilynn/M\nKari/M\nKarim/M\nKarina/M\nKarine/M\nKarin/M\nKariotta/M\nKarisa/M\nKarissa/M\nKarita/M\nKarla/M\nKarlan/M\nKarlee/M\nKarleen/M\nKarlene/M\nKarlen/M\nKarlie/M\nKarlik/M\nKarlis\nKarl/MNX\nKarloff/M\nKarlotta/M\nKarlotte/M\nKarly/M\nKarlyn/M\nkarma/SM\nKarmen/M\nkarmic\nKarna/M\nKarney/M\nKarola/M\nKarole/M\nKarolina/M\nKaroline/M\nKarol/M\nKaroly/M\nKaron/M\nKaro/YM\nKarp/M\nKarrah/M\nKarrie/M\nKarroo/M\nKarry/M\nkart/MS\nKarylin/M\nKaryl/M\nKary/M\nKaryn/M\nKasai/M\nKasey/M\nKashmir/SM\nKaspar/M\nKasparov/M\nKasper/M\nKass\nKassandra/M\nKassey/M\nKassia/M\nKassie/M\nKassi/M\nkatakana\nKatalin/M\nKata/M\nKatee/M\nKatelyn/M\nKate/M\nKaterina/M\nKaterine/M\nKatey/M\nKatha/M\nKatharina/M\nKatharine/M\nKatharyn/M\nKathe/M\nKatherina/M\nKatherine/M\nKatheryn/M\nKathiawar/M\nKathie/M\nKathi/M\nKathleen/M\nKathlin/M\nKath/M\nKathmandu\nKathrine/M\nKathryne/M\nKathryn/M\nKathye/M\nKathy/M\nKatie/M\nKati/M\nKatina/M\nKatine/M\nKatinka/M\nKatleen/M\nKatlin/M\nKat/M\nKatmai/M\nKatmandu's\nKatowice/M\nKatrina/M\nKatrine/M\nKatrinka/M\nKattie/M\nKatti/M\nKatuscha/M\nKatusha/M\nKatya/M\nkatydid/SM\nKaty/M\nKatz/M\nKauai/M\nKauffman/M\nKaufman/M\nKaunas/M\nKaunda/M\nKawabata/M\nKawasaki/M\nkayak/SGDM\nKaycee/M\nKaye/M\nKayla/M\nKaylee/M\nKayle/M\nKayley/M\nKaylil/M\nKaylyn/M\nKay/M\nKayne/M\nkayo/DMSG\nKazakh/M\nKazakhstan\nKazan/M\nKazantzakis/M\nkazoo/SM\nKb\nKB\nKC\nkcal/M\nkc/M\nKDE/M\nKeane/M\nKean/M\nKearney/M\nKeary/M\nKeaton/M\nKeats/M\nkebab/SM\nKeck/M\nKeefe/MR\nKeefer/M\nKeegan/M\nKeelby/M\nKeeley/M\nkeel/GSMDR\nkeelhaul/SGD\nKeelia/M\nKeely/M\nKeenan/M\nKeene/M\nkeener/M\nkeen/GTSPYDR\nkeening/M\nKeen/M\nkeenness/MS\nkeeper/M\nkeep/GZJSR\nkeeping/M\nkeepsake/SM\nKeewatin/M\nkegged\nkegging\nkeg/MS\nKeillor/M\nKeir/M\nKeisha/M\nKeith/M\nKelbee/M\nKelby/M\nKelcey/M\nKelcie/M\nKelci/M\nKelcy/M\nKele/M\nKelila/M\nKellby/M\nKellen/M\nKeller/M\nKelley/M\nKellia/M\nKellie/M\nKelli/M\nKellina/M\nKellogg/M\nKellsie/M\nKellyann/M\nKelly/M\nkelp/GZMDS\nKelsey/M\nKelsi/M\nKelsy/M\nKelt's\nKelvin/M\nkelvin/MS\nKelwin/M\nKemerovo/M\nKempis/M\nKemp/M\nKendall/M\nKendal/M\nKendell/M\nKendra/M\nKendre/M\nKendrick/MS\nKenilworth/M\nKen/M\nKenmore/M\nken/MS\nKenna/M\nKennan/M\nKennecott/M\nkenned\nKennedy/M\nkennel/GSMD\nKenneth/M\nKennett/M\nKennie/M\nkenning\nKennith/M\nKenn/M\nKenny/M\nkeno/M\nKenon/M\nKenosha/M\nKensington/M\nKent/M\nKenton/M\nKentuckian/S\nKentucky/M\nKenya/M\nKenyan/S\nKenyatta/M\nKenyon/M\nKeogh/M\nKeokuk/M\nkepi/SM\nKepler/M\nkept\nkeratin/MS\nkerbside\nKerby/M\nkerchief/MDSG\nKerensky/M\nKerianne/M\nKeriann/M\nKeri/M\nKerk/M\nKer/M\nKermie/M\nKermit/M\nKermy/M\nkerned\nkernel/GSMD\nkerning\nKern/M\nkerosene/MS\nKerouac/M\nKerrie/M\nKerrill/M\nKerri/M\nKerrin/M\nKerr/M\nKerry/M\nKerstin/M\nKerwin/M\nKerwinn/M\nKesley/M\nKeslie/M\nKessiah/M\nKessia/M\nKessler/M\nkestrel/SM\nketch/MS\nketchup/SM\nketone/M\nketosis/M\nKettering/M\nKettie/M\nKetti/M\nkettledrum/SM\nkettleful\nkettle/SM\nKetty/M\nKevan/M\nKeven/M\nKevina/M\nKevin/M\nKevlar\nKev/MN\nKevon/M\nKevorkian/M\nKevyn/M\nKewaskum/M\nKewaunee/M\nKewpie/M\nkeyboardist/S\nkeyboard/RDMZGS\nkeyclick/SM\nkeyhole/MS\nKey/M\nKeynesian/M\nKeynes/M\nkeynoter/M\nkeynote/SRDZMG\nkeypad/MS\nkeypuncher/M\nkeypunch/ZGRSD\nkeyring\nkey/SGMD\nkeystone/SM\nkeystroke/SDMG\nkeyword/SM\nk/FGEIS\nkg\nK/G\nKGB\nKhabarovsk/M\nKhachaturian/M\nkhaki/SM\nKhalid/M\nKhalil/M\nKhan/M\nkhan/MS\nKharkov/M\nKhartoum/M\nKhayyam/M\nKhmer/M\nKhoisan/M\nKhomeini/M\nKhorana/M\nKhrushchev/SM\nKhufu/M\nKhulna/M\nKhwarizmi/M\nKhyber/M\nkHz/M\nKIA\nKiah/M\nKial/M\nkibble/GMSD\nkibbutzim\nkibbutz/M\nkibitzer/M\nkibitz/GRSDZ\nkibosh/GMSD\nKickapoo/M\nkickback/SM\nkickball/MS\nkicker/M\nkick/GZDRS\nkickoff/SM\nkickstand/MS\nkicky/RT\nkidded\nkidder/SM\nkiddie/SD\nkidding/YM\nkiddish\nKidd/M\nkiddo/SM\nkiddying\nkiddy's\nkidless\nkid/MS\nkidnaper's\nkidnaping's\nkidnap/MSJ\nkidnapped\nkidnapper/SM\nkidnapping/S\nkidney/MS\nkidskin/SM\nKieffer/M\nkielbasa/SM\nkielbasi\nKiele/M\nKiel/M\nKienan/M\nkier/I\nKierkegaard/M\nKiersten/M\nKieth/M\nKiev/M\nKigali/M\nKikelia/M\nKikuyu/M\nKilauea/M\nKile/M\nKiley/M\nKilian/M\nKilimanjaro/M\nkill/BJGZSDR\nkilldeer/SM\nKillebrew/M\nkiller/M\nKillian/M\nKillie/M\nkilling/Y\nkilljoy/S\nKilly/M\nkiln/GDSM\nkilobaud/M\nkilobit/S\nkilobuck\nkilobyte/S\nkilocycle/MS\nkilogauss/M\nkilogram/MS\nkilohertz/M\nkilohm/M\nkilojoule/MS\nkiloliter/MS\nkilometer/SM\nkilo/SM\nkiloton/SM\nkilovolt/SM\nkilowatt/SM\nkiloword\nkilter/M\nkilt/MDRGZS\nKi/M\nKimball/M\nKimbell/M\nKimberlee/M\nKimberley/M\nKimberli/M\nKimberly/M\nKimberlyn/M\nKimble/M\nKimbra/M\nKim/M\nKimmie/M\nKimmi/M\nKimmy/M\nkimono/MS\nKincaid/M\nkinda\nkindergarten/MS\nkinderg<72>rtner/SM\nkinder/U\nkindheartedness/MS\nkindhearted/YP\nkindle/AGRSD\nkindler/M\nkindliness/SM\nkindliness's/U\nkindling/M\nkindly/TUPR\nkindness's\nkindness/US\nkind/PSYRT\nkindred/S\nkinematic/S\nkinematics/M\nkinesics/M\nkine/SM\nkinesthesis\nkinesthetically\nkinesthetic/S\nkinetically\nkinetic/S\nkinetics/M\nkinfolk/S\nkingbird/M\nkingdom/SM\nkingfisher/MS\nkinglet/M\nkingliness/M\nkingly/TPR\nKing/M\nkingpin/MS\nKingsbury/M\nking/SGYDM\nkingship/SM\nKingsley/M\nKingsly/M\nKingston/M\nKingstown/M\nKingwood/M\nkink/GSDM\nkinkily\nkinkiness/SM\nkinky/PRT\nKin/M\nkin/MS\nKinna/M\nKinney/M\nKinnickinnic/M\nKinnie/M\nKinny/M\nKinsey/M\nkinsfolk/S\nKinshasa/M\nKinshasha/M\nkinship/SM\nKinsley/M\nkinsman/M\nkinsmen/M\nkinswoman/M\nkinswomen\nkiosk/SM\nKiowa/SM\nKipling/M\nKip/M\nkip/MS\nKippar/M\nkipped\nkipper/DMSG\nKipper/M\nKippie/M\nkipping\nKipp/MR\nKippy/M\nKira/M\nKirbee/M\nKirbie/M\nKirby/M\nKirchhoff/M\nKirchner/M\nKirchoff/M\nKirghistan/M\nKirghizia/M\nKirghiz/M\nKiribati\nKiri/M\nKirinyaga/M\nkirk/GDMS\nKirkland/M\nKirk/M\nKirkpatrick/M\nKirkwood/M\nKirov/M\nkirsch/S\nKirsteni/M\nKirsten/M\nKirsti/M\nKirstin/M\nKirstyn/M\nKisangani/M\nKishinev/M\nkismet/SM\nkiss/DSRBJGZ\nKissee/M\nkisser/M\nKissiah/M\nKissie/M\nKissinger/M\nKitakyushu/M\nkitbag's\nkitchener/M\nKitchener/M\nkitchenette/SM\nkitchen/GDRMS\nkitchenware/SM\nkiter/M\nkite/SM\nkith/MDG\nkiths\nKit/M\nkit/MDRGS\nkitsch/MS\nkitschy\nkitted\nkittenishness/M\nkittenish/YP\nkitten/SGDM\nKittie/M\nKitti/M\nkitting\nkittiwakes\nKitty/M\nkitty/SM\nKiwanis/M\nkiwifruit/S\nkiwi/SM\nKizzee/M\nKizzie/M\nKKK\nkl\nKlan/M\nKlansman/M\nKlara/M\nKlarika/M\nKlarrisa/M\nKlaus/M\nklaxon/M\nKlee/M\nKleenex/SM\nKlein/M\nKleinrock/M\nKlemens/M\nKlement/M\nKleon/M\nkleptomaniac/SM\nkleptomania/MS\nKliment/M\nKline/M\nKlingon/M\nKlondike/SDMG\nkludger/M\nkludge/RSDGMZ\nkludgey\nklutziness/S\nklutz/SM\nklutzy/TRP\nKlux/M\nklystron/MS\nkm\nkn\nknacker/M\nknack/SGZRDM\nknackwurst/MS\nKnapp/M\nknapsack/MS\nKnauer/M\nknavery/MS\nknave/SM\nknavish/Y\nkneader/M\nknead/GZRDS\nkneecap/MS\nkneecapped\nkneecapping\nknee/DSM\nkneeing\nkneeler/M\nkneel/GRS\nkneepad/SM\nknell/SMDG\nknelt\nKnesset/M\nknew\nKngwarreye/M\nKnickerbocker/MS\nknickerbocker/S\nknickknack/SM\nknick/ZR\nKnievel/M\nknife/DSGM\nknighthood/MS\nknightliness/MS\nknightly/P\nKnight/M\nknight/MDYSG\nknish/MS\nknit/AU\nknits\nknitted\nknitter/MS\nknitting/SM\nknitwear/M\nknives/M\nknobbly\nknobby/RT\nKnobeloch/M\nknob/MS\nknockabout/M\nknockdown/S\nknocker/M\nknock/GZSJRD\nknockoff/S\nknockout/MS\nknockwurst's\nknoll/MDSG\nKnopf/M\nKnossos/M\nknothole/SM\nknot/MS\nknotted\nknottiness/M\nknotting/M\nknotty/TPR\nknowable/U\nknower/M\nknow/GRBSJ\nknowhow\nknowingly/U\nknowing/RYT\nknowings/U\nknowledgeableness/M\nknowledgeable/P\nknowledgeably\nknowledge/SM\nKnowles\nknown/SU\nKnox/M\nKnoxville/M\nknuckleball/R\nknuckle/DSMG\nknuckleduster\nknucklehead/MS\nKnudsen/M\nKnudson/M\nknurl/DSG\nKnuth/M\nKnutsen/M\nKnutson/M\nKO\nkoala/SM\nKobayashi/M\nKobe/M\nKochab/M\nKoch/M\nKodachrome/M\nKodak/SM\nKodaly/M\nKodiak/M\nKoenig/M\nKoenigsberg/M\nKoenraad/M\nKoestler/M\nKohinoor/M\nKohler/M\nKohl/MR\nkohlrabies\nkohlrabi/M\nkola/SM\nKolyma/M\nKommunizma/M\nKong/M\nKongo/M\nKonrad/M\nKonstance/M\nKonstantine/M\nKonstantin/M\nKonstanze/M\nkookaburra/SM\nkook/GDMS\nkookiness/S\nkooky/PRT\nKoo/M\nKoontz/M\nkopeck/MS\nKoppers/M\nKoralle/M\nKoral/M\nKora/M\nKoranic\nKoran/SM\nKordula/M\nKorea/M\nKorean/S\nKorella/M\nKore/M\nKoren/M\nKoressa/M\nKorey/M\nKorie/M\nKori/M\nKornberg/M\nKorney/M\nKorrie/M\nKorry/M\nKort/M\nKory/M\nKorzybski/M\nKosciusko/M\nkosher/DGS\nKossuth/M\nKosygin/M\nKovacs/M\nKowalewski/M\nKowalski/M\nKowloon/M\nkowtow/SGD\nKP\nkph\nkraal/SMDG\nKraemer/M\nkraft/M\nKraft/M\nKrakatau's\nKrakatoa/M\nKrakow/M\nKramer/M\nKrasnodar/M\nKrasnoyarsk/M\nKrause/M\nkraut/S!\nKrebs/M\nKremlin/M\nKremlinologist/MS\nKremlinology/MS\nKresge/M\nKrieger/M\nkriegspiel/M\nkrill/MS\nKringle/M\nKrisha/M\nKrishnah/M\nKrishna/M\nKris/M\nKrispin/M\nKrissie/M\nKrissy/M\nKristal/M\nKrista/M\nKristan/M\nKristel/M\nKriste/M\nKristen/M\nKristian/M\nKristie/M\nKristien/M\nKristi/MN\nKristina/M\nKristine/M\nKristin/M\nKristofer/M\nKristoffer/M\nKristofor/M\nKristoforo/M\nKristo/MS\nKristopher/M\nKristy/M\nKristyn/M\nKr/M\nKroc/M\nKroger/M\nkr<6B>na/M\nKronecker/M\nkrone/RM\nkronor\nkr<6B>nur\nKropotkin/M\nKrueger/M\nKruger/M\nKrugerrand/S\nKrupp/M\nKruse/M\nkrypton/SM\nKrystalle/M\nKrystal/M\nKrysta/M\nKrystle/M\nKrystyna/M\nks\nK's\nKS\nk's/IE\nkt\nKublai/M\nKubrick/M\nkuchen/MS\nkudos/M\nkudzu/SM\nKuenning/M\nKuhn/M\nKuibyshev/M\nKu/M\nKumar/M\nkumquat/SM\nKunming/M\nKuomintang/M\nKurdish/M\nKurdistan/SM\nKurd/SM\nKurosawa/M\nKurtis/M\nKurt/M\nkurtosis/M\nKusch/M\nKuwaiti/SM\nKuwait/M\nKuznetsk/M\nKuznets/M\nkvetch/DSG\nkw\nkW\nKwakiutl/M\nKwangchow's\nKwangju/M\nKwanzaa/S\nkWh\nKY\nKyla/M\nkyle/M\nKyle/M\nKylen/M\nKylie/M\nKylila/M\nKylynn/M\nKy/MH\nKym/M\nKynthia/M\nKyoto/M\nKyrgyzstan\nKyrstin/M\nKyushu/M\nL\nLA\nLaban/M\nlabeled/U\nlabeler/M\nlabel/GAZRDS\nlabellings/A\nlabel's\nlabial/YS\nlabia/M\nlabile\nlabiodental\nlabium/M\nlaboratory/MS\nlaboredness/M\nlabored/PMY\nlabored's/U\nlaborer/M\nlaboring/MY\nlaborings/U\nlaboriousness/MS\nlaborious/PY\nlabor/RDMJSZG\nlaborsaving\nLabradorean/S\nLabrador/SM\nlab/SM\nLab/SM\nlaburnum/SM\nlabyrinthine\nlabyrinth/M\nlabyrinths\nlaced/U\nLacee/M\nlace/MS\nlacerate/NGVXDS\nlaceration/M\nlacer/M\nlaces/U\nlacewing/MS\nLacey/M\nLachesis/M\nlachrymal/S\nlachrymose\nLacie/M\nlacing/M\nlackadaisic\nlackadaisical/Y\nLackawanna/M\nlacker/M\nlackey/SMDG\nlack/GRDMS\nlackluster/S\nLac/M\nlaconic\nlaconically\nlacquerer/M\nlacquer/ZGDRMS\nlacrosse/MS\nlac/SGMDR\nlactate/MNGSDX\nlactational/Y\nlactation/M\nlacteal\nlactic\nlactose/MS\nlacunae\nlacuna/M\nLacy/M\nlacy/RT\nladder/GDMS\nladdie/MS\nladed/U\nladened\nladening\nladen/U\nlade/S\nlading/M\nladle/SDGM\nLadoga/M\nLadonna/M\nlad/XGSJMND\nladybird/SM\nladybug/MS\nladyfinger/SM\nladylike/U\nladylove/MS\nLadyship/MS\nladyship/SM\nlady/SM\nLady/SM\nLaetitia/M\nlaetrile/S\nLafayette/M\nLafitte/M\nlager/DMG\nlaggard/MYSP\nlaggardness/M\nlagged\nlagging/MS\nlagniappe/SM\nlagoon/MS\nLagos/M\nLagrange/M\nLagrangian/M\nLaguerre/M\nLaguna/M\nlag/ZSR\nLahore/M\nlaid/AI\nLaidlaw/M\nlain\nLaina/M\nLainey/M\nLaird/M\nlaird/MS\nlair/GDMS\nlaissez\nlaity/SM\nLaius/M\nlake/DSRMG\nLakehurst/M\nLakeisha/M\nlaker/M\nlakeside\nLakewood/M\nLakisha/M\nLakshmi/M\nlallygagged\nlallygagging\nlallygag/S\nLalo/M\nLa/M\nLamaism/SM\nLamarck/M\nLamar/M\nlamasery/MS\nlama/SM\nLamaze\nlambada/S\nlambaste/SDG\nlambda/SM\nlambency/MS\nlambent/Y\nLambert/M\nlambkin/MS\nLamb/M\nLamborghini/M\nlambskin/MS\nlamb/SRDMG\nlambswool\nlamebrain/SM\nlamed/M\nlameness/MS\nlamentableness/M\nlamentable/P\nlamentably\nlamentation/SM\nlament/DGSB\nlamented/U\nlame/SPY\nla/MHLG\nlaminae\nlamina/M\nlaminar\nlaminate/XNGSD\nlamination/M\nlam/MDRSTG\nlammed\nlammer\nlamming\nLammond/M\nLamond/M\nLamont/M\nL'Amour\nlampblack/SM\nlamplighter/M\nlamplight/ZRMS\nlampooner/M\nlampoon/RDMGS\nLamport/M\nlamppost/SM\nlamprey/MS\nlamp/SGMRD\nlampshade/MS\nLAN\nLanae/M\nLanai/M\nlanai/SM\nLana/M\nLancashire/M\nLancaster/M\nLancelot/M\nLance/M\nlancer/M\nlance/SRDGMZ\nlancet/MS\nlandau/MS\nlander/I\nlandfall/SM\nlandfill/DSG\nlandforms\nlandholder/M\nlandhold/JGZR\nlanding/M\nLandis/M\nlandlady/MS\nlandless\nlandlines\nlandlocked\nlandlord/MS\nlandlubber/SM\nLand/M\nlandmark/GSMD\nlandmass/MS\nLandon/M\nlandowner/MS\nlandownership/M\nlandowning/SM\nLandry/M\nLandsat\nlandscape/GMZSRD\nlandscaper/M\nlands/I\nlandslide/MS\nlandslid/G\nlandslip\nlandsman/M\nlandsmen\nland/SMRDJGZ\nLandsteiner/M\nlandward/S\nLandwehr/M\nLane/M\nlane/SM\nLanette/M\nLaney/M\nLangeland/M\nLange/M\nLangerhans/M\nLangford/M\nLangland/M\nLangley/M\nLang/M\nLangmuir/M\nLangsdon/M\nLangston/M\nlanguage/MS\nlanguidness/MS\nlanguid/PY\nlanguisher/M\nlanguishing/Y\nlanguish/SRDG\nlanguorous/Y\nlanguor/SM\nLanie/M\nLani/M\nLanita/M\nlankiness/SM\nlankness/MS\nlank/PTYR\nlanky/PRT\nLanna/M\nLannie/M\nLanni/M\nLanny/M\nlanolin/MS\nLansing/M\nlantern/GSDM\nlanthanide/M\nlanthanum/MS\nlanyard/MS\nLanzhou\nLaocoon/M\nLao/SM\nLaotian/MS\nlapboard/MS\nlapdog/S\nlapel/MS\nlapidary/MS\nlapin/MS\nLaplace/M\nLapland/ZMR\nlapped\nlappet/MS\nlapping\nLapp/SM\nlapsed/A\nlapse/KSDMG\nlapser/MA\nlapses/A\nlapsing/A\nlap/SM\nlaps/SRDG\nlaptop/SM\nlapwing/MS\nLaraine/M\nLara/M\nLaramie/M\nlarboard/MS\nlarcenist/S\nlarcenous\nlarceny/MS\nlarch/MS\nlarder/M\nlard/MRDSGZ\nLardner/M\nlardy/RT\nLaredo/M\nlargehearted\nlargemouth\nlargeness/SM\nlarge/SRTYP\nlargess/SM\nlargish\nlargo/S\nlariat/MDGS\nLari/M\nLarina/M\nLarine/M\nLarisa/M\nLarissa/M\nlarker/M\nlark/GRDMS\nLark/M\nlarkspur/MS\nLarousse/M\nLarry/M\nLarsen/M\nLars/NM\nLarson/M\nlarvae\nlarval\nlarva/M\nlaryngeal/YS\nlarynges\nlaryngitides\nlaryngitis/M\nlarynx/M\nLaryssa/M\nlasagna/S\nlasagne's\nLascaux/M\nlasciviousness/MS\nlascivious/YP\nlase\nlaser/M\nlashed/U\nlasher/M\nlashing/M\nlash/JGMSRD\nLassa/M\nLassen/M\nLassie/M\nlassie/SM\nlassitude/MS\nlassoer/M\nlasso/GRDMS\nlas/SRZG\nlass/SM\nlaster/M\nlastingness/M\nlasting/PY\nlast/JGSYRD\nLaszlo/M\nLatasha/M\nLatashia/M\nlatching/M\nlatchkey/SM\nlatch's\nlatch/UGSD\nlatecomer/SM\nlated/A\nlate/KA\nlately\nlatency/MS\nlateness/MS\nlatent/YS\nlater/A\nlateral/GDYS\nlateralization\nLateran/M\nlatest/S\nLaTeX/M\nlatex/MS\nlathe/M\nlatherer/M\nlather/RDMG\nlathery\nlathing/M\nlath/MSRDGZ\nLathrop/M\nlaths\nLatia/M\nlatices/M\nLatina/SM\nLatinate\nLatino/S\nLatin/RMS\nlatish\nLatisha/M\nlatitude/SM\nlatitudinal/Y\nlatitudinarian/S\nlatitudinary\nLat/M\nLatonya/M\nLatoya/M\nLatrena/M\nLatrina/M\nlatrine/MS\nLatrobe/M\nlat/SDRT\nlatter/YM\nlatte/SR\nlattice/SDMG\nlatticework/MS\nlatticing/M\nLattimer/M\nLatvia/M\nLatvian/S\nlaudably\nlaudanum/MS\nlaudatory\nLauderdale/M\nlauder/M\nLauder/M\nLaud/MR\nlaud/RDSBG\nlauds/M\nLaue/M\nlaughableness/M\nlaughable/P\nlaughably\nlaugh/BRDZGJ\nlaugher/M\nlaughing/MY\nlaughingstock/SM\nlaughs\nlaughter/MS\nLaughton/M\nLaunce/M\nlaunch/AGSD\nlauncher/MS\nlaunching/S\nlaunchpad/S\nlaundered/U\nlaunderer/M\nlaunderette/MS\nlaunder/SDRZJG\nlaundress/MS\nlaundrette/S\nlaundromat/S\nLaundromat/SM\nlaundryman/M\nlaundrymen\nlaundry/MS\nlaundrywoman/M\nlaundrywomen\nLauraine/M\nLauralee/M\nLaural/M\nlaura/M\nLaura/M\nLaurasia/M\nlaureate/DSNG\nlaureateship/SM\nLauree/M\nLaureen/M\nLaurella/M\nLaurel/M\nlaurel/SGMD\nLaure/M\nLaurena/M\nLaurence/M\nLaurene/M\nLauren/SM\nLaurentian\nLaurent/M\nLauretta/M\nLaurette/M\nLaurianne/M\nLaurice/M\nLaurie/M\nLauri/M\nLauritz/M\nLauryn/M\nLausanne/M\nlavage/MS\nlavaliere/MS\nLaval/M\nlava/SM\nlavatory/MS\nlave/GDS\nLavena/M\nlavender/MDSG\nLaverna/M\nLaverne/M\nLavern/M\nLavina/M\nLavinia/M\nLavinie/M\nlavishness/MS\nlavish/SRDYPTG\nLavoisier/M\nLavonne/M\nLawanda/M\nlawbreaker/SM\nlawbreaking/MS\nLawford/M\nlawfulness/SMU\nlawful/PUY\nlawgiver/MS\nlawgiving/M\nlawlessness/MS\nlawless/PY\nLaw/M\nlawmaker/MS\nlawmaking/SM\nlawman/M\nlawmen\nlawnmower/S\nlawn/SM\nLawrence/M\nLawrenceville/M\nlawrencium/SM\nLawry/M\nlaw/SMDG\nLawson/M\nlawsuit/MS\nLawton/M\nlawyer/DYMGS\nlaxativeness/M\nlaxative/PSYM\nlaxer/A\nlaxes/A\nlaxity/SM\nlaxness/SM\nlax/PTSRY\nlayabout/MS\nLayamon/M\nlayaway/S\nlay/CZGSR\nlayered/C\nlayer/GJDM\nlayering/M\nlayer's/IC\nlayette/SM\nLayla/M\nLay/M\nlayman/M\nlaymen\nLayne/M\nLayney/M\nlayoff/MS\nlayout/SM\nlayover/SM\nlaypeople\nlayperson/S\nlays/AI\nLayton/M\nlayup/MS\nlaywoman/M\nlaywomen\nLazare/M\nLazar/M\nLazaro/M\nLazarus/M\nlaze/DSG\nlazily\nlaziness/MS\nlazuli/M\nlazybones/M\nlazy/PTSRDG\nlb\nLBJ/M\nlbs\nLC\nLCD\nLCM\nLDC\nleachate\nLeach/M\nleach/SDG\nLeadbelly/M\nleaded/U\nleadenness/M\nleaden/PGDY\nleaderless\nleader/M\nleadership/MS\nlead/SGZXJRDN\nleadsman/M\nleadsmen\nleafage/MS\nleaf/GSDM\nleafhopper/M\nleafiness/M\nleafless\nleaflet/SDMG\nleafstalk/SM\nleafy/PTR\nleaguer/M\nleague/RSDMZG\nLeah/M\nleakage/SM\nleaker/M\nLeakey/M\nleak/GSRDM\nleakiness/MS\nleaky/PRT\nLea/M\nlea/MS\nLeander/M\nLeandra/M\nleaner/M\nleaning/M\nLean/M\nLeanna/M\nLeanne/M\nleanness/MS\nLeann/M\nLeanora/M\nLeanor/M\nlean/YRDGTJSP\nleaper/M\nleapfrogged\nleapfrogging\nleapfrog/SM\nleap/RDGZS\nLear/M\nlearnedly\nlearnedness/M\nlearned/UA\nlearner/M\nlearning/M\nlearns/UA\nlearn/SZGJRD\nLeary/M\nlease/ARSDG\nleaseback/MS\nleaseholder/M\nleasehold/SRMZ\nleaser/MA\nlease's\nleash's\nleash/UGSD\nleasing/M\nleas/SRDGZ\nleast/S\nleastwise\nleatherette/S\nleather/MDSG\nleathern\nleatherneck/SM\nleathery\nleaven/DMJGS\nleavened/U\nleavening/M\nLeavenworth/M\nleaver/M\nleaves/M\nleave/SRDJGZ\nleaving/M\nLebanese\nLebanon/M\nLebbie/M\nlebensraum\nLebesgue/M\nLeblanc/M\nlecher/DMGS\nlecherousness/MS\nlecherous/YP\nlechery/MS\nlecithin/SM\nlectern/SM\nlecturer/M\nlecture/RSDZMG\nlectureship/SM\nled\nLeda/M\nLederberg/M\nledger/DMG\nledge/SRMZ\nLED/SM\nLeeanne/M\nLeeann/M\nleech/MSDG\nLeeds/M\nleek/SM\nLeelah/M\nLeela/M\nLeeland/M\nLee/M\nlee/MZRS\nLeena/M\nleer/DG\nleeriness/MS\nleering/Y\nleery/PTR\nLeesa/M\nLeese/M\nLeeuwenhoek/M\nLeeward/M\nleeward/S\nleeway/MS\nleftism/SM\nleftist/SM\nleftmost\nleftover/MS\nLeft/S\nleft/TRS\nleftward/S\nLefty/M\nlefty/SM\nlegacy/MS\nlegalese/MS\nlegalism/SM\nlegalistic\nlegality/MS\nlegalization/MS\nlegalize/DSG\nlegalized/U\nlegal/SY\nlegate/AXCNGSD\nlegatee/MS\nlegate's/C\nlegation/AMC\nlegato/SM\nlegendarily\nlegendary/S\nLegendre/M\nlegend/SM\nlegerdemain/SM\nLeger/SM\nlegged\nlegginess/MS\nlegging/MS\nleggy/PRT\nleghorn/SM\nLeghorn/SM\nlegibility/MS\nlegible\nlegibly\nlegionary/S\nlegionnaire/SM\nlegion/SM\nlegislate/SDXVNG\nlegislation/M\nlegislative/SY\nlegislator/SM\nlegislature/MS\nlegitimacy/MS\nlegitimate/SDNGY\nlegitimation/M\nlegitimatize/SDG\nlegitimization/MS\nlegitimize/RSDG\nlegit/S\nlegless\nlegman/M\nlegmen\nleg/MS\nLego/M\nLegra/M\nLegree/M\nlegroom/MS\nlegstraps\nlegume/SM\nleguminous\nlegwork/SM\nLehigh/M\nLehman/M\nLeia/M\nLeibniz/M\nLeicester/SM\nLeiden/M\nLeif/M\nLeigha/M\nLeigh/M\nLeighton/M\nLeilah/M\nLeila/M\nlei/MS\nLeipzig/M\nLeisha/M\nleisureliness/MS\nleisurely/P\nleisure/SDYM\nleisurewear\nleitmotif/SM\nleitmotiv/MS\nLek/M\nLelah/M\nLela/M\nLeland/M\nLelia/M\nLemaitre/M\nLemar/M\nLemke/M\nLem/M\nlemma/MS\nlemme/GJ\nLemmie/M\nlemming/M\nLemmy/M\nlemonade/SM\nlemon/GSDM\nlemony\nLemuel/M\nLemuria/M\nlemur/MS\nLena/M\nLenard/M\nLenci/M\nlender/M\nlend/SRGZ\nLenee/M\nLenette/M\nlengthener/M\nlengthen/GRD\nlengthily\nlengthiness/MS\nlength/MNYX\nlengths\nlengthwise\nlengthy/TRP\nlenience/S\nleniency/MS\nlenient/SY\nLeningrad/M\nLeninism/M\nLeninist\nLenin/M\nlenitive/S\nLenka/M\nLen/M\nLe/NM\nLenna/M\nLennard/M\nLennie/M\nLennon/M\nLenny/M\nLenoir/M\nLeno/M\nLenora/M\nLenore/M\nlens/SRDMJGZ\nlent/A\nlenticular\nlentil/SM\nlento/S\nLent/SMN\nLeodora/M\nLeoine/M\nLeola/M\nLeoline/M\nLeo/MS\nLeona/M\nLeonanie/M\nLeonard/M\nLeonardo/M\nLeoncavallo/M\nLeonelle/M\nLeonel/M\nLeone/M\nLeonerd/M\nLeonhard/M\nLeonidas/M\nLeonid/M\nLeonie/M\nleonine\nLeon/M\nLeonora/M\nLeonore/M\nLeonor/M\nLeontine/M\nLeontyne/M\nleopardess/SM\nleopard/MS\nleopardskin\nLeopold/M\nLeopoldo/M\nLeopoldville/M\nLeora/M\nleotard/MS\nleper/SM\nLepidus/M\nLepke/M\nleprechaun/SM\nleprosy/MS\nleprous\nlepta\nlepton/SM\nLepus/M\nLerner/M\nLeroi/M\nLeroy/M\nLesa/M\nlesbianism/MS\nlesbian/MS\nLeshia/M\nlesion/DMSG\nLesley/M\nLeslie/M\nLesli/M\nLesly/M\nLesotho/M\nlessee/MS\nlessen/GDS\nLesseps/M\nlesser\nlesses\nLessie/M\nlessing\nlesson/DMSG\nlessor/MS\nless/U\nLester/M\nlest/R\nLes/Y\nLesya/M\nLeta/M\nletdown/SM\nlethality/M\nlethal/YS\nLetha/M\nlethargic\nlethargically\nlethargy/MS\nLethe/M\nLethia/M\nLeticia/M\nLetisha/M\nlet/ISM\nLetitia/M\nLetizia/M\nLetta/M\nletterbox/S\nlettered/U\nletterer/M\nletterhead/SM\nlettering/M\nletter/JSZGRDM\nletterman/M\nLetterman/M\nlettermen\nletterpress/MS\nLettie/M\nLetti/M\nletting/S\nlettuce/SM\nLetty/M\nletup/MS\nleukemia/SM\nleukemic/S\nleukocyte/MS\nLeupold/M\nLevant/M\nleveeing\nlevee/SDM\nleveled/U\nleveler/M\nlevelheadedness/S\nlevelheaded/P\nleveling/U\nlevelness/SM\nlevel/STZGRDYP\nleverage/MGDS\nlever/SDMG\nLevesque/M\nLevey/M\nLeviathan\nleviathan/MS\nlevier/M\nLevi/MS\nLevine/M\nLevin/M\nlevitate/XNGDS\nlevitation/M\nLeviticus/M\nLevitt/M\nlevity/MS\nLev/M\nLevon/M\nLevy/M\nlevy/SRDZG\nlewdness/MS\nlewd/PYRT\nLewellyn/M\nLewes\nLewie/M\nLewinsky/M\nlewis/M\nLewis/M\nLewiss\nLew/M\nlex\nlexeme/MS\nlexical/Y\nlexicographer/MS\nlexicographic\nlexicographical/Y\nlexicography/SM\nlexicon/SM\nLexie/M\nLexi/MS\nLexine/M\nLexington/M\nLexus/M\nLexy/M\nLeyden/M\nLeyla/M\nLezley/M\nLezlie/M\nlg\nLhasa/SM\nLhotse/M\nliability/SAM\nliable/AP\nliaise/GSD\nliaison/SM\nLia/M\nLiam/M\nLiana/M\nLiane/M\nLian/M\nLianna/M\nLianne/M\nliar/MS\nlibation/SM\nlibbed\nLibbey/M\nLibbie/M\nLibbi/M\nlibbing\nLibby/M\nlibeler/M\nlibel/GMRDSZ\nlibelous/Y\nLiberace/M\nliberalism/MS\nliberality/MS\nliberalization/SM\nliberalized/U\nliberalize/GZSRD\nliberalizer/M\nliberalness/MS\nliberal/YSP\nliberate/NGDSCX\nliberationists\nliberation/MC\nliberator/SCM\nLiberia/M\nLiberian/S\nlibertarianism/M\nlibertarian/MS\nlibertine/MS\nliberty/MS\nlibidinal\nlibidinousness/M\nlibidinous/PY\nlibido/MS\nLib/M\nlib/MS\nlibrarian/MS\nlibrary/MS\nLibra/SM\nlibretoes\nlibretos\nlibrettist/MS\nlibretto/MS\nLibreville/M\nLibrium/M\nLibya/M\nLibyan/S\nlice/M\nlicensed/AU\nlicensee/SM\nlicense/MGBRSD\nlicenser/M\nlicenses/A\nlicensing/A\nlicensor/M\nlicentiate/MS\nlicentiousness/MS\nlicentious/PY\nLicha/M\nlichee's\nlichen/DMGS\nLichtenstein/M\nLichter/M\nlicit/Y\nlicked/U\nlickerish\nlicker/M\nlick/GRDSJ\nlicking/M\nlicorice/SM\nLida/M\nlidded\nlidding\nLidia/M\nlidless\nlid/MS\nlido/MS\nLieberman/M\nLiebfraumilch/M\nLiechtenstein/RMZ\nlied/MR\nlie/DRS\nLief/M\nliefs/A\nlief/TSR\nLiege/M\nliege/SR\nLie/M\nlien/SM\nlier/IMA\nlies/A\nLiesa/M\nlieu/SM\nlieut\nlieutenancy/MS\nlieutenant/SM\nLieut/M\nlifeblood/SM\nlifeboat/SM\nlifebuoy/S\nlifeforms\nlifeguard/MDSG\nlifelessness/SM\nlifeless/PY\nlifelikeness/M\nlifelike/P\nlifeline/SM\nlifelong\nlife/MZR\nlifer/M\nlifesaver/SM\nlifesaving/S\nlifespan/S\nlifestyle/S\nlifetaking\nlifetime/MS\nlifework/MS\nLIFO\nlifter/M\nlift/GZMRDS\nliftoff/MS\nligament/MS\nligand/MS\nligate/XSDNG\nligation/M\nligature/DSGM\nlight/ADSCG\nlighted/U\nlightener/M\nlightening/M\nlighten/ZGDRS\nlighter/CM\nlightered\nlightering\nlighters\nlightest\nlightface/SDM\nlightheaded\nlightheartedness/MS\nlighthearted/PY\nlighthouse/MS\nlighting/MS\nlightly\nlightness/MS\nlightning/SMD\nlightproof\nlight's\nlightship/SM\nlightweight/S\nligneous\nlignite/MS\nlignum\nlikability/MS\nlikableness/MS\nlikable/P\nlikeability's\nliked/E\nlikelihood/MSU\nlikely/UPRT\nlikeness/MSU\nliken/GSD\nliker/E\nliker's\nlikes/E\nlikest\nlike/USPBY\nlikewise\nliking/SM\nlilac/MS\nLilah/M\nLila/SM\nLilia/MS\nLiliana/M\nLiliane/M\nLilian/M\nLilith/M\nLiliuokalani/M\nLilla/M\nLille/M\nLillian/M\nLillie/M\nLilli/MS\nlilliputian/S\nLilliputian/SM\nLilliput/M\nLilllie/M\nLilly/M\nLil/MY\nLilongwe/M\nlilting/YP\nlilt/MDSG\nLilyan/M\nLily/M\nlily/MSD\nLima/M\nLimbaugh/M\nlimbered/U\nlimberness/SM\nlimber/RDYTGP\nlimbers/U\nlimbic\nlimbless\nLimbo\nlimbo/GDMS\nlimb/SGZRDM\nLimburger/SM\nlimeade/SM\nlime/DSMG\nlimekiln/M\nlimelight/DMGS\nlimerick/SM\nlimestone/SM\nlimitability\nlimitably\nlimitation/MCS\nlimit/CSZGRD\nlimitedly/U\nlimitedness/M\nlimited/PSY\nlimiter/M\nlimiting/S\nlimitlessness/SM\nlimitless/PY\nlimit's\nlimn/GSD\nLimoges/M\nlimo/S\nlimousine/SM\nlimper/M\nlimpet/SM\nlimpidity/MS\nlimpidness/SM\nlimpid/YP\nlimpness/MS\nLimpopo/M\nlimp/SGTPYRD\nLi/MY\nlimy/TR\nlinage/MS\nLina/M\nlinchpin/MS\nLinc/M\nLincoln/SM\nLinda/M\nLindbergh/M\nLindberg/M\nlinden/MS\nLindholm/M\nLindie/M\nLindi/M\nLind/M\nLindon/M\nLindquist/M\nLindsay/M\nLindsey/M\nLindstrom/M\nLindsy/M\nLindy/M\nline/AGDS\nlineage/SM\nlineal/Y\nLinea/M\nlineament/MS\nlinearity/MS\nlinearize/SDGNB\nlinear/Y\nlinebacker/SM\nlined/U\nlinefeed\nLinell/M\nlineman/M\nlinemen\nlinen/SM\nliner/SM\nline's\nlinesman/M\nlinesmen\nLinet/M\nLinette/M\nlineup/S\nlingerer/M\nlingerie/SM\nlingering/Y\nlinger/ZGJRD\nlingoes\nlingo/M\nlingual/SY\nlingua/M\nlinguine\nlinguini's\nlinguistically\nlinguistic/S\nlinguistics/M\nlinguist/SM\nling/ZR\nliniment/MS\nlining/SM\nlinkable\nlinkage/SM\nlinked/A\nlinker/S\nlinking/S\nLink/M\nlink's\nlinkup/S\nlink/USGD\nLin/M\nLinnaeus/M\nLinnea/M\nLinnell/M\nLinnet/M\nlinnet/SM\nLinnie/M\nLinn/M\nLinoel/M\nlinoleum/SM\nlino/M\nLinotype/M\nlinseed/SM\nlintel/SM\nlinter/M\nLinton/M\nlint/SMR\nlinty/RST\nLinus/M\nLinux/M\nLinwood/M\nLinzy/M\nLionello/M\nLionel/M\nlioness/SM\nlionhearted\nlionization/SM\nlionizer/M\nlionize/ZRSDG\nLion/M\nlion/MS\nlipase/M\nlipid/MS\nlip/MS\nliposuction/S\nlipped\nlipper\nLippi/M\nlipping\nLippmann/M\nlippy/TR\nlipread/GSRJ\nLipschitz/M\nLipscomb/M\nlipstick/MDSG\nLipton/M\nliq\nliquefaction/SM\nliquefier/M\nliquefy/DRSGZ\nliqueur/DMSG\nliquidate/GNXSD\nliquidation/M\nliquidator/SM\nliquidity/SM\nliquidizer/M\nliquidize/ZGSRD\nliquidness/M\nliquid/SPMY\nliquorice/SM\nliquorish\nliquor/SDMG\nlira/M\nLira/M\nlire\nLisabeth/M\nLisa/M\nLisbeth/M\nLisbon/M\nLise/M\nLisetta/M\nLisette/M\nLisha/M\nLishe/M\nLisle/M\nlisle/SM\nlisper/M\nlisp/MRDGZS\nLissajous/M\nLissa/M\nLissie/M\nLissi/M\nLiss/M\nlissomeness/M\nlissome/P\nlissomness/M\nLissy/M\nlisted/U\nlistener/M\nlisten/ZGRD\nListerine/M\nlister/M\nLister/M\nlisting/M\nlist/JMRDNGZXS\nlistlessness/SM\nlistless/PY\nListon/M\nLiszt/M\nLita/M\nlitany/MS\nlitchi/SM\nliteracy/MS\nliteralism/M\nliteralistic\nliteralness/MS\nliteral/PYS\nliterariness/SM\nliterary/P\nliterate/YNSP\nliterati\nliteration/M\nliterature/SM\nliter/M\nlite/S\nlitheness/SM\nlithe/PRTY\nlithesome\nlithium/SM\nlithograph/DRMGZ\nlithographer/M\nlithographic\nlithographically\nlithographs\nlithography/MS\nlithology/M\nlithosphere/MS\nlithospheric\nLithuania/M\nLithuanian/S\nlitigant/MS\nlitigate/NGXDS\nlitigation/M\nlitigator/SM\nlitigiousness/MS\nlitigious/PY\nlitmus/SM\nlitotes/M\nlit/RZS\nlitt<74>rateur/S\nlitterbug/SM\nlitter/SZGRDM\nLittle/M\nlittleneck/M\nlittleness/SM\nlittle/RSPT\nLittleton/M\nLitton/M\nlittoral/S\nliturgical/Y\nliturgic/S\nliturgics/M\nliturgist/MS\nliturgy/SM\nLiuka/M\nlivability/MS\nlivableness/M\nlivable/U\nlivably\nLiva/M\nlived/A\nlivelihood/SM\nliveliness/SM\nlivelong/S\nlively/RTP\nliveness/M\nliven/SDG\nliver/CSGD\nliveried\nliverish\nLivermore/M\nLiverpool/M\nLiverpudlian/MS\nliver's\nliverwort/SM\nliverwurst/SM\nlivery/CMS\nliveryman/MC\nliverymen/C\nlives/A\nlives's\nlivestock/SM\nlive/YHZTGJDSRPB\nLivia/M\nlividness/M\nlivid/YP\nlivingness/M\nLivingstone/M\nLivingston/M\nliving/YP\nLiv/M\nLivonia/M\nLivvie/M\nLivvy/M\nLivvyy/M\nLivy/M\nLizabeth/M\nLiza/M\nlizard/MS\nLizbeth/M\nLizette/M\nLiz/M\nLizzie/M\nLizzy/M\nl/JGVXT\nLjubljana/M\nLL\nllama/SM\nllano/SM\nLLB\nll/C\nLLD\nLlewellyn/M\nLloyd/M\nLlywellyn/M\nLNG\nlo\nloadable\nloaded/A\nloader/MU\nloading/MS\nload's/A\nloads/A\nloadstar's\nloadstone's\nload/SURDZG\nloafer/M\nLoafer/S\nloaf/SRDMGZ\nloam/SMDG\nloamy/RT\nloaner/M\nloaning/M\nloan/SGZRDMB\nloansharking/S\nloanword/S\nloathe\nloather/M\nloathing/M\nloath/JPSRDYZG\nloathness/M\nloathsomeness/MS\nloathsome/PY\nloaves/M\nLobachevsky/M\nlobar\nlobbed\nlobber/MS\nlobbing\nlobby/GSDM\nlobbyist/MS\nlobe/SM\nlob/MDSG\nlobotomist\nlobotomize/GDS\nlobotomy/MS\nlobster/MDGS\nlobularity\nlobular/Y\nlobule/SM\nlocale/MS\nlocalisms\nlocality/MS\nlocalization/MS\nlocalized/U\nlocalizer/M\nlocalizes/U\nlocalize/ZGDRS\nlocal/SGDY\nlocatable\nlocate/AXESDGN\nlocater/M\nlocational/Y\nlocation/EMA\nlocative/S\nlocator's\nLochinvar/M\nloch/M\nlochs\nloci/M\nlockable\nLockean/M\nlocked/A\nLocke/M\nlocker/SM\nlocket/SM\nLockhart/M\nLockheed/M\nLockian/M\nlocking/S\nlockjaw/SM\nLock/M\nlocknut/M\nlockout/MS\nlock's\nlocksmithing/M\nlocksmith/MG\nlocksmiths\nlockstep/S\nlock/UGSD\nlockup/MS\nLockwood/M\nlocomotion/SM\nlocomotive/YMS\nlocomotor\nlocomotory\nloco/SDMG\nlocoweed/MS\nlocus/M\nlocust/SM\nlocution/MS\nlode/SM\nlodestar/MS\nlodestone/MS\nlodged/E\nlodge/GMZSRDJ\nLodge/M\nlodgepole\nlodger/M\nlodges/E\nlodging/M\nlodgment/M\nLodovico/M\nLodowick/M\nLodz\nLoeb/M\nLoella/M\nLoewe/M\nLoewi/M\nlofter/M\nloftily\nloftiness/SM\nloft/SGMRD\nlofty/PTR\nloganberry/SM\nLogan/M\nlogarithmic\nlogarithmically\nlogarithm/MS\nlogbook/MS\nloge/SMNX\nlogged/U\nloggerhead/SM\nlogger/SM\nloggia/SM\nlogging/MS\nlogicality/MS\nlogicalness/M\nlogical/SPY\nlogician/SM\nlogic/SM\nlogin/S\nlogion/M\nlogistical/Y\nlogistic/MS\nlogjam/SM\nLOGO\nlogo/SM\nlogotype/MS\nlogout\nlogrolling/SM\nlog's/K\nlog/SM\nlogy/RT\nLohengrin/M\nloincloth/M\nloincloths\nloin/SM\nLoire/M\nLoise/M\nLois/M\nloiterer/M\nloiter/RDJSZG\nLoki/M\nLola/M\nLoleta/M\nLolita/M\nloller/M\nlollipop/MS\nloll/RDGS\nLolly/M\nlolly/SM\nLombardi/M\nLombard/M\nLombardy/M\nLomb/M\nLome\nLona/M\nLondonderry/M\nLondoner/M\nLondon/RMZ\nLonee/M\nloneliness/SM\nlonely/TRP\nloneness/M\nlone/PYZR\nloner/M\nlonesomeness/MS\nlonesome/PSY\nlongboat/MS\nlongbow/SM\nlonged/K\nlongeing\nlonger/K\nlongevity/MS\nLongfellow/M\nlonghair/SM\nlonghand/SM\nlonghorn/SM\nlonging/MY\nlongish\nlongitude/MS\nlongitudinal/Y\nlong/JGTYRDPS\nLong/M\nlongness/M\nlongshoreman/M\nlongshoremen\nlongsighted\nlongs/K\nlongstanding\nLongstreet/M\nlongsword\nlongterm\nlongtime\nLongueuil/M\nlongueur/SM\nlongways\nlongword/SM\nLoni/M\nLon/M\nLonna/M\nLonnard/M\nLonnie/M\nLonni/M\nLonny/M\nloofah/M\nloofahs\nlookahead\nlookalike/S\nlooker/M\nlook/GZRDS\nlookout/MS\nlookup/SM\nlooming/M\nLoomis/M\nloom/MDGS\nloon/MS\nloony/SRT\nlooper/M\nloophole/MGSD\nloop/MRDGS\nloopy/TR\nloosed/U\nlooseleaf\nloosener/M\nlooseness/MS\nloosen/UDGS\nloose/SRDPGTY\nlooses/U\nloosing/M\nlooter/M\nloot/MRDGZS\nloper/M\nlope/S\nLopez/M\nlopped\nlopper/MS\nlopping\nlop/SDRG\nlopsidedness/SM\nlopsided/YP\nloquaciousness/MS\nloquacious/YP\nloquacity/SM\nLoraine/M\nLorain/M\nLoralee/M\nLoralie/M\nLoralyn/M\nLora/M\nLorant/M\nlording/M\nlordliness/SM\nlordly/PTR\nLord/MS\nlord/MYDGS\nlordship/SM\nLordship/SM\nLoree/M\nLoreen/M\nLorelei/M\nLorelle/M\nlore/MS\nLorena/M\nLorene/M\nLoren/SM\nLorentzian/M\nLorentz/M\nLorenza/M\nLorenz/M\nLorenzo/M\nLoretta/M\nLorette/M\nlorgnette/SM\nLoria/M\nLorianna/M\nLorianne/M\nLorie/M\nLorilee/M\nLorilyn/M\nLori/M\nLorinda/M\nLorine/M\nLorin/M\nloris/SM\nLorita/M\nlorn\nLorna/M\nLorne/M\nLorraine/M\nLorrayne/M\nLorre/M\nLorrie/M\nLorri/M\nLorrin/M\nlorryload/S\nLorry/M\nlorry/SM\nLory/M\nLos\nloser/M\nlose/ZGJBSR\nlossage\nlossless\nloss/SM\nlossy/RT\nlost/P\nLothaire/M\nLothario/MS\nlotion/MS\nLot/M\nlot/MS\nLotta/M\nlotted\nLotte/M\nlotter\nlottery/MS\nLottie/M\nLotti/M\nlotting\nLott/M\nlotto/MS\nLotty/M\nlotus/SM\nlouden/DG\nloudhailer/S\nloudly/RT\nloudmouth/DM\nloudmouths\nloudness/MS\nloudspeaker/SM\nloudspeaking\nloud/YRNPT\nLouella/M\nLouie/M\nLouisa/M\nLouise/M\nLouisette/M\nLouisiana/M\nLouisianan/S\nLouisianian/S\nLouis/M\nLouisville/M\nLou/M\nlounger/M\nlounge/SRDZG\nLourdes/M\nlour/GSD\nlouse/CSDG\nlouse's\nlousewort/M\nlousily\nlousiness/MS\nlousy/PRT\nloutishness/M\nloutish/YP\nLoutitia/M\nlout/SGMD\nlouver/DMS\nL'Ouverture\nLouvre/M\nlovableness/MS\nlovable/U\nlovably\nlovebird/SM\nlovechild\nLovecraft/M\nlove/DSRMYZGJB\nloved/U\nLovejoy/M\nLovelace/M\nLoveland/M\nlovelessness/M\nloveless/YP\nlovelies\nlovelinesses\nloveliness/UM\nLovell/M\nlovelornness/M\nlovelorn/P\nlovely/URPT\nLove/M\nlovemaking/SM\nlover/YMG\nlovesick\nlovestruck\nlovingly\nlovingness/M\nloving/U\nlowborn\nlowboy/SM\nlowbrow/MS\nlowdown/S\nLowell/M\nLowe/M\nlowercase/GSD\nlower/DG\nlowermost\nLowery/M\nlowish\nlowland/RMZS\nLowlands/M\nlowlife/SM\nlowlight/MS\nlowliness/MS\nlowly/PTR\nlowness/MS\nlow/PDRYSZTG\nLowrance/M\nlox/MDSG\nloyaler\nloyalest\nloyal/EY\nloyalism/SM\nloyalist/SM\nloyalty/EMS\nLoyang/M\nLoydie/M\nLoyd/M\nLoy/M\nLoyola/M\nlozenge/SDM\nLP\nLPG\nLPN/S\nLr\nls\nl's\nL's\nLSD\nltd\nLtd/M\nLt/M\nLuanda/M\nLuann/M\nluau/MS\nlubber/YMS\nLubbock/M\nlube/DSMG\nlubricant/SM\nlubricate/VNGSDX\nlubrication/M\nlubricator/MS\nlubricious/Y\nlubricity/SM\nLubumbashi/M\nLucais/M\nLuca/MS\nLuce/M\nlucent/Y\nLucerne/M\nLucho/M\nLucia/MS\nLuciana/M\nLucian/M\nLuciano/M\nlucidity/MS\nlucidness/MS\nlucid/YP\nLucie/M\nLucien/M\nLucienne/M\nLucifer/M\nLucila/M\nLucile/M\nLucilia/M\nLucille/M\nLuci/MN\nLucina/M\nLucinda/M\nLucine/M\nLucio/M\nLucita/M\nLucite/MS\nLucius/M\nluck/GSDM\nluckier/U\nluckily/U\nluckiness/UMS\nluckless\nLucknow/M\nLucky/M\nlucky/RSPT\nlucrativeness/SM\nlucrative/YP\nlucre/MS\nLucretia/M\nLucretius/M\nlucubrate/GNSDX\nlucubration/M\nLucy/M\nLuddite/SM\nLudhiana/M\nludicrousness/SM\nludicrous/PY\nLudlow/M\nLudmilla/M\nludo/M\nLudovico/M\nLudovika/M\nLudvig/M\nLudwig/M\nLuella/M\nLuelle/M\nluff/GSDM\nLufthansa/M\nLuftwaffe/M\nluge/MC\nLuger/M\nluggage/SM\nlugged\nlugger/SM\nlugging\nLugosi/M\nlug/RS\nlugsail/SM\nlugubriousness/MS\nlugubrious/YP\nLuigi/M\nLuisa/M\nLuise/M\nLuis/M\nLukas/M\nLuke/M\nlukewarmness/SM\nlukewarm/PY\nLula/M\nLulita/M\nlullaby/GMSD\nlull/SDG\nlulu/M\nLulu/M\nLu/M\nlumbago/SM\nlumbar/S\nlumberer/M\nlumbering/M\nlumberjack/MS\nlumberman/M\nlumbermen\nlumber/RDMGZSJ\nlumberyard/MS\nlumen/M\nLumi<6D>re/M\nluminance/M\nluminary/MS\nluminescence/SM\nluminescent\nluminosity/MS\nluminousness/M\nluminous/YP\nlummox/MS\nlumper/M\nlumpiness/MS\nlumpishness/M\nlumpish/YP\nlump/SGMRDN\nlumpy/TPR\nlunacy/MS\nLuna/M\nlunar/S\nlunary\nlunate/YND\nlunatic/S\nlunation/M\nluncheonette/SM\nluncheon/SMDG\nluncher/M\nlunch/GMRSD\nlunchpack\nlunchroom/MS\nlunchtime/MS\nLundberg/M\nLund/M\nLundquist/M\nlune/M\nlunge/MS\nlunger/M\nlungfish/SM\nlungful\nlung/SGRDM\nlunkhead/SM\nLupe/M\nlupine/SM\nLupus/M\nlupus/SM\nLura/M\nlurcher/M\nlurch/RSDG\nlure/DSRG\nlurer/M\nLurette/M\nlurex\nLuria/M\nluridness/SM\nlurid/YP\nlurker/M\nlurk/GZSRD\nLurleen/M\nLurlene/M\nLurline/M\nLusaka/M\nLusa/M\nlusciousness/MS\nluscious/PY\nlushness/MS\nlush/YSRDGTP\nLusitania/M\nluster/GDM\nlustering/M\nlusterless\nlustfulness/M\nlustful/PY\nlustily\nlustiness/MS\nlust/MRDGZS\nlustrousness/M\nlustrous/PY\nlusty/PRT\nlutanist/MS\nlute/DSMG\nlutenist/MS\nLutero/M\nlutetium/MS\nLutheranism/MS\nLutheran/SM\nLuther/M\nluting/M\nLutz\nLuxembourgian\nLuxembourg/RMZ\nLuxemburg's\nluxe/MS\nluxuriance/MS\nluxuriant/Y\nluxuriate/GNSDX\nluxuriation/M\nluxuriousness/SM\nluxurious/PY\nluxury/MS\nLuz/M\nLuzon/M\nL'vov\nLyallpur/M\nlyceum/MS\nlychee's\nlycopodium/M\nLycra/S\nLycurgus/M\nLyda/M\nLydia/M\nLydian/S\nLydie/M\nLydon/M\nlye/JSMG\nLyell/M\nlying/Y\nLyle/M\nLyly/M\nLyman/M\nLyme/M\nlymphatic/S\nlymph/M\nlymphocyte/SM\nlymphoid\nlymphoma/MS\nlymphs\nLy/MY\nLynchburg/M\nlyncher/M\nlynching/M\nLynch/M\nlynch/ZGRSDJ\nLynda/M\nLyndell/M\nLyndel/M\nLynde/M\nLyndon/M\nLyndsay/M\nLyndsey/M\nLyndsie/M\nLyndy/M\nLynea/M\nLynelle/M\nLynette/M\nLynett/M\nLyn/M\nLynna/M\nLynnea/M\nLynnelle/M\nLynnell/M\nLynne/M\nLynnet/M\nLynnette/M\nLynnett/M\nLynn/M\nLynsey/M\nlynx/MS\nLyon/SM\nLyra/M\nlyrebird/MS\nlyre/SM\nlyricalness/M\nlyrical/YP\nlyricism/SM\nlyricist/SM\nlyric/S\nLysenko/M\nlysine/M\nLysistrata/M\nLysol/M\nLyssa/M\nLyX/M\nMA\nMaalox/M\nma'am\nMabelle/M\nMabel/M\nMable/M\nMab/M\nmacabre/Y\nmacadamize/SDG\nmacadam/SM\nMacao/M\nmacaque/SM\nmacaroni/SM\nmacaroon/MS\nMacarthur/M\nMacArthur/M\nMacaulay/M\nmacaw/SM\nMacbeth/M\nMaccabees/M\nMaccabeus/M\nMacdonald/M\nMacDonald/M\nMacDraw/M\nMacedonia/M\nMacedonian/S\nMacedon/M\nmace/MS\nMace/MS\nmacerate/DSXNG\nmaceration/M\nmacer/M\nMacgregor/M\nMacGregor/M\nmachete/SM\nMachiavellian/S\nMachiavelli/M\nmachinate/SDXNG\nmachination/M\nmachinelike\nmachine/MGSDB\nmachinery/SM\nmachinist/MS\nmachismo/SM\nMach/M\nmacho/S\nMachs\nMacias/M\nMacintosh/M\nMacIntosh/M\nmacintosh's\nMackenzie/M\nMacKenzie/M\nmackerel/SM\nMackinac/M\nMackinaw\nmackinaw/SM\nmackintosh/SM\nmack/M\nMack/M\nMacLeish/M\nMacmillan/M\nMacMillan/M\nMacon/SM\nMacPaint/M\nmacram<61>/S\nmacrobiotic/S\nmacrobiotics/M\nmacrocosm/MS\nmacrodynamic\nmacroeconomic/S\nmacroeconomics/M\nmacromolecular\nmacromolecule/SM\nmacron/MS\nmacrophage/SM\nmacroscopic\nmacroscopically\nmacrosimulation\nmacro/SM\nmacrosocioeconomic\nMac/SGMD\nmac/SGMDR\nMacy/M\nMadagascan/SM\nMadagascar/M\nMadalena/M\nMadalyn/M\nMada/M\nmadame/M\nMadame/MS\nmadam/SM\nmadcap/S\nMaddalena/M\nmadded\nmadden/GSD\nmaddening/Y\nMadden/M\nmadder/MS\nmaddest\nMaddie/M\nMaddi/M\nmadding\nMaddox/M\nMaddy/M\nmade/AU\nMadeira/SM\nMadelaine/M\nMadeleine/M\nMadelena/M\nMadelene/M\nMadelina/M\nMadeline/M\nMadelin/M\nMadella/M\nMadelle/M\nMadel/M\nMadelon/M\nMadelyn/M\nmademoiselle/MS\nMadge/M\nmadhouse/SM\nMadhya/M\nMadison/M\nMadlen/M\nMadlin/M\nmadman/M\nmadmen\nmadness/SM\nMadonna/MS\nmad/PSY\nMadras\nmadras/SM\nMadrid/M\nmadrigal/MSG\nMadsen/M\nMadurai/M\nmadwoman/M\nmadwomen\nMady/M\nMaegan/M\nMaelstrom/M\nmaelstrom/SM\nMae/M\nmaestro/MS\nMaeterlinck/M\nMafia/MS\nmafia/S\nmafiosi\nmafioso/M\nMafioso/S\nMAG\nmagazine/DSMG\nMagdaia/M\nMagdalena/M\nMagdalene/M\nMagdalen/M\nMagda/M\nMagellanic\nMagellan/M\nmagenta/MS\nmagged\nMaggee/M\nMaggie/M\nMaggi/M\nmagging\nmaggot/MS\nmaggoty/RT\nMaggy/M\nmagi\nmagical/Y\nmagician/MS\nmagicked\nmagicking\nmagic/SM\nMagill/M\nMagi/M\nMaginot/M\nmagisterial/Y\nmagistracy/MS\nmagistrate/MS\nMag/M\nmagma/SM\nmagnanimity/SM\nmagnanimosity\nmagnanimous/PY\nmagnate/SM\nmagnesia/MS\nmagnesite/M\nmagnesium/SM\nmagnetically\nmagnetic/S\nmagnetics/M\nmagnetism/SM\nmagnetite/SM\nmagnetizable\nmagnetization/ASCM\nmagnetize/CGDS\nmagnetized/U\nmagnetodynamics\nmagnetohydrodynamical\nmagnetohydrodynamics/M\nmagnetometer/MS\nmagneto/MS\nmagnetosphere/M\nmagnetron/M\nmagnet/SM\nmagnification/M\nmagnificence/SM\nmagnificent/Y\nmagnified/U\nmagnify/DRSGNXZ\nmagniloquence/MS\nmagniloquent\nMagnitogorsk/M\nmagnitude/SM\nmagnolia/SM\nMagnum\nmagnum/SM\nMagnuson/M\nMagog/M\nMagoo/M\nmagpie/SM\nMagritte/M\nMagruder/M\nmag/S\nMagsaysay/M\nMaguire/SM\nMagus/M\nMagyar/MS\nMahabharata\nMahala/M\nMahalia/M\nmaharajah/M\nmaharajahs\nmaharanee's\nmaharani/MS\nMaharashtra/M\nmaharishi/SM\nmahatma/SM\nMahavira/M\nMahayana/M\nMahayanist\nMahdi/M\nMahfouz/M\nMahican/SM\nmahjong's\nMahler/M\nMahmoud/M\nMahmud/M\nmahogany/MS\nMahomet's\nmahout/SM\nMaia/M\nMaible/M\nmaidenhair/MS\nmaidenhead/SM\nmaidenhood/SM\nmaidenly/P\nmaiden/YM\nmaidservant/MS\nmaid/SMNX\nmaier\nMaier/M\nMaiga/M\nMaighdiln/M\nMaigret/M\nmailbag/MS\nmailbox/MS\nmail/BSJGZMRD\nmailer/M\nMailer/M\nMaillol/M\nmaillot/SM\nmailman/M\nmailmen\nMaiman/M\nmaimedness/M\nmaimed/P\nmaimer/M\nMaimonides/M\nMai/MR\nmaim/SGZRD\nmainbrace/M\nMaine/MZR\nMainer/M\nmainframe/MS\nmainlander/M\nmainland/SRMZ\nmainliner/M\nmainline/RSDZG\nmainly\nmainmast/SM\nmain/SA\nmainsail/SM\nmains/M\nmainspring/SM\nmainstay/MS\nmainstream/DRMSG\nmaintainability\nmaintainable/U\nmaintain/BRDZGS\nmaintained/U\nmaintainer/M\nmaintenance/SM\nmaintop/SM\nmaiolica's\nMaire/M\nMair/M\nMaisey/M\nMaisie/M\nmaisonette/MS\nMaison/M\nMaitilde/M\nmaize/MS\nMaj\nMaje/M\nmajestic\nmajestically\nmajesty/MS\nMajesty/MS\nmajolica/SM\nMajorca/M\nmajor/DMGS\nmajordomo/S\nmajorette/SM\nmajority/SM\nMajor/M\nMajuro/M\nmakable\nMakarios/M\nmakefile/S\nmakeover/S\nMaker/M\nmaker/SM\nmakeshift/S\nmake/UGSA\nmakeup/MS\nmaking/SM\nMalabar/M\nMalabo/M\nMalacca/M\nMalachi/M\nmalachite/SM\nmaladapt/DV\nmaladjust/DLV\nmaladjustment/MS\nmaladministration\nmaladroitness/MS\nmaladroit/YP\nmalady/MS\nMalagasy/M\nmalaise/SM\nMala/M\nMalamud/M\nmalamute/SM\nMalanie/M\nmalaprop\nmalapropism/SM\nMalaprop/M\nmalarial\nmalaria/MS\nmalarious\nmalarkey/SM\nmalathion/S\nMalawian/S\nMalawi/M\nMalayalam/M\nMalaya/M\nMalayan/MS\nMalaysia/M\nMalaysian/S\nMalay/SM\nMalchy/M\nMalcolm/M\nmalcontentedness/M\nmalcontented/PY\nmalcontent/SMD\nMaldive/SM\nMaldivian/S\nMaldonado/M\nmaledict\nmalediction/MS\nmalefaction/MS\nmalefactor/MS\nmalefic\nmaleficence/MS\nmaleficent\nMale/M\nMalena/M\nmaleness/MS\nmale/PSM\nmalevolence/S\nmalevolencies\nmalevolent/Y\nmalfeasance/SM\nmalfeasant\nmalformation/MS\nmalformed\nmalfunction/SDG\nMalia/M\nMalian/S\nMalibu/M\nmalice/MGSD\nmaliciousness/MS\nmalicious/YU\nmalignancy/SM\nmalignant/YS\nmalign/GSRDYZ\nmalignity/MS\nMali/M\nMalina/M\nMalinda/M\nMalinde/M\nmalingerer/M\nmalinger/GZRDS\nMalinowski/M\nMalissa/M\nMalissia/M\nmallard/SM\nMallarm<72>/M\nmalleability/SM\nmalleableness/M\nmalleable/P\nmallet/MS\nMallissa/M\nMallorie/M\nMallory/M\nmallow/MS\nmall/SGMD\nMal/M\nmalnourished\nmalnutrition/SM\nmalocclusion/MS\nmalodorous\nMalone/M\nMalorie/M\nMalory/M\nmalposed\nmalpractice/SM\nMalraux/M\nMalta/M\nmalted/S\nMaltese\nMalthusian/S\nMalthus/M\nmalting/M\nmaltose/SM\nmaltreat/GDSL\nmaltreatment/S\nmalt/SGMD\nmalty/RT\nMalva/M\nMalvina/M\nMalvin/M\nMalynda/M\nmama/SM\nmamba/SM\nmambo/GSDM\nMame/M\nMamet/M\nma/MH\nMamie/M\nmammalian/SM\nmammal/SM\nmammary\nmamma's\nmammogram/S\nmammography/S\nMammon's\nmammon/SM\nmammoth/M\nmammoths\nmammy/SM\nMamore/M\nmanacle/SDMG\nmanageability/S\nmanageableness\nmanageable/U\nmanaged/U\nmanagement/SM\nmanageress/M\nmanagerial/Y\nmanager/M\nmanagership/M\nmanage/ZLGRSD\nManagua/M\nManama/M\nma<6D>ana/M\nmananas\nManasseh/M\nmanatee/SM\nManaus's\nManchester/M\nManchu/MS\nManchuria/M\nManchurian/S\nMancini/M\nmanciple/M\nMancunian/MS\nmandala/SM\nMandalay/M\nManda/M\nmandamus/GMSD\nMandarin\nmandarin/MS\nmandate/SDMG\nmandatory/S\nMandela\nMandelbrot/M\nMandel/M\nmandible/MS\nmandibular\nMandie/M\nMandi/M\nMandingo/M\nmandolin/MS\nmandrake/MS\nmandrel/SM\nmandrill/SM\nMandy/M\nman<61>ge/GSD\nmane/MDS\nManet/M\nmaneuverability/MS\nmaneuverer/M\nmaneuver/MRDSGB\nManfred/M\nmanful/Y\nmanganese/MS\nmange/GMSRDZ\nmanger/M\nmanginess/S\nmangler/M\nmangle/RSDG\nmangoes\nmango/M\nmangrove/MS\nmangy/PRT\nmanhandle/GSD\nManhattan/SM\nmanhole/MS\nmanhood/MS\nmanhunt/SM\nmaniacal/Y\nmaniac/SM\nmania/SM\nmanically\nManichean/M\nmanic/S\nmanicure/MGSD\nmanicurist/SM\nmanifestation/SM\nmanifesto/GSDM\nmanifest/YDPGS\nmanifolder/M\nmanifold/GPYRDMS\nmanifoldness/M\nmanikin/MS\nManila/MS\nmanila/S\nmanilla's\nMani/M\nmanioc/SM\nmanipulability\nmanipulable\nmanipulate/SDXBVGN\nmanipulative/PM\nmanipulator/MS\nmanipulatory\nManitoba/M\nManitoulin/M\nManitowoc/M\nmankind/M\nMankowski/M\nManley/M\nmanlike\nmanliness/SM\nmanliness's/U\nmanly/URPT\nmanna/MS\nmanned/U\nmannequin/MS\nmannered/U\nmannerism/SM\nmannerist/M\nmannerliness/MU\nmannerly/UP\nmanner/SDYM\nMann/GM\nMannheim/M\nMannie/M\nmannikin's\nManning/M\nmanning/U\nmannishness/SM\nmannish/YP\nManny/M\nManolo/M\nMano/M\nmanometer/SM\nManon/M\nmanorial\nmanor/MS\nmanpower/SM\nmanqu<71>/M\nman's\nmansard/SM\nmanservant/M\nmanse/XNM\nMansfield/M\nmansion/M\nmanslaughter/SM\nMan/SM\nManson/M\nmans/S\nmanta/MS\nMantegna/M\nmantelpiece/MS\nmantel/SM\nmantes\nmantilla/MS\nmantissa/SM\nmantis/SM\nmantle/ESDG\nMantle/M\nmantle's\nmantling/M\nmantra/MS\nmantrap/SM\nmanual/SMY\nManuela/M\nManuel/M\nmanufacture/JZGDSR\nmanufacturer/M\nmanumission/MS\nmanumit/S\nmanumitted\nmanumitting\nmanure/RSDMZG\nmanuscript/MS\nman/USY\nManville/M\nManx\nmany\nManya/M\nMaoism/MS\nMaoist/S\nMao/M\nMaori/SM\nMaplecrest/M\nmaple/MS\nmapmaker/S\nmappable\nmapped/UA\nmapper/S\nmapping/MS\nMapplethorpe/M\nmaps/AU\nmap/SM\nMaputo/M\nMarabel/M\nmarabou/MS\nmarabout's\nMaracaibo/M\nmaraca/MS\nMara/M\nmaraschino/SM\nMarathi\nmarathoner/M\nMarathon/M\nmarathon/MRSZ\nMarat/M\nmarauder/M\nmaraud/ZGRDS\nmarbleize/GSD\nmarble/JRSDMG\nmarbler/M\nmarbling/M\nMarceau/M\nMarcela/M\nMarcelia/M\nMarcelino/M\nMarcella/M\nMarcelle/M\nMarcellina/M\nMarcelline/M\nMarcello/M\nMarcellus/M\nMarcel/M\nMarcelo/M\nMarchall/M\nMarchelle/M\nmarcher/M\nmarchioness/SM\nMarch/MS\nmarch/RSDZG\nMarcia/M\nMarciano/M\nMarcie/M\nMarcile/M\nMarcille/M\nMarci/M\nMarc/M\nMarconi/M\nMarco/SM\nMarcotte/M\nMarcus/M\nMarcy/M\nMardi/SM\nMarduk/M\nMareah/M\nmare/MS\nMarena/M\nMaren/M\nMaressa/M\nMargalit/M\nMargalo/M\nMarga/M\nMargareta/M\nMargarete/M\nMargaretha/M\nMargarethe/M\nMargaret/M\nMargaretta/M\nMargarette/M\nmargarine/MS\nMargarita/M\nmargarita/SM\nMargarito/M\nMargaux/M\nMargeaux/M\nMarge/M\nMargery/M\nMarget/M\nMargette/M\nMargie/M\nMargi/M\nmarginalia\nmarginality\nmarginalization\nmarginalize/SDG\nmarginal/YS\nmargin/GSDM\nMargit/M\nMargo/M\nMargot/M\nMargrethe/M\nMargret/M\nMarguerite/M\nMargy/M\nmariachi/SM\nmaria/M\nMaria/M\nMariam/M\nMariana/SM\nMarian/MS\nMarianna/M\nMarianne/M\nMariann/M\nMariano/M\nMaribelle/M\nMaribel/M\nMaribeth/M\nMaricela/M\nMarice/M\nMaridel/M\nMarieann/M\nMariejeanne/M\nMariele/M\nMarielle/M\nMariellen/M\nMariel/M\nMarie/M\nMarietta/M\nMariette/M\nMarigold/M\nmarigold/MS\nMarijn/M\nMarijo/M\nmarijuana/SM\nMarika/M\nMarilee/M\nMarilin/M\nMarillin/M\nMarilyn/M\nmarimba/SM\nMari/MS\nmarinade/MGDS\nMarina/M\nmarina/MS\nmarinara/SM\nmarinate/NGXDS\nmarination/M\nmariner/M\nMarine/S\nmarine/ZRS\nMarin/M\nMarinna/M\nMarino/M\nMario/M\nmarionette/MS\nMarion/M\nMariquilla/M\nMarisa/M\nMariska/M\nMarisol/M\nMarissa/M\nMaritain/M\nmarital/Y\nMarita/M\nmaritime/R\nMaritsa/M\nMaritza/M\nMariupol/M\nMarius/M\nMariya/M\nMarja/M\nMarje/M\nMarjie/M\nMarji/M\nMarj/M\nmarjoram/SM\nMarjorie/M\nMarjory/M\nMarjy/M\nMarkab/M\nmarkdown/SM\nmarked/AU\nmarkedly\nmarker/M\nmarketability/SM\nmarketable/U\nMarketa/M\nmarketeer/S\nmarketer/M\nmarket/GSMRDJBZ\nmarketing/M\nmarketplace/MS\nmark/GZRDMBSJ\nMarkham/M\nmarking/M\nMarkism/M\nmarkkaa\nmarkka/M\nMark/MS\nMarkos\nMarkov\nMarkovian\nMarkovitz/M\nmarks/A\nmarksman/M\nmarksmanship/S\nmarksmen\nmarkup/SM\nMarkus/M\nMarla/M\nMarlane/M\nMarlboro/M\nMarlborough/M\nMarleah/M\nMarlee/M\nMarleen/M\nMarlena/M\nMarlene/M\nMarley/M\nMarlie/M\nMarline/M\nmarlinespike/SM\nMarlin/M\nmarlin/SM\nmarl/MDSG\nMarlo/M\nMarlon/M\nMarlowe/M\nMarlow/M\nMarlyn/M\nMarmaduke/M\nmarmalade/MS\nMarmara/M\nmarmoreal\nmarmoset/MS\nmarmot/SM\nMarna/M\nMarne/M\nMarney/M\nMarnia/M\nMarnie/M\nMarni/M\nmaroon/GRDS\nmarquee/MS\nMarquesas/M\nmarque/SM\nmarquess/MS\nmarquetry/SM\nMarquette/M\nMarquez/M\nmarquise/M\nmarquisette/MS\nMarquis/M\nmarquis/SM\nMarquita/M\nMarrakesh/M\nmarred/U\nmarriageability/SM\nmarriageable\nmarriage/ASM\nmarried/US\nMarrilee/M\nmarring\nMarriott/M\nMarris/M\nMarrissa/M\nmarrowbone/MS\nmarrow/GDMS\nmarry/SDGA\nmar/S\nMarseillaise/SM\nMarseilles\nMarseille's\nmarshal/GMDRSZ\nMarshalled/M\nmarshaller\nMarshall/GDM\nMarshalling/M\nmarshallings\nMarshal/M\nMarsha/M\nmarshiness/M\nmarshland/MS\nMarsh/M\nmarshmallow/SM\nmarsh/MS\nmarshy/PRT\nMarsiella/M\nMar/SMN\nmarsupial/MS\nMartainn/M\nMarta/M\nMartelle/M\nMartel/M\nmarten/M\nMarten/M\nMartguerita/M\nMartha/M\nMarthe/M\nMarthena/M\nMartial\nmartial/Y\nMartian/S\nMartica/M\nMartie/M\nMarti/M\nMartina/M\nmartinet/SM\nMartinez/M\nmartingale/MS\nmartini/MS\nMartinique/M\nMartin/M\nMartino/M\nmartin/SM\nMartinson/M\nMartita/M\nmart/MDNGXS\nMart/MN\nMarty/M\nMartyn/M\nMartynne/M\nmartyrdom/SM\nmartyr/GDMS\nMarva/M\nmarvel/DGS\nMarvell/M\nmarvelous/PY\nMarve/M\nMarven/M\nMarvin/M\nMarv/NM\nMarwin/M\nMarxian/S\nMarxism/SM\nMarxist/SM\nMarx/M\nMarya/M\nMaryanna/M\nMaryanne/M\nMaryann/M\nMarybelle/M\nMarybeth/M\nMaryellen/M\nMaryjane/M\nMaryjo/M\nMaryland/MZR\nMarylee/M\nMarylinda/M\nMarylin/M\nMaryl/M\nMarylou/M\nMarylynne/M\nMary/M\nMaryrose/M\nMarys\nMarysa/M\nmarzipan/SM\nMasada/M\nMasai/M\nMasaryk/M\nmasc\nMascagni/M\nmascara/SGMD\nmascot/SM\nmasculineness/M\nmasculine/PYS\nmasculinity/SM\nMasefield/M\nmaser/M\nMaseru/M\nMASH\nMasha/M\nMashhad/M\nmash/JGZMSRD\nm/ASK\nmasked/U\nmasker/M\nmask/GZSRDMJ\nmasks/U\nmasochism/MS\nmasochistic\nmasochistically\nmasochist/MS\nmasonic\nMasonic\nMasonite/M\nmasonry/MS\nmason/SDMG\nMason/SM\nmasquerader/M\nmasquerade/RSDGMZ\nmasquer/M\nmasque/RSMZ\nMassachusetts/M\nmassacre/DRSMG\nmassager/M\nmassage/SRDMG\nMassasoit/M\nMassenet/M\nmasseur/MS\nmasseuse/SM\nMassey/M\nmassif/SM\nMassimiliano/M\nMassimo/M\nmassing/R\nmassiveness/SM\nmassive/YP\nmassless\nmas/SRZ\nMass/S\nmass/VGSD\nmastectomy/MS\nmasterclass\nmastered/A\nmasterfulness/M\nmasterful/YP\nmaster/JGDYM\nmasterliness/M\nmasterly/P\nmastermind/GDS\nmasterpiece/MS\nmastership/M\nMaster/SM\nmasterstroke/MS\nmasterwork/S\nmastery/MS\nmast/GZSMRD\nmasthead/SDMG\nmasticate/SDXGN\nmastication/M\nmastic/SM\nmastiff/MS\nmastodon/MS\nmastoid/S\nmasturbate/SDNGX\nmasturbation/M\nmasturbatory\nmatador/SM\nMata/M\nmatchable/U\nmatch/BMRSDZGJ\nmatchbook/SM\nmatchbox/SM\nmatched/UA\nmatcher/M\nmatches/A\nmatchless/Y\nmatchlock/MS\nmatchmake/GZJR\nmatchmaker/M\nmatchmaking/M\nmatchplay\nmatch's/A\nmatchstick/MS\nmatchwood/SM\nmated/U\nmate/IMS\nMatelda/M\nMateo/M\nmaterialism/SM\nmaterialistic\nmaterialistically\nmaterialist/SM\nmateriality/M\nmaterialization/SM\nmaterialize/CDS\nmaterialized/A\nmaterializer/SM\nmaterializes/A\nmaterializing\nmaterialness/M\nmaterial/SPYM\nmat<61>riel/MS\nmater/M\nmaternal/Y\nmaternity/MS\nmates/U\nmathematical/Y\nMathematica/M\nmathematician/SM\nmathematic/S\nmathematics/M\nMathematik/M\nMather/M\nMathe/RM\nMathew/MS\nMathewson/M\nMathian/M\nMathias\nMathieu/M\nMathilda/M\nMathilde/M\nMathis\nmath/M\nmaths\nMatias/M\nMatilda/M\nMatilde/M\nmatin<69>e/S\nmating/M\nmatins/M\nMatisse/SM\nmatriarchal\nmatriarch/M\nmatriarchs\nmatriarchy/MS\nmatrices\nmatricidal\nmatricide/MS\nmatriculate/XSDGN\nmatriculation/M\nmatrimonial/Y\nmatrimony/SM\nmatrix/M\nmatron/YMS\nmat/SJGMDR\nMatsumoto/M\nmatte/JGMZSRD\nMattel/M\nMatteo/M\nmatter/GDM\nMatterhorn/M\nMatthaeus/M\nMattheus/M\nMatthew/MS\nMatthias\nMatthieu/M\nMatthiew/M\nMatthus/M\nMattias/M\nMattie/M\nMatti/M\nmatting/M\nmattins's\nMatt/M\nmattock/MS\nmattress/MS\nmatt's\nMatty/M\nmaturate/DSNGVX\nmaturational\nmaturation/M\nmatureness/M\nmaturer/M\nmature/RSDTPYG\nmaturity/MS\nmatzo/SHM\nmatzot\nMaude/M\nMaudie/M\nmaudlin/Y\nMaud/M\nMaugham/M\nMaui/M\nmauler/M\nmaul/RDGZS\nmaunder/GDS\nMaupassant/M\nMaura/M\nMaureene/M\nMaureen/M\nMaure/M\nMaurene/M\nMauriac/M\nMaurice/M\nMauricio/M\nMaurie/M\nMaurine/M\nMaurise/M\nMaurita/M\nMauritania/M\nMauritanian/S\nMauritian/S\nMauritius/M\nMaurits/M\nMaurizia/M\nMaurizio/M\nMaurois/M\nMauro/M\nMaury/M\nMauser/M\nmausoleum/SM\nmauve/SM\nmaven/S\nmaverick/SMDG\nmavin's\nMavis/M\nMavra/M\nmawkishness/SM\nmawkish/PY\nMawr/M\nmaw/SGMD\nmax/GDS\nMaxie/M\nmaxillae\nmaxilla/M\nmaxillary/S\nMaxi/M\nmaximality\nmaximal/SY\nmaxima's\nMaximilian/M\nMaximilianus/M\nMaximilien/M\nmaximization/SM\nmaximizer/M\nmaximize/RSDZG\nMaxim/M\nMaximo/M\nmaxim/SM\nmaximum/MYS\nMaxine/M\nmaxi/S\nMax/M\nMaxtor/M\nMaxwellian\nmaxwell/M\nMaxwell/M\nMaxy/M\nMaya/MS\nMayan/S\nMaybelle/M\nmaybe/S\nmayday/S\nmay/EGS\nMaye/M\nmayer\nMayer/M\nmayest\nMayfair/M\nMayflower/M\nmayflower/SM\nmayfly/MS\nmayhap\nmayhem/MS\nMaynard/M\nMayne/M\nMaynord/M\nmayn't\nMayo/M\nmayonnaise/MS\nmayoral\nmayoralty/MS\nmayoress/MS\nMayor/M\nmayor/MS\nmayorship/M\nmayo/S\nmaypole/MS\nMaypole/SM\nMayra/M\nMay/SMR\nmayst\nMazama/M\nMazarin/M\nMazatlan/M\nMazda/M\nmazedness/SM\nmazed/YP\nmaze/MGDSR\nmazurka/SM\nMazzini/M\nMb\nMB\nMBA\nMbabane/M\nMbini/M\nMC\nMcAdam/MS\nMcAllister/M\nMcBride/M\nMcCabe/M\nMcCain/M\nMcCall/M\nMcCarthyism/M\nMcCarthy/M\nMcCartney/M\nMcCarty/M\nMcCauley/M\nMcClain/M\nMcClellan/M\nMcClure/M\nMcCluskey/M\nMcConnell/M\nMcCormick/M\nMcCoy/SM\nMcCracken/M\nMcCray/M\nMcCullough/M\nMcDaniel/M\nMcDermott/M\nMcDonald/M\nMcDonnell/M\nMcDougall/M\nMcDowell/M\nMcElhaney/M\nMcEnroe/M\nMcFadden/M\nMcFarland/M\nMcGee/M\nMcGill/M\nMcGovern/M\nMcGowan/M\nMcGrath/M\nMcGraw/M\nMcGregor/M\nMcGuffey/M\nMcGuire/M\nMCI/M\nMcIntosh/M\nMcIntyre/M\nMcKay/M\nMcKee/M\nMcKenzie/M\nMcKesson/M\nMcKinley/M\nMcKinney/M\nMcKnight/M\nMcLanahan/M\nMcLaughlin/M\nMcLean/M\nMcLeod/M\nMcLuhan/M\nMcMahon/M\nMcMartin/M\nMcMillan/M\nMcNamara/M\nMcNaughton/M\nMcNeil/M\nMcPherson/M\nMD\nMd/M\nmdse\nMDT\nME\nMeade/M\nMead/M\nmeadowland\nmeadowlark/SM\nmeadow/MS\nMeadows\nmeadowsweet/M\nmead/SM\nMeagan/M\nmeagerness/SM\nmeager/PY\nMeaghan/M\nmeagres\nmealiness/MS\nmeal/MDGS\nmealtime/MS\nmealybug/S\nmealymouthed\nmealy/PRST\nmeander/JDSG\nmeaneing\nmeanie/MS\nmeaningfulness/SM\nmeaningful/YP\nmeaninglessness/SM\nmeaningless/PY\nmeaning/M\nmeanness/S\nmeans/M\nmeantime/SM\nmeant/U\nmeanwhile/S\nMeany/M\nmean/YRGJTPS\nmeany's\nMeara/M\nmeasle/SD\nmeasles/M\nmeasly/TR\nmeasurable/U\nmeasurably\nmeasure/BLMGRSD\nmeasured/Y\nmeasureless\nmeasurement/SM\nmeasurer/M\nmeasures/A\nmeasuring/A\nmeas/Y\nmeataxe\nmeatball/MS\nmeatiness/MS\nmeatless\nmeatloaf\nmeatloaves\nmeat/MS\nmeatpacking/S\nmeaty/RPT\nMecca/MS\nmecca/S\nmechanical/YS\nmechanic/MS\nmechanism/SM\nmechanistic\nmechanistically\nmechanist/M\nmechanization/SM\nmechanized/U\nmechanizer/M\nmechanize/RSDZGB\nmechanizes/U\nmechanochemically\nMechelle/M\nmed\nmedalist/MS\nmedallion/MS\nmedal/SGMD\nMedan/M\nmeddle/GRSDZ\nmeddlesome\nMedea/M\nMedellin\nMedfield/M\nmediaeval's\nmedial/AY\nmedials\nmedian/YMS\nmedia/SM\nmediateness/M\nmediate/PSDYVNGX\nmediation/ASM\nmediator/SM\nMedicaid/SM\nmedical/YS\nmedicament/MS\nMedicare/MS\nmedicate/DSXNGV\nmedication/M\nMedici/MS\nmedicinal/SY\nmedicine/DSMG\nmedico/SM\nmedic/SM\nmedievalist/MS\nmedieval/YMS\nMedina/M\nmediocre\nmediocrity/MS\nmeditate/NGVXDS\nmeditation/M\nmeditativeness/M\nmeditative/PY\nMediterranean/MS\nmediumistic\nmedium/SM\nmedley/SM\nmedulla/SM\nMedusa/M\nmeed/MS\nmeekness/MS\nmeek/TPYR\nmeerschaum/MS\nmeeter/M\nmeetinghouse/S\nmeeting/M\nmeet/JGSYR\nme/G\nmega\nmegabit/MS\nmegabuck/S\nmegabyte/S\nmegacycle/MS\nmegadeath/M\nmegadeaths\nmegahertz/M\nmegalithic\nmegalith/M\nmegaliths\nmegalomaniac/SM\nmegalomania/SM\nmegalopolis/SM\nMegan/M\nmegaphone/SDGM\nmegaton/MS\nmegavolt/M\nmegawatt/SM\nmegaword/S\nMegen/M\nMeggie/M\nMeggi/M\nMeggy/M\nMeghan/M\nMeghann/M\nMeg/MN\nmegohm/MS\nMehetabel/M\nMeier/M\nMeighen/M\nMeiji/M\nMei/MR\nmeioses\nmeiosis/M\nmeiotic\nMeir/M\nMeister/M\nMeistersinger/M\nMejia/M\nMekong/M\nMela/M\nMelamie/M\nmelamine/SM\nmelancholia/SM\nmelancholic/S\nmelancholy/MS\nMelanesia/M\nMelanesian/S\nmelange/S\nMelania/M\nMelanie/M\nmelanin/MS\nmelanoma/SM\nMelantha/M\nMelany/M\nMelba/M\nMelbourne/M\nMelcher/M\nMelchior/M\nmeld/SGD\nm<6E>l<EFBFBD>e/MS\nMelendez/M\nMelesa/M\nMelessa/M\nMelicent/M\nMelina/M\nMelinda/M\nMelinde/M\nmeliorate/XSDVNG\nmelioration/M\nMelisa/M\nMelisande/M\nMelisandra/M\nMelisenda/M\nMelisent/M\nMelissa/M\nMelisse/M\nMelita/M\nMelitta/M\nMella/M\nMellicent/M\nMellie/M\nmellifluousness/SM\nmellifluous/YP\nMelli/M\nMellisa/M\nMellisent/M\nMelloney/M\nMellon/M\nmellowness/MS\nmellow/TGRDYPS\nMelly/M\nMel/MY\nMelodee/M\nmelodically\nmelodic/S\nMelodie/M\nmelodiousness/S\nmelodious/YP\nmelodrama/SM\nmelodramatically\nmelodramatic/S\nMelody/M\nmelody/MS\nMelonie/M\nmelon/MS\nMelony/M\nMelosa/M\nMelpomene/M\nmeltdown/S\nmelter/M\nmelting/Y\nMelton/M\nmelt/SAGD\nMelva/M\nMelville/M\nMelvin/M\nMelvyn/M\nMe/M\nmember/DMS\nmembered/AE\nmembers/EA\nmembership/SM\nmembrane/MSD\nmembranous\nmemento/SM\nMemling/M\nmemoir/MS\nmemorabilia\nmemorability/SM\nmemorableness/M\nmemorable/P\nmemorably\nmemorandum/SM\nmemorialize/DSG\nmemorialized/U\nmemorial/SY\nmemoriam\nmemorization/MS\nmemorized/U\nmemorizer/M\nmemorize/RSDZG\nmemorizes/A\nmemoryless\nmemory/MS\nmemo/SM\nMemphis/M\nmenace/GSD\nmenacing/Y\nmenagerie/SM\nmenage/S\nMenander/M\nmenarche/MS\nMenard/M\nMencius/M\nMencken/M\nmendaciousness/M\nmendacious/PY\nmendacity/MS\nMendeleev/M\nmendelevium/SM\nMendelian\nMendel/M\nMendelssohn/M\nmender/M\nMendez/M\nmendicancy/MS\nmendicant/S\nMendie/M\nmending/M\nMendocino/M\nMendoza/M\nmend/RDSJGZ\nMendy/M\nMenelaus/M\nMenes/M\nmenfolk/S\nmenhaden/M\nmenial/YS\nmeningeal\nmeninges\nmeningitides\nmeningitis/M\nmeninx\nmenisci\nmeniscus/M\nMenkalinan/M\nMenkar/M\nMenkent/M\nMenlo/M\nmen/MS\nMennonite/SM\nMenominee\nmenopausal\nmenopause/SM\nmenorah/M\nmenorahs\nMenotti/M\nMensa/M\nMensch/M\nmensch/S\nmenservants/M\nmens/SDG\nmenstrual\nmenstruate/NGDSX\nmenstruation/M\nmensurable/P\nmensuration/MS\nmenswear/M\nmentalist/MS\nmentality/MS\nmental/Y\nmentholated\nmenthol/SM\nmentionable/U\nmentioned/U\nmentioner/M\nmention/ZGBRDS\nmentor/DMSG\nMenuhin/M\nmenu/SM\nMenzies/M\nmeow/DSG\nMephistopheles/M\nMerak/M\nMercado/M\nmercantile\nMercator/M\nMercedes\nmercenariness/M\nmercenary/SMP\nmercerize/SDG\nMercer/M\nmercer/SM\nmerchandiser/M\nmerchandise/SRDJMZG\nmerchantability\nmerchantman/M\nmerchantmen\nmerchant/SBDMG\nMercie/M\nmercifully/U\nmercifulness/M\nmerciful/YP\nmercilessness/SM\nmerciless/YP\nMerci/M\nMerck/M\nmercurial/SPY\nmercuric\nMercurochrome/M\nmercury/MS\nMercury/MS\nMercy/M\nmercy/SM\nMeredeth/M\nMeredithe/M\nMeredith/M\nMerell/M\nmeretriciousness/SM\nmeretricious/YP\nmere/YS\nmerganser/MS\nmerger/M\nmerge/SRDGZ\nMeridel/M\nmeridian/MS\nmeridional\nMeridith/M\nMeriel/M\nMerilee/M\nMerill/M\nMerilyn/M\nmeringue/MS\nmerino/MS\nMeris\nMerissa/M\nmerited/U\nmeritocracy/MS\nmeritocratic\nmeritocrats\nmeritoriousness/MS\nmeritorious/PY\nmerit/SCGMD\nMeriwether/M\nMerla/M\nMerle/M\nMerlina/M\nMerline/M\nmerlin/M\nMerlin/M\nMerl/M\nmermaid/MS\nmerman/M\nmermen\nMerna/M\nMerola/M\nmeromorphic\nMerralee/M\nMerrel/M\nMerriam/M\nMerrick/M\nMerridie/M\nMerrielle/M\nMerrie/M\nMerrilee/M\nMerrile/M\nMerrili/M\nMerrill/M\nmerrily\nMerrily/M\nMerrimack/M\nMerrimac/M\nmerriment/MS\nmerriness/S\nMerritt/M\nMerry/M\nmerrymaker/MS\nmerrymaking/SM\nmerry/RPT\nMersey/M\nmer/TGDR\nMerton/M\nMervin/M\nMerv/M\nMerwin/M\nMerwyn/M\nMeryl/M\nMesa\nMesabi/M\nmesa/SM\nmescaline/SM\nmescal/SM\nmesdames/M\nmesdemoiselles/M\nMeshed's\nmeshed/U\nmesh/GMSD\nmesmeric\nmesmerism/SM\nmesmerized/U\nmesmerizer/M\nmesmerize/SRDZG\nMesolithic/M\nmesomorph/M\nmesomorphs\nmeson/MS\nMesopotamia/M\nMesopotamian/S\nmesosphere/MS\nmesozoic\nMesozoic\nmesquite/MS\nmes/S\nmessage/SDMG\nmesseigneurs\nmessenger/GSMD\nMesserschmidt/M\nmess/GSDM\nMessiaen/M\nmessiah\nMessiah/M\nmessiahs\nMessiahs\nmessianic\nMessianic\nmessieurs/M\nmessily\nmessiness/MS\nmessmate/MS\nMessrs/M\nmessy/PRT\nmestizo/MS\nmeta\nmetabolic\nmetabolically\nmetabolism/MS\nmetabolite/SM\nmetabolize/GSD\nmetacarpal/S\nmetacarpi\nmetacarpus/M\nmetacircular\nmetacircularity\nmetalanguage/MS\nmetalization/SM\nmetalized\nmetallic/S\nmetalliferous\nmetallings\nmetallography/M\nmetalloid/M\nmetallurgic\nmetallurgical/Y\nmetallurgist/S\nmetallurgy/MS\nmetal/SGMD\nmetalsmith/MS\nmetalworking/M\nmetalwork/RMJGSZ\nMeta/M\nmetamathematical\nmetamorphic\nmetamorphism/SM\nmetamorphose/GDS\nmetamorphosis/M\nmetaphoric\nmetaphorical/Y\nmetaphor/MS\nmetaphosphate/M\nmetaphysical/Y\nmetaphysic/SM\nmetastability/M\nmetastable\nmetastases\nmetastasis/M\nmetastasize/DSG\nmetastatic\nmetatarsal/S\nmetatarsi\nmetatarsus/M\nmetatheses\nmetathesis/M\nmetathesized\nmetathesizes\nmetathesizing\nmetavariable\nmetempsychoses\nmetempsychosis/M\nmeteoric\nmeteorically\nmeteorite/SM\nmeteoritic/S\nmeteoritics/M\nmeteoroid/SM\nmeteorologic\nmeteorological\nmeteorologist/S\nmeteorology/MS\nmeteor/SM\nmeter/GDM\nmete/ZDGSR\nmethadone/SM\nmethane/MS\nmethanol/SM\nmethinks\nmethionine/M\nmethodicalness/SM\nmethodical/YP\nmethodism\nMethodism/SM\nmethodist/MS\nMethodist/MS\nmethod/MS\nmethodological/Y\nmethodologists\nmethodology/MS\nmethought\nMethuen/M\nMethuselah/M\nMethuselahs\nmethylated\nmethylene/M\nmethyl/SM\nmeticulousness/MS\nmeticulous/YP\nm<6E>tier/S\nmetonymy/M\nMetrecal/M\nmetrical/Y\nmetricate/SDNGX\nmetricize/GSD\nmetrics/M\nmetric/SM\nmetronome/MS\nmetropolis/SM\nmetropolitanization\nmetropolitan/S\nmetro/SM\nmets\nMetternich/M\nmettle/SDM\nmettlesome\nmet/U\nMetzler/M\nMeuse/M\nmewl/GSD\nmew/SGD\nmews/SM\nMex\nMexicali/M\nMexican/S\nMexico/M\nMeyerbeer/M\nMeyer/SM\nmezzanine/MS\nmezzo/S\nMFA\nmfg\nmfr/S\nmg\nM/GB\nMg/M\nMGM/M\nmgr\nMgr\nMHz\nMI\nMIA\nMia/M\nMiami/SM\nMiaplacidus/M\nmiasmal\nmiasma/SM\nMicaela/M\nMicah/M\nmica/MS\nmicelles\nmice/M\nMichaela/M\nMichaelangelo/M\nMichaelina/M\nMichaeline/M\nMichaella/M\nMichaelmas/MS\nMichael/SM\nMichaelson/M\nMichail/M\nMichale/M\nMichal/M\nMicheal/M\nMicheil/M\nMichelangelo/M\nMichele/M\nMichelina/M\nMicheline/M\nMichelin/M\nMichelle/M\nMichell/M\nMichel/M\nMichelson/M\nMichigander/S\nMichiganite/S\nMichigan/M\nMich/M\nMickelson/M\nMickey/M\nmickey/SM\nMickie/M\nMicki/M\nMick/M\nMicky/M\nMic/M\nMicmac/M\nmicra's\nmicroamp\nmicroanalysis/M\nmicroanalytic\nmicrobe/MS\nmicrobial\nmicrobicidal\nmicrobicide/M\nmicrobiological\nmicrobiologist/MS\nmicrobiology/SM\nmicrobrewery/S\nmicrochemistry/M\nmicrochip/S\nmicrocircuit/MS\nmicrocode/GSD\nmicrocomputer/MS\nmicrocosmic\nmicrocosm/MS\nmicrodensitometer\nmicrodot/MS\nmicroeconomic/S\nmicroeconomics/M\nmicroelectronic/S\nmicroelectronics/M\nmicrofiber/S\nmicrofiche/M\nmicrofilm/DRMSG\nmicrofossils\nmicrography/M\nmicrogroove/MS\nmicrohydrodynamics\nmicroinstruction/SM\nmicrojoule\nmicrolevel\nmicrolight/S\nmicromanage/GDSL\nmicromanagement/S\nmicrometeorite/MS\nmicrometeoritic\nmicrometer/SM\nMicronesia/M\nMicronesian/S\nmicron/MS\nmicroorganism/SM\nmicrophone/SGM\nMicroport/M\nmicroprocessing\nmicroprocessor/SM\nmicroprogrammed\nmicroprogramming\nmicroprogram/SM\nmicro/S\nmicroscope/SM\nmicroscopic\nmicroscopical/Y\nmicroscopy/MS\nmicrosecond/MS\nmicrosimulation/S\nMicrosystems\nmicros/M\nMicrosoft/M\nmicrosomal\nmicrostore\nmicrosurgery/SM\nMicroVAXes\nMicroVAX/M\nmicrovolt/SM\nmicrowaveable\nmicrowave/BMGSD\nmicroword/S\nmidair/MS\nmidas\nMidas/M\nmidband/M\nmidday/MS\nmidden/SM\nmiddest\nmiddlebrow/SM\nMiddlebury/M\nmiddle/GJRSD\nmiddleman/M\nmiddlemen\nmiddlemost\nMiddlesex/M\nMiddleton/M\nMiddletown/M\nmiddleweight/SM\nmiddling/Y\nmiddy/SM\nMideastern\nMideast/M\nmidfield/RM\nMidge/M\nmidge/SM\nmidget/MS\nmidi/S\nmidland/MRS\nMidland/MS\nmidlife\nmidlives\nmidmorn/G\nmidmost/S\nmidnight/SYM\nmidpoint/MS\nmidrange\nmidrib/MS\nmidriff/MS\nmid/S\nmidscale\nmidsection/M\nmidshipman/M\nmidshipmen\nmidship/S\nmidspan\nmidstream/MS\nmidst/SM\nmidsummer/MS\nmidterm/MS\nmidtown/MS\nMidway/M\nmidway/S\nmidweek/SYM\nMidwesterner/M\nMidwestern/ZR\nMidwest/M\nmidwicket\nmidwifery/SM\nmidwife/SDMG\nmidwinter/YMS\nmidwives\nmidyear/MS\nmien/M\nmiff/GDS\nmightily\nmightiness/MS\nmightn't\nmight/S\nmighty/TPR\nmignon\nmignonette/SM\nMignon/M\nMignonne/M\nmigraine/SM\nmigrant/MS\nmigrate/ASDG\nmigration/MS\nmigrative\nmigratory/S\nMIG/S\nMiguela/M\nMiguelita/M\nMiguel/M\nmikado/MS\nMikaela/M\nMikael/M\nmike/DSMG\nMikel/M\nMike/M\nMikey/M\nMikhail/M\nMikkel/M\nMikol/M\nMikoyan/M\nmilady/MS\nMilagros/M\nMilanese\nMilan/M\nmilch/M\nmildew/DMGS\nmildness/MS\nMildred/M\nMildrid/M\nmild/STYRNP\nmileage/SM\nMilena/M\nmilepost/SM\nmiler/M\nmile/SM\nMile/SM\nmilestone/MS\nMilford/M\nMilicent/M\nmilieu/SM\nMilissent/M\nmilitancy/MS\nmilitantness/M\nmilitant/YPS\nmilitarily\nmilitarism/SM\nmilitaristic\nmilitarist/MS\nmilitarization/SCM\nmilitarize/SDCG\nmilitary\nmilitate/SDG\nmilitiaman/M\nmilitiamen\nmilitia/SM\nMilka/M\nMilken/M\nmilker/M\nmilk/GZSRDM\nmilkiness/MS\nmilkmaid/SM\nmilkman/M\nmilkmen\nmilkshake/S\nmilksop/SM\nmilkweed/MS\nmilky/RPT\nmillage/S\nMillard/M\nMillay/M\nmillenarian\nmillenarianism/M\nmillennial\nmillennialism\nmillennium/MS\nmillepede's\nmiller/M\nMiller/M\nMillet/M\nmillet/MS\nmilliamp\nmilliampere/S\nmilliard/MS\nmillibar/MS\nMillicent/M\nmillidegree/S\nMillie/M\nmilligram/MS\nmillijoule/S\nMillikan/M\nmilliliter/MS\nMilli/M\nmillimeter/SM\nmilliner/SM\nmillinery/MS\nmilling/M\nmillionaire/MS\nmillion/HDMS\nmillionth/M\nmillionths\nmillipede/SM\nmillisecond/MS\nMillisent/M\nmillivoltmeter/SM\nmillivolt/SM\nmilliwatt/S\nmillpond/MS\nmillrace/SM\nmill/SGZMRD\nMill/SMR\nmillstone/SM\nmillstream/SM\nmillwright/MS\nMilly/M\nmil/MRSZ\nMil/MY\nMilne/M\nMilo/M\nMilquetoast/S\nmilquetoast/SM\nMiltiades/M\nMiltie/M\nMilt/M\nmilt/MDSG\nMiltonic\nMilton/M\nMiltown/M\nMilty/M\nMilwaukee/M\nMilzie/M\nMIMD\nmime/DSRMG\nmimeograph/GMDS\nmimeographs\nmimer/M\nmimesis/M\nmimetic\nmimetically\nmimicked\nmimicker/SM\nmimicking\nmimicry/MS\nmimic/S\nMimi/M\nmi/MNX\nMimosa/M\nmimosa/SM\nMina/M\nminaret/MS\nminatory\nmincemeat/MS\nmincer/M\nmince/SRDGZJ\nmincing/Y\nMinda/M\nMindanao/M\nmind/ARDSZG\nmindbogglingly\nminded/P\nminder/M\nmindfully\nmindfulness/MS\nmindful/U\nmindlessness/SM\nmindless/YP\nMindoro/M\nmin/DRZGJ\nmind's\nmindset/S\nMindy/M\nminefield/MS\nmineralization/C\nmineralized/U\nmineralogical\nmineralogist/SM\nmineralogy/MS\nmineral/SM\nminer/M\nMiner/M\nMinerva/M\nmineshaft\nmine/SNX\nminestrone/MS\nminesweeper/MS\nMinetta/M\nMinette/M\nmineworkers\nmingle/SDG\nMing/M\nMingus/M\nminiature/GMSD\nminiaturist/SM\nminiaturization/MS\nminiaturize/SDG\nminibike/S\nminibus/SM\nminicab/M\nminicam/MS\nminicomputer/SM\nminidress/SM\nminify/GSD\nminimalism/S\nminimalistic\nminimalist/MS\nminimality\nminimal/SY\nminima's\nminimax/M\nminimization/MS\nminimized/U\nminimizer/M\nminimize/RSDZG\nminim/SM\nminimum/MS\nmining/M\nminion/M\nmini/S\nminiseries\nminiskirt/MS\nministerial/Y\nminister/MDGS\nministrant/S\nministration/SM\nministry/MS\nminivan/S\nminiver/M\nminke\nmink/SM\nMin/MR\nMinna/M\nMinnaminnie/M\nMinneapolis/M\nMinne/M\nminnesinger/MS\nMinnesota/M\nMinnesotan/S\nMinnie/M\nMinni/M\nMinn/M\nMinnnie/M\nminnow/SM\nMinny/M\nMinoan/S\nMinolta/M\nminor/DMSG\nminority/MS\nMinor/M\nMinos\nMinotaur/M\nminotaur/S\nMinot/M\nminoxidil/S\nMinsk/M\nMinsky/M\nminster/SM\nminstrel/SM\nminstrelsy/MS\nmintage/SM\nMintaka/M\nMinta/M\nminter/M\nmint/GZSMRD\nminty/RT\nminuend/SM\nminuet/SM\nMinuit/M\nminuscule/SM\nminus/S\nminuteman\nMinuteman/M\nminutemen\nminuteness/SM\nminute/RSDPMTYG\nminutiae\nminutia/M\nminx/MS\nMiocene\nMIPS\nMiquela/M\nMirabeau/M\nMirabella/M\nMirabelle/M\nMirabel/M\nMirach/M\nmiracle/MS\nmiraculousness/M\nmiraculous/PY\nmirage/GSDM\nMira/M\nMiranda/M\nMiran/M\nMireielle/M\nMireille/M\nMirella/M\nMirelle/M\nmire/MGDS\nMirfak/M\nMiriam/M\nMirilla/M\nMir/M\nMirna/M\nMiro\nmirror/DMGS\nmirthfulness/SM\nmirthful/PY\nmirthlessness/M\nmirthless/YP\nmirth/M\nmirths\nMIRV/DSG\nmiry/RT\nMirzam/M\nmisaddress/SDG\nmisadventure/SM\nmisalign/DSGL\nmisalignment/MS\nmisalliance/MS\nmisanalysed\nmisanthrope/MS\nmisanthropic\nmisanthropically\nmisanthropist/S\nmisanthropy/SM\nmisapplier/M\nmisapply/GNXRSD\nmisapprehend/GDS\nmisapprehension/MS\nmisappropriate/GNXSD\nmisbegotten\nmisbehaver/M\nmisbehave/RSDG\nmisbehavior/SM\nmisbrand/DSG\nmisc\nmiscalculate/XGNSD\nmiscalculation/M\nmiscall/SDG\nmiscarriage/MS\nmiscarry/SDG\nmiscast/GS\nmiscegenation/SM\nmiscellanea\nmiscellaneous/PY\nmiscellany/MS\nMischa/M\nmischance/MGSD\nmischief/MDGS\nmischievousness/MS\nmischievous/PY\nmiscibility/S\nmiscible/C\nmisclassification/M\nmisclassified\nmisclassifying\nmiscode/SDG\nmiscommunicate/NDS\nmiscomprehended\nmisconceive/GDS\nmisconception/MS\nmisconduct/GSMD\nmisconfiguration\nmisconstruction/MS\nmisconstrue/DSG\nmiscopying\nmiscount/DGS\nmiscreant/MS\nmiscue/MGSD\nmisdeal/SG\nmisdealt\nmisdeed/MS\nmisdemeanant/SM\nmisdemeanor/SM\nmisdiagnose/GSD\nmisdid\nmisdirect/GSD\nmisdirection/MS\nmisdirector/S\nmisdoes\nmisdo/JG\nmisdone\nmiserableness/SM\nmiserable/SP\nmiserably\nmiser/KM\nmiserliness/MS\nmiserly/P\nmisery/MS\nmises/KC\nmisfeasance/MS\nmisfeature/M\nmisfield\nmisfile/SDG\nmisfire/SDG\nmisfit/MS\nmisfitted\nmisfitting\nmisfortune/SM\nmisgauge/GDS\nmisgiving/MYS\nmisgovern/LDGS\nmisgovernment/S\nmisguidance/SM\nmisguidedness/M\nmisguided/PY\nmisguide/DRSG\nmisguider/M\nMisha/M\nmishandle/SDG\nmishap/MS\nmishapped\nmishapping\nmisheard\nmishear/GS\nmishitting\nmishmash/SM\nmisidentification/M\nmisidentify/GNSD\nmisinformation/SM\nmisinform/GDS\nmisinterpretation/MS\nmisinterpreter/M\nmisinterpret/RDSZG\nmisjudge/DSG\nmisjudging/Y\nmisjudgment/MS\nMiskito\nmislabel/DSG\nmislaid\nmislay/GS\nmisleader/M\nmislead/GRJS\nmisleading/Y\nmisled\nmismanage/LGSD\nmismanagement/MS\nmismatch/GSD\nmisname/GSD\nmisnomer/GSMD\nmisogamist/MS\nmisogamy/MS\nmisogynistic\nmisogynist/MS\nmisogynous\nmisogyny/MS\nmisperceive/SD\nmisplace/GLDS\nmisplacement/MS\nmisplay/GSD\nmispositioned\nmisprint/SGDM\nmisprision/SM\nmispronounce/DSG\nmispronunciation/MS\nmisquotation/MS\nmisquote/GDS\nmisreader/M\nmisread/RSGJ\nmisrelated\nmisremember/DG\nmisreport/DGS\nmisrepresentation/MS\nmisrepresenter/M\nmisrepresent/SDRG\nmisroute/DS\nmisrule/SDG\nmissal/ESM\nmisshape/DSG\nmisshapenness/SM\nmisshapen/PY\nMissie/M\nmissile/MS\nmissilery/SM\nmission/AMS\nmissionary/MS\nmissioned\nmissioner/SM\nmissioning\nmissis's\nMississauga/M\nMississippian/S\nMississippi/M\nmissive/MS\nMissoula/M\nMissourian/S\nMissouri/M\nmisspeak/SG\nmisspecification\nmisspecified\nmisspelling/M\nmisspell/SGJD\nmisspend/GS\nmisspent\nmisspoke\nmisspoken\nmis/SRZ\nmiss/SDEGV\nMiss/SM\nmisstate/GLDRS\nmisstatement/MS\nmisstater/M\nmisstep/MS\nmisstepped\nmisstepping\nmissus/SM\nMissy/M\nmistakable/U\nmistake/BMGSR\nmistaken/Y\nmistaker/M\nmistaking/Y\nMistassini/M\nmister/GDM\nMister/SM\nmistily\nMisti/M\nmistime/GSD\nmistiness/S\nmistletoe/MS\nmist/MRDGZS\nmistook\nmistral/MS\nmistranslated\nmistranslates\nmistranslating\nmistranslation/SM\nmistreat/DGSL\nmistreatment/SM\nMistress/MS\nmistress/MSY\nmistrial/SM\nmistruster/M\nmistrustful/Y\nmistrust/SRDG\nMisty/M\nmistype/SDGJ\nmisty/PRT\nmisunderstander/M\nmisunderstanding/M\nmisunderstand/JSRZG\nmisunderstood\nmisuser/M\nmisuse/RSDMG\nmiswritten\nMitchael/M\nMitchell/M\nMitchel/M\nMitch/M\nmiterer/M\nmiter/GRDM\nmite/SRMZ\nMitford/M\nMithra/M\nMithridates/M\nmitigated/U\nmitigate/XNGVDS\nmitigation/M\nMIT/M\nmitoses\nmitosis/M\nmitotic\nMITRE/SM\nMitsubishi/M\nmitten/M\nMitterrand/M\nmitt/XSMN\nMitty/M\nMitzi/M\nmitzvahs\nmixable\nmix/AGSD\nmixed/U\nmixer/SM\nmixture/SM\nMizar/M\nmizzenmast/SM\nmizzen/MS\nMk\nmks\nml\nMlle/M\nmm\nMM\nMMe\nMme/SM\nMN\nmnemonically\nmnemonics/M\nmnemonic/SM\nMnemosyne/M\nMn/M\nMO\nmoan/GSZRDM\nmoat/SMDG\nmobbed\nmobber\nmobbing\nmobcap/SM\nMobile/M\nmobile/S\nmobility/MS\nmobilizable\nmobilization/AMCS\nmobilize/CGDS\nmobilized/U\nmobilizer/MS\nmobilizes/A\nMobil/M\nmob/MS\nmobster/MS\nMobutu/M\nmoccasin/SM\nmocha/SM\nmockers/M\nmockery/MS\nmock/GZSRD\nmockingbird/MS\nmocking/Y\nmo/CSK\nmodality/MS\nmodal/Y\nmodeled/A\nmodeler/M\nmodeling/M\nmodels/A\nmodel/ZGSJMRD\nmode/MS\nmodem/SM\nmoderated/U\nmoderateness/SM\nmoderate/PNGDSXY\nmoderation/M\nmoderator/MS\nmodernism/MS\nmodernistic\nmodernist/S\nmodernity/SM\nmodernization/MS\nmodernized/U\nmodernizer/M\nmodernize/SRDGZ\nmodernizes/U\nmodernness/SM\nmodern/PTRYS\nModesta/M\nModestia/M\nModestine/M\nModesto/M\nmodest/TRY\nModesty/M\nmodesty/MS\nmodicum/SM\nmodifiability/M\nmodifiableness/M\nmodifiable/U\nmodification/M\nmodified/U\nmodifier/M\nmodify/NGZXRSD\nModigliani/M\nmodishness/MS\nmodish/YP\nmod/TSR\nModula/M\nmodularity/SM\nmodularization\nmodularize/SDG\nmodular/SY\nmodulate/ADSNCG\nmodulation/CMS\nmodulator/ACSM\nmodule/SM\nmoduli\nmodulo\nmodulus/M\nmodus\nMoe/M\nMoen/M\nMogadiscio's\nMogadishu\nmogul/MS\nMogul/MS\nmohair/SM\nMohamed/M\nMohammad/M\nMohammedanism/MS\nMohammedan/SM\nMohammed's\nMohandas/M\nMohandis/M\nMohawk/MS\nMohegan/S\nMohican's\nMoho/M\nMohorovicic/M\nMohr/M\nmoiety/MS\nmoil/SGD\nMoina/M\nMoines/M\nMoira/M\nmoire/MS\nMoise/MS\nMoiseyev/M\nMoishe/M\nmoistener/M\nmoisten/ZGRD\nmoistness/MS\nmoist/TXPRNY\nmoisture/MS\nmoisturize/GZDRS\nMojave/M\nmolal\nmolarity/SM\nmolar/MS\nmolasses/MS\nMoldavia/M\nMoldavian/S\nmoldboard/SM\nmolder/DG\nmoldiness/SM\nmolding/M\nmold/MRDJSGZ\nMoldova\nmoldy/PTR\nmolecularity/SM\nmolecular/Y\nmolecule/MS\nmolehill/SM\nmole/MTS\nmoleskin/MS\nmolestation/SM\nmolested/U\nmolester/M\nmolest/RDZGS\nMoliere\nMolina/M\nMoline/M\nMollee/M\nMollie/M\nmollification/M\nmollify/XSDGN\nMolli/M\nMoll/M\nmoll/MS\nmollusc's\nmollusk/S\nmollycoddler/M\nmollycoddle/SRDG\nMolly/M\nmolly/SM\nMolnar/M\nMoloch/M\nMolokai/M\nMolotov/M\nmolter/M\nmolt/RDNGZS\nMoluccas\nmolybdenite/M\nmolybdenum/MS\nMombasa/M\nmomenta\nmomentarily\nmomentariness/SM\nmomentary/P\nmoment/MYS\nmomentousness/MS\nmomentous/YP\nmomentum/SM\nmomma/S\nMommy/M\nmommy/SM\nMo/MN\nmom/SM\nMonaco/M\nmonadic\nmonad/SM\nMonah/M\nMona/M\nmonarchic\nmonarchical\nmonarchism/MS\nmonarchistic\nmonarchist/MS\nmonarch/M\nmonarchs\nmonarchy/MS\nMonash/M\nmonastery/MS\nmonastical/Y\nmonasticism/MS\nmonastic/S\nmonaural/Y\nMondale/M\nMonday/MS\nMondrian/M\nMonegasque/SM\nMonera/M\nmonetarily\nmonetarism/S\nmonetarist/MS\nmonetary\nmonetization/CMA\nmonetize/CGADS\nMonet/M\nmoneybag/SM\nmoneychangers\nmoneyer/M\nmoneylender/SM\nmoneymaker/MS\nmoneymaking/MS\nmoney/SMRD\nMonfort/M\nmonger/SGDM\nMongolia/M\nMongolian/S\nMongolic/M\nmongolism/SM\nmongoloid/S\nMongoloid/S\nMongol/SM\nmongoose/SM\nmongrel/SM\nMonica/M\nmonies/M\nMonika/M\nmoniker/MS\nMonique/M\nmonism/MS\nmonist/SM\nmonition/SM\nmonitored/U\nmonitor/GSMD\nmonitory/S\nmonkeyshine/S\nmonkey/SMDG\nmonkish\nMonk/M\nmonk/MS\nmonkshood/SM\nMonmouth/M\nmonochromatic\nmonochromator\nmonochrome/MS\nmonocle/SDM\nmonoclinic\nmonoclonal/S\nmonocotyledonous\nmonocotyledon/SM\nmonocular/SY\nmonodic\nmonodist/S\nmonody/MS\nmonogamist/MS\nmonogamous/PY\nmonogamy/MS\nmonogrammed\nmonogramming\nmonogram/MS\nmonograph/GMDS\nmonographs\nmonolingualism\nmonolingual/S\nmonolithic\nmonolithically\nmonolith/M\nmonoliths\nmonologist/S\nmonologue/GMSD\nmonomaniacal\nmonomaniac/MS\nmonomania/MS\nmonomeric\nmonomer/SM\nmonomial/SM\nmono/MS\nMonongahela/M\nmononuclear\nmononucleoses\nmononucleosis/M\nmonophonic\nmonoplane/MS\nmonopole/S\nmonopolistic\nmonopolist/MS\nmonopolization/MS\nmonopolized/U\nmonopolize/GZDSR\nmonopolizes/U\nmonopoly/MS\nmonorail/SM\nmonostable\nmonosyllabic\nmonosyllable/MS\nmonotheism/SM\nmonotheistic\nmonotheist/S\nmonotone/SDMG\nmonotonic\nmonotonically\nmonotonicity\nmonotonousness/MS\nmonotonous/YP\nmonotony/MS\nmonovalent\nmonoxide/SM\nMonroe/M\nMonro/M\nMonrovia/M\nMonsanto/M\nmonseigneur\nmonsieur/M\nMonsignori\nMonsignor/MS\nmonsignor/S\nMon/SM\nmonsoonal\nmonsoon/MS\nmonster/SM\nmonstrance/ASM\nmonstrosity/SM\nmonstrousness/M\nmonstrous/YP\nmontage/SDMG\nMontague/M\nMontaigne/M\nMontana/M\nMontanan/MS\nMontcalm/M\nMontclair/M\nMonte/M\nMontenegrin\nMontenegro/M\nMonterey/M\nMonterrey/M\nMontesquieu/M\nMontessori/M\nMonteverdi/M\nMontevideo/M\nMontezuma\nMontgomery/M\nmonthly/S\nmonth/MY\nmonths\nMonticello/M\nMonti/M\nMont/M\nMontmartre/M\nMontoya/M\nMontpelier/M\nMontrachet/M\nMontreal/M\nMontserrat/M\nMonty/M\nmonumentality/M\nmonumental/Y\nmonument/DMSG\nmooch/ZSRDG\nmoodily\nmoodiness/MS\nmood/MS\nMoody/M\nmoody/PTR\nMoog\nmoo/GSD\nmoonbeam/SM\nMooney/M\nmoon/GDMS\nmoonless\nmoonlight/GZDRMS\nmoonlighting/M\nmoonlit\nMoon/M\nmoonscape/MS\nmoonshiner/M\nmoonshine/SRZM\nmoonshot/MS\nmoonstone/SM\nmoonstruck\nmoonwalk/SDG\nMoore/M\nmoor/GDMJS\nmooring/M\nMoorish\nmoorland/MS\nMoor/MS\nmoose/M\nmoot/RDGS\nmoped/MS\nmoper/M\nmope/S\nmopey\nmopier\nmopiest\nmopish\nmopped\nmoppet/MS\nmopping\nmop/SZGMDR\nmoraine/MS\nmorale/MS\nMorales/M\nmoralistic\nmoralistically\nmoralist/MS\nmorality/UMS\nmoralization/CS\nmoralize/CGDRSZ\nmoralled\nmoraller\nmoralling\nmoral/SMY\nMora/M\nMoran/M\nmorass/SM\nmoratorium/SM\nMoravia/M\nMoravian\nmoray/SM\nmorbidity/SM\nmorbidness/S\nmorbid/YP\nmordancy/MS\nmordant/GDYS\nMordecai/M\nMord/M\nMordred/M\nMordy/M\nmore/DSN\nMoreen/M\nMorehouse/M\nMoreland/M\nmorel/SM\nMore/M\nMorena/M\nMoreno/M\nmoreover\nMorey/M\nMorgana/M\nMorganica/M\nMorgan/MS\nMorganne/M\nmorgen/M\nMorgen/M\nmorgue/SM\nMorgun/M\nMoria/M\nMoriarty/M\nmoribundity/M\nmoribund/Y\nMorie/M\nMorin/M\nmorion/M\nMorison/M\nMorissa/M\nMorita/M\nMoritz/M\nMorlee/M\nMorley/M\nMorly/M\nMormonism/MS\nMormon/SM\nMorna/M\nmorning/MY\nmorn/SGJDM\nMoroccan/S\nMorocco/M\nmorocco/SM\nMoro/M\nmoronic\nmoronically\nMoroni/M\nmoron/SM\nmoroseness/MS\nmorose/YP\nmorpheme/DSMG\nmorphemic/S\nMorpheus/M\nmorph/GDJ\nmorphia/S\nmorphine/MS\nmorphism/MS\nmorphologic\nmorphological/Y\nmorphology/MS\nmorphophonemic/S\nmorphophonemics/M\nmorphs\nMorrie/M\nmorris\nMorris/M\nMorrison/M\nMorristown/M\nMorrow/M\nmorrow/MS\nMorry/M\nmorsel/GMDS\nMorse/M\nmortality/SM\nmortal/SY\nmortarboard/SM\nmortar/GSDM\nMorten/M\nmortgageable\nmortgagee/SM\nmortgage/MGDS\nmortgagor/SM\nmortice's\nmortician/SM\nMortie/M\nmortification/M\nmortified/Y\nmortifier/M\nmortify/DRSXGN\nMortimer/M\nmortise/MGSD\nMort/MN\nMorton/M\nmortuary/MS\nMorty/M\nMosaic\nmosaicked\nmosaicking\nmosaic/MS\nMoscone/M\nMoscow/M\nMoseley/M\nMoselle/M\nMose/MSR\nMoser/M\nmosey/SGD\nMoshe/M\nMoslem's\nMosley/M\nmosque/SM\nmosquitoes\nmosquito/M\nmos/S\nmossback/MS\nMossberg/M\nMoss/M\nmoss/SDMG\nmossy/SRT\nmost/SY\nMosul/M\nmote/ASCNK\nmotel/MS\nmote's\nmotet/SM\nmothball/DMGS\nmotherboard/MS\nmotherfucker/MS!\nmotherfucking/!\nmotherhood/SM\nmothering/M\nmotherland/SM\nmotherless\nmotherliness/MS\nmotherly/P\nmother/RDYMZG\nmoths\nmoth/ZMR\nmotif/MS\nmotile/S\nmotility/MS\nmotional/K\nmotioner/M\nmotion/GRDMS\nmotionlessness/S\nmotionless/YP\nmotion's/ACK\nmotions/K\nmotivated/U\nmotivate/XDSNGV\nmotivational/Y\nmotivation/M\nmotivator/S\nmotiveless\nmotive/MGSD\nmotley/S\nmotlier\nmotliest\nmot/MSV\nmotocross/SM\nmotorbike/SDGM\nmotorboat/MS\nmotorcade/MSDG\nmotorcar/MS\nmotorcycle/GMDS\nmotorcyclist/SM\nmotor/DMSG\nmotoring/M\nmotorist/SM\nmotorization/SM\nmotorize/DSG\nmotorized/U\nmotorman/M\nmotormen\nmotormouth\nmotormouths\nMotorola/M\nmotorway/SM\nMotown/M\nmottle/GSRD\nmottler/M\nMott/M\nmottoes\nmotto/M\nmoue/DSMG\nmoulder/DSG\nmoult/GSD\nmound/GMDS\nmountable\nmountaineering/M\nmountaineer/JMDSG\nmountainousness/M\nmountainous/PY\nmountainside/MS\nmountain/SM\nmountaintop/SM\nMountbatten/M\nmountebank/SGMD\nmounted/U\nmount/EGACD\nmounter/SM\nmounties\nMountie/SM\nmounting/MS\nMount/M\nmounts/AE\nmourner/M\nmournfuller\nmournfullest\nmournfulness/S\nmournful/YP\nmourning/M\nmourn/ZGSJRD\nmouser/M\nmouse/SRDGMZ\nmousetrapped\nmousetrapping\nmousetrap/SM\nmousiness/MS\nmousing/M\nmousse/MGSD\nMoussorgsky/M\nmousy/PRT\nMouthe/M\nmouthful/MS\nmouthiness/SM\nmouth/MSRDG\nmouthorgan\nmouthpiece/SM\nmouths\nmouthwash/SM\nmouthwatering\nmouthy/PTR\nMouton/M\nmouton/SM\nmovable/ASP\nmovableness/AM\nmove/ARSDGZB\nmoved/U\nmovement/SM\nmover/AM\nmoviegoer/S\nmovie/SM\nmoving/YS\nmower/M\nMowgli/M\nmowing/M\nmow/SDRZG\nmoxie/MS\nMoyer/M\nMoyna/M\nMoyra/M\nMozambican/S\nMozambique/M\nMozart/M\nMozelle/M\nMozes/M\nMozilla/M\nmozzarella/MS\nmp\nMP\nmpg\nmph\nMPH\nMRI\nMr/M\nMrs\nms\nM's\nMS\nMSG\nMsgr/M\nm's/K\nMs/S\nMST\nMSW\nmt\nMT\nmtg\nmtge\nMt/M\nMTS\nMTV\nMuawiya/M\nMubarak/M\nmuchness/M\nmuch/SP\nmucilage/MS\nmucilaginous\nmucker/M\nmuck/GRDMS\nmuckraker/M\nmuckrake/ZMDRSG\nmucky/RT\nmucosa/M\nmucous\nmucus/SM\nmudded\nmuddily\nmuddiness/SM\nmudding\nmuddle/GRSDZ\nmuddleheaded/P\nmuddlehead/SMD\nmuddler/M\nmuddy/TPGRSD\nmudflat/S\nmudguard/SM\nmudlarks\nmud/MS\nmudroom/S\nmudslide/S\nmudslinger/M\nmudslinging/M\nmudsling/JRGZ\nMueller/M\nMuenster\nmuenster/MS\nmuesli/M\nmuezzin/MS\nmuff/GDMS\nMuffin/M\nmuffin/SM\nmuffler/M\nmuffle/ZRSDG\nMufi/M\nMufinella/M\nmufti/MS\nMugabe/M\nmugged\nmugger/SM\nmugginess/S\nmugging/S\nmuggy/RPT\nmugshot/S\nmug/SM\nmugwump/MS\nMuhammadanism/S\nMuhammadan/SM\nMuhammad/M\nMuire/M\nMuir/M\nMukden/M\nmukluk/SM\nmulattoes\nmulatto/M\nmulberry/MS\nmulch/GMSD\nmulct/SDG\nMulder/M\nmule/MGDS\nmuleskinner/S\nmuleteer/MS\nmulishness/MS\nmulish/YP\nmullah/M\nmullahs\nmullein/MS\nMullen/M\nmuller/M\nMuller/M\nmullet/MS\nMulligan/M\nmulligan/SM\nmulligatawny/SM\nMullikan/M\nMullins\nmullion/MDSG\nmull/RDSG\nMultan/M\nmulti\nMultibus/M\nmulticellular\nmultichannel/M\nmulticollinearity/M\nmulticolor/SDM\nmulticolumn\nmulticomponent\nmulticomputer/MS\nMultics/M\nMULTICS/M\nmulticultural\nmulticulturalism/S\nmultidimensional\nmultidimensionality\nmultidisciplinary\nmultifaceted\nmultifamily\nmultifariousness/SM\nmultifarious/YP\nmultifigure\nmultiform\nmultifunction/D\nmultilateral/Y\nmultilayer\nmultilevel/D\nmultilingual\nmultilingualism/S\nmultimedia/S\nmultimegaton/M\nmultimeter/M\nmultimillionaire/SM\nmultinational/S\nmultinomial/M\nmultiphase\nmultiple/SM\nmultiplet/SM\nmultiplex/GZMSRD\nmultiplexor's\nmultipliable\nmultiplicand/SM\nmultiplication/M\nmultiplicative/YS\nmultiplicity/MS\nmultiplier/M\nmultiply/ZNSRDXG\nmultiprocess/G\nmultiprocessor/MS\nmultiprogram\nmultiprogrammed\nmultiprogramming/MS\nmultipurpose\nmultiracial\nmultistage\nmultistory/S\nmultisyllabic\nmultitasking/S\nmultitude/MS\nmultitudinousness/M\nmultitudinous/YP\nmultiuser\nmultivalent\nmultivalued\nmultivariate\nmultiversity/M\nmultivitamin/S\nmu/M\nmumbler/M\nmumbletypeg/S\nmumble/ZJGRSD\nMumford/M\nmummed\nmummer/SM\nmummery/MS\nmummification/M\nmummify/XSDGN\nmumming\nmum/MS\nmummy/GSDM\nmumps/M\nmuncher/M\nM<6E>nchhausen/M\nmunchies\nMunch/M\nmunch/ZRSDG\nMuncie/M\nmundane/YSP\nMundt/M\nmunge/JGZSRD\nMunich/M\nmunicipality/SM\nmunicipal/YS\nmunificence/MS\nmunificent/Y\nmunition/SDG\nMunmro/M\nMunoz/M\nMunroe/M\nMunro/M\nmun/S\nMunsey/M\nMunson/M\nMunster/MS\nMuong/M\nmuon/M\nMuppet/M\nmuralist/SM\nmural/SM\nMurasaki/M\nMurat/M\nMurchison/M\nMurcia/M\nmurderer/M\nmurderess/S\nmurder/GZRDMS\nmurderousness/M\nmurderous/YP\nMurdoch/M\nMurdock/M\nMureil/M\nMurial/M\nmuriatic\nMurielle/M\nMuriel/M\nMurillo/M\nmurkily\nmurkiness/S\nmurk/TRMS\nmurky/RPT\nMurmansk/M\nmurmurer/M\nmurmuring/U\nmurmurous\nmurmur/RDMGZSJ\nMurphy/M\nmurrain/SM\nMurray/M\nMurrow/M\nMurrumbidgee/M\nMurry/M\nMurvyn/M\nmuscatel/MS\nMuscat/M\nmuscat/SM\nmusclebound\nmuscle/SDMG\nMuscovite/M\nmuscovite/MS\nMuscovy/M\nmuscularity/SM\nmuscular/Y\nmusculature/SM\nmuse\nMuse/M\nmuser/M\nmusette/SM\nmuseum/MS\nmus/GJDSR\nmusher/M\nmushiness/MS\nmush/MSRDG\nmushroom/DMSG\nmushy/PTR\nMusial/M\nmusicale/SM\nmusicality/SM\nmusicals\nmusical/YU\nmusician/MYS\nmusicianship/MS\nmusicked\nmusicking\nmusicological\nmusicologist/MS\nmusicology/MS\nmusic/SM\nmusing/Y\nMuskegon/M\nmuskeg/SM\nmuskellunge/SM\nmusketeer/MS\nmusketry/MS\nmusket/SM\nmusk/GDMS\nmuskie/M\nmuskiness/MS\nmuskmelon/MS\nmuskox/N\nmuskrat/MS\nmusky/RSPT\nMuslim/MS\nmuslin/MS\nmussel/MS\nMussolini/MS\nMussorgsky/M\nmuss/SDG\nmussy/RT\nmustache/DSM\nmustachio/MDS\nmustang/MS\nmustard/MS\nmuster/GD\nmustily\nmustiness/MS\nmustn't\nmust/RDGZS\nmust've\nmusty/RPT\nmutability/SM\nmutableness/M\nmutable/P\nmutably\nmutagen/SM\nmutant/MS\nmutate/XVNGSD\nmutational/Y\nmutation/M\nmutator/S\nmuted/Y\nmuteness/S\nmute/PDSRBYTG\nmutilate/XDSNG\nmutilation/M\nmutilator/MS\nmutineer/SMDG\nmutinous/Y\nmutiny/MGSD\nMutsuhito/M\nmutterer/M\nmutter/GZRDJ\nmuttonchops\nmutton/SM\nmutt/ZSMR\nmutuality/S\nmutual/SY\nmuumuu/MS\nmuzak\nMuzak/SM\nMuzo/M\nmuzzled/U\nmuzzle/MGRSD\nmuzzler/M\nMVP\nMW\nMyanmar\nMycah/M\nMyca/M\nMycenaean\nMycenae/M\nMychal/M\nmycologist/MS\nmycology/MS\nmyelitides\nmyelitis/M\nMyer/MS\nmyers\nmylar\nMylar/S\nMyles/M\nMylo/M\nMy/M\nmyna/SM\nMynheer/M\nmyocardial\nmyocardium/M\nmyopia/MS\nmyopically\nmyopic/S\nMyrah/M\nMyra/M\nMyranda/M\nMyrdal/M\nmyriad/S\nMyriam/M\nMyrilla/M\nMyrle/M\nMyrlene/M\nmyrmidon/S\nMyrna/M\nMyron/M\nmyrrh/M\nmyrrhs\nMyrta/M\nMyrtia/M\nMyrtice/M\nMyrtie/M\nMyrtle/M\nmyrtle/SM\nMyrvyn/M\nMyrwyn/M\nmys\nmy/S\nmyself\nMysore/M\nmysteriousness/MS\nmysterious/YP\nmystery/MDSG\nmystical/Y\nmysticism/MS\nmystic/SM\nmystification/M\nmystifier/M\nmystify/CSDGNX\nmystifying/Y\nmystique/MS\nMyst/M\nmythic\nmythical/Y\nmyth/MS\nmythographer/SM\nmythography/M\nmythological/Y\nmythologist/MS\nmythologize/CSDG\nmythology/SM\nmyths\nN\nNAACP\nnabbed\nnabbing\nNabisco/M\nnabob/SM\nNabokov/M\nnab/S\nnacelle/SM\nnacho/S\nNaCl/M\nnacre/MS\nnacreous\nNada/M\nNadean/M\nNadeen/M\nNader/M\nNadia/M\nNadine/M\nnadir/SM\nNadiya/M\nNadya/M\nNady/M\nnae/VM\nNagasaki/M\nnagged\nnagger/S\nnagging/Y\nnag/MS\nNagoya/M\nNagpur/M\nNagy/M\nNahuatl/SM\nNahum/M\nnaiad/SM\nnaifs\nnailbrush/SM\nnailer/M\nnail/SGMRD\nNaipaul/M\nNair/M\nNairobi/M\nNaismith/M\nnaive/SRTYP\nnaivet<65>/SM\nnaivety/MS\nNakamura/M\nNakayama/M\nnakedness/MS\nnaked/TYRP\nNakoma/M\nNalani/M\nNa/M\nNamath/M\nnameable/U\nname/ADSG\nnamedrop\nnamedropping\nnamed's\nnamed/U\nnameless/PY\nnamely\nnameplate/MS\nnamer/SM\nname's\nnamesake/SM\nNamibia/M\nNamibian/S\nnaming/M\nNam/M\nNanak/M\nNana/M\nNananne/M\nNancee/M\nNance/M\nNancey/M\nNanchang/M\nNancie/M\nNanci/M\nNancy/M\nNanete/M\nNanette/M\nNanice/M\nNani/M\nNanine/M\nNanjing\nNanking's\nNan/M\nNannette/M\nNannie/M\nNanni/M\nNanny/M\nnanny/SDMG\nnanometer/MS\nNanon/M\nNanook/M\nnanosecond/SM\nNansen/M\nNantes/M\nNantucket/M\nNaoma/M\nNaomi/M\nnapalm/MDGS\nnape/SM\nNaphtali/M\nnaphthalene/MS\nnaphtha/SM\nNapier/M\nnapkin/SM\nNaples/M\nnapless\nNap/M\nNapoleonic\nnapoleon/MS\nNapoleon/MS\nnapped\nnapper/MS\nNappie/M\nnapping\nNappy/M\nnappy/TRSM\nnap/SM\nNara/M\nNarbonne/M\nnarc/DGS\nnarcissism/MS\nnarcissistic\nnarcissist/MS\nnarcissus/M\nNarcissus/M\nnarcoleptic\nnarcoses\nnarcosis/M\nnarcotic/SM\nnarcotization/S\nnarcotize/GSD\nNariko/M\nNari/M\nnark's\nNarmada/M\nNarragansett/M\nnarrate/VGNSDX\nnarration/M\nnarrative/MYS\nnarratology\nnarrator/SM\nnarrowing/P\nnarrowness/SM\nnarrow/RDYTGPS\nnarwhal/MS\nnary\nnasality/MS\nnasalization/MS\nnasalize/GDS\nnasal/YS\nNASA/MS\nnascence/ASM\nnascent/A\nNASDAQ\nNash/M\nNashua/M\nNashville/M\nNassau/M\nNasser/M\nnastily\nnastiness/MS\nnasturtium/SM\nnasty/TRSP\nnatal\nNatala/M\nNatalee/M\nNatale/M\nNatalia/M\nNatalie/M\nNatalina/M\nNataline/M\nnatalist\nnatality/M\nNatal/M\nNatalya/M\nNata/M\nNataniel/M\nNatasha/M\nNatassia/M\nNatchez\nnatch/S\nNate/XMN\nNathalia/M\nNathalie/M\nNathanael/M\nNathanial/M\nNathaniel/M\nNathanil/M\nNathan/MS\nnationalism/SM\nnationalistic\nnationalistically\nnationalist/MS\nnationality/MS\nnationalization/MS\nnationalize/CSDG\nnationalized/AU\nnationalizer/SM\nnational/YS\nnationhood/SM\nnation/MS\nnationwide\nnativeness/M\nnative/PYS\nNatividad/M\nNativity/M\nnativity/MS\nNatka/M\nnatl\nNat/M\nNATO/SM\nnatter/SGD\nnattily\nnattiness/SM\nNatty/M\nnatty/TRP\nnaturalism/MS\nnaturalistic\nnaturalist/MS\nnaturalization/SM\nnaturalized/U\nnaturalize/GSD\nnaturalness/US\nnatural/PUY\nnaturals\nnature/ASDCG\nnature's\nnaturist\nNaugahyde/S\nnaughtily\nnaughtiness/SM\nnaught/MS\nnaughty/TPRS\nNaur/M\nNauru/M\nnausea/SM\nnauseate/DSG\nnauseating/Y\nnauseousness/SM\nnauseous/P\nnautical/Y\nnautilus/MS\nNavaho's\nNavajoes\nNavajo/S\nnaval/Y\nNavarro/M\nnavel/MS\nnave/SM\nnavigability/SM\nnavigableness/M\nnavigable/P\nnavigate/DSXNG\nnavigational\nnavigation/M\nnavigator/MS\nNavona/M\nNavratilova/M\nnavvy/M\nNavy/S\nnavy/SM\nnay/MS\nnaysayer/S\nNazarene/MS\nNazareth/M\nNazi/SM\nNazism/S\nNB\nNBA\nNBC\nNb/M\nNBS\nNC\nNCAA\nNCC\nNCO\nNCR\nND\nN'Djamena\nNdjamena/M\nNd/M\nNe\nNE\nNeala/M\nNeale/M\nNeall/M\nNeal/M\nNealon/M\nNealson/M\nNealy/M\nNeanderthal/S\nneap/DGS\nNeapolitan/SM\nnearby\nnearly/RT\nnearness/MS\nnearside/M\nnearsightedness/S\nnearsighted/YP\nnear/TYRDPSG\nneaten/DG\nneath\nneatness/MS\nneat/YRNTXPS\nNeb/M\nNebraska/M\nNebraskan/MS\nNebr/M\nNebuchadnezzar/MS\nnebulae\nnebula/M\nnebular\nnebulousness/SM\nnebulous/PY\nnecessaries\nnecessarily/U\nnecessary/U\nnecessitate/DSNGX\nnecessitation/M\nnecessitous\nnecessity/SM\nneckband/M\nneckerchief/MS\nneck/GRDMJS\nnecking/M\nnecklace/DSMG\nneckline/MS\nnecktie/MS\nnecrology/SM\nnecromancer/MS\nnecromancy/MS\nnecromantic\nnecrophiliac/S\nnecrophilia/M\nnecropolis/SM\nnecropsy/M\nnecroses\nnecrosis/M\nnecrotic\nnectarine/SM\nnectarous\nnectar/SM\nnectary/MS\nNeda/M\nNedda/M\nNeddie/M\nNeddy/M\nNedi/M\nNed/M\nn<6E>e\nneeded/U\nneeder/M\nneedful/YSP\nNeedham/M\nneediness/MS\nneedlecraft/M\nneedle/GMZRSD\nneedlepoint/SM\nneedlessness/S\nneedless/YP\nneedlewoman/M\nneedlewomen\nneedlework/RMS\nneedn't\nneed/YRDGS\nneedy/TPR\nNeel/M\nNeely/M\nne'er\nnefariousness/MS\nnefarious/YP\nNefen/M\nNefertiti/M\nnegated/U\nnegater/M\nnegate/XRSDVNG\nnegation/M\nnegativeness/SM\nnegative/PDSYG\nnegativism/MS\nnegativity/MS\nnegator/MS\nNegev/M\nneglecter/M\nneglectfulness/SM\nneglectful/YP\nneglect/SDRG\nnegligee/SM\nnegligence/MS\nnegligent/Y\nnegligibility/M\nnegligible\nnegligibly\nnegotiability/MS\nnegotiable/A\nnegotiant/M\nnegotiate/ASDXGN\nnegotiation/MA\nnegotiator/MS\nNegress/MS\nnegritude/MS\nNegritude/S\nNegroes\nnegroid\nNegroid/S\nNegro/M\nneg/S\nNehemiah/M\nNehru/M\nneighbored/U\nneighborer/M\nneighborhood/SM\nneighborlinesses\nneighborliness/UM\nneighborly/UP\nneighbor/SMRDYZGJ\nneigh/MDG\nneighs\nNeila/M\nNeile/M\nNeilla/M\nNeille/M\nNeill/M\nNeil/SM\nneither\nNelda/M\nNelia/M\nNelie/M\nNelle/M\nNellie/M\nNelli/M\nNell/M\nNelly/M\nNelsen/M\nNels/N\nNelson/M\nnelson/MS\nnematic\nnematode/SM\nNembutal/M\nnemeses\nnemesis\nNemesis/M\nneoclassical\nneoclassicism/MS\nneoclassic/M\nneocolonialism/MS\nneocortex/M\nneodymium/MS\nNeogene\nneolithic\nNeolithic/M\nneologism/SM\nneomycin/M\nneonatal/Y\nneonate/MS\nneon/DMS\nneophyte/MS\nneoplasm/SM\nneoplastic\nneoprene/SM\nNepalese\nNepali/MS\nNepal/M\nnepenthe/MS\nnephew/MS\nnephrite/SM\nnephritic\nnephritides\nnephritis/M\nnepotism/MS\nnepotist/S\nNeptune/M\nneptunium/MS\nnerd/S\nnerdy/RT\nNereid/M\nNerf/M\nNerissa/M\nNerita/M\nNero/M\nNeron/M\nNerta/M\nNerte/M\nNertie/M\nNerti/M\nNert/M\nNerty/M\nNeruda/M\nnervelessness/SM\nnerveless/YP\nnerve's\nnerve/UGSD\nnerviness/SM\nnerving/M\nnervousness/SM\nnervous/PY\nnervy/TPR\nNessa/M\nNessie/M\nNessi/M\nNessy/M\nNesta/M\nnester/M\nNester/M\nNestle/M\nnestler/M\nnestle/RSDG\nnestling/M\nNestorius/M\nNestor/M\nnest/RDGSBM\nnetball/M\nnether\nNetherlander/SM\nNetherlands/M\nnethermost\nnetherworld/S\nNetscape/M\nnet/SM\nNetta/M\nNettie/M\nNetti/M\nnetting/M\nnett/JGRDS\nNettle/M\nnettle/MSDG\nnettlesome\nNetty/M\nnetwork/SJMDG\nNetzahualcoyotl/M\nNeumann/M\nneuralgia/MS\nneuralgic\nneural/Y\nneurasthenia/MS\nneurasthenic/S\nneuritic/S\nneuritides\nneuritis/M\nneuroanatomy\nneurobiology/M\nneurological/Y\nneurologist/MS\nneurology/SM\nneuromuscular\nneuronal\nneurone/S\nneuron/MS\nneuropathology/M\nneurophysiology/M\nneuropsychiatric\nneuroses\nneurosis/M\nneurosurgeon/MS\nneurosurgery/SM\nneurotically\nneurotic/S\nneurotransmitter/S\nneuter/JZGRD\nneutralise's\nneutralism/MS\nneutralist/S\nneutrality/MS\nneutralization/MS\nneutralized/U\nneutralize/GZSRD\nneutral/PYS\nneutrino/MS\nneutron/MS\nneut/ZR\nNevada/M\nNevadan/S\nNevadian/S\nNeva/M\nnever\nnevermore\nnevertheless\nnevi\nNevile/M\nNeville/M\nNevil/M\nNevin/SM\nNevis/M\nNev/M\nNevsa/M\nNevsky/M\nnevus/M\nNewark/M\nnewbie/S\nnewborn/S\nNewbury/M\nNewburyport/M\nNewcastle/M\nnewcomer/MS\nnewed/A\nNewell/M\nnewel/MS\nnewer/A\nnewfangled\nnewfound\nnewfoundland\nNewfoundlander/M\nNewfoundland/SRMZ\nnewish\nnewline/SM\nnewlywed/MS\nNewman/M\nnewness/MS\nNewport/M\nnews/A\nnewsagent/MS\nnewsboy/SM\nnewscaster/M\nnewscasting/M\nnewscast/SRMGZ\nnewsdealer/MS\nnewsed\nnewses\nnewsflash/S\nnewsgirl/S\nnewsgroup/SM\nnewsing\nnewsletter/SM\nNeWS/M\nnewsman/M\nnewsmen\nnewspaperman/M\nnewspapermen\nnewspaper/SMGD\nnewspaperwoman/M\nnewspaperwomen\nnewsprint/MS\nnew/SPTGDRY\nnewsreader/MS\nnewsreel/SM\nnewsroom/S\nnews's\nnewsstand/MS\nNewsweekly/M\nnewsweekly/S\nNewsweek/MY\nnewswire\nnewswoman/M\nnewswomen\nnewsworthiness/SM\nnewsworthy/RPT\nnewsy/TRS\nnewt/MS\nNewtonian\nNewton/M\nnewton/SM\nNexis/M\nnext\nnexus/SM\nNeysa/M\nNF\nNFC\nNFL\nNFS\nNgaliema/M\nNguyen/M\nNH\nNHL\nniacin/SM\nNiagara/M\nNiall/M\nNial/M\nNiamey/M\nnibbed\nnibbing\nnibbler/M\nnibble/RSDGZ\nNibelung/M\nnib/SM\nNicaean\nNicaragua/M\nNicaraguan/S\nNiccolo/M\nNice/M\nNicene\nniceness/MS\nnicety/MS\nnice/YTPR\nniche/SDGM\nNicholas\nNichole/M\nNicholle/M\nNichol/MS\nNicholson/M\nnichrome\nnickelodeon/SM\nnickel/SGMD\nnicker/GD\nNickey/M\nnick/GZRDMS\nNickie/M\nNicki/M\nNicklaus/M\nNick/M\nnicknack's\nnickname/MGDRS\nnicknamer/M\nNickolai/M\nNickola/MS\nNickolaus/M\nNicko/M\nNicky/M\nNicobar/M\nNicodemus/M\nNicolai/MS\nNicola/MS\nNicolea/M\nNicole/M\nNicolette/M\nNicoli/MS\nNicolina/M\nNicoline/M\nNicolle/M\nNicol/M\nNico/M\nNicosia/M\nnicotine/MS\nNiebuhr/M\nniece/MS\nNiel/MS\nNielsen/M\nNiels/N\nNielson/M\nNietzsche/M\nNieves/M\nnifty/TRS\nNigel/M\nNigeria/M\nNigerian/S\nNigerien\nNiger/M\nniggardliness/SM\nniggardly/P\nniggard/SGMDY\nnigger/SGDM!\nniggler/M\nniggle/RSDGZJ\nniggling/Y\nnigh/RDGT\nnighs\nnightcap/SM\nnightclothes\nnightclubbed\nnightclubbing\nnightclub/MS\nnightdress/MS\nnightfall/SM\nnightgown/MS\nnighthawk/MS\nnightie/MS\nNightingale/M\nnightingale/SM\nnightlife/MS\nnightlong\nnightmare/MS\nnightmarish/Y\nnightshade/SM\nnightshirt/MS\nnight/SMYDZ\nnightspot/MS\nnightstand/SM\nnightstick/S\nnighttime/S\nnightwear/M\nnighty's\nNIH\nnihilism/MS\nnihilistic\nnihilist/MS\nNijinsky/M\nNikaniki/M\nNike/M\nNiki/M\nNikita/M\nNikkie/M\nNikki/M\nNikko/M\nNikolai/M\nNikola/MS\nNikolaos/M\nNikolaus/M\nNikolayev's\nNikoletta/M\nNikolia/M\nNikolos/M\nNiko/MS\nNikon/M\nNile/SM\nnilled\nnilling\nNil/MS\nnil/MYS\nnilpotent\nNilsen/M\nNils/N\nNilson/M\nNilsson/M\nNi/M\nnimbi\nnimbleness/SM\nnimble/TRP\nnimbly\nnimbus/DM\nNIMBY\nNimitz/M\nNimrod/MS\nNina/M\nnincompoop/MS\nninefold\nnine/MS\nninepence/M\nninepin/S\nninepins/M\nnineteen/SMH\nnineteenths\nninetieths\nNinetta/M\nNinette/M\nninety/MHS\nNineveh/M\nninja/S\nNinnetta/M\nNinnette/M\nninny/SM\nNinon/M\nNintendo/M\nninth\nninths\nNiobe/M\nniobium/MS\nnipped\nnipper/DMGS\nnippiness/S\nnipping/Y\nnipple/GMSD\nNipponese\nNippon/M\nnippy/TPR\nnip/S\nNirenberg/M\nnirvana/MS\nNirvana/S\nnisei\nNisei/MS\nNissa/M\nNissan/M\nNisse/M\nNissie/M\nNissy/M\nNita/M\nniter/M\nnitpick/DRSJZG\nnitrate/MGNXSD\nnitration/M\nnitric\nnitride/MGS\nnitriding/M\nnitrification/SM\nnitrite/MS\nnitrocellulose/MS\nnitrogenous\nnitrogen/SM\nnitroglycerin/MS\nnitrous\nnitwit/MS\nnit/ZSMR\nNiven/M\nnixer/M\nnix/GDSR\nNixie/M\nNixon/M\nNJ\nNkrumah/M\nNLRB\nnm\nNM\nno/A\nNOAA\nNoach/M\nNoah/M\nNoak/M\nNoami/M\nNoam/M\nNobelist/SM\nnobelium/MS\nNobel/M\nNobe/M\nNobie/M\nnobility/MS\nNoble/M\nnobleman/M\nnoblemen\nnobleness/SM\nnoblesse/M\nnoble/TPSR\nnoblewoman\nnoblewomen\nnob/MY\nnobody/MS\nNoby/M\nnocturnal/SY\nnocturne/SM\nnodal/Y\nnodded\nnodding\nnoddle/MSDG\nnoddy/M\nnode/MS\nNoDoz/M\nnod/SM\nnodular\nnodule/SM\nNoelani/M\nNoella/M\nNoelle/M\nNoell/M\nNoellyn/M\nNoel/MS\nnoel/S\nNoelyn/M\nNoe/M\nNoemi/M\nnoes/S\nnoggin/SM\nnohow\nnoise/GMSD\nnoiselessness/SM\nnoiseless/YP\nnoisemaker/M\nnoisemake/ZGR\nnoisily\nnoisiness/MS\nnoisome\nnoisy/TPR\nNola/M\nNolana/M\nNoland/M\nNolan/M\nNolie/M\nNollie/M\nNoll/M\nNolly/M\nNo/M\nnomadic\nnomad/SM\nNome/M\nnomenclature/MS\nNomi/M\nnominalized\nnominal/K\nnominally\nnominals\nnominate/CDSAXNG\nnomination/MAC\nnominative/SY\nnominator/CSM\nnominee/MS\nnon\nnonabrasive\nnonabsorbent/S\nnonacademic/S\nnonacceptance/MS\nnonacid/MS\nnonactive\nnonadaptive\nnonaddictive\nnonadhesive\nnonadjacent\nnonadjustable\nnonadministrative\nnonage/MS\nnonagenarian/MS\nnonaggression/SM\nnonagricultural\nNonah/M\nnonalcoholic/S\nnonaligned\nnonalignment/SM\nnonallergic\nNona/M\nnonappearance/MS\nnonassignable\nnonathletic\nnonattendance/SM\nnonautomotive\nnonavailability/SM\nnonbasic\nnonbeliever/SM\nnonbelligerent/S\nnonblocking\nnonbreakable\nnonburnable\nnonbusiness\nnoncaloric\nnoncancerous\nnoncarbohydrate/M\nnonce/MS\nnonchalance/SM\nnonchalant/YP\nnonchargeable\nnonclerical/S\nnonclinical\nnoncollectable\nnoncombatant/MS\nnoncombustible/S\nnoncommercial/S\nnoncommissioned\nnoncommittal/Y\nnoncom/MS\nnoncommunicable\nnoncompeting\nnoncompetitive\nnoncompliance/MS\nnoncomplying/S\nnoncomprehending\nnonconducting\nnonconductor/MS\nnonconforming\nnonconformist/SM\nnonconformity/SM\nnonconsecutive\nnonconservative\nnonconstructive\nnoncontagious\nnoncontiguous\nnoncontinuous\nnoncontributing\nnoncontributory\nnoncontroversial\nnonconvertible\nnoncooperation/SM\nnoncorroding/S\nnoncorrosive\nnoncredit\nnoncriminal/S\nnoncritical\nnoncrystalline\nnoncumulative\nnoncustodial\nnoncyclic\nnondairy\nnondecreasing\nnondeductible\nnondelivery/MS\nnondemocratic\nnondenominational\nnondepartmental\nnondepreciating\nnondescript/YS\nnondestructive/Y\nnondetachable\nnondeterminacy\nnondeterminate/Y\nnondeterminism\nnondeterministic\nnondeterministically\nnondisciplinary\nnondisclosure/SM\nnondiscrimination/SM\nnondiscriminatory\nnondramatic\nnondrinker/SM\nnondrying\nnondurable\nnoneconomic\nnoneducational\nnoneffective/S\nnonelastic\nnonelectrical\nnonelectric/S\nnonemergency\nnonempty\nnonenforceable\nnonentity/MS\nnonequivalence/M\nnonequivalent/S\nnone/S\nnones/M\nnonessential/S\nnonesuch/SM\nnonetheless\nnonevent/MS\nnonexchangeable\nnonexclusive\nnonexempt\nnonexistence/MS\nnonexistent\nnonexplosive/S\nnonextensible\nnonfactual\nnonfading\nnonfat\nnonfatal\nnonfattening\nnonferrous\nnonfictional\nnonfiction/SM\nnonflammable\nnonflowering\nnonfluctuating\nnonflying\nnonfood/M\nnonfreezing\nnonfunctional\nnongovernmental\nnongranular\nnonhazardous\nnonhereditary\nnonhuman\nnonidentical\nNonie/M\nNoni/M\nnoninclusive\nnonindependent\nnonindustrial\nnoninfectious\nnoninflammatory\nnoninflationary\nnoninflected\nnonintellectual/S\nnoninteracting\nnoninterchangeable\nnoninterference/MS\nnonintervention/SM\nnonintoxicating\nnonintuitive\nnoninvasive\nnonionic\nnonirritating\nnonjudgmental\nnonjudicial\nnonlegal\nnonlethal\nnonlinearity/MS\nnonlinear/Y\nnonlinguistic\nnonliterary\nnonliving\nnonlocal\nnonmagical\nnonmagnetic\nnonmalignant\nnonmember/SM\nnonmetallic\nnonmetal/MS\nnonmigratory\nnonmilitant/S\nnonmilitary\nNonnah/M\nNonna/M\nnonnarcotic/S\nnonnative/S\nnonnegative\nnonnegotiable\nnonnuclear\nnonnumerical/S\nnonobjective\nnonobligatory\nnonobservance/MS\nnonobservant\nnonoccupational\nnonoccurence\nnonofficial\nnonogenarian\nnonoperational\nnonoperative\nnonorthogonal\nnonorthogonality\nnonparallel/S\nnonparametric\nnonpareil/SM\nnonparticipant/SM\nnonparticipating\nnonpartisan/S\nnonpaying\nnonpayment/SM\nnonperformance/SM\nnonperforming\nnonperishable/S\nnonperson/S\nnonperturbing\nnonphysical/Y\nnonplus/S\nnonplussed\nnonplussing\nnonpoisonous\nnonpolitical\nnonpolluting\nnonporous\nnonpracticing\nnonprejudicial\nnonprescription\nnonprocedural/Y\nnonproductive\nnonprofessional/S\nnonprofit/SB\nnonprogrammable\nnonprogrammer\nnonproliferation/SM\nnonpublic\nnonpunishable\nnonracial\nnonradioactive\nnonrandom\nnonreactive\nnonreciprocal/S\nnonreciprocating\nnonrecognition/SM\nnonrecoverable\nnonrecurring\nnonredeemable\nnonreducing\nnonrefillable\nnonrefundable\nnonreligious\nnonrenewable\nnonrepresentational\nnonresidential\nnonresident/SM\nnonresidual\nnonresistance/SM\nnonresistant/S\nnonrespondent/S\nnonresponse\nnonrestrictive\nnonreturnable/S\nnonrhythmic\nnonrigid\nnonsalaried\nnonscheduled\nnonscientific\nnonscoring\nnonseasonal\nnonsectarian\nnonsecular\nnonsegregated\nnonsense/MS\nnonsensicalness/M\nnonsensical/PY\nnonsensitive\nnonsexist\nnonsexual\nnonsingular\nnonskid\nnonslip\nnonsmoker/SM\nnonsmoking\nnonsocial\nnonspeaking\nnonspecialist/MS\nnonspecializing\nnonspecific\nnonspiritual/S\nnonstaining\nnonstandard\nnonstarter/SM\nnonstick\nnonstop\nnonstrategic\nnonstriking\nnonstructural\nnonsuccessive\nnonsupervisory\nnonsupport/GS\nnonsurgical\nnonsustaining\nnonsympathizer/M\nnontarnishable\nnontaxable/S\nnontechnical/Y\nnontenured\nnonterminal/MS\nnonterminating\nnontermination/M\nnontheatrical\nnonthinking/S\nnonthreatening\nnontoxic\nnontraditional\nnontransferable\nnontransparent\nnontrivial\nnontropical\nnonuniform\nnonunion/S\nnonuser/SM\nnonvenomous\nnonverbal/Y\nnonveteran/MS\nnonviable\nnonviolence/SM\nnonviolent/Y\nnonvirulent\nnonvocal\nnonvocational\nnonvolatile\nnonvolunteer/S\nnonvoter/MS\nnonvoting\nnonwhite/SM\nnonworking\nnonyielding\nnonzero\nnoodle/GMSD\nnook/MS\nnoonday/MS\nnoon/GDMS\nnooning/M\nnoontide/MS\nnoontime/MS\nnoose/SDGM\nnope/S\nNORAD/M\nnoradrenalin\nnoradrenaline/M\nNorah/M\nNora/M\nNorbert/M\nNorberto/M\nNorbie/M\nNorby/M\nNordhoff/M\nNordic/S\nNordstrom/M\nNorean/M\nNoreen/M\nNorene/M\nNorfolk/M\nnor/H\nNorina/M\nNorine/M\nnormalcy/MS\nnormality/SM\nnormalization/A\nnormalizations\nnormalization's\nnormalized/AU\nnormalizes/AU\nnormalize/SRDZGB\nnormal/SY\nNorma/M\nNormand/M\nNormandy/M\nNorman/SM\nnormativeness/M\nnormative/YP\nNormie/M\nnorm/SMGD\nNormy/M\nNorplant\nNorrie/M\nNorri/SM\nNorristown/M\nNorry/M\nNorse\nNorseman/M\nNorsemen\nNorthampton/M\nnorthbound\nnortheastern\nnortheaster/YM\nNortheast/SM\nnortheastward/S\nnortheast/ZSMR\nnortherly/S\nnorther/MY\nNortherner/M\nnorthernmost\nnorthern/RYZS\nNorthfield/M\nnorthing/M\nnorthland\nNorth/M\nnorthmen\nnorth/MRGZ\nNorthrop/M\nNorthrup/M\nnorths\nNorths\nNorthumberland/M\nnorthward/S\nnorthwestern\nnorthwester/YM\nnorthwest/MRZS\nNorthwest/MS\nnorthwestward/S\nNorton/M\nNorwalk/M\nNorway/M\nNorwegian/S\nNorwich/M\nNorw/M\nnosebag/M\nnosebleed/SM\nnosecone/S\nnosedive/DSG\nnosed/V\nnosegay/MS\nnose/M\nNosferatu/M\nnos/GDS\nnosh/MSDG\nnosily\nnosiness/MS\nnosing/M\nnostalgia/SM\nnostalgically\nnostalgic/S\nNostradamus/M\nNostrand/M\nnostril/SM\nnostrum/SM\nnosy/SRPMT\nnotability/SM\nnotableness/M\nnotable/PS\nnotably\nnotarial\nnotarization/S\nnotarize/DSG\nnotary/MS\nnotate/VGNXSD\nnotational/CY\nnotation/CMSF\nnotative/CF\nnotch/MSDG\nnot/DRGB\nnotebook/MS\nnote/CSDFG\nnotedness/M\nnoted/YP\nnotepad/S\nnotepaper/MS\nnote's\nnoteworthiness/SM\nnoteworthy/P\nnothingness/SM\nnothing/PS\nnoticeable/U\nnoticeably\nnoticeboard/S\nnoticed/U\nnotice/MSDG\nnotifiable\nnotification/M\nnotifier/M\nnotify/NGXSRDZ\nnotional/Y\nnotion/MS\nnotoriety/S\nnotoriousness/M\nnotorious/YP\nNotre/M\nNottingham/M\nnotwithstanding\nNouakchott/M\nnougat/MS\nNoumea/M\nnoun/SMK\nnourish/DRSGL\nnourished/U\nnourisher/M\nnourishment/SM\nnous/M\nnouveau\nnouvelle\nnovae\nNovak/M\nNova/M\nnova/MS\nnovelette/SM\nNovelia/M\nnovelist/SM\nnovelization/S\nnovelize/GDS\nNovell/SM\nnovella/SM\nnovel/SM\nnovelty/MS\nNovember/SM\nnovena/SM\nnovene\nNovgorod/M\nnovice/MS\nnovitiate/MS\nNov/M\nNovocaine/M\nNovocain/S\nNovokuznetsk/M\nNovosibirsk/M\nNOW\nnowadays\nnoway/S\nNowell/M\nnowhere/S\nnowise\nnow/S\nnoxiousness/M\nnoxious/PY\nNoyce/M\nNoyes/M\nnozzle/MS\nNp\nNP\nNRA\nnroff/M\nN's\nNS\nn's/CI\nNSF\nn/T\nNT\nnth\nnuance/SDM\nnubbin/SM\nnubby/RT\nNubia/M\nNubian/M\nnubile\nnub/MS\nnuclear/K\nnuclease/M\nnucleated/A\nnucleate/DSXNG\nnucleation/M\nnucleic\nnuclei/M\nnucleoli\nnucleolus/M\nnucleon/MS\nnucleotide/MS\nnucleus/M\nnuclide/M\nnude/CRS\nnudely\nnudeness/M\nnudest\nnudge/GSRD\nnudger/M\nnudism/MS\nnudist/MS\nnudity/MS\nnugatory\nNugent/M\nnugget/SM\nnuisance/MS\nnuke/DSMG\nNukualofa\nnull/DSG\nnullification/M\nnullifier/M\nnullify/RSDXGNZ\nnullity/SM\nnu/M\nnumbered/UA\nnumberer/M\nnumberless\nnumberplate/M\nnumber/RDMGJ\nnumbers/A\nNumbers/M\nnumbing/Y\nnumbness/MS\nnumb/SGZTYRDP\nnumbskull's\nnumerable/IC\nnumeracy/SI\nnumeral/YMS\nnumerate/SDNGX\nnumerates/I\nnumeration/M\nnumerator/MS\nnumerical/Y\nnumeric/S\nnumerological\nnumerologist/S\nnumerology/MS\nnumerousness/M\nnumerous/YP\nnuminous/S\nnumismatic/S\nnumismatics/M\nnumismatist/MS\nnumskull/SM\nNunavut/M\nnuncio/SM\nNunez/M\nNunki/M\nnun/MS\nnunnery/MS\nnuptial/S\nNuremberg/M\nNureyev/M\nnursemaid/MS\nnurser/M\nnurseryman/M\nnurserymen\nnursery/MS\nnurse/SRDJGMZ\nnursling/M\nnurturer/M\nnurture/SRDGZM\nnus\nnutate/NGSD\nnutation/M\nnutcracker/M\nnutcrack/RZ\nnuthatch/SM\nnutmeat/SM\nnutmegged\nnutmegging\nnutmeg/MS\nnut/MS\nnutpick/MS\nNutrasweet/M\nnutria/SM\nnutrient/MS\nnutriment/MS\nnutritional/Y\nnutritionist/MS\nnutrition/SM\nnutritiousness/MS\nnutritious/PY\nnutritive/Y\nnutshell/MS\nnutted\nnuttiness/SM\nnutting\nnutty/TRP\nnuzzle/GZRSD\nNV\nNW\nNWT\nNY\nNyasa/M\nNYC\nNydia/M\nNye/M\nNyerere/M\nnylon/SM\nnymphet/MS\nnymph/M\nnympholepsy/M\nnymphomaniac/S\nnymphomania/MS\nnymphs\nNyquist/M\nNYSE\nNyssa/M\nNZ\no\nO\noafishness/S\noafish/PY\noaf/MS\nOahu/M\nOakland/M\nOakley/M\nOakmont/M\noak/SMN\noakum/MS\noakwood\noar/GSMD\noarlock/MS\noarsman/M\noarsmen\noarswoman\noarswomen\nOAS\noases\noasis/M\noatcake/MS\noater/M\nOates/M\noath/M\noaths\noatmeal/SM\noat/SMNR\nOaxaca/M\nob\nOB\nObadiah/M\nObadias/M\nobbligato/S\nobduracy/S\nobdurateness/S\nobdurate/PDSYG\nObediah/M\nobedience/EMS\nobedient/EY\nObed/M\nobeisance/MS\nobeisant/Y\nobelisk/SM\nOberlin/M\nOberon/M\nobese\nobesity/MS\nobey/EDRGS\nobeyer/EM\nobfuscate/SRDXGN\nobfuscation/M\nobfuscatory\nObidiah/M\nObie/M\nobi/MDGS\nobit/SMR\nobituary/SM\nobj\nobjectify/GSDXN\nobjectionableness/M\nobjectionable/U\nobjectionably\nobjection/SMB\nobjectiveness/MS\nobjective/PYS\nobjectivity/MS\nobjector/SM\nobject/SGVMD\nobjurgate/GNSDX\nobjurgation/M\noblate/NYPSX\noblation/M\nobligate/NGSDXY\nobligational\nobligation/M\nobligatorily\nobligatory\nobliged/E\nobliger/M\nobliges/E\noblige/SRDG\nobligingness/M\nobliging/PY\noblique/DSYGP\nobliqueness/S\nobliquity/MS\nobliterate/VNGSDX\nobliteration/M\nobliterative/Y\noblivion/MS\nobliviousness/MS\noblivious/YP\noblongness/M\noblong/SYP\nobloquies\nobloquy/M\nOb/MD\nobnoxiousness/MS\nobnoxious/YP\noboe/SM\noboist/S\nobos\nO'Brien/M\nobs\nobscene/RYT\nobscenity/MS\nobscurantism/MS\nobscurantist/MS\nobscuration\nobscureness/M\nobscure/YTPDSRGL\nobscurity/MS\nobsequies\nobsequiousness/S\nobsequious/YP\nobsequy\nobservability/M\nobservable/SU\nobservably\nobservance/MS\nobservantly\nobservants\nobservant/U\nobservational/Y\nobservation/MS\nobservatory/MS\nobserved/U\nobserver/M\nobserve/ZGDSRB\nobserving/Y\nobsess/GVDS\nobsessional\nobsession/MS\nobsessiveness/S\nobsessive/PYS\nobsidian/SM\nobsolesce/GSD\nobsolescence/S\nobsolescent/Y\nobsolete/GPDSY\nobsoleteness/M\nobstacle/SM\nobstetrical\nobstetrician/SM\nobstetric/S\nobstetrics/M\nobstinacy/SM\nobstinateness/M\nobstinate/PY\nobstreperousness/SM\nobstreperous/PY\nobstructed/U\nobstructer/M\nobstructionism/SM\nobstructionist/MS\nobstruction/SM\nobstructiveness/MS\nobstructive/PSY\nobstruct/RDVGS\nobtainable/U\nobtainably\nobtain/LSGDRB\nobtainment/S\nobtrude/DSRG\nobtruder/M\nobtrusion/S\nobtrusiveness/MSU\nobtrusive/UPY\nobtuseness/S\nobtuse/PRTY\nobverse/YS\nobviate/XGNDS\nobviousness/SM\nobvious/YP\nOby/M\nocarina/MS\nO'Casey\nOccam/M\noccasional/Y\noccasion/MDSJG\nOccidental/S\noccidental/SY\noccident/M\nOccident/SM\noccipital/Y\nocclude/GSD\nocclusion/MS\nocclusive/S\nocculter/M\noccultism/SM\noccult/SRDYG\noccupancy/SM\noccupant/MS\noccupational/Y\noccupation/SAM\noccupied/AU\noccupier/M\noccupies/A\noccupy/RSDZG\noccur/AS\noccurred/A\noccurrence/SM\noccurring/A\noceanfront/MS\noceangoing\nOceania/M\noceanic\nocean/MS\noceanographer/SM\noceanographic\noceanography/SM\noceanology/MS\noceanside\nOceanside/M\nOceanus/M\nocelot/SM\nocher/DMGS\nOchoa/M\no'clock\nO'Clock\nO'Connell/M\nO'Connor/M\nOconomowoc/M\nOCR\noctagonal/Y\noctagon/SM\noctahedral\noctahedron/M\noctal/S\noctane/MS\noctant/M\noctave/MS\nOctavia/M\nOctavian/M\nOctavio/M\nOctavius/M\noctavo/MS\noctennial\noctet/SM\noctile\noctillion/M\nOct/M\nOctober/MS\noctogenarian/MS\noctopus/SM\noctoroon/M\nocular/S\noculist/SM\nOD\nodalisque/SM\noddball/SM\noddity/MS\noddment/MS\noddness/MS\nodd/TRYSPL\nOdele/M\nOdelia/M\nOdelinda/M\nOdella/M\nOdelle/M\nOdell/M\nO'Dell/M\node/MDRS\nOde/MR\nOderberg/MS\nOder/M\nOdessa/M\nOdets/M\nOdetta/M\nOdette/M\nOdey/M\nOdie/M\nOdilia/M\nOdille/M\nOdin/M\nodiousness/MS\nodious/PY\nOdis/M\nodium/MS\nOdo/M\nodometer/SM\nOdom/M\nO'Donnell/M\nodor/DMS\nodoriferous\nodorless\nodorous/YP\nODs\nO'Dwyer/M\nOdy/M\nOdysseus/M\nOdyssey/M\nodyssey/S\nOE\nOED\noedipal\nOedipal/Y\nOedipus/M\nOEM/M\nOEMS\noenology/MS\noenophile/S\no'er\nO'Er\nOersted/M\noesophagi\noeuvre/SM\nOfelia/M\nOfella/M\noffal/MS\noffbeat/MS\noffcuts\nOffenbach/M\noffender/M\noffend/SZGDR\noffense/MSV\noffensively/I\noffensiveness/MSI\noffensive/YSP\nofferer/M\noffering/M\noffer/RDJGZ\noffertory/SM\noffhand/D\noffhandedness/S\noffhanded/YP\nofficeholder/SM\nofficemate/S\nofficer/GMD\nofficership/S\noffice/SRMZ\nofficialdom/SM\nofficialism/SM\nofficially/U\nofficial/PSYM\nofficiant/SM\nofficiate/XSDNG\nofficiation/M\nofficiator/MS\nofficio\nofficiousness/MS\nofficious/YP\noffing/M\noffish\noffload/GDS\noffprint/GSDM\nofframp\noffset/SM\noffsetting\noffshoot/MS\noffshore\noffside/RS\noffspring/M\noffstage/S\noff/SZGDRJ\nofftrack\nOfilia/M\nof/K\noften/RT\noftentimes\noft/NRT\nofttimes\nOgbomosho/M\nOgdan/M\nOgden/M\nOgdon/M\nOgilvy/M\nogive/M\nOglethorpe/M\nogle/ZGDSR\nogreish\nogre/MS\nogress/S\noh\nOH\nO'Hara\nO'Hare/M\nO'Higgins\nOhioan/S\nOhio/M\nohmic\nohmmeter/MS\nohm/SM\noho/S\nohs\nOHSA/M\noilcloth/M\noilcloths\noiler/M\noilfield/MS\noiliness/SM\noilman/M\noil/MDRSZG\noilmen\noilseed/SM\noilskin/MS\noily/TPR\noink/GDS\nointment/SM\nOise/M\nOJ\nOjibwa/SM\nOkamoto/M\nokapi/SM\nOkayama/M\nokay/M\nOkeechobee/M\nO'Keeffe\nOkefenokee\nOkhotsk/M\nOkinawa/M\nOkinawan/S\nOklahoma/M\nOklahoman/SM\nOkla/M\nOK/MDG\nokra/MS\nOKs\nOktoberfest\nOlaf/M\nOlag/M\nOla/M\nOlav/M\nOldenburg/M\nolden/DG\nOldfield/M\noldie/MS\noldish\noldness/S\nOldsmobile/M\noldster/SM\nOlduvai/M\nold/XTNRPS\nol<6F>\noleaginous\noleander/SM\nO'Leary/M\nolefin/M\nOleg/M\nOle/MV\nOlenek/M\nOlenka/M\nOlen/M\nOlenolin/M\noleomargarine/SM\noleo/S\noles\nolfactory\nOlga/M\nOlia/M\noligarchic\noligarchical\noligarch/M\noligarchs\noligarchy/SM\nOligocene\noligopolistic\noligopoly/MS\nOlimpia/M\nOlin/M\nolive/MSR\nOlive/MZR\nOliver/M\nOlivero/M\nOlivette/M\nOlivetti/M\nOlivia/M\nOlivier/M\nOlivie/RM\nOliviero/M\nOliy/M\nOllie/M\nOlly/M\nOlmec\nOlmsted/M\nOlsen/M\nOlson/M\nOlva/M\nOlvan/M\nOlwen/M\nOlympe/M\nOlympiad/MS\nOlympian/S\nOlympia/SM\nOlympic/S\nOlympie/M\nOlympus/M\nOmaha/SM\nOman/M\nOmar/M\nombudsman/M\nombudsmen\nOmdurman/M\nomega/MS\nomelet/SM\nomelette's\nomen/DMG\nOmero/M\nomicron/MS\nominousness/SM\nominous/YP\nomission/MS\nomit/S\nomitted\nomitting\nomnibus/MS\nomni/M\nomnipotence/SM\nOmnipotent\nomnipotent/SY\nomnipresence/MS\nomnipresent/Y\nomniscience/SM\nomniscient/YS\nomnivore/MS\nomnivorousness/MS\nomnivorous/PY\noms\nOmsk/M\nom/XN\nON\nonanism/M\nOnassis/M\noncer/M\nonce/SR\noncogene/S\noncologist/S\noncology/SM\noncoming/S\nOndrea/M\nOneal/M\nOnega/M\nOnegin/M\nOneida/SM\nO'Neil\nO'Neill\noneness/MS\none/NPMSX\noner/M\nonerousness/SM\nonerous/YP\noneself\nonetime\noneupmanship\nOnfre/M\nOnfroi/M\nongoing/S\nOnida/M\nonion/GDM\nonionskin/MS\nonlooker/MS\nonlooking\nonly/TP\nOnofredo/M\nOno/M\nonomatopoeia/SM\nonomatopoeic\nonomatopoetic\nOnondaga/MS\nonrush/GMS\non/RY\nons\nOnsager/M\nonset/SM\nonsetting\nonshore\nonside\nonslaught/MS\nOntarian/S\nOntario/M\nOnt/M\nonto\nontogeny/SM\nontological/Y\nontology/SM\nonus/SM\nonward/S\nonyx/MS\noodles\nooh/GD\noohs\noolitic\nOona/M\nOOo/M\noops/S\nOort/M\nooze/GDS\noozy/RT\nopacity/SM\nopalescence/S\nopalescent/Y\nOpalina/M\nOpaline/M\nOpal/M\nopal/SM\nopaque/GTPYRSD\nopaqueness/SM\nopcode/MS\nOPEC\nOpel/M\nopencast\nopened/AU\nopener/M\nopenhandedness/SM\nopenhanded/P\nopenhearted\nopening/M\nopenness/S\nOpenOffice.org/M\nopens/A\nopenwork/MS\nopen/YRDJGZTP\noperable/I\noperandi\noperand/SM\noperant/YS\nopera/SM\noperate/XNGVDS\noperatically\noperatic/S\noperationalization/S\noperationalize/D\noperational/Y\noperation/M\noperative/IP\noperatively\noperativeness/MI\noperatives\noperator/SM\noperetta/MS\nope/S\nOphelia/M\nOphelie/M\nOphiuchus/M\nophthalmic/S\nophthalmologist/SM\nophthalmology/MS\nopiate/GMSD\nopine/XGNSD\nopinionatedness/M\nopinionated/PY\nopinion/M\nopioid\nopium/MS\nopossum/SM\nopp\nOppenheimer/M\nopponent/MS\nopportune/IY\nopportunism/SM\nopportunistic\nopportunistically\nopportunist/SM\nopportunity/MS\noppose/BRSDG\nopposed/U\nopposer/M\noppositeness/M\nopposite/SXYNP\noppositional\nopposition/M\noppress/DSGV\noppression/MS\noppressiveness/MS\noppressive/YP\noppressor/MS\nopprobrious/Y\nopprobrium/SM\nOprah/M\nops\nopt/DSG\nopthalmic\nopthalmologic\nopthalmology\noptical/Y\noptician/SM\noptic/S\noptics/M\noptima\noptimality\noptimal/Y\noptimise's\noptimism/SM\noptimistic\noptimistically\noptimist/SM\noptimization/SM\noptimize/DRSZG\noptimized/U\noptimizer/M\noptimizes/U\noptimum/SM\noptionality/M\noptional/YS\noption/GDMS\noptoelectronic\noptometric\noptometrist/MS\noptometry/SM\nopulence/SM\nopulent/Y\nopus/SM\nop/XGDN\nOR\noracle/GMSD\noracular\nOralee/M\nOralia/M\nOralie/M\nOralla/M\nOralle/M\noral/YS\nOra/M\norangeade/MS\nOrange/M\norange/MS\norangery/SM\norangutan/MS\nOranjestad/M\nOran/M\norate/SDGNX\noration/M\noratorical/Y\noratorio/MS\norator/MS\noratory/MS\nOrazio/M\nOrbadiah/M\norbicular\norbiculares\norbital/MYS\norbit/MRDGZS\norb/SMDG\norchard/SM\norchestral/Y\norchestra/MS\norchestrate/GNSDX\norchestrater's\norchestration/M\norchestrator/M\norchid/SM\nordainer/M\nordainment/MS\nordain/SGLDR\nordeal/SM\norder/AESGD\nordered/U\norderer\nordering/S\norderless\norderliness/SE\norderly/PS\norder's/E\nordinal/S\nordinance/MS\nordinarily\nordinariness/S\nordinary/RSPT\nordinated\nordinate/I\nordinates\nordinate's\nordinating\nordination/SM\nordnance/SM\nOrdovician\nordure/MS\noregano/SM\nOreg/M\nOregonian/S\nOregon/M\nOrelee/M\nOrelia/M\nOrelie/M\nOrella/M\nOrelle/M\nOrel/M\nOren/M\nOre/NM\nore/NSM\nOreo\nOrestes\norgandie's\norgandy/MS\norganelle/MS\norganically/I\norganic/S\norganismic\norganism/MS\norganist/MS\norganizable/UMS\norganizational/MYS\norganization/MEAS\norganize/AGZDRS\norganized/UE\norganizer/MA\norganizes/E\norganizing/E\norgan/MS\norganometallic\norganza/SM\norgasm/GSMD\norgasmic\norgiastic\norgy/SM\nOriana/M\noriel/MS\norientable\nOriental/S\noriental/SY\norientated/A\norientate/ESDXGN\norientates/A\norientation/AMES\norienteering/M\norienter\norient/GADES\norient's\nOrient/SM\norifice/MS\norig\norigami/MS\noriginality/SM\noriginally\noriginal/US\noriginate/VGNXSD\norigination/M\noriginative/Y\noriginator/SM\norigin/MS\nOrin/M\nOrinoco/M\noriole/SM\nOrion/M\norison/SM\nOriya/M\nOrizaba/M\nOrkney/M\nOrland/M\nOrlando/M\nOrlan/M\nOrleans\nOrlick/M\nOrlon/SM\nOrly/M\normolu/SM\nor/MY\nornamental/SY\nornamentation/SM\nornament/GSDM\nornateness/SM\nornate/YP\norneriness/SM\nornery/PRT\nornithological\nornithologist/SM\nornithology/MS\norographic/M\norography/M\nOrono/M\norotund\norotundity/MS\norphanage/MS\norphanhood/M\norphan/SGDM\nOrpheus/M\nOrphic\nOrran/M\nOrren/M\nOrrin/M\norris/SM\nOrr/MN\nors\nOrsa/M\nOrsola/M\nOrson/M\nOrtega/M\nOrtensia/M\northodontia/S\northodontic/S\northodontics/M\northodontist/MS\northodoxies\northodoxly/U\nOrthodox/S\northodoxy's\northodox/YS\northodoxy/U\northogonality/M\northogonalization/M\northogonalized\northogonal/Y\northographic\northographically\northography/MS\northonormal\northopedic/S\northopedics/M\northopedist/SM\northophosphate/MS\northorhombic\nOrtiz/M\nOrton/M\nOrval/M\nOrville/M\nOrv/M\nOrwellian\nOrwell/M\no's\nOsage/SM\nOsaka/M\nOsbert/M\nOsborne/M\nOsborn/M\nOsbourne/M\nOsbourn/M\nOscar/SM\nOsceola/M\noscillate/SDXNG\noscillation/M\noscillator/SM\noscillatory\noscilloscope/SM\nosculate/XDSNG\nosculation/M\nOsgood/M\nOSHA\nOshawa/M\nO'Shea/M\nOshkosh/M\nosier/MS\nOsiris/M\nOslo/M\nOs/M\nOS/M\nOsman/M\nosmium/MS\nOsmond/M\nosmoses\nosmosis/M\nosmotic\nOsmund/M\nosprey/SM\nosseous/Y\nOssie/M\nossification/M\nossify/NGSDX\nostensible\nostensibly\nostentation/MS\nostentatiousness/M\nostentatious/PY\nosteoarthritides\nosteoarthritis/M\nosteology/M\nosteopathic\nosteopath/M\nosteopaths\nosteopathy/MS\nosteoporoses\nosteoporosis/M\nostracise's\nostracism/MS\nostracize/GSD\nOstrander/M\nostrich/MS\nOstrogoth/M\nOstwald/M\nO'Sullivan/M\nOsvaldo/M\nOswald/M\nOswell/M\nOT\nOTB\nOTC\nOtes\nOtha/M\nOthelia/M\nOthella/M\nOthello/M\notherness/M\nother/SMP\notherwise\notherworldly/P\notherworld/Y\nOthilia/M\nOthilie/M\nOtho/M\notiose\nOtis/M\nOTOH\nOttawa/MS\notter/DMGS\nOttilie/M\nOtto/M\nOttoman\nottoman/MS\nOuagadougou/M\noubliette/SM\nouch/SDG\noughtn't\nought/SGD\nOuija/MS\nounce/MS\nour/S\nourself\nourselves\nouster/M\noust/RDGZS\noutage/MS\noutargue/GDS\noutback/MRS\noutbalance/GDS\noutbidding\noutbid/S\noutboard/S\noutboast/GSD\noutbound/S\noutbreak/SMG\noutbroke\noutbroken\noutbuilding/SM\noutburst/MGS\noutcast/GSM\noutclass/SDG\noutcome/SM\noutcropped\noutcropping/S\noutcrop/SM\noutcry/MSDG\noutdated/P\noutdid\noutdistance/GSD\noutdoes\noutdo/G\noutdone\noutdoor/S\noutdoorsy\noutdraw/GS\noutdrawn\noutdrew\noutermost\nouterwear/M\noutface/SDG\noutfall/MS\noutfielder/M\noutfield/RMSZ\noutfight/SG\noutfit/MS\noutfitted\noutfitter/MS\noutfitting\noutflank/SGD\noutflow/SMDG\noutfought\noutfox/GSD\noutgeneraled\noutgoes\noutgo/GJ\noutgoing/P\noutgrew\noutgrip\noutgrow/GSH\noutgrown\noutgrowth/M\noutgrowths\noutguess/SDG\nouthit/S\nouthitting\nouthouse/SM\nouting/M\noutlaid\noutlander/M\noutlandishness/MS\noutlandish/PY\noutland/ZR\noutlast/GSD\noutlawry/M\noutlaw/SDMG\noutlay/GSM\noutlet/SM\noutliers\noutline/SDGM\noutlive/GSD\noutlook/MDGS\noutlying\noutmaneuver/GSD\noutmatch/SDG\noutmigration\noutmoded\noutness/M\noutnumber/GDS\noutpaced\noutpatient/SM\noutperform/DGS\nout/PJZGSDR\noutplacement/S\noutplay/GDS\noutpoint/GDS\noutpost/SM\noutpouring/M\noutpour/MJG\noutproduce/GSD\noutput/SM\noutputted\noutputting\noutrace/GSD\noutrage/GSDM\noutrageousness/M\noutrageous/YP\noutran\noutrank/GSD\noutr<74>\noutreach/SDG\noutrider/MS\noutrigger/SM\noutright/Y\noutrunning\noutrun/S\noutscore/GDS\noutsell/GS\noutset/MS\noutsetting\noutshine/SG\noutshone\noutshout/GDS\noutsider/PM\noutside/ZSR\noutsize/S\noutskirt/SM\noutsmart/SDG\noutsold\noutsource/SDJG\noutspend/SG\noutspent\noutspoke\noutspokenness/SM\noutspoken/YP\noutspread/SG\noutstanding/Y\noutstate/NX\noutstation/M\noutstay/SDG\noutstretch/GSD\noutstripped\noutstripping\noutstrip/S\nouttake/S\noutvote/GSD\noutwardness/M\noutward/SYP\noutwear/SG\noutweigh/GD\noutweighs\noutwit/S\noutwitted\noutwitting\noutwore\noutwork/SMDG\noutworn\nouzo/SM\noval/MYPS\novalness/M\nova/M\novarian\novary/SM\novate/SDGNX\novation/GMD\novenbird/SM\noven/MS\noverabundance/MS\noverabundant\noverachieve/SRDGZ\noveract/DGVS\noverage/S\noveraggressive\noverallocation\noverall/SM\noverambitious\noveranxious\noverarching\noverarm/GSD\noverate\noverattentive\noverawe/GDS\noverbalance/DSG\noverbear/GS\noverbearingness/M\noverbearing/YP\noverbidding\noverbid/S\noverbite/MS\noverblown\noverboard\noverbold\noverbook/SDG\noverbore\noverborne\noverbought\noverbuild/GS\noverbuilt\noverburdening/Y\noverburden/SDG\noverbuy/GS\novercame\novercapacity/M\novercapitalize/DSG\novercareful\novercast/GS\novercasting/M\novercautious\novercerebral\novercharge/DSG\novercloud/DSG\novercoating/M\novercoat/SMG\novercomer/M\novercome/RSG\novercommitment/S\novercompensate/XGNDS\novercompensation/M\novercomplexity/M\novercomplicated\noverconfidence/MS\noverconfident/Y\noverconscientious\noverconsumption/M\novercook/SDG\novercooled\novercorrection\novercritical\novercrowd/DGS\novercurious\noverdecorate/SDG\noverdependent\noverdetermined\noverdevelop/SDG\noverdid\noverdoes\noverdo/G\noverdone\noverdose/DSMG\noverdraft/SM\noverdraw/GS\noverdrawn\noverdress/GDS\noverdrew\noverdrive/GSM\noverdriven\noverdrove\noverdubbed\noverdubbing\noverdub/S\noverdue\novereagerness/M\novereager/PY\novereater/M\novereat/GNRS\novereducated\noveremotional\noveremphases\noveremphasis/M\noveremphasize/GZDSR\noverenthusiastic\noverestimate/DSXGN\noverestimation/M\noverexcite/DSG\noverexercise/SDG\noverexert/GDS\noverexertion/SM\noverexploitation\noverexploited\noverexpose/GDS\noverexposure/SM\noverextend/DSG\noverextension\noverfall/M\noverfed\noverfeed/GS\noverfill/GDS\noverfishing\noverflew\noverflight/SM\noverflow/DGS\noverflown\noverfly/GS\noverfond\noverfull\novergeneralize/GDS\novergenerous\novergraze/SDG\novergrew\noverground\novergrow/GSH\novergrown\novergrowth/M\novergrowths\noverhand/DGS\noverhang/GS\noverhasty\noverhaul/GRDJS\noverhead/S\noverheard\noverhearer/M\noverhear/SRG\noverheat/SGD\noverhung\noverincredulous\noverindulgence/SM\noverindulgent\noverindulge/SDG\noverinflated\noverjoy/SGD\noverkill/SDMG\noverladed\noverladen\noverlaid\noverlain\noverland/S\noverlap/MS\noverlapped\noverlapping\noverlarge\noverlay/GS\noverleaf\noverlie\noverload/SDG\noverlong\noverlook/DSG\noverlord/DMSG\noverloud\noverly/GRS\novermanning\novermaster/GSD\novermatching\novermodest\novermuch/S\novernice\novernight/SDRGZ\noveroptimism/SM\noveroptimistic\noverpaid\noverparticular\noverpass/GMSD\noverpay/LSG\noverpayment/M\noverplay/SGD\noverpopulate/DSNGX\noverpopulation/M\noverpopulous\noverpower/GSD\noverpowering/Y\noverpraise/DSG\noverprecise\noverpressure\noverprice/SDG\noverprint/DGS\noverproduce/SDG\noverproduction/S\noverprotect/GVDS\noverprotection/M\noverqualified\noverran\noverrate/DSG\noverreach/DSRG\noverreaction/SM\noverreact/SGD\noverred\noverrefined\noverrepresented\noverridden\noverrider/M\noverride/RSG\noverripe\noverrode\noverrule/GDS\noverrunning\noverrun/S\noversample/DG\noversaturate\noversaw\noversea/S\noverseeing\noverseen\noverseer/M\noversee/ZRS\noversell/SG\noversensitiveness/S\noversensitive/P\noversensitivity\noversexed\novershadow/GSD\novershoe/SM\novershoot/SG\novershot/S\noversight/SM\noversimple\noversimplification/M\noversimplify/GXNDS\noversize/GS\noversleep/GS\noverslept\noversoftness/M\noversoft/P\noversold\noverspecialization/MS\noverspecialize/GSD\noverspend/SG\noverspent\noverspill/DMSG\noverspread/SG\noverstaffed\noverstatement/SM\noverstate/SDLG\noverstay/GSD\noverstepped\noverstepping\noverstep/S\noverstimulate/DSG\noverstock/SGD\noverstraining\noverstressed\noverstretch/D\noverstrict\noverstrike/GS\noverstrung\noverstuffed\noversubscribe/SDG\noversubtle\noversupply/MDSG\noversuspicious\novertaken\novertake/RSZG\novertax/DSG\noverthrew\noverthrow/GS\noverthrown\novertightened\novertime/MGDS\novertire/DSG\novertone/MS\novertook\novert/PY\noverture/DSMG\noverturn/SDG\noveruse/DSG\novervalue/GSD\noverview/MS\noverweening\noverweight/GSD\noverwhelm/GDS\noverwhelming/Y\noverwinter/SDG\noverwork/GSD\noverwrap\noverwrite/SG\noverwritten\noverwrote\noverwrought\nover/YGS\noverzealousness/M\noverzealous/P\nOvid/M\noviduct/SM\noviform\noviparous\novoid/S\novular\novulate/GNXDS\novulatory\novule/MS\novum/MS\now/DYG\nOwen/MS\nowe/S\nowlet/SM\nowl/GSMDR\nowlishness/M\nowlish/PY\nowned/U\nown/EGDS\nownership/MS\nowner/SM\noxalate/M\noxalic\noxaloacetic\noxblood/S\noxbow/SM\noxcart/MS\noxen/M\noxford/MS\nOxford/MS\noxidant/SM\noxidate/NVX\noxidation/M\noxidative/Y\noxide/SM\noxidization/MS\noxidized/U\noxidize/JDRSGZ\noxidizer/M\noxidizes/A\nox/MNS\nOxnard\nOxonian\noxtail/M\nOxus/M\noxyacetylene/MS\noxygenate/XSDMGN\noxygenation/M\noxygen/MS\noxyhydroxides\noxymora\noxymoron/M\noyster/GSDM\noystering/M\noz\nOzark/SM\nOz/M\nozone/SM\nOzymandias/M\nOzzie/M\nOzzy/M\nP\nPA\nPablo/M\nPablum/M\npablum/S\nPabst/M\npabulum/SM\nPAC\npace/DRSMZG\nPace/M\npacemaker/SM\npacer/M\npacesetter/MS\npacesetting\nPacheco/M\npachyderm/MS\npachysandra/MS\npacific\npacifically\npacification/M\nPacific/M\npacifier/M\npacifism/MS\npacifistic\npacifist/MS\npacify/NRSDGXZ\npackage/ARSDG\npackaged/U\npackager/S\npackage's\npackages/U\npackaging/SM\nPackard/SM\npacked/AU\npacker/MUS\npacket/MSDG\npack/GZSJDRMB\npackhorse/M\npackinghouse/S\npacking/M\npacksaddle/SM\nPackston/M\npacks/UA\nPackwood/M\nPaco/M\nPacorro/M\npact/SM\nPadang/M\npadded/U\nPaddie/M\npadding/SM\npaddle/MZGRSD\npaddler/M\npaddock/SDMG\nPaddy/M\npaddy/SM\nPadget/M\nPadgett/M\nPadilla/M\npadlock/SGDM\npad/MS\nPadraic/M\nPadraig/M\npadre/MS\nPadrewski/M\nPadriac/M\npaean/MS\npaediatrician/MS\npaediatrics/M\npaedophilia's\npaella/SM\npaeony/M\nPaganini/M\npaganism/MS\npagan/SM\npageantry/SM\npageant/SM\npageboy/SM\npaged/U\npageful\nPage/M\npage/MZGDRS\npager/M\npaginate/DSNGX\nPaglia/M\npagoda/MS\nPahlavi/M\npaid/AU\nPaige/M\npailful/SM\nPail/M\npail/SM\nPaine/M\npainfuller\npainfullest\npainfulness/MS\npainful/YP\npain/GSDM\npainkiller/MS\npainkilling\npainlessness/S\npainless/YP\npainstaking/SY\npaint/ADRZGS\npaintbox/M\npaintbrush/SM\npainted/U\npainterly/P\npainter/YM\npainting/SM\npaint's\npaintwork\npaired/UA\npair/JSDMG\npairs/A\npairwise\npaisley/MS\npajama/MDS\nPakistani/S\nPakistan/M\npalace/MS\npaladin/MS\npalaeolithic\npalaeontologists\npalaeontology/M\npalanquin/MS\npalatability/M\npalatableness/M\npalatable/P\npalatalization/MS\npalatalize/SDG\npalatal/YS\npalate/BMS\npalatial/Y\npalatinate/SM\nPalatine\npalatine/S\npalaver/GSDM\npaleface/SM\nPalembang/M\npaleness/S\nPaleocene\nPaleogene\npaleographer/SM\npaleography/SM\npaleolithic\nPaleolithic\npaleontologist/S\npaleontology/MS\nPaleozoic\nPalermo/M\npale/SPY\nPalestine/M\nPalestinian/S\nPalestrina/M\npalette/MS\nPaley/M\npalfrey/MS\npalimony/S\npalimpsest/MS\npalindrome/MS\npalindromic\npaling/M\npalisade/MGSD\nPalisades/M\npalish\nPalladio/M\npalladium/SM\npallbearer/SM\npalletized\npallet/SMGD\npall/GSMD\npalliate/SDVNGX\npalliation/M\npalliative/SY\npallidness/MS\npallid/PY\nPall/M\npallor/MS\npalmate\npalmer/M\nPalmer/M\nPalmerston/M\npalmetto/MS\npalm/GSMDR\npalmist/MS\npalmistry/MS\nPalm/MR\nPalmolive/M\npalmtop/S\nPalmyra/M\npalmy/RT\nPalo/M\nPaloma/M\nPalomar/M\npalomino/MS\npalpable\npalpably\npalpate/SDNGX\npalpation/M\npalpitate/NGXSD\npalpitation/M\npal/SJMDRYTG\npalsy/GSDM\npaltriness/SM\npaltry/TRP\npaludal\nPa/M\nPamela/M\nPamelina/M\nPamella/M\npa/MH\nPamirs\nPam/M\nPammie/M\nPammi/M\nPammy/M\npampas/M\npamperer/M\npamper/RDSG\nPampers\npamphleteer/DMSG\npamphlet/SM\npanacea/MS\npanache/MS\nPanama/MS\nPanamanian/S\npanama/S\npancake/MGSD\nPanchito/M\nPancho/M\npanchromatic\npancreas/MS\npancreatic\npanda/SM\npandemic/S\npandemonium/SM\npander/ZGRDS\nPandora/M\npanegyric/SM\npane/KMS\npaneling/M\npanelist/MS\npanelization\npanelized\npanel/JSGDM\nPangaea/M\npang/GDMS\npangolin/M\npanhandle/RSDGMZ\npanicked\npanicking\npanicky/RT\npanic/SM\npanier's\npanjandrum/M\nPankhurst/M\nPan/M\nPanmunjom/M\npanned\npannier/SM\npanning\npanoply/MSD\npanorama/MS\npanoramic\npanpipes\nPansie/M\npan/SMD\nPansy/M\npansy/SM\nPantagruel/M\nPantaloon/M\npantaloons\npant/GDS\npantheism/MS\npantheistic\npantheist/S\npantheon/MS\npanther/SM\npantie/SM\npantiled\npantograph/M\npantomime/SDGM\npantomimic\npantomimist/SM\npantry/SM\npantsuit/SM\npantyhose\npantyliner\npantywaist/SM\nPanza/M\nPaola/M\nPaoli/M\nPaolina/M\nPaolo/M\npapacy/SM\nPapagena/M\nPapageno/M\npapal/Y\npapa/MS\npaparazzi\npapaw/SM\npapaya/MS\npaperback/GDMS\npaperboard/MS\npaperboy/SM\npaperer/M\npapergirl/SM\npaper/GJMRDZ\npaperhanger/SM\npaperhanging/SM\npaperiness/M\npaperless\npaperweight/MS\npaperwork/SM\npapery/P\npapillae\npapilla/M\npapillary\npapist/MS\npapoose/SM\nPappas/M\npapped\npapping\npappy/RST\npaprika/MS\npap/SZMNR\npapyri\npapyrus/M\nPaquito/M\nparable/MGSD\nparabola/MS\nparabolic\nparaboloidal/M\nparaboloid/MS\nParacelsus/M\nparacetamol/M\nparachuter/M\nparachute/RSDMG\nparachutist/MS\nParaclete/M\nparader/M\nparade/RSDMZG\nparadigmatic\nparadigm/SM\nparadisaic\nparadisaical\nParadise/M\nparadise/MS\nparadoxic\nparadoxicalness/M\nparadoxical/YP\nparadox/MS\nparaffin/GSMD\nparagon/SGDM\nparagrapher/M\nparagraph/MRDG\nparagraphs\nParaguayan/S\nParaguay/M\nparakeet/MS\nparalegal/S\nparalinguistic\nparallax/SM\nparallel/DSG\nparalleled/U\nparallelepiped/MS\nparallelism/SM\nparallelization/MS\nparallelize/ZGDSR\nparallelogram/MS\nparalysis/M\nparalytically\nparalytic/S\nparalyzedly/S\nparalyzed/Y\nparalyzer/M\nparalyze/ZGDRS\nparalyzingly/S\nparalyzing/Y\nparamagnetic\nparamagnet/M\nParamaribo/M\nparamecia\nparamecium/M\nparamedical/S\nparamedic/MS\nparameterization/SM\nparameterize/BSDG\nparameterized/U\nparameterless\nparameter/SM\nparametric\nparametrically\nparametrization\nparametrize/DS\nparamilitary/S\nparamount/S\nparamour/MS\npara/MS\nParamus/M\nParan<61>\nparanoiac/S\nparanoia/SM\nparanoid/S\nparanormal/SY\nparapet/SMD\nparaphernalia\nparaphrase/GMSRD\nparaphraser/M\nparaplegia/MS\nparaplegic/S\nparaprofessional/SM\nparapsychologist/S\nparapsychology/MS\nparaquat/S\nparasite/SM\nparasitically\nparasitic/S\nparasitism/SM\nparasitologist/M\nparasitology/M\nparasol/SM\nparasympathetic/S\nparathion/SM\nparathyroid/S\nparatrooper/M\nparatroop/RSZ\nparatyphoid/S\nparboil/DSG\nparceled/U\nparceling/M\nparcel/SGMD\nParcheesi/M\nparch/GSDL\nparchment/SM\nPARC/M\npardonableness/M\npardonable/U\npardonably/U\npardoner/M\npardon/ZBGRDS\nparegoric/SM\nparentage/MS\nparental/Y\nparenteral\nparentheses\nparenthesis/M\nparenthesize/GSD\nparenthetic\nparenthetical/Y\nparenthood/MS\nparent/MDGJS\npare/S\nparesis/M\npares/S\nPareto/M\nparfait/SM\npariah/M\npariahs\nparietal/S\nparimutuel/S\nparing/M\nparishioner/SM\nparish/MS\nParisian/SM\nParis/M\nparity/ESM\nparka/MS\nParke/M\nParker/M\nParkersburg/M\npark/GJZDRMS\nParkhouse/M\nparking/M\nParkinson/M\nparkish\nparkland/M\nparklike\nParkman\nPark/RMS\nparkway/MS\nparlance/SM\nparlay/DGS\nparley/MDSG\nparliamentarian/SM\nparliamentary/U\nparliament/MS\nParliament/MS\nparlor/SM\nparlous\nParmesan/S\nparmigiana\nParnassus/SM\nParnell/M\nparochialism/SM\nparochiality\nparochial/Y\nparodied/U\nparodist/SM\nparody/SDGM\nparolee/MS\nparole/MSDG\nparoxysmal\nparoxysm/MS\nparquetry/SM\nparquet/SMDG\nparrakeet's\nparred\nparricidal\nparricide/MS\nparring\nParrish/M\nParr/M\nParrnell/M\nparrot/GMDS\nparrotlike\nparry/GSD\nParry/M\nparse\nparsec/SM\nparsed/U\nParsee's\nparser/M\nParsifal/M\nparsimonious/Y\nparsimony/SM\npars/JDSRGZ\nparsley/MS\nparsnip/MS\nparsonage/MS\nparson/MS\nParsons/M\npartaken\npartaker/M\npartake/ZGSR\npart/CDGS\nparterre/MS\nparter/S\nparthenogeneses\nparthenogenesis/M\nParthenon/M\nParthia/M\npartiality/MS\npartial/SY\nparticipant/MS\nparticipate/NGVDSX\nparticipation/M\nparticipator/S\nparticipatory\nparticipial/Y\nparticiple/MS\nparticleboard/S\nparticle/MS\nparticolored\nparticularistic\nparticularity/SM\nparticularization/MS\nparticularize/GSD\nparticular/SY\nparticulate/S\nparting/MS\npartisanship/SM\npartisan/SM\npartition/AMRDGS\npartitioned/U\npartitioner/M\npartitive/S\npartizan's\npartly\npartner/DMGS\npartnership/SM\npartook\npartridge/MS\npart's\nparturition/SM\npartway\nparty/RSDMG\nparvenu/SM\npar/ZGSJBMDR\nPasadena/M\nPASCAL\nPascale/M\nPascal/M\npascal/SM\npaschal/S\npasha/MS\nPaso/M\nPasquale/M\npas/S\npassably\npassage/MGSD\npassageway/MS\nPassaic/M\npassband\npassbook/MS\npassel/MS\npass<73>/M\npassenger/MYS\npasserby\npasser/M\npassersby\npassim\npassing/Y\npassionated\npassionate/EYP\npassionateness/EM\npassionates\npassionating\npassioned\npassionflower/MS\npassioning\npassionless\npassion/SEM\nPassion/SM\npassivated\npassiveness/S\npassive/SYP\npassivity/S\npass/JGVBZDSR\npasskey/SM\npassmark\npassover\nPassover/MS\npassport/SM\npassword/SDM\npasta/MS\npasteboard/SM\npasted/UA\npastel/MS\npaste/MS\nPasternak/M\npastern/SM\npasteup\npasteurization/MS\npasteurized/U\npasteurizer/M\npasteurize/RSDGZ\nPasteur/M\npastiche/MS\npastille/SM\npastime/SM\npastiness/SM\npastoralization/M\npastoral/SPY\npastorate/MS\npastor/GSDM\npast/PGMDRS\npastrami/MS\npastry/SM\npast's/A\npasts/A\npasturage/SM\npasture/MGSRD\npasturer/M\npasty/PTRS\nPatagonia/M\nPatagonian/S\npatch/EGRSD\npatcher/EM\npatchily\npatchiness/S\npatch's\npatchwork/RMSZ\npatchy/PRT\npatellae\npatella/MS\nPatel/M\nPate/M\npaten/M\nPaten/M\npatentee/SM\npatent/ZGMRDYSB\npaterfamilias/SM\npater/M\npaternalism/MS\npaternalist\npaternalistic\npaternal/Y\npaternity/SM\npaternoster/SM\nPaterson/M\npate/SM\npathetic\npathetically\npathfinder/MS\npathless/P\npath/M\npathname/SM\npathogenesis/M\npathogenic\npathogen/SM\npathologic\npathological/Y\npathologist/MS\npathology/SM\npathos/SM\npaths\npathway/MS\nPatience/M\npatience/SM\npatient/MRYTS\npatient's/I\npatients/I\npatina/SM\npatine\nPatin/M\npatio/MS\nPat/MN\npat/MNDRS\nPatna/M\npatois/M\nPaton/M\npatresfamilias\npatriarchal\npatriarchate/MS\npatriarch/M\npatriarchs\npatriarchy/MS\nPatrica/M\nPatrice/M\nPatricia/M\npatrician/MS\npatricide/MS\nPatricio/M\nPatrick/M\nPatric/M\npatrimonial\npatrimony/SM\npatriotically\npatriotic/U\npatriotism/SM\npatriot/SM\npatristic/S\nPatrizia/M\nPatrizio/M\nPatrizius/M\npatrolled\npatrolling\npatrolman/M\npatrolmen\npatrol/MS\npatrolwoman\npatrolwomen\npatronage/MS\npatroness/S\npatronization\npatronized/U\npatronize/GZRSDJ\npatronizer/M\npatronizes/A\npatronizing's/U\npatronizing/YM\npatronymically\npatronymic/S\npatron/YMS\npatroon/MS\npatsy/SM\nPatsy/SM\npatted\nPatten/M\npatten/MS\npatterer/M\npattern/GSDM\npatternless\npatter/RDSGJ\nPatterson/M\nPattie/M\nPatti/M\npatting\nPattin/M\nPatton/M\nPatty/M\npatty/SM\npaucity/SM\nPaula/M\nPaule/M\nPauletta/M\nPaulette/M\nPaulie/M\nPauli/M\nPaulina/M\nPauline\nPauling/M\nPaulita/M\nPaul/MG\nPaulo/M\nPaulsen/M\nPaulson/M\nPaulus/M\nPauly/M\npaunch/GMSD\npaunchiness/M\npaunchy/RTP\npauperism/SM\npauperize/SDG\npauper/SGDM\npause/DSG\nPavarotti\npaved/UA\npave/GDRSJL\nPavel/M\npavement/SGDM\npaver/M\npaves/A\nPavia/M\npavilion/SMDG\npaving/A\npaving's\nPavla/M\nPavlova/MS\nPavlovian\nPavlov/M\npawl/SM\npaw/MDSG\npawnbroker/SM\npawnbroking/S\nPawnee/SM\npawner/M\npawn/GSDRM\npawnshop/MS\npawpaw's\nPawtucket/M\npaxes\nPaxon/M\nPaxton/M\npayable/S\npay/AGSLB\npayback/S\npaycheck/SM\npayday/MS\npayed\npayee/SM\npayer/SM\npayload/SM\npaymaster/SM\npayment/ASM\nPayne/SM\npayoff/MS\npayola/MS\npayout/S\npayroll/MS\npayslip/S\nPayson/M\nPayton/M\nPaz/M\nPb/M\nPBS\nPBX\nPCB\nPC/M\nPCP\nPCs\npct\npd\nPD\nPd/M\nPDP\nPDQ\nPDT\nPE\nPeabody/M\npeaceableness/M\npeaceable/P\npeaceably\npeacefuller\npeacefullest\npeacefulness/S\npeaceful/PY\npeace/GMDS\npeacekeeping/S\nPeace/M\npeacemaker/MS\npeacemaking/MS\npeacetime/MS\npeach/GSDM\nPeachtree/M\npeachy/RT\npeacock/SGMD\nPeadar/M\npeafowl/SM\npeahen/MS\npeaked/P\npeakiness/M\npeak/SGDM\npeaky/P\npealed/A\nPeale/M\npeal/MDSG\npeals/A\npea/MS\npeanut/SM\nPearce/M\nPearla/M\nPearle/M\npearler/M\nPearlie/M\nPearline/M\nPearl/M\npearl/SGRDM\npearly/TRS\nPearson/M\npear/SYM\npeartrees\nPeary/M\npeasanthood\npeasantry/SM\npeasant/SM\npeashooter/MS\npeats/A\npeat/SM\npeaty/TR\npebble/MGSD\npebbling/M\npebbly/TR\nPebrook/M\npecan/SM\npeccadilloes\npeccadillo/M\npeccary/MS\nPechora/M\npecker/M\npeck/GZSDRM\nPeckinpah/M\nPeck/M\nPecos/M\npectic\npectin/SM\npectoral/S\npeculate/NGDSX\npeculator/S\npeculiarity/MS\npeculiar/SY\npecuniary\npedagogical/Y\npedagogic/S\npedagogics/M\npedagogue/SDGM\npedagogy/MS\npedal/SGRDM\npedantic\npedantically\npedantry/MS\npedant/SM\npeddler/M\npeddle/ZGRSD\npederast/SM\npederasty/SM\nPeder/M\npedestal/GDMS\npedestrianization\npedestrianize/GSD\npedestrian/MS\npediatrician/SM\npediatric/S\npedicab/SM\npedicure/DSMG\npedicurist/SM\npedigree/DSM\npediment/DMS\npedlar's\npedometer/MS\npedophile/S\npedophilia\nPedro/M\npeduncle/MS\npeeing\npeekaboo/SM\npeek/GSD\npeeler/M\npeeling/M\nPeel/M\npeel/SJGZDR\npeen/GSDM\npeeper/M\npeephole/SM\npeep/SGZDR\npeepshow/MS\npeepy\npeerage/MS\npeer/DMG\npeeress/MS\npeerlessness/M\npeerless/PY\npeeve/GZMDS\npeevers/M\npeevishness/SM\npeevish/YP\npeewee/S\npee/ZDRS\nPegasus/MS\npegboard/SM\nPegeen/M\npegged\nPeggie/M\nPeggi/M\npegging\nPeggy/M\nPeg/M\npeg/MS\npeignoir/SM\nPei/M\nPeiping/M\nPeirce/M\npejoration/SM\npejorative/SY\npeke/MS\nPekinese's\npekingese\nPekingese/SM\nPeking/SM\npekoe/SM\npelagic\nPelee/M\nPele/M\npelf/SM\nPelham/M\npelican/SM\npellagra/SM\npellet/SGMD\npellucid\nPeloponnese/M\npelter/M\npelt/GSDR\npelvic/S\npelvis/SM\nPembroke/M\npemmican/SM\npenalization/SM\npenalized/U\npenalize/SDG\npenalty/MS\npenal/Y\nPena/M\npenance/SDMG\npence/M\npenchant/MS\npencil/SGJMD\npendant/SM\npend/DCGS\npendent/CS\nPenderecki/M\nPendleton/M\npendulous\npendulum/MS\nPenelopa/M\nPenelope/M\npenetrability/SM\npenetrable\npenetrate/SDVGNX\npenetrating/Y\npenetration/M\npenetrativeness/M\npenetrative/PY\npenetrator/MS\npenguin/MS\npenicillin/SM\npenile\npeninsular\npeninsula/SM\npenis/MS\npenitence/MS\npenitential/YS\npenitentiary/MS\npenitent/SY\npenknife/M\npenknives\npenlight/MS\npen/M\nPen/M\npenman/M\npenmanship/MS\npenmen\nPenna\npennant/SM\npenned\nPenney/M\nPennie/M\npenniless\nPenni/M\npenning\nPennington/M\npennis\nPenn/M\npennon/SM\nPennsylvania/M\nPennsylvanian/S\nPenny/M\npenny/SM\npennyweight/SM\npennyworth/M\npenologist/MS\npenology/MS\nPenrod/M\nPensacola/M\npensioner/M\npension/ZGMRDBS\npensiveness/S\npensive/PY\npens/V\npentacle/MS\npentagonal/SY\nPentagon/M\npentagon/SM\npentagram/MS\npentameter/SM\npent/AS\nPentateuch/M\npentathlete/S\npentathlon/MS\npentatonic\npentecostal\nPentecostalism/S\nPentecostal/S\nPentecost/SM\npenthouse/SDGM\nPentium/M\npenuche/SM\npenultimate/SY\npenumbrae\npenumbra/MS\npenuriousness/MS\npenurious/YP\npenury/SM\npeonage/MS\npeon/MS\npeony/SM\npeople/SDMG\nPeoria/M\nPepe/M\nPepillo/M\nPepi/M\nPepin/M\nPepita/M\nPepito/M\npepped\npeppercorn/MS\npepperer/M\npeppergrass/M\npeppermint/MS\npepperoni/S\npepper/SGRDM\npeppery\npeppiness/SM\npepping\npeppy/PRT\nPepsico/M\nPepsiCo/M\nPepsi/M\npepsin/SM\npep/SM\npeptic/S\npeptidase/SM\npeptide/SM\npeptizing\nPepys/M\nPequot/M\nperadventure/S\nperambulate/DSNGX\nperambulation/M\nperambulator/MS\npercale/MS\nperceivably\nperceive/DRSZGB\nperceived/U\nperceiver/M\npercentage/MS\npercentile/SM\npercent/MS\nperceptible\nperceptibly\nperceptional\nperception/MS\nperceptiveness/MS\nperceptive/YP\nperceptual/Y\npercept/VMS\nPerceval/M\nperchance\nperch/GSDM\nperchlorate/M\nperchlorination\npercipience/MS\npercipient/S\nPercival/M\npercolate/NGSDX\npercolation/M\npercolator/MS\npercuss/DSGV\npercussionist/MS\npercussion/SAM\npercussiveness/M\npercussive/PY\npercutaneous/Y\nPercy/M\nperdition/MS\nperdurable\nperegrinate/XSDNG\nperegrination/M\nperegrine/S\nPerelman/M\nperemptorily\nperemptory/P\nperennial/SY\np<6E>res\nperestroika/S\nPerez/M\nperfecta/S\nperfect/DRYSTGVP\nperfecter/M\nperfectibility/MS\nperfectible\nperfectionism/MS\nperfectionist/MS\nperfection/MS\nperfectiveness/M\nperfective/PY\nperfectness/MS\nperfidiousness/M\nperfidious/YP\nperfidy/MS\nperforated/U\nperforate/XSDGN\nperforation/M\nperforce\nperformance/MS\nperformed/U\nperformer/M\nperform/SDRZGB\nperfumer/M\nperfumery/SM\nperfume/ZMGSRD\nperfunctorily\nperfunctoriness/M\nperfunctory/P\nperfused\nperfusion/M\nPergamon/M\npergola/SM\nperhaps/S\nPeria/M\npericardia\npericardium/M\nPerice/M\nPericlean\nPericles/M\nperigee/SM\nperihelia\nperihelion/M\nperil/GSDM\nPerilla/M\nperilousness/M\nperilous/PY\nPeri/M\nperimeter/MS\nperinatal\nperinea\nperineum/M\nperiodic\nperiodical/YMS\nperiodicity/MS\nperiod/MS\nperiodontal/Y\nperiodontics/M\nperiodontist/S\nperipatetic/S\nperipheral/SY\nperiphery/SM\nperiphrases\nperiphrasis/M\nperiphrastic\nperiscope/SDMG\nperishable/SM\nperish/BZGSRD\nperishing/Y\nperistalses\nperistalsis/M\nperistaltic\nperistyle/MS\nperitoneal\nperitoneum/SM\nperitonitis/MS\nperiwigged\nperiwigging\nperiwig/MS\nperiwinkle/SM\nperjurer/M\nperjure/SRDZG\nperjury/MS\nper/K\nperk/GDS\nperkily\nperkiness/S\nPerkin/SM\nperky/TRP\nPerla/M\nPerle/M\nPerl/M\npermafrost/MS\npermalloy/M\nPermalloy/M\npermanence/SM\npermanency/MS\npermanentness/M\npermanent/YSP\npermeability/SM\npermeableness/M\npermeable/P\npermeate/NGVDSX\nPermian\npermissibility/M\npermissibleness/M\npermissible/P\npermissibly\npermission/SM\npermissiveness/MS\npermissive/YP\npermit/SM\npermitted\npermitting\nPerm/M\nperm/MDGS\npermutation/MS\npermute/SDG\nPernell/M\nperniciousness/MS\npernicious/PY\nPernod/M\nPeron/M\nperoration/SM\nPerot/M\nperoxidase/M\nperoxide/MGDS\nperpend/DG\nperpendicularity/SM\nperpendicular/SY\nperpetrate/NGXSD\nperpetration/M\nperpetrator/SM\nperpetual/SY\nperpetuate/NGSDX\nperpetuation/M\nperpetuity/MS\nperplex/DSG\nperplexed/Y\nperplexity/MS\nperquisite/SM\nPerren/M\nPerri/M\nPerrine/M\nPerry/MR\npersecute/XVNGSD\npersecution/M\npersecutor/MS\npersecutory\nPerseid/M\nPersephone/M\nPerseus/M\nperseverance/MS\npersevere/GSD\npersevering/Y\nPershing/M\nPersia/M\nPersian/S\npersiflage/MS\npersimmon/SM\nPersis/M\npersist/DRSG\npersistence/SM\npersistent/Y\npersnickety\npersonableness/M\npersonable/P\npersonae\npersonage/SM\npersonality/SM\npersonalization/CMS\npersonalize/CSDG\npersonalized/U\npersonalty/MS\npersonal/YS\npersona/M\nperson/BMS\npersonification/M\npersonifier/M\npersonify/XNGDRS\npersonnel/SM\nperson's/U\npersons/U\nperspective/YMS\nperspex\nperspicaciousness/M\nperspicacious/PY\nperspicacity/S\nperspicuity/SM\nperspicuousness/M\nperspicuous/YP\nperspiration/MS\nperspire/DSG\npersuaded/U\npersuader/M\npersuade/ZGDRSB\npersuasion/SM\npersuasively\npersuasiveness/MS\npersuasive/U\npertain/GSD\nPerth/M\npertinaciousness/M\npertinacious/YP\npertinacity/MS\npertinence/S\npertinent/YS\npertness/MS\nperturbation/MS\nperturbed/U\nperturb/GDS\npertussis/SM\npert/YRTSP\nperuke/SM\nPeru/M\nperusal/SM\nperuser/M\nperuse/RSDZG\nPeruvian/S\npervade/SDG\npervasion/M\npervasiveness/MS\npervasive/PY\nperverseness/SM\nperverse/PXYNV\nperversion/M\nperversity/MS\npervert/DRSG\nperverted/YP\nperverter/M\nperviousness\npeseta/SM\nPeshawar/M\npeskily\npeskiness/S\npesky/RTP\npeso/MS\npessimal/Y\npessimism/SM\npessimistic\npessimistically\npessimist/SM\npester/DG\npesticide/MS\npestiferous\npestilence/SM\npestilential/Y\npestilent/Y\npestle/SDMG\npesto/S\npest/RZSM\nPET\nP<6E>tain/M\npetal/SDM\nPeta/M\npetard/MS\npetcock/SM\nPete/M\npeter/GD\nPeter/M\nPetersburg/M\nPetersen/M\nPeters/N\nPeterson/M\nPeterus/M\nPetey/M\npethidine/M\npetiole/SM\npetiteness/M\npetite/XNPS\npetitioner/M\npetition/GZMRD\npetition's/A\npetitions/A\npetits\nPetkiewicz/M\nPet/MRZ\nPetra/M\nPetrarch/M\npetrel/SM\npetri\npetrifaction/SM\npetrify/NDSG\nPetrina/M\nPetr/M\npetrochemical/SM\npetrodollar/MS\npetroglyph/M\npetrolatum/MS\npetroleum/MS\npetrolled\npetrolling\npetrol/MS\npetrologist/MS\npetrology/MS\nPetronella/M\nPetronia/M\nPetronilla/M\nPetronille/M\npet/SMRZ\npetted\npetter/MS\nPettibone/M\npetticoat/SMD\npettifogged\npettifogger/SM\npettifogging\npettifog/S\npettily\npettiness/S\npetting\npettis\npettishness/M\npettish/YP\nPetty/M\npetty/PRST\npetulance/MS\npetulant/Y\nPetunia/M\npetunia/SM\nPeugeot/M\nPewaukee/M\npewee/MS\npewit/MS\npew/SM\npewter/SRM\npeyote/SM\nPeyter/M\nPeyton/M\npf\nPfc\nPFC\npfennig/SM\nPfizer/M\npg\nPG\nPhaedra/M\nPhaethon/M\nphaeton/MS\nphage/M\nphagocyte/SM\nPhaidra/M\nphalanger/MS\nphalanges\nphalanx/SM\nphalli\nphallic\nphallus/M\nPhanerozoic\nphantasmagoria/SM\nphantasmal\nphantasm/SM\nphantasy's\nphantom/MS\npharaoh\nPharaoh/M\npharaohs\nPharaohs\npharisaic\nPharisaic\nPharisaical\npharisee/S\nPharisee/SM\npharmaceutical/SY\npharmaceutic/S\npharmaceutics/M\npharmacist/SM\npharmacological/Y\npharmacologist/SM\npharmacology/SM\npharmacopoeia/SM\npharmacy/SM\npharyngeal/S\npharynges\npharyngitides\npharyngitis/M\npharynx/M\nphase/DSRGZM\nphaseout/S\nPhD\npheasant/SM\nPhebe/M\nPhedra/M\nPhekda/M\nPhelia/M\nPhelps/M\nphenacetin/MS\nphenobarbital/SM\nphenolic\nphenol/MS\nphenolphthalein/M\nphenomenal/Y\nphenomena/SM\nphenomenological/Y\nphenomenology/MS\nphenomenon/SM\nphenotype/MS\nphenylalanine/M\nphenyl/M\npheromone/MS\nphew/S\nphialled\nphialling\nphial/MS\nPhidias/M\nPhiladelphia/M\nphilanderer/M\nphilander/SRDGZ\nphilanthropic\nphilanthropically\nphilanthropist/MS\nphilanthropy/SM\nphilatelic\nphilatelist/MS\nphilately/SM\nPhilbert/M\nPhilco/M\nphilharmonic/S\nPhilipa/M\nPhilip/M\nPhilippa/M\nPhilippe/M\nPhilippians/M\nphilippic/SM\nPhilippine/SM\nPhilis/M\nphilistine/S\nPhilistine/SM\nphilistinism/S\nPhillida/M\nPhillie/M\nPhillipa/M\nPhillipe/M\nPhillip/MS\nPhillipp/M\nPhillis/M\nPhilly/SM\nPhil/MY\nphilodendron/MS\nphilological/Y\nphilologist/MS\nphilology/MS\nPhilomena/M\nphilosopher/MS\nphilosophic\nphilosophical/Y\nphilosophized/U\nphilosophizer/M\nphilosophizes/U\nphilosophize/ZDRSG\nphilosophy/MS\nphilter/SGDM\nphiltre/DSMG\nPhineas/M\nPhip/M\nPhipps/M\nphi/SM\nphlebitides\nphlebitis/M\nphlegmatic\nphlegmatically\nphlegm/SM\nphloem/MS\nphlox/M\npH/M\nPh/M\nphobia/SM\nphobic/S\nPhobos/M\nPhoebe/M\nphoebe/SM\nPhoenicia/M\nPhoenician/SM\nPhoenix/M\nphoenix/MS\nphone/DSGM\nphoneme/SM\nphonemically\nphonemic/S\nphonemics/M\nphonetically\nphonetician/SM\nphonetic/S\nphonetics/M\nphonically\nphonic/S\nphonics/M\nphoniness/MS\nphonographer/M\nphonographic\nphonograph/RM\nphonographs\nphonologic\nphonological/Y\nphonologist/MS\nphonology/MS\nphonon/M\nphony/PTRSDG\nphooey/S\nphosphatase/M\nphosphate/MS\nphosphide/M\nphosphine/MS\nphosphoresce\nphosphorescence/SM\nphosphorescent/Y\nphosphoric\nphosphor/MS\nphosphorous\nphosphorus/SM\nphotocell/MS\nphotochemical/Y\nphotochemistry/M\nphotocopier/M\nphotocopy/MRSDZG\nphotoelectric\nphotoelectrically\nphotoelectronic\nphotoelectrons\nphotoengraver/M\nphotoengrave/RSDJZG\nphotoengraving/M\nphotofinishing/MS\nphotogenic\nphotogenically\nphotograph/AGD\nphotographer/SM\nphotographic\nphotographically\nphotograph's\nphotographs/A\nphotography/MS\nphotojournalism/SM\nphotojournalist/SM\nphotoluminescence/M\nphotolysis/M\nphotolytic\nphotometer/SM\nphotometric\nphotometrically\nphotometry/M\nphotomicrograph/M\nphotomicrography/M\nphotomultiplier/M\nphoton/MS\nphotorealism\nphotosensitive\nphoto/SGMD\nphotosphere/M\nphotostatic\nPhotostat/MS\nPhotostatted\nPhotostatting\nphotosyntheses\nphotosynthesis/M\nphotosynthesize/DSG\nphotosynthetic\nphototypesetter\nphototypesetting/M\nphrasal\nphrase/AGDS\nphrasebook\nphrasemaking\nphraseology/MS\nphrase's\nphrasing/SM\nphrenological/Y\nphrenologist/MS\nphrenology/MS\nphylactery/MS\nphylae\nphyla/M\nPhylis/M\nPhyllida/M\nPhyllis/M\nPhyllys/M\nphylogeny/MS\nphylum/M\nPhylys/M\nphys\nphysicality/M\nphysical/PYS\nphysician/SM\nphysicist/MS\nphysicked\nphysicking\nphysic/SM\nphysiochemical\nphysiognomy/SM\nphysiography/MS\nphysiologic\nphysiological/Y\nphysiologist/SM\nphysiology/MS\nphysiotherapist/MS\nphysiotherapy/SM\nphysique/MSD\nphytoplankton/M\nPiaf/M\nPiaget/M\nPia/M\npianism/M\npianissimo/S\npianistic\npianist/SM\npianoforte/MS\npianola\nPianola/M\npiano/SM\npiaster/MS\npiazza/SM\npibroch/M\npibrochs\npicador/MS\npicaresque/S\npica/SM\nPicasso/M\npicayune/S\nPiccadilly/M\npiccalilli/MS\npiccolo/MS\npickaback's\npickaxe's\npickax/GMSD\npickerel/MS\nPickering/M\npicker/MG\npicketer/M\npicket/MSRDZG\nPickett/M\nPickford/M\npick/GZSJDR\npickle/SDMG\nPickman/M\npickoff/S\npickpocket/GSM\npickup/SM\nPickwick/M\npicky/RT\npicnicked\npicnicker/MS\npicnicking\npicnic/SM\npicofarad/MS\npicojoule\npicoseconds\npicot/DMGS\nPict/M\npictograph/M\npictographs\npictorialness/M\npictorial/PYS\npicture/MGSD\npicturesqueness/SM\npicturesque/PY\npiddle/GSD\npiddly\npidgin/SM\npiebald/S\npiece/GMDSR\npiecemeal\npiecer/M\npiecewise\npieceworker/M\npiecework/ZSMR\npiedmont\nPiedmont/M\npieing\npie/MS\nPierce/M\npiercer/M\npierce/RSDZGJ\npiercing/Y\nPierette/M\npier/M\nPier/M\nPierre/M\nPierrette/M\nPierrot/M\nPierson/M\nPieter/M\nPietra/M\nPietrek/M\nPietro/M\npiety/SM\npiezoelectric\npiezoelectricity/M\npiffle/MGSD\npigeon/DMGS\npigeonhole/SDGM\npigged\npiggery/M\npigging\npiggishness/SM\npiggish/YP\npiggyback/MSDG\nPiggy/M\npiggy/RSMT\npigheadedness/S\npigheaded/YP\npiglet/MS\npigmentation/MS\npigment/MDSG\npig/MLS\nPigmy's\npigpen/SM\npigroot\npigskin/MS\npigsty/SM\npigswill/M\npigtail/SMD\nPike/M\npike/MZGDRS\npiker/M\npikestaff/MS\npilaf/MS\npilaster/SM\nPilate/M\npilau's\npilchard/SM\nPilcomayo/M\npile/JDSMZG\npileup/MS\npilferage/SM\npilferer/M\npilfer/ZGSRD\nPilgrim\npilgrimage/DSGM\npilgrim/MS\npiling/M\npillage/RSDZG\npillar/DMSG\npillbox/MS\npill/GSMD\npillion/DMGS\npillory/MSDG\npillowcase/SM\npillow/GDMS\npillowslip/S\nPillsbury/M\npilot/DMGS\npilothouse/SM\npiloting/M\npimento/MS\npimiento/SM\npimpernel/SM\npimp/GSMYD\npimple/SDM\npimplike\npimply/TRM\nPIN\npinafore/MS\npi<70>ata/S\nPinatubo/M\npinball/MS\nPincas/M\npincer/GSD\nPinchas/M\npincher/M\npinch/GRSD\npincushion/SM\nPincus/M\nPindar/M\npineapple/MS\npined/A\nPinehurst/M\npine/MNGXDS\npines/A\npinfeather/SM\nping/GDRM\npinheaded/P\npinhead/SMD\npinhole/SM\npining/A\npinion/DMG\nPinkerton/M\npinkeye/MS\npink/GTYDRMPS\npinkie/SM\npinkish/P\npinkness/S\npinko/MS\npinky's\npinnacle/MGSD\npinnate\npinned/U\npinning/S\nPinocchio/M\nPinochet/M\npinochle/SM\npi<70>on/S\npinpoint/SDG\npinprick/MDSG\npin's\npinsetter/SM\nPinsky/M\npinstripe/SDM\npintail/SM\nPinter/M\npint/MRS\npinto/S\npinup/MS\npin/US\npinwheel/DMGS\npinyin\nPinyin\npiny/RT\npioneer/SDMG\npion/M\nPiotr/M\npiousness/MS\npious/YP\npipeline/DSMG\npipe/MS\npiper/M\nPiper/M\nPipestone/M\npipet's\npipette/MGSD\npipework\npiping/YM\npipit/MS\npip/JSZMGDR\nPip/MR\nPippa/M\npipped\npipping\npippin/SM\nPippo/M\nPippy/M\npipsqueak/SM\npiquancy/MS\npiquantness/M\npiquant/PY\npique/GMDS\npiracy/MS\nPiraeus/M\nPirandello/M\npiranha/SM\npirate/MGSD\npiratical/Y\npirogi\npirogies\npirouette/MGSD\npis\nPisa/M\npiscatorial\nPisces/M\nPisistratus/M\npismire/SM\nPissaro/M\npiss/DSRG!\npistachio/MS\npiste/SM\npistillate\npistil/MS\npistoleers\npistole/M\npistol/SMGD\npiston/SM\npitapat/S\npitapatted\npitapatting\npita/SM\nPitcairn/M\npitchblende/SM\npitcher/M\npitchfork/GDMS\npitching/M\npitchman/M\npitchmen\npitch/RSDZG\npitchstone/M\npiteousness/SM\npiteous/YP\npitfall/SM\npithily\npithiness/SM\npith/MGDS\npiths\npithy/RTP\npitiableness/M\npitiable/P\npitiably\npitier/M\npitifuller\npitifullest\npitifulness/M\npitiful/PY\npitilessness/SM\npitiless/PY\npitman/M\npit/MS\nPitney/M\npiton/SM\npittance/SM\npitted\npitting\nPittman/M\nPittsburgh/ZM\nPittsfield/M\nPitt/SM\nPittston/M\npituitary/SM\npitying/Y\npity/ZDSRMG\nPius/M\npivotal/Y\npivot/DMSG\npivoting/M\npix/DSG\npixel/SM\npixie/MS\npixiness\npixmap/SM\nPizarro/M\npizazz/S\npi/ZGDRH\npizza/SM\npizzeria/SM\npizzicati\npizzicato\npj's\nPJ's\npk\npkg\npkt\npkwy\nPkwy\npl\nplacard/DSMG\nplacate/NGVXDRS\nplacatory\nplaceable/A\nplacebo/SM\nplaced/EAU\nplace/DSRJLGZM\nplaceholder/S\nplacekick/DGS\nplaceless/Y\nplacement/AMES\nplacental/S\nplacenta/SM\nplacer/EM\nplaces/EA\nplacidity/SM\nplacidness/M\nplacid/PY\nplacing/AE\nplacket/SM\nplagiarism/MS\nplagiarist/MS\nplagiarize/GZDSR\nplagiary/SM\nplagued/U\nplague/MGRSD\nplaguer/M\nplaice/M\nplaid/DMSG\nplainclothes\nplainclothesman\nplainclothesmen\nPlainfield/M\nplainness/MS\nplainsman/M\nplainsmen\nplainsong/SM\nplainspoken\nplain/SPTGRDY\nplaintiff/MS\nplaintiveness/M\nplaintive/YP\nplaint/VMS\nPlainview/M\nplaiting/M\nplait/SRDMG\nplanar\nplanarity\nPlanck/M\nplan/DRMSGZ\nplaneload\nplaner/M\nplane's\nplane/SCGD\nplanetarium/MS\nplanetary\nplanetesimal/M\nplanet/MS\nplanetoid/SM\nplangency/S\nplangent\nplanking/M\nplank/SJMDG\nplankton/MS\nplanned/U\nplanner/SM\nplanning\nPlano\nplanoconcave\nplanoconvex\nPlantagenet/M\nplantain/MS\nplantar\nplantation/MS\nplanter/MS\nplanting/S\nplantlike\nplant's\nplant/SADG\nplaque/MS\nplash/GSDM\nplasma/MS\nplasmid/S\nplasm/M\nplasterboard/MS\nplasterer/M\nplastering/M\nplaster/MDRSZG\nplasterwork/M\nplastically\nplasticine\nPlasticine/M\nplasticity/SM\nplasticize/GDS\nplastic/MYS\nplateau/GDMS\nplateful/S\nplatelet/SM\nplaten/M\nplater/M\nplate/SM\nplatform/SGDM\nPlath/M\nplating/M\nplatinize/GSD\nplatinum/MS\nplatitude/SM\nplatitudinous/Y\nplat/JDNRSGXZ\nPlato/M\nplatonic\nPlatonic\nPlatonism/M\nPlatonist\nplatoon/MDSG\nplatted\nPlatte/M\nplatter/MS\nPlatteville/M\nplatting\nplatypus/MS\nplatys\nplaty/TR\nplaudit/MS\nplausibility/S\nplausible/P\nplausibly\nPlautus/M\nplayability/U\nplayable/U\nplayacting/M\nplayact/SJDG\nplayback/MS\nplaybill/SM\nPlayboy/M\nplayboy/SM\nplay/DRSEBG\nplayed/A\nplayer's/E\nplayer/SM\nplayfellow/S\nplayfulness/MS\nplayful/PY\nplaygirl/SM\nplaygoer/MS\nplayground/MS\nplaygroup/S\nplayhouse/SM\nplaying/S\nplaymate/MS\nplayoff/S\nplaypen/SM\nplayroom/SM\nplays/A\nPlaytex/M\nplaything/MS\nplaytime/SM\nplaywright/SM\nplaywriting/M\nplaza/SM\npleader/MA\npleading/MY\nplead/ZGJRDS\npleasanter\npleasantest\npleasantness/SMU\npleasantry/MS\npleasant/UYP\npleased/EU\npleaser/M\npleases/E\nplease/Y\npleasingness/M\npleasing/YP\nplea/SM\npleas/RSDJG\npleasurableness/M\npleasurable/P\npleasurably\npleasureful\npleasure/MGBDS\npleasure's/E\npleasures/E\npleater/M\npleat/RDMGS\nplebeian/SY\nplebe/MS\nplebiscite/SM\nplectra\nplectrum/SM\npledger/M\npledge/RSDMG\nPleiads\nPleistocene\nplenary/S\nplenipotentiary/S\nplenitude/MS\nplenteousness/M\nplenteous/PY\nplentifulness/M\nplentiful/YP\nplenty/SM\nplenum/M\npleonasm/MS\nplethora/SM\npleurae\npleural\npleura/M\npleurisy/SM\nPlexiglas/MS\nplexus/SM\npliability/MS\npliableness/M\npliable/P\npliancy/MS\npliantness/M\npliant/YP\nplication/MA\nplier/MA\nplight/GMDRS\nplimsolls\nplinker/M\nplink/GRDS\nplinth/M\nplinths\nPliny/M\nPliocene/S\nPLO\nplodded\nplodder/SM\nplodding/SY\nplod/S\nplopped\nplopping\nplop/SM\nplosive\nplot/SM\nplotted/A\nplotter/MDSG\nplotting\nplover/MS\nplowed/U\nplower/M\nplowman/M\nplowmen\nplow/SGZDRM\nplowshare/MS\nploy's\nploy/SCDG\nplucker/M\npluckily\npluckiness/SM\npluck/SGRD\nplucky/TPR\npluggable\nplugged/UA\nplugging/AU\nplughole\nplug's\nplug/US\nplumage/DSM\nplumbago/M\nplumbed/U\nplumber/M\nplumbing/M\nplumb/JSZGMRD\nplume/SM\nplummer\nplummest\nplummet/DSG\nplummy\nplumper/M\nplumpness/S\nplump/RDNYSTGP\nplum/SMDG\nplumy/TR\nplunder/GDRSZ\nplunger/M\nplunge/RSDZG\nplunker/M\nplunk/ZGSRD\npluperfect/S\npluralism/MS\npluralistic\npluralist/S\nplurality/SM\npluralization/MS\npluralize/GZRSD\npluralizer/M\nplural/SY\nplushness/MS\nplush/RSYMTP\nplushy/RPT\nplus/S\nplussed\nplussing\nPlutarch/M\nplutocracy/MS\nplutocratic\nplutocrat/SM\nPluto/M\nplutonium/SM\npluvial/S\nply/AZNGRSD\nPlymouth/M\nplywood/MS\npm\nPM\nPm/M\nPMS\npneumatically\npneumatic/S\npneumatics/M\npneumonia/MS\nPO\npoacher/M\npoach/ZGSRD\nPocahontas/M\npocketbook/SM\npocketful/SM\npocketing/M\npocketknife/M\npocketknives\npocket/MSRDG\npock/GDMS\npockmark/MDSG\nPocono/MS\npodded\npodding\npodge/ZR\nPodgorica/M\npodiatrist/MS\npodiatry/MS\npodium/MS\npod/SM\nPodunk/M\nPoe/M\npoem/MS\npoesy/GSDM\npoetaster/MS\npoetess/MS\npoetically\npoeticalness\npoetical/U\npoetic/S\npoetics/M\npoet/MS\npoetry/SM\npogo\nPogo/M\npogrom/GMDS\npoignancy/MS\npoignant/Y\nPoincar<61>/M\npoinciana/SM\nPoindexter/M\npoinsettia/SM\npointblank\npointedness/M\npointed/PY\npointer/M\npointillism/SM\npointillist/SM\npointing/M\npointlessness/SM\npointless/YP\npoint/RDMZGS\npointy/TR\npoise/M\npois/GDS\npoi/SM\npoisoner/M\npoisoning/M\npoisonous/PY\npoison/RDMZGSJ\nPoisson/M\npoke/DRSZG\nPokemon/M\npokerface/D\npoker/M\npoky/SRT\nPoland/M\nPolanski/M\npolarimeter/SM\npolarimetry\npolariscope/M\nPolaris/M\npolarity/MS\npolarization/CMS\npolarized/UC\npolarize/RSDZG\npolarizes/C\npolarizing/C\npolarogram/SM\npolarograph\npolarography/M\nPolaroid/SM\npolar/S\npolecat/SM\npolemical/Y\npolemicist/S\npolemic/S\npolemics/M\npole/MS\nPole/MS\npoler/M\npolestar/S\npoleward/S\npol/GMDRS\npoliceman/M\npolicemen/M\npolice/MSDG\npolicewoman/M\npolicewomen\npolicyholder/MS\npolicymaker/S\npolicymaking\npolicy/SM\npoliomyelitides\npoliomyelitis/M\npolio/SM\nPolish\npolished/U\npolisher/M\npolish/RSDZGJ\npolis/M\nPolitburo/M\npolitburo/S\npoliteness/MS\npolite/PRTY\npolitesse/SM\npolitically\npolitical/U\npolitician/MS\npoliticization/S\npoliticize/CSDG\npoliticked\npoliticking/SM\npolitico/SM\npolitic/S\npolitics/M\npolity/MS\npolka/SDMG\nPolk/M\npollack/SM\nPollard/M\npolled/U\npollen/GDM\npollinate/XSDGN\npollination/M\npollinator/MS\npolliwog/SM\npoll/MDNRSGX\npollock's\nPollock/SM\npollster/MS\npollutant/MS\npolluted/U\npolluter/M\npollute/RSDXZVNG\npollution/M\nPollux/M\nPollyanna/M\nPolly/M\npollywog's\nPol/MY\nPolo/M\npolo/MS\npolonaise/MS\npolonium/MS\npoltergeist/SM\npoltroon/MS\npolyandrous\npolyandry/MS\npolyatomic\npolybutene/MS\npolycarbonate\npolychemicals\npolychrome\npolyclinic/MS\npolycrystalline\npolyelectrolytes\npolyester/SM\npolyether/S\npolyethylene/SM\npolygamist/MS\npolygamous/Y\npolygamy/MS\npolyglot/S\npolygonal/Y\npolygon/MS\npolygraph/MDG\npolygraphs\npolygynous\npolyhedral\npolyhedron/MS\nPolyhymnia/M\npolyisobutylene\npolyisocyanates\npolymath/M\npolymaths\npolymerase/S\npolymeric\npolymerization/SM\npolymerize/SDG\npolymer/MS\npolymorphic\npolymorphism/MS\npolymorph/M\npolymyositis\nPolynesia/M\nPolynesian/S\npolynomial/YMS\nPolyphemus/M\npolyphonic\npolyphony/MS\npolyphosphate/S\npolyp/MS\npolypropylene/MS\npolystyrene/SM\npolysyllabic\npolysyllable/SM\npolytechnic/MS\npolytheism/SM\npolytheistic\npolytheist/SM\npolythene/M\npolytonal/Y\npolytopes\npolyunsaturated\npolyurethane/SM\npolyvinyl/MS\nPo/M\npomade/MGSD\npomander/MS\npomegranate/SM\nPomerania/M\nPomeranian\npommel/GSMD\nPomona/M\nPompadour/M\npompadour/MDS\npompano/SM\nPompeian/S\nPompeii/M\nPompey/M\npompom/SM\npompon's\npomposity/MS\npompousness/S\npompous/YP\npomp/SM\nponce/M\nPonce/M\nPonchartrain/M\nponcho/MS\nponderer/M\nponderousness/MS\nponderous/PY\nponder/ZGRD\npond/SMDRGZ\npone/SM\npongee/MS\nponiard/GSDM\npons/M\nPontchartrain/M\nPontiac/M\nPontianak/M\npontiff/MS\npontifical/YS\npontificate/XGNDS\npontoon/SMDG\npony/DSMG\nponytail/SM\npooch/GSDM\npoodle/MS\npoof/MS\npooh/DG\nPooh/M\npoohs\nPoole/M\npool/MDSG\npoolroom/MS\npoolside\nPoona/M\npoop/MDSG\npoorboy\npoorhouse/MS\npoorness/MS\npoor/TYRP\npopcorn/MS\nPopek/MS\npope/SM\nPope/SM\nPopeye/M\npopgun/SM\npopinjay/MS\npoplar/SM\npoplin/MS\nPopocatepetl/M\npopover/SM\npoppa/MS\npopped\nPopper/M\npopper/SM\npoppet/M\npopping\nPoppins/M\npoppycock/MS\nPoppy/M\npoppy/SDM\npoppyseed\nPopsicle/MS\npop/SM\npopulace/MS\npopularism\npopularity/UMS\npopularization/SM\npopularize/A\npopularized\npopularizer/MS\npopularizes/U\npopularizing\npopular/YS\npopulate/CXNGDS\npopulated/UA\npopulates/A\npopulating/A\npopulation/MC\npopulism/S\npopulist/SM\npopulousness/MS\npopulous/YP\nporcelain/SM\nporch/SM\nporcine\nporcupine/MS\npore/ZGDRS\nPorfirio/M\nporgy/SM\nporing/Y\nporker/M\nporky/TSR\npork/ZRMS\npornographer/SM\npornographic\npornographically\npornography/SM\nporno/S\nporn/S\nporosity/SM\nporousness/MS\nporous/PY\nporphyritic\nporphyry/MS\nporpoise/DSGM\nporridge/MS\nPorrima/M\nporringer/MS\nPorsche/M\nportability/S\nportables\nportable/U\nportably\nport/ABSGZMRD\nportage/ASM\nportaged\nportaging\nportal/SM\nportamento/M\nportcullis/MS\nported/CE\nPorte/M\nportend/SDG\nportentousness/M\nportentous/PY\nportent/SM\nporterage/M\nporter/DMG\nporterhouse/SM\nPorter/M\nporter's/A\nportfolio/MS\nporthole/SM\nPortia/M\nporticoes\nportico/M\nPortie/M\nporti<74>re/SM\nporting/E\nportion/KGSMD\nPortland/M\nportliness/SM\nportly/PTR\nportmanteau/SM\nPort/MR\nP<6E>rto/M\nportraitist/SM\nportrait/MS\nportraiture/MS\nportrayal/SM\nportrayer/M\nportray/GDRS\nports/CE\nPortsmouth/M\nPortugal/M\nPortuguese/M\nportulaca/MS\nPorty/M\nposed/CA\nPoseidon/M\nposer/KME\nposes/CA\nposeur/MS\npose/ZGKDRSE\nposh/DSRGT\nposing/CA\npositifs\npositionable\npositional/KY\nposition/KGASMD\nposition's/EC\npositions/EC\npositiveness/S\npositive/RSPYT\npositivism/M\npositivist/S\npositivity\npositron/SM\nposit/SCGD\nPosner/M\nposse/M\npossess/AGEDS\npossessed/PY\npossession/AEMS\npossessional\npossessiveness/MS\npossessive/PSMY\npossessor/MS\npossibility/SM\npossible/TRS\npossibly\nposs/S\npossum/MS\npostage/MS\npostal/S\npost/ASDRJG\npostbag/M\npostbox/SM\npostcard/SM\npostcode/SM\npostcondition/S\npostconsonantal\npostdate/DSG\npostdoctoral\nposteriori\nposterior/SY\nposterity/SM\nposter/MS\npostfix/GDS\npostgraduate/SM\nposthaste/S\nposthumousness/M\nposthumous/YP\nposthypnotic\npostilion/MS\npostindustrial\nposting/M\npostlude/MS\nPost/M\npostman/M\npostmarital\npostmark/GSMD\npostmaster/SM\npostmen\npostmeridian\npostmistress/MS\npostmodern\npostmodernist\npostmortem/S\npostnasal\npostnatal\npostoperative/Y\npostorder\npostpaid\npostpartum\npostpone/GLDRS\npostponement/S\npostpositions\npostprandial\npost's\npostscript/SM\npostsecondary\npostulate/XGNSD\npostulation/M\npostural\nposture/MGSRD\nposturer/M\npostvocalic\npostwar\nposy/SM\npotability/SM\npotableness/M\npotable/SP\npotage/M\npotash/MS\npotassium/MS\npotatoes\npotato/M\npotbelly/MSD\npotboiler/M\npotboil/ZR\npot/CMS\nPotemkin/M\npotency/MS\npotentate/SM\npotentiality/MS\npotential/SY\npotentiating\npotentiometer/SM\npotent/YS\npotful/SM\npothead/MS\npotherb/MS\npother/GDMS\npotholder/MS\npothole/SDMG\npotholing/M\npothook/SM\npotion/SM\npotlatch/SM\npotluck/MS\nPotomac/M\npotpie/SM\npotpourri/SM\nPotsdam/M\npotsherd/MS\npotshot/S\npottage/SM\nPottawatomie/M\npotted\nPotter/M\npotter/RDMSG\npottery/MS\npotting\nPotts/M\npotty/SRT\npouch/SDMG\nPoughkeepsie/M\nPoul/M\npoulterer/MS\npoultice/DSMG\npoultry/MS\npounce/SDG\npoundage/MS\npounder/MS\npound/KRDGS\nPound/M\npour/DSG\npourer's\nPoussin/MS\npouter/M\npout/GZDRS\npoverty/MS\nPOW\npowderpuff\npowder/RDGMS\npowdery\nPowell/M\npowerboat/MS\npowerfulness/M\npowerful/YP\npower/GMD\npowerhouse/MS\npowerlessness/SM\npowerless/YP\nPowers\nPowhatan/M\npow/RZ\npowwow/GDMS\npox/GMDS\nPoznan/M\npp\nPP\nppm\nppr\nPPS\npr\nPR\npracticability/S\npracticable/P\npracticably\npracticality/SM\npracticalness/M\npractical/YPS\npractice/BDRSMG\npracticed/U\npracticer/M\npracticum/SM\npractitioner/SM\nPradesh/M\nPrado/M\nPraetorian\npraetorian/S\npraetor/MS\npragmatical/Y\npragmatic/S\npragmatics/M\npragmatism/MS\npragmatist/MS\nPrague/M\nPraia\nprairie/MS\npraise/ESDG\npraiser/S\npraise's\npraiseworthiness/MS\npraiseworthy/P\npraising/Y\nPrakrit/M\npraline/MS\npram/MS\nprancer/M\nprance/ZGSRD\nprancing/Y\nprank/SMDG\nprankster/SM\npraseodymium/SM\nPratchett/M\nprate/DSRGZ\nprater/M\npratfall/MS\nprating/Y\nprattle/DRSGZ\nprattler/M\nprattling/Y\nPratt/M\nPrattville/M\nPravda/M\nprawn/MDSG\npraxes\npraxis/M\nPraxiteles/M\npray/DRGZS\nprayerbook\nprayerfulness/M\nprayerful/YP\nprayer/M\nPRC\npreach/DRSGLZJ\npreacher/M\npreaching/Y\npreachment/MS\npreachy/RT\npreadolescence/S\nPreakness/M\npreallocate/XGNDS\npreallocation/M\npreallocator/S\npreamble/MGDS\npreamp\npreamplifier/M\nprearrange/LSDG\nprearrangement/SM\npreassign/SDG\npreauthorize\nprebendary/M\nPrecambrian\nprecancel/DGS\nprecancerous\nprecariousness/MS\nprecarious/PY\nprecautionary\nprecaution/SGDM\nprecede/DSG\nprecedence/SM\nprecedented/U\nprecedent/SDM\npreceptive/Y\npreceptor/MS\nprecept/SMV\nprecess/DSG\nprecession/M\nprecinct/MS\npreciosity/MS\npreciousness/S\nprecious/PYS\nprecipice/MS\nprecipitable\nprecipitant/S\nprecipitateness/M\nprecipitate/YNGVPDSX\nprecipitation/M\nprecipitousness/M\nprecipitous/YP\npreciseness/SM\nprecise/XYTRSPN\nprecision/M\npr<70>cis/MDG\npreclude/GDS\npreclusion/S\nprecociousness/MS\nprecocious/YP\nprecocity/SM\nprecode/D\nprecognition/SM\nprecognitive\nprecollege/M\nprecolonial\nprecomputed\npreconceive/GSD\npreconception/SM\nprecondition/GMDS\npreconscious\nprecook/GDS\nprecursor/SM\nprecursory\nprecut\npredate/NGDSX\npredation/CMS\npredator/SM\npredatory\npredecease/SDG\npredecessor/MS\npredeclared\npredecline\npredefine/GSD\npredefinition/SM\npredesignate/GDS\npredestination/SM\npredestine/SDG\npredetermination/MS\npredeterminer/M\npredetermine/ZGSRD\npredicable/S\npredicament/SM\npredicate/VGNXSD\npredication/M\npredicator\npredictability/UMS\npredictable/U\npredictably/U\npredict/BSDGV\npredicted/U\nprediction/MS\npredictive/Y\npredictor/MS\npredigest/GDS\npredilect\npredilection/SM\npredispose/SDG\npredisposition/MS\npredoctoral\npredominance/SM\npredominant/Y\npredominate/YSDGN\npredomination/M\npreemie/MS\npreeminence/SM\npreeminent/Y\npreemployment/M\npreempt/GVSD\npreemption/SM\npreemptive/Y\npreemptor/M\npreener/M\npreen/SRDG\npreexist/DSG\npreexistence/SM\npreexistent\nprefabbed\nprefabbing\nprefab/MS\nprefabricate/XNGDS\nprefabrication/M\npreface/DRSGM\nprefacer/M\nprefatory\nprefect/MS\nprefecture/MS\npreferableness/M\npreferable/P\npreferably\nprefer/BL\npreference/MS\npreferential/Y\npreferment/SM\npreferred\npreferring\nprefiguration/M\nprefigure/SDG\nprefix/MDSG\npreflight/SGDM\npreform/DSG\npref/RZ\npregnancy/SM\npregnant/Y\npreheat/GDS\nprehensile\nprehistoric\nprehistorical/Y\nprehistory/SM\npreindustrial\npreinitialize/SDG\npreinterview/M\npreisolated\nprejudge/DRSG\nprejudger/M\nprejudgment/SM\nprejudiced/U\nprejudice/MSDG\nprejudicial/PY\nprekindergarten/MS\nprelacy/MS\nprelate/SM\npreliminarily\npreliminary/S\npreliterate/S\npreloaded\nprelude/GMDRS\npreluder/M\npremarital/Y\npremarket\nprematureness/M\npremature/SPY\nprematurity/M\npremedical\npremeditated/Y\npremeditate/XDSGNV\npremeditation/M\npremed/S\npremenstrual\npremiere/MS\npremier/GSDM\npremiership/SM\nPreminger/M\npremise/GMDS\npremiss's\npremium/MS\npremix/GDS\npremolar/S\npremonition/SM\npremonitory\nprenatal/Y\nPren/M\nPrenticed/M\nPrentice/MGD\nPrenticing/M\nPrentiss/M\nPrent/M\nprenuptial\npreoccupation/MS\npreoccupy/DSG\npreoperative\npreordain/DSLG\nprepackage/GSD\nprepaid\npreparation/SM\npreparative/SYM\npreparatory\npreparedly\npreparedness/USM\nprepared/UP\nprepare/ZDRSG\nprepay/GLS\nprepayment/SM\nprepender/S\nprepends\npreplanned\npreponderance/SM\npreponderant/Y\npreponderate/DSYGN\nprepositional/Y\npreposition/SDMG\nprepossess/GSD\nprepossessing/U\nprepossession/MS\npreposterousness/M\npreposterous/PY\nprepped\nprepping\npreppy/RST\npreprepared\npreprint/SGDM\npreprocessed\npreprocessing\npreprocessor/S\npreproduction\npreprogrammed\nprep/SM\nprepubescence/S\nprepubescent/S\nprepublication/M\nprepuce/SM\nprequel/S\npreradiation\nprerecord/DGS\npreregister/DSG\npreregistration/MS\nprerequisite/SM\nprerogative/SDM\nPres\npresage/GMDRS\npresager/M\npresbyopia/MS\npresbyterian\nPresbyterianism/S\nPresbyterian/S\npresbyter/MS\npresbytery/MS\npreschool/RSZ\nprescience/SM\nprescient/Y\nPrescott/M\nprescribed/U\nprescriber/M\nprescribe/RSDG\nprescription/SM\nprescriptive/Y\nprescript/SVM\npreselect/SGD\npresence/SM\npresentableness/M\npresentable/P\npresentably/A\npresentational/A\npresentation/AMS\npresented/A\npresenter/A\npresentiment/MS\npresentment/SM\npresents/A\npresent/SLBDRYZGP\npreservationist/S\npreservation/SM\npreservative/SM\npreserve/DRSBZG\npreserved/U\npreserver/M\npreset/S\npresetting\npreshrank\npreshrink/SG\npreshrunk\npreside/DRSG\npresidency/MS\npresidential/Y\npresident/SM\npresider/M\npresidia\npresidium/M\nPresley/M\npresoaks\npresort/GDS\npres/S\npress/ACDSG\npressed/U\npresser/MS\npressingly/C\npressing/YS\npressman/M\npressmen\npressure/DSMG\npressurization/MS\npressurize/DSRGZ\npressurized/U\nprestidigitate/NX\nprestidigitation/M\nprestidigitatorial\nprestidigitator/M\nprestige/MS\nprestigious/PY\nPreston/M\npresto/S\npresumably\npresume/BGDRS\npresumer/M\npresuming/Y\npresumption/MS\npresumptive/Y\npresumptuousness/SM\npresumptuous/YP\npresuppose/GDS\npresupposition/S\npretax\npreteen/S\npretended/Y\npretender/M\npretending/U\npretend/SDRZG\npretense/MNVSX\npretension/GDM\npretentiousness/S\npretentious/UYP\npreterite's\npreterit/SM\npreternatural/Y\npretest/SDG\npretext/SMDG\nPretoria/M\npretreated\npretreatment/S\npretrial\nprettify/SDG\nprettily\nprettiness/SM\npretty/TGPDRS\npretzel/SM\nprevailing/Y\nprevail/SGD\nprevalence/MS\nprevalent/SY\nprevaricate/DSXNG\nprevaricator/MS\npreventable/U\npreventably\npreventative/S\nprevent/BSDRGV\npreventer/M\nprevention/MS\npreventiveness/M\npreventive/SPY\npreview/ZGSDRM\nprevious/Y\nprevision/SGMD\nprewar\nprexes\npreyer's\nprey/SMDG\nPriam/M\npriapic\nPribilof/M\nprice/AGSD\npriced/U\npriceless\nPrice/M\npricer/MS\nprice's\npricey\npricier\npriciest\npricker/M\npricking/M\nprickle/GMDS\nprickliness/S\nprickly/RTP\nprick/RDSYZG\nprideful/Y\npride/GMDS\nprier/M\npriestess/MS\npriesthood/SM\nPriestley/M\npriestliness/SM\npriestly/PTR\npriest/SMYDG\nprigged\nprigging\npriggishness/S\npriggish/PYM\nprig/SM\nprimacy/MS\nprimal\nprimarily\nprimary/MS\nprimate/MS\nprimed/U\nprimely/M\nprimeness/M\nprime/PYS\nprimer/M\nPrime's\nprimeval/Y\npriming/M\nprimitiveness/SM\nprimitive/YPS\nprimitivism/M\nprimmed\nprimmer\nprimmest\nprimming\nprimness/MS\nprimogenitor/MS\nprimogeniture/MS\nprimordial/YS\nprimp/DGS\nprimrose/MGSD\nprim/SPJGZYDR\nprincedom/MS\nprinceliness/SM\nprincely/PRT\nPrince/M\nprince/SMY\nprincess/MS\nPrinceton/M\nprincipality/MS\nprincipal/SY\nPrincipe/M\nPrincipia/M\nprincipled/U\nprinciple/SDMG\nprintable/U\nprintably\nprint/AGDRS\nprinted/U\nprinter/AM\nprinters\nprinting/SM\nprintmaker/M\nprintmake/ZGR\nprintmaking/M\nprintout/S\nPrinz/M\nprioress/MS\npriori\nprioritize/DSRGZJ\npriority/MS\nprior/YS\npriory/SM\nPris\nPrisca/M\nPriscella/M\nPriscilla/M\nprised\nprise/GMAS\nprismatic\nprism/MS\nprison/DRMSGZ\nprisoner/M\nPrissie/M\nprissily\nprissiness/SM\nprissy/RSPT\npristine/Y\nprithee/S\nprivacy/MS\nprivateer/SMDG\nprivateness/M\nprivate/NVYTRSXP\nprivation/MCS\nprivative/Y\nprivatization/S\nprivatize/GSD\nprivet/SM\nprivileged/U\nprivilege/SDMG\nprivily\nprivy/SRMT\nprized/A\nprize/DSRGZM\nprizefighter/M\nprizefighting/M\nprizefight/SRMGJZ\nprizewinner/S\nprizewinning\nPr/MN\nPRO\nproactive\nprobabilist\nprobabilistic\nprobabilistically\nprobability/SM\nprobable/S\nprobably\nprobated/A\nprobate/NVMX\nprobates/A\nprobating/A\nprobational\nprobationary/S\nprobationer/M\nprobation/MRZ\nprobation's/A\nprobative/A\nprober/M\nprobity/SM\nproblematical/UY\nproblematic/S\nproblem/SM\nproboscis/MS\nprob/RBJ\nprocaine/MS\nprocedural/SY\nprocedure/MS\nproceeder/M\nproceeding/M\nproceed/JRDSG\nprocess/BSDMG\nprocessed/UA\nprocesses/A\nprocessional/YS\nprocession/GD\nprocessor/MS\nproclamation/MS\nproclivity/MS\nproconsular\nprocrastinate/XNGDS\nprocrastination/M\nprocrastinator/MS\nprocreational\nprocreatory\nprocrustean\nProcrustean\nProcrustes/M\nproctor/GSDM\nproctorial\nprocurable/U\nprocure/L\nprocurement/MS\nProcyon/M\nprodded\nprodding\nprodigality/S\nprodigal/SY\nprodigiousness/M\nprodigious/PY\nprodigy/MS\nprod/S\nproduce/AZGDRS\nproducer/AM\nproducible/A\nproduction/ASM\nproductively/UA\nproductiveness/MS\nproductive/PY\nproductivities\nproductivity/A\nproductivity's\nproductize/GZRSD\nproduct/V\nProf\nprofanation/S\nprofaneness/MS\nprofane/YPDRSG\nprofanity/MS\nprofessed/Y\nprofessionalism/SM\nprofessionalize/GSD\nprofessional/USY\nprofession/SM\nprofessorial/Y\nprofessorship/SM\nprofessor/SM\nproffer/GSD\nproficiency/SM\nproficient/YS\nprofitability/MS\nprofitableness/MU\nprofitable/UP\nprofitably/U\nprofiteer/GSMD\nprofiterole/MS\nprofit/GZDRB\nprofitless\nprofligacy/S\nprofligate/YS\nproforma/S\nprofoundity\nprofoundness/SM\nprofound/PTYR\nprof/S\nprofundity/MS\nprofuseness/MS\nprofuse/YP\nprogenitor/SM\nprogeny/M\nprogesterone/SM\nprognathous\nprognoses\nprognosis/M\nprognosticate/NGVXDS\nprognostication/M\nprognosticator/S\nprognostic/S\nprogram/CSA\nprogramed\nprograming\nprogrammability\nprogrammable/S\nprogrammed/CA\nprogrammer/ASM\nprogramming/CA\nprogrammings\nprogression/SM\nprogressiveness/SM\nprogressive/SPY\nprogressivism\nprogress/MSDVG\nprohibiter/M\nprohibitionist/MS\nprohibition/MS\nProhibition/MS\nprohibitiveness/M\nprohibitive/PY\nprohibitory\nprohibit/VGSRD\nprojected/AU\nprojectile/MS\nprojectionist/MS\nprojection/MS\nprojective/Y\nproject/MDVGS\nprojector/SM\nProkofieff/M\nProkofiev/M\nprolegomena\nproletarianization/M\nproletarianized\nproletarian/S\nproletariat/SM\nproliferate/GNVDSX\nproliferation/M\nprolifically\nprolific/P\nprolixity/MS\nprolix/Y\nprologize\nprologue/MGSD\nprologuize\nprolongate/NGSDX\nprolongation/M\nprolonger/M\nprolong/G\npromenade/GZMSRD\npromenader/M\nPromethean\nPrometheus/M\npromethium/SM\nprominence/MS\nprominent/Y\npromiscuity/MS\npromiscuousness/M\npromiscuous/PY\npromise/GD\npromising/UY\npromissory\npromontory/MS\npromote/GVZBDR\npromoter/M\npromotiveness/M\npromotive/P\nprompted/U\nprompter/M\npromptitude/SM\npromptness/MS\nprompt/SGJTZPYDR\npro/MS\npromulgate/NGSDX\npromulgation/M\npromulgator/MS\npron\nproneness/MS\nprone/PY\npronghorn/SM\nprong/SGMD\npronominalization\npronominalize\npronounceable/U\npronouncedly\npronounced/U\npronounce/GLSRD\npronouncement/SM\npronouncer/M\npronto\npronunciation/SM\nproofed/A\nproofer\nproofing/M\nproofreader/M\nproofread/GZSR\nproof/SEAM\npropaganda/SM\npropagandistic\npropagandist/SM\npropagandize/DSG\npropagated/U\npropagate/SDVNGX\npropagation/M\npropagator/MS\npropellant/MS\npropelled\npropeller/MS\npropelling\npropel/S\npropensity/MS\nproperness/M\nproper/PYRT\npropertied/U\nproperty/SDM\nprophecy/SM\nprophesier/M\nprophesy/GRSDZ\nprophetess/S\nprophetic\nprophetical/Y\nprophet/SM\nprophylactic/S\nprophylaxes\nprophylaxis/M\npropinquity/MS\npropionate/M\npropitiate/GNXSD\npropitiatory\npropitiousness/M\npropitious/YP\nproponent/MS\nproportionality/M\nproportional/SY\nproportionate/YGESD\nproportioner/M\nproportion/ESGDM\nproportionment/M\nproposal/SM\npropped\npropping\nproprietary/S\nproprietorial\nproprietorship/SM\nproprietor/SM\nproprietress/MS\npropriety/MS\nproprioception\nproprioceptive\nprop/SZ\npropulsion/MS\npropulsive\npropylene/M\nprorogation/SM\nprorogue\nprosaic\nprosaically\nproscenium/MS\nprosciutti\nprosciutto/SM\nproscription/SM\nproscriptive\npros/DSRG\nprosecute/SDBXNG\nprosecution/M\nprosecutor/MS\nproselyte/SDGM\nproselytism/MS\nproselytize/ZGDSR\nprose/M\nproser/M\nProserpine/M\nprosodic/S\nprosody/MS\nprospect/DMSVG\nprospection/SM\nprospectiveness/M\nprospective/SYP\nprospector/MS\nprospectus/SM\nprosper/GSD\nprosperity/MS\nprosperousness/M\nprosperous/PY\nprostate\nprostheses\nprosthesis/M\nprosthetic/S\nprosthetics/M\nprostitute/DSXNGM\nprostitution/M\nprostrate/SDXNG\nprostration/M\nprosy/RT\nprotactinium/MS\nprotagonist/SM\nProtagoras/M\nprotean/S\nprotease/M\nprotect/DVGS\nprotected/UY\nprotectionism/MS\nprotectionist/MS\nprotection/MS\nprotectiveness/S\nprotective/YPS\nprotectorate/SM\nprotector/MS\nprot<6F>g<EFBFBD>es\nprot<6F>g<EFBFBD>/SM\nprotein/MS\nproteolysis/M\nproteolytic\nProterozoic/M\nprotestantism\nProtestantism/MS\nprotestant/S\nProtestant/SM\nprotestation/MS\nprotest/G\nprotesting/Y\nProteus/M\nprotocol/DMGS\nprotoplasmic\nprotoplasm/MS\nprototype/SDGM\nprototypic\nprototypical/Y\nprotozoa\nprotozoan/MS\nprotozoic\nprotozoon's\nprotract/DG\nprotrude/SDG\nprotrusile\nprotrusion/MS\nprotrusive/PY\nprotuberance/S\nprotuberant\nProudhon/M\nproud/TRY\nProust/M\nprovabilities\nprovability's\nprovability/U\nprovableness/M\nprovable/P\nprovably\nprov/DRGZB\nproved/U\nproven/U\nprove/ESDAG\nprovenance/SM\nProven<65>al\nProvencals\nProvence/M\nprovender/SDG\nprovenience/SM\nprovenly\nproverb/DG\nproverbial/Y\nProverbs/M\nprover/M\nprovide/DRSBGZ\nprovided/U\nprovidence/SM\nProvidence/SM\nprovidential/Y\nprovident/Y\nprovider/M\nprovince/SM\nprovincialism/SM\nprovincial/SY\nprovisional/YS\nprovisioner/M\nprovision/R\nproviso/MS\nprovocateur/S\nprovocativeness/SM\nprovocative/P\nprovoked/U\nprovoke/GZDRS\nprovoking/Y\nprovolone/SM\nProvo/M\nprovost/MS\nprowess/SM\nprowler/M\nprowl/RDSZG\nprow/TRMS\nproximal/Y\nproximateness/M\nproximate/PY\nproximity/MS\nProxmire/M\nproxy/SM\nProzac\nprude/MS\nPrudence/M\nprudence/SM\nPrudential/M\nprudential/SY\nprudent/Y\nprudery/MS\nPrudi/M\nprudishness/SM\nprudish/YP\nPrudy/M\nPrue/M\nPruitt/M\nPru/M\nprune/DSRGZM\npruner/M\nprurience/MS\nprurient/Y\nPrussia/M\nPrussian/S\nprussic\nPrut/M\nPryce/M\npry/DRSGTZ\npryer's\nprying/Y\nP's\nPS\np's/A\npsalmist/SM\npsalm/SGDM\nPsalms/M\npsalter\nPsalter/SM\npsaltery/MS\npsephologist/M\npseudonymous\npseudonym/SM\npseudopod\npseudo/S\npseudoscience/S\npshaw/SDG\npsi/S\npsittacoses\npsittacosis/M\npsoriases\npsoriasis/M\npsst/S\nPST\npsychedelically\npsychedelic/S\npsyche/M\nPsyche/M\npsychiatric\npsychiatrist/SM\npsychiatry/MS\npsychical/Y\npsychic/MS\npsychoacoustic/S\npsychoacoustics/M\npsychoactive\npsychoanalysis/M\npsychoanalyst/S\npsychoanalytic\npsychoanalytical\npsychoanalyze/SDG\npsychobabble/S\npsychobiology/M\npsychocultural\npsychodrama/MS\npsychogenic\npsychokinesis/M\npsycholinguistic/S\npsycholinguistics/M\npsycholinguists\npsychological/Y\npsychologist/MS\npsychology/MS\npsychometric/S\npsychometrics/M\npsychometry/M\npsychoneuroses\npsychoneurosis/M\npsychopathic/S\npsychopath/M\npsychopathology/M\npsychopaths\npsychopathy/SM\npsychophysical/Y\npsychophysic/S\npsychophysics/M\npsychophysiology/M\npsychosis/M\npsycho/SM\npsychosocial/Y\npsychosomatic/S\npsychosomatics/M\npsychos/S\npsychotherapeutic/S\npsychotherapist/MS\npsychotherapy/SM\npsychotically\npsychotic/S\npsychotropic/S\npsychs\npsych/SDG\nPT\nPTA\nPtah/M\nptarmigan/MS\npt/C\npterodactyl/SM\nPt/M\nPTO\nPtolemaic\nPtolemaists\nPtolemy/MS\nptomaine/MS\nPu\npubbed\npubbing\npubertal\npuberty/MS\npubes\npubescence/S\npubescent\npubic\npubis/M\npublican/AMS\npublication/AMS\npublicist/SM\npublicity/SM\npublicized/U\npublicize/SDG\npublicness/M\npublics/A\npublic/YSP\npublishable/U\npublished/UA\npublisher/ASM\npublishes/A\npublishing/M\npublish/JDRSBZG\npub/MS\nPuccini/M\npuce/SM\npucker/DG\nPuckett/M\npuck/GZSDRM\npuckishness/S\npuckish/YP\nPuck/M\npudding/MS\npuddle/JMGRSD\npuddler/M\npuddling/M\npuddly\npudenda\npudendum/M\npudginess/SM\npudgy/PRT\nPuebla/M\nPueblo/MS\npueblo/SM\npuerile/Y\npuerility/SM\npuerperal\npuers\nPuerto/M\npuffball/SM\npuffer/M\npuffery/M\npuffiness/S\npuffin/SM\nPuff/M\npuff/SGZDRM\npuffy/PRT\nPuget/M\npugged\npugging\nPugh/M\npugilism/SM\npugilistic\npugilist/S\npug/MS\npugnaciousness/MS\npugnacious/YP\npugnacity/SM\npuissant/Y\npuke/GDS\npukka\nPulaski/SM\npulchritude/SM\npulchritudinous/M\npule/GDS\nPulitzer/SM\npullback/S\npull/DRGZSJ\npullet/SM\npulley/SM\nPullman/MS\npullout/S\npullover/SM\npulmonary\npulpiness/S\npulpit/MS\npulp/MDRGS\npulpwood/MS\npulpy/PTR\npulsar/MS\npulsate/NGSDX\npulsation/M\npulse/ADSG\npulser\npulse's\npulverable\npulverization/MS\npulverized/U\npulverize/GZSRD\npulverizer/M\npulverizes/UA\npuma/SM\npumice/SDMG\npummel/SDG\npumpernickel/SM\npump/GZSMDR\npumping/M\npumpkin/MS\npunchbowl/M\npunched/U\npuncheon/MS\npuncher/M\npunch/GRSDJBZ\npunchline/S\nPunch/M\npunchy/RT\npunctilio/SM\npunctiliousness/SM\npunctilious/PY\npunctualities\npunctuality/UM\npunctualness/M\npunctual/PY\npunctuate/SDXNG\npunctuational\npunctuation/M\npuncture/SDMG\npunditry/S\npundit/SM\npungency/MS\npungent/Y\nPunic\npuniness/MS\npunished/U\npunisher/M\npunishment/MS\npunish/RSDGBL\npunitiveness/M\npunitive/YP\nPunjabi/M\nPunjab/M\npunk/TRMS\npunky/PRS\npun/MS\npunned\npunning\npunster/SM\npunter/M\npunt/GZMDRS\npuny/PTR\npupae\npupal\npupa/M\npupate/NGSD\npupillage/M\npupil/SM\npup/MS\npupped\npuppeteer/SM\npuppetry/MS\npuppet/SM\npupping\npuppy/GSDM\npuppyish\npurblind\nPurcell/M\npurchasable\npurchase/GASD\npurchaser/MS\npurdah/M\npurdahs\nPurdue/M\npurebred/S\npuree/DSM\npureeing\npureness/MS\npure/PYTGDR\npurgation/M\npurgative/MS\npurgatorial\npurgatory/SM\npurge/GZDSR\npurger/M\npurify/GSRDNXZ\nPurim/SM\nPurina/M\npurine/SM\npurism/MS\npuristic\npurist/MS\npuritanic\npuritanical/Y\nPuritanism/MS\npuritanism/S\npuritan/SM\nPuritan/SM\npurity/SM\npurlieu/SM\npurl/MDGS\npurloin/DRGS\npurloiner/M\npurple/MTGRSD\npurplish\npurport/DRSZG\npurported/Y\npurposefulness/S\npurposeful/YP\npurposelessness/M\npurposeless/PY\npurpose/SDVGYM\npurposiveness/M\npurposive/YP\npurr/DSG\npurring/Y\npurse/DSRGZM\npurser/M\npursuance/MS\npursuant\npursuer/M\npursue/ZGRSD\npursuit/MS\npurulence/MS\npurulent\nPurus\npurveyance/MS\npurvey/DGS\npurveyor/MS\npurview/SM\nPusan/M\nPusey/M\npushbutton/S\npushcart/SM\npushchair/SM\npushdown\npush/DSRBGZ\npusher/M\npushily\npushiness/MS\nPushkin/M\npushover/SM\nPushtu/M\npushy/PRT\npusillanimity/MS\npusillanimous/Y\npus/SM\npuss/S\npussycat/S\npussyfoot/DSG\npussy/TRSM\npustular\npustule/MS\nputative/Y\nPutin/M\nput/IS\nPutnam/M\nPutnem/M\nputout/S\nputrefaction/SM\nputrefactive\nputrefy/DSG\nputrescence/MS\nputrescent\nputridity/M\nputridness/M\nputrid/YP\nputsch/S\nputted/I\nputtee/MS\nputter/RDMGZ\nputting/I\nputt/SGZMDR\nputtying/M\nputty/SDMG\npuzzle/JRSDZLG\npuzzlement/MS\npuzzler/M\nPVC\npvt\nPvt/M\nPW\nPX\np/XTGJ\nPygmalion/M\npygmy/SM\nPygmy/SM\nPyhrric/M\npyknotic\nPyle/M\npylon/SM\npylori\npyloric\npylorus/M\nPym/M\nPynchon/M\nPyongyang/M\npyorrhea/SM\nPyotr/M\npyramidal/Y\npyramid/GMDS\npyre/MS\nPyrenees\nPyrex/SM\npyridine/M\npyrimidine/SM\npyrite/MS\npyroelectric\npyroelectricity/SM\npyrolysis/M\npyrolyze/RSM\npyromaniac/SM\npyromania/MS\npyrometer/MS\npyrometry/M\npyrophosphate/M\npyrotechnical\npyrotechnic/S\npyrotechnics/M\npyroxene/M\npyroxenite/M\nPyrrhic\nPythagoras/M\nPythagorean/S\nPythias\nPython/M\npython/MS\npyx/MDSG\nq\nQ\nQA\nQaddafi/M\nQantas/M\nQatar/M\nQB\nQC\nQED\nQingdao\nQiqihar/M\nQM\nQom/M\nqr\nq's\nQ's\nqt\nqty\nqua\nQuaalude/M\nquackery/MS\nquackish\nquack/SDG\nquadded\nquadding\nquadrangle/MS\nquadrangular/M\nquadrant/MS\nquadraphonic/S\nquadrapole\nquadratical/Y\nquadratic/SM\nquadrature/MS\nquadrennial/SY\nquadrennium/MS\nquadric\nquadriceps/SM\nquadrilateral/S\nquadrille/XMGNSD\nquadrillion/MH\nquadripartite/NY\nquadriplegia/SM\nquadriplegic/SM\nquadrivia\nquadrivium/M\nquadrupedal\nquadruped/MS\nquadruple/GSD\nquadruplet/SM\nquadruplicate/GDS\nquadruply/NX\nquadrupole\nquad/SM\nquadword/MS\nquaffer/M\nquaff/SRDG\nquagmire/DSMG\nquahog/MS\nquail/GSDM\nquaintness/MS\nquaint/PTYR\nquake/GZDSR\nQuakeress/M\nQuakerism/S\nQuaker/SM\nquaky/RT\nqualification/ME\nqualified/UY\nqualifier/SM\nqualify/EGXSDN\nqualitative/Y\nquality/MS\nqualmish\nqualm/SM\nquandary/MS\nquangos\nquanta/M\nQuantico/M\nquantifiable/U\nquantified/U\nquantifier/M\nquantify/GNSRDZX\nquantile/S\nquantitativeness/M\nquantitative/PY\nquantity/MS\nquantization/MS\nquantizer/M\nquantize/ZGDRS\nquantum/M\nquarantine/DSGM\nquark/SM\nquarreler/M\nquarrellings\nquarrelsomeness/MS\nquarrelsome/PY\nquarrel/SZDRMG\nquarrier/M\nquarryman/M\nquarrymen\nquarry/RSDGM\nquarterback/SGMD\nquarterdeck/MS\nquarterer/M\nquarterfinal/MS\nquartering/M\nquarterly/S\nquartermaster/MS\nquarter/MDRYG\nquarterstaff/M\nquarterstaves\nquartet/SM\nquartic/S\nquartile/SM\nquarto/SM\nquart/RMSZ\nquartzite/M\nquartz/SM\nquasar/SM\nquash/GSD\nquasi\nquasilinear\nQuasimodo/M\nQuaternary\nquaternary/S\nquaternion/SM\nquatrain/SM\nquaver/GDS\nquavering/Y\nquavery\nQuayle/M\nquayside/M\nquay/SM\nqueasily\nqueasiness/SM\nqueasy/TRP\nQuebec/M\nQuechua/M\nQueenie/M\nqueenly/RT\nqueen/SGMDY\nQueensland/M\nQueen/SM\nqueerness/S\nqueer/STGRDYP\nqueller/M\nquell/SRDG\nQue/M\nquenchable/U\nquenched/U\nquencher/M\nquench/GZRSDB\nquenchless\nQuentin/M\nQuent/M\nQuerida/M\nquern/M\nquerulousness/S\nquerulous/YP\nquery/MGRSD\nquested/A\nquester/AS\nquester's\nquest/FSIM\nquesting\nquestionableness/M\nquestionable/P\nquestionably/U\nquestioned/UA\nquestioner/M\nquestioning/UY\nquestionnaire/MS\nquestion/SMRDGBZJ\nquests/A\nQuetzalcoatl/M\nqueued/C\nqueue/GZMDSR\nqueuer/M\nqueues/C\nqueuing/C\nQuezon/M\nquibble/GZRSD\nquibbler/M\nquiche/SM\nquicken/RDG\nquickie/MS\nquicklime/SM\nquickness/MS\nquick/RNYTXPS\nquicksand/MS\nquicksilver/GDMS\nquickstep/SM\nquid/SM\nquiesce/D\nquiescence/MS\nquiescent/YP\nquieted/E\nquieten/SGD\nquieter/E\nquieter's\nquieting/E\nquietly/E\nquietness/MS\nquiets/E\nquietude/IEMS\nquietus/MS\nquiet/UTGPSDRY\nQuillan/M\nquill/GSDM\nQuill/M\nquilter/M\nquilting/M\nquilt/SZJGRDM\nquincentenary/M\nquince/SM\nQuincey/M\nquincy/M\nQuincy/M\nquinine/MS\nQuinlan/M\nQuinn/M\nquinquennial/Y\nquinsy/SM\nQuinta/M\nQuintana/M\nquintessence/SM\nquintessential/Y\nquintet/SM\nquintic\nquintile/SM\nQuintilian/M\nQuintilla/M\nquintillion/MH\nquintillionth/M\nQuintina/M\nQuintin/M\nQuint/M\nquint/MS\nQuinton/M\nquintuple/SDG\nquintuplet/MS\nQuintus/M\nquip/MS\nquipped\nquipper\nquipping\nquipster/SM\nquired/AI\nquire/MDSG\nquires/AI\nQuirinal/M\nquiring/IA\nquirkiness/SM\nquirk/SGMD\nquirky/PTR\nquirt/SDMG\nQuisling/M\nquisling/SM\nquitclaim/GDMS\nquit/DGS\nquite/SADG\nQuito/M\nquittance/SM\nquitter/SM\nquitting\nquiver/GDS\nquivering/Y\nquivery\nQuixote/M\nquixotic\nquixotically\nQuixotism/M\nquiz/M\nquizzed\nquizzer/SM\nquizzes\nquizzical/Y\nquizzing\nquo/H\nquoin/SGMD\nquoit/GSDM\nquondam\nquonset\nQuonset\nquorate/I\nquorum/MS\nquotability/S\nquota/MS\nquotation/SM\nquoter/M\nquote/UGSD\nquot/GDRB\nquotidian/S\nquotient/SM\nqwerty\nqwertys\nRabat/M\nrabbet/GSMD\nRabbi/M\nrabbi/MS\nrabbinate/MS\nrabbinic\nrabbinical/Y\nrabbiter/M\nrabbit/MRDSG\nrabble/GMRSD\nrabbler/M\nRabelaisian\nRabelais/M\nrabidness/SM\nrabid/YP\nrabies\nRabi/M\nRabin/M\nrabis\nRab/M\nraccoon/SM\nracecourse/MS\nracegoers\nracehorse/SM\nraceme/MS\nrace/MZGDRSJ\nracer/M\nracetrack/SMR\nraceway/SM\nRachael/M\nRachele/M\nRachelle/M\nRachel/M\nRachmaninoff/M\nracialism/MS\nracialist/MS\nracial/Y\nracily\nRacine/M\nraciness/MS\nracism/S\nracist/MS\nracketeer/MDSJG\nracket/SMDG\nrackety\nrack/GDRMS\nraconteur/SM\nracoon's\nracquetball/S\nracquet's\nracy/RTP\nradarscope/MS\nradar/SM\nRadcliffe/M\nradded\nradder\nraddest\nRaddie/M\nradding\nRaddy/M\nradial/SY\nradiance/SM\nradian/SM\nradiant/YS\nradiate/XSDYVNG\nradiation/M\nradiative/Y\nradiator/MS\nradicalism/MS\nradicalization/S\nradicalize/GSD\nradicalness/M\nradical/SPY\nradices's\nradii/M\nradioactive/Y\nradioactivity/MS\nradioastronomical\nradioastronomy\nradiocarbon/MS\nradiochemical/Y\nradiochemistry/M\nradiogalaxy/S\nradiogram/SM\nradiographer/MS\nradiographic\nradiography/MS\nradioisotope/SM\nradiologic\nradiological/Y\nradiologist/MS\nradiology/MS\nradioman/M\nradiomen\nradiometer/SM\nradiometric\nradiometry/MS\nradionics\nradionuclide/M\nradiopasteurization\nradiophone/MS\nradiophysics\nradioscopy/SM\nradio/SMDG\nradiosonde/SM\nradiosterilization\nradiosterilized\nradiotelegraph\nradiotelegraphs\nradiotelegraphy/MS\nradiotelephone/SM\nradiotherapist/SM\nradiotherapy/SM\nradish/MS\nradium/MS\nradius/M\nradix/SM\nRad/M\nradon/SM\nrad/S\nRaeann/M\nRae/M\nRAF\nRafaela/M\nRafaelia/M\nRafaelita/M\nRafaellle/M\nRafaello/M\nRafael/M\nRafa/M\nRafe/M\nRaffaello/M\nRaffarty/M\nRafferty/M\nraffia/SM\nraffishness/SM\nraffish/PY\nraffle/MSDG\nRaff/M\nRafi/M\nRaf/M\nrafter/DM\nraft/GZSMDR\nraga/MS\nragamuffin/MS\nragbag/SM\nrage/MS\nraggedness/SM\nragged/PRYT\nraggedy/TR\nragging\nrag/GSMD\nraging/Y\nraglan/MS\nRagnar/M\nRagnar<61>k\nragout/SMDG\nragtag/MS\nragtime/MS\nragweed/MS\nragwort/M\nRahal/M\nrah/DG\nRahel/M\nrahs\nraider/M\nraid/MDRSGZ\nrailbird/S\nrail/CDGS\nrailer/SM\nrailhead/SM\nrailing/MS\nraillery/MS\nrailroader/M\nrailroading/M\nrailroad/SZRDMGJ\nrail's\nrailwaymen\nrailway/MS\nraiment/SM\nRaimondo/M\nRaimund/M\nRaimundo/M\nRaina/M\nrainbow/MS\nraincloud/S\nraincoat/SM\nraindrop/SM\nRaine/MR\nRainer/M\nrainfall/SM\nrainforest's\nrain/GSDM\nRainier/M\nrainless\nrainmaker/SM\nrainmaking/MS\nrainproof/GSD\nrainstorm/SM\nrainwater/MS\nrainy/RT\nraise/DSRGZ\nraiser/M\nraising/M\nraisin/MS\nrajah/M\nrajahs\nRajive/M\nraj/M\nRakel/M\nrake/MGDRS\nraker/M\nrakishness/MS\nrakish/PY\nRaleigh/M\nRalf/M\nRalina/M\nrally/GSD\nRalph/M\nRalston/M\nRa/M\nRamada/M\nRamadan/SM\nRamakrishna/M\nRama/M\nRaman/M\nRamayana/M\nramble/JRSDGZ\nrambler/M\nrambling/Y\nRambo/M\nrambunctiousness/S\nrambunctious/PY\nramekin/SM\nramie/MS\nramification/M\nramify/XNGSD\nRamirez/M\nRamiro/M\nramjet/SM\nRam/M\nrammed\nramming\nRamo/MS\nRamona/M\nRamonda/M\nRamon/M\nrampage/SDG\nrampancy/S\nrampant/Y\nrampart/SGMD\nramp/GMDS\nramrodded\nramrodding\nramrod/MS\nRAM/S\nRamsay/M\nRamses/M\nRamsey/M\nramshackle\nram/SM\nrams/S\nran/A\nRana/M\nRancell/M\nRance/M\nrancher/M\nrancho/SM\nranch/ZRSDMJG\nrancidity/MS\nrancidness/SM\nrancid/P\nrancorous/Y\nrancor/SM\nRandall/M\nRandal/M\nRanda/M\nRandee/M\nRandell/M\nRandene/M\nRandie/M\nRandi/M\nrandiness/S\nRand/M\nrand/MDGS\nRandolf/M\nRandolph/M\nrandomization/SM\nrandomize/SRDG\nrandomness/SM\nrandom/PYS\nRandy/M\nrandy/PRST\nRanee/M\nranee/SM\nranged/C\nrangeland/S\nranger/M\nranges/C\nrange/SM\nrang/GZDR\nranginess/S\nranging/C\nRangoon/M\nrangy/RPT\nRania/M\nRanice/M\nRanier/M\nRani/MR\nRanique/M\nrani's\nranked/U\nranker/M\nrank/GZTYDRMPJS\nRankine/M\nranking/M\nRankin/M\nrankle/SDG\nrankness/MS\nRanna/M\nransacker/M\nransack/GRDS\nRansell/M\nransomer/M\nRansom/M\nransom/ZGMRDS\nranter/M\nrant/GZDRJS\nranting/Y\nRaoul/M\nrapaciousness/MS\nrapacious/YP\nrapacity/MS\nrapeseed/M\nrape/SM\nRaphaela/M\nRaphael/M\nrapidity/MS\nrapidness/S\nrapid/YRPST\nrapier/SM\nrapine/SM\nrapist/MS\nrap/MDRSZG\nrapped\nrappelled\nrappelling\nrappel/S\nrapper/SM\nrapping/M\nrapporteur/SM\nrapport/SM\nrapprochement/SM\nrapscallion/MS\nraptness/S\nrapture/MGSD\nrapturousness/M\nrapturous/YP\nrapt/YP\nRapunzel/M\nRaquela/M\nRaquel/M\nrarebit/MS\nrarefaction/MS\nrarefy/GSD\nrareness/MS\nrare/YTPGDRS\nrarity/SM\nRasalgethi/M\nRasalhague/M\nrascal/SMY\nrasher/M\nrashness/S\nrash/PZTYSR\nRasia/M\nRasla/M\nRasmussen/M\nraspberry/SM\nrasper/M\nrasping/Y\nrasp/SGJMDR\nRasputin/M\nraspy/RT\nRastaban/M\nRastafarian/M\nraster/MS\nRastus/M\nratchet/MDSG\nrateable\nrated/U\nrate/KNGSD\nratepayer/SM\nrater/M\nrate's\nRatfor/M\nrather\nRather/M\nrathskeller/SM\nratifier/M\nratify/ZSRDGXN\nrating/M\nratiocinate/VNGSDX\nratiocination/M\nratio/MS\nrationale/SM\nrationalism/SM\nrationalistic\nrationalist/S\nrationality/MS\nrationalization/SM\nrationalizer/M\nrationalize/ZGSRD\nrationalness/M\nrational/YPS\nration/DSMG\nRatliff/M\nratlike\nratline/SM\nrat/MDRSJZGB\nrattail\nrattan/MS\nratted\nratter/MS\nratting\nrattlebrain/DMS\nrattle/RSDJGZ\nrattlesnake/MS\nrattletrap/MS\nrattling/Y\nrattly/TR\nrattrap/SM\nratty/RT\nraucousness/SM\nraucous/YP\nRaul/M\nraunchily\nraunchiness/S\nraunchy/RTP\nravage/GZRSD\nravager/M\nraveling/S\nRavel/M\nravel/UGDS\nraven/JGMRDS\nRaven/M\nravenous/YP\nraver/M\nrave/ZGDRSJ\nRavid/M\nRavi/M\nravine/SDGM\nravioli/SM\nravisher/M\nravishing/Y\nravish/LSRDZG\nravishment/SM\nRaviv/M\nRawalpindi/M\nrawboned\nrawhide/SDMG\nRawley/M\nRawlings/M\nRawlins/M\nRawlinson/M\nrawness/SM\nraw/PSRYT\nRawson/M\nRayburn/M\nRaychel/M\nRaye/M\nray/GSMD\nRayleigh/M\nRay/M\nRaymond/M\nRaymondville/M\nRaymund/M\nRaymundo/M\nRayna/M\nRaynard/M\nRaynell/M\nRayner/M\nRaynor/M\nrayon/SM\nRayshell/M\nRaytheon/M\nraze/DRSG\nrazer/M\nrazorback/SM\nrazorblades\nrazor/MDGS\nrazz/GDS\nrazzmatazz/S\nRb\nRBI/S\nRC\nRCA\nrcpt\nRCS\nrd\nRD\nRDA\nRd/M\nreabbreviate\nreachability\nreachable/U\nreachably\nreached/U\nreacher/M\nreach/GRB\nreacquisition\nreactant/SM\nreacted/U\nreaction\nreactionary/SM\nreactivity\nreadability/MS\nreadable/P\nreadably\nreaddress/G\nReade/M\nreader/M\nreadership/MS\nRead/GM\nreadied\nreadies\nreadily\nreadinesses\nreadiness/UM\nreading/M\nReading/M\nread/JGZBR\nreadopt/G\nreadout/MS\nreads/A\nreadying\nready/TUPR\nReagan/M\nReagen/M\nrealisms\nrealism's\nrealism/U\nrealistically/U\nrealistic/U\nrealist/SM\nreality/USM\nrealizability/MS\nrealizableness/M\nrealizable/SMP\nrealizably/S\nrealization/MS\nrealized/U\nrealize/JRSDBZG\nrealizer/M\nrealizes/U\nrealizing/MY\nrealm/M\nrealness/S\nrealpolitik/SM\nreal/RSTP\nrealtor's\nRealtor/S\nrealty/SM\nRea/M\nreamer/M\nream/MDRGZ\nReamonn/M\nreanimate\nreaper/M\nreappraise/G\nreap/SGZ\nrear/DRMSG\nrearguard/MS\nrearmost\nrearrange/L\nrearward/S\nreasonableness/SMU\nreasonable/UP\nreasonably/U\nReasoner/M\nreasoner/SM\nreasoning/MS\nreasonless\nreasons\nreason/UBDMG\nreassess/GL\nreassuringly/U\nreattach/GSL\nreawakening/M\nReba/M\nrebate/M\nRebbecca/M\nRebeca/M\nRebecca's\nRebecka/M\nRebekah/M\nRebeka/M\nRebekkah/M\nrebeller\nrebellion/SM\nrebelliousness/MS\nrebellious/YP\nrebel/MS\nRebe/M\nrebid\nrebidding\nrebind/G\nrebirth\nreboil/G\nrebook\nreboot/ZR\nrebound/G\nrebroadcast/MG\nrebuke/RSDG\nrebuking/Y\nrebus\nrebuttal/SM\nrebutting\nrec\nrecalcitrance/SM\nrecalcitrant/S\nrecalibrate/N\nrecantation/S\nrecant/G\nrecap\nrecappable\nrecapping\nrecast/G\nrecd\nrec'd\nrecede\nreceipt/SGDM\nreceivable/S\nreceived/U\nreceiver/M\nreceivership/SM\nreceive/ZGRSDB\nrecency/M\nrecension/M\nrecentness/SM\nrecent/YPT\nreceptacle/SM\nreceptionist/MS\nreception/MS\nreceptiveness/S\nreceptive/YP\nreceptivity/S\nreceptor/MS\nrecessional/S\nrecessionary\nrecessiveness/M\nrecessive/YPS\nrecess/SDMVG\nrechargeable\nrecheck/G\nrecherch<63>\nrecherches\nrecidivism/MS\nrecidivist/MS\nRecife/M\nrecipe/MS\nrecipiency\nrecipient/MS\nreciprocal/SY\nreciprocate/NGXVDS\nreciprocation/M\nreciprocity/MS\nrecitalist/S\nrecital/MS\nrecitative/MS\nreciter/M\nrecite/ZR\nrecked\nrecking\nrecklessness/S\nreckless/PY\nreckoner/M\nreckoning/M\nreckon/SGRDJ\nreclaim/B\nreclamation/SM\nrecliner/M\nrecline/RSDZG\nrecluse/MVNS\nreclusion/M\nrecode/G\nrecognizability\nrecognizable/U\nrecognizably\nrecognize/BZGSRD\nrecognizedly/S\nrecognized/U\nrecognizer/M\nrecognizingly/S\nrecognizing/UY\nrecoilless\nrecoinage\nrecolor/GD\nrecombinant\nrecombine\nrecommended/U\nrecompense/GDS\nrecompute/B\nreconciled/U\nreconciler/M\nreconcile/SRDGB\nreconditeness/M\nrecondite/YP\nreconfigurability\nreconfigure/R\nreconnaissance/MS\nreconnect/R\nreconnoiter/GSD\nreconquer/G\nreconsecrate\nreconstitute\nreconstructed/U\nReconstruction/M\nreconsult/G\nrecontact/G\nrecontaminate/N\nrecontribute\nrecook/G\nrecopy/G\nrecorded/AU\nrecords/A\nrecord/ZGJ\nrecourse\nrecoverability\nrecoverable/U\nrecover/B\nrecovery/MS\nrecreant/S\nrecreational\nrecriminate/GNVXDS\nrecrimination/M\nrecriminatory\nrecross/G\nrecrudesce/GDS\nrecrudescence/MS\nrecrudescent\nrecruiter/M\nrecruitment/MS\nrecruit/ZSGDRML\nrecrystallize\nrectal/Y\nrectangle/SM\nrectangular/Y\nrecta's\nrectifiable\nrectification/M\nrectifier/M\nrectify/DRSGXZN\nrectilinear/Y\nrectitude/MS\nrecto/MS\nrector/SM\nrectory/MS\nrectum/SM\nrecumbent/Y\nrecuperate/VGNSDX\nrecuperation/M\nrecur\nrecurrence/MS\nrecurrent\nrecurse/NX\nrecursion/M\nrecusant/M\nrecuse\nrecyclable/S\nrecycle/BZ\nredact/DGS\nredaction/SM\nredactor/MS\nredbird/SM\nredbreast/SM\nredbrick/M\nredbud/M\nredcap/MS\nredcoat/SM\nredcurrant/M\nredden/DGS\nredder\nreddest\nredding\nreddish/P\nRedd/M\nredeclaration\nredecorate\nredeemable/U\nredeem/BRZ\nredeemed/U\nredeemer/M\nRedeemer/M\nredemptioner/M\nredemption/RMS\nredemptive\nredeposit/M\nredetermination\nRedford/M\nRedgrave/M\nredhead/DRMS\nRedhook/M\nredial/G\nredirect/G\nredirection\nredlining/S\nRedmond/M\nredneck/SMD\nredness/MS\nredo/G\nredolence/MS\nredolent\nRedondo/M\nredouble/S\nredoubtably\nredound/GDS\nred/PYS\nredshift/S\nredskin/SM\nRedstone/M\nreduced/U\nreducer/M\nreduce/RSDGZ\nreducibility/M\nreducible\nreducibly\nreductionism/M\nreductionist/S\nreduction/SM\nreduct/V\nredundancy/SM\nredundant/Y\nredwood/SM\nredye\nredyeing\nReeba/M\nReebok/M\nReece/M\nreecho/G\nreed/GMDR\nreediness/SM\nreeding/M\nReed/M\nReedville/M\nreedy/PTR\nreefer/M\nreef/GZSDRM\nreeker/M\nreek/GSR\nreeler/M\nreel's\nreel/USDG\nRee/MDS\nReena/M\nreenforcement\nreentrant\nReese/M\nreestimate/M\nReeta/M\nReeva/M\nreeve/G\nReeves\nreexamine\nrefection/SM\nrefectory/SM\nrefer/B\nrefereed/U\nrefereeing\nreferee/MSD\nreference/CGSRD\nreferenced/U\nreference's\nreferencing/U\nreferendum/MS\nreferentiality\nreferential/YM\nreferent/SM\nreferral/SM\nreferred\nreferrer/S\nreferring\nreffed\nreffing\nrefile\nrefinance\nrefined/U\nrefine/LZ\nrefinement/MS\nrefinish/G\nrefit\nreflectance/M\nreflected/U\nreflectional\nreflection/SM\nreflectiveness/M\nreflective/YP\nreflectivity/M\nreflector/MS\nreflect/SDGV\nreflexion/MS\nreflexiveness/M\nreflexive/PSY\nreflexivity/M\nreflex/YV\nreflooring\nrefluent\nreflux/G\nrefocus/G\nrefold/G\nreforestation\nreforge/G\nreformatory/SM\nreform/B\nreformed/U\nreformer/M\nreformism/M\nreformist/S\nrefract/DGVS\nrefractiveness/M\nrefractive/PY\nrefractometer/MS\nrefractoriness/M\nrefractory/PS\nrefrain/DGS\nrefreshed/U\nrefreshing/Y\nrefresh/LB\nrefreshment/MS\nrefrigerant/MS\nrefrigerated/U\nrefrigerate/XDSGN\nrefrigeration/M\nrefrigerator/MS\nrefrozen\nrefry/GS\nrefugee/MS\nrefuge/SDGM\nRefugio/M\nrefulgence/SM\nrefulgent\nrefund/B\nrefunder/M\nrefurbish/L\nrefurbishment/S\nrefusal/SM\nrefuse/R\nrefuser/M\nrefutation/MS\nrefute/GZRSDB\nrefuter/M\nref/ZS\nreg\nregale/L\nregalement/S\nregal/GYRD\nregalia/M\nRegan/M\nregard/EGDS\nregardless/PY\nregather/G\nregatta/MS\nregency/MS\nregeneracy/MS\nregenerately\nregenerateness/M\nregenerate/U\nRegen/M\nreggae/SM\nReggie/M\nReggi/MS\nReggy/M\nregicide/SM\nregime/MS\nregimen/MS\nregimental/S\nregimentation/MS\nregiment/SDMG\nReginae\nReginald/M\nRegina/M\nReginauld/M\nRegine/M\nregionalism/MS\nregional/SY\nregion/SM\nRegis/M\nregister's\nregister/UDSG\nregistrable\nregistrant/SM\nregistrar/SM\nregistration/AM\nregistrations\nregistry/MS\nReg/MN\nregnant\nRegor/M\nregress/DSGV\nregression/MS\nregressiveness/M\nregressive/PY\nregressors\nregretfulness/M\nregretful/PY\nregret/S\nregrettable\nregrettably\nregretted\nregretting\nreground\nregroup/G\nregrow/G\nregularity/MS\nregularization/MS\nregularize/SDG\nregular/YS\nregulate/CSDXNG\nregulated/U\nregulation/M\nregulative\nregulator/SM\nregulatory\nRegulus/M\nregurgitate/XGNSD\nregurgitation/M\nrehabbed\nrehabbing\nrehabilitate/SDXVGN\nrehabilitation/M\nrehab/S\nrehang/G\nrehear/GJ\nrehearsal/SM\nrehearse\nrehearsed/U\nrehearser/M\nrehears/R\nreheat/G\nreheating/M\nRehnquist\nrehydrate\nReichenberg/M\nReich/M\nReichstags\nReichstag's\nReidar/M\nReider/M\nReid/MR\nreign/MDSG\nReiko/M\nReilly/M\nreimburse/GSDBL\nreimbursement/MS\nReinald/M\nReinaldo/MS\nReina/M\nreindeer/M\nReine/M\nreinforced/U\nreinforce/GSRDL\nreinforcement/MS\nreinforcer/M\nrein/GDM\nReinhard/M\nReinhardt/M\nReinhold/M\nReinold/M\nreinstate/L\nreinstatement/MS\nreinsurance\nReinwald/M\nreissue\nREIT\nreiterative/SP\nrejecter/M\nrejecting/Y\nrejection/SM\nrejector/MS\nreject/RDVGS\nrejigger\nrejoice/RSDJG\nrejoicing/Y\nrejoinder/SM\nrejuvenate/NGSDX\nrejuvenatory\nrelapse\nrelatedly\nrelatedness/MS\nrelated/U\nrelater/M\nrelate/XVNGSZ\nrelational/Y\nrelation/M\nrelationship/MS\nrelativeness/M\nrelative/SPY\nrelativism/M\nrelativistic\nrelativistically\nrelativist/MS\nrelativity/MS\nrelator's\nrelaxant/SM\nrelaxation/MS\nrelaxedness/M\nrelaxed/YP\nrelax/GZD\nrelaxing/Y\nrelay/GDM\nrelearn/G\nreleasable/U\nrelease/B\nreleased/U\nrelenting/U\nrelentlessness/SM\nrelentless/PY\nrelent/SDG\nrelevance/SM\nrelevancy/MS\nrelevant/Y\nreliability/UMS\nreliables\nreliable/U\nreliably/U\nreliance/MS\nreliant/Y\nrelicense/R\nrelic/MS\nrelict/C\nrelict's\nrelief/M\nrelievedly\nrelieved/U\nreliever/M\nrelieve/RSDZG\nreligionists\nreligion/SM\nreligiosity/M\nreligiousness/MS\nreligious/PY\nrelink/G\nrelinquish/GSDL\nrelinquishment/SM\nreliquary/MS\nrelish/GSD\nrelive/GB\nreload/GR\nrelocate/B\nreluctance/MS\nreluctant/Y\nrel/V\nrely/DG\nrem\nRe/M\nremade/S\nremainder/SGMD\nremain/GD\nremake/M\nremand/DGS\nremap\nremapping\nremarkableness/S\nremarkable/U\nremarkably\nremark/BG\nremarked/U\nRemarque/M\nrematch/G\nRembrandt/M\nremeasure/D\nremediableness/M\nremediable/P\nremedy/SDMG\nremembered/U\nrememberer/M\nremember/GR\nremembrance/MRS\nremembrancer/M\nRemington/M\nreminisce/GSD\nreminiscence/SM\nreminiscent/Y\nremissness/MS\nremiss/YP\nremit/S\nremittance/MS\nremitted\nremitting/U\nRem/M\nremnant/MS\nremodel/G\nremolding\nremonstrant/MS\nremonstrate/SDXVNG\nremonstration/M\nremonstrative/Y\nremorsefulness/M\nremorseful/PY\nremorselessness/MS\nremorseless/YP\nremorse/SM\nremoteness/MS\nremote/RPTY\nremoulds\nremoval/MS\nREM/S\nremunerated/U\nremunerate/VNGXSD\nremuneration/M\nremunerativeness/M\nremunerative/YP\nRemus/M\nRemy/M\nRenado/M\nRenae/M\nrenaissance/S\nRenaissance/SM\nrenal\nRenaldo/M\nRena/M\nRenard/M\nRenascence/SM\nRenata/M\nRenate/M\nRenato/M\nrenaturation\nRenaud/M\nRenault/MS\nrend\nrenderer/M\nrender/GJRD\nrendering/M\nrendezvous/DSMG\nrendition/GSDM\nrend/RGZS\nRenee/M\nrenegade/SDMG\nrenege/GZRSD\nreneger/M\nRenelle/M\nRenell/M\nRene/M\nrenewal/MS\nrenew/BG\nrenewer/M\nRenie/M\nrennet/MS\nRennie/M\nrennin/SM\nRenoir/M\nReno/M\nrenounce/LGRSD\nrenouncement/MS\nrenouncer/M\nrenovate/NGXSD\nrenovation/M\nrenovator/SM\nrenown/SGDM\nRensselaer/M\nrentaller\nrental/SM\nrenter/M\nrent/GZMDRS\nrenumber/G\nrenumeration\nrenunciate/VNX\nrenunciation/M\nRenville/M\nreoccupy/G\nreopen/G\nreorganized/U\nrepack/G\nrepairable/U\nrepair/BZGR\nrepairer/M\nrepairman/M\nrepairmen\nrepairs/E\nrepaper\nreparable\nreparation/SM\nreparteeing\nrepartee/MDS\nrepartition/Z\nrepast/G\nrepatriate/SDXNG\nrepave\nrepealer/M\nrepeal/GR\nrepeatability/M\nrepeatable/U\nrepeatably\nrepeated/Y\nrepeater/M\nrepeat/RDJBZG\nrepelled\nrepellent/SY\nrepelling/Y\nrepel/S\nrepentance/SM\nrepentant/SY\nrepent/RDG\nrepertoire/SM\nrepertory/SM\nrepetition\nrepetitiousness/S\nrepetitious/YP\nrepetitiveness/MS\nrepetitive/PY\nrepine/R\nrepiner/M\nreplace/RL\nreplay/GM\nreplenish/LRSDG\nreplenishment/S\nrepleteness/MS\nreplete/SDPXGN\nrepletion/M\nreplica/SM\nreplicate/SDVG\nreplicator/S\nreplug\nreply/X\nRep/M\nrepopulate\nreported/Y\nreportorial/Y\nreposeful\nrepose/M\nrepository/MS\nreprehend/GDS\nreprehensibility/MS\nreprehensibleness/M\nreprehensible/P\nreprehensibly\nreprehension/MS\nrepresentable/U\nrepresentational/Y\nrepresentativeness/M\nRepresentative/S\nrepresentative/SYMP\nrepresentativity\nrepresented/U\nrepresent/GB\nrepression/SM\nrepressiveness/M\nrepressive/YP\nrepress/V\nreprieve/GDS\nreprimand/SGMD\nreprint/M\nreprisal/MS\nreproacher/M\nreproachfulness/M\nreproachful/YP\nreproach/GRSDB\nreproaching/Y\nreprobate/N\nreprocess/G\nreproducibility/MS\nreproducible/S\nreproducibly\nreproductive/S\nreproof/G\nreprove/R\nreproving/Y\nrep/S\nreptile/SM\nreptilian/S\nRepublicanism/S\nrepublicanism/SM\nRepublican/S\nrepublic/M\nrepublish/G\nrepudiate/XGNSD\nrepudiation/M\nrepudiator/S\nrepugnance/MS\nrepugnant/Y\nrepulse/VNX\nrepulsion/M\nrepulsiveness/MS\nrepulsive/PY\nreputability/SM\nreputably/E\nreputation/SM\nreputed/Y\nrepute/ESB\nreputing\nrequested/U\nrequest/G\nRequiem/MS\nrequiem/SM\nrequire/LR\nrequirement/MS\nrequisiteness/M\nrequisite/PNXS\nrequisitioner/M\nrequisition/GDRM\nrequital/MS\nrequited/U\nrequiter/M\nrequite/RZ\nreread/G\nrerecord/G\nrerouteing\nrerunning\nres/C\nrescale\nrescind/SDRG\nrescission/SM\nrescue/GZRSD\nreseal/BG\nresearch/MB\nreselect/G\nresemblant\nresemble/DSG\nresend/G\nresent/DSLG\nresentfulness/SM\nresentful/PY\nresentment/MS\nreserpine/MS\nreservation/MS\nreservednesses\nreservedness/UM\nreserved/UYP\nreservist/SM\nreservoir/MS\nreset/RDG\nresettle/L\nreshipping\nreshow/G\nreshuffle/M\nreside/G\nresidence/MS\nresidency/SM\nresidential/Y\nresident/SM\nresider/M\nresidua\nresidual/YS\nresiduary\nresidue/SM\nresiduum/M\nresignation/MS\nresigned/YP\nresilience/MS\nresiliency/S\nresilient/Y\nresin/D\nresinlike\nresinous\nresiny\nresistance/SM\nResistance/SM\nresistantly\nresistants\nresistant/U\nresisted/U\nresistible\nresistibly\nresisting/U\nresistiveness/M\nresistive/PY\nresistivity/M\nresistless\nresistor/MS\nresist/RDZVGS\nresize/G\nresold\nresole/G\nresoluble\nresoluteness/MS\nresolute/PYTRV\nresolvability/M\nresolvable/U\nresolved/U\nresolvent\nresonance/SM\nresonant/YS\nresonate/DSG\nresonator/MS\nresorption/MS\nresort/R\nresound/G\nresourcefulness/SM\nresourceful/PY\nresp\nrespectability/SM\nrespectable/SP\nrespectably\nrespect/BSDRMZGV\nrespected/E\nrespectful/EY\nrespectfulness/SM\nrespecting/E\nrespectiveness/M\nrespective/PY\nrespect's/E\nrespects/E\nrespell/G\nrespiration/MS\nrespirator/SM\nrespiratory/M\nresplendence/MS\nresplendent/Y\nrespondent/MS\nrespond/SDRZG\nresponser/M\nresponse/RSXMV\nresponsibility/MS\nresponsibleness/M\nresponsible/P\nresponsibly\nresponsiveness/MSU\nresponsive/YPU\nrespray/G\nrestart/B\nrestate/L\nrestaurant/SM\nrestaurateur/SM\nrest/DRSGVM\nrested/U\nrester/M\nrestfuller\nrestfullest\nrestfulness/MS\nrestful/YP\nrestitution/SM\nrestiveness/SM\nrestive/PY\nrestlessness/MS\nrestless/YP\nrestorability\nRestoration/M\nrestoration/MS\nrestorative/PYS\nrestorer/M\nrestore/Z\nrestrained/UY\nrestraint/MS\nrestrict/DVGS\nrestricted/YU\nrestriction/SM\nrestrictively\nrestrictiveness/MS\nrestrictives\nrestrictive/U\nrestroom/SM\nrestructurability\nrestructure\nrest's/U\nrests/U\nrestudy/M\nrestyle\nresubstitute\nresultant/YS\nresult/SGMD\nresume/SDBG\nresumption/MS\nresurface\nresurgence/MS\nresurgent\nresurrect/GSD\nresurrection/SM\nresurvey/G\nresuscitate/XSDVNG\nresuscitation/M\nresuscitator/MS\nretail/Z\nretainer/M\nretain/LZGSRD\nretake\nretaliate/VNGXSD\nretaliation/M\nretaliatory\nReta/M\nretardant/SM\nretardation/SM\nretarder/M\nretard/ZGRDS\nretch/SDG\nretention/SM\nretentiveness/S\nretentive/YP\nretentivity/M\nretest/G\nRetha/M\nrethought\nreticence/S\nreticent/Y\nreticle/SM\nreticular\nreticulate/GNYXSD\nreticulation/M\nreticule/MS\nreticulum/M\nretinal/S\nretina/SM\nretinue/MS\nretiredness/M\nretiree/MS\nretire/L\nretirement/SM\nretiring/YP\nretort/GD\nretract/DG\nretractile\nretrench/L\nretrenchment/MS\nretributed\nretribution/MS\nretributive\nretrieval/SM\nretriever/M\nretrieve/ZGDRSB\nretroactive/Y\nretrofire/GMSD\nretrofit/S\nretrofitted\nretrofitting\nretroflection\nretroflex/D\nretroflexion/M\nretrogradations\nretrograde/GYDS\nretrogression/MS\nretrogressive/Y\nretrogress/SDVG\nretrorocket/MS\nretro/SM\nretrospection/MS\nretrospective/SY\nretrospect/SVGMD\nretrovirus/S\nretrovision\nretry/G\nretsina/SM\nreturnable/S\nreturned/U\nreturnee/SM\nretype\nReube/M\nReuben/M\nReub/NM\nReunion/M\nreuse/B\nReuters\nReuther/M\nreutilization\nReuven/M\nReva/M\nrevanchist\nrevealed/U\nrevealingly\nrevealing/U\nreveal/JBG\nreveille/MS\nrevelation/MS\nRevelation/MS\nrevelatory\nrevelry/MS\nrevel/SJRDGZ\nrevenge/MGSRD\nrevenger/M\nrevenuer/M\nrevenue/ZR\nreverberant\nreverberate/XVNGSD\nreverberation/M\nrevere/GSD\nRevere/M\nreverencer/M\nreverence/SRDGM\nReverend\nreverend/SM\nreverential/Y\nreverent/Y\nreverie/SM\nreversal/MS\nreverser/M\nreverse/Y\nreversibility/M\nreversible/S\nreversibly\nreversioner/M\nreversion/R\nrevers/M\nreverter/M\nrevertible\nrevert/RDVGS\nrevet/L\nrevetment/SM\nreview/G\nrevile/GZSDL\nrevilement/MS\nreviler/M\nrevise/BRZ\nrevised/U\nrevisionary\nrevisionism/SM\nrevisionist/SM\nrevitalize/ZR\nrevivalism/MS\nrevivalist/MS\nrevival/SM\nreviver/M\nrevive/RSDG\nrevivification/M\nrevivify/X\nRevkah/M\nRevlon/M\nRev/M\nrevocable\nrevoke/GZRSD\nrevolter/M\nrevolt/GRD\nrevolting/Y\nrevolutionariness/M\nrevolutionary/MSP\nrevolutionist/MS\nrevolutionize/GDSRZ\nrevolutionizer/M\nrevolution/SM\nrevolve/BSRDZJG\nrevolver/M\nrevue/MS\nrevulsion/MS\nrevved\nrevving\nrev/ZM\nrewarded/U\nrewarding/Y\nrewarm/G\nreweave\nrewedding\nreweigh/G\nrewind/BGR\nrewire/G\nrework/G\nrexes\nRex/M\nReyes\nReykjavik/M\nre/YM\nRey/M\nReynaldo/M\nReyna/M\nReynard/M\nReynold/SM\nrezone\nRf\nRF\nRFC\nRFD\nR/G\nrhapsodic\nrhapsodical\nrhapsodize/GSD\nrhapsody/SM\nRhea/M\nrhea/SM\nRheba/M\nRhee/M\nRheims/M\nRheinholdt/M\nRhenish\nrhenium/MS\nrheology/M\nrheostat/MS\nrhesus/S\nRheta/M\nrhetorical/YP\nrhetorician/MS\nrhetoric/MS\nRhetta/M\nRhett/M\nrheumatically\nrheumatic/S\nrheumatics/M\nrheumatism/SM\nrheumatoid\nrheum/MS\nrheumy/RT\nRhiamon/M\nRhianna/M\nRhiannon/M\nRhianon/M\nRhinelander/M\nRhineland/RM\nRhine/M\nrhinestone/SM\nrhinitides\nrhinitis/M\nrhinoceros/MS\nrhino/MS\nrhinotracheitis\nrhizome/MS\nRh/M\nRhoda/M\nRhodes\nRhodesia/M\nRhodesian/S\nRhodia/M\nRhodie/M\nrhodium/MS\nrhododendron/SM\nrhodolite/M\nrhodonite/M\nRhody/M\nrhombic\nrhomboidal\nrhomboid/SM\nrhombus/SM\nrho/MS\nRhona/M\nRhonda/M\nRhone\nrhubarb/MS\nrhyme/DSRGZM\nrhymester/MS\nRhys/M\nrhythmical/Y\nrhythmic/S\nrhythmics/M\nrhythm/MS\nRI\nrial/MS\nRiane/M\nRiannon/M\nRianon/M\nribaldry/MS\nribald/S\nribbed\nRibbentrop/M\nribber/S\nribbing/M\nribbon/DMSG\nribcage\nrib/MS\nriboflavin/MS\nribonucleic\nribosomal\nribosome/MS\nRica/M\nRican/SM\nRicard/M\nRicardo/M\nRicca/M\nRiccardo/M\nrice/DRSMZG\nRice/M\nricer/M\nRichard/MS\nRichardo/M\nRichardson/M\nRichart/M\nRichelieu/M\nrichen/DG\nRichey/M\nRichfield/M\nRichie/M\nRichland/M\nRich/M\nRichmond/M\nRichmound/M\nrichness/MS\nRichter/M\nRichthofen/M\nRichy/M\nrich/YNSRPT\nRici/M\nRickard/M\nRickenbacker/M\nRickenbaugh/M\nRickert/M\nrickets/M\nrickety/RT\nRickey/M\nrick/GSDM\nRickie/M\nRicki/M\nRick/M\nRickover/M\nrickrack/MS\nrickshaw/SM\nRicky/M\nRic/M\nricochet/GSD\nRico/M\nRicoriki/M\nricotta/MS\nriddance/SM\nridden\nridding\nriddle/GMRSD\nRiddle/M\nride/CZSGR\nRide/M\nrider/CM\nriderless\nridership/S\nridge/DSGM\nRidgefield/M\nridgepole/SM\nRidgway/M\nridgy/RT\nridicule/MGDRS\nridiculer/M\nridiculousness/MS\nridiculous/PY\nriding/M\nrid/ZGRJSB\nRiemann/M\nRiesling/SM\nrife/RT\nriff/GSDM\nriffle/SDG\nriffraff/SM\nrifled/U\nrifle/GZMDSR\nrifleman/M\nriflemen\nrifler/M\nrifling/M\nrift/GSMD\nRiga/M\nrigamarole's\nrigatoni/M\nRigel/M\nrigged\nrigger/SM\nrigging/MS\nRiggs/M\nrighteousnesses/U\nrighteousness/MS\nrighteous/PYU\nrightfulness/MS\nrightful/PY\nrightism/SM\nrightist/S\nrightmost\nrightness/MS\nRight/S\nright/SGTPYRDN\nrightsize/SDG\nrights/M\nrightward/S\nrigidify/S\nrigidity/S\nrigidness/S\nrigid/YP\nrigmarole/MS\nrig/MS\nRigoberto/M\nRigoletto/M\nrigor/MS\nrigorousness/S\nrigorous/YP\nRiki/M\nRikki/M\nRik/M\nrile/DSG\nRiley/M\nRilke/M\nrill/GSMD\nRimbaud/M\nrime/MS\nrimer/M\nrim/GSMDR\nrimless\nrimmed\nrimming\nRinaldo/M\nRina/M\nrind/MDGS\nRinehart/M\nringer/M\nring/GZJDRM\nringing/Y\nringleader/MS\nringlet/SM\nringlike\nRingling/M\nRing/M\nringmaster/MS\nRingo/M\nringside/ZMRS\nringworm/SM\nrink/GDRMS\nrinse/DSRG\nRiobard/M\nRio/MS\nRiordan/M\nrioter/M\nriotousness/M\nriotous/PY\nriot/SMDRGZJ\nRIP\nriparian/S\nripcord/SM\nripened/U\nripenesses\nripeness/UM\nripen/RDG\nripe/PSY\nriper/U\nripest/U\nRipley/M\nRip/M\nrip/NDRSXTG\nripoff/S\nriposte/SDMG\nripped\nripper/SM\nripping\nrippler/M\nripple/RSDGM\nripply/TR\nripsaw/GDMS\nriptide/SM\nRisa/M\nRISC\nrisen\nriser/M\nrise/RSJZG\nrisibility/SM\nrisible/S\nrising/M\nrisker/M\nrisk/GSDRM\nriskily\nriskiness/MS\nrisky/RTP\nrisotto/SM\nrisqu<71>\nrissole/M\nRitalin\nRita/M\nRitchie/M\nrite/DSM\nRitter/M\nritualism/SM\nritualistic\nritualistically\nritualized\nritual/MSY\nRitz/M\nritzy/TR\nrivaled/U\nRivalee/M\nrivalry/MS\nrival/SGDM\nRiva/MS\nrive/CSGRD\nRivera/M\nriverbank/SM\nriverbed/S\nriverboat/S\nriver/CM\nriverfront\nriverine\nRivers\nRiverside/M\nriverside/S\nRiverview/M\nriveter/M\nrivet/GZSRDM\nriveting/Y\nRiviera/MS\nRivi/M\nRivkah/M\nrivulet/SM\nRivy/M\nriv/ZGNDR\nRiyadh/M\nriyal/SM\nrm\nRMS\nRN\nRNA\nRn/M\nroach/GSDM\nRoach/M\nroadbed/MS\nroadblock/SMDG\nroadhouse/SM\nroadie/S\nroadkill/S\nroad/MIS\nroadrunner/MS\nroadshow/S\nroadside/S\nroadsigns\nroadster/SM\nroadsweepers\nroadway/SM\nroadwork/SM\nroadworthy\nroam/DRGZS\nRoana/M\nRoanna/M\nRoanne/M\nRoanoke/M\nroan/S\nroar/DRSJGZ\nroarer/M\nroaring/T\nRoarke/M\nroaster/M\nroast/SGJZRD\nrobbed\nrobber/SM\nRobbert/M\nrobbery/SM\nRobbie/M\nRobbi/M\nrobbing\nRobbin/MS\nRobb/M\nRobby/M\nRobbyn/M\nrobe/ESDG\nRobena/M\nRobenia/M\nRobers/M\nRoberson/M\nRoberta/M\nRobert/MS\nRoberto/M\nRobertson/SM\nrobe's\nRobeson/M\nRobespierre/M\nRobina/M\nRobinet/M\nRobinetta/M\nRobinette/M\nRobinett/M\nRobinia/M\nRobin/M\nrobin/MS\nRobinson/M\nRobinsonville/M\nRobles/M\nRob/MZ\nrobotic/S\nrobotism\nrobotize/GDS\nrobot/MS\nrob/SDG\nRobson/M\nRobt/M\nrobustness/SM\nrobust/RYPT\nRoby/M\nRobyn/M\nRocco/M\nRocha/M\nRochambeau/M\nRochella/M\nRochelle/M\nRochell/M\nRoche/M\nRochester/M\nRochette/M\nRoch/M\nrockabilly/MS\nrockabye\nRockaway/MS\nrockbound\nRockefeller/M\nrocker/M\nrocketry/MS\nrocket/SMDG\nRockey/M\nrockfall/S\nRockford/M\nrock/GZDRMS\nRockie/M\nrockiness/MS\nRockland/M\nRock/M\nRockne/M\nRockville/M\nRockwell/M\nRocky/SM\nrocky/SRTP\nrococo/MS\nRoda/M\nrodded\nRoddenberry/M\nrodder\nRoddie/M\nrodding\nRodd/M\nRoddy/M\nrodent/MS\nrodeo/SMDG\nRoderich/M\nRoderick/M\nRoderic/M\nRoderigo/M\nrode/S\nRodger/M\nRodge/ZMR\nRodie/M\nRodi/M\nRodina/M\nRodin/M\nRod/M\nRodney/M\nRodolfo/M\nRodolphe/M\nRodolph/M\nRodrick/M\nRodrigo/M\nRodriguez/M\nRodrique/M\nRodriquez/M\nrod/SGMD\nroebuck/SM\nRoentgen's\nroentgen/SM\nroe/SM\nROFL\nRogelio/M\nroger/GSD\nRogerio/M\nRoger/M\nRoget/M\nRog/MRZ\nrogued/K\nrogue/GMDS\nroguery/MS\nrogues/K\nroguing/K\nroguishness/SM\nroguish/PY\nroil/SGD\nRoi/SM\nroisterer/M\nroister/SZGRD\nRojas/M\nRoland/M\nRolando/M\nRoldan/M\nrole/MS\nRoley/M\nRolfe/M\nRolf/M\nRolland/M\nrollback/SM\nrolled/A\nRollerblade/S\nrollerskating\nroller/SM\nrollick/DGS\nrollicking/Y\nRollie/M\nrolling/S\nRollin/SM\nRollo/M\nrollover/S\nroll/UDSG\nRolodex\nRolph/M\nRolvaag/M\nROM\nromaine/MS\nRomain/M\nRoma/M\nromancer/M\nromance/RSDZMG\nRomanesque/S\nRomania/M\nRomanian/SM\nRomano/MS\nRomanov/M\nroman/S\nRomansh/M\nRomans/M\nRoman/SM\nromantically/U\nromanticism/MS\nRomanticism/S\nromanticist/S\nromanticize/SDG\nromantic/MS\nRomany/SM\nRomeo/MS\nromeo/S\nRomero/M\nRome/SM\nRommel/M\nRomney/M\nRomola/M\nRomona/M\nRomonda/M\nromper/M\nromp/GSZDR\nRom/SM\nRomulus/M\nRomy/M\nRonalda/M\nRonald/M\nRona/M\nRonda/M\nrondo/SM\nRonica/M\nRon/M\nRonna/M\nRonnica/M\nRonnie/M\nRonni/M\nRonny/M\nRonstadt/M\nRontgen\nRoobbie/M\nrood/MS\nroof/DRMJGZS\nroofer/M\nroofgarden\nroofing/M\nroofless\nrooftop/S\nrookery/MS\nrook/GDMS\nrookie/SRMT\nroomer/M\nroomette/SM\nroomful/MS\nroominess/MS\nroommate/SM\nroom/MDRGZS\nroomy/TPSR\nRooney/M\nRooseveltian\nRoosevelt/M\nrooster/M\nroost/SGZRDM\nrooted/P\nrooter/M\nrootlessness/M\nrootless/P\nrootlet/SM\nRoot/M\nroot/MGDRZS\nrootstock/M\nrope/DRSMZG\nroper/M\nroping/M\nRoquefort/MS\nRoquemore/M\nRora/M\nRorie/M\nRori/M\nRorke/M\nRorschach\nRory/M\nRosabella/M\nRosabelle/M\nRosabel/M\nRosaleen/M\nRosales/M\nRosalia/M\nRosalie/M\nRosalinda/M\nRosalinde/M\nRosalind/M\nRosaline/M\nRosalynd/M\nRosalyn/M\nRosa/M\nRosamond/M\nRosamund/M\nRosana/M\nRosanna/M\nRosanne/M\nRosario/M\nrosary/SM\nRoscoe/M\nRosco/M\nRoseanna/M\nRoseanne/M\nRoseann/M\nroseate/Y\nRoseau\nrosebud/MS\nrosebush/SM\nRosecrans/M\nRoseland/M\nRoselia/M\nRoseline/M\nRoselin/M\nRosella/M\nRoselle/M\nRose/M\nRosemaria/M\nRosemarie/M\nRosemary/M\nrosemary/MS\nrose/MGDS\nRosemonde/M\nRosenberg/M\nRosenblum/M\nRosendo/M\nRosene/M\nRosen/M\nRosenthal/M\nRosenzweig/M\nRosetta/M\nRosette/M\nrosette/SDMG\nrosewater\nrosewood/SM\nRoshelle/M\nRosicrucian/M\nRosie/M\nrosily\nRosina/M\nrosiness/MS\nrosin/SMDG\nRosita/M\nRoslyn/M\nRosmunda/M\nRos/N\nRoss\nRossetti/M\nRossie/M\nRossi/M\nRossini/M\nRossy/M\nRostand/M\nroster/DMGS\nRostov/M\nrostra's\nrostrum/SM\nRoswell/M\nRosy/M\nrosy/RTP\nrota/MS\nRotarian/SM\nrotary/S\nrotated/U\nrotate/VGNXSD\nrotational/Y\nrotation/M\nrotative/Y\nrotator/SM\nrotatory\nROTC\nrote/MS\nrotgut/MS\nRoth/M\nRothschild/M\nrotisserie/MS\nrotogravure/SM\nrotor/MS\nrototill/RZ\nrot/SDG\nrotted\nrottenness/S\nrotten/RYSTP\nRotterdam/M\nrotter/M\nrotting\nrotunda/SM\nrotundity/S\nrotundness/S\nrotund/SDYPG\nRouault/M\nrou<6F>/MS\nrouge/GMDS\nroughage/SM\nroughen/DG\nrougher/M\nroughhouse/GDSM\nroughish\nroughneck/MDSG\nroughness/MS\nroughs\nroughshod\nrough/XPYRDNGT\nroulette/MGDS\nroundabout/PSM\nroundedness/M\nrounded/P\nroundelay/SM\nroundels\nrounder/M\nroundhead/D\nroundheadedness/M\nroundheaded/P\nroundhouse/SM\nroundish\nroundness/MS\nroundoff\nroundup/MS\nroundworm/MS\nround/YRDSGPZT\nRourke/M\nrouse/DSRG\nrouser/M\nRousseau/M\nroustabout/SM\nroust/SGD\nroute/ASRDZGJ\nrouter/M\nroute's\nrout/GZJMDRS\nroutine/SYM\nrouting/M\nroutinize/GSD\nRouvin/M\nrover/M\nRover/M\nrove/ZGJDRS\nroving/M\nRowan/M\nrowboat/SM\nrowdily\nrowdiness/MS\nrowdyism/MS\nrowdy/PTSR\nrowel/DMSG\nRowe/M\nRowena/M\nrowen/M\nRowen/M\nrower/M\nRowland/M\nRowley/M\nRow/MN\nRowney/M\nrow/SJZMGNDR\nRoxana/M\nRoxane/M\nRoxanna/M\nRoxanne/M\nRoxie/M\nRoxi/M\nRoxine/M\nRoxy/M\nroyalist/SM\nRoyall/M\nRoyal/M\nroyal/SY\nroyalty/MS\nRoyce/M\nRoy/M\nRozalie/M\nRozalin/M\nRozamond/M\nRozanna/M\nRozanne/M\nRozele/M\nRozella/M\nRozelle/M\nRoze/M\nRozina/M\nRoz/M\nRP\nrpm\nRPM\nrps\nRR\nRriocard/M\nrs\nr's\nR's\nRSFSR\nRSI\nRSV\nRSVP\nRSX\nrt\nrte\nRte\nRTFM\nr/TGVJ\nRubaiyat/M\nrubato/MS\nrubbed\nrubberize/GSD\nrubberneck/DRMGSZ\nrubber/SDMG\nrubbery/TR\nrubbing/M\nrubbish/DSMG\nrubbishy\nrubble/GMSD\nrubdown/MS\nrubella/MS\nRube/M\nRuben/MS\nrube/SM\nRubetta/M\nRubia/M\nRubicon/SM\nrubicund\nrubidium/SM\nRubie/M\nRubik/M\nRubi/M\nRubina/M\nRubin/M\nRubinstein/M\nruble/MS\nrubout\nrubric/MS\nrub/S\nRuby/M\nruby/MTGDSR\nRuchbah/M\nruck/M\nrucksack/SM\nruckus/SM\nruction/SM\nrudderless\nrudder/MS\nRuddie/M\nruddiness/MS\nRudd/M\nRuddy/M\nruddy/PTGRSD\nrudeness/MS\nrude/PYTR\nRudie/M\nRudiger/M\nrudimentariness/M\nrudimentary/P\nrudiment/SM\nRudolf/M\nRudolfo/M\nRudolph/M\nRudyard/M\nRudy/M\nruefulness/S\nrueful/PY\nrue/GDS\nRufe/M\nruff/GSYDM\nruffian/GSMDY\nruffled/U\nruffler/M\nruffle/RSDG\nruffly/TR\nRufus/M\nRugby's\nrugby/SM\nruggedness/S\nrugged/PYRT\nRuggiero/M\nrugging\nrug/MS\nRuhr/M\nruination/MS\nruiner/M\nruin/MGSDR\nruinousness/M\nruinous/YP\nRuiz/M\nrulebook/S\nruled/U\nrule/MZGJDRS\nruler/GMD\nruling/M\nRumanian's\nRumania's\nrumba/GDMS\nrumble/JRSDG\nrumbler/M\nrumbustious\nrumen/M\nRumford/M\nRu/MH\nruminant/YMS\nruminate/VNGXSD\nruminative/Y\nrummage/GRSD\nrummager/M\nRummel/M\nrummer\nrummest\nrummy/TRSM\nrumored/U\nrumorer/M\nrumormonger/SGMD\nrumor/ZMRDSG\nRumpelstiltskin/M\nrump/GMYDS\nrumple/SDG\nrumply/TR\nrumpus/SM\nrum/XSMN\nrunabout/SM\nrunaround/S\nrun/AS\nrunaway/S\nrundown/SM\nrune/MS\nRunge/M\nrung/MS\nrunic\nrunlet/SM\nrunnable\nrunnel/SM\nrunner/MS\nrunning/S\nRunnymede/M\nrunny/RT\nrunoff/MS\nruntime\nruntiness/M\nrunt/MS\nrunty/RPT\nrunway/MS\nRunyon/M\nrupee/MS\nRuperta/M\nRupert/M\nRuperto/M\nrupiah/M\nrupiahs\nRuppert/M\nRuprecht/M\nrupture/GMSD\nrurality/M\nrural/Y\nRurik/M\nruse/MS\nRushdie/M\nrush/DSRGZ\nrusher/M\nrushes/I\nrushing/M\nRush/M\nRushmore/M\nrushy/RT\nRuskin/M\nrusk/MS\nRussell/M\nRussel/M\nrusset/MDS\nrussetting\nRussia/M\nRussian/SM\nRusso/M\nRuss/S\nRustbelt/M\nrustically\nrusticate/GSD\nrustication/M\nrusticity/S\nrustic/S\nRustie/M\nrustiness/MS\nRustin/M\nrustler/M\nrustle/RSDGZ\nrust/MSDG\nrustproof/DGS\nRusty/M\nrusty/XNRTP\nrutabaga/SM\nRutger/SM\nRuthanne/M\nRuthann/M\nRuthe/M\nruthenium/MS\nrutherfordium/SM\nRutherford/M\nRuthie/M\nRuthi/M\nruthlessness/MS\nruthless/YP\nRuth/M\nRuthy/M\nRutland/M\nRutledge/M\nrut/MS\nrutted\nRutter/M\nRuttger/M\nrutting\nrutty/RT\nRuy/M\nRV\nRVs\nRwandan/S\nRwanda/SM\nRwy/M\nRx/M\nRyan/M\nRyann/M\nRycca/M\nRydberg/M\nRyder/M\nrye/MS\nRyley/M\nRy/M\nRyon/M\nRyukyu/M\nRyun/M\nS\nSA\nSaab/M\nSaar/M\nSaba/M\nsabbath\nSabbath/M\nSabbaths\nsabbatical/S\nsabered/U\nsaber/GSMD\nSabik/M\nSabina/M\nSabine/M\nSabin/M\nsable/GMDS\nsabotage/DSMG\nsaboteur/SM\nsabot/MS\nSabra/M\nsabra/MS\nSabrina/M\nSAC\nSacajawea/M\nsaccharides\nsaccharine\nsaccharin/MS\nSacco/M\nsacerdotal\nSacha/M\nsachem/MS\nsachet/SM\nSachs/M\nsackcloth/M\nsackcloths\nsacker/M\nsackful/MS\nsack/GJDRMS\nsacking/M\nsacral\nsacra/L\nsacramental/S\nsacrament/DMGS\nSacramento/M\nsacredness/S\nsacred/PY\nsacrificer/M\nsacrifice/RSDZMG\nsacrificial/Y\nsacrilege/MS\nsacrilegious/Y\nsacristan/SM\nsacristy/MS\nsacroiliac/S\nsacrosanctness/MS\nsacrosanct/P\nsacrum/M\nsac/SM\nSada/M\nSadat/M\nSaddam/M\nsadden/DSG\nsadder\nsaddest\nsaddlebag/SM\nsaddler/M\nsaddle's\nsaddle/UGDS\nSadducee/M\nSadella/M\nSade/M\nsades\nSadie/M\nsadism/MS\nsadistic\nsadistically\nsadist/MS\nsadness/SM\nsadomasochism/MS\nsadomasochistic\nsadomasochist/S\nsad/PY\nSadr/M\nSadye/M\nsafari/GMDS\nsafeguard/MDSG\nsafekeeping/MS\nsafeness/MS\nsafeness's/U\nsafes\nsafety/SDMG\nsafe/URPTY\nsafflower/SM\nsaffron/MS\nsagaciousness/M\nsagacious/YP\nsagacity/MS\nsaga/MS\nSagan/M\nsagebrush/SM\nsage/MYPS\nsagged\nsagger\nsagging\nsaggy/RT\nSaginaw/M\nSagittarius/MS\nsago/MS\nsag/TSR\nsaguaro/SM\nSahara/M\nSaharan/M\nSahel\nsahib/MS\nSaidee/M\nsaids\nsaid/U\nSaigon/M\nsailboard/DGS\nsailboat/SRMZG\nsailcloth/M\nsailcloths\nsailer/M\nsailfish/SM\nsail/GJMDRS\nsailing/M\nsailor/YMS\nsailplane/SDMG\nsainthood/MS\nsaintlike\nsaintliness/MS\nsaintly/RTP\nsaint/YDMGS\nSaiph/M\nsaith\nsaiths\nSakai/M\nsake/MRS\nsaker/M\nSakhalin/M\nSakharov/M\nSaki/M\nsaki's\nsalaam/GMDS\nsalable/U\nsalaciousness/MS\nsalacious/YP\nsalacity/MS\nSaladin/M\nSalado/M\nsalad/SM\nSalaidh/M\nsalamander/MS\nsalami/MS\nsalary/SDMG\nSalas/M\nSalazar/M\nsaleability/M\nsale/ABMS\nSaleem/M\nSalem/M\nSalerno/M\nsalesclerk/SM\nsalesgirl/SM\nsaleslady/S\nsalesman/M\nsalesmanship/SM\nsalesmen\nsalespeople/M\nsalesperson/MS\nsalesroom/M\nsaleswoman\nsaleswomen\nsalience/MS\nsaliency\nsalient/SY\nSalim/M\nSalina/MS\nsaline/S\nsalinger\nSalinger/M\nsalinity/MS\nSalisbury/M\nSalish/M\nsaliva/MS\nsalivary\nsalivate/XNGSD\nsalivation/M\nSalk/M\nSallee/M\nSalle/M\nSallie/M\nSalli/M\nsallowness/MS\nsallow/TGRDSP\nSallust/M\nSallyanne/M\nSallyann/M\nsally/GSDM\nSally/M\nsalmonellae\nsalmonella/M\nSalmon/M\nsalmon/SM\nSal/MY\nSaloma/M\nSalome/M\nSalomi/M\nSalomo/M\nSalomone/M\nSalomon/M\nSalonika/M\nsalon/SM\nsaloonkeeper\nsaloon/MS\nsalsa/MS\nsalsify/M\nSALT\nsaltcellar/SM\nsalted/UC\nsalter/M\nsalt/GZTPMDRS\nsaltine/MS\nsaltiness/SM\nsaltness/M\nSalton/M\nsaltpeter/SM\nsalts/C\nsaltshaker/S\nsaltwater\nsalty/RSPT\nsalubriousness/M\nsalubrious/YP\nsalubrity/M\nsalutariness/M\nsalutary/P\nsalutation/SM\nsalutatory/S\nsaluter/M\nsalute/RSDG\nSalvadoran/S\nSalvadorian/S\nSalvador/M\nsalvageable\nsalvage/MGRSD\nsalvager/M\nsalvation/MS\nSalvatore/M\nsalve/GZMDSR\nsalver/M\nSalvidor/M\nsalvo/GMDS\nSalween/M\nSalyut/M\nSalz/M\nSAM\nSamantha/M\nSamara/M\nSamaria/M\nSamaritan/MS\nsamarium/MS\nSamarkand/M\nsamba/GSDM\nsameness/MS\nsame/SP\nSam/M\nSammie/M\nSammy/M\nSamoa\nSamoan/S\nSamoset/M\nsamovar/SM\nSamoyed/M\nsampan/MS\nsampler/M\nsample/RSDJGMZ\nsampling/M\nSampson/M\nSamsonite/M\nSamson/M\nSamuele/M\nSamuel/SM\nSamuelson/M\nsamurai/M\nSan'a\nSana/M\nsanatorium/MS\nSanborn/M\nSanchez/M\nSancho/M\nsanctification/M\nsanctifier/M\nsanctify/RSDGNX\nsanctimoniousness/MS\nsanctimonious/PY\nsanctimony/MS\nsanctioned/U\nsanction/SMDG\nsanctity/SM\nsanctuary/MS\nsanctum/SM\nsandal/MDGS\nsandalwood/SM\nsandbagged\nsandbagging\nsandbag/MS\nsandbank/SM\nsandbar/S\nsandblaster/M\nsandblast/GZSMRD\nsandbox/MS\nSandburg/M\nsandcastle/S\nSande/M\nSanderling/M\nsander/M\nSander/M\nSanderson/M\nsandhill\nsandhog/SM\nSandia/M\nSandie/M\nSandi/M\nsandiness/S\nSandinista\nsandlot/SM\nsandlotter/S\nsandman/M\nsandmen\nSand/MRZ\nSandor/M\nSandoval/M\nsandpaper/DMGS\nsandpile\nsandpiper/MS\nsandpit/M\nSandra/M\nSandro/M\nsand/SMDRGZ\nsandstone/MS\nsandstorm/SM\nSandusky/M\nsandwich/SDMG\nSandye/M\nSandy/M\nsandy/PRT\nsaned\nsane/IRYTP\nsaneness/MS\nsaneness's/I\nsanes\nSanford/M\nSanforized\nSanger/M\nsangfroid/S\nsangria/SM\nSang/RM\nsang/S\nsanguinary\nsanguined\nsanguine/F\nsanguinely\nsanguineness/M\nsanguineous/F\nsanguines\nsanguining\nSanhedrin/M\nsaning\nsanitarian/S\nsanitarium/SM\nsanitary/S\nsanitate/NX\nsanitation/M\nsanitizer/M\nsanitize/RSDZG\nsanity/SIM\nsank\nSankara/M\nSan/M\nsans\nsanserif\nSanskritic\nSanskritize/M\nSanskrit/M\nSansone/M\nSanson/M\nSanta/M\nSantana/M\nSantayana/M\nSanteria\nSantiago/M\nSanto/MS\nsapience/MS\nsapient\nsapless\nsapling/SM\nsap/MS\nsapped\nsapper/SM\nSapphira/M\nSapphire/M\nsapphire/MS\nSappho/M\nsappiness/SM\nsapping\nSapporo/M\nsappy/RPT\nsaprophyte/MS\nsaprophytic\nsapsucker/SM\nsapwood/SM\nSaraann/M\nSaracen/MS\nSaragossa/M\nSarah/M\nSarajane/M\nSarajevo/M\nSara/M\nSaran/M\nsaran/SM\nsarape's\nSarasota/M\nSaratoga/M\nSaratov/M\nSarawak/M\nsarcasm/MS\nsarcastic\nsarcastically\nsarcoma/MS\nsarcophagi\nsarcophagus/M\nsardine/SDMG\nSardinia/M\nsardonic\nsardonically\nSaree/M\nSarena/M\nSarene/M\nSarette/M\nSargasso/M\nSarge/M\nSargent/M\nsarge/SM\nSargon/M\nSari/M\nsari/MS\nSarina/M\nSarine/M\nSarita/M\nSarnoff/M\nsarong/MS\nSaroyan/M\nsarsaparilla/MS\nSarto/M\nsartorial/Y\nsartorius/M\nSartre/M\nSascha/M\nSASE\nSasha/M\nsashay/GDS\nSashenka/M\nsash/GMDS\nSaskatchewan/M\nSaskatoon/M\nSask/M\nsassafras/MS\nsass/GDSM\nSassoon/M\nsassy/TRS\nSAT\nsatanic\nsatanical/Y\nSatanism/M\nsatanism/S\nSatanist/M\nsatanist/S\nSatan/M\nsatchel/SM\nsat/DG\nsateen/MS\nsatellite/GMSD\nsate/S\nsatiable/I\nsatiate/GNXSD\nsatiation/M\nsatiety/MS\nsatin/MDSG\nsatinwood/MS\nsatiny\nsatire/SM\nsatiric\nsatirical/Y\nsatirist/SM\nsatirize/DSG\nsatirizes/U\nsatisfaction/ESM\nsatisfactorily/U\nsatisfactoriness/MU\nsatisfactory/UP\nsatisfiability/U\nsatisfiable/U\nsatisfied/UE\nsatisfier/M\nsatisfies/E\nsatisfy/GZDRS\nsatisfying/EU\nsatisfyingly\nSat/M\nsatori/SM\nsatrap/SM\nsaturated/CUA\nsaturater/M\nsaturates/A\nsaturate/XDRSNG\nsaturation/M\nSaturday/MS\nsaturnalia\nSaturnalia/M\nsaturnine/Y\nSaturn/M\nSatyanarayanan/M\nsatyriases\nsatyriasis/M\nsatyric\nsatyr/MS\nsauce/DSRGZM\nsaucepan/SM\nsaucer/M\nsaucily\nsauciness/S\nsaucy/TRP\nSaudi/S\nSaud/M\nSaudra/M\nsauerkraut/SM\nSaukville/M\nSaul/M\nSault/M\nsauna/DMSG\nSauncho/M\nSaunder/SM\nSaunderson/M\nSaundra/M\nsaunter/DRSG\nsaurian/S\nsauropod/SM\nsausage/MS\nSaussure/M\nsaut<75>/DGS\nSauternes/M\nSauveur/M\nsavage/GTZYPRSD\nSavage/M\nsavageness/SM\nsavagery/MS\nSavannah/M\nsavanna/MS\nsavant/SM\nsaved/U\nsaveloy/M\nsaver/M\nsave/ZGJDRSB\nSavina/M\nSavior/M\nsavior/SM\nSaviour/M\nSavonarola/M\nsavored/U\nsavorer/M\nsavorier\nsavoriest\nsavoriness/S\nsavoringly/S\nsavoring/Y\nsavor/SMRDGZ\nsavory/UMPS\nSavoyard/M\nSavoy/M\nsavoy/SM\nsavvy/GTRSD\nsawbones/M\nsawbuck/SM\nsawdust/MDSG\nsawer/M\nsawfly/SM\nsawhorse/MS\nSaw/M\nsawmill/SM\nsaw/SMDRG\nsawtooth\nSawyere/M\nSawyer/M\nsawyer/MS\nSaxe/M\nsaxifrage/SM\nSax/M\nsax/MS\nSaxon/SM\nSaxony/M\nsaxophone/MS\nsaxophonist/SM\nSaxton/M\nSayer/M\nsayer/SM\nsayest\nsaying/MS\nSayre/MS\nsays/M\nsay/USG\nSay/ZMR\nSBA\nSb/M\nSC\nscabbard/SGDM\nscabbed\nscabbiness/SM\nscabbing\nscabby/RTP\nscabies/M\nscabrousness/M\nscabrous/YP\nscab/SM\nscad/SM\nscaffolding/M\nscaffold/JGDMS\nscalability\nScala/M\nscalar/SM\nscalawag/SM\nscald/GJRDS\nscaled/AU\nscale/JGZMBDSR\nscaleless\nscalene\nscaler/M\nscales/A\nscaliness/MS\nscaling/A\nscallion/MS\nscalloper/M\nscallop/GSMDR\nscalloping/M\nscalpel/SM\nscalper/M\nscalp/GZRDMS\nscalping/M\nscaly/TPR\nscammed\nscamming\nscamper/GD\nscampi/M\nscamp/RDMGZS\nscam/SM\nScan\nscan/AS\nscandal/GMDS\nscandalized/U\nscandalize/GDS\nscandalmonger/SM\nscandalousness/M\nscandalous/YP\nScandinavia/M\nScandinavian/S\nscandium/MS\nscanned/A\nscanner/SM\nscanning/A\nscansion/SM\nscant/CDRSG\nscantest\nscantily\nscantiness/MS\nscantly\nscantness/MS\nscanty/TPRS\nscapegoat/SGDM\nscapegrace/MS\nscape/M\nscapulae\nscapula/M\nscapular/S\nscarab/SM\nScaramouch/M\nScarborough/M\nscarceness/SM\nscarce/RTYP\nscarcity/MS\nscar/DRMSG\nscarecrow/MS\nscaremongering/M\nscaremonger/SGM\nscarer/M\nscare/S\nscarface\nScarface/M\nscarf/SDGM\nscarification/M\nscarify/DRSNGX\nscarily\nscariness/S\nscarlatina/MS\nScarlatti/M\nScarlet/M\nscarlet/MDSG\nScarlett/M\nscarp/SDMG\nscarred\nscarring\nscarves/M\nscary/PTR\nscathe/DG\nscathed/U\nscathing/Y\nscatological\nscatology/SM\nscat/S\nscatted\nscatterbrain/MDS\nscatter/DRJZSG\nscatterer/M\nscattergun\nscattering/YM\nscatting\nscavenge/GDRSZ\nscavenger/M\nSCCS\nscenario/SM\nscenarist/MS\nscene/GMDS\nscenery/SM\nscenically\nscenic/S\nscented/U\nscent/GDMS\nscentless\nscent's/C\nscents/C\nscepter/DMSG\nscepters/U\nsceptically\nsch\nSchaefer/M\nSchaeffer/M\nSchafer/M\nSchaffner/M\nSchantz/M\nSchapiro/M\nScheat/M\nSchedar/M\nschedule/ADSRG\nscheduled/U\nscheduler/MS\nschedule's\nScheherazade/M\nScheherezade/M\nSchelling/M\nschema/M\nschemata\nschematically\nschematic/S\nscheme/JSRDGMZ\nschemer/M\nschemta\nSchenectady/M\nscherzo/MS\nSchick/M\nSchiller/M\nschilling/SM\nschismatic/S\nschism/SM\nschist/SM\nschizoid/S\nschizomycetes\nschizophrenia/SM\nschizophrenically\nschizophrenic/S\nschizo/S\nschlemiel/MS\nschlepped\nschlepping\nschlep/S\nSchlesinger/M\nSchliemann/M\nSchlitz/M\nschlock/SM\nschlocky/TR\nSchloss/M\nschmaltz/MS\nschmaltzy/TR\nSchmidt/M\nSchmitt/M\nschmoes\nschmo/M\nschmooze/GSD\nschmuck/MS\nSchnabel/M\nschnapps/M\nschnauzer/MS\nSchneider/M\nschnitzel/MS\nschnook/SM\nschnoz/S\nschnozzle/MS\nSchoenberg/M\nSchofield/M\nscholarship/MS\nscholar/SYM\nscholastically\nscholastic/S\nschoolbag/SM\nschoolbook/SM\nschoolboy/MS\nschoolchild/M\nschoolchildren\nschooldays\nschooled/U\nschoolfellow/S\nschoolfriend\nschoolgirlish\nschoolgirl/MS\nschoolhouse/MS\nschooling/M\nschoolmarmish\nschoolmarm/MS\nschoolmaster/SGDM\nschoolmate/MS\nschoolmistress/MS\nschoolroom/SM\nschoolteacher/MS\nschoolwork/SM\nschoolyard/SM\nschool/ZGMRDJS\nschooner/SM\nSchopenhauer/M\nSchottky/M\nSchrieffer/M\nSchr<68>dinger/M\nSchroeder/M\nSchroedinger/M\nSchubert/M\nSchultz/M\nSchulz/M\nSchumacher/M\nSchuman/M\nSchumann/M\nschussboomer/S\nschuss/SDMG\nSchuster/M\nSchuyler/M\nSchuylkill/M\nSchwab/M\nSchwartzkopf/M\nSchwartz/M\nSchwarzenegger/M\nschwa/SM\nSchweitzer/M\nSchweppes/M\nSchwinger/M\nSchwinn/M\nsci\nsciatica/SM\nsciatic/S\nscience/FMS\nscientifically/U\nscientific/U\nscientist/SM\nScientology/M\nscimitar/SM\nscintilla/MS\nscintillate/GNDSX\nscintillation/M\nscintillator/SM\nscion/SM\nScipio/M\nscissor/SGD\nscleroses\nsclerosis/M\nsclerotic/S\nSc/M\nscoffer/M\nscofflaw/MS\nscoff/RDGZS\nscolder/M\nscold/GSJRD\nscolioses\nscoliosis/M\nscollop's\nsconce/SDGM\nscone/SM\nscooper/M\nscoop/SRDMG\nscooter/M\nscoot/SRDGZ\nscope/DSGM\nScopes/M\nscops\nscorbutic\nscorcher/M\nscorching/Y\nscorch/ZGRSD\nscoreboard/MS\nscorecard/MS\nscored/M\nscorekeeper/SM\nscoreless\nscoreline\nscore/ZMDSRJG\nscorner/M\nscornfulness/M\nscornful/PY\nscorn/SGZMRD\nscorpion/SM\nScorpio/SM\nScorpius/M\nScorsese/M\nScotchgard/M\nScotchman/M\nScotchmen\nscotch/MSDG\nscotchs\nScotch/S\nScotchwoman\nScotchwomen\nScotia/M\nScotian/M\nScotland/M\nScot/MS\nScotsman/M\nScotsmen\nScotswoman\nScotswomen\nScottie/SM\nScotti/M\nScottish\nScott/M\nScottsdale/M\nScotty's\nscoundrel/YMS\nscourer/M\nscourge/MGRSD\nscourger/M\nscouring/M\nscour/SRDGZ\nscouter/M\nscouting/M\nscoutmaster/SM\nScout's\nscout/SRDMJG\nscow/DMGS\nscowler/M\nscowl/SRDG\nscrabble/DRSZG\nscrabbler/M\nScrabble/SM\nscragged\nscragging\nscraggly/TR\nscraggy/TR\nscrag/SM\nscrambler/MS\nscrambler's/U\nscramble/UDSRG\nscrammed\nscramming\nscram/S\nScranton/M\nscrapbook/SM\nscraper/M\nscrape/S\nscrapheap/SM\nscrapped\nscrapper/SM\nscrapping\nscrappy/RT\nscrap/SGZJRDM\nscrapyard/S\nscratched/U\nscratcher/M\nscratches/M\nscratchily\nscratchiness/S\nscratch/JDRSZG\nscratchy/TRP\nscrawler/M\nscrawl/GRDS\nscrawly/RT\nscrawniness/MS\nscrawny/TRP\nscreamer/M\nscreaming/Y\nscream/ZGSRD\nscreecher/M\nscreech/GMDRS\nscreechy/TR\nscreed/MS\nscree/DSM\nscreened/U\nscreening/M\nscreenplay/MS\nscreen/RDMJSG\nscreenwriter/MS\nscrewball/SM\nscrewdriver/SM\nscrewer/M\nscrew/GUSD\nscrewiness/S\nscrew's\nscrewup\nscrewworm/MS\nscrewy/RTP\nScriabin/M\nscribal\nscribble/JZDRSG\nscribbler/M\nscribe/CDRSGIK\nscriber/MKIC\nscribe's\nScribner/MS\nscrimmager/M\nscrimmage/RSDMG\nscrimp/DGS\nscrimshaw/GSDM\nscrim/SM\nScripps/M\nscrip/SM\nscripted/U\nscript/FGMDS\nscriptural/Y\nscripture/MS\nScripture/MS\nscriptwriter/SM\nscriptwriting/M\nscrivener/M\nscriven/ZR\nscrod/M\nscrofula/MS\nscrofulous\nscrollbar/SM\nscroll/GMDSB\nScrooge/MS\nscrooge/SDMG\nscrota\nscrotal\nscrotum/M\nscrounge/ZGDRS\nscroungy/TR\nscrubbed\nscrubber/MS\nscrubbing\nscrubby/TR\nscrub/S\nscruffily\nscruffiness/S\nscruff/SM\nscruffy/PRT\nScruggs/M\nscrummage/MG\nscrum/MS\nscrumptious/Y\nscrunch/DSG\nscrunchy/S\nscruple/SDMG\nscrupulosity/SM\nscrupulousness's\nscrupulousness/US\nscrupulous/UPY\nscrutable/I\nscrutinized/U\nscrutinizer/M\nscrutinize/RSDGZ\nscrutinizingly/S\nscrutinizing/UY\nscrutiny/MS\nSCSI\nscuba/SDMG\nscudded\nscudding\nScud/M\nscud/S\nscuff/GSD\nscuffle/SDG\nsculler/M\nscullery/MS\nSculley/M\nscullion/MS\nscull/SRDMGZ\nsculptor/MS\nsculptress/MS\nsculpt/SDG\nsculptural/Y\nsculpture/SDGM\nscumbag/S\nscummed\nscumming\nscum/MS\nscummy/TR\nscupper/SDMG\nscurf/MS\nscurfy/TR\nscurrility/MS\nscurrilousness/MS\nscurrilous/PY\nscurry/GJSD\nscurvily\nscurviness/M\nscurvy/SRTP\nscutcheon/SM\nscuttlebutt/MS\nscuttle/MGSD\nscuzzy/RT\nScylla/M\nscythe/SDGM\nScythia/M\nSD\nSDI\nSE\nseabed/S\nseabird/S\nseaboard/MS\nSeaborg/M\nseaborne\nSeabrook/M\nseacoast/MS\nseafare/JRZG\nseafarer/M\nseafood/MS\nseafront/MS\nSeagate/M\nseagoing\nSeagram/M\nseagull/S\nseahorse/S\nsealant/MS\nsealed/AU\nsealer/M\nseal/MDRSGZ\nsealskin/SM\nseals/UA\nseamail\nseamanship/SM\nseaman/YM\nseamer/M\nseaminess/M\nseamlessness/M\nseamless/PY\nseam/MNDRGS\nseams/I\nseamstress/MS\nSeamus/M\nsea/MYS\nseamy/TRP\nSeana/M\ns<6E>ance/SM\nSean/M\nseaplane/SM\nseaport/SM\nseaquake/M\nSeaquarium/M\nsearcher/AM\nsearching/YS\nsearchlight/SM\nsearch/RSDAGZ\nsear/DRSJGT\nsearing/Y\nSears/M\nseascape/SM\nseashell/MS\nseashore/SM\nseasickness/SM\nseasick/P\nseaside/SM\nseasonableness/M\nseasonable/UP\nseasonably/U\nseasonality\nseasonal/Y\nseasoned/U\nseasoner/M\nseasoning/M\nseason/JRDYMBZSG\nseatbelt\nseated/A\nseater/M\nseating/SM\nSEATO\nseat's\nSeattle/M\nseat/UDSG\nseawall/S\nseaward/S\nseawater/S\nseaway/MS\nseaweed/SM\nseaworthinesses\nseaworthiness/MU\nseaworthy/TRP\nsebaceous\nSebastian/M\nSebastiano/M\nSebastien/M\nseborrhea/SM\nSEC\nsecant/SM\nsecede/GRSD\nsecessionist/MS\nsecession/MS\nsecludedness/M\nsecluded/YP\nseclude/GSD\nseclusion/SM\nseclusive\nSeconal\nsecondarily\nsecondary/PS\nseconder/M\nsecondhand\nsecond/RDYZGSL\nsecrecy/MS\nsecretarial\nsecretariat/MS\nsecretaryship/MS\nsecretary/SM\nsecrete/XNS\nsecretion/M\nsecretiveness/S\nsecretive/PY\nsecretory\nsecret/TVGRDYS\nsec/S\nsectarianism/MS\nsectarian/S\nsectary/MS\nsectionalism/MS\nsectionalized\nsectional/SY\nsection/ASEM\nsectioned\nsectioning\nsect/ISM\nsectoral\nsectored\nsector/EMS\nsectoring\nsects/E\nsecularism/MS\nsecularist/MS\nsecularity/M\nsecularization/MS\nsecularized/U\nsecularize/GSD\nsecular/SY\nsecured/U\nsecurely/I\nsecure/PGTYRSDJ\nsecurity/MSI\nsecy\nsec'y\nsedan/SM\nsedateness/SM\nsedate/PXVNGTYRSD\nsedation/M\nsedative/S\nsedentary\nSeder/SM\nsedge/SM\nSedgwick/M\nsedgy/RT\nsedimentary\nsedimentation/SM\nsediment/SGDM\nsedition/SM\nseditiousness/M\nseditious/PY\nseducer/M\nseduce/RSDGZ\nseduction/MS\nseductiveness/MS\nseductive/YP\nseductress/SM\nsedulous/Y\nSeebeck/M\nseed/ADSG\nseedbed/MS\nseedcase/SM\nseeded/U\nseeder/MS\nseediness/MS\nseeding/S\nseedless\nseedling/SM\nseedpod/S\nseed's\nseedy/TPR\nseeings\nseeing's\nseeing/U\nseeker/M\nseek/GZSR\nseeking/Y\nSeeley/M\nSee/M\nseem/GJSYD\nseeming/Y\nseemliness's\nseemliness/US\nseemly/UTPR\nseen/U\nseepage/MS\nseep/GSD\nseer/SM\nseersucker/MS\nsees\nseesaw/DMSG\nseethe/SDGJ\nsee/U\nsegmental/Y\nsegmentation/SM\nsegmented/U\nsegment/SGDM\nSegovia/M\nsegregant\nsegregated/U\nsegregate/XCNGSD\nsegregation/CM\nsegregationist/SM\nsegregative\nSegre/M\nsegue/DS\nsegueing\nSegundo/M\nSe/H\nSeidel/M\nseigneur/MS\nseignior/SM\nSeiko/M\nseine/GZMDSR\nSeine/M\nseiner/M\nSeinfeld/M\nseismic\nseismically\nseismographer/M\nseismographic\nseismographs\nseismography/SM\nseismograph/ZMR\nseismologic\nseismological\nseismologist/MS\nseismology/SM\nseismometer/S\nseize/BJGZDSR\nseizer/M\nseizing/M\nseizin/MS\nseizor/MS\nseizure/MS\nSeka/M\nSela/M\nSelassie/M\nSelby/M\nseldom\nselected/UAC\nselectional\nselection/MS\nselectiveness/M\nselective/YP\nselectivity/MS\nselectman/M\nselectmen\nselectness/SM\nselector/SM\nselect/PDSVGB\nSelectric/M\nselects/A\nSelena/M\nselenate/M\nSelene/M\nselenite/M\nselenium/MS\nselenographer/SM\nselenography/MS\nSelestina/M\nSeleucid/M\nSeleucus/M\nself/GPDMS\nselfishness/SU\nselfish/PUY\nselflessness/MS\nselfless/YP\nselfness/M\nSelfridge/M\nselfsameness/M\nselfsame/P\nSelia/M\nSelie/M\nSelig/M\nSelim/M\nSelina/M\nSelinda/M\nSeline/M\nSeljuk/M\nSelkirk/M\nSella/M\nsell/AZGSR\nseller/AM\nSellers/M\nSelle/ZM\nsellout/MS\nSelma/M\nseltzer/S\nselvage/MGSD\nselves/M\nSelznick/M\nsemantical/Y\nsemanticist/SM\nsemantic/S\nsemantics/M\nsemaphore/GMSD\nSemarang/M\nsemblance/ASME\nsemen/SM\nsemester/SM\nsemiannual/Y\nsemiarid\nsemiautomated\nsemiautomatic/S\nsemicircle/SM\nsemicircular\nsemicolon/MS\nsemiconductor/SM\nsemiconscious\nsemidefinite\nsemidetached\nsemidrying/M\nsemifinalist/MS\nsemifinal/MS\nsemilogarithmic\nsemimonthly/S\nseminal/Y\nseminarian/MS\nseminar/SM\nseminary/MS\nSeminole/SM\nsemiofficial\nsemioticians\nsemiotic/S\nsemiotics/M\nsemipermanent/Y\nsemipermeable\nsemiprecious\nsemiprivate\nsemiprofessional/YS\nsemipublic\nsemiquantitative/Y\nSemiramis/M\nsemiretired\nsemisecret\nsemiskilled\nsemi/SM\nsemisolid/S\nsemistructured\nsemisweet\nSemite/SM\nSemitic/MS\nsemitic/S\nsemitone/SM\nsemitrailer/SM\nsemitrance\nsemitransparent\nsemitropical\nsemivowel/MS\nsemiweekly/S\nsemiyearly\nsemolina/SM\nsempiternal\nsempstress/SM\nSemtex\nsen\nSen\nSena/M\nsenate/MS\nSenate/MS\nsenatorial\nsenator/MS\nSendai/M\nsender/M\nsends/A\nsend/SRGZ\nSeneca/MS\nSenegalese\nSenegal/M\nsenescence/SM\nsenescent\nsenile/SY\nsenility/MS\nseniority/SM\nsenior/MS\nSenior/S\nSennacherib/M\nsenna/MS\nSennett/M\nSe<53>ora/M\nsenora/S\nsenorita/S\nsenor/MS\nsensately/I\nsensate/YNX\nsensationalism/MS\nsensationalist/S\nsensationalize/GSD\nsensational/Y\nsensation/M\nsens/DSG\nsenselessness/SM\nsenseless/PY\nsense/M\nsensibility/ISM\nsensibleness/MS\nsensible/PRST\nsensibly/I\nsensitiveness/MS\nsensitiveness's/I\nsensitives\nsensitive/YIP\nsensitivity/ISM\nsensitization/CSM\nsensitized/U\nsensitizers\nsensitize/SDCG\nsensor/MS\nsensory\nsensualist/MS\nsensuality/MS\nsensual/YF\nsensuousness/S\nsensuous/PY\nSensurround/M\nsentence/SDMG\nsentential/Y\nsententious/Y\nsentience/ISM\nsentient/YS\nsentimentalism/SM\nsentimentalist/SM\nsentimentality/SM\nsentimentalization/SM\nsentimentalize/RSDZG\nsentimentalizes/U\nsentimental/Y\nsentiment/MS\nsentinel/GDMS\nsentry/SM\nsent/UFEA\nSeoul/M\nsepal/SM\nseparability/MSI\nseparableness/MI\nseparable/PI\nseparably/I\nseparateness/MS\nseparates/M\nseparate/YNGVDSXP\nseparation/M\nseparatism/SM\nseparatist/SM\nseparator/SM\nSephardi/M\nSephira/M\nsepia/MS\nSepoy/M\nsepses\nsepsis/M\nsepta/M\nseptate/N\nSeptember/MS\nseptennial/Y\nseptet/MS\nsepticemia/SM\nsepticemic\nseptic/S\nseptillion/M\nsept/M\nSept/M\nseptuagenarian/MS\nSeptuagint/MS\nseptum/M\nsepulcher/MGSD\nsepulchers/UA\nsepulchral/Y\nseq\nsequel/MS\nsequenced/A\nsequence/DRSJZMG\nsequencer/M\nsequence's/F\nsequences/F\nsequent/F\nsequentiality/FM\nsequentialize/DSG\nsequential/YF\nsequester/SDG\nsequestrate/XGNDS\nsequestration/M\nsequin/SDMG\nsequitur\nSequoia/M\nsequoia/MS\nSequoya/M\nSerafin/M\nseraglio/SM\nserape/S\nseraphic\nseraphically\nseraphim's\nseraph/M\nseraphs\nsera's\nSerbia/M\nSerbian/S\nSerb/MS\nSerbo/M\nserenade/MGDRS\nserenader/M\nSerena/M\nserendipitous/Y\nserendipity/MS\nserene/GTYRSDP\nSerene/M\nsereneness/SM\nSerengeti/M\nserenity/MS\nsere/TGDRS\nserfdom/MS\nserf/MS\nSergeant/M\nsergeant/SM\nserge/DSGM\nSergei/M\nSerge/M\nSergent/M\nSergio/M\nserialization/MS\nserialize/GSD\nserial/MYS\nseries/M\nserif/SMD\nserigraph/M\nserigraphs\nseriousness/SM\nserious/PY\nsermonize/GSD\nsermon/SGDM\nserological/Y\nserology/MS\nserons\nserous\nSerpens/M\nserpent/GSDM\nserpentine/GYS\nSerra/M\nSerrano/M\nserrate/GNXSD\nserration/M\nserried\nserum/MS\nservant/SDMG\nserve/AGCFDSR\nserved/U\nserver/MCF\nservers\nserviceability/SM\nserviceableness/M\nserviceable/P\nserviced/U\nserviceman/M\nservicemen\nservice/MGSRD\nservice's/E\nservices/E\nservicewoman\nservicewomen\nserviette/MS\nservilely\nservileness/M\nserviles\nservile/U\nservility/SM\nserving/SM\nservitor/SM\nservitude/MS\nservomechanism/MS\nservomotor/MS\nservo/S\nsesame/MS\nsesquicentennial/S\nsessile\nsession/SM\nsetback/S\nSeth/M\nSet/M\nSeton/M\nset's\nsetscrew/SM\nset/SIA\nsettable/A\nsett/BJGZSMR\nsettee/MS\nsetter/M\nsetting/AS\nsetting's\nsettle/AUDSG\nsettlement/ASM\nsettler/MS\nsettling/S\nsetup/MS\nSeumas/M\nSeurat/M\nSeuss/M\nSevastopol/M\nsevenfold\nsevenpence\nseven/SMH\nseventeen/HMS\nseventeenths\nsevenths\nseventieths\nseventy/MSH\nseveralfold\nseveralty/M\nseveral/YS\nseverance/SM\nsevered/E\nsevereness/SM\nsevere/PY\nsevering/E\nseverity/MS\nSevern/M\nsevers/E\nsever/SGTRD\nSeverus/M\nSeville/M\nsewage/MS\nSeward/M\nsewerage/SM\nsewer/GSMD\nsewing/SM\nsewn\nsew/SAGD\nsexagenarian/MS\nsex/GMDS\nsexily\nsexiness/MS\nsexism/SM\nsexist/SM\nsexless\nsexologist/SM\nsexology/MS\nsexpot/SM\nSextans/M\nsextant/SM\nsextet/SM\nsextillion/M\nSexton/M\nsexton/MS\nsextuple/MDG\nsextuplet/MS\nsexuality/MS\nsexualized\nsexual/Y\nsexy/RTP\nSeychelles\nSeyfert\nSeymour/M\nsf\nSF\nSgt\nshabbily\nshabbiness/SM\nshabby/RTP\nshack/GMDS\nshackler/M\nshackle's\nShackleton/M\nshackle/UGDS\nshad/DRJGSM\nshaded/U\nshadeless\nshade/SM\nshadily\nshadiness/MS\nshading/M\nshadowbox/SDG\nshadower/M\nshadow/GSDRM\nshadowiness/M\nShadow/M\nshadowy/TRP\nshady/TRP\nShae/M\nShafer/M\nShaffer/M\nshafting/M\nshaft/SDMG\nshagged\nshagginess/SM\nshagging\nshaggy/TPR\nshag/MS\nshah/M\nshahs\nShaina/M\nShaine/M\nshakable/U\nshakably/U\nshakeable\nshakedown/S\nshaken/U\nshakeout/SM\nshaker/M\nShaker/S\nShakespearean/S\nShakespeare/M\nShakespearian\nshake/SRGZB\nshakeup/S\nshakily\nshakiness/S\nshaking/M\nshaky/TPR\nshale/SM\nshall\nshallot/SM\nshallowness/SM\nshallow/STPGDRY\nShalna/M\nShalne/M\nshalom\nShalom/M\nshalt\nshamanic\nshaman/SM\nshamble/DSG\nshambles/M\nshamefaced/Y\nshamefulness/S\nshameful/YP\nshamelessness/SM\nshameless/PY\nshame/SM\nsham/MDSG\nshammed\nshammer\nshamming\nshammy's\nshampoo/DRSMZG\nshampooer/M\nshamrock/SM\nShamus/M\nShana/M\nShanan/M\nShanda/M\nShandee/M\nShandeigh/M\nShandie/M\nShandra/M\nshandy/M\nShandy/M\nShane/M\nShanghai/GM\nShanghaiing/M\nshanghai/SDG\nShanie/M\nShani/M\nshank/SMDG\nShannah/M\nShanna/M\nShannan/M\nShannen/M\nShannon/M\nShanon/M\nshan't\nShanta/M\nShantee/M\nshantis\nShantung/M\nshantung/MS\nshanty/SM\nshantytown/SM\nshape/AGDSR\nshaped/U\nshapelessness/SM\nshapeless/PY\nshapeliness/S\nshapely/RPT\nshaper/S\nshape's\nShapiro/M\nsharable/U\nSharai/M\nShara/M\nshard/SM\nshareable\nsharecropped\nsharecropper/MS\nsharecropping\nsharecrop/S\nshare/DSRGZMB\nshared/U\nshareholder/MS\nshareholding/S\nsharer/M\nshareware/S\nShari'a\nSharia/M\nsharia/SM\nShari/M\nSharity/M\nshark/SGMD\nsharkskin/SM\nSharla/M\nSharleen/M\nSharlene/M\nSharline/M\nSharl/M\nSharona/M\nSharon/M\nSharpe/M\nsharpen/ASGD\nsharpened/U\nsharpener/S\nsharper/M\nsharpie/SM\nSharp/M\nsharpness/MS\nsharp/SGTZXPYRDN\nsharpshooter/M\nsharpshooting/M\nsharpshoot/JRGZ\nsharpy's\nSharron/M\nSharyl/M\nShasta/M\nshat\nshatter/DSG\nshattering/Y\nshatterproof\nShaughn/M\nShaula/M\nShauna/M\nShaun/M\nshave/DSRJGZ\nshaved/U\nshaver/M\nShavian\nshaving/M\nShavuot/M\nShawano/M\nshawl/SDMG\nshaw/M\nShaw/M\nShawna/M\nShawnee/SM\nShawn/M\nShaylah/M\nShayla/M\nShaylyn/M\nShaylynn/M\nShay/M\nshay/MS\nShayna/M\nShayne/M\nShcharansky/M\nsh/DRS\nsheaf/MDGS\nShea/M\nshearer/M\nshear/RDGZS\nsheather/M\nsheathe/UGSD\nsheath/GJMDRS\nsheathing/M\nsheaths\nsheave/SDG\nsheaves/M\nSheba/M\nshebang/MS\nShebeli/M\nSheboygan/M\nshe'd\nshedding\nShedir/M\nsheds\nshed's\nshed/U\nSheelagh/M\nSheelah/M\nSheela/M\nSheena/M\nsheen/MDGS\nsheeny/TRSM\nsheepdog/SM\nsheepfold/MS\nsheepherder/MS\nsheepishness/SM\nsheepish/YP\nsheep/M\nsheepskin/SM\nSheeree/M\nsheerness/S\nsheer/PGTYRDS\nsheeting/M\nsheetlike\nsheet/RDMJSG\nSheetrock\nSheffielder/M\nSheffield/RMZ\nSheffie/M\nSheff/M\nSheffy/M\nsheikdom/SM\nsheikh's\nsheik/SM\nSheilah/M\nSheila/M\nshekel/MS\nShelagh/M\nShela/M\nShelba/M\nShelbi/M\nShelby/M\nShelden/M\nSheldon/M\nshelf/MDGS\nShelia/M\nshe'll\nshellacked\nshellacking/MS\nshellac/S\nshelled/U\nShelley/M\nshellfire/SM\nshellfish/SM\nShellie/M\nShelli/M\nShell/M\nshell/RDMGS\nShelly/M\nShel/MY\nshelter/DRMGS\nsheltered/U\nshelterer/M\nShelton/M\nshelve/JRSDG\nshelver/M\nshelves/M\nshelving/M\nshe/M\nShem/M\nShena/M\nShenandoah/M\nshenanigan/SM\nShenyang/M\nSheol/M\nShepard/M\nshepherd/DMSG\nshepherdess/S\nShepherd/M\nShep/M\nSheppard/M\nShepperd/M\nSheratan/M\nSheraton/M\nsherbet/MS\nsherd's\nSheree/M\nSheridan/M\nSherie/M\nsheriff/SM\nSherill/M\nSherilyn/M\nSheri/M\nSherline/M\nSherlocke/M\nsherlock/M\nSherlock/M\nSher/M\nSherman/M\nShermie/M\nSherm/M\nShermy/M\nSherpa/SM\nSherrie/M\nSherri/M\nSherry/M\nsherry/MS\nSherwin/M\nSherwood/M\nSherwynd/M\nSherye/M\nSheryl/M\nShetland/S\nShevardnadze/M\nshew/GSD\nshewn\nshh\nshiatsu/S\nshibboleth/M\nshibboleths\nshielded/U\nshielder/M\nshield/MDRSG\nShields/M\nshiftily\nshiftiness/SM\nshiftlessness/S\nshiftless/PY\nshift/RDGZS\nshifty/TRP\nShi'ite\nShiite/SM\nShijiazhuang\nShikoku/M\nshill/DJSG\nshillelagh/M\nshillelaghs\nshilling/M\nShillong/M\nShiloh/M\nshimmed\nshimmer/DGS\nshimmery\nshimming\nshimmy/DSMG\nshim/SM\nShina/M\nshinbone/SM\nshindig/MS\nshiner/M\nshine/S\nshingle/MDRSG\nshingler/M\nshinguard\nshininess/MS\nshining/Y\nshinned\nshinning\nshinny/GDSM\nshin/SGZDRM\nshinsplints\nShintoism/S\nShintoist/MS\nShinto/MS\nshiny/PRT\nshipboard/MS\nshipborne\nshipbuilder/M\nshipbuild/RGZJ\nshipload/SM\nshipman/M\nshipmate/SM\nshipmen\nshipment/AMS\nshipowner/MS\nshippable\nshipped/A\nshipper/SM\nshipping/MS\nship's\nshipshape\nship/SLA\nshipwreck/GSMD\nshipwright/MS\nshipyard/MS\nShiraz/M\nshire/MS\nshirker/M\nshirk/RDGZS\nShirlee/M\nShirleen/M\nShirlene/M\nShirley/M\nShirline/M\nShirl/M\nShir/M\nshirr/GJDS\nshirtfront/S\nshirting/M\nshirt/JDMSG\nshirtless\nshirtmake/R\nshirtmaker/M\nshirtsleeve/MS\nshirttail/S\nshirtwaist/SM\nshit/S!\nshitting/!\nshitty/RT!\nShiva/M\nshiverer/M\nshiver/GDR\nshivery\nshiv/SZRM\nshivved\nshivving\nshlemiel's\nShmuel/M\nshoal/SRDMGT\nshoat/SM\nshocker/M\nshocking/Y\nShockley/M\nshockproof\nshock/SGZRD\nshoddily\nshoddiness/SM\nshoddy/RSTP\nshod/U\nshoehorn/GSMD\nshoeing\nshoelace/MS\nshoemaker/M\nshoemake/RZ\nshoe/MS\nshoer's\nshoeshine/MS\nshoestring/MS\nshoetree/MS\nshogunate/SM\nshogun/MS\nShoji/M\nSholom/M\nshone\nshoo/DSG\nshoofly\nshook/SM\nshooter/M\nshootout/MS\nshoot/SJRGZ\nshopkeeper/M\nshopkeep/RGZ\nshoplifter/M\nshoplifting/M\nshoplift/SRDGZ\nshop/MS\nshopped/M\nshopper/M\nshoppe/RSDGZJ\nshopping/M\nshoptalk/SM\nshopworn\nshorebird/S\nshore/DSRGMJ\nshoreline/SM\nShorewood/M\nshoring/M\nshortage/MS\nshortbread/MS\nshortcake/SM\nshortchange/DSG\nshortcoming/MS\nshortcrust\nshortcut/MS\nshortcutting\nshortener/M\nshortening/M\nshorten/RDGJ\nshortfall/SM\nshorthand/DMS\nShorthorn/M\nshorthorn/MS\nshortie's\nshortish\nshortlist/GD\nShort/M\nshortness/MS\nshort/SGTXYRDNP\nshortsightedness/S\nshortsighted/YP\nshortstop/MS\nshortwave/SM\nshorty/SM\nShoshana/M\nShoshanna/M\nShoshone/SM\nShostakovitch/M\nshotgunned\nshotgunner\nshotgunning\nshotgun/SM\nshot/MS\nshotted\nshotting\nshoulder/GMD\nshouldn't\nshould/TZR\nshout/SGZRDM\nshove/DSRG\nshoveler/M\nshovelful/MS\nshovel/MDRSZG\nshover/M\nshowbiz\nshowbizzes\nshowboat/SGDM\nshowcase/MGSD\nshowdown/MS\nshower/GDM\nshowery/TR\nshow/GDRZJS\nshowgirl/SM\nshowily\nshowiness/MS\nshowing/M\nshowman/M\nshowmanship/SM\nshowmen\nshown\nshowoff/S\nshowpiece/SM\nshowplace/SM\nshowroom/MS\nshowy/RTP\nshpt\nshrank\nshrapnel/SM\nshredded\nshredder/MS\nshredding\nshred/MS\nShreveport/M\nshrewdness/SM\nshrewd/RYTP\nshrew/GSMD\nshrewishness/M\nshrewish/PY\nshrieker/M\nshriek/SGDRMZ\nshrift/SM\nshrike/SM\nshrill/DRTGPS\nshrillness/MS\nshrilly\nshrimp/MDGS\nshrine/SDGM\nshrinkage/SM\nshrinker/M\nshrinking/U\nshrink/SRBG\nshrivel/GSD\nshriven\nshrive/RSDG\nShropshire/M\nshroud/GSMD\nshrubbed\nshrubbery/SM\nshrubbing\nshrubby/TR\nshrub/SM\nshrugged\nshrugging\nshrug/S\nshrunk/N\nshtick/S\nshucker/M\nshuck/SGMRD\nshucks/S\nshudder/DSG\nshuddery\nshuffleboard/MS\nshuffled/A\nshuffle/GDSRZ\nshuffles/A\nshuffling/A\nShulman/M\nShu/M\nshunned\nshunning\nshun/S\nshunter/M\nshunt/GSRD\nShurlocke/M\nShurlock/M\nShurwood/M\nshush/SDG\nshutdown/MS\nshuteye/SM\nshutoff/M\nshutout/SM\nshut/S\nshutterbug/S\nshutter/DMGS\nshuttering/M\nshutting\nshuttlecock/MDSG\nshuttle/MGDS\nshy/DRSGTZY\nshyer\nshyest\nShylockian/M\nShylock/M\nshyness/SM\nshyster/SM\nSiamese/M\nSiam/M\nSiana/M\nSianna/M\nSian's\nSibbie/M\nSibby/M\nSibeal/M\nSibelius/M\nSibella/M\nSibelle/M\nSibel/M\nSiberia/M\nSiberian/S\nsibilance/M\nsibilancy/M\nsibilant/SY\nSibilla/M\nSibley/M\nsibling/SM\nSib/M\nSibylla/M\nSibylle/M\nsibylline\nSibyl/M\nsibyl/SM\nSiciliana/M\nSicilian/S\nSicily/M\nsickbay/M\nsickbed/S\nsickener/M\nsickening/Y\nsicken/JRDG\nsicker/Y\nsick/GXTYNDRSP\nsickie/SM\nsickish/PY\nsickle/SDGM\nsickliness/M\nsickly/TRSDPG\nsickness/MS\nsicko/S\nsickout/S\nsickroom/SM\nsic/S\nsidearm/S\nsideband/MS\nsidebar/MS\nsideboard/SM\nsideburns\nsidecar/MS\nsided/A\nsidedness\nside/ISRM\nsidekick/MS\nsidelight/SM\nsideline/MGDRS\nsidelong\nsideman/M\nsidemen\nsidepiece/S\nsidereal\nsider/FA\nsides/A\nsidesaddle/MS\nsideshow/MS\nsidesplitting\nsidestepped\nsidestepping\nsidestep/S\nsidestroke/GMSD\nsideswipe/GSDM\nsidetrack/SDG\nsidewalk/MS\nsidewall/MS\nsidewards\nsideway/SM\nsidewinder/SM\nsiding/SM\nsidle/DSG\nSid/M\nSidnee/M\nSidney/M\nSidoney/M\nSidonia/M\nSidonnie/M\nSIDS\nsiege/GMDS\nSiegel/M\nSiegfried/M\nSieglinda/M\nSiegmund/M\nSiemens/M\nSiena/M\nsienna/SM\nSierpinski/M\nsierra/SM\nsiesta/MS\nsieve/GZMDS\nSiffre/M\nsifted/UA\nsifter/M\nsift/GZJSDR\nSigfrid/M\nSigfried/M\nSIGGRAPH/M\nsigh/DRG\nsigher/M\nsighs\nsighted/P\nsighter/M\nsighting/S\nsight/ISM\nsightless/Y\nsightliness/UM\nsightly/TURP\nsightread\nsightseeing/S\nsightsee/RZ\nSigismond/M\nSigismondo/M\nSigismund/M\nSigismundo/M\nSig/M\nsigma/SM\nsigmoid\nSigmund/M\nsignal/A\nsignaled\nsignaler/S\nsignaling\nsignalization/S\nsignalize/GSD\nsignally\nsignalman/M\nsignalmen\nsignals\nsignal's\nsignatory/SM\nsignature/MS\nsignboard/MS\nsigned/FU\nsigner/SC\nsignet/SGMD\nsign/GARDCS\nsignificance/IMS\nsignificantly/I\nsignificant/YS\nsignification/M\nsignify/DRSGNX\nsigning/S\nSignora/M\nsignora/SM\nsignore/M\nsignori\nsignories\nsignorina/SM\nsignorine\nSignor/M\nsignor/SFM\nsignpost/DMSG\nsign's\nsigns/F\nSigrid/M\nSigurd/M\nSigvard/M\nSihanouk/M\nSikhism/MS\nSikh/MS\nSikhs\nSikkimese\nSikkim/M\nSikorsky/M\nsilage/GMSD\nSilas/M\nSileas/M\nsiled\nSile/M\nsilence/MZGRSD\nsilencer/M\nsilentness/M\nsilent/TSPRY\nSilesia/M\nsilhouette/GMSD\nsilica/SM\nsilicate/SM\nsiliceous\nsilicide/M\nsilicone/SM\nsilicon/MS\nsilicoses\nsilicosis/M\nsilken/DG\nsilk/GXNDMS\nsilkily\nsilkiness/SM\nsilkscreen/SM\nsilkworm/MS\nsilky/RSPT\nsilliness/SM\nsill/MS\nsilly/PRST\nsilo/GSM\nsiltation/M\nsilt/MDGS\nsiltstone/M\nsilty/RT\nSilurian/S\nSilvain/M\nSilva/M\nSilvana/M\nSilvan/M\nSilvano/M\nSilvanus/M\nsilverer/M\nsilverfish/MS\nSilverman/M\nsilver/RDYMGS\nsilversmith/M\nsilversmiths\nSilverstein/M\nsilverware/SM\nsilvery/RTP\nSilvester/M\nSilvia/M\nSilvie/M\nSilvio/M\nSi/M\nSIMD\nSimenon/M\nSimeon/M\nsimian/S\nsimilar/EY\nsimilarity/EMS\nsimile/SM\nsimilitude/SME\nSimla/M\nsimmer/GSD\nSimmonds/M\nSimmons/M\nSimmonsville/M\nSim/MS\nSimms/M\nSimona/M\nSimone/M\nSimonette/M\nsimonize/SDG\nSimon/M\nSimonne/M\nsimony/MS\nsimpatico\nsimper/GDS\nsimpleminded/YP\nsimpleness/S\nsimple/RSDGTP\nsimpleton/SM\nsimplex/S\nsimplicity/MS\nsimplified/U\nsimplify/ZXRSDNG\nsimplistic\nsimplistically\nsimply\nSimpson/M\nsimulacrum/M\nSimula/M\nSIMULA/M\nsimulate/XENGSD\nsimulation/ME\nsimulative\nsimulator/SEM\nsimulcast/GSD\nsimultaneity/SM\nsimultaneousness/M\nsimultaneous/YP\nSinai/M\nSinatra/M\nsince\nsincere/IY\nsincereness/M\nsincerer\nsincerest\nsincerity/MIS\nSinclair/M\nSinclare/M\nSindbad/M\nSindee/M\nSindhi/M\nsinecure/MS\nsinecurist/M\nsine/SM\nsinew/SGMD\nsinewy\nsinfulness/SM\nsinful/YP\nSingaporean/S\nSingapore/M\nsing/BGJZYDR\nSingborg/M\nsingeing\nsinger/M\nSinger/M\nsinge/S\nsinging/Y\nsinglehanded/Y\nsingleness/SM\nsingle/PSDG\nSingleton/M\nsingleton/SM\nsingletree/SM\nsinglet/SM\nsingsong/GSMD\nsingularity/SM\nsingularization/M\nsingular/SY\nSinhalese/M\nsinisterness/M\nsinister/YP\nsinistral/Y\nsinkable/U\nsinker/M\nsink/GZSDRB\nsinkhole/SM\nSinkiang/M\nsinking/M\nsinlessness/M\nsinless/YP\nsin/MAGS\nsinned\nsinner/MS\nsinning\nsinter/DM\nsinuosity/MS\nsinuousities\nsinuousness/M\nsinuous/PY\nsinusitis/SM\nsinus/MS\nsinusoidal/Y\nsinusoid/MS\nSiobhan/M\nSiouxie/M\nSioux/M\nsiphon/DMSG\nsiphons/U\nsipped\nsipper/SM\nsipping\nsip/S\nsired/C\nsire/MS\nsiren/M\nsires/C\nsiring/C\nSirius/M\nsirloin/MS\nSir/MS\nsirocco/MS\nsirred\nsirring\nsirup's\nsir/XGMNDS\nsisal/MS\nSisely/M\nSisile/M\nsis/S\nSissie/M\nsissified\nSissy/M\nsissy/TRSM\nsister/GDYMS\nsisterhood/MS\nsisterliness/MS\nsisterly/P\nsister's/A\nSistine\nSisyphean\nSisyphus/M\nsit/AG\nsitarist/SM\nsitar/SM\nsitcom/SM\nsite/DSJM\nsits\nsitter/MS\nsitting/SM\nsituate/GNSDX\nsituational/Y\nsituationist\nsituation/M\nsitu/S\nsitus/M\nSiusan/M\nSiva/M\nSiward/M\nsixfold\nsixgun\nsix/MRSH\nsixpence/MS\nsixpenny\nsixshooter\nsixteen/HRSM\nsixteenths\nsixths\nsixth/Y\nsixtieths\nsixty/SMH\nsizableness/M\nsizable/P\nsized/UA\nsize/GJDRSBMZ\nsizer/M\nsizes/A\nsizing/M\nsizzler/M\nsizzle/RSDG\nSJ\nSjaelland/M\nSK\nska/S\nskateboard/SJGZMDR\nskater/M\nskate/SM\nskat/JMDRGZ\nskedaddle/GSD\nskeet/RMS\nskein/MDGS\nskeletal/Y\nskeleton/MS\nSkell/M\nSkelly/M\nskeptical/Y\nskepticism/MS\nskeptic/SM\nsketchbook/SM\nsketcher/M\nsketchily\nsketchiness/MS\nsketch/MRSDZG\nsketchpad\nsketchy/PRT\nskew/DRSPGZ\nskewer/GDM\nskewing/M\nskewness/M\nskidded\nskidding\nskid/S\nskiff/GMDS\nskiing/M\nskilfully\nskill/DMSG\nskilled/U\nskillet/MS\nskillfulnesses\nskillfulness/MU\nskillful/YUP\nskilling/M\nskimmed\nskimmer/MS\nskimming/SM\nski/MNJSG\nskimp/GDS\nskimpily\nskimpiness/MS\nskimpy/PRT\nskim/SM\nskincare\nskindive/G\nskinflint/MS\nskinhead/SM\nskinless\nskinned\nSkinner/M\nskinner/SM\nskinniness/MS\nskinning\nskinny/TRSP\nskin/SM\nskintight\nSkip/M\nskipped\nSkipper/M\nskipper/SGDM\nSkippie/M\nskipping\nSkipp/RM\nSkippy/M\nskip/S\nSkipton/M\nskirmisher/M\nskirmish/RSDMZG\nskirter/M\nskirting/M\nskirt/RDMGS\nskit/GSMD\nskitter/SDG\nskittishness/SM\nskittish/YP\nskittle/SM\nskivvy/GSDM\nskoal/SDG\nSkopje/M\nskulduggery/MS\nskulker/M\nskulk/SRDGZ\nskullcap/MS\nskullduggery's\nskull/SDM\nskunk/GMDS\nskycap/MS\nskydiver/SM\nskydiving/MS\nSkye/M\nskyhook\nskyjacker/M\nskyjack/ZSGRDJ\nSkylab/M\nskylarker/M\nskylark/SRDMG\nSkylar/M\nSkyler/M\nskylight/MS\nskyline/MS\nSky/M\nsky/MDRSGZ\nskyrocket/GDMS\nskyscraper/M\nskyscrape/RZ\nskyward/S\nskywave\nskyway/M\nskywriter/MS\nskywriting/MS\nslabbed\nslabbing\nslab/MS\nslacken/DG\nslacker/M\nslackness/MS\nslack/SPGTZXYRDN\nSlade/M\nslagged\nslagging\nslag/MS\nslain\nslake/DSG\nslaked/U\nslalom/SGMD\nslammed\nslammer/S\nslamming\nslam/S\nslander/MDRZSG\nslanderousness/M\nslanderous/PY\nslang/SMGD\nslangy/TR\nslanting/Y\nslant/SDG\nslantwise\nslapdash/S\nslaphappy/TR\nslap/MS\nslapped\nslapper\nslapping\nslapstick/MS\nslash/GZRSD\nslashing/Y\nslater/M\nSlater/M\nslate/SM\nslather/SMDG\nslating/M\nslat/MDRSGZ\nslatted\nslattern/MYS\nslatting\nslaughterer/M\nslaughterhouse/SM\nslaughter/SJMRDGZ\nslave/DSRGZM\nslaveholder/SM\nslaver/GDM\nslavery/SM\nSlavic/M\nslavishness/SM\nslavish/YP\nSlav/MS\nSlavonic/M\nslaw/MS\nslay/RGZS\nsleaze/S\nsleazily\nsleaziness/SM\nsleazy/RTP\nsledded\nsledder/S\nsledding\nsledgehammer/MDGS\nsledge/SDGM\nsled/SM\nsleekness/S\nsleek/PYRDGTS\nsleeper/M\nsleepily\nsleepiness/SM\nsleeping/M\nsleeplessness/SM\nsleepless/YP\nsleepover/S\nsleep/RMGZS\nsleepwalker/M\nsleepwalk/JGRDZS\nsleepwear/M\nsleepyhead/MS\nsleepy/PTR\nsleet/DMSG\nsleety/TR\nsleeveless\nsleeve/SDGM\nsleeving/M\nsleigh/GMD\nsleighs\nsleight/SM\nsleken/DG\nslenderize/DSG\nslenderness/MS\nslender/RYTP\nslept\nSlesinger/M\nsleuth/GMD\nsleuths\nslew/DGS\nslice/DSRGZM\nsliced/U\nslicer/M\nslicker/M\nslickness/MS\nslick/PSYRDGTZ\nslider/M\nslide/S\nslid/GZDR\nslight/DRYPSTG\nslighter/M\nslighting/Y\nslightness/S\nslime/SM\nsliminess/S\nslimline\nslimmed\nslimmer/S\nslimmest\nslimming/S\nslimness/S\nslim/SPGYD\nslimy/PTR\nsling/GMRS\nslingshot/MS\nslings/U\nslink/GS\nslinky/RT\nslipcase/MS\nslipcover/GMDS\nslipknot/SM\nslippage/SM\nslipped\nslipper/GSMD\nslipperiness/S\nslippery/PRT\nslipping\nslipshod\nslip/SM\nslipstream/MDGS\nslipway/SM\nslither/DSG\nslithery\nslit/SM\nslitted\nslitter/S\nslitting\nsliver/GSDM\nslivery\nSloane/M\nSloan/M\nslobber/SDG\nslobbery\nslob/MS\nSlocum/M\nsloe/MS\nsloganeer/MG\nslogan/MS\nslogged\nslogging\nslog/S\nsloop/SM\nslop/DRSGZ\nsloped/U\nslope/S\nslopped\nsloppily\nsloppiness/SM\nslopping\nsloppy/RTP\nslosh/GSDM\nslothfulness/MS\nslothful/PY\nsloth/GDM\nsloths\nslot/MS\nslotted\nslotting\nslouch/DRSZG\nsloucher/M\nslouchy/RT\nslough/GMD\nsloughs\nSlovakia/M\nSlovakian/S\nSlovak/S\nSlovene/S\nSlovenia/M\nSlovenian/S\nslovenliness/SM\nslovenly/TRP\nsloven/YMS\nslowcoaches\nslowdown/MS\nslowish\nslowness/MS\nslow/PGTYDRS\nslowpoke/MS\nSLR\nsludge/SDGM\nsludgy/TR\nslue/MGDS\nsluggard/MS\nslugged\nslugger/SM\nslugging\nsluggishness/SM\nsluggish/YP\nslug/MS\nsluice/SDGM\nslumberer/M\nslumber/MDRGS\nslumberous\nslumlord/MS\nslummed\nslummer\nslumming\nslum/MS\nslummy/TR\nslump/DSG\nslung/U\nslunk\nslur/MS\nslurp/GSD\nslurred\nslurried/M\nslurring\nslurrying/M\nslurry/MGDS\nslushiness/SM\nslush/SDMG\nslushy/RTP\nslut/MS\nsluttish\nslutty/TR\nSly/M\nslyness/MS\nsly/RTY\nsmacker/M\nsmack/SMRDGZ\nsmallholders\nsmallholding/MS\nsmallish\nSmall/M\nsmallness/S\nsmallpox/SM\nsmall/SGTRDP\nsmalltalk\nsmalltime\nSmallwood/M\nsmarmy/RT\nsmarten/GD\nsmartness/S\nsmartypants\nsmart/YRDNSGTXP\nsmasher/M\nsmash/GZRSD\nsmashing/Y\nsmashup/S\nsmattering/SM\nsmearer/M\nsmear/GRDS\nsmeary/TR\nsmeller/M\nsmelliness/MS\nsmell/SBRDG\nsmelly/TRP\nsmelter/M\nsmelt/SRDGZ\nSmetana/M\nsmidgen/MS\nsmilax/MS\nsmile/GMDSR\nsmiley/M\nsmilies\nsmiling/UY\nsmirch/SDG\nsmirk/GSMD\nSmirnoff/M\nsmite/GSR\nsmiter/M\nsmith/DMG\nsmithereens\nSmithfield/M\nSmith/M\nsmiths\nSmithsonian/M\nSmithson/M\nSmithtown/M\nsmithy/SM\nsmitten\nSmitty/M\nSm/M\nsmocking/M\nsmock/SGMDJ\nsmoggy/TR\nsmog/SM\nsmoke/GZMDSRBJ\nsmokehouse/MS\nsmokeless\nsmoker/M\nsmokescreen/S\nsmokestack/MS\nSmokey/M\nsmokiness/S\nsmoking/M\nsmoky/RSPT\nsmoldering/Y\nsmolder/SGD\nSmolensk/M\nSmollett/M\nsmooch/SDG\nsmoothen/DG\nsmoother/M\nsmoothie/SM\nsmoothness/MS\nsmooths\nsmooth/TZGPRDNY\nsm<73>rg<72>sbord/SM\nsmote\nsmother/GSD\nSMSA/MS\nSMTP\nSmucker/M\nsmudge/GSD\nsmudginess/M\nsmudgy/TRP\nsmugged\nsmugger\nsmuggest\nsmugging\nsmuggle/JZGSRD\nsmuggler/M\nsmugness/MS\nsmug/YSP\nsmut/SM\nSmuts/M\nsmutted\nsmuttiness/SM\nsmutting\nsmutty/TRP\nSmyrna/M\nsnack/SGMD\nsnaffle/GDSM\nsnafu/DMSG\nsnagged\nsnagging\nsnag/MS\nsnail/GSDM\nSnake\nsnakebird/M\nsnakebite/MS\nsnake/DSGM\nsnakelike\nsnakeroot/M\nsnaky/TR\nsnapback/M\nsnapdragon/MS\nsnapped/U\nsnapper/SM\nsnappily\nsnappiness/SM\nsnapping/U\nsnappishness/SM\nsnappish/PY\nsnappy/PTR\nsnapshot/MS\nsnapshotted\nsnapshotting\nsnap/US\nsnare/DSRGM\nsnarer/M\nsnarf/JSGD\nsnarler/M\nsnarling/Y\nsnarl/UGSD\nsnarly/RT\nsnatch/DRSZG\nsnatcher/M\nsnazzily\nsnazzy/TR\nSnead/M\nsneaker/MD\nsneakily\nsneakiness/SM\nsneaking/Y\nsneak/RDGZS\nsneaky/PRT\nSneed/M\nsneerer/M\nsneer/GMRDJS\nsneering/Y\nsneeze/SRDG\nSnell/M\nsnicker/GMRD\nsnick/MRZ\nsnideness/M\nSnider/M\nsnide/YTSRP\nsniffer/M\nsniff/GZSRD\nsniffle/GDRS\nsniffler/M\nsniffles/M\nsnifter/MDSG\nsnigger's\nsniper/M\nsnipe/SM\nsnipped\nsnipper/SM\nsnippet/SM\nsnipping\nsnippy/RT\nsnip/SGDRZ\nsnitch/GDS\nsnit/SM\nsniveler/M\nsnivel/JSZGDR\nSn/M\nsnobbery/SM\nsnobbishness/S\nsnobbish/YP\nsnobby/RT\nsnob/MS\nSnodgrass/M\nsnood/SGDM\nsnooker/GMD\nsnook/SMRZ\nsnooper/M\nsnoop/SRDGZ\nSnoopy/M\nsnoopy/RT\nsnootily\nsnootiness/MS\nsnoot/SDMG\nsnooty/TRP\nsnooze/GSD\nsnore/DSRGZ\nsnorkel/ZGSRDM\nsnorter/M\nsnort/GSZRD\nsnot/MS\nsnotted\nsnottily\nsnottiness/SM\nsnotting\nsnotty/TRP\nsnout/SGDM\nsnowball/SDMG\nsnowbank/SM\nSnowbelt/SM\nsnowbird/SM\nsnowblower/S\nsnowboard/GZDRJS\nsnowbound\nsnowcapped\nsnowdrift/MS\nsnowdrop/MS\nsnowfall/MS\nsnowfield/MS\nsnowflake/MS\nsnow/GDMS\nsnowily\nsnowiness/MS\nSnow/M\nsnowman/M\nsnowmen\nsnowmobile/GMDRS\nsnowplough/M\nsnowploughs\nsnowplow/SMGD\nsnowshed\nsnowshoeing\nsnowshoe/MRS\nsnowshoer/M\nsnowstorm/MS\nsnowsuit/S\nsnowy/RTP\nsnubbed\nsnubber\nsnubbing\nsnub/SP\nsnuffbox/SM\nsnuffer/M\nsnuff/GZSYRD\nsnuffle/GDSR\nsnuffler/M\nsnuffly/RT\nsnugged\nsnugger\nsnuggest\nsnugging\nsnuggle/GDS\nsnuggly\nsnugness/MS\nsnug/SYP\nSnyder/M\nso\nSO\nsoaker/M\nsoak/GDRSJ\nsoapbox/DSMG\nsoapiness/S\nsoap/MDRGS\nsoapstone/MS\nsoapsud/S\nsoapy/RPT\nsoar/DRJSG\nsoarer/M\nsoaring/Y\nsobbed\nsobbing/Y\nsoberer/M\nsoberness/SM\nsober/PGTYRD\nsobriety/SIM\nsobriquet/MS\nsob/SZR\nSoc\nsoccer/MS\nsociabilities\nsociability/IM\nsociable/S\nsociably/IU\nsocialism/SM\nsocialistic\nsocialist/SM\nsocialite/SM\nsociality/M\nsocialization/SM\nsocialized/U\nsocializer/M\nsocialize/RSDG\nsocially/U\nsocial/SY\nsocietal/Y\nsociety/MS\nsocio\nsociobiology/M\nsociocultural/Y\nsociodemographic\nsocioeconomically\nsocioeconomic/S\nsociolinguistics/M\nsociological/MY\nsociologist/SM\nsociology/SM\nsociometric\nsociometry/M\nsociopath/M\nsociopaths\nsocket/SMDG\nsock/GDMS\nSocorro/M\nSocrates/M\nSocratic/S\nsoc/S\nsoda/SM\nsodded\nsodden/DYPSG\nsoddenness/M\nsodding\nSoddy/M\nsodium/MS\nsod/MS\nsodomite/MS\nsodomize/GDS\nSodom/M\nsodomy/SM\nsoever\nsofa/SM\nSofia/M\nSofie/M\nsoftball/MS\nsoftbound\nsoftener/M\nsoften/ZGRD\nsofthearted\nsoftie's\nsoftness/MS\nsoft/SPXTYNR\nsoftware/MS\nsoftwood/SM\nsofty/SM\nsoggily\nsogginess/S\nsoggy/RPT\nSoho/M\nsoign<67>\nsoiled/U\nsoil/SGMD\nsoir<69>e/SM\nsojourn/RDZGSM\nsolace/GMSRD\nsolacer/M\nsolaria\nsolarium/M\nsolar/S\nsolder/RDMSZG\nsoldier/MDYSG\nsoldiery/MS\nsold/RU\nsolecism/MS\nsoled/FA\nsolemness\nsolemnify/GSD\nsolemnity/MS\nsolemnization/SM\nsolemnize/GSD\nsolemnness/SM\nsolemn/PTRY\nsolenoid/MS\nsoler/F\nsoles/IFA\nsole/YSP\nsol/GSMDR\nsolicitation/S\nsolicited/U\nsolicitor/MS\nsolicitousness/S\nsolicitous/YP\nsolicit/SDG\nsolicitude/MS\nsolidarity/MS\nsolidi\nsolidification/M\nsolidify/NXSDG\nsolidity/S\nsolidness/SM\nsolid/STYRP\nsolidus/M\nsoliloquies\nsoliloquize/DSG\nsoliloquy/M\nsoling/NM\nsolipsism/MS\nsolipsist/S\nSolis/M\nsolitaire/SM\nsolitary/SP\nsolitude/SM\nSollie/M\nSolly/M\nSol/MY\nsolo/DMSG\nsoloist/SM\nSolomon/SM\nSolon/M\nSoloviev/M\nsolstice/SM\nsolubility/IMS\nsoluble/SI\nsolute/ENAXS\nsolute's\nsolution/AME\nsolvable/UI\nsolvating\nsolve/ABSRDZG\nsolved/EU\nsolvency/IMS\nsolvent/IS\nsolvently\nsolvent's\nsolver/MEA\nsolves/E\nsolving/E\nSolzhenitsyn/M\nSomalia/M\nSomalian/S\nSomali/MS\nsoma/M\nsomatic\nsomberness/SM\nsomber/PY\nsombre\nsombrero/SM\nsomebody'll\nsomebody/SM\nsomeday\nsomehow\nsomeone'll\nsomeone/SM\nsomeplace/M\nsomersault/DSGM\nSomerset/M\nsomerset/S\nsomersetted\nsomersetting\nSomerville/M\nsomething/S\nsometime/S\nsomeway/S\nsomewhat/S\nsomewhere/S\nsome/Z\nsommelier/SM\nSomme/M\nsomnambulism/SM\nsomnambulist/SM\nsomnolence/MS\nsomnolent/Y\nSomoza/M\nsonar/SM\nsonata/MS\nsonatina/SM\nSondheim/M\nSondra/M\nSonenberg/M\nsongbag\nsongbird/SM\nsongbook/S\nsongfest/MS\nsongfulness/M\nsongful/YP\nSonghai/M\nSonghua/M\nsong/MS\nsongster/MS\nsongstress/SM\nsongwriter/SM\nsongwriting\nSonia/M\nsonic/S\nSonja/M\nSon/M\nsonnet/MDSG\nSonnie/M\nSonni/M\nSonnnie/M\nSonny/M\nsonny/SM\nSonoma/M\nSonora/M\nsonority/S\nsonorousness/SM\nsonorous/PY\nson/SMY\nSontag/M\nsonuvabitch\nSonya/M\nSony/M\nsoonish\nsoon/TR\nsoothe\nsoother/M\nsooth/GZTYSRDMJ\nsoothingness/M\nsoothing/YP\nsooths\nsoothsayer/M\nsoothsay/JGZR\nsoot/MGDS\nsooty/RT\nSOP\nSophey/M\nSophia/SM\nSophie/M\nSophi/M\nsophism/SM\nsophister/M\nsophistical\nsophisticatedly\nsophisticated/U\nsophisticate/XNGDS\nsophistication/MU\nsophistic/S\nsophist/RMS\nsophistry/SM\nSophoclean\nSophocles/M\nsophomore/SM\nsophomoric\nSophronia/M\nsoporifically\nsoporific/SM\nsopped\nsopping/S\nsoppy/RT\nsoprano/SM\nsop/SM\nSopwith/M\nsorbet/SM\nSorbonne/M\nsorcerer/MS\nsorceress/S\nsorcery/MS\nSorcha/M\nsordidness/SM\nsordid/PY\nsorehead/SM\nsoreness/S\nSorensen/M\nSorenson/M\nsore/PYTGDRS\nsorghum/MS\nsorority/MS\nsorrel/SM\nSorrentine/M\nsorrily\nsorriness/SM\nsorrower/M\nsorrowfulness/SM\nsorrowful/YP\nsorrow/GRDMS\nsorry/PTSR\nsorta\nsortable\nsorted/U\nsorter/MS\nsort/FSAGD\nsortieing\nsortie/MSD\nsort's\nsos\nSOS\nSosa/M\nSosanna/M\nSoto/M\nsot/SM\nsottish\nsoubriquet's\nsouffl<66>/MS\nsough/DG\nsoughs\nsought/U\nsoulfulness/MS\nsoulful/YP\nsoulless/Y\nsoul/MDS\nsound/AUD\nsoundboard/MS\nsounders\nsounder's\nsounder/U\nsoundest\nsounding/AY\nsoundings\nsounding's\nsoundless/Y\nsoundly/U\nsoundness/UMS\nsoundproof/GSD\nsoundproofing/M\nsound's\nsounds/A\nsoundtrack/MS\nsoup<75>on/SM\nsoup/GMDS\nSouphanouvong/M\nsoupy/RT\nsource/ASDMG\nsourceless\nsourdough\nsourdoughs\nsourish\nsourness/MS\nsourpuss/MS\nsour/TYDRPSG\nSousa/M\nsousaphone/SM\nsous/DSG\nsouse\nsou/SMH\nSouthampton/M\nsouthbound\nsoutheastern\nsoutheaster/YM\nSoutheast/MS\nsoutheast/RZMS\nsoutheastward/S\nsoutherly/S\nsouther/MY\nsoutherner/M\nSoutherner/MS\nsouthernisms\nsouthernmost\nsouthern/PZSYR\nSouthey/M\nSouthfield/M\nsouthing/M\nsouthland/M\nSouth/M\nsouthpaw/MS\nsouth/RDMG\nsouths\nSouths\nsouthward/S\nsouthwestern\nsouthwester/YM\nSouthwest/MS\nsouthwest/RMSZ\nsouthwestward/S\nsouvenir/SM\nsou'wester\nsovereignty/MS\nsovereign/YMS\nsoviet/MS\nSoviet/S\nsow/ADGS\nsowbelly/M\nsowens/M\nsower/DS\nSoweto/M\nsown/A\nsox's\nsoybean/MS\nSoyinka/M\nsoy/MS\nSoyuz/M\nSpaatz/M\nspacecraft/MS\nspace/DSRGZMJ\nspaceflight/S\nspaceman/M\nspacemen\nspaceport/SM\nspacer/M\nspaceship/MS\nspacesuit/MS\nspacewalk/GSMD\nSpacewar/M\nspacewoman\nspacewomen\nspacey\nspacial\nspacier\nspaciest\nspaciness\nspacing/M\nspaciousness/SM\nspacious/PY\nSpackle\nspade/DSRGM\nspadeful/SM\nspader/M\nspadework/SM\nspadices\nspadix/M\nSpafford/M\nspaghetti/SM\nSpahn/M\nSpain/M\nspake\nSpalding/M\nSpam/M\nspa/MS\nSpan\nspandex/MS\nspandrels\nspangle/GMDS\nSpanglish/S\nSpaniard/SM\nspanielled\nspanielling\nspaniel/SM\nSpanish/M\nspanker/M\nspanking/M\nspank/SRDJG\nspan/MS\nspanned/U\nspanner/SM\nspanning\nSPARC/M\nSPARCstation/M\nspar/DRMGTS\nspareness/MS\nspare/PSY\nspareribs\nsparer/M\nsparing/UY\nsparker/M\nsparkle/DRSGZ\nsparkler/M\nSparkman/M\nSparks\nspark/SGMRD\nsparky/RT\nsparling/SM\nsparred\nsparrer\nsparring/U\nsparrow/MS\nsparseness/S\nsparse/YP\nsparsity/S\nspars/TR\nSpartacus/M\nSparta/M\nspartan\nSpartan/S\nspasm/GSDM\nspasmodic\nspasmodically\nspastic/S\nspate/SM\nspathe/MS\nspatiality/M\nspatial/Y\nspat/MS\nspatted\nspatter/DGS\nspatterdock/M\nspatting\nspatula/SM\nspavin/DMS\nspawner/M\nspawn/MRDSG\nspay/DGS\nSPCA\nspeakable/U\nspeakeasy/SM\nspeaker/M\nSpeaker's\nspeakership/M\nspeaking/U\nspeak/RBGZJS\nspearer/M\nspearfish/SDMG\nspearhead/GSDM\nspearmint/MS\nspear/MRDGS\nSpears\nspec'd\nspecialism/MS\nspecialist/MS\nspecialization/SM\nspecialized/U\nspecialize/GZDSR\nspecializing/U\nspecial/SRYP\nspecialty/MS\nspecie/MS\nspecif\nspecifiability\nspecifiable\nspecifiably\nspecifically\nspecification/SM\nspecificity/S\nspecific/SP\nspecified/U\nspecifier/SM\nspecifies\nspecify/AD\nspecifying\nspecimen/SM\nspec'ing\nspeciousness/SM\nspecious/YP\nspeck/GMDS\nspeckle/GMDS\nspec/SM\nspectacle/MSD\nspectacular/SY\nspectator/SM\nspecter/DMS\nspecter's/A\nspectralness/M\nspectral/YP\nspectra/M\nspectrogram/MS\nspectrographically\nspectrograph/M\nspectrography/M\nspectrometer/MS\nspectrometric\nspectrometry/M\nspectrophotometer/SM\nspectrophotometric\nspectrophotometry/M\nspectroscope/SM\nspectroscopic\nspectroscopically\nspectroscopy/SM\nspectrum/M\nspecularity\nspecular/Y\nspeculate/VNGSDX\nspeculation/M\nspeculative/Y\nspeculator/SM\nsped\nspeech/GMDS\nspeechlessness/SM\nspeechless/YP\nspeedboat/GSRM\nspeedboating/M\nspeeder/M\nspeedily\nspeediness/SM\nspeedometer/MS\nspeed/RMJGZS\nspeedster/SM\nspeedup/MS\nspeedway/SM\nspeedwell/MS\nspeedy/PTR\nspeer/M\nspeleological\nspeleologist/S\nspeleology/MS\nspellbinder/M\nspellbind/SRGZ\nspellbound\nspelldown/MS\nspelled/A\nspeller/M\nspelling/M\nspell/RDSJGZ\nspells/A\nspelunker/MS\nspelunking/S\nSpencerian\nSpencer/M\nSpence/RM\nspender/M\nspend/SBJRGZ\nspendthrift/MS\nSpenglerian\nSpengler/M\nSpense/MR\nSpenserian\nSpenser/M\nspent/U\nspermatophyte/M\nspermatozoa\nspermatozoon/M\nspermicidal\nspermicide/MS\nsperm/SM\nSperry/M\nspew/DRGZJS\nspewer/M\nSPF\nsphagnum/SM\nsphere/SDGM\nspherical/Y\nspheric/S\nspherics/M\nspheroidal/Y\nspheroid/SM\nspherule/MS\nsphincter/SM\nSphinx/M\nsphinx/MS\nSpica/M\nspic/DGM\nspicebush/M\nspice/SM\nspicily\nspiciness/SM\nspicule/MS\nspicy/PTR\nspider/SM\nspiderweb/S\nspiderwort/M\nspidery/TR\nSpiegel/M\nSpielberg/M\nspiel/GDMS\nspier/M\nspiffy/TDRSG\nspigot/MS\nspike/GMDSR\nSpike/M\nspiker/M\nspikiness/SM\nspiky/PTR\nspillage/SM\nSpillane/M\nspillover/SM\nspill/RDSG\nspillway/SM\nspinach/MS\nspinal/YS\nspindle/JGMDRS\nspindly/RT\nspinelessness/M\nspineless/YP\nspine/MS\nspinet/SM\nspininess/M\nspinnability/M\nspinnaker/SM\nspinneret/MS\nspinner/SM\nspinning/SM\nSpinoza/M\nspin/S\nspinsterhood/SM\nspinsterish\nspinster/MS\nspiny/PRT\nspiracle/SM\nspiraea's\nspiral/YDSG\nspire/AIDSGF\nspirea/MS\nspire's\nspiritedness/M\nspirited/PY\nspirit/GMDS\nspiritless\nspirits/I\nspiritualism/SM\nspiritualistic\nspiritualist/SM\nspirituality/SM\nspiritual/SYP\nspirituous\nspirochete/SM\nSpiro/M\nspiry/TR\nspitball/SM\nspite/CSDAG\nspitefuller\nspitefullest\nspitefulness/MS\nspiteful/PY\nspite's/A\nspitfire/SM\nspit/SGD\nspitted\nspitting\nspittle/SM\nspittoon/SM\nSpitz/M\nsplashdown/MS\nsplasher/M\nsplash/GZDRS\nsplashily\nsplashiness/MS\nsplashy/RTP\nsplat/SM\nsplatted\nsplatter/DSG\nsplatting\nsplayfeet\nsplayfoot/MD\nsplay/SDG\nspleen/SM\nsplendidness/M\nsplendid/YRPT\nsplendorous\nsplendor/SM\nsplenetic/S\nsplicer/M\nsplice/RSDGZJ\nspline/MSD\nsplinter/GMD\nsplintery\nsplint/SGZMDR\nsplits/M\nsplit/SM\nsplittable\nsplitter/MS\nsplitting/S\nsplodge/SM\nsplotch/MSDG\nsplotchy/RT\nsplurge/GMDS\nsplutterer/M\nsplutter/RDSG\nSp/M\nSpock/M\nspoilables\nspoilage/SM\nspoil/CSZGDR\nspoiled/U\nspoiler/MC\nspoilsport/SM\nSpokane/M\nspoke/DSG\nspoken/U\nspokeshave/MS\nspokesman/M\nspokesmen\nspokespeople\nspokesperson/S\nspokeswoman/M\nspokeswomen\nspoliation/MCS\nspongecake\nsponge/GMZRSD\nsponger/M\nsponginess/S\nspongy/TRP\nsponsor/DGMS\nsponsorship/S\nspontaneity/SM\nspontaneousness/M\nspontaneous/PY\nspoof/SMDG\nspookiness/MS\nspook/SMDG\nspooky/PRT\nspool/SRDMGZ\nspoonbill/SM\nspoonerism/SM\nspoonful/MS\nspoon/GSMD\nspoor/GSMD\nsporadically\nsporadic/Y\nspore/DSGM\nsporran/MS\nsportiness/SM\nsporting/Y\nsportiveness/M\nsportive/PY\nsportscast/RSGZM\nsportsmanlike/U\nsportsman/MY\nsportsmanship/MS\nsportsmen\nsportswear/M\nsportswoman/M\nsportswomen\nsportswriter/S\nsport/VGSRDM\nsporty/PRT\nSposato/M\nspotlessness/MS\nspotless/YP\nspotlight/GDMS\nspotlit\nspot/MSC\nspotted/U\nspotter/MS\nspottily\nspottiness/SM\nspotting/M\nspotty/RTP\nspousal/MS\nspouse/GMSD\nspouter/M\nspout/SGRD\nsprain/SGD\nsprang/S\nsprat/SM\nsprawl/GSD\nsprayed/UA\nsprayer/M\nspray/GZSRDM\nsprays/A\nspreadeagled\nspreader/M\nspread/RSJGZB\nspreadsheet/S\nspreeing\nspree/MDS\nsprigged\nsprigging\nsprightliness/MS\nsprightly/PRT\nsprig/MS\nspringboard/MS\nspringbok/MS\nspringeing\nspringer/M\nSpringfield/M\nspringily\nspringiness/SM\nspringing/M\nspringlike\nspring/SGZR\nSpringsteen/M\nspringtime/MS\nspringy/TRP\nsprinkle/DRSJZG\nsprinkler/DM\nsprinkling/M\nSprint/M\nsprint/SGZMDR\nsprite/SM\nspritz/GZDSR\nsprocket/DMGS\nsprocketed/U\nSproul/M\nsprout/GSD\nspruce/GMTYRSDP\nspruceness/SM\nsprue/M\nsprung/U\nspryness/S\nspry/TRY\nSPSS\nspudded\nspudding\nspud/MS\nSpuds/M\nspume/DSGM\nspumone's\nspumoni/S\nspumy/TR\nspun\nspunk/GSMD\nspunky/SRT\nspurge/MS\nspuriousness/SM\nspurious/PY\nspur/MS\nspurn/RDSG\nspurred\nspurring\nspurt/SGD\nsputa\nSputnik\nsputnik/MS\nsputter/DRGS\nsputum/M\nspy/DRSGM\nspyglass/MS\nsq\nsqq\nsqrt\nsquabbed\nsquabber\nsquabbest\nsquabbing\nsquabbler/M\nsquabble/ZGDRS\nsquab/SM\nsquadded\nsquadding\nsquadron/MDGS\nsquad/SM\nsqualidness/SM\nsqualid/PRYT\nsqualler/M\nsquall/GMRDS\nsqually/RT\nsqualor/SM\nsquamous/Y\nsquander/GSRD\nSquanto\nsquare/GMTYRSDP\nsquareness/SM\nsquarer/M\nSquaresville/M\nsquarish\nsquash/GSRD\nsquashiness/M\nsquashy/RTP\nsquatness/MS\nsquat/SPY\nsquatted\nsquatter/SMDG\nsquattest\nsquatting\nsquawker/M\nsquawk/GRDMZS\nsquaw/SM\nsqueaker/M\nsqueakily\nsqueakiness/S\nsqueak/RDMGZS\nsqueaky/RPT\nsquealer/M\nsqueal/MRDSGZ\nsqueamishness/SM\nsqueamish/YP\nsqueegee/DSM\nsqueegeeing\nsqueeze/GZSRDB\nsqueezer/M\nsquelcher/M\nsquelch/GDRS\nsquelchy/RT\nsquibbed\nSquibb/GM\nsquibbing\nSquibbing/M\nsquib/SM\nsquidded\nsquidding\nsquid/SM\nsquiggle/MGDS\nsquiggly/RT\nsquinter/M\nsquint/GTSRD\nsquinting/Y\nsquirehood\nsquire/SDGM\nsquirm/SGD\nsquirmy/TR\nsquirrel/SGYDM\nsquirter/M\nsquirt/GSRD\nsquish/GSD\nsquishy/RTP\nSr\nSrinagar/M\nSRO\nS's\nSS\nSSA\nSSE\nssh\ns's/KI\nSSS\nSST\nSSW\nST\nstabbed\nstabber/S\nstabbing/S\nstability/ISM\nstabilizability\nstabilization/CS\nstabilization's\nstabilize/CGSD\nstabilizer/MS\nstableman/M\nstablemate\nstablemen\nstableness/UM\nstable/RSDGMTP\nstabler/U\nstable's/F\nstables/F\nstablest/U\nstabling/M\nstably/U\nstab/YS\nstaccato/S\nStacee/M\nStace/M\nStacey/M\nStacia/M\nStacie/M\nStaci/M\nstackable\nstacker/M\nstack's\nstack/USDG\nStacy/M\nstadias\nstadia's\nstadium/MS\nStael/M\nStafani/M\nstaff/ADSG\nStaffard/M\nstaffer/MS\nStafford/M\nStaffordshire/M\nstaffroom\nstaff's\nStaford/M\nstag/DRMJSGZ\nstagecoach/MS\nstagecraft/MS\nstagehand/MS\nstager/M\nstage/SM\nstagestruck\nstagflation/SM\nstagged\nstaggerer/M\nstagger/GSJDR\nstaggering/Y\nstaggers/M\nstagging\nstaginess/M\nstaging/M\nstagnancy/SM\nstagnant/Y\nstagnate/NGDSX\nstagnation/M\nstagy/PTR\nStahl/M\nstaidness/MS\nstaid/YRTP\nstained/U\nstainer/M\nstainless/YS\nstain/SGRD\nstaircase/SM\nstair/MS\nstairway/SM\nstairwell/MS\nstake/DSGM\nstakeholder/S\nstakeout/SM\nstalactite/SM\nstalag/M\nstalagmite/SM\nstalemate/SDMG\nstaleness/MS\nstale/PGYTDSR\nStaley/M\nStalingrad/M\nStalinist\nStalin/SM\nstalker/M\nstalk/MRDSGZJ\nstall/DMSJG\nstalled/I\nstallholders\nstallion/SM\nStallone/M\nstalls/I\nstalwartness/M\nstalwart/PYS\nSta/M\nstamen/MS\nStamford/M\nstamina/SM\nstaminate\nstammer/DRSZG\nstammerer/M\nstammering/Y\nstampede/MGDRS\nstampeder/M\nstamped/U\nstamper/M\nstamp/RDSGZJ\nstance/MIS\nstancher/M\nstanch/GDRST\nstanchion/SGMD\nstandalone\nstandardization/AMS\nstandardized/U\nstandardize/GZDSR\nstandardizer/M\nstandardizes/A\nstandard/YMS\nstandby\nstandbys\nstandee/MS\nStandford/M\nstanding/M\nStandish/M\nstandoffish\nstandoff/SM\nstandout/MS\nstandpipe/MS\nstandpoint/SM\nstand/SJGZR\nstandstill/SM\nStanfield/M\nStanford/M\nStanislas/M\nStanislaus/M\nStanislavsky/M\nStanislaw/M\nstank/S\nStanleigh/M\nStanley/M\nStanly/M\nstannic\nstannous\nStanton/M\nStanwood/M\nStan/YMS\nstanza/MS\nstaph/M\nstaphs\nstaphylococcal\nstaphylococci\nstaphylococcus/M\nstapled/U\nstapler/M\nStapleton/M\nstaple/ZRSDGM\nstarboard/SDMG\nstarchily\nstarchiness/MS\nstarch/MDSG\nstarchy/TRP\nstardom/MS\nstar/DRMGZS\nstardust/MS\nstare/S\nstarfish/SM\nStargate/M\nstargaze/ZGDRS\nstaring/U\nStarkey/M\nStark/M\nstarkness/MS\nstark/SPGTYRD\nStarla/M\nStarlene/M\nstarless\nstarlet/MS\nstarlight/MS\nstarling/MS\nStarlin/M\nstarlit\nStar/M\nstarred\nstarring\nStarr/M\nstarry/TR\nstarship\nstarstruck\nstart/ASGDR\nstarter/MS\nstartle/GDS\nstartling/PY\nstartup/SM\nstarvation/MS\nstarveling/M\nstarver/M\nstarve/RSDG\nstash/GSD\nstasis/M\nstat/DRSGV\nstatecraft/MS\nstated/U\nstatehood/MS\nstatehouse/S\nStatehouse's\nstate/IGASD\nstatelessness/MS\nstateless/P\nstateliness/MS\nstately/PRT\nstatement/MSA\nStaten/M\nstater/M\nstateroom/SM\nstateside\nstate's/K\nstates/K\nstatesmanlike\nstatesman/MY\nstatesmanship/SM\nstatesmen\nstateswoman\nstateswomen\nstatewide\nstatical/Y\nstatic/S\nstatics/M\nstationarity\nstationary/S\nstationer/M\nstationery/MS\nstationmaster/M\nstation/SZGMDR\nstatistical/Y\nstatistician/MS\nstatistic/MS\nStatler/M\nstator/SM\nstatuary/SM\nstatue/MSD\nstatuesque/YP\nstatuette/MS\nstature/MS\nstatus/SM\nstatute/SM\nstatutorily\nstatutory/P\nStauffer/M\nstaunchness/S\nstaunch/PDRSYTG\nstave/DGM\nStavro/MS\nstay/DRGZS\nstayer/M\nstd\nSTD\nstdio\nsteadfastness/MS\nsteadfast/PY\nsteadily/U\nsteadiness's\nsteadiness/US\nsteading/M\nstead/SGDM\nsteady/DRSUTGP\nsteakhouse/SM\nsteak/SM\nstealer/M\nstealing/M\nsteal/SRHG\nstealthily\nstealthiness/MS\nstealth/M\nstealths\nstealthy/PTR\nsteamboat/MS\nsteamer/MDG\nsteamfitter/S\nsteamfitting/S\nsteamily\nsteaminess/SM\nsteamroller/DMG\nsteamroll/GZRDS\nsteam/SGZRDMJ\nsteamship/SM\nsteamy/RSTP\nStearne/M\nStearn/SM\nsteed/SM\nSteele/M\nsteeliness/SM\nsteelmaker/M\nsteel/SDMGZ\nsteelworker/M\nsteelwork/ZSMR\nsteelyard/MS\nsteely/TPRS\nSteen/M\nsteepen/GD\nsteeper/M\nsteeplebush/M\nsteeplechase/GMSD\nsteeplejack/MS\nsteeple/MS\nsteepness/S\nsteep/SYRNDPGTX\nsteerage/MS\nsteerer/M\nsteer/SGBRDJ\nsteersman/M\nsteersmen\nsteeves\nStefa/M\nStefania/M\nStefanie/M\nStefan/M\nStefano/M\nSteffane/M\nSteffen/M\nSteffie/M\nSteffi/M\nstegosauri\nstegosaurus/S\nSteinbeck/SM\nSteinberg/M\nSteinem/M\nSteiner/M\nSteinmetz/M\nStein/RM\nstein/SGZMRD\nSteinway/M\nStella/M\nstellar\nstellated\nSte/M\nstemless\nstemmed/U\nstemming\nstem/MS\nstemware/MS\nstench/GMDS\nstenciler/M\nstencil/GDRMSZ\nstencillings\nStendhal/M\nStendler/M\nStengel/M\nstenographer/SM\nstenographic\nstenography/SM\nsteno/SM\nstenotype/M\nstentorian\nstepbrother/MS\nstepchild/M\nstepchildren\nstepdaughter/MS\nstepfather/SM\nStepha/M\nStephana/M\nStephanie/M\nStephani/M\nStephan/M\nStephannie/M\nStephanus/M\nStephenie/M\nStephen/MS\nStephenson/M\nStephie/M\nStephi/M\nStephine/M\nstepladder/SM\nstep/MIS\nstepmother/SM\nstepparent/SM\nstepper/M\nsteppe/RSDGMZ\nsteppingstone/S\nstepsister/SM\nstepson/SM\nstepwise\nstereographic\nstereography/M\nstereo/GSDM\nstereophonic\nstereoscope/MS\nstereoscopic\nstereoscopically\nstereoscopy/M\nstereotype/GMZDRS\nstereotypic\nstereotypical/Y\nsterile\nsterility/SM\nsterilization/SM\nsterilized/U\nsterilize/RSDGZ\nsterilizes/A\nSterling/M\nsterling/MPYS\nsterlingness/M\nsternal\nSternberg/M\nSterne/M\nStern/M\nsternness/S\nSterno\nstern/SYRDPGT\nsternum/SM\nsteroidal\nsteroid/MS\nstertorous\nStesha/M\nstethoscope/SM\nstet/MS\nstetson/MS\nStetson/SM\nstetted\nstetting\nSteuben/M\nStevana/M\nstevedore/GMSD\nSteve/M\nStevena/M\nSteven/MS\nStevenson/M\nStevie/M\nStevy/M\nsteward/DMSG\nstewardess/SM\nSteward/M\nstewardship/MS\nStewart/M\nstew/GDMS\nst/GBJ\nsticker/M\nstickily\nstickiness/SM\nstickleback/MS\nstickle/GZDR\nstickler/M\nstick/MRDSGZ\nstickpin/SM\nstickup/SM\nsticky/GPTDRS\nStieglitz/M\nstiffen/JZRDG\nstiff/GTXPSYRND\nstiffness/MS\nstifle/GJRSD\nstifler/M\nstifling/Y\nstigma/MS\nstigmata\nstigmatic/S\nstigmatization/C\nstigmatizations\nstigmatization's\nstigmatize/DSG\nstigmatized/U\nstile/GMDS\nstiletto/MDSG\nstillbirth/M\nstillbirths\nstillborn/S\nstiller/MI\nstillest\nStillman/M\nStillmann/M\nstillness/MS\nstill/RDIGS\nStillwell/M\nstilted/PY\nstilt/GDMS\nStilton/MS\nStimson/M\nstimulant/MS\nstimulated/U\nstimulate/SDVGNX\nstimulation/M\nstimulative/S\nstimulator/M\nstimulatory\nstimuli/M\nstimulus/MS\nStine/M\nstinger/M\nsting/GZR\nstingily\nstinginess/MS\nstinging/Y\nstingray/MS\nstingy/RTP\nstinkbug/S\nstinker/M\nstink/GZRJS\nstinking/Y\nstinkpot/M\nStinky/M\nstinky/RT\nstinter/M\nstinting/U\nstint/JGRDMS\nstipendiary\nstipend/MS\nstipple/JDRSG\nstippler/M\nstipulate/XNGSD\nstipulation/M\nStirling/M\nstirred/U\nstirrer/SM\nstirring/YS\nstirrup/SM\nstir/S\nstitch/ASDG\nstitcher/M\nstitchery/S\nstitching/MS\nstitch's\nSt/M\nstoat/SM\nstochastic\nstochastically\nstochasticity\nstockade/SDMG\nstockbreeder/SM\nstockbroker/MS\nstockbroking/S\nstocker/SM\nStockhausen/M\nstockholder/SM\nStockholm/M\nstockily\nstockiness/SM\nstockinet's\nstockinette/S\nstocking/MDS\nstockist/MS\nstockpile/GRSD\nstockpiler/M\nstockpot/MS\nstockroom/MS\nstock's\nstock/SGAD\nstocktaking/MS\nStockton/M\nstockyard/SM\nstocky/PRT\nStoddard/M\nstodge/M\nstodgily\nstodginess/S\nstodgy/TRP\nstogy/SM\nstoical/Y\nstoichiometric\nstoichiometry/M\nstoicism/SM\nStoicism/SM\nstoic/MS\nStoic/MS\nstoke/DSRGZ\nstoker/M\nstokes/M\nStokes/M\nSTOL\nstole/MDS\nstolen\nstolidity/S\nstolidness/S\nstolid/PTYR\nstolon/SM\nstomachache/MS\nstomacher/M\nstomach/RSDMZG\nstomachs\nstomp/DSG\nstonecutter/SM\nstone/DSRGM\nStonehenge/M\nstoneless\nStone/M\nstonemason/MS\nstoner/M\nstonewall/GDS\nstoneware/MS\nstonewashed\nstonework/SM\nstonewort/M\nstonily\nstoniness/MS\nstony/TPR\nstood\nstooge/SDGM\nstool/SDMG\nstoop/SDG\nstopcock/MS\nstopgap/SM\nstoplight/SM\nstopover/MS\nstoppable/U\nstoppage/MS\nStoppard/M\nstopped/U\nstopper/GMDS\nstopping/M\nstopple/GDSM\nstop's\nstops/M\nstop/US\nstopwatch/SM\nstorage/SM\nstore/ADSRG\nstorefront/SM\nstorehouse/MS\nstorekeeper/M\nstorekeep/ZR\nstoreroom/SM\nstore's\nstork/SM\nstormbound\nstormer/M\nStormie/M\nstormily\nStormi/M\nstorminess/S\nStorm/M\nstorm/SRDMGZ\nstormtroopers\nStormy/M\nstormy/PTR\nstoryboard/MDSG\nstorybook/MS\nstory/GSDM\nstoryline\nstoryteller/SM\nstorytelling/MS\nStouffer/M\nstoup/SM\nstouten/DG\nstouthearted\nStout/M\nstoutness/MS\nstout/STYRNP\nstove/DSRGM\nstovepipe/SM\nstover/M\nstowage/SM\nstowaway/MS\nStowe/M\nstow/GDS\nStrabo/M\nstraddler/M\nstraddle/ZDRSG\nStradivari/SM\nStradivarius/M\nstrafe/GRSD\nstrafer/M\nstraggle/GDRSZ\nstraggly/RT\nstraightaway/S\nstraightedge/MS\nstraightener/M\nstraighten/ZGDR\nstraightforwardness/MS\nstraightforward/SYP\nstraightjacket's\nstraightness/MS\nstraight/RNDYSTXGP\nstraightway/S\nstrain/ASGZDR\nstrained/UF\nstrainer/MA\nstraining/F\nstrains/F\nstraiten/DG\nstraitjacket/GDMS\nstraitlaced\nstraitness/M\nstrait/XTPSMGYDNR\nstranded/P\nstrand/SDRG\nstrangeness/SM\nstrange/PYZTR\nstranger/GMD\nstranglehold/MS\nstrangle/JDRSZG\nstrangles/M\nstrangulate/NGSDX\nstrangulation/M\nstrapless/S\nstrapped/U\nstrapping/S\nstrap's\nstrap/US\nStrasbourg/M\nstratagem/SM\nstrata/MS\nstrategical/Y\nstrategic/S\nstrategics/M\nstrategist/SM\nstrategy/SM\nStratford/M\nstrati\nstratification/M\nstratified/U\nstratify/NSDGX\nstratigraphic\nstratigraphical\nstratigraphy/M\nstratosphere/SM\nstratospheric\nstratospherically\nstratum/M\nstratus/M\nStrauss\nStravinsky/M\nstrawberry/SM\nstrawflower/SM\nstraw/SMDG\nstrayer/M\nstray/GSRDM\nstreak/DRMSGZ\nstreaker/M\nstreaky/TR\nstreamed/U\nstreamer/M\nstream/GZSMDR\nstreaming/M\nstreamline/SRDGM\nstreetcar/MS\nstreetlight/SM\nstreet/SMZ\nstreetwalker/MS\nstreetwise\nStreisand/M\nstrengthen/AGDS\nstrengthener/MS\nstrength/NMX\nstrengths\nstrenuousness/SM\nstrenuous/PY\nstrep/MS\nstreptococcal\nstreptococci\nstreptococcus/M\nstreptomycin/SM\nstress/DSMG\nstressed/U\nstressful/YP\nstretchability/M\nstretchable/U\nstretch/BDRSZG\nstretcher/DMG\nstretchy/TRP\nstrew/GDHS\nstrewn\nstriae\nstria/M\nstriate/DSXGN\nstriated/U\nstriation/M\nstricken\nStrickland/M\nstrict/AF\nstricter\nstrictest\nstrictly\nstrictness/S\nstricture/SM\nstridden\nstridency/S\nstrident/Y\nstrider/M\nstride/RSGM\nstrife/SM\nstrikebreaker/M\nstrikebreaking/M\nstrikebreak/ZGR\nstrikeout/S\nstriker/M\nstrike/RSGZJ\nstriking/Y\nStrindberg/M\nstringed\nstringency/S\nstringent/Y\nstringer/MS\nstringiness/SM\nstringing/M\nstring's\nstring/SAG\nstringy/RTP\nstriper/M\nstripe/SM\nstrip/GRDMS\nstripling/M\nstripped/U\nstripper/MS\nstripping\nstripteaser/M\nstriptease/SRDGZM\nstripy/RT\nstrive/JRSG\nstriven\nstriver/M\nstrobe/SDGM\nstroboscope/SM\nstroboscopic\nstrode\nstroke/ZRSDGM\nstroking/M\nstroller/M\nstroll/GZSDR\nStromberg/M\nStromboli/M\nStrom/M\nstrongbow\nstrongbox/MS\nStrongheart/M\nstronghold/SM\nstrongish\nStrong/M\nstrongman/M\nstrongmen\nstrongroom/MS\nstrong/YRT\nstrontium/SM\nstrophe/MS\nstrophic\nstropped\nstropping\nstrop/SM\nstrove\nstruck\nstructuralism/M\nstructuralist/SM\nstructural/Y\nstructured/AU\nstructureless\nstructures/A\nstructure/SRDMG\nstructuring/A\nstrudel/MS\nstruggle/GDRS\nstruggler/M\nstrummed\nstrumming\nstrumpet/GSDM\nstrum/S\nstrung/UA\nstrut/S\nstrutted\nstrutter/M\nstrutting\nstrychnine/MS\nStuart/MS\nstubbed/M\nstubbing\nStubblefield/MS\nstubble/SM\nstubbly/RT\nstubbornness/SM\nstubborn/SGTYRDP\nstubby/SRT\nstub/MS\nstuccoes\nstucco/GDM\nstuck/U\nstudbook/SM\nstudded\nstudding/SM\nStudebaker/M\nstudentship/MS\nstudent/SM\nstudiedness/M\nstudied/PY\nstudier/SM\nstudio/MS\nstudiousness/SM\nstudious/PY\nstud/MS\nstudy/AGDS\nstuffily\nstuffiness/SM\nstuffing/M\nstuff/JGSRD\nstuffy/TRP\nstultify/NXGSD\nStu/M\nstumble/GZDSR\nstumbling/Y\nstumpage/M\nstumper/M\nstump/RDMSG\nstumpy/RT\nstung\nstunk\nstunned\nstunner/M\nstunning/Y\nstun/S\nstunted/P\nstunt/GSDM\nstupefaction/SM\nstupefy/DSG\nstupendousness/M\nstupendous/PY\nstupidity/SM\nstupidness/M\nstupid/PTYRS\nstupor/MS\nsturdily\nsturdiness/SM\nsturdy/SRPT\nsturgeon/SM\nSturm/M\nstutter/DRSZG\nStuttgart/M\nStuyvesant/M\nsty/DSGM\nStygian\nstyled/A\nstyle/GZMDSR\nstyles/A\nstyli\nstyling/A\nstylishness/S\nstylish/PY\nstylistically\nstylistic/S\nstylist/MS\nstylites\nstylization/MS\nstylize/DSG\nstylos\nstylus/SM\nstymieing\nstymie/SD\nstymy's\nstyptic/S\nstyrene/MS\nStyrofoam/S\nStyx/M\nsuable\nSuarez/M\nsuasion/EMS\nsuaveness/S\nsuave/PRYT\nsuavity/SM\nsubaltern/SM\nsubarctic/S\nsubareas\nSubaru/M\nsubassembly/M\nsubatomic/S\nsubbasement/SM\nsubbed\nsubbing\nsubbranch/S\nsubcaste/M\nsubcategorizing\nsubcategory/SM\nsubchain\nsubclassifications\nsubclass/MS\nsubclauses\nsubcommand/S\nsubcommittee/SM\nsubcompact/S\nsubcomponent/MS\nsubcomputation/MS\nsubconcept\nsubconsciousness/SM\nsubconscious/PSY\nsubconstituent\nsubcontinental\nsubcontinent/MS\nsubcontractor/SM\nsubcontract/SMDG\nsubcultural\nsubculture/GMDS\nsubcutaneous/Y\nsubdirectory/S\nsubdistrict/M\nsubdivide/SRDG\nsubdivision/SM\nsubdued/Y\nsubdue/GRSD\nsubduer/M\nsubexpression/MS\nsubfamily/SM\nsubfield/MS\nsubfile/SM\nsubfreezing\nsubgoal/SM\nsubgraph\nsubgraphs\nsubgroup/SGM\nsubharmonic/S\nsubheading/M\nsubhead/MGJS\nsubhuman/S\nsubindex/M\nsubinterval/MS\nsubj\nsubject/GVDMS\nsubjection/SM\nsubjectiveness/M\nsubjective/PSY\nsubjectivist/S\nsubjectivity/SM\nsubjoin/DSG\nsubjugate/NGXSD\nsubjugation/M\nsubjunctive/S\nsublayer\nsublease/DSMG\nsublet/S\nsubletting\nsublimate/GNSDX\nsublimation/M\nsublime/GRSDTYP\nsublimeness/M\nsublimer/M\nsubliminal/Y\nsublimity/SM\nsublist/SM\nsubliterary\nsublunary\nsubmachine\nsubmarginal\nsubmarine/MZGSRD\nsubmariner/M\nsubmerge/DSG\nsubmergence/SM\nsubmerse/XNGDS\nsubmersible/S\nsubmersion/M\nsubmicroscopic\nsubmission/SAM\nsubmissiveness/MS\nsubmissive/PY\nsubmit/SA\nsubmittable\nsubmittal\nsubmitted/A\nsubmitter/S\nsubmitting/A\nsubmode/S\nsubmodule/MS\nsub/MS\nsubnational\nsubnet/SM\nsubnetwork/SM\nsubnormal/SY\nsuboptimal\nsuborbital\nsuborder/MS\nsubordinately/I\nsubordinates/I\nsubordinate/YVNGXPSD\nsubordination/IMS\nsubordinator\nsubornation/SM\nsuborn/GSD\nsubpage\nsubparagraph/M\nsubpart/MS\nsubplot/MS\nsubpoena/GSDM\nsubpopulation/MS\nsubproblem/SM\nsubprocess/SM\nsubprofessional/S\nsubprogram/SM\nsubproject\nsubproof/SM\nsubquestion/MS\nsubrange/SM\nsubregional/Y\nsubregion/MS\nsubrogation/M\nsubroutine/SM\nsubsample/MS\nsubschema/MS\nsubscribe/ASDG\nsubscriber/SM\nsubscripted/U\nsubscription/MS\nsubscript/SGD\nsubsection/SM\nsubsegment/SM\nsubsentence\nsubsequence/MS\nsubsequent/SYP\nsubservience/SM\nsubservient/SY\nsubset/MS\nsubsidence/MS\nsubside/SDG\nsubsidiarity\nsubsidiary/MS\nsubsidization/MS\nsubsidized/U\nsubsidizer/M\nsubsidize/ZRSDG\nsubsidy/MS\nsubsistence/MS\nsubsistent\nsubsist/SGD\nsubsocietal\nsubsoil/DRMSG\nsubsonic\nsubspace/MS\nsubspecies/M\nsubstance/MS\nsubstandard\nsubstantially/IU\nsubstantialness/M\nsubstantial/PYS\nsubstantiated/U\nsubstantiate/VGNSDX\nsubstantiation/MFS\nsubstantiveness/M\nsubstantive/PSYM\nsubstantivity\nsubstation/MS\nsubsterilization\nsubstitutability\nsubstituted/U\nsubstitute/NGVBXDRS\nsubstitutionary\nsubstitution/M\nsubstitutive/Y\nsubstrata\nsubstrate/MS\nsubstratum/M\nsubstring/S\nsubstructure/SM\nsubsume/SDG\nsubsurface/S\nsubsystem/MS\nsubtable/S\nsubtask/SM\nsubteen/SM\nsubtenancy/MS\nsubtenant/SM\nsubtend/DS\nsubterfuge/SM\nsubterranean/SY\nsubtest\nsubtext/SM\nsubtitle/DSMG\nsubtleness/M\nsubtle/RPT\nsubtlety/MS\nsubtly/U\nsubtopic/SM\nsubtotal/GSDM\nsubtracter/M\nsubtraction/MS\nsubtract/SRDZVG\nsubtrahend/SM\nsubtree/SM\nsubtropical\nsubtropic/S\nsubtype/MS\nsubunit/SM\nsuburbanite/MS\nsuburbanization/MS\nsuburbanized\nsuburbanizing\nsuburban/S\nsuburbia/SM\nsuburb/MS\nsubvention/MS\nsubversion/SM\nsubversiveness/MS\nsubversive/SPY\nsubverter/M\nsubvert/SGDR\nsubway/MDGS\nsubzero\nsucceeder/M\nsucceed/GDRS\nsuccessfulness/M\nsuccessful/UY\nsuccession/SM\nsuccessiveness/M\nsuccessive/YP\nsuccess/MSV\nsuccessor/MS\nsuccessorship\nsuccinctness/SM\nsuccinct/RYPT\nsuccored/U\nsuccorer/M\nsuccor/SGZRDM\nsuccotash/SM\nsuccubus/M\nsucculence/SM\nsucculency/MS\nsucculent/S\nsuccumb/SDG\nsuch\nsuchlike\nsucker/DMG\nsuck/GZSDRB\nsuckle/SDJG\nsuckling/M\nSucre/M\nsucrose/MS\nsuction/SMGD\nSudanese/M\nSudanic/M\nSudan/M\nsuddenness/SM\nsudden/YPS\nSudetenland/M\nsud/S\nsuds/DSRG\nsudsy/TR\nsued/DG\nsuede/SM\nSuellen/M\nSue/M\nsuer/M\nsuet/MS\nSuetonius/M\nsuety\nsue/ZGDRS\nSuez/M\nsufferance/SM\nsufferer/M\nsuffering/M\nsuffer/SJRDGZ\nsuffice/GRSD\nsufficiency/SIM\nsufficient/IY\nsuffixation/S\nsuffixed/U\nsuffix/GMRSD\nsuffocate/XSDVGN\nsuffocating/Y\nSuffolk/M\nsuffragan/S\nsuffrage/MS\nsuffragette/MS\nsuffragist/SM\nsuffuse/VNGSDX\nsuffusion/M\nSufi/M\nSufism/M\nsugarcane/S\nsugarcoat/GDS\nsugarless\nsugarplum/MS\nsugar/SJGMD\nsugary/TR\nsuggest/DRZGVS\nsuggester/M\nsuggestibility/SM\nsuggestible\nsuggestion/MS\nsuggestiveness/MS\nsuggestive/PY\nsugillate\nSuharto/M\nsuicidal/Y\nsuicide/GSDM\nSui/M\nsuitability/SU\nsuitableness/S\nsuitable/P\nsuitably/U\nsuitcase/MS\nsuited/U\nsuite/SM\nsuiting/M\nsuit/MDGZBJS\nsuitor/SM\nSukarno/M\nSukey/M\nSuki/M\nsukiyaki/SM\nSukkoth's\nSukkot/S\nSula/M\nSulawesi/M\nSuleiman/M\nsulfaquinoxaline\nsulfa/S\nsulfate/MSDG\nsulfide/S\nsulfite/M\nsulfonamide/SM\nsulfur/DMSG\nsulfuric\nsulfurousness/M\nsulfurous/YP\nsulk/GDS\nsulkily\nsulkiness/S\nsulky/RSPT\nSulla/M\nsullenness/MS\nsullen/TYRP\nsullied/U\nSullivan/M\nsully/GSD\nSully/M\nsulphate/SM\nsulphide/MS\nsulphuric\nsultana/SM\nsultanate/MS\nsultan/SM\nsultrily\nsultriness/SM\nsultry/PRT\nSulzberger/M\nsumach's\nsumac/SM\nSumatra/M\nSumatran/S\nsumer/F\nSumeria/M\nSumerian/M\nsummability/M\nsummable\nsummand/MS\nsummarily\nsummarization/MS\nsummarized/U\nsummarize/GSRDZ\nsummarizer/M\nsummary/MS\nsummation/FMS\nsummed\nSummerdale/M\nsummerhouse/MS\nsummer/SGDM\nSummer/SM\nsummertime/MS\nsummery/TR\nsumming\nsummit/GMDS\nsummitry/MS\nsummoner/M\nsummon/JSRDGZ\nsummons/MSDG\nsum/MRS\nSumner/M\nsumo/SM\nsump/SM\nsumptuousness/SM\nsumptuous/PY\nSumter/M\nSun\nsunbaked\nsunbathe\nsunbather/M\nsunbathing/M\nsunbaths\nsunbath/ZRSDG\nsunbeam/MS\nSunbelt/M\nsunblock/S\nsunbonnet/MS\nsunburn/GSMD\nsunburst/MS\nsuncream\nsundae/MS\nSundanese/M\nSundas\nSunday/MS\nsunder/SDG\nsundial/MS\nsundowner/M\nsundown/MRDSZG\nsundris\nsundry/S\nsunfish/SM\nsunflower/MS\nsunglass/MS\nSung/M\nsung/U\nsunk/SN\nsunlamp/S\nsunless\nsunlight/MS\nsunlit\nsun/MS\nsunned\nSunni/MS\nsunniness/SM\nsunning\nSunnite/SM\nSunny/M\nsunny/RSTP\nSunnyvale/M\nsunrise/GMS\nsunroof/S\nsunscreen/S\nsunset/MS\nsunsetting\nsunshade/MS\nSunshine/M\nsunshine/MS\nsunshiny\nsunspot/SM\nsunstroke/MS\nsuntanned\nsuntanning\nsuntan/SM\nsunup/MS\nsuperabundance/MS\nsuperabundant\nsuperannuate/GNXSD\nsuperannuation/M\nsuperbness/M\nsuperb/YRPT\nsupercargoes\nsupercargo/M\nsupercharger/M\nsupercharge/SRDZG\nsuperciliousness/SM\nsupercilious/PY\nsupercity/S\nsuperclass/M\nsupercomputer/MS\nsupercomputing\nsuperconcept\nsuperconducting\nsuperconductivity/SM\nsuperconductor/SM\nsupercooled\nsupercooling\nsupercritical\nsuperdense\nsuper/DG\nsuperego/SM\nsupererogation/MS\nsupererogatory\nsuperficiality/S\nsuperficial/SPY\nsuperfine\nsuperfix/M\nsuperfluity/MS\nsuperfluousness/S\nsuperfluous/YP\nsuperheat/D\nsuperheroes\nsuperhero/SM\nsuperhighway/MS\nsuperhumanness/M\nsuperhuman/YP\nsuperimpose/SDG\nsuperimposition/MS\nsuperintendence/S\nsuperintendency/SM\nsuperintendent/SM\nsuperintend/GSD\nsuperiority/MS\nSuperior/M\nsuperior/SMY\nsuperlativeness/M\nsuperlative/PYS\nsuperlunary\nsupermachine\nsuperman/M\nSuperman/M\nsupermarket/SM\nsupermen\nsupermodel\nsupermom/S\nsupernal\nsupernatant\nsupernaturalism/M\nsupernaturalness/M\nsupernatural/SPY\nsupernormal/Y\nsupernovae\nsupernova/MS\nsupernumerary/S\nsuperordinate\nsuperpose/BSDG\nsuperposition/MS\nsuperpower/MS\nsuperpredicate\nsupersaturate/XNGDS\nsupersaturation/M\nsuperscribe/GSD\nsuperscript/DGS\nsuperscription/SM\nsuperseder/M\nsupersede/SRDG\nsupersensitiveness/M\nsupersensitive/P\nsuperset/MS\nsupersonically\nsupersonic/S\nsupersonics/M\nsuperstar/SM\nsuperstition/SM\nsuperstitious/YP\nsuperstore/S\nsuperstructural\nsuperstructure/SM\nsupertanker/SM\nsupertitle/MSDG\nsuperuser/MS\nsupervene/GSD\nsupervention/S\nsupervised/U\nsupervise/SDGNX\nsupervision/M\nsupervisor/SM\nsupervisory\nsuperwoman/M\nsuperwomen\nsupineness/M\nsupine/PSY\nsupper/DMG\nsupplanter/M\nsupplant/SGRD\nsupplemental/S\nsupplementary/S\nsupplementation/S\nsupplementer/M\nsupplement/SMDRG\nsuppleness/SM\nsupple/SPLY\nsuppliant/S\nsupplicant/MS\nsupplicate/NGXSD\nsupplication/M\nsupplier/AM\nsuppl/RDGT\nsupply/MAZGSRD\nsupportability/M\nsupportable/UI\nsupported/U\nsupporter/M\nsupporting/Y\nsupportive/Y\nsupport/ZGVSBDR\nsupposed/Y\nsuppose/SRDBJG\nsupposition/MS\nsuppository/MS\nsuppressant/S\nsuppressed/U\nsuppressible/I\nsuppression/SM\nsuppressive/P\nsuppressor/S\nsuppress/VGSD\nsuppurate/NGXSD\nsuppuration/M\nsupp/YDRGZ\nsupra\nsupranational\nsupranationalism/M\nsuprasegmental\nsupremacist/SM\nsupremacy/SM\nsupremal\nsupremeness/M\nsupreme/PSRTY\nsupremo/M\nsup/RSZ\nsupt\nSupt/M\nSurabaya/M\nSurat/M\nsurcease/DSMG\nsurcharge/MGSD\nsurcingle/MGSD\nsurd/M\nsured/I\nsurefire\nsurefooted\nsurely\nsureness/MS\nsureness's/U\nsure/PU\nsurer/I\nsurest\nsurety/SM\nsurfaced/UA\nsurface/GSRDPZM\nsurfacer/AMS\nsurfaces/A\nsurfacing/A\nsurfactant/SM\nsurfboard/MDSG\nsurfeit/SDRMG\nsurfer/M\nsurfing/M\nsurf/SJDRGMZ\nsurged/A\nsurge/GYMDS\nsurgeon/MS\nsurgery/MS\nsurges/A\nsurgical/Y\nSuriname\nSurinamese\nSurinam's\nsurliness/SM\nsurly/TPR\nsurmiser/M\nsurmise/SRDG\nsurmountable/IU\nsurmount/DBSG\nsurname/GSDM\nsurpassed/U\nsurpass/GDS\nsurpassing/Y\nsurplice/SM\nsurplus/MS\nsurplussed\nsurplussing\nsurprised/U\nsurprise/MGDRSJ\nsurpriser/M\nsurprising/YU\nsurrealism/MS\nsurrealistic\nsurrealistically\nsurrealist/S\nsurreality\nsurreal/S\nsurrender/DRSG\nsurrenderer/M\nsurreptitiousness/S\nsurreptitious/PY\nsurrey/SM\nsurrogacy/S\nsurrogate/SDMNG\nsurrogation/M\nsurrounding/M\nsurround/JGSD\nsurtax/SDGM\nsurveillance/SM\nsurveillant\nsurveyed/A\nsurveying/M\nsurvey/JDSG\nsurveyor/MS\nsurveys/A\nsurvivability/M\nsurvivable/U\nsurvivalist/S\nsurvival/MS\nsurvive/SRDBG\nsurvivor/MS\nsurvivorship/M\nSurya/M\nSus\nSusana/M\nSusanetta/M\nSusan/M\nSusannah/M\nSusanna/M\nSusanne/M\nSusann/M\nsusceptibilities\nsusceptibility/IM\nsusceptible/I\nSusette/M\nsushi/SM\nSusie/M\nSusi/M\nsuspected/U\nsuspecter/M\nsuspect/GSDR\nsuspecting/U\nsuspend/DRZGS\nsuspended/UA\nsuspender/M\nsuspenseful\nsuspense/MXNVS\nsuspension/AM\nsuspensive/Y\nsuspensor/M\nsuspicion/GSMD\nsuspiciousness/M\nsuspicious/YP\nSusquehanna/M\nSussex/M\nsustainability\nsustainable/U\nsustain/DRGLBS\nsustainer/M\nsustainment/M\nsustenance/MS\nSusy/M\nSutherland/M\nSutherlan/M\nsutler/MS\nSutton/M\nsuture/GMSD\nSUV\nSuva/M\nSuwanee/M\nSuzanna/M\nSuzanne/M\nSuzann/M\nsuzerain/SM\nsuzerainty/MS\nSuzette/M\nSuzhou/M\nSuzie/M\nSuzi/M\nSuzuki/M\nSuzy/M\nSvalbard/M\nsvelte/RPTY\nSvend/M\nSvengali\nSven/M\nSverdlovsk/M\nSvetlana/M\nSW\nswabbed\nswabbing\nswabby/S\nSwabian/SM\nswab/MS\nswaddle/SDG\nswagged\nswagger/GSDR\nswagging\nswag/GMS\nSwahili/MS\nswain/SM\nSWAK\nswallower/M\nswallow/GDRS\nswallowtail/SM\nswam\nswami/SM\nswamper/M\nswampland/MS\nswamp/SRDMG\nswampy/RPT\nSwanee/M\nswankily\nswankiness/MS\nswank/RDSGT\nswanky/PTRS\nswanlike\nswan/MS\nswanned\nswanning\nSwansea/M\nSwanson/M\nswappable/U\nswapped\nswapper/SM\nswapping\nswap/S\nsward/MSGD\nswarmer/M\nswarm/GSRDM\nswarthiness/M\nSwarthmore/M\nswarthy/RTP\nswart/P\nSwartz/M\nswashbuckler/SM\nswashbuckling/S\nswash/GSRD\nswastika/SM\nSWAT\nswatch/MS\nswathe\nswather/M\nswaths\nswath/SRDMGJ\nswat/S\nswatted\nswatter/MDSG\nswatting\nswayback/SD\nsway/DRGS\nswayer/M\nSwaziland/M\nSwazi/SM\nswearer/M\nswear/SGZR\nswearword/SM\nsweatband/MS\nsweater/M\nsweatily\nsweatiness/M\nsweatpants\nsweat/SGZRM\nsweatshirt/S\nsweatshop/MS\nsweaty/TRP\nSwedenborg/M\nSweden/M\nswede/SM\nSwede/SM\nSwedish\nSwed/MN\nSweeney/SM\nsweeper/M\nsweepingness/M\nsweeping/PY\nsweep/SBRJGZ\nsweeps/M\nsweepstakes\nsweepstake's\nsweetbread/SM\nsweetbrier/SM\nsweetcorn\nsweetened/U\nsweetener/M\nsweetening/M\nsweeten/ZDRGJ\nsweetheart/MS\nsweetie/MS\nsweeting/M\nsweetish/Y\nSweet/M\nsweetmeat/MS\nsweetness/MS\nsweetshop\nsweet/TXSYRNPG\nswellhead/DS\nswelling/M\nswell/SJRDGT\nswelter/DJGS\nsweltering/Y\nSwen/M\nSwenson/M\nswept\nsweptback\nswerve/GSD\nswerving/U\nswifter/M\nswift/GTYRDPS\nSwift/M\nswiftness/MS\nswigged\nswigging\nswig/SM\nswill/SDG\nswimmer/MS\nswimming/MYS\nswim/S\nswimsuit/MS\nSwinburne/M\nswindle/GZRSD\nswindler/M\nswineherd/MS\nswine/SM\nswingeing\nswinger/M\nswinging/Y\nswing/SGRZJB\nswingy/R\nswinishness/M\nswinish/PY\nSwink/M\nswipe/DSG\nswirling/Y\nswirl/SGRD\nswirly/TR\nswish/GSRD\nswishy/R\nswiss\nSwiss/S\nswitchback/GDMS\nswitchblade/SM\nswitchboard/MS\nswitcher/M\nswitch/GBZMRSDJ\nswitchgear\nswitchman/M\nswitchmen/M\nswitchover/M\nSwitzerland/M\nSwitzer/M\nSwitz/MR\nswivel/GMDS\nswizzle/RDGM\nswob's\nswollen\nswoon/GSRD\nswooning/Y\nswoop/RDSG\nswoosh/GSD\nswop's\nsword/DMSG\nswordfish/SM\nswordplayer/M\nswordplay/RMS\nswordsman/M\nswordsmanship/SM\nswordsmen\nswordtail/M\nswore\nsworn\nswot/S\nswum\nswung\ns/XJBG\nsybarite/MS\nsybaritic\nSybila/M\nSybilla/M\nSybille/M\nSybil/M\nSybyl/M\nsycamore/SM\nsycophancy/S\nsycophantic\nsycophantically\nsycophant/SYM\nSydelle/M\nSydel/M\nSyd/M\nSydney/M\nSykes/M\nSylas/M\nsyllabicate/GNDSX\nsyllabication/M\nsyllabicity\nsyllabic/S\nsyllabification/M\nsyllabify/GSDXN\nsyllabi's\nsyllable/SDMG\nsyllabub/M\nsyllabus/MS\nsyllabusss\nsyllogism/MS\nsyllogistic\nSylow/M\nsylphic\nsylphlike\nsylph/M\nsylphs\nSylvania/M\nSylvan/M\nsylvan/S\nSylvester/M\nSylvia/M\nSylvie/M\nSyman/M\nsymbiont/M\nsymbioses\nsymbiosis/M\nsymbiotic\nsymbol/GMDS\nsymbolical/Y\nsymbolics/M\nsymbolic/SM\nsymbolism/MS\nsymbolist/MS\nsymbolization/MAS\nsymbolized/U\nsymbolize/GZRSD\nsymbolizes/A\nSymington/M\nsymmetric\nsymmetrically/U\nsymmetricalness/M\nsymmetrical/PY\nsymmetrization/M\nsymmetrizing\nsymmetry/MS\nSymon/M\nsympathetically/U\nsympathetic/S\nsympathized/U\nsympathizer/M\nsympathize/SRDJGZ\nsympathizing/MYUS\nsympathy/MS\nsymphonic\nsymphonists\nsymphony/MS\nsymposium/MS\nsymptomatic\nsymptomatically\nsymptomatology/M\nsymptom/MS\nsyn\nsynagogal\nsynagogue/SM\nsynapse/SDGM\nsynaptic\nsynchronism/M\nsynchronization's\nsynchronization/SA\nsynchronize/AGCDS\nsynchronized/U\nsynchronizer/MS\nsynchronousness/M\nsynchronous/YP\nsynchrony\nsynchrotron/M\nsyncopate/VNGXSD\nsyncopation/M\nsyncope/MS\nsync/SGD\nsyndicalist\nsyndicate/XSDGNM\nsyndic/SM\nsyndrome/SM\nsynergism/SM\nsynergistic\nsynergy/MS\nsynfuel/S\nSynge/M\nsynod/SM\nsynonymic\nsynonymous/Y\nsynonym/SM\nsynonymy/MS\nsynopses\nsynopsis/M\nsynopsized\nsynopsizes\nsynopsizing\nsynoptic/S\nsyntactical/Y\nsyntactics/M\nsyntactic/SY\nsyntax/MS\nsyntheses\nsynthesis/M\nsynthesized/U\nsynthesize/GZSRD\nsynthesizer/M\nsynthesizes/A\nsynthetically\nsynthetic/S\nsyphilis/MS\nsyphilitic/S\nsyphilized\nsyphilizing\nSyracuse/M\nSyriac/M\nSyria/M\nSyrian/SM\nsyringe/GMSD\nsyrup/DMSG\nsyrupy\nsys\nsystematical/Y\nsystematics/M\nsystematic/SP\nsystematization/SM\nsystematized/U\nsystematizer/M\nsystematize/ZDRSG\nsystematizing/U\nsystemically\nsystemic/S\nsystemization/SM\nsystem/MS\nsystole/MS\nsystolic\nSzilard/M\nSzymborska/M\nTA\nTabasco/MS\nTabatha/M\nTabbatha/M\ntabbed\nTabbie/M\nTabbi/M\ntabbing\nTabbitha/M\nTabb/M\ntabbouleh\ntabboulehs\ntabby/GSD\nTabby/M\nTaber/M\nTabernacle/S\ntabernacle/SDGM\nTabina/M\nTabitha/M\ntabla/MS\ntableau/M\ntableaux\ntablecloth/M\ntablecloths\ntable/GMSD\ntableland/SM\ntablespoonful/MS\ntablespoon/SM\ntablet/MDGS\ntabletop/MS\ntableware/SM\ntabling/M\ntabloid/MS\nTab/MR\ntaboo/GSMD\nTabor/M\ntabor/MDGS\nTabriz/SM\ntab/SM\ntabula\ntabular/Y\ntabulate/XNGDS\ntabulation/M\ntabulator/MS\ntachometer/SM\ntachometry\ntachycardia/MS\ntachyon/SM\ntacitness/MS\ntaciturnity/MS\ntaciturn/Y\nTacitus/M\ntacit/YP\ntacker/M\ntack/GZRDMS\ntackiness/MS\ntackler/M\ntackle/RSDMZG\ntackling/M\ntacky/RSTP\nTacoma/M\ntaco/MS\ntact/FSM\ntactfulness/S\ntactful/YP\ntactical/Y\ntactician/MS\ntactic/SM\ntactile/Y\ntactility/S\ntactlessness/SM\ntactless/PY\ntactual/Y\nTaddeo/M\nTaddeusz/M\nTadd/M\nTadeas/M\nTadeo/M\nTades\nTadio/M\nTad/M\ntadpole/MS\ntad/SM\nTadzhikistan's\nTadzhikstan/M\nTaegu/M\nTaejon/M\ntaffeta/MS\ntaffrail/SM\nTaffy/M\ntaffy/SM\nTaft/M\nTagalog/SM\ntagged/U\ntagger/S\ntagging\nTagore/M\ntag/SM\nTagus/M\nTahitian/S\nTahiti/M\nTahoe/M\nTaichung/M\ntaiga/MS\ntailback/MS\ntail/CMRDGAS\ntailcoat/S\ntailer/AM\ntailgate/MGRSD\ntailgater/M\ntailing/MS\ntaillessness/M\ntailless/P\ntaillight/MS\ntailor/DMJSGB\nTailor/M\ntailpipe/SM\ntailspin/MS\ntailwind/SM\nTainan/M\nTaine/M\ntaint/DGS\ntainted/U\nTaipei/M\nTaite/M\nTait/M\nTaiwanese\nTaiwan/M\nTaiyuan/M\nTajikistan\ntakeaway/S\ntaken/A\ntakeoff/SM\ntakeout/S\ntakeover/SM\ntaker/M\ntake/RSHZGJ\ntakes/IA\ntaking/IA\nTaklamakan/M\nTalbert/M\nTalbot/M\ntalcked\ntalcking\ntalc/SM\ntalcum/S\ntalebearer/SM\ntalented/M\ntalentless\ntalent/SMD\ntaler/M\ntale/RSMN\ntali\nTalia/M\nTaliesin/M\ntalion/M\ntalismanic\ntalisman/SM\ntalkativeness/MS\ntalkative/YP\ntalker/M\ntalk/GZSRD\ntalkie/M\ntalky/RST\nTalladega/M\nTallahassee/M\nTallahatchie/M\nTallahoosa/M\ntallboy/MS\nTallchief/M\nTalley/M\nTalleyrand/M\nTallia/M\nTallie/M\nTallinn/M\ntallish\ntallness/MS\nTallou/M\ntallow/DMSG\ntallowy\ntall/TPR\nTallulah/M\ntally/GRSDZ\ntallyho/DMSG\nTally/M\nTalmudic\nTalmudist/MS\nTalmud/MS\ntalon/SMD\ntalus/MS\nTalyah/M\nTalya/M\nTa/M\ntamable/M\ntamale/SM\ntamarack/SM\nTamarah/M\nTamara/M\ntamarind/MS\nTamar/M\nTamarra/M\nTamas\ntambourine/MS\ntamed/U\nTameka/M\ntameness/S\nTamera/M\nTamerlane/M\ntame/SYP\nTamika/M\nTamiko/M\nTamil/MS\nTami/M\nTam/M\nTamma/M\nTammany/M\nTammara/M\ntam/MDRSTZGB\nTammie/M\nTammi/M\nTammy/M\nTampa/M\nTampax/M\ntampered/U\ntamperer/M\ntamper/ZGRD\ntampon/DMSG\ntamp/SGZRD\nTamqrah/M\nTamra/M\ntanager/MS\nTanaka/M\nTana/M\nTananarive/M\ntanbark/SM\nTancred/M\ntandem/SM\nTandie/M\nTandi/M\ntandoori/S\nTandy/M\nTaney/M\nT'ang\nTanganyika/M\ntangelo/SM\ntangency/M\ntangential/Y\ntangent/SM\ntangerine/MS\ntang/GSYDM\ntangibility/MIS\ntangible/IPS\ntangibleness's/I\ntangibleness/SM\ntangibly/I\nTangier/M\ntangle's\ntangle/UDSG\ntango/MDSG\nTangshan/M\ntangy/RST\nTanhya/M\nTania/M\nTani/M\nTanisha/M\nTanitansy/M\ntankard/MS\ntanker/M\ntankful/MS\ntank/GZSRDM\nTan/M\ntan/MS\ntanned/U\nTannenbaum/M\nTanner/M\ntanner/SM\ntannery/MS\ntannest\nTanney/M\nTannh<6E>user/M\nTannie/M\ntanning/SM\ntannin/SM\nTann/RM\nTanny/M\nTansy/M\ntansy/SM\ntantalization/SM\ntantalized/U\ntantalize/GZSRD\ntantalizingly/S\ntantalizingness/S\ntantalizing/YP\ntantalum/MS\nTantalus/M\ntantamount\ntantra/S\ntantrum/SM\nTanya/M\nTanzania/M\nTanzanian/S\ntaoism\nTaoism/MS\nTaoist/MS\ntaoist/S\nTao/M\ntao/S\nTapdance/M\ntaped/U\ntapeline/S\ntaperer/M\ntaper/GRD\ntape/SM\ntapestry/GMSD\ntapeworm/MS\ntapioca/MS\ntapir/MS\ntap/MSDRJZG\ntapped/U\ntapper/MS\ntappet/MS\ntapping/M\ntaproom/MS\ntaproot/SM\ntaps/M\nTarah/M\nTara/M\ntarantella/MS\ntarantula/MS\nTarawa/M\nTarazed/M\nTarbell/M\ntardily\ntardiness/S\ntardy/TPRS\ntare/MS\ntarget/GSMD\ntar/GSMD\ntariff/DMSG\nTarim/M\nTarkington/M\ntarmacked\ntarmacking\ntarmac/S\ntarnished/U\ntarnish/GDS\ntarn/MS\ntaro/MS\ntarot/MS\ntarpapered\ntarpaulin/MS\ntarp/MS\ntarpon/MS\ntarragon/SM\nTarrah/M\nTarra/M\nTarrance/M\ntarred/M\ntarring/M\ntarry/TGRSD\nTarrytown/M\ntarsal/S\ntarsi\ntarsus/M\ntartan/MS\ntartaric\nTartar's\ntartar/SM\nTartary/M\ntartness/MS\ntart/PMYRDGTS\nTartuffe/M\nTaryn/M\nTarzan/M\nTasha/M\nTashkent/M\nTasia/M\ntask/GSDM\ntaskmaster/SM\ntaskmistress/MS\nTasmania/M\nTasmanian/S\ntassellings\ntassel/MDGS\nTass/M\ntasted/EU\ntastefulness/SME\ntasteful/PEY\ntaste/GZMJSRD\ntastelessness/SM\ntasteless/YP\ntaster/M\ntaste's/E\ntastes/E\ntastily\ntastiness/MS\ntasting/E\ntasty/RTP\ntatami/MS\nTatar/SM\nTate/M\ntater/M\nTatiana/M\nTatiania/M\ntat/SRZ\ntatted\ntatterdemalion/SM\ntattered/M\ntatter/GDS\ntatting/SM\ntattler/M\ntattle/RSDZG\ntattletale/SM\ntattooer/M\ntattooist/MS\ntattoo/ZRDMGS\ntatty/R\nTatum/M\ntaught/AU\ntaunter/M\ntaunting/Y\ntaunt/ZGRDS\ntaupe/SM\nTaurus/SM\ntau/SM\ntauten/GD\ntautness/S\ntautological/Y\ntautologous\ntautology/SM\ntaut/PGTXYRDNS\ntaverner/M\ntavern/RMS\ntawdrily\ntawdriness/SM\ntawdry/SRTP\nTawney/M\nTawnya/M\ntawny/RSMPT\nTawsha/M\ntaxable/S\ntaxably\ntaxation/MS\ntaxed/U\ntaxicab/MS\ntaxidermist/SM\ntaxidermy/MS\ntaxi/MDGS\ntaximeter/SM\ntaxing/Y\ntaxiway/MS\ntaxonomic\ntaxonomically\ntaxonomist/SM\ntaxonomy/SM\ntaxpayer/MS\ntaxpaying/M\ntax/ZGJMDRSB\nTaylor/SM\nTb\nTB\nTBA\nTbilisi/M\ntbs\ntbsp\nTchaikovsky/M\nTc/M\nTCP\nTD\nTDD\nTe\nteabag/S\nteacake/MS\nteacart/M\nteachable/P\nteach/AGS\nteacher/MS\nteaching/SM\nteacloth\nteacupful/MS\nteacup/MS\nTeador/M\nteahouse/SM\nteakettle/SM\nteak/SM\nteakwood/M\ntealeaves\nteal/MS\ntea/MDGS\nteammate/MS\nteam/MRDGS\nteamster/MS\nteamwork/SM\nteapot/MS\ntearaway\nteardrop/MS\ntearer/M\ntearfulness/M\ntearful/YP\nteargas/S\nteargassed\nteargassing\ntearjerker/S\ntearoom/MS\ntear/RDMSG\nteary/RT\nTeasdale/M\ntease/KS\nteasel/DGSM\nteaser/M\nteashop/SM\nteasing/Y\nteaspoonful/MS\nteaspoon/MS\nteas/SRDGZ\nteatime/MS\nteat/MDS\ntech/D\ntechnetium/SM\ntechnicality/MS\ntechnicalness/M\ntechnical/YSP\ntechnician/MS\nTechnicolor/MS\nTechnion/M\ntechnique/SM\ntechnocracy/MS\ntechnocratic\ntechnocrat/S\ntechnological/Y\ntechnologist/MS\ntechnology/MS\ntechnophobia\ntechnophobic\ntechs\ntectonically\ntectonic/S\ntectonics/M\nTecumseh/M\nTedda/M\nTeddie/M\nTeddi/M\nTedd/M\nTeddy/M\nteddy/SM\nTedie/M\nTedi/M\ntediousness/SM\ntedious/YP\ntedium/MS\nTed/M\nTedman/M\nTedmund/M\nTedra/M\ntee/DRSMH\nteeing\nteem/GSD\nteemingness/M\nteeming/PY\nteenager/M\nteenage/RZ\nTeena/M\nteen/SR\nteenybopper/SM\nteeny/RT\nteepee's\nteeshirt/S\nteeter/GDS\nteethe\nteether/M\nteething/M\nteethmarks\nteeth/RSDJMG\nteetotaler/M\nteetotalism/MS\nteetotal/SRDGZ\nTEFL\nTeflon/MS\nTegucigalpa/M\nTeheran's\nTehran\nTEirtza/M\ntektite/SM\nTektronix/M\ntelecast/SRGZ\ntelecommunicate/NX\ntelecommunication/M\ntelecommute/SRDZGJ\ntelecoms\nteleconference/GMJSD\nTeledyne/M\nTelefunken/M\ntelegenic\ntelegrammed\ntelegramming\ntelegram/MS\ntelegraphic\ntelegraphically\ntelegraphist/MS\ntelegraph/MRDGZ\ntelegraphs\ntelegraphy/MS\ntelekineses\ntelekinesis/M\ntelekinetic\nTelemachus/M\nTelemann/M\ntelemarketer/S\ntelemarketing/S\ntelemeter/DMSG\ntelemetric\ntelemetry/MS\nteleological/Y\nteleology/M\ntelepathic\ntelepathically\ntelepathy/SM\ntelephone/SRDGMZ\ntelephonic\ntelephonist/SM\ntelephony/MS\ntelephotography/MS\ntelephoto/S\nteleprinter/MS\nteleprocessing/S\nteleprompter\nTelePrompter/M\nTelePrompTer/S\ntelescope/GSDM\ntelescopic\ntelescopically\nteletext/S\ntelethon/MS\nteletype/SM\nTeletype/SM\nteletypewriter/SM\ntelevangelism/S\ntelevangelist/S\ntelevise/SDXNG\ntelevision/M\ntelevisor/MS\ntelevisual\ntelex/GSDM\nTelex/M\ntell/AGS\nTeller/M\nteller/SDMG\ntelling/YS\nTell/MR\ntelltale/MS\ntellurium/SM\ntelly/SM\nTelnet/M\nTELNET/M\ntelnet/S\ntelomeric\ntel/SY\nTelugu/M\ntemblor/SM\ntemerity/MS\nTempe/M\ntemperamental/Y\ntemperament/SM\ntemperance/IMS\ntempera/SLM\ntemperately/I\ntemperateness's/I\ntemperateness/SM\ntemperate/SDGPY\ntemperature/MS\ntempered/UE\ntemper/GRDM\ntempering/E\ntemper's/E\ntempers/E\ntempest/DMSG\ntempestuousness/SM\ntempestuous/PY\ntemplate/FS\ntemplate's\nTemple/M\nTempleman/M\ntemple/SDM\nTempleton/M\nTemp/M\ntempoes\ntempo/MS\ntemporal/YS\ntemporarily\ntemporarinesses\ntemporariness/FM\ntemporary/SFP\ntemporize/GJZRSD\ntemporizer/M\ntemporizings/U\ntemporizing/YM\ntemp/SGZTMRD\ntemptation/MS\ntempted\ntempter/S\ntempt/FS\ntempting/YS\ntemptress/MS\ntempura/SM\ntenabilities\ntenability/UM\ntenableness/M\ntenable/P\ntenably\ntenaciousness/S\ntenacious/YP\ntenacity/S\ntenancy/MS\ntenanted/U\ntenant/MDSG\ntenantry/MS\ntench/M\ntended/UE\ntendency/MS\ntendentiousness/SM\ntendentious/PY\ntendered\ntenderer\ntenderest\ntenderfoot/MS\ntender/FS\ntenderheartedness/MS\ntenderhearted/YP\ntendering\ntenderizer/M\ntenderize/SRDGZ\ntenderloin/SM\ntenderly\ntenderness/SM\ntending/E\ntendinitis/S\ntend/ISFRDG\ntendon/MS\ntendril/SM\ntends/E\ntenebrous\ntenement/MS\ntenet/SM\nTenex/M\nTENEX/M\ntenfold/S\nten/MHB\nTenneco/M\ntenner\nTennessean/S\nTennessee/M\nTenney/M\ntennis/SM\nTenn/M\nTennyson/M\nTenochtitlan/M\ntenon/GSMD\ntenor/MS\ntenpin/SM\ntense/IPYTNVR\ntenseness's/I\ntenseness/SM\ntensile\ntensional/I\ntension/GMRDS\ntensionless\ntensions/E\ntension's/I\ntensity/IMS\ntensorial\ntensor/MS\ntenspot\ntens/SRDVGT\ntentacle/MSD\ntentativeness/S\ntentative/SPY\ntented/UF\ntenterhook/MS\ntenter/M\ntent/FSIM\ntenths\ntenth/SY\ntenting/F\ntenuity/S\ntenuousness/SM\ntenuous/YP\ntenure/SDM\nTeodoor/M\nTeodora/M\nTeodorico/M\nTeodor/M\nTeodoro/M\ntepee/MS\ntepidity/S\ntepidness/S\ntepid/YP\ntequila/SM\nTera/M\nteratogenic\nteratology/MS\nterbium/SM\ntercel/M\ntercentenary/S\ntercentennial/S\nTerence/M\nTerencio/M\nTeresa/M\nTerese/M\nTereshkova/M\nTeresina/M\nTeresita/M\nTeressa/M\nTeriann/M\nTeri/M\nTerkel/M\ntermagant/SM\ntermcap\ntermer/M\nterminable/CPI\nterminableness/IMC\nterminal/SYM\nterminate/CXNV\nterminated/U\nterminates\nterminating\ntermination/MC\nterminative/YC\nterminator/SM\ntermini\nterminological/Y\nterminology/MS\nterminus/M\ntermite/SM\nterm/MYRDGS\nternary/S\ntern/GIDS\ntern's\nterpsichorean\nTerpsichore/M\nterrace/MGSD\nterracing/M\nterracotta\nterrain/MS\nTerra/M\nterramycin\nTerrance/M\nTerran/M\nterrapin/MS\nterrarium/MS\nterrazzo/SM\nTerrell/M\nTerrel/M\nTerre/M\nTerrence/M\nterrestrial/YMS\nterribleness/SM\nterrible/P\nterribly\nTerrie/M\nterrier/M\nterrifically\nterrific/Y\nterrify/GDS\nterrifying/Y\nTerrijo/M\nTerrill/M\nTerri/M\nterrine/M\nterritoriality/M\nTerritorial/SM\nterritorial/SY\nTerritory's\nterritory/SM\nterrorism/MS\nterroristic\nterrorist/MS\nterrorized/U\nterrorizer/M\nterrorize/RSDZG\nterror/MS\nterr/S\nterrycloth\nTerrye/M\nTerry/M\nterry/ZMRS\nterseness/SM\nterse/RTYP\nTersina/M\ntertian\nTertiary\ntertiary/S\nTerza/M\nTESL\nTesla/M\nTESOL\nTessa/M\ntessellate/XDSNG\ntessellation/M\ntesseral\nTessie/M\nTessi/M\nTess/M\nTessy/M\ntestability/M\ntestable/U\ntestamentary\ntestament/SM\ntestate/IS\ntestator/MS\ntestatrices\ntestatrix\ntestbed/S\ntestcard\ntested/AKU\ntester/MFCKS\ntestes/M\ntesticle/SM\ntesticular\ntestifier/M\ntestify/GZDRS\ntestily\ntestimonial/SM\ntestimony/SM\ntestiness/S\ntesting/S\ntestis/M\ntestosterone/SM\ntest/RDBFZGSC\ntests/AK\ntest's/AKF\ntesty/RTP\ntetanus/MS\ntetchy/TR\ntether/DMSG\ntethered/U\nTethys/M\nTetons\ntetrachloride/M\ntetracycline/SM\ntetrafluoride\ntetragonal/Y\ntetrahalides\ntetrahedral/Y\ntetrahedron/SM\ntetrameron\ntetrameter/SM\ntetra/MS\ntetrasodium\ntetravalent\nTeutonic\nTeuton/SM\nTexaco/M\nTexan/S\nTexas/MS\nTex/M\nTeX/M\ntextbook/SM\ntext/FSM\ntextile/SM\nTextron/M\ntextual/FY\ntextural/Y\ntextured/U\ntexture/MGSD\nT/G\nThacher/M\nThackeray/M\nThaddeus/M\nThaddus/M\nThadeus/M\nThad/M\nThailand/M\nThaine/M\nThain/M\nThai/S\nthalami\nthalamus/M\nThales/M\nThalia/M\nthalidomide/MS\nthallium/SM\nthallophyte/M\nThames\nthan\nThane/M\nthane/SM\nThanh/M\nthanker/M\nthankfuller\nthankfullest\nthankfulness/SM\nthankful/YP\nthanklessness/SM\nthankless/PY\nthanksgiving/MS\nThanksgiving/S\nthank/SRDG\nThant/M\nThar/M\nThatcher/M\nthatching/M\nthatch/JMDRSZG\nThatch/MR\nthat'd\nthat'll\nthat/MS\nthaumaturge/M\nthaw/DGS\nThaxter/M\nThayer/M\nThayne/M\nTHC\nthe\nTheadora/M\nThea/M\ntheatergoer/MS\ntheatergoing/MS\ntheater/SM\ntheatricality/SM\ntheatrical/YS\ntheatric/S\ntheatrics/M\nThebault/M\nThebes\nTheda/M\nThedrick/M\nThedric/M\nthee/DS\ntheeing\ntheft/MS\nTheiler/M\ntheir/MS\ntheism/SM\ntheistic\ntheist/SM\nThekla/M\nThelma/M\nthemas\nthematically\nthematics\nthematic/U\ntheme/MS\nthem/GD\nThemistocles/M\nthemselves\nthence\nthenceforth\nthenceforward/S\nTheobald/M\ntheocracy/SM\ntheocratic\nTheocritus/M\ntheodolite/MS\nTheodora/M\nTheodore/M\nTheodoric/M\nTheodor/M\nTheodosia/M\nTheodosian\nTheodosius/M\ntheologian/SM\ntheological/Y\ntheologists\ntheology/MS\nTheo/M\ntheorem/MS\ntheoretical/Y\ntheoretician/MS\ntheoretic/S\ntheoretics/M\ntheorist/SM\ntheorization/SM\ntheorize/ZGDRS\ntheory/MS\ntheosophic\ntheosophical\ntheosophist/MS\nTheosophy\ntheosophy/SM\ntherapeutically\ntherapeutic/S\ntherapeutics/M\ntherapist/MS\ntherapy/MS\nTheravada/M\nthereabout/S\nthereafter\nthereat\nthereby\nthere'd\ntherefor\ntherefore\ntherefrom\ntherein\nthere'll\nthere/MS\nthereof\nthereon\nTheresa/M\nTherese/M\nTheresina/M\nTheresita/M\nTheressa/M\nthereto\ntheretofore\nthereunder\nthereunto\nthereupon\ntherewith\nTherine/M\nthermal/YS\nthermionic/S\nthermionics/M\nthermistor/MS\ntherm/MS\nthermocouple/MS\nthermodynamical/Y\nthermodynamic/S\nthermodynamics/M\nthermoelastic\nthermoelectric\nthermoformed\nthermoforming\nthermogravimetric\nthermoluminescence/M\nthermometer/MS\nthermometric\nthermometry/M\nthermonuclear\nthermopile/M\nthermoplastic/S\nthermopower\nthermo/S\nthermosetting\nthermos/S\nThermos/SM\nthermostable\nthermostatically\nthermostatic/S\nthermostatics/M\nthermostat/SM\nthermostatted\nthermostatting\nTheron/M\nthesauri\nthesaurus/MS\nthese/S\nTheseus/M\nthesis/M\nthespian/S\nThespian/S\nThespis/M\nThessalonian\nThessalon<6F>ki/M\nThessaly/M\ntheta/MS\nthew/SM\nthey\nthey'd\nthey'll\nthey're\nthey've\nth/GNJX\nThia/M\nthiamine/MS\nThibaud/M\nThibaut/M\nthickener/M\nthickening/M\nthicken/RDJZG\nthicket/SMD\nthickheaded/M\nthickish\nthickness/MS\nthickset/S\nthick/TXPSRNY\nthief/M\nThiensville/M\nThieu/M\nthievery/MS\nthieve/SDJG\nthievishness/M\nthievish/P\nthighbone/SM\nthigh/DM\nthighs\nthimble/DSMG\nthimbleful/MS\nThimbu/M\nThimphu\nthine\nthingamabob/MS\nthingamajig/SM\nthing/MP\nthinkableness/M\nthinkable/U\nthinkably/U\nthink/AGRS\nthinker/MS\nthinkingly/U\nthinking/SMYP\nthinned\nthinner/MS\nthinness/MS\nthinnest\nthinning\nthinnish\nthin/STPYR\nthiocyanate/M\nthiouracil/M\nthird/DYGS\nthirster/M\nthirst/GSMDR\nthirstily\nthirstiness/S\nthirsty/TPR\nthirteen/MHS\nthirteenths\nthirtieths\nthirty/HMS\nthis\nthis'll\nthistledown/MS\nthistle/SM\nthither\nTh/M\ntho\nthole/GMSD\nThomasa/M\nThomasina/M\nThomasine/M\nThomasin/M\nThoma/SM\nThomism/M\nThomistic\nThom/M\nThompson/M\nThomson/M\nthong/SMD\nthoracic\nthorax/MS\nThorazine\nThoreau/M\nthoriate/D\nThorin/M\nthorium/MS\nThor/M\nThornburg/M\nThorndike/M\nThornie/M\nthorniness/S\nThorn/M\nthorn/SMDG\nThornton/M\nThorny/M\nthorny/PTR\nthoroughbred/S\nthoroughfare/MS\nthoroughgoing\nthoroughness/SM\nthorough/PTYR\nThorpe/M\nThorstein/M\nThorsten/M\nThorvald/M\nthose\nThoth/M\nthou/DSG\nthough\nthoughtfully\nthoughtfulness/S\nthoughtful/U\nthoughtlessness/MS\nthoughtless/YP\nthought/MS\nthousandfold\nthousand/SHM\nthousandths\nThrace/M\nThracian/M\nthralldom/S\nthrall/GSMD\nthrash/DSRZGJ\nthrasher/M\nthrashing/M\nthreadbare/P\nthreader/M\nthreading/A\nthreadlike\nthread/MZDRGS\nthready/RT\nthreatener/M\nthreaten/GJRD\nthreatening/Y\nthreat/MDNSXG\nthreefold\nthree/MS\nthreepence/M\nthreepenny\nthreescore/S\nthreesome/SM\nthrenody/SM\nthresh/DSRZG\nthresher/M\nthreshold/MDGS\nthrew\nthrice\nthriftily\nthriftiness/S\nthriftless\nthrift/SM\nthrifty/PTR\nthriller/M\nthrilling/Y\nthrill/ZMGDRS\nthriver/M\nthrive/RSDJG\nthriving/Y\nthroatily\nthroatiness/MS\nthroat/MDSG\nthroaty/PRT\nthrobbed\nthrobbing\nthrob/S\nthroeing\nthroe/SDM\nthrombi\nthromboses\nthrombosis/M\nthrombotic\nthrombus/M\nThroneberry/M\nthrone/CGSD\nthrone's\nthrong/GDSM\nthrottle/DRSZMG\nthrottler/M\nthroughout\nthroughput/SM\nthroughway's\nthrough/Y\nthrowaway/SM\nthrowback/MS\nthrower/M\nthrown\nthrowout\nthrow/SZGR\nthrummed\nthrumming\nthrum/S\nthrush/MS\nthruster/M\nthrust/ZGSR\nThruway/MS\nthruway/SM\nThunderbird/M\nThu\nThucydides/M\nthudded\nthudding\nthud/MS\nthuggee/M\nthuggery/SM\nthuggish\nthug/MS\nThule/M\nthulium/SM\nthumbnail/MS\nthumbscrew/SM\nthumb/SMDG\nthumbtack/GMDS\nthump/RDMSG\nthunderbolt/MS\nthunderclap/SM\nthundercloud/SM\nthunderer/M\nthunderhead/SM\nthundering/Y\nthunderous/Y\nthundershower/MS\nthunderstorm/MS\nthunderstruck\nthundery\nthunder/ZGJDRMS\nthunk\nThurber/M\nThurman/M\nThur/MS\nThursday/SM\nThurstan/M\nThurston/M\nthus/Y\nthwack/DRSZG\nthwacker/M\nthwarter/M\nthwart/GSDRY\nthy\nthyme/SM\nthymine/MS\nthymus/SM\nthyratron/M\nthyristor/MS\nthyroglobulin\nthyroidal\nthyroid/S\nthyronine\nthyrotoxic\nthyrotrophic\nthyrotrophin\nthyrotropic\nthyrotropin/M\nthyroxine/M\nthyself\nTia/M\nTianjin\ntiara/MS\nTiberius/M\nTiber/M\nTibetan/S\nTibet/M\ntibiae\ntibial\ntibia/M\nTibold/M\nTiburon/M\nticker/M\nticket/SGMD\ntick/GZJRDMS\nticking/M\ntickler/M\ntickle/RSDZG\nticklishness/MS\nticklish/PY\nticktacktoe/S\nticktock/SMDG\ntic/MS\nTiconderoga/M\ntidal/Y\ntidbit/MS\ntiddlywinks/M\ntide/GJDS\ntideland/MS\ntidewater/SM\ntideway/SM\ntidily/U\ntidiness/USM\ntidying/M\ntidy/UGDSRPT\ntie/AUDS\ntieback/MS\nTiebold/M\nTiebout/M\ntiebreaker/SM\nTieck/M\nTiena/M\nTienanmen/M\nTientsin's\ntier/DGM\nTierney/M\nTiertza/M\nTiffanie/M\nTiffani/M\ntiffany/M\nTiffany/M\ntiff/GDMS\nTiffie/M\nTiffi/M\nTiff/M\nTiffy/M\ntigerish\ntiger/SM\ntightener/M\ntighten/JZGDR\ntightfisted\ntightness/MS\ntightrope/SM\ntight/STXPRNY\ntightwad/MS\ntigress/SM\nTigris/M\nTijuana/M\ntike's\nTilda/M\ntilde/MS\nTildie/M\nTildi/M\nTildy/M\ntile/DRSJMZG\ntiled/UE\nTiler/M\ntiles/U\ntiling/M\ntillable\ntillage/SM\ntill/EGSZDR\ntiller/GDM\ntiller's/E\nTillich/M\nTillie/M\nTillman/M\nTilly/M\ntilth/M\ntilt/RDSGZ\nTi/M\ntimber/DMSG\ntimbering/M\ntimberland/SM\ntimberline/S\ntimbrel/SM\ntimbre/MS\nTimbuktu/M\nti/MDRZ\ntimebase\ntime/DRSJMYZG\ntimekeeper/MS\ntimekeeping/SM\ntimelessness/S\ntimeless/PY\ntimeliness/SMU\ntimely/UTRP\ntimeout/S\ntimepiece/MS\ntimer/M\ntimescale/S\ntimeserver/MS\ntimeserving/S\ntimeshare/SDG\ntimespan\ntimestamped\ntimestamps\ntimetable/GMSD\ntimeworn\nTimex/M\ntimezone/S\ntimidity/SM\ntimidness/MS\ntimid/RYTP\nTimi/M\ntiming/M\nTimmie/M\nTimmi/M\nTim/MS\nTimmy/M\nTimofei/M\nTimon/M\ntimorousness/MS\ntimorous/YP\nTimoteo/M\nTimothea/M\nTimothee/M\nTimotheus/M\nTimothy/M\ntimothy/MS\ntimpani\ntimpanist/S\nTimur/M\nTina/M\ntincture/SDMG\ntinderbox/MS\ntinder/MS\nTine/M\ntine/SM\ntinfoil/MS\ntingeing\ntinge/S\nting/GYDM\ntingle/SDG\ntingling/Y\ntingly/TR\nTing/M\ntinily\ntininess/MS\ntinker/SRDMZG\nTinkertoy\ntinkle/SDG\ntinkling/M\ntinkly\ntin/MDGS\ntinned\ntinner/M\ntinnily\ntinniness/SM\ntinning/M\ntinnitus/MS\ntinny/RSTP\ntinplate/S\ntinsel/GMDYS\nTinseltown/M\ntinsmith/M\ntinsmiths\ntinter/M\ntintinnabulation/MS\nTintoretto/M\ntint/SGMRDB\ntintype/SM\ntinware/MS\ntiny/RPT\nTioga/M\nTiphanie/M\nTiphani/M\nTiphany/M\ntipi's\ntip/MS\ntipoff\nTippecanoe/M\ntipped\nTipperary/M\ntipper/MS\ntippet/MS\ntipping\ntippler/M\ntipple/ZGRSD\ntippy/R\ntipsily\ntipsiness/SM\ntipster/SM\ntipsy/TPR\ntiptoeing\ntiptoe/SD\ntiptop/S\ntirade/SM\nTirana's\nTirane\ntired/AYP\ntireder\ntiredest\ntiredness/S\ntirelessness/SM\ntireless/PY\ntire/MGDSJ\ntires/A\nTiresias/M\ntiresomeness/S\ntiresome/PY\ntiring/AU\nTirolean/S\nTirol/M\ntiro's\nTirrell/M\ntis\nTisha/M\nTish/M\ntissue/MGSD\ntitanate/M\nTitania/M\ntitanic\ntitanically\nTitanic/M\ntitanium/SM\ntitan/SM\nTitan/SM\ntitbit's\ntiter/M\ntither/M\ntithe/SRDGZM\ntithing/M\nTitian/M\ntitian/S\nTiticaca/M\ntitillate/XSDVNG\ntitillating/Y\ntitillation/M\ntitivate/NGDSX\ntitivation/M\ntitled/AU\ntitle/GMSRD\ntitleholder/SM\ntitling/A\ntitmice\ntitmouse/M\ntit/MRZS\nTito/SM\ntitrate/SDGN\ntitration/M\ntitted\ntitter/GDS\ntitting\ntittle/SDMG\ntitular/SY\nTitus/M\ntizzy/SM\nTKO\nTlaloc/M\nTLC\nTlingit/M\nTl/M\nTM\nTm/M\ntn\nTN\ntnpk\nTNT\ntoad/SM\ntoadstool/SM\ntoady/GSDM\ntoadyism/M\ntoaster/M\ntoastmaster/MS\ntoastmistress/S\ntoast/SZGRDM\ntoasty/TRS\ntobacconist/SM\ntobacco/SM\ntobaggon/SM\nTobago/M\nTobe/M\nTobey/M\nTobiah/M\nTobias/M\nTobie/M\nTobi/M\nTobin/M\nTobit/M\ntoboggan/MRDSZG\nTobye/M\nToby/M\nTocantins/M\ntoccata/M\nTocqueville\ntocsin/MS\nto/D\ntoday'll\ntoday/SM\nToddie/M\ntoddler/M\ntoddle/ZGSRD\nTodd/M\nToddy/M\ntoddy/SM\nTod/M\ntoecap/SM\ntoeclip/S\nTOEFL\ntoehold/MS\ntoeing\ntoe/MS\ntoenail/DMGS\ntoffee/SM\ntofu/S\ntoga/SMD\ntoge\ntogetherness/MS\ntogether/P\ntogged\ntogging\ntoggle/SDMG\nTogolese/M\nTogo/M\ntog/SMG\nToiboid/M\ntoilet/GMDS\ntoiletry/MS\ntoilette/SM\ntoil/SGZMRD\ntoilsomeness/M\ntoilsome/PY\nToinette/M\nTojo/M\ntokamak\nTokay/M\ntoke/GDS\ntokenism/SM\ntokenized\ntoken/SMDG\nTokugawa/M\nTokyoite/MS\nTokyo/M\nToland/M\ntold/AU\nToledo/SM\ntole/MGDS\ntolerability/IM\ntolerable/I\ntolerably/I\ntolerance/SIM\ntolerant/IY\ntolerate/XVNGSD\ntoleration/M\nTolkien\ntollbooth/M\ntollbooths\ntoll/DGS\nTolley/M\ntollgate/MS\ntollhouse/M\ntollway/S\nTolstoy/M\ntoluene/MS\nTolyatti/M\ntomahawk/SGMD\nTomasina/M\nTomasine/M\nToma/SM\nTomaso/M\ntomatoes\ntomato/M\nTombaugh/M\ntomb/GSDM\nTombigbee/M\ntomblike\ntombola/M\ntomboyish\ntomboy/MS\ntombstone/MS\ntomcat/SM\ntomcatted\ntomcatting\nTome/M\ntome/SM\ntomfoolery/MS\ntomfool/M\nTomi/M\nTomkin/M\nTomlin/M\nTom/M\ntommed\nTommie/M\nTommi/M\ntomming\ntommy/M\nTommy/M\ntomographic\ntomography/MS\ntomorrow/MS\nTompkins/M\nTomsk/M\ntom/SM\ntomtit/SM\ntonality/MS\ntonal/Y\ntonearm/S\ntone/ISRDZG\ntonelessness/M\ntoneless/YP\ntoner/IM\ntone's\nTonga/M\nTongan/SM\ntong/GRDS\ntongueless\ntongue/SDMG\ntonguing/M\nTonia/M\ntonic/SM\nTonie/M\ntonight/MS\nToni/M\nTonio/M\ntonk/MS\ntonnage/SM\ntonne/MS\nTonnie/M\ntonsillectomy/MS\ntonsillitis/SM\ntonsil/SM\nton/SKM\ntonsorial\ntonsure/SDGM\nTonto/M\nTonya/M\nTonye/M\nTony/M\ntony/RT\ntoodle\ntoo/H\ntook/A\ntool/AGDS\ntoolbox/SM\ntooler/SM\ntooling/M\ntoolkit/SM\ntoolmaker/M\ntoolmake/ZRG\ntoolmaking/M\ntool's\ntoolsmith\nToomey/M\ntooter/M\ntoot/GRDZS\ntoothache/SM\ntoothbrush/MSG\ntooth/DMG\ntoothily\ntoothless\ntoothmarks\ntoothpaste/SM\ntoothpick/MS\ntooths\ntoothsome\ntoothy/TR\ntootle/SRDG\ntootsie\nTootsie/M\ntoots/M\ntootsy/MS\ntopaz/MS\ntopcoat/MS\ntopdressing/S\nTopeka/M\ntoper/M\ntopflight\ntopgallant/M\ntopiary/S\ntopicality/MS\ntopical/Y\ntopic/MS\ntopknot/MS\ntopless\ntopmast/MS\ntopmost\ntopnotch/R\ntopocentric\ntopographer/SM\ntopographic\ntopographical/Y\ntopography/MS\ntopological/Y\ntopologist/MS\ntopology/MS\ntopped\ntopper/MS\ntopping/MS\ntopple/GSD\ntopsail/MS\ntopside/SRM\ntop/SMDRG\ntopsoil/GDMS\ntopspin/MS\nTopsy/M\ntoque/MS\nTorah/M\nTorahs\ntorchbearer/SM\ntorchlight/S\ntorch/SDMG\ntoreador/SM\nTore/M\ntore/S\nTorey/M\nTorie/M\ntori/M\nTori/M\nTorin/M\ntorment/GSD\ntormenting/Y\ntormentor/MS\ntorn\ntornadoes\ntornado/M\ntoroidal/Y\ntoroid/MS\nToronto/M\ntorpedoes\ntorpedo/GMD\ntorpidity/S\ntorpid/SY\ntorpor/MS\nTorquemada/M\ntorque/MZGSRD\nTorrance/M\nTorre/MS\ntorrence\nTorrence/M\nTorrens/M\ntorrential\ntorrent/MS\nTorrey/M\nTorricelli/M\ntorridity/SM\ntorridness/SM\ntorrid/RYTP\nTorrie/M\nTorrin/M\nTorr/XM\nTorry/M\ntorsional/Y\ntorsion/IAM\ntorsions\ntorsi's\ntor/SLM\ntorso/SM\ntors/S\ntort/ASFE\ntortellini/MS\ntorte/MS\ntorten\ntortilla/MS\ntortoiseshell/SM\ntortoise/SM\nTortola/M\ntortoni/MS\ntort's\nTortuga/M\ntortuousness/MS\ntortuous/PY\ntorture/ZGSRD\ntorturous\ntorus/MS\nTory/SM\nTosca/M\nToscanini/M\nToshiba/M\ntoss/SRDGZ\ntossup/MS\ntotaler/M\ntotalistic\ntotalitarianism/SM\ntotalitarian/S\ntotality/MS\ntotalizator/S\ntotalizing\ntotal/ZGSRDYM\ntotemic\ntotem/MS\ntoter/M\ntote/S\ntoting/M\ntot/MDRSG\nToto/M\ntotted\ntotterer/M\ntottering/Y\ntotter/ZGRDS\ntotting\ntoucan/MS\ntouchable/U\ntouch/ASDG\ntouchdown/SM\ntouch<63>\ntouched/U\ntoucher/M\ntouchily\ntouchiness/SM\ntouching/SY\ntouchline/M\ntouchscreen\ntouchstone/SM\ntouchy/TPR\ntoughen/DRZG\ntoughener/M\ntoughness/SM\ntoughs\ntough/TXGRDNYP\nToulouse/M\ntoupee/SM\ntoured/CF\ntourer/M\ntour/GZSRDM\ntouring/F\ntourism/SM\ntouristic\ntourist/SM\ntouristy\ntourmaline/SM\ntournament/MS\ntourney/GDMS\ntourniquet/MS\ntour's/CF\ntours/CF\ntousle/GSD\ntouter/M\ntout/SGRD\nTova/M\nTove/M\ntowardliness/M\ntowardly/P\ntowards\ntoward/YU\ntowboat/MS\ntow/DRSZG\ntowelette/S\ntowel/GJDMS\ntoweling/M\ntower/GMD\ntowering/Y\ntowhead/MSD\ntowhee/SM\ntowline/MS\ntowner/M\nTownes\nTowney/M\ntownhouse/S\nTownie/M\ntownie/S\nTownley/M\nTown/M\nTownsend/M\ntownsfolk\ntownship/MS\ntownsman/M\ntownsmen\ntownspeople/M\ntown/SRM\ntownswoman/M\ntownswomen\nTowny/M\ntowpath/M\ntowpaths\ntowrope/MS\nTowsley/M\ntoxemia/MS\ntoxicity/MS\ntoxicological\ntoxicologist/SM\ntoxicology/MS\ntoxic/S\ntoxin/MS\ntoyer/M\ntoymaker\ntoy/MDRSG\nToynbee/M\nToyoda/M\nToyota/M\ntoyshop\ntr\ntraceability/M\ntraceableness/M\ntraceable/P\ntrace/ASDG\ntraceback/MS\ntraced/U\nTracee/M\ntraceless/Y\nTrace/M\ntracepoint/SM\ntracer/MS\ntracery/MDS\ntrace's\nTracey/M\ntracheae\ntracheal/M\ntrachea/M\ntracheotomy/SM\nTracie/M\nTraci/M\ntracing/SM\ntrackage\ntrackball/S\ntrackbed\ntracked/U\ntracker/M\ntrackless\ntracksuit/SM\ntrack/SZGMRD\ntractability/SI\ntractable/I\ntractably/I\ntract/ABS\nTractarians\ntraction/KSCEMAF\ntractive/KFE\ntractor/FKMASC\ntract's\ntracts/CEFK\nTracy/M\ntrademark/GSMD\ntrader/M\ntradesman/M\ntradesmen\ntradespeople\ntradespersons\ntrade/SRDGZM\ntradeswoman/M\ntradeswomen\ntraditionalism/MS\ntraditionalistic\ntraditionalist/MS\ntraditionalized\ntraditionally\ntraditional/U\ntradition/SM\ntraduce/DRSGZ\nTrafalgar/M\ntrafficked\ntrafficker/MS\ntrafficking/S\ntraffic/SM\ntragedian/SM\ntragedienne/MS\ntragedy/MS\ntragically\ntragicomedy/SM\ntragicomic\ntragic/S\ntrailblazer/MS\ntrailblazing/S\ntrailer/GDM\ntrails/F\ntrailside\ntrail/SZGJRD\ntrainable\ntrain/ASDG\ntrained/U\ntrainee/MS\ntraineeships\ntrainer/MS\ntraining/SM\ntrainman/M\ntrainmen\ntrainspotter/S\ntraipse/DSG\ntrait/MS\ntraitorous/Y\ntraitor/SM\nTrajan/M\ntrajectory/MS\ntrammed\ntrammeled/U\ntrammel/GSD\ntramming\ntram/MS\ntrample/DGRSZ\ntrampler/M\ntrampoline/GMSD\ntramp/RDSZG\ntramway/M\ntrance/MGSD\ntranche/SM\nTran/M\ntranquility/S\ntranquilized/U\ntranquilize/JGZDSR\ntranquilizer/M\ntranquilizes/A\ntranquilizing/YM\ntranquillize/GRSDZ\ntranquillizer/M\ntranquilness/M\ntranquil/PTRY\ntransact/GSD\ntransactional\ntransaction/MS\ntransactor/SM\ntransalpine\ntransaminase\ntransatlantic\nTranscaucasia/M\ntransceiver/SM\ntranscendence/MS\ntranscendentalism/SM\ntranscendentalist/SM\ntranscendental/YS\ntranscendent/Y\ntranscend/SDG\ntransconductance\ntranscontinental\ntranscribe/DSRGZ\ntranscriber/M\ntranscription/SM\ntranscript/SM\ntranscultural\ntransducer/SM\ntransduction/M\ntransect/DSG\ntransept/SM\ntransferability/M\ntransferal/MS\ntransfer/BSMD\ntransferee/M\ntransference/SM\ntransferor/MS\ntransferral/SM\ntransferred\ntransferrer/SM\ntransferring\ntransfiguration/SM\ntransfigure/SDG\ntransfinite/Y\ntransfix/SDG\ntransformational\ntransformation/MS\ntransform/DRZBSG\ntransformed/U\ntransformer/M\ntransfuse/XSDGNB\ntransfusion/M\ntransgression/SM\ntransgressor/S\ntransgress/VGSD\ntrans/I\ntransience/SM\ntransiency/S\ntransient/YS\ntransistorize/GDS\ntransistor/SM\nTransite/M\ntransitional/Y\ntransition/MDGS\ntransitivenesses\ntransitiveness/IM\ntransitive/PIY\ntransitivity/MS\ntransitoriness/M\ntransitory/P\ntransit/SGVMD\ntransl\ntranslatability/M\ntranslatable/U\ntranslated/AU\ntranslate/VGNXSDB\ntranslational\ntranslation/M\ntranslator/SM\ntransliterate/XNGSD\ntranslucence/SM\ntranslucency/MS\ntranslucent/Y\ntransmigrate/XNGSD\ntransmissible\ntransmission/MSA\ntransmissive\ntransmit/AS\ntransmittable\ntransmittal/SM\ntransmittance/MS\ntransmitted/A\ntransmitter/SM\ntransmitting/A\ntransmogrification/M\ntransmogrify/GXDSN\ntransmutation/SM\ntransmute/GBSD\ntransnational/S\ntransoceanic\ntransom/SM\ntransonic\ntranspacific\ntransparency/MS\ntransparentness/M\ntransparent/YP\ntranspiration/SM\ntranspire/GSD\ntransplantation/S\ntransplant/GRDBS\ntranspolar\ntransponder/MS\ntransportability\ntransportable/U\ntransportation/SM\ntransport/BGZSDR\ntranspose/BGSD\ntransposed/U\ntransposition/SM\nTransputer/M\ntranssexualism/MS\ntranssexual/SM\ntransship/LS\ntransshipment/SM\ntransshipped\ntransshipping\ntransubstantiation/MS\nTransvaal/M\ntransversal/YM\ntransverse/GYDS\ntransvestism/SM\ntransvestite/SM\ntransvestitism\nTransylvania/M\ntrapdoor/S\ntrapeze/DSGM\ntrapezium/MS\ntrapezoidal\ntrapezoid/MS\ntrap/MS\ntrappable/U\ntrapped\ntrapper/SM\ntrapping/S\nTrappist/MS\ntrapshooting/SM\ntrashcan/SM\ntrashiness/SM\ntrash/SRDMG\ntrashy/TRP\nTrastevere/M\ntrauma/MS\ntraumatic\ntraumatically\ntraumatize/SDG\ntravail/SMDG\ntraveled/U\ntraveler/M\ntravelog's\ntravelogue/S\ntravel/SDRGZJ\nTraver/MS\ntraversal/SM\ntraverse/GBDRS\ntraverser/M\ntravertine/M\ntravesty/SDGM\nTravis/M\nTravus/M\ntrawler/M\ntrawl/RDMSZG\ntray/SM\ntreacherousness/SM\ntreacherous/PY\ntreachery/SM\ntreacle/DSGM\ntreacly\ntreader/M\ntreadle/GDSM\ntreadmill/MS\ntread/SAGD\nTreadwell/M\ntreas\ntreason/BMS\ntreasonous\ntreasure/DRSZMG\ntreasurer/M\ntreasurership\ntreasury/SM\nTreasury/SM\ntreatable\ntreated/U\ntreater/S\ntreatise/MS\ntreatment/MS\ntreat's\ntreat/SAGDR\ntreaty/MS\ntreble/SDG\nTreblinka/M\ntreeing\ntreeless\ntreelike\ntree/MDS\ntreetop/SM\ntrefoil/SM\nTrefor/M\ntrekked\ntrekker/MS\nTrekkie/M\ntrekking\ntrek/MS\ntrellis/GDSM\nTremaine/M\nTremain/M\ntrematode/SM\nTremayne/M\ntremble/JDRSG\ntrembler/M\ntrembles/M\ntrembly\ntremendousness/M\ntremendous/YP\ntremolo/MS\ntremor/MS\ntremulousness/SM\ntremulous/YP\ntrenchancy/MS\ntrenchant/Y\ntrencherman/M\ntrenchermen\ntrencher/SM\ntrench/GASD\ntrench's\ntrendily\ntrendiness/S\ntrend/SDMG\ntrendy/PTRS\nTrenna/M\nTrent/M\nTrenton/M\ntrepanned\ntrepidation/MS\nTresa/M\nTrescha/M\ntrespasser/M\ntrespass/ZRSDG\nTressa/M\ntressed/E\ntresses/E\ntressing/E\ntress/MSDG\ntrestle/MS\nTrevar/M\nTrevelyan/M\nTrever/M\nTrevino/M\nTrevor/M\nTrev/RM\nTrey/M\ntrey/MS\ntriableness/M\ntriable/P\ntriadic\ntriad/MS\ntriage/SDMG\ntrial/ASM\ntrialization\ntrialled\ntrialling\ntriamcinolone\ntriangle/SM\ntriangulable\ntriangularization/S\ntriangular/Y\ntriangulate/YGNXSD\ntriangulation/M\nTriangulum/M\nTrianon/M\nTriassic\ntriathlon/S\ntriatomic\ntribalism/MS\ntribal/Y\ntribe/MS\ntribesman/M\ntribesmen\ntribeswoman\ntribeswomen\ntribulate/NX\ntribulation/M\ntribunal/MS\ntribune/SM\ntributary/MS\ntribute/EGSF\ntribute's\ntrice/GSDM\ntricentennial/S\ntriceps/SM\ntriceratops/M\ntrichinae\ntrichina/M\ntrichinoses\ntrichinosis/M\ntrichloroacetic\ntrichloroethane\ntrichotomy/M\ntrichromatic\nTricia/M\ntrickery/MS\ntrick/GMSRD\ntrickily\ntrickiness/SM\ntrickle/DSG\ntrickster/MS\ntricky/RPT\ntricolor/SMD\ntricycle/SDMG\ntrident/SM\ntridiagonal\ntried/UA\ntriennial/SY\ntrier/AS\ntrier's\ntries/A\nTrieste/M\ntriffid/S\ntrifle/MZGJSRD\ntrifler/M\ntrifluoride/M\ntrifocals\ntrigged\ntrigger/GSDM\ntriggest\ntrigging\ntriglyceride/MS\ntrigonal/Y\ntrigonometric\ntrigonometrical\ntrigonometry/MS\ntrigram/S\ntrig/S\ntrihedral\ntrike/GMSD\ntrilateral/S\ntrilby/SM\ntrilingual\ntrillion/SMH\ntrillionth/M\ntrillionths\ntrillium/SM\ntrill/RDMGS\ntrilobite/MS\ntrilogy/MS\ntrimaran/MS\nTrimble/M\ntrimer/M\ntrimester/MS\ntrimmed/U\ntrimmer/MS\ntrimmest\ntrimming/MS\ntrimness/S\ntrimodal\ntrimonthly\ntrim/PSYR\nTrimurti/M\nTrina/M\nTrinidad/M\ntrinitarian/S\ntrinitrotoluene/SM\ntrinity/MS\nTrinity/MS\ntrinketer/M\ntrinket/MRDSG\ntriode/MS\ntrio/SM\ntrioxide/M\ntripartite/N\ntripartition/M\ntripe/MS\ntriphenylarsine\ntriphenylphosphine\ntriphenylstibine\ntriphosphopyridine\ntriple/GSD\ntriplet/SM\ntriplex/S\ntriplicate/SDG\ntriplication/M\ntriply/GDSN\nTrip/M\ntripodal\ntripod/MS\ntripoli/M\nTripoli/M\ntripolyphosphate\ntripos/SM\ntripped\nTrippe/M\ntripper/MS\ntripping/Y\nTripp/M\ntrip/SMY\ntriptych/M\ntriptychs\ntripwire/MS\ntrireme/SM\nTris\ntrisect/GSD\ntrisection/S\ntrisector\nTrisha/M\nTrish/M\ntrisodium\nTrista/M\nTristam/M\nTristan/M\ntristate\ntrisyllable/M\ntritely/F\ntriteness/SF\ntrite/SRPTY\ntritium/MS\ntriton/M\nTriton/M\ntriumphal\ntriumphalism\ntriumphant/Y\ntriumph/GMD\ntriumphs\ntriumvirate/MS\ntriumvir/MS\ntriune\ntrivalent\ntrivet/SM\ntrivia\ntriviality/MS\ntrivialization/MS\ntrivialize/DSG\ntrivial/Y\ntrivium/M\nTrixie/M\nTrixi/M\nTrix/M\nTrixy/M\nTrobriand/M\ntrochaic/S\ntrochee/SM\ntrod/AU\ntrodden/UA\ntrodes\ntroff/MR\ntroglodyte/MS\ntroika/SM\nTrojan/MS\ntroll/DMSG\ntrolled/F\ntrolleybus/S\ntrolley/SGMD\ntrolling/F\ntrollish\nTrollope/M\ntrollop/GSMD\ntrolly's\ntrombone/MS\ntrombonist/SM\ntromp/DSG\nTrondheim/M\ntrooper/M\ntroopship/SM\ntroop/SRDMZG\ntrope/SM\nTropez/M\ntrophic\ntrophy/MGDS\ntropical/SY\ntropic/MS\ntropism/SM\ntropocollagen\ntroposphere/MS\ntropospheric\ntroth/GDM\ntroths\ntrot/S\nTrotsky/M\ntrotted\ntrotter/SM\ntrotting\ntroubadour/SM\ntroubled/U\ntrouble/GDRSM\ntroublemaker/MS\ntroubler/M\ntroubleshooter/M\ntroubleshoot/SRDZG\ntroubleshot\ntroublesomeness/M\ntroublesome/YP\ntrough/M\ntroughs\ntrounce/GZDRS\ntrouncer/M\ntroupe/MZGSRD\ntrouper/M\ntrouser/DMGS\ntrousseau/M\ntrousseaux\nTroutman/M\ntrout/SM\ntrove/SM\ntroweler/M\ntrowel/SMDRGZ\ntrow/SGD\nTroyes\nTroy/M\ntroy/S\nTrstram/M\ntruancy/MS\ntruant/SMDG\ntruce/SDGM\nTruckee/M\ntrucker/M\ntrucking/M\ntruckle/GDS\ntruckload/MS\ntruck/SZGMRDJ\ntruculence/SM\ntruculent/Y\nTruda/M\nTrudeau/M\nTrude/M\nTrudey/M\ntrudge/SRDG\nTrudie/M\nTrudi/M\nTrudy/M\ntrue/DRSPTG\ntruelove/MS\nTrueman/M\ntrueness/M\ntruer/U\ntruest/U\ntruffle/MS\ntruism/SM\nTrujillo/M\nTrula/M\ntruly/U\nTrumaine/M\nTruman/M\nTrumann/M\nTrumbull/M\ntrump/DMSG\ntrumpery/SM\ntrumpeter/M\ntrumpet/MDRZGS\nTrump/M\ntruncate/NGDSX\ntruncation/M\ntruncheon/MDSG\ntrundle/GZDSR\ntrundler/M\ntrunk/GSMD\ntrunnion/SM\ntrusser/M\ntrussing/M\ntruss/SRDG\ntrusted/EU\ntrusteeing\ntrustee/MDS\ntrusteeship/SM\ntruster/M\ntrustful/EY\ntrustfulness/SM\ntrustiness/M\ntrusting/Y\ntrust/RDMSG\ntrusts/E\ntrustworthier\ntrustworthiest\ntrustworthiness/MS\ntrustworthy/UP\ntrusty/PTMSR\nTruth\ntruthfulness/US\ntruthful/UYP\ntruths/U\ntruth/UM\nTRW\ntrying/Y\ntry/JGDRSZ\ntryout/MS\ntrypsin/M\ntryst/GDMS\nts\nT's\ntsarevich\ntsarina's\ntsarism/M\ntsarist\ntsetse/S\nTsimshian/M\nTsiolkovsky/M\nTsitsihar/M\ntsp\ntsunami/MS\nTsunematsu/M\nTswana/M\nTTL\ntty/M\nttys\nTuamotu/M\nTuareg/M\ntubae\ntubal\ntuba/SM\ntubbed\ntubbing\ntubby/TR\ntubeless\ntubercle/MS\ntubercular/S\ntuberculin/MS\ntuberculoses\ntuberculosis/M\ntuberculous\ntuber/M\ntuberose/SM\ntuberous\ntube/SM\ntubing/M\ntub/JMDRSZG\nTubman/M\ntubular/Y\ntubule/SM\ntucker/GDM\nTucker/M\ntuck/GZSRD\nTuckie/M\nTuck/RM\nTucky/M\nTucson/M\nTucuman/M\nTudor/MS\nTue/S\nTuesday/SM\ntufter/M\ntuft/GZSMRD\ntufting/M\ntugboat/MS\ntugged\ntugging\ntug/S\ntuition/ISM\nTulane/M\ntularemia/S\ntulip/SM\ntulle/SM\nTulley/M\nTull/M\nTully/M\nTulsa/M\ntum\ntumbledown\ntumbler/M\ntumbleweed/MS\ntumble/ZGRSDJ\ntumbrel/SM\ntumescence/S\ntumescent\ntumidity/MS\ntumid/Y\ntummy/SM\ntumor/MDS\ntumorous\nTums/M\ntumult/SGMD\ntumultuousness/M\ntumultuous/PY\ntumulus/M\ntunableness/M\ntunable/P\ntuna/SM\ntundra/SM\ntun/DRJZGBS\ntune/CSDG\ntunefulness/MS\ntuneful/YP\ntuneless/Y\ntuner/M\ntune's\ntuneup/S\ntung\ntungstate/M\ntungsten/SM\nTunguska/M\nTungus/M\ntunic/MS\ntuning/A\ntuning's\nTunisia/M\nTunisian/S\nTunis/M\ntunned\ntunneler/M\ntunnel/MRDSJGZ\ntunning\ntunny/SM\ntupelo/M\nTupi/M\ntuple/SM\ntuppence/M\nTupperware\nTupungato/M\nturban/SDM\nturbid\nturbidity/SM\nturbinate/SD\nturbine/SM\nturbocharged\nturbocharger/SM\nturbofan/MS\nturbojet/MS\nturboprop/MS\nturbo/SM\nturbot/MS\nturbulence/SM\nturbulent/Y\nturd/MS\ntureen/MS\nturf/DGSM\nturfy/RT\nTurgenev/M\nturgidity/SM\nturgidness/M\nturgid/PY\nTuring/M\nTurin/M\nTurkestan/M\nTurkey/M\nturkey/SM\nTurkic/SM\nTurkish\nTurkmenistan/M\nturk/S\nTurk/SM\nturmeric/MS\nturmoil/SDMG\nturnabout/SM\nturnaround/MS\nturn/AZGRDBS\nturnbuckle/SM\nturncoat/SM\nturned/U\nturner/M\nTurner/M\nturning/MS\nturnip/SMDG\nturnkey/MS\nturnoff/MS\nturnout/MS\nturnover/SM\nturnpike/MS\nturnround/MS\nturnstile/SM\nturnstone/M\nturntable/SM\nturpentine/GMSD\nTurpin/M\nturpitude/SM\nturquoise/SM\nturret/SMD\nturtleback/MS\nturtledove/MS\nturtleneck/SDM\nturtle/SDMG\nturves's\nturvy\nTuscaloosa/M\nTuscan\nTuscany/M\nTuscarora/M\nTuscon/M\ntush/SDG\nTuskegee/M\ntusker/M\ntusk/GZRDMS\ntussle/GSD\ntussock/MS\ntussocky\nTussuad/M\nTutankhamen/M\ntutelage/MS\ntutelary/S\nTut/M\ntutored/U\ntutorial/MS\ntutor/MDGS\ntutorship/S\ntut/S\nTutsi\ntutted\ntutting\ntutti/S\nTuttle/M\ntutu/SM\nTuvalu\ntuxedo/SDM\ntux/S\nTVA\nTV/M\nTVs\ntwaddle/GZMRSD\ntwaddler/M\nTwain/M\ntwain/S\nTWA/M\ntwang/MDSG\ntwangy/TR\ntwas\ntweak/SGRD\ntweediness/M\nTweedledee/M\nTweedledum/M\nTweed/M\ntwee/DP\ntweed/SM\ntweedy/PTR\ntween\ntweeter/M\ntweet/ZSGRD\ntweezer/M\ntweeze/ZGRD\ntwelfth\ntwelfths\ntwelvemonth/M\ntwelvemonths\ntwelve/MS\ntwentieths\ntwenty/MSH\ntwerp/MS\ntwice/R\ntwiddle/GRSD\ntwiddler/M\ntwiddly/RT\ntwigged\ntwigging\ntwiggy/RT\ntwig/SM\nTwila/M\ntwilight/MS\ntwilit\ntwill/SGD\ntwiner/M\ntwine/SM\ntwinge/SDMG\nTwinkie\ntwinkler/M\ntwinkle/RSDG\ntwinkling/M\ntwinkly\ntwinned\ntwinning\ntwin/RDMGZS\ntwirler/M\ntwirling/Y\ntwirl/SZGRD\ntwirly/TR\ntwisted/U\ntwister/M\ntwists/U\ntwist/SZGRD\ntwisty\ntwitch/GRSD\ntwitchy/TR\ntwit/S\ntwitted\ntwitterer/M\ntwitter/SGRD\ntwittery\ntwitting\ntwixt\ntwofer/MS\ntwofold/S\ntwo/MS\ntwopence/SM\ntwopenny/S\ntwosome/MS\ntwp\nTwp\nTWX\nTwyla/M\nTX\nt/XTJBG\nTybalt/M\nTybie/M\nTybi/M\ntycoon/MS\ntyeing\nTye/M\ntying/UA\ntyke/SM\nTylenol/M\nTyler/M\nTy/M\nTymon/M\nTymothy/M\ntympani\ntympanist/SM\ntympanum/SM\nTynan/M\nTyndale/M\nTyndall/M\nTyne/M\ntypeahead\ntypecast/SG\ntyped/AU\ntypedef/S\ntypeface/MS\ntypeless\ntype/MGDRSJ\ntypes/A\ntypescript/SM\ntypeset/S\ntypesetter/MS\ntypesetting/SM\ntypewriter/M\ntypewrite/SRJZG\ntypewriting/M\ntypewritten\ntypewrote\ntyphoid/SM\nTyphon/M\ntyphoon/SM\ntyphus/SM\ntypicality/MS\ntypically\ntypicalness/M\ntypical/U\ntypification/M\ntypify/SDNXG\ntyping/A\ntypist/MS\ntypographer/SM\ntypographic\ntypographical/Y\ntypography/MS\ntypological/Y\ntypology/MS\ntypo/MS\ntyrannic\ntyrannicalness/M\ntyrannical/PY\ntyrannicide/M\ntyrannizer/M\ntyrannize/ZGJRSD\ntyrannizing/YM\ntyrannosaur/MS\ntyrannosaurus/S\ntyrannous\ntyranny/MS\ntyrant/MS\nTyree/M\ntyreo\nTyrolean/S\nTyrol's\nTyrone/M\ntyrosine/M\ntyro/SM\nTyrus/M\nTyson/M\ntzarina's\ntzar's\nTzeltal/M\nu\nU\nUAR\nUART\nUAW\nUbangi/M\nubiquitous/YP\nubiquity/S\nUcayali/M\nUccello/M\nUCLA/M\nUdale/M\nUdall/M\nudder/SM\nUdell/M\nUfa/M\nufologist/S\nufology/MS\nUFO/S\nUganda/M\nUgandan/S\nugh\nughs\nuglification\nugliness/MS\nuglis\nugly/PTGSRD\nUgo/M\nuh\nUHF\nUighur\nUjungpandang/M\nUK\nukase/SM\nUkraine/M\nUkrainian/S\nukulele/SM\nUL\nUla/M\nUlberto/M\nulcerate/NGVXDS\nulceration/M\nulcer/MDGS\nulcerous\nUlick/M\nUlises/M\nUlla/M\nUllman/M\nulnae\nulna/M\nulnar\nUlrica/M\nUlrich/M\nUlrick/M\nUlric/M\nUlrika/M\nUlrikaumeko/M\nUlrike/M\nUlster/M\nulster/MS\nult\nulterior/Y\nultimas\nultimate/DSYPG\nultimateness/M\nultimatum/MS\nultimo\nultracentrifugally\nultracentrifugation\nultracentrifuge/M\nultraconservative/S\nultrafast\nultrahigh\nultralight/S\nultramarine/SM\nultramodern\nultramontane\nultra/S\nultrashort\nultrasonically\nultrasonic/S\nultrasonics/M\nultrasound/SM\nultrastructure/M\nUltrasuede\nultraviolet/SM\nUltrix/M\nULTRIX/M\nululate/DSXGN\nululation/M\nUlyanovsk/M\nUlysses/M\num\numbel/MS\number/GMDS\nUmberto/M\numbilical/S\numbilici\numbilicus/M\numbrage/MGSD\numbrageous\numbra/MS\numbrella/GDMS\nUmbriel/M\nUmeko/M\numiak/MS\numlaut/GMDS\numpire/MGSD\nump/MDSG\numpteen/H\nUN\nunabated/Y\nunabridged/S\nunacceptability\nunacceptable\nunaccepted\nunaccommodating\nunaccountability\nunaccustomed/Y\nunadapted\nunadulterated/Y\nunadventurous\nunalienability\nunalterableness/M\nunalterable/P\nunalterably\nUna/M\nunambiguity\nunambiguous\nunambitious\nunamused\nunanimity/SM\nunanimous/Y\nunanticipated/Y\nunapologetic\nunapologizing/M\nunappeasable\nunappeasably\nunappreciative\nunary\nunassailableness/M\nunassailable/P\nunassertive\nunassumingness/M\nunassuming/PY\nunauthorized/PY\nunavailing/PY\nunaware/SPY\nunbalanced/P\nunbar\nunbarring\nunbecoming/P\nunbeknown\nunbelieving/Y\nunbiased/P\nunbid\nunbind/G\nunblessed\nunblinking/Y\nunbodied\nunbolt/G\nunbreakability\nunbred\nunbroken\nunbuckle\nunbudging/Y\nunburnt\nuncap\nuncapping\nuncatalogued\nuncauterized/MS\nunceasing/Y\nuncelebrated\nuncertain/P\nunchallengeable\nunchangingness/M\nunchanging/PY\nuncharacteristic\nuncharismatic\nunchastity\nunchristian\nuncial/S\nuncivilized/Y\nunclassified\nuncle/MSD\nunclouded/Y\nuncodable\nuncollected\nuncoloredness/M\nuncolored/PY\nuncombable\nuncommunicative\nuncompetitive\nuncomplicated\nuncomprehending/Y\nuncompromisable\nunconcerned/P\nunconcern/M\nunconfirmed\nunconfused\nunconscionableness/M\nunconscionable/P\nunconscionably\nunconstitutional\nunconsumed\nuncontentious\nuncontrollability\nunconvertible\nuncool\nuncooperative\nuncork/G\nuncouple/G\nuncouthness/M\nuncouth/YP\nuncreate/V\nuncritical\nuncross/GB\nuncrowded\nunction/IM\nunctions\nunctuousness/MS\nunctuous/PY\nuncustomary\nuncut\nundated/I\nundaunted/Y\nundeceive\nundecided/S\nundedicated\nundefinability\nundefinedness/M\nundefined/P\nundelete\nundeliverability\nundeniableness/M\nundeniable/P\nundeniably\nundependable\nunderachiever/M\nunderachieve/SRDGZ\nunderact/GDS\nunderadjusting\nunderage/S\nunderarm/DGS\nunderbedding\nunderbelly/MS\nunderbidding\nunderbid/S\nunderbracing\nunderbrush/MSDG\nundercarriage/MS\nundercharge/GSD\nunderclassman\nunderclassmen\nunderclass/S\nunderclothes\nunderclothing/MS\nundercoating/M\nundercoat/JMDGS\nunderconsumption/M\nundercooked\nundercount/S\nundercover\nundercurrent/SM\nundercut/S\nundercutting\nunderdeveloped\nunderdevelopment/MS\nunderdog/MS\nunderdone\nundereducated\nunderemphasis\nunderemployed\nunderemployment/SM\nunderenumerated\nunderenumeration\nunderestimate/NGXSD\nunderexploited\nunderexpose/SDG\nunderexposure/SM\nunderfed\nunderfeed/SG\nunderfloor\nunderflow/GDMS\nunderfoot\nunderfund/DG\nunderfur/MS\nundergarment/SM\nundergirding\nundergoes\nundergo/G\nundergone\nundergrad/MS\nundergraduate/MS\nunderground/RMS\nundergrowth/M\nundergrowths\nunderhand/D\nunderhandedness/MS\nunderhanded/YP\nunderheat\nunderinvestment\nunderlaid\nunderlain/S\nunderlay/GS\nunderlie\nunderline/GSDJ\nunderling/MS\nunderlip/SM\nunderloaded\nunderly/GS\nundermanned\nundermentioned\nundermine/SDG\nundermost\nunderneath\nunderneaths\nundernourished\nundernourishment/SM\nunderpaid\nunderpants\nunderpart/MS\nunderpass/SM\nunderpay/GSL\nunderpayment/SM\nunderperformed\nunderpinned\nunderpinning/MS\nunderpin/S\nunderplay/SGD\nunderpopulated\nunderpopulation/M\nunderpowered\nunderpricing\nunderprivileged\nunderproduction/MS\nunderrate/GSD\nunderregistration/M\nunderreported\nunderreporting\nunderrepresentation/M\nunderrepresented\nunderscore/SDG\nundersealed\nundersea/S\nundersecretary/SM\nundersell/SG\nundersexed\nundershirt/SM\nundershoot/SG\nundershorts\nundershot\nunderside/SM\nundersigned/M\nundersign/SGD\nundersized\nundersizes\nundersizing\nunderskirt/MS\nundersold\nunderspecification\nunderspecified\nunderspend/G\nunderstaffed\nunderstandability/M\nunderstandably\nunderstanding/YM\nunderstand/RGSJB\nunderstate/GSDL\nunderstatement/MS\nunderstocked\nunderstood\nunderstrength\nunderstructure/SM\nunderstudy/GMSD\nundertaken\nundertaker/M\nundertake/SRGZJ\nundertaking/M\nunderthings\nundertone/SM\nundertook\nundertow/MS\nunderused\nunderusing\nunderutilization/M\nunderutilized\nundervaluation/S\nundervalue/SDG\nunderwater/S\nunderway\nunderwear/M\nunderweight/S\nunderwent\nunderwhelm/DGS\nunderwood/M\nUnderwood/M\nunderworld/MS\nunderwrite/GZSR\nunderwriter/M\nunderwritten\nunderwrote\nunder/Y\nundeserving\nundesigned\nundeviating/Y\nundialyzed/SM\nundiplomatic\nundiscerning\nundiscriminating\nundo/GJ\nundoubted/Y\nundramatic\nundramatized/SM\nundress/G\nundrinkability\nundrinkable\nundroppable\nundue\nundulant\nundulate/XDSNG\nundulation/M\nunearthliness/S\nunearthly/P\nunearth/YG\nunease\nuneconomic\nuneducated\nunemployed/S\nunencroachable\nunending/Y\nunendurable/P\nunenergized/MS\nunenforced\nunenterprising\nUNESCO\nunethical\nuneulogized/SM\nunexacting\nunexceptionably\nunexcited\nunexpectedness/MS\nunfading/Y\nunfailingness/M\nunfailing/P\nunfamiliar\nunfashionable\nunfathomably\nunfavored\nunfeeling\nunfeigned/Y\nunfelt\nunfeminine\nunfertile\nunfetchable\nunflagging\nunflappability/S\nunflappable\nunflappably\nunflinching/Y\nunfold/LG\nunfoldment/M\nunforced\nunforgeable\nunfossilized/MS\nunfraternizing/SM\nunfrozen\nunfulfillable\nunfunny\nunfussy\nungainliness/MS\nungainly/PRT\nUngava/M\nungenerous\nungentle\nunglamorous\nungrammaticality\nungrudging\nunguent/MS\nungulate/MS\nunharmonious\nunharness/G\nunhistorical\nunholy/TP\nunhook/DG\nunhydrolyzed/SM\nunhygienic\nUnibus/M\nunicameral\nUNICEF\nunicellular\nUnicode/M\nunicorn/SM\nunicycle/MGSD\nunicyclist/MS\nunideal\nunidimensional\nunidiomatic\nunidirectionality\nunidirectional/Y\nunidolized/MS\nunifiable\nunification/MA\nunifier/MS\nunifilar\nuniformity/MS\nuniformness/M\nuniform/TGSRDYMP\nunify/AXDSNG\nunilateralism/M\nunilateralist\nunilateral/Y\nunimodal\nunimpeachably\nunimportance\nunimportant\nunimpressive\nunindustrialized/MS\nuninhibited/YP\nuninominal\nuninsured\nunintellectual\nunintended\nuninteresting\nuninterruptedness/M\nuninterrupted/YP\nunintuitive\nuninviting\nunion/AEMS\nunionism/SM\nunionist/SM\nUnionist/SM\nunionize\nUnion/MS\nUniPlus/M\nunipolar\nuniprocessor/SM\nuniqueness/S\nunique/TYSRP\nUniroyal/M\nunisex/S\nUniSoft/M\nunison/MS\nUnisys/M\nunitarianism/M\nUnitarianism/SM\nunitarian/MS\nUnitarian/MS\nunitary\nunite/AEDSG\nunited/Y\nuniter/M\nunitize/GDS\nunit/VGRD\nunity/SEM\nuniv\nUnivac/M\nunivalent/S\nunivalve/MS\nunivariate\nuniversalism/M\nuniversalistic\nuniversality/SM\nuniversalize/DSRZG\nuniversalizer/M\nuniversal/YSP\nuniverse/MS\nuniversity/MS\nUnix/M\nUNIX/M\nunjam\nunkempt\nunkind/TP\nunkink\nunknightly\nunknowable/S\nunknowing\nunlabored\nunlace/G\nunlearn/G\nunlikeable\nunlikeliness/S\nunlimber/G\nunlimited\nunlit\nunliterary\nunloose/G\nunlucky/TP\nunmagnetized/MS\nunmanageably\nunmannered/Y\nunmask/G\nunmeaning\nunmeasured\nunmeetable\nunmelodious\nunmemorable\nunmemorialized/MS\nunmentionable/S\nunmerciful\nunmeritorious\nunmethodical\nunmineralized/MS\nunmissable\nunmistakably\nunmitigated/YP\nunmnemonic\nunmobilized/SM\nunmoral\nunmount/B\nunmovable\nunmoving\nunnaturalness/M\nunnavigable\nunnerving/Y\nunobliging\nunoffensive\nunofficial\nunorganized/YP\nunorthodox\nunpack/G\nunpaintable\nunpalatability\nunpalatable\nunpartizan\nunpatronizing\nunpeople\nunperceptive\nunperson\nunperturbed/Y\nunphysical\nunpick/G\nunpicturesque\nunpinning\nunpleasing\nunploughed\nunpolarized/SM\nunpopular\nunpractical\nunprecedented/Y\nunpredictable/S\nunpreemphasized\nunpremeditated\nunpretentiousness/M\nunprincipled/P\nunproblematic\nunproductive\nunpropitious\nunprovable\nunproven\nunprovocative\nunpunctual\nunquestionable\nunraisable\nunravellings\nunreadability\nunread/B\nunreal\nunrealizable\nunreasoning/Y\nunreceptive\nunrecordable\nunreflective\nunrelenting/Y\nunremitting/Y\nunrepeatability\nunrepeated\nunrepentant\nunreported\nunrepresentative\nunreproducible\nunrest/G\nunrestrained/P\nunrewarding\nunriddle\nunripe/P\nunromantic\nunruliness/SM\nunruly/PTR\nunsaleable\nunsanitary\nunsavored/YP\nunsavoriness/M\nunseal/GB\nunsearchable\nunseasonal\nunseeing/Y\nunseen/S\nunselfconsciousness/M\nunselfconscious/P\nunselfishness/M\nunsellable\nunsentimental\nunset\nunsettledness/M\nunsettled/P\nunsettling/Y\nunshapely\nunshaven\nunshorn\nunsighted\nunsightliness/S\nunskilful\nunsociability\nunsociable/P\nunsocial\nunsound/PT\nunspeakably\nunspecific\nunspectacular\nunspoilt\nunspoke\nunsporting\nunstable/P\nunstigmatized/SM\nunstilted\nunstinting/Y\nunstopping\nunstrapping\nunstudied\nunstuffy\nunsubdued\nunsubstantial\nunsubtle\nunsuitable\nunsuspecting/Y\nunswerving/Y\nunsymmetrical\nunsympathetic\nunsystematic\nunsystematized/Y\nuntactful\nuntalented\nuntaxing\nunteach/B\nuntellable\nuntenable\nunthinking\nuntil/G\nuntiring/Y\nunto\nuntouchable/MS\nuntowardness/M\nuntoward/P\nuntraceable\nuntrue\nuntruthfulness/M\nuntwist/G\nUnukalhai/M\nunusualness/M\nunutterable\nunutterably\nunvocalized/MS\nunvulcanized/SM\nunwaivering\nunwarrantable\nunwarrantably\nunwashed/PS\nunwearable\nunwearied/Y\nunwed\nunwedge\nunwelcome\nunwell/M\nunwieldiness/MS\nunwieldy/TPR\nunwind/B\nunwomanly\nunworkable/S\nunworried\nunwrap\nunwrapping\nunyielding/Y\nunyoke\nunzip\nup\nUpanishads\nuparrow\nupbeat/SM\nupbraid/GDRS\nupbringing/M\nupbring/JG\nUPC\nupchuck/SDG\nupcome/G\nupcountry/S\nupdatability\nupdater/M\nupdate/RSDG\nUpdike/M\nupdraft/SM\nupend/SDG\nupfield\nupfront\nupgradeable\nupgrade/DSJG\nupheaval/MS\nupheld\nuphill/S\nupholder/M\nuphold/RSGZ\nupholster/ADGS\nupholsterer/SM\nupholstery/MS\nUPI\nupkeep/SM\nuplander/M\nupland/MRS\nuplifter/M\nuplift/SJDRG\nupload/GSD\nupmarket\nupon\nupped\nuppercase/GSD\nupperclassman/M\nupperclassmen\nuppercut/S\nuppercutting\nuppermost\nupper/S\nupping\nuppish\nuppity\nupraise/GDS\nuprated\nuprating\nuprear/DSG\nupright/DYGSP\nuprightness/S\nuprise/RGJ\nuprising/M\nupriver/S\nuproariousness/M\nuproarious/PY\nuproar/MS\nuproot/DRGS\nuprooter/M\nups\nUPS\nupscale/GDS\nupset/S\nupsetting/MS\nupshot/SM\nupside/MS\nupsilon/MS\nupslope\nupstage/DSRG\nupstairs\nupstandingness/M\nupstanding/P\nupstart/MDGS\nupstate/SR\nupstream/DSG\nupstroke/MS\nupsurge/DSG\nupswing/GMS\nupswung\nuptake/SM\nupthrust/GMS\nuptight\nuptime\nUpton/M\nuptown/RS\nuptrend/M\nupturn/GDS\nupwardness/M\nupward/SYP\nupwelling\nupwind/S\nuracil/MS\nUral/MS\nUrania/M\nuranium/MS\nUranus/M\nuranyl/M\nUrbain/M\nUrbana/M\nurbane/Y\nurbanism/M\nurbanite/SM\nurbanity/SM\nurbanization/MS\nurbanize/DSG\nUrban/M\nurbanologist/S\nurbanology/S\nUrbano/M\nurban/RT\nUrbanus/M\nurchin/SM\nUrdu/M\nurea/SM\nuremia/MS\nuremic\nureter/MS\nurethane/MS\nurethrae\nurethral\nurethra/M\nurethritis/M\nUrey/M\nurge/GDRSJ\nurgency/SM\nurgent/Y\nurger/M\nUriah/M\nuric\nUriel/M\nurinal/MS\nurinalyses\nurinalysis/M\nurinary/MS\nurinate/XDSNG\nurination/M\nurine/MS\nUri/SM\nURL\nUr/M\nurning/M\nurn/MDGS\nurogenital\nurological\nurologist/S\nurology/MS\nUrquhart/M\nUrsala/M\nUrsa/M\nursine\nUrsola/M\nUrson/M\nUrsula/M\nUrsulina/M\nUrsuline/M\nurticaria/MS\nUruguayan/S\nUruguay/M\nUrumqi\nUS\nUSA\nusability/S\nusable/U\nusably/U\nUSAF\nusage/SM\nUSART\nUSCG\nUSC/M\nUSDA\nus/DRSBZG\nused/U\nuse/ESDAG\nusefulness/SM\nuseful/YP\nuselessness/MS\nuseless/PY\nUsenet/M\nUsenix/M\nuser/M\nUSG/M\nusherette/SM\nusher/SGMD\nUSIA\nUSMC\nUSN\nUSO\nUSP\nUSPS\nUSS\nUSSR\nUstinov/M\nusu\nusuals\nusual/UPY\nusurer/SM\nusuriousness/M\nusurious/PY\nusurpation/MS\nusurper/M\nusurp/RDZSG\nusury/SM\nUT\nUtahan/SM\nUtah/M\nUta/M\nUte/M\nutensil/SM\nuteri\nuterine\nuterus/M\nUtica/M\nutile/I\nutilitarianism/MS\nutilitarian/S\nutility/MS\nutilization/MS\nutilization's/A\nutilize/GZDRS\nutilizer/M\nutilizes/A\nutmost/S\nUtopia/MS\nutopianism/M\nutopian's\nUtopian/S\nutopia/S\nUtrecht/M\nUtrillo/M\nutterance/MS\nuttered/U\nutterer/M\nuttermost/S\nutter/TRDYGS\nuucp/M\nUV\nuvula/MS\nuvular/S\nuxorious\nUzbekistan\nUzbek/M\nUzi/M\nV\nVA\nvacancy/MS\nvacantness/M\nvacant/PY\nvacate/NGXSD\nvacationist/SM\nvacationland\nvacation/MRDZG\nvaccinate/NGSDX\nvaccination/M\nvaccine/SM\nvaccinial\nvaccinia/M\nVachel/M\nvacillate/XNGSD\nvacillating/Y\nvacillation/M\nvacillator/SM\nVaclav/M\nvacua's\nvacuity/MS\nvacuo\nvacuolated/U\nvacuolate/SDGN\nvacuole/SM\nvacuolization/SM\nvacuousness/MS\nvacuous/PY\nvacuum/GSMD\nVader/M\nVaduz/M\nvagabondage/MS\nvagabond/DMSG\nvagarious\nvagary/MS\nvaginae\nvaginal/Y\nvagina/M\nvagrancy/MS\nvagrant/SMY\nvagueing\nvagueness/MS\nvague/TYSRDP\nVail/M\nvaingloriousness/M\nvainglorious/YP\nvainglory/MS\nvain/TYRP\nval\nvalance/SDMG\nValaree/M\nValaria/M\nValarie/M\nValdemar/M\nValdez/M\nValeda/M\nvalediction/MS\nvaledictorian/MS\nvaledictory/MS\nVale/M\nvalence/SM\nValencia/MS\nvalency/MS\nValene/M\nValenka/M\nValentia/M\nValentijn/M\nValentina/M\nValentine/M\nvalentine/SM\nValentin/M\nValentino/M\nValenzuela/M\nValera/M\nValeria/M\nValerian/M\nValerie/M\nValerye/M\nVal<61>ry/M\nvale/SM\nvalet/GDMS\nvaletudinarianism/MS\nvaletudinarian/MS\nValhalla/M\nvaliance/S\nvaliantness/M\nvaliant/SPY\nValida/M\nvalidated/AU\nvalidate/INGSDX\nvalidates/A\nvalidation/AMI\nvalidity/IMS\nvalidnesses\nvalidness/MI\nvalid/PIY\nValina/M\nvalise/MS\nValium/S\nValkyrie/SM\nVallejo\nValle/M\nValletta/M\nvalley/SM\nVallie/M\nValli/M\nVally/M\nValma/M\nVal/MY\nValois/M\nvalor/MS\nvalorous/Y\nValparaiso/M\nValry/M\nvaluable/IP\nvaluableness/IM\nvaluables\nvaluably/I\nvaluate/NGXSD\nvaluation/CSAM\nvaluator/SM\nvalue/CGASD\nvalued/U\nvaluelessness/M\nvalueless/P\nvaluer/SM\nvalue's\nvalues/E\nvalve/GMSD\nvalveless\nvalvular\nVa/M\nvamoose/GSD\nvamp/ADSG\nvamper\nvampire/MGSD\nvamp's\nvanadium/MS\nVance/M\nVancouver/M\nvandalism/MS\nvandalize/GSD\nvandal/MS\nVandal/MS\nVanda/M\nVandenberg/M\nVanderbilt/M\nVanderburgh/M\nVanderpoel/M\nVandyke/SM\nvane/MS\nVanessa/M\nVang/M\nvanguard/MS\nVania/M\nvanilla/MS\nvanisher/M\nvanish/GRSDJ\nvanishing/Y\nvanity/SM\nVan/M\nVanna/M\nvanned\nVannie/M\nVanni/M\nvanning\nVanny/M\nvanquisher/M\nvanquish/RSDGZ\nvan/SMD\nvantage/MS\nVanuatu\nVanya/M\nVanzetti/M\nvapidity/MS\nvapidness/SM\nvapid/PY\nvaporer/M\nvaporing/MY\nvaporisation\nvaporise/DSG\nvaporization/AMS\nvaporize/DRSZG\nvaporizer/M\nvapor/MRDJGZS\nvaporous\nvapory\nvaquero/SM\nVAR\nVaranasi/M\nVarese/M\nVargas/M\nvariability/IMS\nvariableness/IM\nvariable/PMS\nvariables/I\nvariably/I\nvariance/I\nvariances\nvariance's\nVarian/M\nvariant/ISY\nvariate/MGNSDX\nvariational\nvariation/M\nvaricolored/MS\nvaricose/S\nvariedly\nvaried/U\nvariegate/NGXSD\nvariegation/M\nvarier/M\nvarietal/S\nvariety/MS\nvarious/PY\nvaristor/M\nVarityping/M\nvarlet/MS\nvarmint/SM\nvarnished/U\nvarnisher/M\nvarnish/ZGMDRS\nvar/S\nvarsity/MS\nvarying/UY\nvary/SRDJG\nvascular\nvasectomy/SM\nVaseline/DSMG\nvase/SM\nVasili/MS\nVasily/M\nvasomotor\nVasquez/M\nvassalage/MS\nvassal/GSMD\nVassar/M\nVassili/M\nVassily/M\nvastness/MS\nvast/PTSYR\nv/ASV\nVAT\nVatican/M\nvat/SM\nvatted\nvatting\nvaudeville/SM\nvaudevillian/SM\nVaudois\nVaughan/M\nVaughn/M\nvaulter/M\nvaulting/M\nvault/ZSRDMGJ\nvaunter/M\nvaunt/GRDS\nVAXes\nVax/M\nVAX/M\nVazquez/M\nvb\nVCR\nVD\nVDT\nVDU\nvealed/A\nvealer/MA\nveal/MRDGS\nveals/A\nVeblen/M\nvectorial\nvectorization\nvectorized\nvectorizing\nvector's/F\nvector/SGDM\nVeda/MS\nVedanta/M\nveejay/S\nveep/S\nveer/DSG\nveering/Y\nvegan/SM\nVega/SM\nVegemite/M\nveges\nvegetable/MS\nvegetarianism/MS\nvegetarian/SM\nvegetate/DSNGVX\nvegetation/M\nvegetative/PY\nvegged\nveggie/S\nvegging\nveg/M\nvehemence/MS\nvehemency/S\nvehement/Y\nvehicle/SM\nvehicular\nveiling/MU\nveil's\nveil/UGSD\nvein/GSRDM\nveining/M\nvela/M\nVela/M\nvelarize/SDG\nvelar/S\nVel<65>squez/M\nVel<65>zquez\nVelcro/SM\nveld/SM\nveldt's\nVelez/M\nVella/M\nvellum/MS\nVelma/M\nvelocipede/SM\nvelocity/SM\nvelor/S\nvelour's\nvelum/M\nVelveeta/M\nvelveteen/MS\nvelvet/GSMD\nVelvet/M\nvelvety/RT\nvenality/MS\nvenal/Y\nvenation/SM\nvend/DSG\nvender's/K\nvendetta/MS\nvendible/S\nvendor/MS\nveneerer/M\nveneer/GSRDM\nveneering/M\nvenerability/S\nvenerable/P\nvenerate/XNGSD\nveneration/M\nvenereal\nvenetian\nVenetian/SM\nVenezuela/M\nVenezuelan/S\nvengeance/MS\nvengeful/APY\nvengefulness/AM\nvenialness/M\nvenial/YP\nVenice/M\nvenireman/M\nveniremen\nvenison/SM\nVenita/M\nVenn/M\nvenomousness/M\nvenomous/YP\nvenom/SGDM\nvenous/Y\nventer/M\nventilated/U\nventilate/XSDVGN\nventilation/M\nventilator/MS\nvent/ISGFD\nventral/YS\nventricle/MS\nventricular\nventriloquies\nventriloquism/MS\nventriloquist/MS\nventriloquy\nvent's/F\nVentura/M\nventure/RSDJZG\nventuresomeness/SM\nventuresome/YP\nventuri/S\nventurousness/MS\nventurous/YP\nvenue/MAS\nVenusian/S\nVenus/S\nveraciousness/M\nveracious/YP\nveracities\nveracity/IM\nVeracruz/M\nVeradis\nVera/M\nverandahed\nveranda/SDM\nverbalization/MS\nverbalized/U\nverbalizer/M\nverbalize/ZGRSD\nverballed\nverballing\nverbal/SY\nverbatim\nverbena/MS\nverbiage/SM\nverb/KSM\nverbose/YP\nverbosity/SM\nverboten\nverdant/Y\nVerde/M\nVerderer/M\nverdict/SM\nverdigris/GSDM\nVerdi/M\nverdure/SDM\nVere/M\nVerena/M\nVerene/M\nverge/FGSD\nVerge/M\nverger/SM\nverge's\nVergil's\nveridical/Y\nVeriee/M\nverifiability/M\nverifiableness/M\nverifiable/U\nverification/S\nverified/U\nverifier/MS\nverify/GASD\nVerile/M\nverily\nVerina/M\nVerine/M\nverisimilitude/SM\nveritableness/M\nveritable/P\nveritably\nverity/MS\nVerlag/M\nVerlaine/M\nVerla/M\nVermeer/M\nvermicelli/MS\nvermiculite/MS\nvermiform\nvermilion/MS\nvermin/M\nverminous\nVermonter/M\nVermont/ZRM\nvermouth/M\nvermouths\nvernacular/YS\nvernal/Y\nVerna/M\nVerne/M\nVernen/M\nVerney/M\nVernice/M\nvernier/SM\nVern/NM\nVernon/M\nVernor/M\nVerona/M\nVeronese/M\nVeronica/M\nveronica/SM\nVeronika/M\nVeronike/M\nVeronique/M\nverrucae\nverruca/MS\nversa\nVersailles/M\nVersatec/M\nversatileness/M\nversatile/YP\nversatility/SM\nversed/UI\nverse's\nverses/I\nverse/XSRDAGNF\nversicle/M\nversification/M\nversifier/M\nversify/GDRSZXN\nversing/I\nversion/MFISA\nverso/SM\nversus\nvertebrae\nvertebral/Y\nvertebra/M\nvertebrate/IMS\nvertebration/M\nvertex/SM\nvertical/YPS\nvertices's\nvertiginous\nvertigoes\nvertigo/M\nverve/SM\nvery/RT\nVesalius/M\nvesicle/SM\nvesicular/Y\nvesiculate/GSD\nVespasian/M\nvesper/SM\nVespucci/M\nvessel/MS\nvestal/YS\nVesta/M\nvest/DIGSL\nvestibular\nvestibule/SDM\nvestige/SM\nvestigial/Y\nvesting/SM\nvestment/ISM\nvestryman/M\nvestrymen\nvestry/MS\nvest's\nvesture/SDMG\nVesuvius/M\nvetch/SM\nveteran/SM\nveterinarian/MS\nveterinary/S\nveter/M\nveto/DMG\nvetoes\nvet/SMR\nvetted\nvetting/A\nVevay/M\nvexation/SM\nvexatiousness/M\nvexatious/PY\nvexed/Y\nvex/GFSD\nVF\nVFW\nVG\nVGA\nvhf\nVHF\nVHS\nVI\nvia\nviability/SM\nviable/I\nviably\nviaduct/MS\nViagra/M\nvial/MDGS\nviand/SM\nvibe/S\nvibraharp/MS\nvibrancy/MS\nvibrant/YS\nvibraphone/MS\nvibraphonist/SM\nvibrate/XNGSD\nvibrational/Y\nvibration/M\nvibrato/MS\nvibrator/SM\nvibratory\nvibrio/M\nvibrionic\nviburnum/SM\nvicarage/SM\nvicariousness/MS\nvicarious/YP\nvicar/SM\nvice/CMS\nviced\nvicegerent/MS\nvicennial\nVicente/M\nviceregal\nviceroy/SM\nVichy/M\nvichyssoise/MS\nvicing\nvicinity/MS\nviciousness/S\nvicious/YP\nvicissitude/MS\nVickers/M\nVickie/M\nVicki/M\nVicksburg/M\nVicky/M\nVick/ZM\nVic/M\nvictimization/SM\nvictimized/U\nvictimizer/M\nvictimize/SRDZG\nvictim/SM\nVictoir/M\nVictoria/M\nVictorianism/S\nVictorian/S\nvictoriousness/M\nvictorious/YP\nVictor/M\nvictor/SM\nvictory/MS\nVictrola/SM\nvictualer/M\nvictual/ZGSDR\nvicu<63>a/S\nVidal/M\nVida/M\nvidelicet\nvideocassette/S\nvideoconferencing\nvideodisc/S\nvideodisk/SM\nvideo/GSMD\nvideophone/SM\nvideotape/SDGM\nVidovic/M\nVidovik/M\nVienna/M\nViennese/M\nVientiane/M\nvier/M\nvie/S\nVietcong/M\nViet/M\nVietminh/M\nVietnamese/M\nVietnam/M\nviewed/A\nviewer/AS\nviewer's\nviewfinder/MS\nviewgraph/SM\nviewing/M\nviewless/Y\nview/MBGZJSRD\nviewpoint/SM\nviews/A\nvigesimal\nvigilance/MS\nvigilante/SM\nvigilantism/MS\nvigilantist\nvigilant/Y\nvigil/SM\nvignette/MGDRS\nvignetter/M\nvignetting/M\nvignettist/MS\nvigor/MS\nvigorousness/M\nvigorous/YP\nvii\nviii\nVijayawada/M\nViki/M\nViking/MS\nviking/S\nVikki/M\nVikky/M\nVikram/M\nVila\nvile/AR\nvilely\nvileness/MS\nvilest\nVilhelmina/M\nvilification/M\nvilifier/M\nvilify/GNXRSD\nvillager/M\nvillage/RSMZ\nvillainousness/M\nvillainous/YP\nvillain/SM\nvillainy/MS\nVilla/M\nvilla/MS\nVillarreal/M\nville\nvilleinage/SM\nvillein/MS\nvilli\nVillon/M\nvillus/M\nVilma/M\nVilnius/M\nVilyui/M\nVi/M\nvi/MDR\nvim/MS\nvinaigrette/MS\nVina/M\nVince/M\nVincent/MS\nVincenty/M\nVincenz/M\nvincible/I\nVinci/M\nVindemiatrix/M\nvindicate/XSDVGN\nvindication/M\nvindicator/SM\nvindictiveness/MS\nvindictive/PY\nvinegar/DMSG\nvinegary\nvine/MGDS\nvineyard/SM\nVinita/M\nVin/M\nVinnie/M\nVinni/M\nVinny/M\nvino/MS\nvinous\nVinson/M\nvintage/MRSDG\nvintager/M\nvintner/MS\nvinyl/SM\nviolable/I\nViola/M\nViolante/M\nviola/SM\nviolate/VNGXSD\nviolator/MS\nViole/M\nviolence/SM\nviolent/Y\nViolet/M\nviolet/SM\nVioletta/M\nViolette/M\nviolinist/SM\nviolin/MS\nviolist/MS\nviol/MSB\nvioloncellist/S\nvioloncello/MS\nviper/MS\nviperous\nVIP/S\nviragoes\nvirago/M\nviral/Y\nvireo/SM\nVirge/M\nVirgie/M\nVirgilio/M\nVirgil/M\nvirginal/YS\nVirgina/M\nVirginia/M\nVirginian/S\nVirginie/M\nvirginity/SM\nvirgin/SM\nVirgo/MS\nvirgule/MS\nvirile\nvirility/MS\nvirologist/S\nvirology/SM\nvirtual/Y\nvirtue/SM\nvirtuosity/MS\nvirtuosoes\nvirtuoso/MS\nvirtuousness/SM\nvirtuous/PY\nvirulence/SM\nvirulent/Y\nvirus/MS\nvisage/MSD\nVisakhapatnam's\nVisa/M\nvisa/SGMD\nVisayans\nviscera\nvisceral/Y\nviscid/Y\nviscoelastic\nviscoelasticity\nviscometer/SM\nviscose/MS\nviscosity/MS\nviscountcy/MS\nviscountess/SM\nviscount/MS\nviscousness/M\nviscous/PY\nviscus/M\nvise/CAXNGSD\nviselike\nvise's\nVishnu/M\nvisibility/ISM\nvisible/PI\nvisibly/I\nVisigoth/M\nVisigoths\nvisionariness/M\nvisionary/PS\nvision/KMDGS\nvision's/A\nvisitable/U\nvisitant/SM\nvisitation/SM\nvisited/U\nvisit/GASD\nvisitor/MS\nvis/MDSGV\nvisor/SMDG\nVISTA\nvista/GSDM\nVistula/M\nvisualization/AMS\nvisualized/U\nvisualizer/M\nvisualizes/A\nvisualize/SRDZG\nvisual/SY\nvitae\nvitality/MS\nvitalization/AMS\nvitalize/ASDGC\nvital/SY\nvita/M\nVita/M\nvitamin/SM\nVite/M\nVitia/M\nvitiate/XGNSD\nvitiation/M\nviticulture/SM\nviticulturist/S\nVitim/M\nVito/M\nVitoria/M\nvitreous/YSP\nvitrifaction/S\nvitrification/M\nvitrify/XDSNG\nvitrine/SM\nvitriolic\nvitriol/MDSG\nvitro\nvittles\nVittoria/M\nVittorio/M\nvituperate/SDXVGN\nvituperation/M\nvituperative/Y\nVitus/M\nvivace/S\nvivaciousness/MS\nvivacious/YP\nvivacity/SM\nviva/DGS\nVivaldi\nViva/M\nvivaria\nvivarium/MS\nvivaxes\nVivekananda/M\nvive/Z\nVivia/M\nViviana/M\nVivian/M\nVivianna/M\nVivianne/M\nvividness/SM\nvivid/PTYR\nVivie/M\nViviene/M\nVivien/M\nVivienne/M\nvivifier\nvivify/NGASD\nVivi/MN\nviviparous\nvivisect/DGS\nvivisectional\nvivisectionist/SM\nvivisection/MS\nViviyan/M\nViv/M\nvivo\nVivyan/M\nVivyanne/M\nvixenish/Y\nvixen/SM\nviz\nvizier/MS\nvizor's\nVJ\nVladamir/M\nVladimir/M\nVladivostok/M\nVlad/M\nVLF\nVLSI\nVMS/M\nVOA\nvocable/SM\nvocab/S\nvocabularian\nvocabularianism\nvocabulary/MS\nvocalic/S\nvocalise's\nvocalism/M\nvocalist/MS\nvocalization/SM\nvocalized/U\nvocalizer/M\nvocalize/ZGDRS\nvocal/SY\nvocation/AKMISF\nvocational/Y\nvocative/KYS\nvociferate/NGXSD\nvociferation/M\nvociferousness/MS\nvociferous/YP\nvocoded\nvocoder\nvodka/MS\nvoe/S\nVogel/M\nvogue/GMSRD\nvogueing\nvoguish\nvoiceband\nvoiced/CU\nvoice/IMGDS\nvoicelessness/SM\nvoiceless/YP\nvoicer/S\nvoices/C\nvoicing/C\nvoidable\nvoid/C\nvoided\nvoider/M\nvoiding\nvoidness/M\nvoids\nvoil<69>\nvoile/MS\nvolar\nvolatileness/M\nvolatile/PS\nvolatility/MS\nvolatilization/MS\nvolatilize/SDG\nvolcanically\nvolcanic/S\nvolcanism/M\nvolcanoes\nvolcano/M\nvole/MS\nVolga/M\nVolgograd/M\nvol/GSD\nvolitionality\nvolitional/Y\nvolition/MS\nVolkswagen/SM\nvolleyball/MS\nvolleyer/M\nvolley/SMRDG\nVol/M\nVolstead/M\nvoltage/SM\nvoltaic\nVoltaire/M\nVolta/M\nvolt/AMS\nVolterra/M\nvoltmeter/MS\nvolubility/S\nvoluble/P\nvolubly\nvolume/SDGM\nvolumetric\nvolumetrically\nvoluminousness/MS\nvoluminous/PY\nvoluntarily/I\nvoluntariness/MI\nvoluntarism/MS\nvoluntary/PS\nvolunteer/DMSG\nvoluptuary/SM\nvoluptuousness/S\nvoluptuous/YP\nvolute/S\nVolvo/M\nvomit/GRDS\nVonda/M\nVon/M\nVonnegut/M\nVonnie/M\nVonni/M\nVonny/M\nvoodoo/GDMS\nvoodooism/S\nvoraciousness/MS\nvoracious/YP\nvoracity/MS\nVoronezh/M\nVorster/M\nvortex/SM\nvortices's\nvorticity/M\nvotary/MS\nvote/CSDG\nvoter/SM\nvote's\nvotive/YP\nvoucher/GMD\nvouchsafe/SDG\nvouch/SRDGZ\nvowelled\nvowelling\nvowel/MS\nvower/M\nvow/SMDRG\nvoyage/GMZJSRD\nvoyager/M\nvoyageur/SM\nvoyeurism/MS\nvoyeuristic\nvoyeur/MS\nVP\nvs\nV's\nVT\nVt/M\nVTOL\nvulcanization/SM\nvulcanized/U\nvulcanize/SDG\nVulcan/M\nvulgarian/MS\nvulgarism/MS\nvulgarity/MS\nvulgarization/S\nvulgarize/GZSRD\nvulgar/TSYR\nVulgate/SM\nVulg/M\nvulnerability/SI\nvulnerable/IP\nvulnerably/I\nvulpine\nvulturelike\nvulture/SM\nvulturous\nvulvae\nvulva/M\nvying\nVyky/M\nWA\nWaals\nWabash/M\nWAC\nWacke/M\nwackes\nwackiness/MS\nwacko/MS\nwacky/RTP\nWaco/M\nWac/S\nwadded\nwadding/SM\nwaddle/GRSD\nWade/M\nwader/M\nwade/S\nwadi/SM\nwad/MDRZGS\nWadsworth/M\nwafer/GSMD\nwaffle/GMZRSD\nWafs\nwafter/M\nwaft/SGRD\nwag/DRZGS\nwaged/U\nwager/GZMRD\nwage/SM\nwagged\nwaggery/MS\nwagging\nwaggishness/SM\nwaggish/YP\nwaggle/SDG\nwaggly\nWagnerian\nWagner/M\nwagoner/M\nwagon/SGZMRD\nwagtail/SM\nWahl/M\nwaif/SGDM\nWaikiki/M\nwailer/M\nwail/SGZRD\nwain/GSDM\nWain/M\nwainscot/SGJD\nWainwright/M\nwainwright/SM\nwaistband/MS\nwaistcoat/GDMS\nwaister/M\nwaist/GSRDM\nwaistline/MS\nWaite/M\nwaiter/DMG\nWaiter/M\nwait/GSZJRD\nWait/MR\nwaitpeople\nwaitperson/S\nwaitress/GMSD\nwaiver/MB\nwaive/SRDGZ\nWakefield/M\nwakefulness/MS\nwakeful/PY\nWake/M\nwake/MGDRSJ\nwaken/SMRDG\nwaker/M\nwakeup\nWaksman/M\nWalbridge/M\nWalcott/M\nWaldemar/M\nWalden/M\nWaldensian\nWaldheim/M\nWald/MN\nWaldo/M\nWaldon/M\nWaldorf/M\nwale/DRSMG\nWales\nWalesa/M\nWalford/M\nWalgreen/M\nwaling/M\nwalkabout/M\nwalkaway/SM\nwalker/M\nWalker/M\nwalk/GZSBJRD\nwalkie\nWalkman/S\nwalkout/SM\nwalkover/SM\nwalkway/MS\nwallaby/MS\nWallace/M\nWallache/M\nwallah/M\nWallas/M\nwallboard/MS\nWallenstein/M\nWaller/M\nwallet/SM\nwalleye/MSD\nwallflower/MS\nWallie/M\nWallis\nWalliw/M\nWalloon/SM\nwalloper/M\nwalloping/M\nwallop/RDSJG\nwallower/M\nwallow/RDSG\nwallpaper/DMGS\nwall/SGMRD\nWall/SMR\nWally/M\nwally/S\nwalnut/SM\nWalpole/M\nWalpurgisnacht\nwalrus/SM\nWalsh/M\nWalter/M\nWalther/M\nWalton/M\nwaltzer/M\nWalt/ZMR\nwaltz/MRSDGZ\nWalworth/M\nWaly/M\nwampum/SM\nWanamaker/M\nWanda/M\nwanderer/M\nwander/JZGRD\nwanderlust/SM\nWandie/M\nWandis/M\nwand/MRSZ\nwane/S\nWaneta/M\nwangler/M\nwangle/RSDGZ\nWang/M\nWanids/M\nWankel/M\nwanna\nwannabe/S\nwanned\nwanner\nwanness/S\nwannest\nwanning\nwan/PGSDY\nWansee/M\nWansley/M\nwanted/U\nwanter/M\nwant/GRDSJ\nwantonness/S\nwanton/PGSRDY\nwapiti/MS\nwarble/GZRSD\nwarbler/M\nwarbonnet/S\nward/AGMRDS\nWarde/M\nwarden/DMGS\nWarden/M\nwarder/DMGS\nWard/MN\nwardrobe/MDSG\nwardroom/MS\nwardship/M\nwards/I\nwarehouseman/M\nwarehouse/MGSRD\nWare/MG\nware/MS\nwarfare/SM\nWarfield/M\nwar/GSMD\nwarhead/MS\nWarhol/M\nwarhorse/SM\nwarily/U\nwarinesses/U\nwariness/MS\nWaring/M\nwarless\nwarlike\nwarlock/SM\nwarlord/MS\nwarmblooded\nwarmed/A\nwarmer/M\nwarmheartedness/SM\nwarmhearted/PY\nwarmish\nwarmness/MS\nwarmongering/M\nwarmonger/JGSM\nwarms/A\nwarmth/M\nwarmths\nwarm/YRDHPGZTS\nwarned/U\nwarner/M\nWarner/M\nwarn/GRDJS\nwarning/YM\nWarnock/M\nwarpaint\nwarpath/M\nwarpaths\nwarper/M\nwarplane/MS\nwarp/MRDGS\nwarranted/U\nwarranter/M\nwarrant/GSMDR\nwarranty/SDGM\nwarred/M\nwarrener/M\nWarren/M\nwarren/SZRM\nwarring/M\nwarrior/MS\nWarsaw/M\nwars/C\nwarship/MS\nwarthog/S\nwartime/SM\nwart/MDS\nwarty/RT\nWarwick/M\nwary/URPT\nWasatch/M\nwashable/S\nwash/AGSD\nwashbasin/SM\nwashboard/SM\nwashbowl/SM\nWashburn/M\nwashcloth/M\nwashcloths\nwashday/M\nwashed/U\nwasher/GDMS\nwasherwoman/M\nwasherwomen\nwashing/SM\nWashingtonian/S\nWashington/M\nWash/M\nWashoe/M\nwashout/SM\nwashrag/SM\nwashroom/MS\nwashstand/SM\nwashtub/MS\nwashy/RT\nwasn't\nWASP\nwaspishness/SM\nwaspish/PY\nWasp's\nwasp/SM\nwas/S\nwassail/GMDS\nWasserman/M\nWassermann/M\nwastage/SM\nwastebasket/SM\nwastefulness/S\nwasteful/YP\nwasteland/MS\nwastepaper/MS\nwaster/DG\nwaste/S\nwastewater\nwast/GZSRD\nwasting/Y\nwastrel/MS\nWatanabe/M\nwatchable/U\nwatchband/SM\nwatchdogged\nwatchdogging\nwatchdog/SM\nwatched/U\nwatcher/M\nwatchfulness/MS\nwatchful/PY\nwatch/JRSDGZB\nwatchmake/JRGZ\nwatchmaker/M\nwatchman/M\nwatchmen\nwatchpoints\nwatchtower/MS\nwatchword/MS\nwaterbird/S\nwaterborne\nWaterbury/M\nwatercolor/DMGS\nwatercolorist/SM\nwatercourse/SM\nwatercraft/M\nwatercress/SM\nwaterer/M\nwaterfall/SM\nwaterfowl/M\nwaterfront/SM\nWatergate/M\nwaterhole/S\nWaterhouse/M\nwateriness/SM\nwatering/M\nwater/JGSMRD\nwaterless\nwaterlily/S\nwaterline/S\nwaterlogged\nwaterloo\nWaterloo/SM\nwaterman/M\nwatermark/GSDM\nwatermelon/SM\nwatermill/S\nwaterproof/PGRDSJ\nwatershed/SM\nwaterside/MSR\nwatersider/M\nWaters/M\nwaterspout/MS\nwatertightness/M\nwatertight/P\nWatertown/M\nwaterway/MS\nwaterwheel/S\nwaterworks/M\nwatery/PRT\nWatkins\nWATS\nWatson/M\nwattage/SM\nWatteau/M\nWattenberg/M\nWatterson/M\nwattle/SDGM\nWatt/MS\nwatt/TMRS\nWatusi/M\nWat/ZM\nWaugh/M\nWaukesha/M\nWaunona/M\nWaupaca/M\nWaupun/M\nWausau/M\nWauwatosa/M\nwaveband/MS\nwaveform/SM\nwavefront/MS\nwaveguide/MS\nWaveland/M\nwavelength/M\nwavelengths\nwavelet/SM\nwavelike\nwavenumber\nwaver/GZRD\nwavering/YU\nWaverley/M\nWaverly/M\nWave/S\nwave/ZGDRS\nwavily\nwaviness/MS\nwavy/SRTP\nwaxer/M\nwaxiness/MS\nwax/MNDRSZG\nwaxwing/MS\nwaxwork/MS\nwaxy/PRT\nwayfarer/MS\nwayfaring/S\nwaylaid\nWayland/M\nWaylan/M\nwaylayer/M\nwaylay/GRSZ\nwayleave/MS\nWaylen/M\nWaylin/M\nWaylon/M\nWay/M\nwaymarked\nway/MS\nWayne/M\nWaynesboro/M\nwayside/MS\nwaywardness/S\nwayward/YP\nWC\nwe\nweakener/M\nweaken/ZGRD\nweakfish/SM\nweakish\nweakliness/M\nweakling/SM\nweakly/RTP\nweakness/MS\nweak/TXPYRN\nweal/MHS\nwealthiness/MS\nwealth/M\nwealths\nwealthy/PTR\nweaner/M\nweanling/M\nwean/RDGS\nweapon/GDMS\nweaponless\nweaponry/MS\nwearable/S\nwearer/M\nwearied/U\nwearily\nweariness/MS\nwearing/Y\nwearisomeness/M\nwearisome/YP\nwear/RBSJGZ\nwearying/Y\nweary/TGPRSD\nweasel/SGMDY\nweatherbeaten\nweathercock/SDMG\nweatherer/M\nWeatherford/M\nweathering/M\nweatherize/GSD\nweatherman/M\nweather/MDRYJGS\nweathermen\nweatherperson/S\nweatherproof/SGPD\nweatherstripped\nweatherstripping/S\nweatherstrip/S\nweaver/M\nWeaver/M\nweaves/A\nweave/SRDGZ\nweaving/A\nwebbed\nWebber/M\nwebbing/MS\nWebb/RM\nweber/M\nWeber/M\nWebern/M\nwebfeet\nwebfoot/M\nWeb/MR\nwebsite/S\nweb/SMR\nWebster/MS\nWebsterville/M\nwe'd\nwedded/A\nWeddell/M\nwedder\nwedding/SM\nwedge/SDGM\nwedgie/RST\nWedgwood/M\nwedlock/SM\nWed/M\nWednesday/SM\nwed/SA\nweeder/M\nweediness/M\nweedkiller/M\nweedless\nwee/DRST\nweed/SGMRDZ\nweedy/TRP\nweeing\nweekday/MS\nweekender/M\nweekend/SDRMG\nweekly/S\nweeknight/SM\nWeeks/M\nweek/SYM\nweenie/M\nween/SGD\nweeny/RSMT\nweeper/M\nweep/SGZJRD\nweepy/RST\nweevil/MS\nweft/SGMD\nWehr/M\nWeibull/M\nWeidar/M\nWeider/M\nWeidman/M\nWeierstrass/M\nweighed/UA\nweigher/M\nweigh/RDJG\nweighs/A\nweighted/U\nweighter/M\nweightily\nweightiness/SM\nweighting/M\nweight/JMSRDG\nweightlessness/SM\nweightless/YP\nweightlifter/S\nweightlifting/MS\nweighty/TPR\nWeill/M\nWei/M\nWeinberg/M\nWeiner/M\nWeinstein/M\nweirdie/SM\nweirdness/MS\nweirdo/SM\nweird/YRDPGTS\nweir/SDMG\nWeisenheimer/M\nWeiss/M\nWeissman/M\nWeissmuller/M\nWeizmann/M\nWelbie/M\nWelby/M\nWelcher/M\nWelches\nwelcomeness/M\nwelcome/PRSDYG\nwelcoming/U\nwelder/M\nWeldon/M\nweld/SBJGZRD\nWeldwood/M\nwelfare/SM\nwelkin/SM\nwe'll\nWelland/M\nwellbeing/M\nWeller/M\nWellesley/M\nWelles/M\nwellhead/SM\nWellington/MS\nwellington/S\nWellman/M\nwellness/MS\nwell/SGPD\nWells/M\nwellspring/SM\nWellsville/M\nWelmers/M\nWelsh\nwelsher/M\nWelshman/M\nWelshmen\nwelsh/RSDGZ\nWelshwoman/M\nWelshwomen\nwelter/GD\nwelterweight/MS\nwelt/GZSMRD\nwencher/M\nwench/GRSDM\nWendall/M\nWenda/M\nwend/DSG\nWendeline/M\nWendell/M\nWendel/M\nWendie/M\nWendi/M\nWendye/M\nWendy/M\nwen/M\nWenonah/M\nWenona/M\nwent\nWentworth/M\nwept/U\nwere\nwe're\nweren't\nwerewolf/M\nwerewolves\nWerner/M\nWernher/M\nWerther/M\nwerwolf's\nWes\nWesleyan\nWesley/M\nWessex/M\nWesson/M\nwestbound\nWestbrooke/M\nWestbrook/M\nWestchester/M\nwester/DYG\nwesterly/S\nwesterner/M\nwesternization/MS\nwesternize/GSD\nwesternmost\nWestern/ZRS\nwestern/ZSR\nWestfield/M\nWesthampton/M\nWestinghouse/M\nwesting/M\nWestleigh/M\nWestley/M\nWestminster/M\nWestmore/M\nWest/MS\nWeston/M\nWestphalia/M\nWestport/M\nwest/RDGSM\nwestward/S\nWestwood/M\nwetback/MS\nwetland/S\nwetness/MS\nwet/SPY\nwettable\nwetter/S\nwettest\nwetting\nwe've\nWeyden/M\nWeyerhauser/M\nWeylin/M\nWezen/M\nWFF\nwhacker/M\nwhack/GZRDS\nwhaleboat/MS\nwhalebone/SM\nwhale/GSRDZM\nWhalen/M\nwhaler/M\nwhaling/M\nwhammed\nwhamming/M\nwham/MS\nwhammy/S\nwharf/SGMD\nWharton/M\nwharves\nwhatchamacallit/MS\nwhat'd\nwhatever\nwhat/MS\nwhatnot/MS\nwhat're\nwhatsoever\nwheal/MS\nwheatgerm\nWheaties/M\nWheatland/M\nwheat/NMXS\nWheaton/M\nWheatstone/M\nwheedle/ZDRSG\nwheelbarrow/GSDM\nwheelbase/MS\nwheelchair/MS\nwheeler/M\nWheeler/M\nwheelhouse/SM\nwheelie/MS\nwheeling/M\nWheeling/M\nWheelock/M\nwheel/RDMJSGZ\nwheelwright/MS\nwhee/S\nwheeze/SDG\nwheezily\nwheeziness/SM\nwheezy/PRT\nWhelan/M\nwhelk/MDS\nWheller/M\nwhelm/DGS\nwhelp/DMGS\nwhence/S\nwhenever\nwhen/S\nwhensoever\nwhereabout/S\nwhereas/S\nwhereat\nwhereby\nwhere'd\nwherefore/MS\nwherein\nwhere/MS\nwhereof\nwhereon\nwhere're\nwheresoever\nwhereto\nwhereupon\nwherever\nwherewith\nwherewithal/SM\nwherry/DSGM\nwhether\nwhet/S\nwhetstone/MS\nwhetted\nwhetting\nwhew/GSD\nwhey/MS\nwhich\nwhichever\nwhiff/GSMD\nwhiffle/DRSG\nwhiffler/M\nwhiffletree/SM\nwhig/S\nWhig/SM\nwhile/GSD\nwhilom\nwhilst\nwhimmed\nwhimming\nwhimper/DSG\nwhimsey's\nwhimsicality/MS\nwhimsical/YP\nwhim/SM\nwhimsy/TMDRS\nwhine/GZMSRD\nwhining/Y\nwhinny/GTDRS\nwhiny/RT\nwhipcord/SM\nwhiplash/SDMG\nWhippany/M\nwhipped\nwhipper/MS\nwhippersnapper/MS\nwhippet/MS\nwhipping/SM\nWhipple/M\nwhippletree/SM\nwhippoorwill/SM\nwhipsaw/GDMS\nwhips/M\nwhip/SM\nwhirligig/MS\nwhirlpool/MS\nwhirl/RDGS\nwhirlwind/MS\nwhirlybird/MS\nwhirly/MS\nwhirred\nwhirring\nwhir/SY\nwhisker/DM\nwhiskery\nwhiskey/SM\nwhisk/GZRDS\nwhisperer/M\nwhisper/GRDJZS\nwhispering/YM\nwhist/GDMS\nwhistleable\nwhistle/DRSZG\nwhistler/M\nWhistler/M\nwhistling/M\nWhitaker/M\nWhitby/M\nWhitcomb/M\nwhitebait/M\nwhitecap/MS\nwhiteface/M\nWhitefield/M\nwhitefish/SM\nWhitehall/M\nWhitehead/M\nwhitehead/S\nWhitehorse/M\nWhiteleaf/M\nWhiteley/M\nWhite/MS\nwhitener/M\nwhiteness/MS\nwhitening/M\nwhiten/JZDRG\nwhiteout/S\nwhite/PYS\nwhitespace\nwhitetail/S\nwhitewall/SM\nwhitewash/GRSDM\nwhitewater\nWhitewater/M\nwhitey/MS\nWhitfield/M\nwhither/DGS\nwhitier\nwhitiest\nwhiting/M\nwhitish\nWhitley/M\nWhitlock/M\nWhit/M\nWhitman/M\nWhitney/M\nwhit/SJGTXMRND\nWhitsunday/MS\nWhittaker/M\nwhitter\nWhittier\nwhittle/JDRSZG\nwhittler/M\nwhiz\nwhizkid\nwhizzbang/S\nwhizzed\nwhizzes\nwhizzing\nWHO\nwhoa/S\nwho'd\nwhodunit/SM\nwhoever\nwholegrain\nwholeheartedness/MS\nwholehearted/PY\nwholemeal\nwholeness/S\nwholesale/GZMSRD\nwholesaler/M\nwholesomeness/USM\nwholesome/UYP\nwhole/SP\nwholewheat\nwho'll\nwholly\nwhom\nwho/M\nwhomever\nwhomsoever\nwhoopee/S\nwhooper/M\nwhoop/SRDGZ\nwhoosh/DSGM\nwhop\nwhopper/MS\nwhopping/S\nwho're\nwhorehouse/SM\nwhoreish\nwhore/SDGM\nwhorish\nwhorl/SDM\nwhose\nwhoso\nwhosoever\nwho've\nwhy\nwhys\nWI\nWiatt/M\nWichita/M\nwickedness/MS\nwicked/RYPT\nwicker/M\nwickerwork/MS\nwicketkeeper/SM\nwicket/SM\nwick/GZRDMS\nwicking/M\nwidemouthed\nwidener/M\nwideness/S\nwiden/SGZRD\nwide/RSYTP\nwidespread\nwidgeon's\nwidget/SM\nwidower/M\nwidowhood/S\nwidow/MRDSGZ\nwidth/M\nwidths\nwidthwise\nWieland/M\nwielder/M\nwield/GZRDS\nWiemar/M\nwiener/SM\nwienie/SM\nWier/M\nWiesel/M\nwife/DSMYG\nwifeless\nwifely/RPT\nwigeon/MS\nwigged\nwigging/M\nWiggins\nwiggler/M\nwiggle/RSDGZ\nwiggly/RT\nwight/SGDM\nwiglet/S\nwigmaker\nwig/MS\nWigner/M\nwigwagged\nwigwagging\nwigwag/S\nwigwam/MS\nWilberforce/M\nWilbert/M\nWilbur/M\nWilburn/M\nWilburt/M\nWilcox/M\nWilda/M\nwildcat/SM\nwildcatted\nwildcatter/MS\nwildcatting\nwildebeest/SM\nWilde/MR\nWilden/M\nWilder/M\nwilderness/SM\nwilder/P\nwildfire/MS\nwildflower/S\nwildfowl/M\nwilding/M\nwildlife/M\nwildness/MS\nWildon/M\nwild/SPGTYRD\nwile/DSMG\nWileen/M\nWilek/M\nWiley/M\nWilford/M\nWilfred/M\nWilfredo/M\nWilfrid/M\nwilfulness's\nWilhelmina/M\nWilhelmine/M\nWilhelm/M\nWilie/M\nwilily\nwiliness/MS\nWilkerson/M\nWilkes/M\nWilkins/M\nWilkinson/M\nWillabella/M\nWilla/M\nWillamette/M\nWillamina/M\nWillard/M\nWillcox/M\nWilldon/M\nwilled/U\nWillem/M\nWillemstad/M\nwiller/M\nWilletta/M\nWillette/M\nWilley/M\nwillfulness/S\nwillful/YP\nWilliamsburg/M\nWilliam/SM\nWilliamson/M\nWillied/M\nWillie/M\nwillies\nWilli/MS\nwillinger\nwillingest\nwillingness's\nwillingness/US\nwilling/UYP\nWillisson/M\nwilliwaw/MS\nWill/M\nWilloughby/M\nwillower/M\nWillow/M\nwillow/RDMSG\nwillowy/TR\nwillpower/MS\nwill/SGJRD\nWilly/SDM\nWillyt/M\nWilma/M\nWilmar/M\nWilmer/M\nWilmette/M\nWilmington/M\nWilona/M\nWilone/M\nWilow/M\nWilshire/M\nWilsonian\nWilson/M\nwilt/DGS\nWilt/M\nWilton/M\nwily/PTR\nWimbledon/M\nwimp/GSMD\nwimpish\nwimple/SDGM\nwimpy/RT\nwince/SDG\nWinchell/M\nwincher/M\nwinchester/M\nWinchester/MS\nwinch/GRSDM\nwindbag/SM\nwindblown\nwindbreak/MZSR\nwindburn/GSMD\nwinded\nwinder/UM\nwindfall/SM\nwindflower/MS\nWindham/M\nWindhoek/M\nwindily\nwindiness/SM\nwinding/MS\nwindjammer/SM\nwindlass/GMSD\nwindless/YP\nwindmill/GDMS\nwindow/DMGS\nwindowless\nwindowpane/SM\nWindows\nwindowsill/SM\nwindpipe/SM\nwindproof\nwindrow/GDMS\nwind's\nwinds/A\nwindscreen/MS\nwindshield/SM\nwindsock/MS\nWindsor/MS\nwindstorm/MS\nwindsurf/GZJSRD\nwindswept\nwindup/MS\nwind/USRZG\nWindward/M\nwindward/SY\nWindy/M\nwindy/TPR\nwineglass/SM\nwinegrower/SM\nWinehead/M\nwinemake\nwinemaster\nwine/MS\nwinery/MS\nWinesap/M\nwineskin/M\nWinfield/M\nWinfred/M\nWinfrey/M\nwingback/M\nwingding/MS\nwingeing\nwinger/M\nwing/GZRDM\nwingless\nwinglike\nwingman\nwingmen\nwingspan/SM\nwingspread/MS\nwingtip/S\nWinifield/M\nWinifred/M\nWini/M\nwinker/M\nwink/GZRDS\nwinking/U\nWinkle/M\nwinkle/SDGM\nwinless\nWin/M\nwinnable\nWinnah/M\nWinna/M\nWinnebago/M\nWinne/M\nwinner/MS\nWinnetka/M\nWinnie/M\nWinnifred/M\nWinni/M\nwinning/SY\nWinnipeg/M\nWinn/M\nwinnow/SZGRD\nWinny/M\nWinograd/M\nwino/MS\nWinonah/M\nWinona/M\nWinooski/M\nWinsborough/M\nWinsett/M\nWinslow/M\nwinsomeness/SM\nwinsome/PRTY\nWinston/M\nwinterer/M\nwintergreen/SM\nwinterize/GSD\nWinters\nwinter/SGRDYM\nwintertime/MS\nWinthrop/M\nwintriness/M\nwintry/TPR\nwiny/RT\nwin/ZGDRS\nwipe/DRSZG\nwiper/M\nwirehair/MS\nwireless/MSDG\nwireman/M\nwiremen\nwirer/M\nwire's\nwires/A\nwiretap/MS\nwiretapped\nwiretapper/SM\nwiretapping\nwire/UDA\nwiriness/S\nwiring/SM\nwiry/RTP\nWisc\nWisconsinite/SM\nWisconsin/M\nwisdoms\nwisdom/UM\nwiseacre/MS\nwisecrack/GMRDS\nwised\nwisely/TR\nWise/M\nwiseness\nwisenheimer/M\nWisenheimer/M\nwises\nwise/URTY\nwishbone/MS\nwishfulness/M\nwishful/PY\nwish/GZSRD\nwishy\nwising\nWis/M\nwisp/MDGS\nwispy/RT\nwist/DGS\nwisteria/SM\nwistfulness/MS\nwistful/PY\nwitchcraft/SM\nwitchdoctor/S\nwitchery/MS\nwitch/SDMG\nwithal\nwithdrawal/MS\nwithdrawer/M\nwithdrawnness/M\nwithdrawn/P\nwithdraw/RGS\nwithdrew\nwithe/M\nwither/GDJ\nwithering/Y\nWitherspoon/M\nwith/GSRDZ\nwithheld\nwithholder/M\nwithhold/SJGZR\nwithin/S\nwithout/S\nwiths\nwithstand/SG\nwithstood\nwitlessness/MS\nwitless/PY\nWit/M\nwitness/DSMG\nwitnessed/U\nwit/PSM\nwitted\nwitter/G\nWittgenstein/M\nwitticism/MS\nWittie/M\nwittily\nwittiness/SM\nwittings\nwitting/UY\nWitt/M\nWitty/M\nwitty/RTP\nWitwatersrand/M\nwive/GDS\nwives/M\nwizard/MYS\nwizardry/MS\nwizen/D\nwiz's\nwk/Y\nWm/M\nWNW\nwoad/MS\nwobble/GSRD\nwobbler/M\nwobbliness/S\nwobbly/PRST\nWodehouse/M\nwoebegone/P\nwoefuller\nwoefullest\nwoefulness/SM\nwoeful/PY\nwoe/PSM\nwoke\nwok/SMN\nWolcott/M\nwold/MS\nWolfe/M\nwolfer/M\nWolff/M\nWolfgang/M\nwolfhound/MS\nWolfie/M\nwolfishness/M\nwolfish/YP\nWolf/M\nwolfram/MS\nwolf/RDMGS\nWolfy/M\nWollongong/M\nWollstonecraft/M\nWolsey/M\nWolverhampton/M\nwolverine/SM\nWolverton/M\nwolves/M\nwoman/GSMYD\nwomanhood/MS\nwomanish\nwomanized/U\nwomanizer/M\nwomanize/RSDZG\nwomanizes/U\nwomankind/M\nwomanlike\nwomanliness/SM\nwomanly/PRT\nwombat/MS\nwomb/SDM\nwomenfolk/MS\nwomen/MS\nwonderer/M\nwonderfulness/SM\nwonderful/PY\nwonder/GLRDMS\nwondering/Y\nwonderland/SM\nwonderment/SM\nwondrousness/M\nwondrous/YP\nWong/M\nwonk/S\nwonky/RT\nwonned\nwonning\nwon/SG\nwon't\nwontedness/MU\nwonted/PUY\nwont/SGMD\nWoodard/M\nWoodberry/M\nwoodbine/SM\nwoodblock/S\nWoodbury/M\nwoodcarver/S\nwoodcarving/MS\nwoodchopper/SM\nwoodchuck/MS\nwoodcock/MS\nwoodcraft/MS\nwoodcut/SM\nwoodcutter/MS\nwoodcutting/MS\nwoodenness/SM\nwooden/TPRY\nwoodgrain/G\nwoodhen\nWoodhull/M\nWoodie/M\nwoodiness/MS\nwoodland/SRM\nWoodlawn/M\nwoodlice\nwoodlot/S\nwoodlouse/M\nwoodman/M\nWoodman/M\nwoodmen\nwoodpecker/SM\nwoodpile/SM\nWoodrow/M\nwoodruff/M\nwoo/DRZGS\nwoodshedded\nwoodshedding\nwoodshed/SM\nwoodside\nWood/SM\nwoodsman/M\nwoodsmen\nwood/SMNDG\nwoodsmoke\nwoods/R\nWoodstock/M\nwoodsy/TRP\nWoodward/MS\nwoodwind/S\nwoodworker/M\nwoodworking/M\nwoodwork/SMRGZJ\nwoodworm/M\nwoodyard\nWoody/M\nwoody/TPSR\nwoofer/M\nwoof/SRDMGZ\nWoolf/M\nwoolgatherer/M\nwoolgathering/M\nwoolgather/RGJ\nwoolliness/MS\nwoolly/RSPT\nWoolongong/M\nwool/SMYNDX\nWoolworth/M\nWoonsocket/M\nWooster/M\nWooten/M\nwoozily\nwooziness/MS\nwoozy/RTP\nwop/MS!\nWorcestershire/M\nWorcester/SM\nwordage/SM\nword/AGSJD\nwordbook/MS\nWorden/M\nwordily\nwordiness/SM\nwording/AM\nwordless/Y\nwordplay/SM\nword's\nWordsworth/M\nwordy/TPR\nwore\nworkability's\nworkability/U\nworkableness/M\nworkable/U\nworkably\nworkaday\nworkaholic/S\nworkaround/SM\nworkbench/MS\nworkbook/SM\nworkday/SM\nworked/A\nworker/M\nworkfare/S\nworkforce/S\nwork/GZJSRDMB\nworkhorse/MS\nworkhouse/SM\nworking/M\nworkingman/M\nworkingmen\nworkingwoman/M\nworkingwomen\nworkload/SM\nworkmanlike\nWorkman/M\nworkman/MY\nworkmanship/MS\nworkmate/S\nworkmen/M\nworkout/SM\nworkpiece/SM\nworkplace/SM\nworkroom/MS\nworks/A\nworksheet/S\nworkshop/MS\nworkspace/S\nworkstation/MS\nworktable/SM\nworktop/S\nworkup/S\nworkweek/SM\nworldlier\nworldliest\nworldliness/USM\nworldly/UP\nworldwide\nworld/ZSYM\nwormer/M\nwormhole/SM\nworm/SGMRD\nWorms/M\nwormwood/SM\nwormy/RT\nworn/U\nworried/Y\nworrier/M\nworriment/MS\nworrisome/YP\nworrying/Y\nworrywart/SM\nworry/ZGSRD\nworsen/GSD\nworse/SR\nworshiper/M\nworshipfulness/M\nworshipful/YP\nworship/ZDRGS\nworsted/MS\nworst/SGD\nworth/DG\nworthily/U\nworthinesses/U\nworthiness/SM\nWorthington/M\nworthlessness/SM\nworthless/PY\nWorth/M\nworths\nworthwhile/P\nWorthy/M\nworthy/UTSRP\nwort/SM\nwost\nwot\nWotan/M\nwouldn't\nwould/S\nwouldst\nwould've\nwound/AU\nwounded/U\nwounder\nwounding\nwounds\nwound's\nwove/A\nwoven/AU\nwovens\nwow/SDG\nWozniak/M\nWP\nwpm\nwrack/SGMD\nwraith/M\nwraiths\nWrangell/M\nwrangle/GZDRS\nwrangler/M\nwraparound/S\nwrap/MS\nwrapped/U\nwrapper/MS\nwrapping/SM\nwraps/U\nwrasse/SM\nwrathful/YP\nwrath/GDM\nwraths\nwreak/SDG\nwreathe\nwreath/GMDS\nwreaths\nwreckage/MS\nwrecker/M\nwreck/GZRDS\nwrenching/Y\nwrench/MDSG\nwren/MS\nWren/MS\nWrennie/M\nwrester/M\nwrestle/JGZDRS\nwrestler/M\nwrestling/M\nwrest/SRDG\nwretchedness/SM\nwretched/TPYR\nwretch/MDS\nwriggle/DRSGZ\nwriggler/M\nwriggly/RT\nWright/M\nwright/MS\nWrigley/M\nwringer/M\nwring/GZRS\nwrinkled/U\nwrinkle/GMDS\nwrinkly/RST\nwristband/SM\nwrist/MS\nwristwatch/MS\nwritable/U\nwrite/ASBRJG\nwriter/MA\nwriteup\nwrithe/SDG\nwriting/M\nwrit/MRSBJGZ\nwritten/UA\nWroclaw\nwrongdoer/MS\nwrongdoing/MS\nwronger/M\nwrongfulness/MS\nwrongful/PY\nwrongheadedness/MS\nwrongheaded/PY\nwrongness/MS\nwrong/PSGTYRD\nWronskian/M\nwrote/A\nwroth\nwrought/I\nwrung\nwry/DSGY\nwryer\nwryest\nwryness/SM\nW's\nWSW\nwt\nW/T\nWuhan/M\nWu/M\nWurlitzer/M\nwurst/SM\nwuss/S\nwussy/TRS\nWV\nWW\nWWI\nWWII\nWWW\nw/XTJGV\nWY\nWyatan/M\nWyatt/M\nWycherley/M\nWycliffe/M\nWye/MH\nWyeth/M\nWylie/M\nWylma/M\nWyman/M\nWyndham/M\nWyn/M\nWynne/M\nWynnie/M\nWynn/M\nWynny/M\nWyo/M\nWyomingite/SM\nWyoming/M\nWYSIWYG\nx\nX\nXanadu\nXanthippe/M\nXanthus/M\nXaviera/M\nXavier/M\nXebec/M\nXe/M\nXEmacs/M\nXenakis/M\nXena/M\nXenia/M\nXenix/M\nxenon/SM\nxenophobe/MS\nxenophobia/SM\nxenophobic\nXenophon/M\nXenos\nxerographic\nxerography/MS\nxerox/GSD\nXerox/MGSD\nXerxes/M\nXever/M\nXhosa/M\nXi'an\nXian/S\nXiaoping/M\nxii\nxiii\nxi/M\nXimenes/M\nXimenez/M\nXimian/SM\nXingu/M\nxis\nxiv\nxix\nXL\nXmas/SM\nXML\nXochipilli/M\nXOR\nX's\nXS\nxterm/M\nXuzhou/M\nxv\nxvi\nxvii\nxviii\nxx\nXXL\nxylem/SM\nxylene/M\nXylia/M\nXylina/M\nxylophone/MS\nxylophonist/S\nXymenes/M\nY\nya\nyacc/M\nYacc/M\nyachting/M\nyachtsman\nyachtsmen\nyachtswoman/M\nyachtswomen\nyacht/ZGJSDM\nyack's\nYagi/M\nyahoo/MS\nYahweh/M\nYakima/M\nyakked\nyakking\nyak/SM\nYakut/M\nYakutsk/M\nYale/M\nYalies/M\ny'all\nYalonda/M\nYalow/M\nYalta/M\nYalu/M\nYamaha/M\nyammer/RDZGS\nYamoussoukro\nyam/SM\nYanaton/M\nYance/M\nYancey/M\nYancy/M\nYang/M\nYangon\nyang/S\nYangtze/M\nYankee/SM\nyank/GDS\nYank/MS\nYaounde/M\nyapped\nyapping\nyap/S\nYaqui/M\nyardage/SM\nyardarm/SM\nYardley/M\nYard/M\nyardman/M\nyardmaster/S\nyardmen\nyard/SMDG\nyardstick/SM\nyarmulke/SM\nyarn/SGDM\nYaroslavl/M\nyarrow/MS\nYasmeen/M\nYasmin/M\nYates\nyaw/DSG\nyawl/SGMD\nyawner/M\nyawn/GZSDR\nyawning/Y\nYb/M\nyd\nYeager/M\nyeah\nyeahs\nyearbook/SM\nyearling/M\nyearlong\nyearly/S\nyearner/M\nyearning/MY\nyearn/JSGRD\nyear/YMS\nyea/S\nyeastiness/M\nyeast/SGDM\nyeasty/PTR\nYeats/M\nyecch\nyegg/MS\nYehudi/M\nYehudit/M\nYekaterinburg/M\nYelena/M\nyell/GSDR\nyellowhammers\nyellowish\nYellowknife/M\nyellowness/MS\nYellowstone/M\nyellow/TGPSRDM\nyellowy\nyelper/M\nyelp/GSDR\nYeltsin\nYemeni/S\nYemenite/SM\nYemen/M\nYenisei/M\nyenned\nyenning\nyen/SM\nYentl/M\nyeomanry/MS\nyeoman/YM\nyeomen\nyep/S\nYerevan/M\nYerkes/M\nYesenia/M\nyeshiva/SM\nyes/S\nyessed\nyessing\nyesterday/MS\nyesteryear/SM\nyet\nye/T\nyeti/SM\nYetta/M\nYettie/M\nYetty/M\nYevette/M\nYevtushenko/M\nyew/SM\ny/F\nYggdrasil/M\nYiddish/M\nyielded/U\nyielding/U\nyield/JGRDS\nyikes\nyin/S\nyipe/S\nyipped\nyippee/S\nyipping\nyip/S\nYMCA\nYMHA\nYmir/M\nYMMV\nYnes/M\nYnez/M\nyo\nYoda/M\nyodeler/M\nyodel/SZRDG\nYoder/M\nyoga/MS\nyoghurt's\nyogi/MS\nyogurt/SM\nyoke/DSMG\nyoked/U\nyokel/SM\nyokes/U\nyoking/U\nYoknapatawpha/M\nYokohama/M\nYoko/M\nYolanda/M\nYolande/M\nYolane/M\nYolanthe/M\nyolk/DMS\nyon\nyonder\nYong/M\nYonkers/M\nyore/MS\nYorgo/MS\nYorick/M\nYorke/M\nYorker/M\nyorker/SM\nYorkshire/MS\nYorktown/M\nYork/ZRMS\nYoruba/M\nYosemite/M\nYoshiko/M\nYoshi/M\nYost/M\nyou'd\nyou'll\nyoungish\nYoung/M\nyoungster/MS\nYoungstown/M\nyoung/TRYP\nyou're\nyour/MS\nyourself\nyourselves\nyou/SH\nyouthfulness/SM\nyouthful/YP\nyouths\nyouth/SM\nyou've\nYovonnda/M\nyow\nyowl/GSD\nYpres/M\nYpsilanti/M\nyr\nyrs\nY's\nYsabel/M\nYT\nytterbium/MS\nyttrium/SM\nyuan/M\nYuba/M\nYucatan\nyucca/MS\nyuck/GSD\nyucky/RT\nYugo/M\nYugoslavia/M\nYugoslavian/S\nYugoslav/M\nYuh/M\nYuki/M\nyukked\nyukking\nYukon/M\nyuk/S\nyule/MS\nYule/MS\nyuletide/MS\nYuletide/S\nYul/M\nYulma/M\nyum\nYuma/M\nyummy/TRS\nYunnan/M\nyuppie/SM\nyup/S\nYurik/M\nYuri/M\nyurt/SM\nYves/M\nYvette/M\nYvon/M\nYvonne/M\nYvor/M\nYWCA\nYWHA\nZabrina/M\nZaccaria/M\nZachariah/M\nZacharia/SM\nZacharie/M\nZachary/M\nZacherie/M\nZachery/M\nZach/M\nZackariah/M\nZack/M\nzagging\nZagreb/M\nzag/S\nZahara/M\nZaire/M\nZairian/S\nZak/M\nZambezi/M\nZambia/M\nZambian/S\nZamboni\nZamenhof/M\nZamora/M\nZandra/M\nZane/M\nZaneta/M\nzaniness/MS\nZan/M\nZanuck/M\nzany/PDSRTG\nZanzibar/M\nZapata/M\nZaporozhye/M\nZappa/M\nzapped\nzapper/S\nzapping\nzap/S\nZarah/M\nZara/M\nZared/M\nZaria/M\nZarla/M\nZealand/M\nzeal/MS\nzealot/MS\nzealotry/MS\nzealousness/SM\nzealous/YP\nZea/M\nZebadiah/M\nZebedee/M\nZeb/M\nzebra/MS\nZebulen/M\nZebulon/M\nzebu/SM\nZechariah/M\nZedekiah/M\nZed/M\nZedong/M\nzed/SM\nZeffirelli/M\nZeiss/M\nzeitgeist/S\nZeke/M\nZelda/M\nZelig/M\nZellerbach/M\nZelma/M\nZena/M\nZenger/M\nZenia/M\nzenith/M\nzeniths\nZen/M\nZennist/M\nZeno/M\nZephaniah/M\nzephyr/MS\nZephyrus/M\nZeppelin's\nzeppelin/SM\nZerk/M\nzeroed/M\nzeroing/M\nzero/SDHMG\nzestfulness/MS\nzestful/YP\nzest/MDSG\nzesty/RT\nzeta/SM\nzeugma/M\nZeus/M\nZhdanov/M\nZhengzhou\nZhivago/M\nZhukov/M\nZia/M\nZibo/M\nZiegfeld/MS\nZiegler/M\nzig\nzigged\nzigging\nZiggy/M\nzigzagged\nzigzagger\nzigzagging\nzigzag/MS\nzilch/S\nzillion/MS\nZilvia/M\nZimbabwean/S\nZimbabwe/M\nZimmerman/M\nzincked\nzincking\nzinc/MS\nzing/GZDRM\nzingy/RT\nzinnia/SM\nZionism/MS\nZionist/MS\nZion/SM\nzip/MS\nzipped/U\nzipper/GSDM\nzipping/U\nzippy/RT\nzips/U\nzirconium/MS\nzircon/SM\nZita/M\nZitella/M\nzither/SM\nzit/S\nzloty/SM\nZn/M\nzodiacal\nzodiac/SM\nZoe/M\nZola/M\nZollie/M\nZolly/M\nZomba/M\nzombie/SM\nzombi's\nzonal/Y\nZonda/M\nZondra/M\nzoned/A\nzone/MYDSRJG\nzones/A\nzoning/A\nzonked\nZonnya/M\nzookeepers\nzoological/Y\nzoologist/SM\nzoology/MS\nzoom/DGS\nzoophyte/SM\nzoophytic\nzoo/SM\nZorah/M\nZora/M\nZorana/M\nZorina/M\nZorine/M\nZorn/M\nZoroaster/M\nZoroastrianism/MS\nZoroastrian/S\nZorro/M\nZosma/M\nzounds/S\nZr/M\nZs\nZsazsa/M\nZsigmondy/M\nz/TGJ\nZubenelgenubi/M\nZubeneschamali/M\nzucchini/SM\nZukor/M\nZulema/M\nZululand/M\nZulu/MS\nZuni/S\nZ<6E>rich/M\nZuzana/M\nzwieback/MS\nZwingli/M\nZworykin/M\nZ/X\nzydeco/S\nzygote/SM\nzygotic\nzymurgy/S\n";
}), define("text!dictionaries/en_US.aff", [], function() {
return "SET ISO8859-1\nTRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'\nNOSUGGEST !\n\n# ordinal numbers\nCOMPOUNDMIN 1\n# only in compounds: 1th, 2th, 3th\nONLYINCOMPOUND c\n# compound rules:\n# 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)\n# 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)\nCOMPOUNDRULE 2\nCOMPOUNDRULE n*1t\nCOMPOUNDRULE n*mp\nWORDCHARS 0123456789\n\nPFX A Y 1\nPFX A 0 re .\n\nPFX I Y 1\nPFX I 0 in .\n\nPFX U Y 1\nPFX U 0 un .\n\nPFX C Y 1\nPFX C 0 de .\n\nPFX E Y 1\nPFX E 0 dis .\n\nPFX F Y 1\nPFX F 0 con .\n\nPFX K Y 1\nPFX K 0 pro .\n\nSFX V N 2\nSFX V e ive e\nSFX V 0 ive [^e]\n\nSFX N Y 3\nSFX N e ion e\nSFX N y ication y \nSFX N 0 en [^ey] \n\nSFX X Y 3\nSFX X e ions e\nSFX X y ications y\nSFX X 0 ens [^ey]\n\nSFX H N 2\nSFX H y ieth y\nSFX H 0 th [^y] \n\nSFX Y Y 1\nSFX Y 0 ly .\n\nSFX G Y 2\nSFX G e ing e\nSFX G 0 ing [^e] \n\nSFX J Y 2\nSFX J e ings e\nSFX J 0 ings [^e]\n\nSFX D Y 4\nSFX D 0 d e\nSFX D y ied [^aeiou]y\nSFX D 0 ed [^ey]\nSFX D 0 ed [aeiou]y\n\nSFX T N 4\nSFX T 0 st e\nSFX T y iest [^aeiou]y\nSFX T 0 est [aeiou]y\nSFX T 0 est [^ey]\n\nSFX R Y 4\nSFX R 0 r e\nSFX R y ier [^aeiou]y\nSFX R 0 er [aeiou]y\nSFX R 0 er [^ey]\n\nSFX Z Y 4\nSFX Z 0 rs e\nSFX Z y iers [^aeiou]y\nSFX Z 0 ers [aeiou]y\nSFX Z 0 ers [^ey]\n\nSFX S Y 4\nSFX S y ies [^aeiou]y\nSFX S 0 s [aeiou]y\nSFX S 0 es [sxzh]\nSFX S 0 s [^sxzhy]\n\nSFX P Y 3\nSFX P y iness [^aeiou]y\nSFX P 0 ness [aeiou]y\nSFX P 0 ness [^y]\n\nSFX M Y 1\nSFX M 0 's .\n\nSFX B Y 3\nSFX B 0 able [^aeiou]\nSFX B 0 able ee\nSFX B e able [^aeiou]e\n\nSFX L Y 1\nSFX L 0 ment .\n\nREP 88\nREP a ei\nREP ei a\nREP a ey\nREP ey a\nREP ai ie\nREP ie ai\nREP are air\nREP are ear\nREP are eir\nREP air are\nREP air ere\nREP ere air\nREP ere ear\nREP ere eir\nREP ear are\nREP ear air\nREP ear ere\nREP eir are\nREP eir ere\nREP ch te\nREP te ch\nREP ch ti\nREP ti ch\nREP ch tu\nREP tu ch\nREP ch s\nREP s ch\nREP ch k\nREP k ch\nREP f ph\nREP ph f\nREP gh f\nREP f gh\nREP i igh\nREP igh i\nREP i uy\nREP uy i\nREP i ee\nREP ee i\nREP j di\nREP di j\nREP j gg\nREP gg j\nREP j ge\nREP ge j\nREP s ti\nREP ti s\nREP s ci\nREP ci s\nREP k cc\nREP cc k\nREP k qu\nREP qu k\nREP kw qu\nREP o eau\nREP eau o\nREP o ew\nREP ew o\nREP oo ew\nREP ew oo\nREP ew ui\nREP ui ew\nREP oo ui\nREP ui oo\nREP ew u\nREP u ew\nREP oo u\nREP u oo\nREP u oe\nREP oe u\nREP u ieu\nREP ieu u\nREP ue ew\nREP ew ue\nREP uff ough\nREP oo ieu\nREP ieu oo\nREP ier ear\nREP ear ier\nREP ear air\nREP air ear\nREP w qu\nREP qu w\nREP z ss\nREP ss z\nREP shun tion\nREP shun sion\nREP shun cion\n";
}), define("extensions/spellCheck", [ "jquery", "underscore", "crel", "utils", "classes/Extension", "typo-js", "xregexp", "text!bower-libs/Typo.js/typo/typo.js", "text!workers/spellCheckWorker.js", "text!dictionaries/en_US.dic", "text!dictionaries/en_US.aff", "text!html/tocSettingsBlock.html" ], function(n, e, t, i, a, r, o, s, l, c, M, u) {
function d(n) {
var t = f.session.getTokens(n).slice(), i = 0, a = this;
a.checkToken = function() {
if (0 === t.length) return !v && (v = setTimeout(h, 5)), void 0;
var r = t.shift(), o = [];
return /code|code_block|reference|markup\.underline/.test(r.type) || r.value.replace(b, function(n, e) {
o.push({
value: n,
offset: e + i
});
}), i += r.value.length, 0 === o.length ? (a.checkToken(), void 0) : (g.onmessage = function(t) {
var i = JSON.parse(t.data);
if ("check" == i[0]) {
var r = i[1];
if (!a.stopped) {
var o = require("ace/range").Range;
e.each(r, function(e) {
if (!e.check) {
var t = new o(n, e.offset, n, e.offset + e.value.length), i = f.session.addMarker(t, "misspelled", "typo", !0), a = f.session.getMarkers(!0)[i];
y.push(a);
}
}), a.checkToken();
}
}
}, g.postMessage(JSON.stringify([ "check", o ])), void 0);
};
}
function h() {
v = void 0, D && (D.stopped = !0), D = new d(w++), D.checkToken();
}
function S() {
D && (D.stopped = !0), v && clearTimeout(v), v = void 0;
}
function p() {
var n = [];
e.each(y, function(e) {
e.range.start.row < w ? n.push(e) : f.session.removeMarker(e.id);
}), y = n, v = setTimeout(h, 700);
}
var m = new a("spellCheck", "Spell Check", !0, !0, !0);
m.settingsBlock = u;
var g = new Worker("res/worker.js");
g.postMessage(l), g.postMessage(JSON.stringify([ "init", s, "en_US", M, c ]));
var f = void 0, b = o("\\p{L}+(?:'\\p{L}+)*", "g"), y = [], v = void 0, D = void 0, w = 0;
[ "<li>", ' <a href="#">', " <%= suggestion %>", " </a>", "</li>" ].join("");
var G = !1;
return m.onFileClose = function() {
S(), G = !1;
}, m.onFileOpen = function() {
G = !0, w = 0, S(), p();
}, m.onAceCreated = function(n) {
f = n, f.session.on("change", function(n) {
if (G === !0) {
var e = n.data.range.start.row;
w > e && (w = e), S(), p();
}
});
}, m;
}), define("text!html/userCustomSettingsBlock.html", [], function() {
return '<p>Allows users to implement their own extension.</p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label" for="textarea-usercustom-code">JavaScript code\n <a href="#" class="tooltip-usercustom-extension">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-usercustom-code" class="form-control"></textarea>\n </div>\n </div>\n</div>\n<span class="help-block pull-right"><a target="_blank" href="https://github.com/benweet/stackedit/blob/master/doc/developer-guide.md#architecture">More info</a></span>';
}), define("extensions/userCustom", [ "jquery", "underscore", "utils", "classes/Extension", "fileSystem", "settings", "text!html/userCustomSettingsBlock.html" ], function($, _, utils, Extension, fileSystem, settings, userCustomSettingsBlockHTML) {
var userCustom = new Extension("userCustom", "UserCustom extension", !0);
userCustom.settingsBlock = userCustomSettingsBlockHTML, userCustom.defaultConfig = {
code: ""
};
var fileMgr = void 0;
userCustom.onFileMgrCreated = function(n) {
fileMgr = n;
};
var synchronizer = void 0;
userCustom.onSynchronizerCreated = function(n) {
synchronizer = n;
};
var publisher = void 0;
userCustom.onPublisherCreated = function(n) {
publisher = n;
};
var eventMgr = void 0;
return userCustom.onEventMgrCreated = function(n) {
eventMgr = n;
}, userCustom.onLoadSettings = function() {
utils.setInputValue("#textarea-usercustom-code", userCustom.config.code);
}, userCustom.onSaveSettings = function(newConfig, event) {
newConfig.code = utils.getInputValue("#textarea-usercustom-code");
try {
eval(newConfig.code);
} catch (e) {
eventMgr.onError(e), utils.getInputTextValue("#textarea-usercustom-code", event, /^$/);
}
}, userCustom.onInit = function() {
try {
eval(userCustom.config.code);
} catch (e) {
console.error(e);
}
}, userCustom;
}), function(n) {
var e = "waitForImages";
n.waitForImages = {
hasImageProperties: [ "backgroundImage", "listStyleImage", "borderImage", "borderCornerImage" ]
}, n.expr[":"].uncached = function(e) {
if (!n(e).is('img[src!=""]')) return !1;
var t = new Image();
return t.src = e.src, !t.complete;
}, n.fn.waitForImages = function(t, i, a) {
var r = 0, o = 0;
if (n.isPlainObject(arguments[0]) && (a = arguments[0].waitForAll, i = arguments[0].each,
t = arguments[0].finished), t = t || n.noop, i = i || n.noop, a = !!a, !n.isFunction(t) || !n.isFunction(i)) throw new TypeError("An invalid callback was supplied.");
return this.each(function() {
var s = n(this), l = [], c = n.waitForImages.hasImageProperties || [], M = /url\(\s*(['"]?)(.*?)\1\s*\)/g;
a ? s.find("*").andSelf().each(function() {
var e = n(this);
e.is("img:uncached") && l.push({
src: e.attr("src"),
element: e[0]
}), n.each(c, function(n, t) {
var i, a = e.css(t);
if (!a) return !0;
for (;i = M.exec(a); ) l.push({
src: i[2],
element: e[0]
});
});
}) : s.find("img:uncached").each(function() {
l.push({
src: this.src,
element: this
});
}), r = l.length, o = 0, 0 === r && t.call(s[0]), n.each(l, function(a, l) {
var c = new Image();
n(c).bind("load." + e + " error." + e, function(n) {
return o++, i.call(l.element, o, r, "load" == n.type), o == r ? (t.call(s[0]), !1) : void 0;
}), c.src = l.src;
});
});
};
}(jQuery), define("jquery-waitforimages", function() {}), define("eventMgr", [ "jquery", "underscore", "crel", "utils", "classes/Extension", "settings", "text!html/settingsExtensionsAccordion.html", "extensions/yamlFrontMatterParser", "extensions/markdownSectionParser", "extensions/partialRendering", "extensions/buttonMarkdownSyntax", "extensions/googleAnalytics", "extensions/dialogAbout", "extensions/dialogManagePublication", "extensions/dialogManageSynchronization", "extensions/dialogOpenHarddrive", "extensions/documentTitle", "extensions/documentSelector", "extensions/documentPanel", "extensions/documentManager", "extensions/workingIndicator", "extensions/notifications", "extensions/markdownExtra", "extensions/toc", "extensions/mathJax", "extensions/emailConverter", "extensions/scrollLink", "extensions/buttonFocusMode", "extensions/buttonSync", "extensions/buttonPublish", "extensions/buttonShare", "extensions/buttonStat", "extensions/buttonHtmlCode", "extensions/buttonViewer", "extensions/welcomeTour", "extensions/spellCheck", "extensions/userCustom", "bootstrap", "jquery-waitforimages" ], function(n, e, t, i, a, r, o) {
function s(n) {
return e.chain(u).map(function(e) {
return e.enabled && e[n];
}).compact().value();
}
function l(n) {
return d[n] = s(n), function() {
logger.log(n, arguments);
var t = arguments;
e.each(d[n], function(n) {
try {
n.apply(null, t);
} catch (i) {
console.error(e.isObject(i) ? i.stack : i);
}
});
};
}
function c(n) {
M[n] = l(n);
}
var M = {}, u = e.chain(arguments).map(function(n) {
return n instanceof a && n;
}).compact().value();
extensionSettings = r.extensionSettings || {}, e.each(u, function(n) {
n.config = e.extend({}, n.defaultConfig, extensionSettings[n.extensionId]), n.enabled = viewerMode === !0 && n.disableInViewer === !0 ? !1 : lightMode === !0 && n.disableInLight === !0 ? !1 : !n.isOptional || void 0 === n.config.enabled || n.config.enabled === !0;
});
var d = {};
M.addListener = function(n, e) {
try {
d[n].push(e);
} catch (t) {
console.error("No event listener called " + n);
}
}, l("onInit")(), M.onLoadSettings = function() {
logger.log("onLoadSettings"), e.each(u, function(n) {
i.setInputChecked("#input-enable-extension-" + n.extensionId, n.enabled === !0);
var e = n.onLoadSettings;
e && e();
});
}, M.onSaveSettings = function(n, t) {
logger.log("onSaveSettings"), e.each(u, function(a) {
var r = e.extend({}, a.defaultConfig);
r.enabled = i.getInputChecked("#input-enable-extension-" + a.extensionId);
var o = a.onSaveSettings;
o && o(r, t), n[a.extensionId] = r;
});
}, c("onMessage"), c("onError"), c("onOfflineChanged"), c("onUserActive"), c("onAsyncRunning"),
c("onPeriodicRun"), c("onFileMgrCreated"), c("onSynchronizerCreated"), c("onPublisherCreated"),
c("onEventMgrCreated"), c("onFileCreated"), c("onFileDeleted"), c("onFileSelected"),
c("onFileOpen"), c("onFileClosed"), c("onContentChanged"), c("onTitleChanged"),
c("onFoldersChanged"), c("onSyncRunning"), c("onSyncSuccess"), c("onSyncImportSuccess"),
c("onSyncExportSuccess"), c("onSyncRemoved"), c("onPublishRunning"), c("onPublishSuccess"),
c("onNewPublishSuccess"), c("onPublishRemoved"), c("onLayoutConfigure"), c("onLayoutCreated"),
c("onLayoutResize"), c("onPagedownConfigure"), c("onSectionsCreated"), c("onMarkdownTrim"),
c("onExtraExtensions"), c("onAceCreated");
var h = l("onPreviewFinished"), S = s("onAsyncPreview"), p = void 0, m = void 0;
M.onAsyncPreview = function() {
function n(t) {
var a = t.length ? t.shift() : function() {
logger.log("Preview time: " + (new Date() - M.previewStartTime)), e.defer(function() {
var n = "";
e.each(p.children, function(e) {
n += e.innerHTML;
}), h(i.trim(n));
});
};
a(function() {
n(t);
});
}
logger.log("onAsyncPreview"), logger.log("Conversion time: " + (new Date() - M.previewStartTime)),
n(S.concat([ function(n) {
m.waitForImages(n);
} ]));
};
var g = l("onReady");
return M.onReady = function() {
function i(n) {
var i = t("div", {
"class": "btn-group"
}), a = n();
return e.isString(a) ? i.innerHTML = a : e.isElement(a) && i.appendChild(a), i;
}
if (p = document.getElementById("preview-contents"), m = n(p), viewerMode === !1) {
var a = e.chain(u).sortBy(function(n) {
return n.extensionName.toLowerCase();
}).reduce(function(n, t) {
return n + (t.settingsBlock ? e.template(o, {
extensionId: t.extensionId,
extensionName: t.extensionName,
isOptional: t.isOptional,
settingsBlock: t.settingsBlock
}) : "");
}, "").value();
document.querySelector(".accordion-extensions").innerHTML = a, logger.log("onCreateButton");
var r = s("onCreateButton"), l = document.createDocumentFragment();
e.each(r, function(n) {
l.appendChild(i(n));
}), document.getElementById("extension-buttons").appendChild(l), logger.log("onCreateEditorButton");
var c = s("onCreateEditorButton"), M = document.createDocumentFragment();
e.each(c, function(n) {
M.appendChild(i(n));
});
var d = document.querySelector(".extension-editor-buttons");
d.appendChild(M);
}
logger.log("onCreatePreviewButton");
var h = s("onCreatePreviewButton"), S = document.createDocumentFragment();
e.each(h, function(n) {
S.appendChild(i(n));
});
var f = document.querySelector(".extension-preview-buttons");
f.appendChild(S);
var b = n(f), y = b.width();
b.find(".btn-group").each(function() {
var e = n(this);
e.find(".dropdown-menu").css({
right: -y + e.width() + e.position().left
});
}), g();
}, M.onEventMgrCreated(M), M;
}), define("text!html/settingsShortcutEntry.html", [], function() {
return '<div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-shortcut-<%= shortcut.name %>"><%= shortcut.title %></label>\n <div class="col-lg-8 form-inline">\n <input type="text" id="input-settings-shortcut-<%= shortcut.name %>"\n class="form-control col-lg-4">\n <label class="col-lg-2 control-label"\n for="input-settings-shortcut-<%= shortcut.name %>-mac">Mac</label>\n <input type="text"\n id="input-settings-shortcut-<%= shortcut.name %>-mac"\n class="form-control col-lg-4">\n </div>\n</div>\n';
}), define("shortcutMgr", [ "underscore", "eventMgr", "settings", "utils", "text!html/settingsShortcutEntry.html" ], function(n, e, t, i, a) {
var r = {}, o = {
bold: {
title: "Strong",
defaultKey: {
win: "Ctrl-B",
mac: "Command-B|Ctrl-B"
},
isPageDown: !0
},
italic: {
title: "Emphasis",
defaultKey: {
win: "Ctrl-I",
mac: "Command-I|Ctrl-I"
},
isPageDown: !0
},
link: {
title: "Hyperlink",
defaultKey: {
win: "Ctrl-L",
mac: "Command-L|Ctrl-L"
},
isPageDown: !0
},
quote: {
title: "Blockquote",
defaultKey: {
win: "Ctrl-Q",
mac: "Command-Q|Ctrl-Q"
},
isPageDown: !0
},
code: {
title: "Code Sample",
defaultKey: {
win: "Ctrl-K",
mac: "Command-K|Ctrl-K"
},
isPageDown: !0
},
image: {
title: "Image",
defaultKey: {
win: "Ctrl-G",
mac: "Command-G|Ctrl-G"
},
isPageDown: !0
},
olist: {
title: "Numbered List",
defaultKey: {
win: "Ctrl-O",
mac: "Command-O|Ctrl-O"
},
isPageDown: !0
},
ulist: {
title: "Bulleted List",
defaultKey: {
win: "Ctrl-U",
mac: "Command-U|Ctrl-U"
},
isPageDown: !0
},
heading: {
title: "Heading",
defaultKey: {
win: "Ctrl-H",
mac: "Command-H|Ctrl-H"
},
isPageDown: !0
},
hr: {
title: "Horizontal Rule",
defaultKey: {
win: "Ctrl-R",
mac: "Command-R|Ctrl-R"
},
isPageDown: !0
},
undo: {
title: "Undo",
defaultKey: {
win: "Ctrl-Z",
mac: "Command-Z"
},
exec: function(n) {
n.undo();
},
isPageDown: !0
},
redo: {
title: "Redo",
defaultKey: {
win: "Ctrl-Y|Ctrl-Shift-Z",
mac: "Command-Y|Command-Shift-Z"
},
exec: function(n) {
n.redo();
},
isPageDown: !0
},
selectall: {
title: "Select All",
defaultKey: {
win: "Ctrl-A",
mac: "Command-A"
},
exec: function(n) {
n.selectAll();
},
readOnly: !0
},
removeline: {
title: "Remove Line",
defaultKey: {
win: "Ctrl-D",
mac: "Command-D"
},
exec: function(n) {
n.removeLines();
},
multiSelectAction: "forEachLine"
},
duplicateSelection: {
title: "Duplicate Selection",
defaultKey: {
win: "Ctrl-Shift-D",
mac: "Command-Shift-D"
},
exec: function(n) {
n.duplicateSelection();
},
multiSelectAction: "forEach"
},
sortlines: {
title: "Sort Lines",
defaultKey: {
win: "Ctrl-Alt-S",
mac: "Command-Alt-S"
},
exec: function(n) {
n.sortLines();
},
multiSelectAction: "forEachLine"
},
modifyNumberUp: {
title: "Number Up",
defaultKey: {
win: "Ctrl-Shift-Up",
mac: "Alt-Shift-Up"
},
exec: function(n) {
n.modifyNumber(1);
},
multiSelectAction: "forEach"
},
modifyNumberDown: {
title: "Number Down",
defaultKey: {
win: "Ctrl-Shift-Down",
mac: "Alt-Shift-Down"
},
exec: function(n) {
n.modifyNumber(-1);
},
multiSelectAction: "forEach"
},
find: {
title: "Find",
defaultKey: {
win: "Ctrl-F",
mac: "Command-F"
},
exec: function(n) {
var e = require("ace/config");
e.loadModule("ace/ext/searchbox", function(e) {
e.Search(n);
});
},
readOnly: !0
},
replace: {
title: "Replace",
defaultKey: {
win: "Ctrl-Shift-F",
mac: "Command-Option-F"
},
exec: function(n) {
var e = require("ace/config");
e.loadModule("ace/ext/searchbox", function(e) {
e.Search(n, !0);
});
},
readOnly: !0
},
findnext: {
title: "Find Next",
defaultKey: {
win: "Ctrl-P",
mac: "Command-P"
},
exec: function(n) {
n.findNext();
},
readOnly: !0
},
findprevious: {
title: "Find Previous",
defaultKey: {
win: "Ctrl-Shift-P",
mac: "Command-Shift-P"
},
exec: function(n) {
n.findPrevious();
},
readOnly: !0
},
togglerecording: {
title: "Toggle Recording",
defaultKey: {
win: "Ctrl-Alt-E",
mac: "Command-Option-E"
},
exec: function(n) {
n.commands.toggleRecording(n);
},
readOnly: !0
},
replaymacro: {
title: "Replay Macro",
defaultKey: {
win: "Ctrl-Shift-E",
mac: "Command-Shift-E"
},
exec: function(n) {
n.commands.replay(n);
},
readOnly: !0
}
};
return n.each(o, function(n, e) {
n.name = e, n.bindKey = t.shortcuts[e] || n.defaultKey;
}), r.configureAce = function(e) {
n.each(o, function(t) {
t.exec && e.commands.addCommand(n.pick(t, "name", "bindKey", "exec", "readOnly", "multiSelectAction"));
});
}, r.addSettingEntries = function() {
var e = n.reduce(o, function(e, t) {
return e + n.template(a, {
shortcut: t
});
}, ""), t = document.querySelector("#tabpane-settings-shortcuts .form-horizontal");
t && (t.innerHTML = e);
}, r.loadSettings = function() {
n.each(o, function(n) {
i.setInputValue("#input-settings-shortcut-" + n.name, n.bindKey.win), i.setInputValue("#input-settings-shortcut-" + n.name + "-mac", n.bindKey.mac);
});
}, r;
}), define("text!html/bodyIndex.html", [], function() {
return '<div class="navbar navbar-default ui-layout-north">\n <div class="navbar-inner">\n <div class="nav left-space"></div>\n <div class="nav right-space pull-right"></div>\n <ul class="nav">\n <li class="wmd-button-group1 btn-group"></li>\n </ul>\n <ul class="nav">\n <li class="wmd-button-group2 btn-group"></li>\n </ul>\n <ul class="nav">\n <li class="wmd-button-group3 btn-group"></li>\n </ul>\n <ul class="nav">\n <li class="wmd-button-group4 btn-group"></li>\n </ul>\n <ul class="nav pull-right">\n <li class="btn-group"><button\n class="btn btn-success action-create-file" title="New document">\n <i class="icon-file"></i>\n </button>\n <button class="btn btn-success" title="Delete current document"\n data-toggle="modal" data-target=".modal-remove-file-confirm">\n <i class="icon-trash"></i>\n </button></li>\n </ul>\n <ul class="nav pull-right">\n <li id="extension-buttons"></li>\n </ul>\n <ul class="nav pull-right">\n <li><a class="btn btn-success file-title-navbar" href="#"\n title="Rename current document"> </a></li>\n <li><input type="text"\n class="col-lg-4 form-control hide input-file-title"\n placeholder="Document title" /></li>\n </ul>\n <ul class="nav pull-right">\n <li><i class="working-indicator icon-none"></i></li>\n </ul>\n </div>\n</div>\n<div id="wmd-input" class="ui-layout-center"></div>\n<div class="ui-layout-east preview-container"></div>\n<div class="ui-layout-south preview-container"></div>\n<div id="wmd-button-bar" class="hide"></div>\n\n<div class="menu-panel collapse width">\n <button class="btn btn-success collapse-button" data-toggle="collapse"\n data-target=".menu-panel" title="Menu">\n <i class="icon-left-open"></i> <img\n data-stackedit-src="stackedit-64.png" width="32" height="32" />\n </button>\n <div class="panel-content">\n <div class="list-group">\n <a href="viewer.html" title="StackEdit Viewer"\n class="list-group-item"><i class="icon-resize-full"></i>\n StackEdit Viewer</a> <a href="#" data-toggle="collapse"\n data-target=".collapse-open-from" class="list-group-item"><i\n class="icon-hdd"></i> Open from...</a>\n <div class="sub-menu collapse collapse-open-from clearfix">\n <ul class="nav">\n <li><a data-toggle="modal" data-target=".modal-import-url"\n class="action-reset-input" href="#">Open from URL</a></li>\n <li><a data-toggle="modal"\n data-target=".modal-import-harddrive-markdown"\n class="action-reset-input" href="#">Import from hard drive</a></li>\n <li><a data-toggle="modal"\n data-target=".modal-import-harddrive-html"\n class="action-reset-input" href="#">Convert HTML to Markdown</a></li>\n </ul>\n </div>\n\n <a href="#" data-toggle="collapse" data-target=".collapse-save-as"\n class="list-group-item"><i class="icon-hdd"></i> Save as...</a>\n <div class="sub-menu collapse collapse-save-as clearfix">\n <ul class="nav">\n <li><a class="action-download-md" href="#">Save as\n Markdown</a></li>\n <li><a class="action-download-html" href="#">Save as HTML</a></li>\n <li><a class="action-download-template" href="#">Save\n using template</a></li>\n <li><a class="action-download-pdf" href="#">Save as PDF</a></li>\n </ul>\n </div>\n </div>\n <div class=dropdown-header>SYNCHRONIZE</div>\n <div class="list-group">\n <a href="#" data-toggle="collapse"\n data-target=".collapse-sync-gdrive" class="list-group-item"><i\n class="icon-provider-gdrive"></i> Google Drive</a>\n <div class="sub-menu collapse collapse-sync-gdrive clearfix">\n <ul class="nav">\n <li><a href="#" class="action-sync-import-gdrive"\n data-toggle="collapse" data-target=".menu-panel">Import from\n Google Drive</a></li>\n <li><a href="#" class="action-sync-export-dialog-gdrive">Export\n to Google Drive</a></li>\n </ul>\n </div>\n <a href="#" data-toggle="collapse"\n data-target=".collapse-sync-dropbox" class="list-group-item"><i\n class="icon-provider-dropbox"></i> Dropbox</a>\n <div class="sub-menu collapse collapse-sync-dropbox clearfix">\n <ul class="nav">\n <li><a class="action-sync-import-dropbox" href="#"\n data-toggle="collapse" data-target=".menu-panel">Import from\n Dropbox</a></li>\n <li><a href="#" class="action-sync-export-dialog-dropbox">Export\n to Dropbox</a></li>\n </ul>\n </div>\n <a href="#" data-toggle="modal" data-target=".modal-manage-sync"\n class="action-reset-input list-group-item"><i\n class="icon-refresh"></i> Manage synchronization</a>\n </div>\n <div class=dropdown-header>PUBLISH</div>\n <div class="list-group">\n <a href="#" data-toggle="collapse" data-target=".collapse-publish-on"\n class="list-group-item"><i class="icon-share"></i> Publish on...</a>\n <div class="sub-menu collapse collapse-publish-on clearfix">\n <ul class="nav">\n </ul>\n </div>\n <a href="#" data-toggle="modal" data-target=".modal-manage-publish"\n class="action-reset-input list-group-item"><i class="icon-share"></i>\n Manage publication</a>\n </div>\n <ul class="nav">\n <li><a href="#" data-toggle="modal"\n data-target=".modal-settings" class="action-load-settings"><i\n class="icon-cog"></i> Settings</a></li>\n <li><a href="#" data-toggle="modal" data-target=".modal-about"><i\n class="icon-help-circled"></i> About</a></li>\n </ul>\n\n </div>\n</div>\n\n\n<div class="document-panel collapse width">\n <button class="btn btn-success collapse-button" data-toggle="collapse"\n data-target=".document-panel" title="Select document">\n <i class="icon-folder-open"></i> <i class="icon-right-open"></i>\n </button>\n <div class="search-bar clearfix">\n <div class="input-group">\n <span class="input-group-addon"><i class="icon-search"></i></span><input\n type="text" class="form-control"></input>\n <button type="button" class="close" title="clear">&times;</button>\n <div class="input-group-btn">\n <a data-toggle="modal" data-target=".modal-document-manager"\n class="btn btn-link" title="Manage documents"><i\n class="icon-layers"></i></a>\n </div>\n </div>\n </div>\n <div class="panel-content">\n <div class="list-group document-list"></div>\n <div class="list-group document-list-filtered hide"></div>\n </div>\n</div>\n\n\n<div class="modal modal-document-manager">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Manage documents</h3>\n </div>\n <div class="modal-body">\n <div></div>\n <ul class="nav nav-pills document-list">\n <li class="pull-right dropdown"><a href="#"\n data-toggle="dropdown"><i class="icon-check"></i> Selection <b\n class="caret"></b></a>\n <ul class="dropdown-menu">\n <li><a href="#" class="action-select-all"><i\n class="icon-check"></i> Select all</a></li>\n <li><a href="#" class="action-unselect-all"><i\n class="icon-check-empty"></i> Unselect all</a></li>\n <li class="divider"></li>\n <li><a href="#" class="action-move-items"><i\n class="icon-forward"></i> Move to folder</a></li>\n <li><a href="#" class="action-delete-items"><i\n class="icon-trash"></i> Delete</a></li>\n </ul></li>\n <li class="pull-right"><a href="#"\n class="action-create-folder"> <i class="icon-folder"></i>\n Create folder\n </a></li>\n <li class="disabled"><a><i class="icon-file"></i> <span\n class="document-count"></span></a></li>\n <li class="disabled"><a><i class="icon-folder"></i> <span\n class="folder-count"></span></a></li>\n </ul>\n <div class="list-group document-list"></div>\n <p class="confirm-delete hide">The following documents will be\n deleted locally:</p>\n <p class="choose-folder hide">Please choose a destination\n folder:</p>\n <div class="list-group selected-document-list hide"></div>\n <div class="list-group select-folder-list hide"></div>\n </div>\n <div class="modal-footer">\n <a href="#"\n class="btn btn-default confirm-delete choose-folder action-cancel hide">Cancel</a>\n <a href="#"\n class="btn btn-primary confirm-delete action-delete-items-confirm hide">OK</a>\n <a href="#" class="btn btn-primary document-list"\n data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-insert-link">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Hyperlink</h3>\n </div>\n <div class="modal-body">\n <p>Please provide the link URL and an optional title:</p>\n <div class="input-group">\n <span class="input-group-addon"><i class="icon-globe"></i></span><input\n id="input-insert-link" type="text" class="col-lg-5 form-control"\n placeholder=\'http://example.com/ "optional title"\'></input>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-insert-link"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-insert-image">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Image</h3>\n </div>\n <div class="modal-body">\n <p>Please provide the image URL and an optional title:</p>\n <div class="input-group">\n <span class="input-group-addon"><i class="icon-picture"></i></span><input\n id="input-insert-image" type="text" class="col-lg-5 form-control"\n placeholder=\'http://example.com/image.jpg "optional title"\'></input>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default action-import-image-gplus"\n data-dismiss="modal"><i class="icon-provider-gplus"></i> Import\n from Google+</a> <a href="#" class="btn btn-default"\n data-dismiss="modal">Cancel</a> <a href="#"\n class="btn btn-primary action-insert-image" data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-import-image">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Google+ image import</h3>\n </div>\n <div class="modal-body">\n <div class="form-horizontal">\n <div class="form-group">\n <div class="col-lg-7">\n <img>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-import-image-title">Title (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-import-image-title"\n placeholder="Image title" class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-import-image-size">Size limit (optional)</label>\n <div class="col-lg-7 form-inline">\n <input type="text" id="input-import-image-size" placeholder="123"\n class="col-lg-3 form-control"> px\n </div>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-import-image"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-remove-file-confirm">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Delete</h3>\n </div>\n <div class="modal-body">\n <p>\n Are you sure you want to delete "<span class="file-title"></span>"?\n </p>\n <blockquote>\n <b>NOTE:</b> This will not delete the file on synchronized\n locations.\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-remove-file"\n data-dismiss="modal">Delete</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-import-url">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Open from URL</h3>\n </div>\n <div class="modal-body">\n <p>Please provide a link to a Markdown document.</p>\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-3 control-label" for="input-import-url">URL</label>\n <div class="col-lg-8">\n <input type="text" id="input-import-url"\n placeholder="http://www.abc.com/xyz.md" class="form-control">\n </div>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" data-dismiss="modal"\n class="btn btn-primary action-import-url">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-import-harddrive-markdown">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Import from hard drive</h3>\n </div>\n <div class="modal-body">\n <p>Please select your Markdown files here:</p>\n <p>\n <input type="file" id="input-file-import-harddrive-markdown"\n multiple class="form-control" />\n </p>\n <p>Or drag and drop your Markdown files here:</p>\n <p id="dropzone-import-harddrive-markdown" class="drop-zone">Drop\n files here</p>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-import-harddrive-html">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Convert HTML to Markdown</h3>\n </div>\n <div class="modal-body">\n <p>Please select your HTML files here:</p>\n <p>\n <input type="file" id="input-file-import-harddrive-html" multiple\n class="form-control" />\n </p>\n <p>Or drag and drop your HTML files here:</p>\n <p id="dropzone-import-harddrive-html" class="drop-zone">Drop\n files here</p>\n <p>Or insert your HTML code here:</p>\n <textarea id="input-convert-html" class="form-control"></textarea>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Close</a> <a\n href="#" class="btn btn-primary action-convert-html"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-upload-gdrive">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Export to Google Drive</h3>\n </div>\n <div class="modal-body">\n <p>\n This will save "<span class="file-title"></span>" to your <i\n class="icon-provider-gdrive"></i>\n <code>Google Drive</code>\n account and keep it synchronized.\n </p>\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-3 control-label"\n for="input-sync-export-gdrive-parentid">Folder ID\n (optional)</label>\n <div class="col-lg-8">\n <div class="input-group">\n <input type="text" id="input-sync-export-gdrive-parentid"\n placeholder="FolderID" class="form-control">\n <div class="input-group-btn">\n <a class="btn btn-link export-gdrive-choose-folder"\n title="Choose folder" data-dismiss="modal"><i\n class="icon-folder-open"></i></a>\n </div>\n </div>\n <span class="help-block"> If no folder ID is supplied, the\n file will be created in your root folder. </span>\n </div>\n </div>\n <div class="form-group">\n <div class="col-lg-3 control-label"></div>\n <div class="col-lg-8">\n <label> <input id="input-sync-export-gdrive-realtime"\n type="checkbox"> Create a real time collaborative\n document\n </label>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-3 control-label"\n for="input-sync-export-gdrive-fileid">Existing file ID\n (optional)</label>\n <div class="col-lg-8">\n <input type="text" id="input-sync-export-gdrive-fileid"\n placeholder="FileID" class="form-control"> <span\n class="help-block"> This will overwrite the existing file\n on the server. </span>\n </div>\n </div>\n </div>\n <blockquote>\n <b>NOTE:</b>\n <ul>\n <li>You can move or rename the file afterwards within Google\n Drive.</li>\n <li>Real time collaborative documents can\'t be open outside\n StackEdit.</li>\n <li>Real time collaborative documents can\'t have multiple\n synchronized locations.</li>\n </ul>\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" data-dismiss="modal"\n class="btn btn-primary action-sync-export-gdrive">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-upload-dropbox">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Export to Dropbox</h3>\n </div>\n <div class="modal-body">\n <p>\n This will save "<span class="file-title"></span>" to your <i\n class="icon-provider-dropbox"></i>\n <code>Dropbox</code>\n account and keep it synchronized.\n </p>\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-3 control-label"\n for="input-sync-export-dropbox-path">File path</label>\n <div class="col-lg-8">\n <input type="text" id="input-sync-export-dropbox-path"\n placeholder="/path/to/My Document.md" class="form-control">\n <span class="help-block"> File path is composed of both\n folder and filename. </span>\n </div>\n </div>\n </div>\n <blockquote>\n <b>NOTE:</b>\n <ul>\n <li>Dropbox file path does not depend on document title.</li>\n <li>The title of your document will not be synchronized.</li>\n <li>Destination folder must exist.</li>\n <li>Any existing file at this location will be overwritten.</li>\n </ul>\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" data-dismiss="modal"\n class="btn btn-primary action-sync-export-dropbox">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-manage-sync">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Synchronization</h3>\n </div>\n <div class="modal-body">\n <p class="msg-sync-list hide">\n "<span class="file-title"></span>" is synchronized with the\n following location(s):\n </p>\n <div class="msg-sync-list sync-list hide"></div>\n <blockquote class="msg-sync-list hide">\n <b>NOTE:</b> Removing a synchronized location will not delete any\n file.\n </blockquote>\n <blockquote class="msg-no-sync hide">\n "<span class="file-title"></span>" is not synchronized yet. <br />\n <br /> <b>NOTE:</b> You can add synchronized locations by\n exporting your document using <i class="icon-provider-gdrive"></i>\n <code>Google Drive</code>\n or <i class="icon-provider-dropbox"></i>\n <code>Dropbox</code>\n sub-menu.\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-publish">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">\n Publish on <span class="publish-provider-name"></span>\n </h3>\n </div>\n <div class="modal-body">\n <div class="form-horizontal">\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label" for="input-publish-ssh-host">Host</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-ssh-host"\n placeholder="host.name.or.ip" class="form-control"> <span\n class="help-block"> Host must be accessible publicly,\n unless you are hosting your own <a target="_blank"\n href="https://github.com/benweet/stackedit-ssh-proxy">SSH\n proxy</a>.\n </span>\n </div>\n </div>\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label" for="input-publish-ssh-port">Port\n (optional)</label>\n <div class="col-lg-2">\n <input type="text" id="input-publish-ssh-port" placeholder="22"\n class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label"\n for="input-publish-ssh-username">Username</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-ssh-username"\n placeholder="username" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-ssh">\n <label class="col-lg-4 control-label"\n for="input-publish-ssh-password">Password</label>\n <div class="col-lg-7">\n <input type="password" id="input-publish-ssh-password"\n placeholder="password" class="form-control"> <span\n class="help-block"> Passwords are transmitted in clear,\n unless you are hosting your own <a target="_blank"\n href="https://github.com/benweet/stackedit-ssh-proxy">SSH\n proxy</a>.\n </span>\n </div>\n </div>\n <div class="form-group modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-github-reponame">Repository</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-github-reponame"\n placeholder="repository-name" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-github-username">Username (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-github-username"\n placeholder="username" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-github-branch">Branch</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-github-branch"\n placeholder="branch-name" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-ssh modal-publish-github">\n <label class="col-lg-4 control-label"\n for="input-publish-file-path">File path</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-file-path"\n placeholder="path/to/file.md" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gist">\n <label class="col-lg-4 control-label" for="input-publish-filename">Filename</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-filename"\n placeholder="filename" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gist">\n <label class="col-lg-4 control-label" for="input-publish-gist-id">Existing\n ID (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-gist-id"\n placeholder="GistID" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gist">\n <label class="col-lg-4 control-label"\n for="input-publish-gist-public">Public</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-publish-gist-public"\n checked="checked" />\n </div>\n </div>\n </div>\n <div class="form-group modal-publish-blogger">\n <label class="col-lg-4 control-label"\n for="input-publish-blogger-url">Blog URL</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-blogger-url"\n placeholder="http://exemple.blogger.com/" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-tumblr">\n <label class="col-lg-4 control-label"\n for="input-publish-tumblr-hostname">Blog hostname</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-tumblr-hostname"\n placeholder="exemple.tumblr.com" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-wordpress">\n <label class="col-lg-4 control-label"\n for="input-publish-tumblr-hostname">WordPress site</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-wordpress-site"\n placeholder="exemple.wordpress.com" class="form-control">\n <span class="help-block"> <a target="_blank"\n href="http://jetpack.me/">Jetpack plugin</a> is required for\n self-hosted sites.\n </span>\n </div>\n </div>\n <div\n class="form-group modal-publish-blogger modal-publish-tumblr modal-publish-wordpress">\n <label class="col-lg-4 control-label" for="input-publish-postid">Update\n existing post ID (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-postid" placeholder="PostID"\n class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-dropbox">\n <label class="col-lg-4 control-label"\n for="input-publish-dropbox-path">File path</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-dropbox-path"\n placeholder="/path/to/My Document.html" class="form-control">\n </div>\n </div>\n <div class="form-group modal-publish-gdrive">\n <label class="col-lg-4 control-label"\n for="input-publish-gdrive-fileid">File ID (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-gdrive-fileid"\n placeholder="FileID" class="form-control"> <span\n class="help-block">If no file ID is supplied, a new file\n will be created in your Google Drive root folder. You can move\n the file afterwards within Google Drive.</span>\n </div>\n </div>\n <div class="form-group modal-publish-gdrive">\n <label class="col-lg-4 control-label"\n for="input-publish-gdrive-filename">Force filename\n (optional)</label>\n <div class="col-lg-7">\n <input type="text" id="input-publish-gdrive-filename"\n placeholder="Filename" class="form-control"> <span\n class="help-block">If no file name is supplied, the\n document title will be used.</span>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-4 control-label">Format</label>\n <div class="col-lg-7">\n <div class="radio">\n <label> <input type="radio" name="radio-publish-format"\n value="markdown"> Markdown\n </label>\n </div>\n <div class="radio">\n <label> <input type="radio" name="radio-publish-format"\n value="html"> HTML\n </label>\n </div>\n <div class="radio">\n <label> <input type="radio" name="radio-publish-format"\n value="template"> Template\n </label>\n </div>\n </div>\n </div>\n <div class="collapse publish-custom-template-collapse">\n <div class="form-group">\n <div class="col-lg-4"></div>\n <div class="col-lg-7">\n <div class="checkbox">\n <label> <input type="checkbox"\n id="checkbox-publish-custom-template"> Custom template\n </label> <a href="#" class="tooltip-template">(?)</a>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-lg-4"></div>\n <div class="col-lg-7">\n <textarea class="form-control"\n id="textarea-publish-custom-template"></textarea>\n </div>\n </div>\n </div>\n </div>\n <blockquote class="front-matter-info modal-publish-blogger modal-publish-tumblr modal-publish-wordpress">\n <p><b>NOTE:</b> You can use a\n <a href="http://jekyllrb.com/docs/frontmatter/"\n target="_blank">YAML front matter</a> to specify the title and the tags/labels of your publication.</p>\n <p><b>Interpreted variables:</b> <i>title, categories/tags</i></p>\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" data-dismiss="modal"\n class="btn btn-primary action-process-publish">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-manage-publish">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Publication</h3>\n </div>\n <div class="modal-body">\n <p class="msg-publish-list hide">\n "<span class="file-title"></span>" is published on the following\n location(s):\n </p>\n <div class="msg-publish-list publish-list hide"></div>\n <blockquote>\n <div class="msg-no-publish hide">\n "<span class="file-title"></span>" is not published yet. <br /> <br />\n </div>\n <b>NOTE:</b> You can add publications using "Publish on" sub-menu.\n </blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-settings">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal"\n aria-hidden="true">&times;</button>\n <h3 class="modal-title">Settings</h3>\n <ul class="nav nav-tabs">\n <li class="active"><a class="action-load-settings"\n href="#tabpane-settings-editor" data-toggle="tab">Editor</a></li>\n <li><a class="action-load-settings"\n href="#tabpane-settings-services" data-toggle="tab">Services</a></li>\n <li><a class="action-load-settings"\n href="#tabpane-settings-extensions" data-toggle="tab">Extensions</a></li>\n <li><a class="action-load-settings"\n href="#tabpane-settings-shortcuts" data-toggle="tab">Shortcuts</a></li>\n <li><a class="action-load-settings"\n href="#tabpane-settings-utils" data-toggle="tab">Utils</a></li>\n </ul>\n </div>\n <div class="modal-body">\n\n <div class="tab-content clearfix">\n <div class="tab-pane active" id="tabpane-settings-editor">\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label">Layout orientation</label>\n <div class="col-lg-7">\n <div class="radio">\n <label> <input type="radio"\n name="radio-layout-orientation" value="horizontal">\n Horizontal\n </label>\n </div>\n <div class="radio">\n <label> <input type="radio"\n name="radio-layout-orientation" value="vertical">\n Vertical\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label" for="input-settings-theme">Theme</label>\n <div class="col-lg-7">\n <select id="input-settings-theme" class="form-control">\n </select> <span class="help-block"><a target="_blank"\n href="https://github.com/benweet/stackedit/blob/master/doc/theming.md#stackedit-theming-guide">Create\n your own theme...</a></span>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-lazy-rendering">Lazy rendering <a\n href="#" class="tooltip-lazy-rendering">(?)</a>\n </label>\n <div class="col-lg-7">\n <div class="checkbox">\n <input type="checkbox" id="input-settings-lazy-rendering" />\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-editor-font-family">Editor font</label>\n <div class="col-lg-8 form-inline">\n <input type="text" id="input-settings-editor-font-family"\n class="form-control col-lg-7"> <input type="text"\n id="input-settings-editor-font-size"\n class="form-control col-lg-2"> px <span\n class="help-block"> Only monospaced fonts are\n supported.</span>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-max-width">Max width</label>\n <div class="col-lg-8 form-inline">\n <input type="text" id="input-settings-max-width"\n class="form-control col-lg-3"> px\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="textarea-settings-default-content">Default content\n <a href="#" class="tooltip-default-content">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-settings-default-content"\n class="form-control"></textarea>\n </div>\n </div>\n </div>\n </div>\n <div class="tab-pane" id="tabpane-settings-services">\n <div class="form-horizontal">\n <div class="form-group">\n <label class="col-lg-4 control-label">Permission</label>\n <div class="col-lg-7">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="input-settings-gdrive-full-access" />\n Allow StackEdit to open any document in Google Drive\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="textarea-settings-publish-template">Default\n template <a href="#" class="tooltip-template">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-settings-publish-template"\n class="form-control"></textarea>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="textarea-settings-publish-pdf-template">PDF\n template <a href="#" class="tooltip-template">(?)</a>\n </label>\n <div class="col-lg-7">\n <textarea id="textarea-settings-publish-pdf-template"\n class="form-control"></textarea>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-publish-commit-msg">GitHub commit message</label>\n <div class="col-lg-7">\n <input type="text" id="input-settings-publish-commit-msg"\n class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-4 control-label"\n for="input-settings-ssh-proxy">SSH proxy</label>\n <div class="col-lg-7">\n <input type="text" id="input-settings-ssh-proxy"\n class="form-control">\n </div>\n </div>\n </div>\n </div>\n <div class="tab-pane" id="tabpane-settings-extensions">\n <div class="panel-group accordion-extensions"></div>\n <span class="help-block pull-right"><a target="_blank"\n href="https://github.com/benweet/stackedit/blob/master/doc/developer-guide.md#architecture">Create\n your own extension...</a></span>\n </div>\n <div class="tab-pane" id="tabpane-settings-shortcuts">\n <div class="form-horizontal">\n </div>\n </div>\n <div class="tab-pane" id="tabpane-settings-utils">\n <div class="tab-pane-button-container">\n <a href="#"\n class="btn btn-block btn-primary action-import-settings"><i\n class="icon-wrench icon-white"></i> Import settings</a> <a href="#"\n class="btn btn-block btn-primary action-export-settings"\n data-dismiss="modal"><i class="icon-wrench icon-white"></i>\n Export settings</a> <a href="#"\n class="btn btn-block btn-primary action-default-settings"\n data-dismiss="modal"><i class="icon-wrench icon-white"></i>\n Load default settings</a> <input type="file"\n id="input-file-import-settings" class="hide">\n </div>\n <div class="tab-pane-button-container">\n <a href="#" class="btn btn-block btn-primary action-welcome-file"\n data-dismiss="modal"><i class="icon-help-circled icon-white"></i>\n Welcome document</a> <a href="#"\n class="btn btn-block btn-primary action-welcome-tour"\n data-dismiss="modal" data-dismiss="modal"><i\n class="icon-help-circled icon-white"></i> Welcome tour</a>\n </div>\n <div class="tab-pane-button-container">\n <a href="#" class="btn btn-block btn-primary"\n data-dismiss="modal" data-toggle="modal"\n data-target=".modal-app-reset"><i\n class="icon-fire icon-white"></i> Reset application</a>\n </div>\n </div>\n </div>\n\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-apply-settings"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-non-unique">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <h3 class="modal-title">Ooops...</h3>\n </div>\n <div class="modal-body">\n <p>StackEdit has stopped because another instance was running in\n the same browser.</p>\n <blockquote>If you want to reopen StackEdit, click on\n "Reload".</blockquote>\n </div>\n <div class="modal-footer">\n <a href="javascript:window.location.reload();"\n class="btn btn-primary">Reload</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-oauth-redirect">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <h3 class="modal-title">Authorization</h3>\n </div>\n <div class="modal-body">\n <blockquote><b>NOTE:</b> You are being redirected to <span class="oauth-redirect-provider"></span> authorization page.</blockquote>\n </div>\n <div class="modal-footer">\n <a class="btn btn-primary action-oauth-redirect" data-dismiss="modal">Continue</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="modal modal-app-reset">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <h3 class="modal-title">Reset application</h3>\n </div>\n <div class="modal-body">\n <p>This will delete all your local documents.</p>\n <blockquote>Are you sure?</blockquote>\n </div>\n <div class="modal-footer">\n <a href="#" class="btn btn-default" data-dismiss="modal">Cancel</a>\n <a href="#" class="btn btn-primary action-app-reset"\n data-dismiss="modal">OK</a>\n </div>\n </div>\n </div>\n</div>\n\n\n<div class="lock-ui hide"></div>\n<div id="dropboxjs" data-app-key="x0k2l8puemfvg0o"></div>';
}), define("text!html/bodyViewer.html", [], function() {
return '\n<div class="navbar navbar-default ui-layout-north">\n <div class="navbar-inner">\n <div class="nav right-space pull-right"></div>\n\n <ul class="nav pull-right">\n <li class="btn-group">\n <button class="btn btn-success action-edit-document hide"\n title="Edit this document">\n <i class="icon-pencil"></i>\n </button>\n </li>\n <li class="btn-group">\n <button class="btn btn-success dropdown-toggle"\n data-toggle="dropdown" title="Save this document">\n <i class="icon-download"></i>\n </button>\n <ul class="dropdown-menu">\n <li><a class="action-download-md" href="#">Save as\n Markdown</a></li>\n <li><a class="action-download-html" href="#">Save as HTML</a></li>\n <li><a class="action-download-template" href="#">Save\n using template</a></li>\n <li><a class="action-download-pdf" href="#">Save as PDF</a></li>\n </ul>\n </li>\n </ul>\n <ul class="nav pull-right">\n <li><span class="file-title-navbar"></span></li>\n </ul>\n <ul class="nav pull-right">\n <li><i class="working-indicator icon-none"></i></li>\n </ul>\n\n </div>\n</div>\n<div id="wmd-button-bar" class="hide"></div>\n<div id="wmd-input" class="hide"></div>\n<div class="ui-layout-center preview-container"></div>\n\n<div class="menu-panel collapse width">\n <button class="btn btn-success collapse-button action-open-stackedit"\n title="Open StackEdit">\n <i class="icon-left-dir"></i> <img\n data-stackedit-src="stackedit-64.png" width="32" height="32" />\n </button>\n</div>\n\n<div class="document-panel collapse width">\n <button class="btn btn-success collapse-button" data-toggle="collapse"\n data-target=".document-panel" title="Select document">\n <i class="icon-folder-open"></i> <i class="icon-right-open"></i>\n </button>\n <div class="search-bar clearfix">\n <div class="input-group">\n <span class="input-group-addon"><i class="icon-search"></i></span><input\n type="text" class="form-control"></input>\n <button type="button" class="close" title="clear">&times;</button>\n <div class="input-group-btn">\n <a data-toggle="modal" data-target=".modal-document-manager"\n class="btn btn-link" title="Manage documents"><i\n class="icon-layers"></i></a>\n </div>\n </div>\n </div>\n <div class="panel-content">\n <div class="list-group document-list"></div>\n <div class="list-group document-list-filtered hide"></div>\n </div>\n</div>\n\n<div class="modal modal-non-unique">\n <div class="modal-dialog">\n <div class="modal-content">\n\n <div class="modal-header">\n <h3 class="modal-title">Ooops...</h3>\n </div>\n <div class="modal-body">\n <p>StackEdit has stopped because another instance was running in\n the same browser.</p>\n <blockquote>If you want to reopen StackEdit, click on\n "Reload".</blockquote>\n </div>\n <div class="modal-footer">\n <a href="javascript:window.location.reload();"\n class="btn btn-primary">Reload</a>\n </div>\n </div>\n </div>\n</div>\n';
}), define("text!html/settingsTemplateTooltip.html", [], function() {
return 'Available variables:\n<br>\n<ul>\n <li>\n <b>documentTitle</b>: document title</li>\n <li>\n <b>documentMarkdown</b>: document in Markdown format</li>\n <li>\n <b>documentHTML</b>: document in HTML format</li>\n <li>\n <b>frontMatter</b>: YAML front matter object (undefined if not present)</li>\n <li>\n <b>publishAttributes</b>: attributes of the publish location (undefined if\n not publishing)</li>\n</ul>\n<b>Examples:</b>\n<br />&lt;title&gt;&lt;%= documentTitle %&gt;&lt;&#x2F;title&gt;\n<br />&lt;div&gt;&lt;%- documentHTML %&gt;&lt;&#x2F;div&gt;\n<br />&lt;%\n<br />if(publishAttributes.provider.providerId == &quot;github&quot;) print(documentMarkdown);\n<br\n/>%&gt;\n<br />\n<br />\n<a target="_blank" href="http://underscorejs.org/#template">More\n info</a>\n<br />\n<br />\n<b class="text-danger">\n <i class="icon-attention"></i>Careful! Template is subject to malicious code. Don\'t copy/paste untrusted\n content.</b>';
}), define("text!html/settingsUserCustomExtensionTooltip.html", [], function() {
return 'Extension variable name:\n<b>userCustom</b>\n<br>\n<br>\n<b>Example:</b>\n<br />\nuserCustom.onPreviewFinished = function() {\n<br />\n&nbsp;&nbsp;eventMgr.onMessage(&quot;Finished!&quot;);\n<br />\n};\n<br />\n<br />\n<a target="_blank"\n href="https://github.com/benweet/stackedit/blob/master/doc/developer-guide.md#architecture">More\n info</a>\n<br />\n<br />\n<b class="text-danger"><i class="icon-attention"></i> Careful! This is subject to malicious code. Don\'t copy/paste untrusted content.</b>';
}), function(n, e) {
function t(e, t) {
var a, r, o, s = e.nodeName.toLowerCase();
return "area" === s ? (a = e.parentNode, r = a.name, e.href && r && "map" === a.nodeName.toLowerCase() ? (o = n("img[usemap=#" + r + "]")[0],
!!o && i(o)) : !1) : (/input|select|textarea|button|object/.test(s) ? !e.disabled : "a" === s ? e.href || t : t) && i(e);
}
function i(e) {
return n.expr.filters.visible(e) && !n(e).parents().addBack().filter(function() {
return "hidden" === n.css(this, "visibility");
}).length;
}
var a = 0, r = /^ui-id-\d+$/;
n.ui = n.ui || {}, n.extend(n.ui, {
version: "1.10.3",
keyCode: {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
}), n.fn.extend({
focus: function(e) {
return function(t, i) {
return "number" == typeof t ? this.each(function() {
var e = this;
setTimeout(function() {
n(e).focus(), i && i.call(e);
}, t);
}) : e.apply(this, arguments);
};
}(n.fn.focus),
scrollParent: function() {
var e;
return e = n.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() {
return /(relative|absolute|fixed)/.test(n.css(this, "position")) && /(auto|scroll)/.test(n.css(this, "overflow") + n.css(this, "overflow-y") + n.css(this, "overflow-x"));
}).eq(0) : this.parents().filter(function() {
return /(auto|scroll)/.test(n.css(this, "overflow") + n.css(this, "overflow-y") + n.css(this, "overflow-x"));
}).eq(0), /fixed/.test(this.css("position")) || !e.length ? n(document) : e;
},
zIndex: function(t) {
if (t !== e) return this.css("zIndex", t);
if (this.length) for (var i, a, r = n(this[0]); r.length && r[0] !== document; ) {
if (i = r.css("position"), ("absolute" === i || "relative" === i || "fixed" === i) && (a = parseInt(r.css("zIndex"), 10),
!isNaN(a) && 0 !== a)) return a;
r = r.parent();
}
return 0;
},
uniqueId: function() {
return this.each(function() {
this.id || (this.id = "ui-id-" + ++a);
});
},
removeUniqueId: function() {
return this.each(function() {
r.test(this.id) && n(this).removeAttr("id");
});
}
}), n.extend(n.expr[":"], {
data: n.expr.createPseudo ? n.expr.createPseudo(function(e) {
return function(t) {
return !!n.data(t, e);
};
}) : function(e, t, i) {
return !!n.data(e, i[3]);
},
focusable: function(e) {
return t(e, !isNaN(n.attr(e, "tabindex")));
},
tabbable: function(e) {
var i = n.attr(e, "tabindex"), a = isNaN(i);
return (a || i >= 0) && t(e, !a);
}
}), n("<a>").outerWidth(1).jquery || n.each([ "Width", "Height" ], function(t, i) {
function a(e, t, i, a) {
return n.each(r, function() {
t -= parseFloat(n.css(e, "padding" + this)) || 0, i && (t -= parseFloat(n.css(e, "border" + this + "Width")) || 0),
a && (t -= parseFloat(n.css(e, "margin" + this)) || 0);
}), t;
}
var r = "Width" === i ? [ "Left", "Right" ] : [ "Top", "Bottom" ], o = i.toLowerCase(), s = {
innerWidth: n.fn.innerWidth,
innerHeight: n.fn.innerHeight,
outerWidth: n.fn.outerWidth,
outerHeight: n.fn.outerHeight
};
n.fn["inner" + i] = function(t) {
return t === e ? s["inner" + i].call(this) : this.each(function() {
n(this).css(o, a(this, t) + "px");
});
}, n.fn["outer" + i] = function(e, t) {
return "number" != typeof e ? s["outer" + i].call(this, e) : this.each(function() {
n(this).css(o, a(this, e, !0, t) + "px");
});
};
}), n.fn.addBack || (n.fn.addBack = function(n) {
return this.add(null == n ? this.prevObject : this.prevObject.filter(n));
}), n("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (n.fn.removeData = function(e) {
return function(t) {
return arguments.length ? e.call(this, n.camelCase(t)) : e.call(this);
};
}(n.fn.removeData)), n.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),
n.support.selectstart = "onselectstart" in document.createElement("div"), n.fn.extend({
disableSelection: function() {
return this.bind((n.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(n) {
n.preventDefault();
});
},
enableSelection: function() {
return this.unbind(".ui-disableSelection");
}
}), n.extend(n.ui, {
plugin: {
add: function(e, t, i) {
var a, r = n.ui[e].prototype;
for (a in i) r.plugins[a] = r.plugins[a] || [], r.plugins[a].push([ t, i[a] ]);
},
call: function(n, e, t) {
var i, a = n.plugins[e];
if (a && n.element[0].parentNode && 11 !== n.element[0].parentNode.nodeType) for (i = 0; i < a.length; i++) n.options[a[i][0]] && a[i][1].apply(n.element, t);
}
},
hasScroll: function(e, t) {
if ("hidden" === n(e).css("overflow")) return !1;
var i = t && "left" === t ? "scrollLeft" : "scrollTop", a = !1;
return e[i] > 0 ? !0 : (e[i] = 1, a = e[i] > 0, e[i] = 0, a);
}
});
}(jQuery), define("jquery-ui-core", function() {}), function(n, e) {
var t = 0, i = Array.prototype.slice, a = n.cleanData;
n.cleanData = function(e) {
for (var t, i = 0; null != (t = e[i]); i++) try {
n(t).triggerHandler("remove");
} catch (r) {}
a(e);
}, n.widget = function(e, t, i) {
var a, r, o, s, l = {}, c = e.split(".")[0];
e = e.split(".")[1], a = c + "-" + e, i || (i = t, t = n.Widget), n.expr[":"][a.toLowerCase()] = function(e) {
return !!n.data(e, a);
}, n[c] = n[c] || {}, r = n[c][e], o = n[c][e] = function(n, e) {
return this._createWidget ? (arguments.length && this._createWidget(n, e), void 0) : new o(n, e);
}, n.extend(o, r, {
version: i.version,
_proto: n.extend({}, i),
_childConstructors: []
}), s = new t(), s.options = n.widget.extend({}, s.options), n.each(i, function(e, i) {
return n.isFunction(i) ? (l[e] = function() {
var n = function() {
return t.prototype[e].apply(this, arguments);
}, a = function(n) {
return t.prototype[e].apply(this, n);
};
return function() {
var e, t = this._super, r = this._superApply;
return this._super = n, this._superApply = a, e = i.apply(this, arguments), this._super = t,
this._superApply = r, e;
};
}(), void 0) : (l[e] = i, void 0);
}), o.prototype = n.widget.extend(s, {
widgetEventPrefix: r ? s.widgetEventPrefix : e
}, l, {
constructor: o,
namespace: c,
widgetName: e,
widgetFullName: a
}), r ? (n.each(r._childConstructors, function(e, t) {
var i = t.prototype;
n.widget(i.namespace + "." + i.widgetName, o, t._proto);
}), delete r._childConstructors) : t._childConstructors.push(o), n.widget.bridge(e, o);
}, n.widget.extend = function(t) {
for (var a, r, o = i.call(arguments, 1), s = 0, l = o.length; l > s; s++) for (a in o[s]) r = o[s][a],
o[s].hasOwnProperty(a) && r !== e && (t[a] = n.isPlainObject(r) ? n.isPlainObject(t[a]) ? n.widget.extend({}, t[a], r) : n.widget.extend({}, r) : r);
return t;
}, n.widget.bridge = function(t, a) {
var r = a.prototype.widgetFullName || t;
n.fn[t] = function(o) {
var s = "string" == typeof o, l = i.call(arguments, 1), c = this;
return o = !s && l.length ? n.widget.extend.apply(null, [ o ].concat(l)) : o, s ? this.each(function() {
var i, a = n.data(this, r);
return a ? n.isFunction(a[o]) && "_" !== o.charAt(0) ? (i = a[o].apply(a, l), i !== a && i !== e ? (c = i && i.jquery ? c.pushStack(i.get()) : i,
!1) : void 0) : n.error("no such method '" + o + "' for " + t + " widget instance") : n.error("cannot call methods on " + t + " prior to initialization; " + "attempted to call method '" + o + "'");
}) : this.each(function() {
var e = n.data(this, r);
e ? e.option(o || {})._init() : n.data(this, r, new a(o, this));
}), c;
};
}, n.Widget = function() {}, n.Widget._childConstructors = [], n.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: !1,
create: null
},
_createWidget: function(e, i) {
i = n(i || this.defaultElement || this)[0], this.element = n(i), this.uuid = t++,
this.eventNamespace = "." + this.widgetName + this.uuid, this.options = n.widget.extend({}, this.options, this._getCreateOptions(), e),
this.bindings = n(), this.hoverable = n(), this.focusable = n(), i !== this && (n.data(i, this.widgetFullName, this),
this._on(!0, this.element, {
remove: function(n) {
n.target === i && this.destroy();
}
}), this.document = n(i.style ? i.ownerDocument : i.document || i), this.window = n(this.document[0].defaultView || this.document[0].parentWindow)),
this._create(), this._trigger("create", null, this._getCreateEventData()), this._init();
},
_getCreateOptions: n.noop,
_getCreateEventData: n.noop,
_create: n.noop,
_init: n.noop,
destroy: function() {
this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(n.camelCase(this.widgetFullName)),
this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"),
this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"),
this.focusable.removeClass("ui-state-focus");
},
_destroy: n.noop,
widget: function() {
return this.element;
},
option: function(t, i) {
var a, r, o, s = t;
if (0 === arguments.length) return n.widget.extend({}, this.options);
if ("string" == typeof t) if (s = {}, a = t.split("."), t = a.shift(), a.length) {
for (r = s[t] = n.widget.extend({}, this.options[t]), o = 0; o < a.length - 1; o++) r[a[o]] = r[a[o]] || {},
r = r[a[o]];
if (t = a.pop(), i === e) return r[t] === e ? null : r[t];
r[t] = i;
} else {
if (i === e) return this.options[t] === e ? null : this.options[t];
s[t] = i;
}
return this._setOptions(s), this;
},
_setOptions: function(n) {
var e;
for (e in n) this._setOption(e, n[e]);
return this;
},
_setOption: function(n, e) {
return this.options[n] = e, "disabled" === n && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!e).attr("aria-disabled", e),
this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")),
this;
},
enable: function() {
return this._setOption("disabled", !1);
},
disable: function() {
return this._setOption("disabled", !0);
},
_on: function(e, t, i) {
var a, r = this;
"boolean" != typeof e && (i = t, t = e, e = !1), i ? (t = a = n(t), this.bindings = this.bindings.add(t)) : (i = t,
t = this.element, a = this.widget()), n.each(i, function(i, o) {
function s() {
return e || r.options.disabled !== !0 && !n(this).hasClass("ui-state-disabled") ? ("string" == typeof o ? r[o] : o).apply(r, arguments) : void 0;
}
"string" != typeof o && (s.guid = o.guid = o.guid || s.guid || n.guid++);
var l = i.match(/^(\w+)\s*(.*)$/), c = l[1] + r.eventNamespace, M = l[2];
M ? a.delegate(M, c, s) : t.bind(c, s);
});
},
_off: function(n, e) {
e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace,
n.unbind(e).undelegate(e);
},
_delay: function(n, e) {
function t() {
return ("string" == typeof n ? i[n] : n).apply(i, arguments);
}
var i = this;
return setTimeout(t, e || 0);
},
_hoverable: function(e) {
this.hoverable = this.hoverable.add(e), this._on(e, {
mouseenter: function(e) {
n(e.currentTarget).addClass("ui-state-hover");
},
mouseleave: function(e) {
n(e.currentTarget).removeClass("ui-state-hover");
}
});
},
_focusable: function(e) {
this.focusable = this.focusable.add(e), this._on(e, {
focusin: function(e) {
n(e.currentTarget).addClass("ui-state-focus");
},
focusout: function(e) {
n(e.currentTarget).removeClass("ui-state-focus");
}
});
},
_trigger: function(e, t, i) {
var a, r, o = this.options[e];
if (i = i || {}, t = n.Event(t), t.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(),
t.target = this.element[0], r = t.originalEvent) for (a in r) a in t || (t[a] = r[a]);
return this.element.trigger(t, i), !(n.isFunction(o) && o.apply(this.element[0], [ t ].concat(i)) === !1 || t.isDefaultPrevented());
}
}, n.each({
show: "fadeIn",
hide: "fadeOut"
}, function(e, t) {
n.Widget.prototype["_" + e] = function(i, a, r) {
"string" == typeof a && (a = {
effect: a
});
var o, s = a ? a === !0 || "number" == typeof a ? t : a.effect || t : e;
a = a || {}, "number" == typeof a && (a = {
duration: a
}), o = !n.isEmptyObject(a), a.complete = r, a.delay && i.delay(a.delay), o && n.effects && n.effects.effect[s] ? i[e](a) : s !== e && i[s] ? i[s](a.duration, a.easing, r) : i.queue(function(t) {
n(this)[e](), r && r.call(i[0]), t();
});
};
});
}(jQuery), define("jquery-ui-widget", function() {}), function(n) {
var e = !1;
n(document).mouseup(function() {
e = !1;
}), n.widget("ui.mouse", {
version: "1.10.3",
options: {
cancel: "input,textarea,button,select,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var e = this;
this.element.bind("mousedown." + this.widgetName, function(n) {
return e._mouseDown(n);
}).bind("click." + this.widgetName, function(t) {
return !0 === n.data(t.target, e.widgetName + ".preventClickEvent") ? (n.removeData(t.target, e.widgetName + ".preventClickEvent"),
t.stopImmediatePropagation(), !1) : void 0;
}), this.started = !1;
},
_mouseDestroy: function() {
this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && n(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
},
_mouseDown: function(t) {
if (!e) {
this._mouseStarted && this._mouseUp(t), this._mouseDownEvent = t;
var i = this, a = 1 === t.which, r = "string" == typeof this.options.cancel && t.target.nodeName ? n(t.target).closest(this.options.cancel).length : !1;
return a && !r && this._mouseCapture(t) ? (this.mouseDelayMet = !this.options.delay,
this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
i.mouseDelayMet = !0;
}, this.options.delay)), this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(t) !== !1,
!this._mouseStarted) ? (t.preventDefault(), !0) : (!0 === n.data(t.target, this.widgetName + ".preventClickEvent") && n.removeData(t.target, this.widgetName + ".preventClickEvent"),
this._mouseMoveDelegate = function(n) {
return i._mouseMove(n);
}, this._mouseUpDelegate = function(n) {
return i._mouseUp(n);
}, n(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate),
t.preventDefault(), e = !0, !0)) : !0;
}
},
_mouseMove: function(e) {
return n.ui.ie && (!document.documentMode || document.documentMode < 9) && !e.button ? this._mouseUp(e) : this._mouseStarted ? (this._mouseDrag(e),
e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1,
this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted);
},
_mouseUp: function(e) {
return n(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate),
this._mouseStarted && (this._mouseStarted = !1, e.target === this._mouseDownEvent.target && n.data(e.target, this.widgetName + ".preventClickEvent", !0),
this._mouseStop(e)), !1;
},
_mouseDistanceMet: function(n) {
return Math.max(Math.abs(this._mouseDownEvent.pageX - n.pageX), Math.abs(this._mouseDownEvent.pageY - n.pageY)) >= this.options.distance;
},
_mouseDelayMet: function() {
return this.mouseDelayMet;
},
_mouseStart: function() {},
_mouseDrag: function() {},
_mouseStop: function() {},
_mouseCapture: function() {
return !0;
}
});
}(jQuery), define("jquery-ui-mouse", function() {}), function(n) {
n.widget("ui.draggable", n.ui.mouse, {
version: "1.10.3",
widgetEventPrefix: "drag",
options: {
addClasses: !0,
appendTo: "parent",
axis: !1,
connectToSortable: !1,
containment: !1,
cursor: "auto",
cursorAt: !1,
grid: !1,
handle: !1,
helper: "original",
iframeFix: !1,
opacity: !1,
refreshPositions: !1,
revert: !1,
revertDuration: 500,
scope: "default",
scroll: !0,
scrollSensitivity: 20,
scrollSpeed: 20,
snap: !1,
snapMode: "both",
snapTolerance: 20,
stack: !1,
zIndex: !1,
drag: null,
start: null,
stop: null
},
_create: function() {
"original" !== this.options.helper || /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative"),
this.options.addClasses && this.element.addClass("ui-draggable"), this.options.disabled && this.element.addClass("ui-draggable-disabled"),
this._mouseInit();
},
_destroy: function() {
this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),
this._mouseDestroy();
},
_mouseCapture: function(e) {
var t = this.options;
return this.helper || t.disabled || n(e.target).closest(".ui-resizable-handle").length > 0 ? !1 : (this.handle = this._getHandle(e),
this.handle ? (n(t.iframeFix === !0 ? "iframe" : t.iframeFix).each(function() {
n("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({
width: this.offsetWidth + "px",
height: this.offsetHeight + "px",
position: "absolute",
opacity: "0.001",
zIndex: 1e3
}).css(n(this).offset()).appendTo("body");
}), !0) : !1);
},
_mouseStart: function(e) {
var t = this.options;
return this.helper = this._createHelper(e), this.helper.addClass("ui-draggable-dragging"),
this._cacheHelperProportions(), n.ui.ddmanager && (n.ui.ddmanager.current = this),
this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(),
this.offsetParent = this.helper.offsetParent(), this.offsetParentCssPosition = this.offsetParent.css("position"),
this.offset = this.positionAbs = this.element.offset(), this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
}, this.offset.scroll = !1, n.extend(this.offset, {
click: {
left: e.pageX - this.offset.left,
top: e.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
}), this.originalPosition = this.position = this._generatePosition(e), this.originalPageX = e.pageX,
this.originalPageY = e.pageY, t.cursorAt && this._adjustOffsetFromHelper(t.cursorAt),
this._setContainment(), this._trigger("start", e) === !1 ? (this._clear(), !1) : (this._cacheHelperProportions(),
n.ui.ddmanager && !t.dropBehaviour && n.ui.ddmanager.prepareOffsets(this, e), this._mouseDrag(e, !0),
n.ui.ddmanager && n.ui.ddmanager.dragStart(this, e), !0);
},
_mouseDrag: function(e, t) {
if ("fixed" === this.offsetParentCssPosition && (this.offset.parent = this._getParentOffset()),
this.position = this._generatePosition(e), this.positionAbs = this._convertPositionTo("absolute"),
!t) {
var i = this._uiHash();
if (this._trigger("drag", e, i) === !1) return this._mouseUp({}), !1;
this.position = i.position;
}
return this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"),
this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"),
n.ui.ddmanager && n.ui.ddmanager.drag(this, e), !1;
},
_mouseStop: function(e) {
var t = this, i = !1;
return n.ui.ddmanager && !this.options.dropBehaviour && (i = n.ui.ddmanager.drop(this, e)),
this.dropped && (i = this.dropped, this.dropped = !1), "original" !== this.options.helper || n.contains(this.element[0].ownerDocument, this.element[0]) ? ("invalid" === this.options.revert && !i || "valid" === this.options.revert && i || this.options.revert === !0 || n.isFunction(this.options.revert) && this.options.revert.call(this.element, i) ? n(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
t._trigger("stop", e) !== !1 && t._clear();
}) : this._trigger("stop", e) !== !1 && this._clear(), !1) : !1;
},
_mouseUp: function(e) {
return n("div.ui-draggable-iframeFix").each(function() {
this.parentNode.removeChild(this);
}), n.ui.ddmanager && n.ui.ddmanager.dragStop(this, e), n.ui.mouse.prototype._mouseUp.call(this, e);
},
cancel: function() {
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(),
this;
},
_getHandle: function(e) {
return this.options.handle ? !!n(e.target).closest(this.element.find(this.options.handle)).length : !0;
},
_createHelper: function(e) {
var t = this.options, i = n.isFunction(t.helper) ? n(t.helper.apply(this.element[0], [ e ])) : "clone" === t.helper ? this.element.clone().removeAttr("id") : this.element;
return i.parents("body").length || i.appendTo("parent" === t.appendTo ? this.element[0].parentNode : t.appendTo),
i[0] === this.element[0] || /(fixed|absolute)/.test(i.css("position")) || i.css("position", "absolute"),
i;
},
_adjustOffsetFromHelper: function(e) {
"string" == typeof e && (e = e.split(" ")), n.isArray(e) && (e = {
left: +e[0],
top: +e[1] || 0
}), "left" in e && (this.offset.click.left = e.left + this.margins.left), "right" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left),
"top" in e && (this.offset.click.top = e.top + this.margins.top), "bottom" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top);
},
_getParentOffset: function() {
var e = this.offsetParent.offset();
return "absolute" === this.cssPosition && this.scrollParent[0] !== document && n.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(),
e.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && n.ui.ie) && (e = {
top: 0,
left: 0
}), {
top: e.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: e.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
};
},
_getRelativeOffset: function() {
if ("relative" === this.cssPosition) {
var n = this.element.position();
return {
top: n.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: n.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
};
}
return {
top: 0,
left: 0
};
},
_cacheMargins: function() {
this.margins = {
left: parseInt(this.element.css("marginLeft"), 10) || 0,
top: parseInt(this.element.css("marginTop"), 10) || 0,
right: parseInt(this.element.css("marginRight"), 10) || 0,
bottom: parseInt(this.element.css("marginBottom"), 10) || 0
};
},
_cacheHelperProportions: function() {
this.helperProportions = {
width: this.helper.outerWidth(),
height: this.helper.outerHeight()
};
},
_setContainment: function() {
var e, t, i, a = this.options;
return a.containment ? "window" === a.containment ? (this.containment = [ n(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, n(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, n(window).scrollLeft() + n(window).width() - this.helperProportions.width - this.margins.left, n(window).scrollTop() + (n(window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ],
void 0) : "document" === a.containment ? (this.containment = [ 0, 0, n(document).width() - this.helperProportions.width - this.margins.left, (n(document).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ],
void 0) : a.containment.constructor === Array ? (this.containment = a.containment,
void 0) : ("parent" === a.containment && (a.containment = this.helper[0].parentNode),
t = n(a.containment), i = t[0], i && (e = "hidden" !== t.css("overflow"), this.containment = [ (parseInt(t.css("borderLeftWidth"), 10) || 0) + (parseInt(t.css("paddingLeft"), 10) || 0), (parseInt(t.css("borderTopWidth"), 10) || 0) + (parseInt(t.css("paddingTop"), 10) || 0), (e ? Math.max(i.scrollWidth, i.offsetWidth) : i.offsetWidth) - (parseInt(t.css("borderRightWidth"), 10) || 0) - (parseInt(t.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (e ? Math.max(i.scrollHeight, i.offsetHeight) : i.offsetHeight) - (parseInt(t.css("borderBottomWidth"), 10) || 0) - (parseInt(t.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom ],
this.relative_container = t), void 0) : (this.containment = null, void 0);
},
_convertPositionTo: function(e, t) {
t || (t = this.position);
var i = "absolute" === e ? 1 : -1, a = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && n.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent;
return this.offset.scroll || (this.offset.scroll = {
top: a.scrollTop(),
left: a.scrollLeft()
}), {
top: t.top + this.offset.relative.top * i + this.offset.parent.top * i - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : this.offset.scroll.top) * i,
left: t.left + this.offset.relative.left * i + this.offset.parent.left * i - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : this.offset.scroll.left) * i
};
},
_generatePosition: function(e) {
var t, i, a, r, o = this.options, s = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && n.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, l = e.pageX, c = e.pageY;
return this.offset.scroll || (this.offset.scroll = {
top: s.scrollTop(),
left: s.scrollLeft()
}), this.originalPosition && (this.containment && (this.relative_container ? (i = this.relative_container.offset(),
t = [ this.containment[0] + i.left, this.containment[1] + i.top, this.containment[2] + i.left, this.containment[3] + i.top ]) : t = this.containment,
e.pageX - this.offset.click.left < t[0] && (l = t[0] + this.offset.click.left),
e.pageY - this.offset.click.top < t[1] && (c = t[1] + this.offset.click.top), e.pageX - this.offset.click.left > t[2] && (l = t[2] + this.offset.click.left),
e.pageY - this.offset.click.top > t[3] && (c = t[3] + this.offset.click.top)), o.grid && (a = o.grid[1] ? this.originalPageY + Math.round((c - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY,
c = t ? a - this.offset.click.top >= t[1] || a - this.offset.click.top > t[3] ? a : a - this.offset.click.top >= t[1] ? a - o.grid[1] : a + o.grid[1] : a,
r = o.grid[0] ? this.originalPageX + Math.round((l - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX,
l = t ? r - this.offset.click.left >= t[0] || r - this.offset.click.left > t[2] ? r : r - this.offset.click.left >= t[0] ? r - o.grid[0] : r + o.grid[0] : r)),
{
top: c - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : this.offset.scroll.top),
left: l - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : this.offset.scroll.left)
};
},
_clear: function() {
this.helper.removeClass("ui-draggable-dragging"), this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(),
this.helper = null, this.cancelHelperRemoval = !1;
},
_trigger: function(e, t, i) {
return i = i || this._uiHash(), n.ui.plugin.call(this, e, [ t, i ]), "drag" === e && (this.positionAbs = this._convertPositionTo("absolute")),
n.Widget.prototype._trigger.call(this, e, t, i);
},
plugins: {},
_uiHash: function() {
return {
helper: this.helper,
position: this.position,
originalPosition: this.originalPosition,
offset: this.positionAbs
};
}
}), n.ui.plugin.add("draggable", "connectToSortable", {
start: function(e, t) {
var i = n(this).data("ui-draggable"), a = i.options, r = n.extend({}, t, {
item: i.element
});
i.sortables = [], n(a.connectToSortable).each(function() {
var t = n.data(this, "ui-sortable");
t && !t.options.disabled && (i.sortables.push({
instance: t,
shouldRevert: t.options.revert
}), t.refreshPositions(), t._trigger("activate", e, r));
});
},
stop: function(e, t) {
var i = n(this).data("ui-draggable"), a = n.extend({}, t, {
item: i.element
});
n.each(i.sortables, function() {
this.instance.isOver ? (this.instance.isOver = 0, i.cancelHelperRemoval = !0, this.instance.cancelHelperRemoval = !1,
this.shouldRevert && (this.instance.options.revert = this.shouldRevert), this.instance._mouseStop(e),
this.instance.options.helper = this.instance.options._helper, "original" === i.options.helper && this.instance.currentItem.css({
top: "auto",
left: "auto"
})) : (this.instance.cancelHelperRemoval = !1, this.instance._trigger("deactivate", e, a));
});
},
drag: function(e, t) {
var i = n(this).data("ui-draggable"), a = this;
n.each(i.sortables, function() {
var r = !1, o = this;
this.instance.positionAbs = i.positionAbs, this.instance.helperProportions = i.helperProportions,
this.instance.offset.click = i.offset.click, this.instance._intersectsWith(this.instance.containerCache) && (r = !0,
n.each(i.sortables, function() {
return this.instance.positionAbs = i.positionAbs, this.instance.helperProportions = i.helperProportions,
this.instance.offset.click = i.offset.click, this !== o && this.instance._intersectsWith(this.instance.containerCache) && n.contains(o.instance.element[0], this.instance.element[0]) && (r = !1),
r;
})), r ? (this.instance.isOver || (this.instance.isOver = 1, this.instance.currentItem = n(a).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", !0),
this.instance.options._helper = this.instance.options.helper, this.instance.options.helper = function() {
return t.helper[0];
}, e.target = this.instance.currentItem[0], this.instance._mouseCapture(e, !0),
this.instance._mouseStart(e, !0, !0), this.instance.offset.click.top = i.offset.click.top,
this.instance.offset.click.left = i.offset.click.left, this.instance.offset.parent.left -= i.offset.parent.left - this.instance.offset.parent.left,
this.instance.offset.parent.top -= i.offset.parent.top - this.instance.offset.parent.top,
i._trigger("toSortable", e), i.dropped = this.instance.element, i.currentItem = i.element,
this.instance.fromOutside = i), this.instance.currentItem && this.instance._mouseDrag(e)) : this.instance.isOver && (this.instance.isOver = 0,
this.instance.cancelHelperRemoval = !0, this.instance.options.revert = !1, this.instance._trigger("out", e, this.instance._uiHash(this.instance)),
this.instance._mouseStop(e, !0), this.instance.options.helper = this.instance.options._helper,
this.instance.currentItem.remove(), this.instance.placeholder && this.instance.placeholder.remove(),
i._trigger("fromSortable", e), i.dropped = !1);
});
}
}), n.ui.plugin.add("draggable", "cursor", {
start: function() {
var e = n("body"), t = n(this).data("ui-draggable").options;
e.css("cursor") && (t._cursor = e.css("cursor")), e.css("cursor", t.cursor);
},
stop: function() {
var e = n(this).data("ui-draggable").options;
e._cursor && n("body").css("cursor", e._cursor);
}
}), n.ui.plugin.add("draggable", "opacity", {
start: function(e, t) {
var i = n(t.helper), a = n(this).data("ui-draggable").options;
i.css("opacity") && (a._opacity = i.css("opacity")), i.css("opacity", a.opacity);
},
stop: function(e, t) {
var i = n(this).data("ui-draggable").options;
i._opacity && n(t.helper).css("opacity", i._opacity);
}
}), n.ui.plugin.add("draggable", "scroll", {
start: function() {
var e = n(this).data("ui-draggable");
e.scrollParent[0] !== document && "HTML" !== e.scrollParent[0].tagName && (e.overflowOffset = e.scrollParent.offset());
},
drag: function(e) {
var t = n(this).data("ui-draggable"), i = t.options, a = !1;
t.scrollParent[0] !== document && "HTML" !== t.scrollParent[0].tagName ? (i.axis && "x" === i.axis || (t.overflowOffset.top + t.scrollParent[0].offsetHeight - e.pageY < i.scrollSensitivity ? t.scrollParent[0].scrollTop = a = t.scrollParent[0].scrollTop + i.scrollSpeed : e.pageY - t.overflowOffset.top < i.scrollSensitivity && (t.scrollParent[0].scrollTop = a = t.scrollParent[0].scrollTop - i.scrollSpeed)),
i.axis && "y" === i.axis || (t.overflowOffset.left + t.scrollParent[0].offsetWidth - e.pageX < i.scrollSensitivity ? t.scrollParent[0].scrollLeft = a = t.scrollParent[0].scrollLeft + i.scrollSpeed : e.pageX - t.overflowOffset.left < i.scrollSensitivity && (t.scrollParent[0].scrollLeft = a = t.scrollParent[0].scrollLeft - i.scrollSpeed))) : (i.axis && "x" === i.axis || (e.pageY - n(document).scrollTop() < i.scrollSensitivity ? a = n(document).scrollTop(n(document).scrollTop() - i.scrollSpeed) : n(window).height() - (e.pageY - n(document).scrollTop()) < i.scrollSensitivity && (a = n(document).scrollTop(n(document).scrollTop() + i.scrollSpeed))),
i.axis && "y" === i.axis || (e.pageX - n(document).scrollLeft() < i.scrollSensitivity ? a = n(document).scrollLeft(n(document).scrollLeft() - i.scrollSpeed) : n(window).width() - (e.pageX - n(document).scrollLeft()) < i.scrollSensitivity && (a = n(document).scrollLeft(n(document).scrollLeft() + i.scrollSpeed)))),
a !== !1 && n.ui.ddmanager && !i.dropBehaviour && n.ui.ddmanager.prepareOffsets(t, e);
}
}), n.ui.plugin.add("draggable", "snap", {
start: function() {
var e = n(this).data("ui-draggable"), t = e.options;
e.snapElements = [], n(t.snap.constructor !== String ? t.snap.items || ":data(ui-draggable)" : t.snap).each(function() {
var t = n(this), i = t.offset();
this !== e.element[0] && e.snapElements.push({
item: this,
width: t.outerWidth(),
height: t.outerHeight(),
top: i.top,
left: i.left
});
});
},
drag: function(e, t) {
var i, a, r, o, s, l, c, M, u, d, h = n(this).data("ui-draggable"), S = h.options, p = S.snapTolerance, m = t.offset.left, g = m + h.helperProportions.width, f = t.offset.top, b = f + h.helperProportions.height;
for (u = h.snapElements.length - 1; u >= 0; u--) s = h.snapElements[u].left, l = s + h.snapElements[u].width,
c = h.snapElements[u].top, M = c + h.snapElements[u].height, s - p > g || m > l + p || c - p > b || f > M + p || !n.contains(h.snapElements[u].item.ownerDocument, h.snapElements[u].item) ? (h.snapElements[u].snapping && h.options.snap.release && h.options.snap.release.call(h.element, e, n.extend(h._uiHash(), {
snapItem: h.snapElements[u].item
})), h.snapElements[u].snapping = !1) : ("inner" !== S.snapMode && (i = Math.abs(c - b) <= p,
a = Math.abs(M - f) <= p, r = Math.abs(s - g) <= p, o = Math.abs(l - m) <= p, i && (t.position.top = h._convertPositionTo("relative", {
top: c - h.helperProportions.height,
left: 0
}).top - h.margins.top), a && (t.position.top = h._convertPositionTo("relative", {
top: M,
left: 0
}).top - h.margins.top), r && (t.position.left = h._convertPositionTo("relative", {
top: 0,
left: s - h.helperProportions.width
}).left - h.margins.left), o && (t.position.left = h._convertPositionTo("relative", {
top: 0,
left: l
}).left - h.margins.left)), d = i || a || r || o, "outer" !== S.snapMode && (i = Math.abs(c - f) <= p,
a = Math.abs(M - b) <= p, r = Math.abs(s - m) <= p, o = Math.abs(l - g) <= p, i && (t.position.top = h._convertPositionTo("relative", {
top: c,
left: 0
}).top - h.margins.top), a && (t.position.top = h._convertPositionTo("relative", {
top: M - h.helperProportions.height,
left: 0
}).top - h.margins.top), r && (t.position.left = h._convertPositionTo("relative", {
top: 0,
left: s
}).left - h.margins.left), o && (t.position.left = h._convertPositionTo("relative", {
top: 0,
left: l - h.helperProportions.width
}).left - h.margins.left)), !h.snapElements[u].snapping && (i || a || r || o || d) && h.options.snap.snap && h.options.snap.snap.call(h.element, e, n.extend(h._uiHash(), {
snapItem: h.snapElements[u].item
})), h.snapElements[u].snapping = i || a || r || o || d);
}
}), n.ui.plugin.add("draggable", "stack", {
start: function() {
var e, t = this.data("ui-draggable").options, i = n.makeArray(n(t.stack)).sort(function(e, t) {
return (parseInt(n(e).css("zIndex"), 10) || 0) - (parseInt(n(t).css("zIndex"), 10) || 0);
});
i.length && (e = parseInt(n(i[0]).css("zIndex"), 10) || 0, n(i).each(function(t) {
n(this).css("zIndex", e + t);
}), this.css("zIndex", e + i.length));
}
}), n.ui.plugin.add("draggable", "zIndex", {
start: function(e, t) {
var i = n(t.helper), a = n(this).data("ui-draggable").options;
i.css("zIndex") && (a._zIndex = i.css("zIndex")), i.css("zIndex", a.zIndex);
},
stop: function(e, t) {
var i = n(this).data("ui-draggable").options;
i._zIndex && n(t.helper).css("zIndex", i._zIndex);
}
});
}(jQuery), define("jquery-ui-draggable", function() {}), function(n, e) {
var t = "ui-effects-";
n.effects = {
effect: {}
}, function(n, e) {
function t(n, e, t) {
var i = u[e.type] || {};
return null == n ? t || !e.def ? null : e.def : (n = i.floor ? ~~n : parseFloat(n),
isNaN(n) ? e.def : i.mod ? (n + i.mod) % i.mod : 0 > n ? 0 : i.max < n ? i.max : n);
}
function i(e) {
var t = c(), i = t._rgba = [];
return e = e.toLowerCase(), S(l, function(n, a) {
var r, o = a.re.exec(e), s = o && a.parse(o), l = a.space || "rgba";
return s ? (r = t[l](s), t[M[l].cache] = r[M[l].cache], i = t._rgba = r._rgba, !1) : void 0;
}), i.length ? ("0,0,0,0" === i.join() && n.extend(i, r.transparent), t) : r[e];
}
function a(n, e, t) {
return t = (t + 1) % 1, 1 > 6 * t ? n + 6 * (e - n) * t : 1 > 2 * t ? e : 2 > 3 * t ? n + 6 * (e - n) * (2 / 3 - t) : n;
}
var r, o = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", s = /^([\-+])=\s*(\d+\.?\d*)/, l = [ {
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(n) {
return [ n[1], n[2], n[3], n[4] ];
}
}, {
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(n) {
return [ 2.55 * n[1], 2.55 * n[2], 2.55 * n[3], n[4] ];
}
}, {
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
parse: function(n) {
return [ parseInt(n[1], 16), parseInt(n[2], 16), parseInt(n[3], 16) ];
}
}, {
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
parse: function(n) {
return [ parseInt(n[1] + n[1], 16), parseInt(n[2] + n[2], 16), parseInt(n[3] + n[3], 16) ];
}
}, {
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
space: "hsla",
parse: function(n) {
return [ n[1], n[2] / 100, n[3] / 100, n[4] ];
}
} ], c = n.Color = function(e, t, i, a) {
return new n.Color.fn.parse(e, t, i, a);
}, M = {
rgba: {
props: {
red: {
idx: 0,
type: "byte"
},
green: {
idx: 1,
type: "byte"
},
blue: {
idx: 2,
type: "byte"
}
}
},
hsla: {
props: {
hue: {
idx: 0,
type: "degrees"
},
saturation: {
idx: 1,
type: "percent"
},
lightness: {
idx: 2,
type: "percent"
}
}
}
}, u = {
"byte": {
floor: !0,
max: 255
},
percent: {
max: 1
},
degrees: {
mod: 360,
floor: !0
}
}, d = c.support = {}, h = n("<p>")[0], S = n.each;
h.style.cssText = "background-color:rgba(1,1,1,.5)", d.rgba = h.style.backgroundColor.indexOf("rgba") > -1,
S(M, function(n, e) {
e.cache = "_" + n, e.props.alpha = {
idx: 3,
type: "percent",
def: 1
};
}), c.fn = n.extend(c.prototype, {
parse: function(a, o, s, l) {
if (a === e) return this._rgba = [ null, null, null, null ], this;
(a.jquery || a.nodeType) && (a = n(a).css(o), o = e);
var u = this, d = n.type(a), h = this._rgba = [];
return o !== e && (a = [ a, o, s, l ], d = "array"), "string" === d ? this.parse(i(a) || r._default) : "array" === d ? (S(M.rgba.props, function(n, e) {
h[e.idx] = t(a[e.idx], e);
}), this) : "object" === d ? (a instanceof c ? S(M, function(n, e) {
a[e.cache] && (u[e.cache] = a[e.cache].slice());
}) : S(M, function(e, i) {
var r = i.cache;
S(i.props, function(n, e) {
if (!u[r] && i.to) {
if ("alpha" === n || null == a[n]) return;
u[r] = i.to(u._rgba);
}
u[r][e.idx] = t(a[n], e, !0);
}), u[r] && n.inArray(null, u[r].slice(0, 3)) < 0 && (u[r][3] = 1, i.from && (u._rgba = i.from(u[r])));
}), this) : void 0;
},
is: function(n) {
var e = c(n), t = !0, i = this;
return S(M, function(n, a) {
var r, o = e[a.cache];
return o && (r = i[a.cache] || a.to && a.to(i._rgba) || [], S(a.props, function(n, e) {
return null != o[e.idx] ? t = o[e.idx] === r[e.idx] : void 0;
})), t;
}), t;
},
_space: function() {
var n = [], e = this;
return S(M, function(t, i) {
e[i.cache] && n.push(t);
}), n.pop();
},
transition: function(n, e) {
var i = c(n), a = i._space(), r = M[a], o = 0 === this.alpha() ? c("transparent") : this, s = o[r.cache] || r.to(o._rgba), l = s.slice();
return i = i[r.cache], S(r.props, function(n, a) {
var r = a.idx, o = s[r], c = i[r], M = u[a.type] || {};
null !== c && (null === o ? l[r] = c : (M.mod && (c - o > M.mod / 2 ? o += M.mod : o - c > M.mod / 2 && (o -= M.mod)),
l[r] = t((c - o) * e + o, a)));
}), this[a](l);
},
blend: function(e) {
if (1 === this._rgba[3]) return this;
var t = this._rgba.slice(), i = t.pop(), a = c(e)._rgba;
return c(n.map(t, function(n, e) {
return (1 - i) * a[e] + i * n;
}));
},
toRgbaString: function() {
var e = "rgba(", t = n.map(this._rgba, function(n, e) {
return null == n ? e > 2 ? 1 : 0 : n;
});
return 1 === t[3] && (t.pop(), e = "rgb("), e + t.join() + ")";
},
toHslaString: function() {
var e = "hsla(", t = n.map(this.hsla(), function(n, e) {
return null == n && (n = e > 2 ? 1 : 0), e && 3 > e && (n = Math.round(100 * n) + "%"),
n;
});
return 1 === t[3] && (t.pop(), e = "hsl("), e + t.join() + ")";
},
toHexString: function(e) {
var t = this._rgba.slice(), i = t.pop();
return e && t.push(~~(255 * i)), "#" + n.map(t, function(n) {
return n = (n || 0).toString(16), 1 === n.length ? "0" + n : n;
}).join("");
},
toString: function() {
return 0 === this._rgba[3] ? "transparent" : this.toRgbaString();
}
}), c.fn.parse.prototype = c.fn, M.hsla.to = function(n) {
if (null == n[0] || null == n[1] || null == n[2]) return [ null, null, null, n[3] ];
var e, t, i = n[0] / 255, a = n[1] / 255, r = n[2] / 255, o = n[3], s = Math.max(i, a, r), l = Math.min(i, a, r), c = s - l, M = s + l, u = .5 * M;
return e = l === s ? 0 : i === s ? 60 * (a - r) / c + 360 : a === s ? 60 * (r - i) / c + 120 : 60 * (i - a) / c + 240,
t = 0 === c ? 0 : .5 >= u ? c / M : c / (2 - M), [ Math.round(e) % 360, t, u, null == o ? 1 : o ];
}, M.hsla.from = function(n) {
if (null == n[0] || null == n[1] || null == n[2]) return [ null, null, null, n[3] ];
var e = n[0] / 360, t = n[1], i = n[2], r = n[3], o = .5 >= i ? i * (1 + t) : i + t - i * t, s = 2 * i - o;
return [ Math.round(255 * a(s, o, e + 1 / 3)), Math.round(255 * a(s, o, e)), Math.round(255 * a(s, o, e - 1 / 3)), r ];
}, S(M, function(i, a) {
var r = a.props, o = a.cache, l = a.to, M = a.from;
c.fn[i] = function(i) {
if (l && !this[o] && (this[o] = l(this._rgba)), i === e) return this[o].slice();
var a, s = n.type(i), u = "array" === s || "object" === s ? i : arguments, d = this[o].slice();
return S(r, function(n, e) {
var i = u["object" === s ? n : e.idx];
null == i && (i = d[e.idx]), d[e.idx] = t(i, e);
}), M ? (a = c(M(d)), a[o] = d, a) : c(d);
}, S(r, function(e, t) {
c.fn[e] || (c.fn[e] = function(a) {
var r, o = n.type(a), l = "alpha" === e ? this._hsla ? "hsla" : "rgba" : i, c = this[l](), M = c[t.idx];
return "undefined" === o ? M : ("function" === o && (a = a.call(this, M), o = n.type(a)),
null == a && t.empty ? this : ("string" === o && (r = s.exec(a), r && (a = M + parseFloat(r[2]) * ("+" === r[1] ? 1 : -1))),
c[t.idx] = a, this[l](c)));
});
});
}), c.hook = function(e) {
var t = e.split(" ");
S(t, function(e, t) {
n.cssHooks[t] = {
set: function(e, a) {
var r, o, s = "";
if ("transparent" !== a && ("string" !== n.type(a) || (r = i(a)))) {
if (a = c(r || a), !d.rgba && 1 !== a._rgba[3]) {
for (o = "backgroundColor" === t ? e.parentNode : e; ("" === s || "transparent" === s) && o && o.style; ) try {
s = n.css(o, "backgroundColor"), o = o.parentNode;
} catch (l) {}
a = a.blend(s && "transparent" !== s ? s : "_default");
}
a = a.toRgbaString();
}
try {
e.style[t] = a;
} catch (l) {}
}
}, n.fx.step[t] = function(e) {
e.colorInit || (e.start = c(e.elem, t), e.end = c(e.end), e.colorInit = !0), n.cssHooks[t].set(e.elem, e.start.transition(e.end, e.pos));
};
});
}, c.hook(o), n.cssHooks.borderColor = {
expand: function(n) {
var e = {};
return S([ "Top", "Right", "Bottom", "Left" ], function(t, i) {
e["border" + i + "Color"] = n;
}), e;
}
}, r = n.Color.names = {
aqua: "#00ffff",
black: "#000000",
blue: "#0000ff",
fuchsia: "#ff00ff",
gray: "#808080",
green: "#008000",
lime: "#00ff00",
maroon: "#800000",
navy: "#000080",
olive: "#808000",
purple: "#800080",
red: "#ff0000",
silver: "#c0c0c0",
teal: "#008080",
white: "#ffffff",
yellow: "#ffff00",
transparent: [ null, null, null, 0 ],
_default: "#ffffff"
};
}(jQuery), function() {
function t(e) {
var t, i, a = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle, r = {};
if (a && a.length && a[0] && a[a[0]]) for (i = a.length; i--; ) t = a[i], "string" == typeof a[t] && (r[n.camelCase(t)] = a[t]); else for (t in a) "string" == typeof a[t] && (r[t] = a[t]);
return r;
}
function i(e, t) {
var i, a, o = {};
for (i in t) a = t[i], e[i] !== a && (r[i] || (n.fx.step[i] || !isNaN(parseFloat(a))) && (o[i] = a));
return o;
}
var a = [ "add", "remove", "toggle" ], r = {
border: 1,
borderBottom: 1,
borderColor: 1,
borderLeft: 1,
borderRight: 1,
borderTop: 1,
borderWidth: 1,
margin: 1,
padding: 1
};
n.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function(e, t) {
n.fx.step[t] = function(n) {
("none" !== n.end && !n.setAttr || 1 === n.pos && !n.setAttr) && (jQuery.style(n.elem, t, n.end),
n.setAttr = !0);
};
}), n.fn.addBack || (n.fn.addBack = function(n) {
return this.add(null == n ? this.prevObject : this.prevObject.filter(n));
}), n.effects.animateClass = function(e, r, o, s) {
var l = n.speed(r, o, s);
return this.queue(function() {
var r, o = n(this), s = o.attr("class") || "", c = l.children ? o.find("*").addBack() : o;
c = c.map(function() {
var e = n(this);
return {
el: e,
start: t(this)
};
}), r = function() {
n.each(a, function(n, t) {
e[t] && o[t + "Class"](e[t]);
});
}, r(), c = c.map(function() {
return this.end = t(this.el[0]), this.diff = i(this.start, this.end), this;
}), o.attr("class", s), c = c.map(function() {
var e = this, t = n.Deferred(), i = n.extend({}, l, {
queue: !1,
complete: function() {
t.resolve(e);
}
});
return this.el.animate(this.diff, i), t.promise();
}), n.when.apply(n, c.get()).done(function() {
r(), n.each(arguments, function() {
var e = this.el;
n.each(this.diff, function(n) {
e.css(n, "");
});
}), l.complete.call(o[0]);
});
});
}, n.fn.extend({
addClass: function(e) {
return function(t, i, a, r) {
return i ? n.effects.animateClass.call(this, {
add: t
}, i, a, r) : e.apply(this, arguments);
};
}(n.fn.addClass),
removeClass: function(e) {
return function(t, i, a, r) {
return arguments.length > 1 ? n.effects.animateClass.call(this, {
remove: t
}, i, a, r) : e.apply(this, arguments);
};
}(n.fn.removeClass),
toggleClass: function(t) {
return function(i, a, r, o, s) {
return "boolean" == typeof a || a === e ? r ? n.effects.animateClass.call(this, a ? {
add: i
} : {
remove: i
}, r, o, s) : t.apply(this, arguments) : n.effects.animateClass.call(this, {
toggle: i
}, a, r, o);
};
}(n.fn.toggleClass),
switchClass: function(e, t, i, a, r) {
return n.effects.animateClass.call(this, {
add: t,
remove: e
}, i, a, r);
}
});
}(), function() {
function i(e, t, i, a) {
return n.isPlainObject(e) && (t = e, e = e.effect), e = {
effect: e
}, null == t && (t = {}), n.isFunction(t) && (a = t, i = null, t = {}), ("number" == typeof t || n.fx.speeds[t]) && (a = i,
i = t, t = {}), n.isFunction(i) && (a = i, i = null), t && n.extend(e, t), i = i || t.duration,
e.duration = n.fx.off ? 0 : "number" == typeof i ? i : i in n.fx.speeds ? n.fx.speeds[i] : n.fx.speeds._default,
e.complete = a || t.complete, e;
}
function a(e) {
return !e || "number" == typeof e || n.fx.speeds[e] ? !0 : "string" != typeof e || n.effects.effect[e] ? n.isFunction(e) ? !0 : "object" != typeof e || e.effect ? !1 : !0 : !0;
}
n.extend(n.effects, {
version: "1.10.3",
save: function(n, e) {
for (var i = 0; i < e.length; i++) null !== e[i] && n.data(t + e[i], n[0].style[e[i]]);
},
restore: function(n, i) {
var a, r;
for (r = 0; r < i.length; r++) null !== i[r] && (a = n.data(t + i[r]), a === e && (a = ""),
n.css(i[r], a));
},
setMode: function(n, e) {
return "toggle" === e && (e = n.is(":hidden") ? "show" : "hide"), e;
},
getBaseline: function(n, e) {
var t, i;
switch (n[0]) {
case "top":
t = 0;
break;
case "middle":
t = .5;
break;
case "bottom":
t = 1;
break;
default:
t = n[0] / e.height;
}
switch (n[1]) {
case "left":
i = 0;
break;
case "center":
i = .5;
break;
case "right":
i = 1;
break;
default:
i = n[1] / e.width;
}
return {
x: i,
y: t
};
},
createWrapper: function(e) {
if (e.parent().is(".ui-effects-wrapper")) return e.parent();
var t = {
width: e.outerWidth(!0),
height: e.outerHeight(!0),
"float": e.css("float")
}, i = n("<div></div>").addClass("ui-effects-wrapper").css({
fontSize: "100%",
background: "transparent",
border: "none",
margin: 0,
padding: 0
}), a = {
width: e.width(),
height: e.height()
}, r = document.activeElement;
try {
r.id;
} catch (o) {
r = document.body;
}
return e.wrap(i), (e[0] === r || n.contains(e[0], r)) && n(r).focus(), i = e.parent(),
"static" === e.css("position") ? (i.css({
position: "relative"
}), e.css({
position: "relative"
})) : (n.extend(t, {
position: e.css("position"),
zIndex: e.css("z-index")
}), n.each([ "top", "left", "bottom", "right" ], function(n, i) {
t[i] = e.css(i), isNaN(parseInt(t[i], 10)) && (t[i] = "auto");
}), e.css({
position: "relative",
top: 0,
left: 0,
right: "auto",
bottom: "auto"
})), e.css(a), i.css(t).show();
},
removeWrapper: function(e) {
var t = document.activeElement;
return e.parent().is(".ui-effects-wrapper") && (e.parent().replaceWith(e), (e[0] === t || n.contains(e[0], t)) && n(t).focus()),
e;
},
setTransition: function(e, t, i, a) {
return a = a || {}, n.each(t, function(n, t) {
var r = e.cssUnit(t);
r[0] > 0 && (a[t] = r[0] * i + r[1]);
}), a;
}
}), n.fn.extend({
effect: function() {
function e(e) {
function i() {
n.isFunction(r) && r.call(a[0]), n.isFunction(e) && e();
}
var a = n(this), r = t.complete, s = t.mode;
(a.is(":hidden") ? "hide" === s : "show" === s) ? (a[s](), i()) : o.call(a[0], t, i);
}
var t = i.apply(this, arguments), a = t.mode, r = t.queue, o = n.effects.effect[t.effect];
return n.fx.off || !o ? a ? this[a](t.duration, t.complete) : this.each(function() {
t.complete && t.complete.call(this);
}) : r === !1 ? this.each(e) : this.queue(r || "fx", e);
},
show: function(n) {
return function(e) {
if (a(e)) return n.apply(this, arguments);
var t = i.apply(this, arguments);
return t.mode = "show", this.effect.call(this, t);
};
}(n.fn.show),
hide: function(n) {
return function(e) {
if (a(e)) return n.apply(this, arguments);
var t = i.apply(this, arguments);
return t.mode = "hide", this.effect.call(this, t);
};
}(n.fn.hide),
toggle: function(n) {
return function(e) {
if (a(e) || "boolean" == typeof e) return n.apply(this, arguments);
var t = i.apply(this, arguments);
return t.mode = "toggle", this.effect.call(this, t);
};
}(n.fn.toggle),
cssUnit: function(e) {
var t = this.css(e), i = [];
return n.each([ "em", "px", "%", "pt" ], function(n, e) {
t.indexOf(e) > 0 && (i = [ parseFloat(t), e ]);
}), i;
}
});
}(), function() {
var e = {};
n.each([ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function(n, t) {
e[t] = function(e) {
return Math.pow(e, n + 2);
};
}), n.extend(e, {
Sine: function(n) {
return 1 - Math.cos(n * Math.PI / 2);
},
Circ: function(n) {
return 1 - Math.sqrt(1 - n * n);
},
Elastic: function(n) {
return 0 === n || 1 === n ? n : -Math.pow(2, 8 * (n - 1)) * Math.sin((80 * (n - 1) - 7.5) * Math.PI / 15);
},
Back: function(n) {
return n * n * (3 * n - 2);
},
Bounce: function(n) {
for (var e, t = 4; n < ((e = Math.pow(2, --t)) - 1) / 11; ) ;
return 1 / Math.pow(4, 3 - t) - 7.5625 * Math.pow((3 * e - 2) / 22 - n, 2);
}
}), n.each(e, function(e, t) {
n.easing["easeIn" + e] = t, n.easing["easeOut" + e] = function(n) {
return 1 - t(1 - n);
}, n.easing["easeInOut" + e] = function(n) {
return .5 > n ? t(2 * n) / 2 : 1 - t(-2 * n + 2) / 2;
};
});
}();
}(jQuery), define("jquery-ui-effect", function() {}), function(n) {
n.effects.effect.slide = function(e, t) {
var i, a = n(this), r = [ "position", "top", "bottom", "left", "right", "width", "height" ], o = n.effects.setMode(a, e.mode || "show"), s = "show" === o, l = e.direction || "left", c = "up" === l || "down" === l ? "top" : "left", M = "up" === l || "left" === l, u = {};
n.effects.save(a, r), a.show(), i = e.distance || a["top" === c ? "outerHeight" : "outerWidth"](!0),
n.effects.createWrapper(a).css({
overflow: "hidden"
}), s && a.css(c, M ? isNaN(i) ? "-" + i : -i : i), u[c] = (s ? M ? "+=" : "-=" : M ? "-=" : "+=") + i,
a.animate(u, {
queue: !1,
duration: e.duration,
easing: e.easing,
complete: function() {
"hide" === o && a.hide(), n.effects.restore(a, r), n.effects.removeWrapper(a), t();
}
});
};
}(jQuery), define("jquery-ui-effect-slide", function() {}), function($) {
var min = Math.min, max = Math.max, round = Math.floor, isStr = function(n) {
return "string" === $.type(n);
}, runPluginCallbacks = function(Instance, a_fn) {
function g(n) {
return n;
}
if ($.isArray(a_fn)) for (var i = 0, c = a_fn.length; c > i; i++) {
var fn = a_fn[i];
try {
isStr(fn) && (fn = eval(fn)), $.isFunction(fn) && g(fn)(Instance);
} catch (ex) {}
}
};
$.layout = {
version: "1.3.rc30.79",
revision: .033007,
browser: {},
effects: {
slide: {
all: {
duration: "fast"
},
north: {
direction: "up"
},
south: {
direction: "down"
},
east: {
direction: "right"
},
west: {
direction: "left"
}
},
drop: {
all: {
duration: "slow"
},
north: {
direction: "up"
},
south: {
direction: "down"
},
east: {
direction: "right"
},
west: {
direction: "left"
}
},
scale: {
all: {
duration: "fast"
}
},
blind: {},
clip: {},
explode: {},
fade: {},
fold: {},
puff: {},
size: {
all: {
easing: "swing"
}
}
},
config: {
optionRootKeys: "effects,panes,north,south,west,east,center".split(","),
allPanes: "north,south,west,east,center".split(","),
borderPanes: "north,south,west,east".split(","),
oppositeEdge: {
north: "south",
south: "north",
east: "west",
west: "east"
},
offscreenCSS: {
left: "-99999px",
right: "auto"
},
offscreenReset: "offscreenReset",
hidden: {
visibility: "hidden"
},
visible: {
visibility: "visible"
},
resizers: {
cssReq: {
position: "absolute",
padding: 0,
margin: 0,
fontSize: "1px",
textAlign: "left",
overflow: "hidden"
},
cssDemo: {
background: "#DDD",
border: "none"
}
},
togglers: {
cssReq: {
position: "absolute",
display: "block",
padding: 0,
margin: 0,
overflow: "hidden",
textAlign: "center",
fontSize: "1px",
cursor: "pointer",
zIndex: 1
},
cssDemo: {
background: "#AAA"
}
},
content: {
cssReq: {
position: "relative"
},
cssDemo: {
overflow: "auto",
padding: "10px"
},
cssDemoPane: {
overflow: "hidden",
padding: 0
}
},
panes: {
cssReq: {
position: "absolute",
margin: 0
},
cssDemo: {
padding: "10px",
background: "#FFF",
border: "1px solid #BBB",
overflow: "auto"
}
},
north: {
side: "top",
sizeType: "Height",
dir: "horz",
cssReq: {
top: 0,
bottom: "auto",
left: 0,
right: 0,
width: "auto"
}
},
south: {
side: "bottom",
sizeType: "Height",
dir: "horz",
cssReq: {
top: "auto",
bottom: 0,
left: 0,
right: 0,
width: "auto"
}
},
east: {
side: "right",
sizeType: "Width",
dir: "vert",
cssReq: {
left: "auto",
right: 0,
top: "auto",
bottom: "auto",
height: "auto"
}
},
west: {
side: "left",
sizeType: "Width",
dir: "vert",
cssReq: {
left: 0,
right: "auto",
top: "auto",
bottom: "auto",
height: "auto"
}
},
center: {
dir: "center",
cssReq: {
left: "auto",
right: "auto",
top: "auto",
bottom: "auto",
height: "auto",
width: "auto"
}
}
},
callbacks: {},
getParentPaneElem: function(n) {
var e = $(n), t = e.data("layout") || e.data("parentLayout");
if (t) {
var i = t.container;
if (i.data("layoutPane")) return i;
var a = i.closest("." + $.layout.defaults.panes.paneClass);
if (a.data("layoutPane")) return a;
}
return null;
},
getParentPaneInstance: function(n) {
var e = $.layout.getParentPaneElem(n);
return e ? e.data("layoutPane") : null;
},
getParentLayoutInstance: function(n) {
var e = $.layout.getParentPaneElem(n);
return e ? e.data("parentLayout") : null;
},
getEventObject: function(n) {
return "object" == typeof n && n.stopPropagation ? n : null;
},
parsePaneName: function(n) {
var e = $.layout.getEventObject(n), t = n;
return e && (e.stopPropagation(), t = $(this).data("layoutEdge")), t && !/^(west|east|north|south|center)$/.test(t) && ($.layout.msg('LAYOUT ERROR - Invalid pane-name: "' + t + '"'),
t = "error"), t;
},
plugins: {
draggable: !!$.fn.draggable,
effects: {
core: !!$.effects,
slide: $.effects && ($.effects.slide || $.effects.effect && $.effects.effect.slide)
}
},
onCreate: [],
onLoad: [],
onReady: [],
onDestroy: [],
onUnload: [],
afterOpen: [],
afterClose: [],
scrollbarWidth: function() {
return window.scrollbarWidth || $.layout.getScrollbarSize("width");
},
scrollbarHeight: function() {
return window.scrollbarHeight || $.layout.getScrollbarSize("height");
},
getScrollbarSize: function(n) {
var e = $('<div style="position: absolute; top: -10000px; left: -10000px; width: 100px; height: 100px; overflow: scroll;"></div>').appendTo("body"), t = {
width: e.css("width") - e[0].clientWidth,
height: e.height() - e[0].clientHeight
};
return e.remove(), window.scrollbarWidth = t.width, window.scrollbarHeight = t.height,
n.match(/^(width|height)$/) ? t[n] : t;
},
showInvisibly: function(n, e) {
if (n && n.length && (e || "none" === n.css("display"))) {
var t = n[0].style, i = {
display: t.display || "",
visibility: t.visibility || ""
};
return n.css({
display: "block",
visibility: "hidden"
}), i;
}
return {};
},
getElementDimensions: function(n, e) {
var t, i, a, r = {
css: {},
inset: {}
}, o = r.css, s = {
bottom: 0
}, l = $.layout.cssNum, c = n.offset();
return r.offsetLeft = c.left, r.offsetTop = c.top, e || (e = {}), $.each("Left,Right,Top,Bottom".split(","), function(l, c) {
t = o["border" + c] = $.layout.borderWidth(n, c), i = o["padding" + c] = $.layout.cssNum(n, "padding" + c),
a = c.toLowerCase(), r.inset[a] = e[a] >= 0 ? e[a] : i, s[a] = r.inset[a] + t;
}), o.width = n.width(), o.height = n.height(), o.top = l(n, "top", !0), o.bottom = l(n, "bottom", !0),
o.left = l(n, "left", !0), o.right = l(n, "right", !0), r.outerWidth = n.outerWidth(),
r.outerHeight = n.outerHeight(), r.innerWidth = max(0, r.outerWidth - s.left - s.right),
r.innerHeight = max(0, r.outerHeight - s.top - s.bottom), r.layoutWidth = n.innerWidth(),
r.layoutHeight = n.innerHeight(), r;
},
getElementStyles: function(n, e) {
var t, i, a, r, o, s, l = {}, c = n[0].style, M = e.split(","), u = "Top,Bottom,Left,Right".split(","), d = "Color,Style,Width".split(",");
for (r = 0; r < M.length; r++) if (t = M[r], t.match(/(border|padding|margin)$/)) for (o = 0; 4 > o; o++) if (i = u[o],
"border" === t) for (s = 0; 3 > s; s++) a = d[s], l[t + i + a] = c[t + i + a]; else l[t + i] = c[t + i]; else l[t] = c[t];
return l;
},
cssWidth: function(n, e) {
if (0 >= e) return 0;
var t = $.layout.browser.boxModel ? $.support.boxSizing ? n.css("boxSizing") : "content-box" : "border-box", i = $.layout.borderWidth, a = $.layout.cssNum, r = e;
return "border-box" !== t && (r -= i(n, "Left") + i(n, "Right")), "content-box" === t && (r -= a(n, "paddingLeft") + a(n, "paddingRight")),
max(0, r);
},
cssHeight: function(n, e) {
if (0 >= e) return 0;
var t = $.layout.browser.boxModel ? $.support.boxSizing ? n.css("boxSizing") : "content-box" : "border-box", i = $.layout.borderWidth, a = $.layout.cssNum, r = e;
return "border-box" !== t && (r -= i(n, "Top") + i(n, "Bottom")), "content-box" === t && (r -= a(n, "paddingTop") + a(n, "paddingBottom")),
max(0, r);
},
cssNum: function(n, e, t) {
n.jquery || (n = $(n));
var i = $.layout.showInvisibly(n), a = $.css(n[0], e, !0), r = t && "auto" == a ? a : Math.round(parseFloat(a) || 0);
return n.css(i), r;
},
borderWidth: function(n, e) {
n.jquery && (n = n[0]);
var t = "border" + e.substr(0, 1).toUpperCase() + e.substr(1);
return "none" === $.css(n, t + "Style", !0) ? 0 : Math.round(parseFloat($.css(n, t + "Width", !0)) || 0);
},
isMouseOverElem: function(n, e) {
var t = $(e || this), i = t.offset(), a = i.top, r = i.left, o = r + t.outerWidth(), s = a + t.outerHeight(), l = n.pageX, c = n.pageY;
return $.layout.browser.msie && 0 > l && 0 > c || l >= r && o >= l && c >= a && s >= c;
},
msg: function(n, e, t, i) {
function a() {
var n = $.support.fixedPosition ? "fixed" : "absolute", e = $('<div id="layoutLogger" style="position: ' + n + '; top: 5px; z-index: 999999; max-width: 25%; overflow: hidden; border: 1px solid #000; border-radius: 5px; background: #FBFBFB; box-shadow: 0 2px 10px rgba(0,0,0,0.3);">' + '<div style="font-size: 13px; font-weight: bold; padding: 5px 10px; background: #F6F6F6; border-radius: 5px 5px 0 0; cursor: move;">' + '<span style="float: right; padding-left: 7px; cursor: pointer;" title="Remove Console" onclick="$(this).closest(\'#layoutLogger\').remove()">X</span>Layout console.log</div>' + '<ul style="font-size: 13px; font-weight: none; list-style: none; margin: 0; padding: 0 0 2px;"></ul>' + "</div>").appendTo("body");
return e.css("left", $(window).width() - e.outerWidth() - 5), $.ui.draggable && e.draggable({
handle: ":first-child"
}), e;
}
if ($.isPlainObject(n) && window.debugData) {
"string" == typeof e ? (i = t, t = e) : "object" == typeof t && (i = t, t = null);
var r = t || "log( <object> )", o = $.extend({
sort: !1,
returnHTML: !1,
display: !1
}, i);
e === !0 || o.display ? debugData(n, r, o) : window.console && console.log(debugData(n, r, o));
} else if (e) alert(n); else if (window.console) console.log(n); else {
var s = "#layoutLogger", l = $(s);
l.length || (l = a()), l.children("ul").append('<li style="padding: 4px 10px; margin: 0; border-top: 1px solid #CCC;">' + n.replace(/\</g, "&lt;").replace(/\>/g, "&gt;") + "</li>");
}
}
};
var u = navigator.userAgent.toLowerCase(), m = /(chrome)[ \/]([\w.]+)/.exec(u) || /(webkit)[ \/]([\w.]+)/.exec(u) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(u) || /(msie) ([\w.]+)/.exec(u) || u.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(u) || [], b = m[1] || "", v = m[2] || 0, ie = "msie" === b;
$.layout.browser = {
version: v,
safari: "webkit" === b,
webkit: "chrome" === b,
msie: ie,
isIE6: ie && 6 == v,
boxModel: !ie || $.support.boxModel !== !1
}, b && ($.layout.browser[b] = !0), ie && $(function() {
$.layout.browser.boxModel = $.support.boxModel;
}), $.layout.defaults = {
name: "",
containerClass: "ui-layout-container",
inset: null,
scrollToBookmarkOnLoad: !0,
resizeWithWindow: !0,
resizeWithWindowDelay: 200,
resizeWithWindowMaxDelay: 0,
maskPanesEarly: !1,
onresizeall_start: null,
onresizeall_end: null,
onload_start: null,
onload_end: null,
onunload_start: null,
onunload_end: null,
initPanes: !0,
showErrorMessages: !0,
showDebugMessages: !1,
zIndex: null,
zIndexes: {
pane_normal: 0,
content_mask: 1,
resizer_normal: 2,
pane_sliding: 100,
pane_animate: 1e3,
resizer_drag: 1e4
},
errors: {
pane: "pane",
selector: "selector",
addButtonError: "Error Adding Button\nInvalid ",
containerMissing: "UI Layout Initialization Error\nThe specified layout-container does not exist.",
centerPaneMissing: "UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element.",
noContainerHeight: "UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!",
callbackError: "UI Layout Callback Error\nThe EVENT callback is not a valid function."
},
panes: {
applyDemoStyles: !1,
closable: !0,
resizable: !0,
slidable: !0,
initClosed: !1,
initHidden: !1,
contentSelector: ".ui-layout-content",
contentIgnoreSelector: ".ui-layout-ignore",
findNestedContent: !1,
paneClass: "ui-layout-pane",
resizerClass: "ui-layout-resizer",
togglerClass: "ui-layout-toggler",
buttonClass: "ui-layout-button",
minSize: 0,
maxSize: 0,
spacing_open: 6,
spacing_closed: 6,
togglerLength_open: 50,
togglerLength_closed: 50,
togglerAlign_open: "center",
togglerAlign_closed: "center",
togglerContent_open: "",
togglerContent_closed: "",
resizerDblClickToggle: !0,
autoResize: !0,
autoReopen: !0,
resizerDragOpacity: 1,
maskContents: !1,
maskObjects: !1,
maskZindex: null,
resizingGrid: !1,
livePaneResizing: !1,
liveContentResizing: !1,
liveResizingTolerance: 1,
sliderCursor: "pointer",
slideTrigger_open: "click",
slideTrigger_close: "mouseleave",
slideDelay_open: 300,
slideDelay_close: 300,
hideTogglerOnSlide: !1,
preventQuickSlideClose: $.layout.browser.webkit,
preventPrematureSlideClose: !1,
tips: {
Open: "Open",
Close: "Close",
Resize: "Resize",
Slide: "Slide Open",
Pin: "Pin",
Unpin: "Un-Pin",
noRoomToOpen: "Not enough room to show this panel.",
minSizeWarning: "Panel has reached its minimum size",
maxSizeWarning: "Panel has reached its maximum size"
},
showOverflowOnHover: !1,
enableCursorHotkey: !0,
customHotkeyModifier: "SHIFT",
fxName: "slide",
fxSpeed: null,
fxSettings: {},
fxOpacityFix: !0,
animatePaneSizing: !1,
children: null,
containerSelector: "",
initChildren: !0,
destroyChildren: !0,
resizeChildren: !0,
triggerEventsOnLoad: !1,
triggerEventsDuringLiveResize: !0,
onshow_start: null,
onshow_end: null,
onhide_start: null,
onhide_end: null,
onopen_start: null,
onopen_end: null,
onclose_start: null,
onclose_end: null,
onresize_start: null,
onresize_end: null,
onsizecontent_start: null,
onsizecontent_end: null,
onswap_start: null,
onswap_end: null,
ondrag_start: null,
ondrag_end: null
},
north: {
paneSelector: ".ui-layout-north",
size: "auto",
resizerCursor: "n-resize",
customHotkey: ""
},
south: {
paneSelector: ".ui-layout-south",
size: "auto",
resizerCursor: "s-resize",
customHotkey: ""
},
east: {
paneSelector: ".ui-layout-east",
size: 200,
resizerCursor: "e-resize",
customHotkey: ""
},
west: {
paneSelector: ".ui-layout-west",
size: 200,
resizerCursor: "w-resize",
customHotkey: ""
},
center: {
paneSelector: ".ui-layout-center",
minWidth: 0,
minHeight: 0
}
}, $.layout.optionsMap = {
layout: "name,instanceKey,stateManagement,effects,inset,zIndexes,errors,zIndex,scrollToBookmarkOnLoad,showErrorMessages,maskPanesEarly,outset,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay,onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end".split(","),
center: "paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad,showOverflowOnHover,maskContents,maskObjects,liveContentResizing,containerSelector,children,initChildren,resizeChildren,destroyChildren,onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end".split(","),
noDefault: "paneSelector,resizerCursor,customHotkey".split(",")
}, $.layout.transformData = function(n, e) {
var t, i, a, r, o, s, l, c = e ? {
panes: {},
center: {}
} : {};
if ("object" != typeof n) return c;
for (i in n) for (t = c, o = n[i], a = i.split("__"), l = a.length - 1, s = 0; l >= s; s++) r = a[s],
s === l ? t[r] = $.isPlainObject(o) ? $.layout.transformData(o) : o : (t[r] || (t[r] = {}),
t = t[r]);
return c;
}, $.layout.backwardCompatibility = {
map: {
applyDefaultStyles: "applyDemoStyles",
childOptions: "children",
initChildLayout: "initChildren",
destroyChildLayout: "destroyChildren",
resizeChildLayout: "resizeChildren",
resizeNestedLayout: "resizeChildren",
resizeWhileDragging: "livePaneResizing",
resizeContentWhileDragging: "liveContentResizing",
triggerEventsWhileDragging: "triggerEventsDuringLiveResize",
maskIframesOnResize: "maskContents",
useStateCookie: "stateManagement.enabled",
"cookie.autoLoad": "stateManagement.autoLoad",
"cookie.autoSave": "stateManagement.autoSave",
"cookie.keys": "stateManagement.stateKeys",
"cookie.name": "stateManagement.cookie.name",
"cookie.domain": "stateManagement.cookie.domain",
"cookie.path": "stateManagement.cookie.path",
"cookie.expires": "stateManagement.cookie.expires",
"cookie.secure": "stateManagement.cookie.secure",
noRoomToOpenTip: "tips.noRoomToOpen",
togglerTip_open: "tips.Close",
togglerTip_closed: "tips.Open",
resizerTip: "tips.Resize",
sliderTip: "tips.Slide"
},
renameOptions: function(n) {
function e(e, t) {
for (var i, a = e.split("."), r = a.length - 1, o = {
branch: n,
key: a[r]
}, s = 0; r > s; s++) i = a[s], o.branch = void 0 == o.branch[i] ? t ? o.branch[i] = {} : {} : o.branch[i];
return o;
}
var t, i, a, r = $.layout.backwardCompatibility.map;
for (var o in r) t = e(o), a = t.branch[t.key], void 0 !== a && (i = e(r[o], !0),
i.branch[i.key] = a, delete t.branch[t.key]);
},
renameAllOptions: function(n) {
var e = $.layout.backwardCompatibility.renameOptions;
return e(n), n.defaults && ("object" != typeof n.panes && (n.panes = {}), $.extend(!0, n.panes, n.defaults),
delete n.defaults), n.panes && e(n.panes), $.each($.layout.config.allPanes, function(t, i) {
n[i] && e(n[i]);
}), n;
}
}, $.fn.layout = function(opts) {
function keyDown(n) {
if (!n) return !0;
var e = n.keyCode;
if (33 > e) return !0;
var t, i, a, r, o = {
38: "north",
40: "south",
37: "west",
39: "east"
}, s = (n.altKey, n.shiftKey), l = n.ctrlKey, c = l && e >= 37 && 40 >= e;
return c && options[o[e]].enableCursorHotkey ? r = o[e] : (l || s) && $.each(_c.borderPanes, function(n, o) {
return t = options[o], i = t.customHotkey, a = t.customHotkeyModifier, (s && "SHIFT" == a || l && "CTRL" == a || l && s) && i && e === (isNaN(i) || 9 >= i ? i.toUpperCase().charCodeAt(0) : i) ? (r = o,
!1) : void 0;
}), r && $Ps[r] && options[r].closable && !state[r].isHidden ? (toggle(r), n.stopPropagation(),
n.returnValue = !1, !1) : !0;
}
function allowOverflow(n) {
if (isInitialized()) {
this && this.tagName && (n = this);
var e;
if (isStr(n) ? e = $Ps[n] : $(n).data("layoutRole") ? e = $(n) : $(n).parents().each(function() {
return $(this).data("layoutRole") ? (e = $(this), !1) : void 0;
}), e && e.length) {
var t = e.data("layoutEdge"), i = state[t];
if (i.cssSaved && resetOverflow(t), i.isSliding || i.isResizing || i.isClosed) return i.cssSaved = !1,
void 0;
var a = {
zIndex: options.zIndexes.resizer_normal + 1
}, r = {}, o = e.css("overflow"), s = e.css("overflowX"), l = e.css("overflowY");
"visible" != o && (r.overflow = o, a.overflow = "visible"), s && !s.match(/(visible|auto)/) && (r.overflowX = s,
a.overflowX = "visible"), l && !l.match(/(visible|auto)/) && (r.overflowY = s, a.overflowY = "visible"),
i.cssSaved = r, e.css(a), $.each(_c.allPanes, function(n, e) {
e != t && resetOverflow(e);
});
}
}
}
function resetOverflow(n) {
if (isInitialized()) {
this && this.tagName && (n = this);
var e;
if (isStr(n) ? e = $Ps[n] : $(n).data("layoutRole") ? e = $(n) : $(n).parents().each(function() {
return $(this).data("layoutRole") ? (e = $(this), !1) : void 0;
}), e && e.length) {
var t = e.data("layoutEdge"), i = state[t], a = i.cssSaved || {};
i.isSliding || i.isResizing || e.css("zIndex", options.zIndexes.pane_normal), e.css(a),
i.cssSaved = !1;
}
}
}
var browser = $.layout.browser, _c = $.layout.config, cssW = $.layout.cssWidth, cssH = $.layout.cssHeight, elDims = $.layout.getElementDimensions, styles = $.layout.getElementStyles, evtObj = $.layout.getEventObject, evtPane = $.layout.parsePaneName, options = $.extend(!0, {}, $.layout.defaults), effects = options.effects = $.extend(!0, {}, $.layout.effects), state = {
id: "layout" + $.now(),
initialized: !1,
paneResizing: !1,
panesSliding: {},
container: {
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0,
layoutWidth: 0,
layoutHeight: 0
},
north: {
childIdx: 0
},
south: {
childIdx: 0
},
east: {
childIdx: 0
},
west: {
childIdx: 0
},
center: {
childIdx: 0
}
}, children = {
north: null,
south: null,
east: null,
west: null,
center: null
}, timer = {
data: {},
set: function(n, e, t) {
timer.clear(n), timer.data[n] = setTimeout(e, t);
},
clear: function(n) {
var e = timer.data;
e[n] && (clearTimeout(e[n]), delete e[n]);
}
}, _log = function(n, e, t) {
var i = options;
return (i.showErrorMessages && !t || t && i.showDebugMessages) && $.layout.msg(i.name + " / " + n, e !== !1),
!1;
}, _runCallbacks = function(evtName, pane, skipBoundEvents) {
function g(n) {
return n;
}
var hasPane = pane && isStr(pane), s = hasPane ? state[pane] : state, o = hasPane ? options[pane] : options, lName = options.name, lng = evtName + (evtName.match(/_/) ? "" : "_end"), shrt = lng.match(/_end$/) ? lng.substr(0, lng.length - 4) : "", fn = o[lng] || o[shrt], retVal = "NC", args = [], $P;
if (hasPane || "boolean" !== $.type(pane) || (skipBoundEvents = pane, pane = ""),
fn) try {
isStr(fn) && (fn.match(/,/) ? (args = fn.split(","), fn = eval(args[0])) : fn = eval(fn)),
$.isFunction(fn) && (retVal = args.length ? g(fn)(args[1]) : hasPane ? g(fn)(pane, $Ps[pane], s, o, lName) : g(fn)(Instance, s, o, lName));
} catch (ex) {
_log(options.errors.callbackError.replace(/EVENT/, $.trim((pane || "") + " " + lng)), !1),
"string" === $.type(ex) && string.length && _log("Exception: " + ex, !1);
}
return skipBoundEvents || retVal === !1 || (hasPane ? ($P = $Ps[pane], o = options[pane],
s = state[pane], $P.triggerHandler("layoutpane" + lng, [ pane, $P, s, o, lName ]),
shrt && $P.triggerHandler("layoutpane" + shrt, [ pane, $P, s, o, lName ])) : ($N.triggerHandler("layout" + lng, [ Instance, s, o, lName ]),
shrt && $N.triggerHandler("layout" + shrt, [ Instance, s, o, lName ]))), hasPane && "onresize_end" === evtName && resizeChildren(pane + "", !0),
retVal;
}, _fixIframe = function(n) {
if (!browser.mozilla) {
var e = $Ps[n];
"IFRAME" === state[n].tagName ? e.css(_c.hidden).css(_c.visible) : e.find("IFRAME").css(_c.hidden).css(_c.visible);
}
}, cssSize = function(n, e) {
var t = "horz" == _c[n].dir ? cssH : cssW;
return t($Ps[n], e);
}, cssMinDims = function(n) {
var e = $Ps[n], t = _c[n].dir, i = {
minWidth: 1001 - cssW(e, 1e3),
minHeight: 1001 - cssH(e, 1e3)
};
return "horz" === t && (i.minSize = i.minHeight), "vert" === t && (i.minSize = i.minWidth),
i;
}, setOuterWidth = function(n, e, t) {
var i, a = n;
isStr(n) ? a = $Ps[n] : n.jquery || (a = $(n)), i = cssW(a, e), a.css({
width: i
}), i > 0 ? t && a.data("autoHidden") && a.innerHeight() > 0 && (a.show().data("autoHidden", !1),
browser.mozilla || a.css(_c.hidden).css(_c.visible)) : t && !a.data("autoHidden") && a.hide().data("autoHidden", !0);
}, setOuterHeight = function(n, e, t) {
var i, a = n;
isStr(n) ? a = $Ps[n] : n.jquery || (a = $(n)), i = cssH(a, e), a.css({
height: i,
visibility: "visible"
}), i > 0 && a.innerWidth() > 0 ? t && a.data("autoHidden") && (a.show().data("autoHidden", !1),
browser.mozilla || a.css(_c.hidden).css(_c.visible)) : t && !a.data("autoHidden") && a.hide().data("autoHidden", !0);
}, _parseSize = function(n, e, t) {
if (t || (t = _c[n].dir), isStr(e) && e.match(/%/) && (e = "100%" === e ? -1 : parseInt(e, 10) / 100),
0 === e) return 0;
if (e >= 1) return parseInt(e, 10);
var i = options, a = 0;
if ("horz" == t ? a = sC.innerHeight - ($Ps.north ? i.north.spacing_open : 0) - ($Ps.south ? i.south.spacing_open : 0) : "vert" == t && (a = sC.innerWidth - ($Ps.west ? i.west.spacing_open : 0) - ($Ps.east ? i.east.spacing_open : 0)),
-1 === e) return a;
if (e > 0) return round(a * e);
if ("center" == n) return 0;
var r = "horz" === t ? "height" : "width", o = $Ps[n], s = "height" === r ? $Cs[n] : !1, l = $.layout.showInvisibly(o), c = o.css(r), M = s ? s.css(r) : 0;
return o.css(r, "auto"), s && s.css(r, "auto"), e = "height" === r ? o.outerHeight() : o.outerWidth(),
o.css(r, c).css(l), s && s.css(r, M), e;
}, getPaneSize = function(n, e) {
var t = $Ps[n], i = options[n], a = state[n], r = e ? i.spacing_open : 0, o = e ? i.spacing_closed : 0;
return !t || a.isHidden ? 0 : a.isClosed || a.isSliding && e ? o : "horz" === _c[n].dir ? t.outerHeight() + r : t.outerWidth() + r;
}, setSizeLimits = function(n, e) {
if (isInitialized()) {
var t = options[n], i = state[n], a = _c[n], r = a.dir, o = (a.sizeType.toLowerCase(),
void 0 != e ? e : i.isSliding), s = ($Ps[n], t.spacing_open), l = _c.oppositeEdge[n], c = state[l], M = $Ps[l], u = !M || c.isVisible === !1 || c.isSliding ? 0 : "horz" == r ? M.outerHeight() : M.outerWidth(), d = (!M || c.isHidden ? 0 : options[l][c.isClosed !== !1 ? "spacing_closed" : "spacing_open"]) || 0, h = "horz" == r ? sC.innerHeight : sC.innerWidth, S = cssMinDims("center"), p = "horz" == r ? max(options.center.minHeight, S.minHeight) : max(options.center.minWidth, S.minWidth), m = h - s - (o ? 0 : _parseSize("center", p, r) + u + d), g = i.minSize = max(_parseSize(n, t.minSize), cssMinDims(n).minSize), f = i.maxSize = min(t.maxSize ? _parseSize(n, t.maxSize) : 1e5, m), b = i.resizerPosition = {}, y = sC.inset.top, v = sC.inset.left, D = sC.innerWidth, w = sC.innerHeight, G = t.spacing_open;
switch (n) {
case "north":
b.min = y + g, b.max = y + f;
break;
case "west":
b.min = v + g, b.max = v + f;
break;
case "south":
b.min = y + w - f - G, b.max = y + w - g - G;
break;
case "east":
b.min = v + D - f - G, b.max = v + D - g - G;
}
}
}, calcNewCenterPaneDims = function() {
var n = {
top: getPaneSize("north", !0),
bottom: getPaneSize("south", !0),
left: getPaneSize("west", !0),
right: getPaneSize("east", !0),
width: 0,
height: 0
};
return n.width = sC.innerWidth - n.left - n.right, n.height = sC.innerHeight - n.bottom - n.top,
n.top += sC.inset.top, n.bottom += sC.inset.bottom, n.left += sC.inset.left, n.right += sC.inset.right,
n;
}, getHoverClasses = function(n, e) {
var t = $(n), i = t.data("layoutRole"), a = t.data("layoutEdge"), r = options[a], o = r[i + "Class"], s = "-" + a, l = "-open", c = "-closed", M = "-sliding", u = "-hover ", d = t.hasClass(o + c) ? c : l, h = d === c ? l : c, S = o + u + (o + s + u) + (o + d + u) + (o + s + d + u);
return e && (S += o + h + u + (o + s + h + u)), "resizer" == i && t.hasClass(o + M) && (S += o + M + u + (o + s + M + u)),
$.trim(S);
}, addHover = function(n, e) {
var t = $(e || this);
n && "toggler" === t.data("layoutRole") && n.stopPropagation(), t.addClass(getHoverClasses(t));
}, removeHover = function(n, e) {
var t = $(e || this);
t.removeClass(getHoverClasses(t, !0));
}, onResizerEnter = function() {
var n = $(this).data("layoutEdge"), e = state[n];
e.isClosed || e.isResizing || state.paneResizing || ($.fn.disableSelection && $("body").disableSelection(),
options.maskPanesEarly && showMasks(n, {
resizing: !0
}));
}, onResizerLeave = function(n, e) {
var t = e || this, i = $(t).data("layoutEdge"), a = i + "ResizerLeave";
timer.clear(i + "_openSlider"), timer.clear(a), e ? state.paneResizing || ($.fn.enableSelection && $("body").enableSelection(),
options.maskPanesEarly && hideMasks()) : timer.set(a, function() {
onResizerLeave(n, t);
}, 200);
}, _create = function() {
initOptions();
var n = options, e = state;
return e.creatingLayout = !0, runPluginCallbacks(Instance, $.layout.onCreate), !1 === _runCallbacks("onload_start") ? "cancel" : (_initContainer(),
initHotkeys(), $(window).bind("unload." + sID, unload), runPluginCallbacks(Instance, $.layout.onLoad),
n.initPanes && _initLayoutElements(), delete e.creatingLayout, state.initialized);
}, isInitialized = function() {
return state.initialized || state.creatingLayout ? !0 : _initLayoutElements();
}, _initLayoutElements = function(n) {
var e = options;
if (!$N.is(":visible")) return !n && browser.webkit && "BODY" === $N[0].tagName && setTimeout(function() {
_initLayoutElements(!0);
}, 50), !1;
if (!getPane("center").length) return _log(e.errors.centerPaneMissing);
if (state.creatingLayout = !0, $.extend(sC, elDims($N, e.inset)), initPanes(), e.scrollToBookmarkOnLoad) {
var t = self.location;
t.hash && t.replace(t.hash);
}
return Instance.hasParentLayout ? e.resizeWithWindow = !1 : e.resizeWithWindow && $(window).bind("resize." + sID, windowResize),
delete state.creatingLayout, state.initialized = !0, runPluginCallbacks(Instance, $.layout.onReady),
_runCallbacks("onload_end"), !0;
}, createChildren = function(n, e) {
var t = evtPane.call(this, n), i = $Ps[t];
if (i) {
var a = $Cs[t], r = state[t], o = options[t], s = options.stateManagement || {}, l = e ? o.children = e : o.children;
if ($.isPlainObject(l)) l = [ l ]; else if (!l || !$.isArray(l)) return;
$.each(l, function(n, e) {
if ($.isPlainObject(e)) {
var o = e.containerSelector ? i.find(e.containerSelector) : a || i;
o.each(function() {
var n = $(this), i = n.data("layout");
if (!i) {
if (setInstanceKey({
container: n,
options: e
}, r), s.includeChildren && state.stateData[t]) {
var a = state.stateData[t].children || {}, o = a[e.instanceKey], l = e.stateManagement || (e.stateManagement = {
autoLoad: !0
});
l.autoLoad === !0 && o && (l.autoSave = !1, l.includeChildren = !0, l.autoLoad = $.extend(!0, {}, o));
}
i = n.layout(e), i && refreshChildren(t, i);
}
});
}
});
}
}, setInstanceKey = function(n, e) {
var t = n.container, i = n.options, a = i.stateManagement, r = i.instanceKey || t.data("layoutInstanceKey");
return r || (r = (a && a.cookie ? a.cookie.name : "") || i.name), r = r ? r.replace(/[^\w-]/gi, "_").replace(/_{2,}/g, "_") : "layout" + ++e.childIdx,
i.instanceKey = r, t.data("layoutInstanceKey", r), r;
}, refreshChildren = function(n, e) {
var t, i = $Ps[n], a = children[n], r = state[n];
$.isPlainObject(a) && ($.each(a, function(n, e) {
e.destroyed && delete a[n];
}), $.isEmptyObject(a) && (a = children[n] = null)), e || a || (e = i.data("layout")),
e && (e.hasParentLayout = !0, t = e.options, setInstanceKey(e, r), a || (a = children[n] = {}),
a[t.instanceKey] = e.container.data("layout")), Instance[n].children = children[n],
e || createChildren(n);
}, windowResize = function() {
var n = options, e = Number(n.resizeWithWindowDelay);
10 > e && (e = 100), timer.clear("winResize"), timer.set("winResize", function() {
timer.clear("winResize"), timer.clear("winResizeRepeater");
var e = elDims($N, n.inset);
(e.innerWidth !== sC.innerWidth || e.innerHeight !== sC.innerHeight) && resizeAll();
}, e), timer.data.winResizeRepeater || setWindowResizeRepeater();
}, setWindowResizeRepeater = function() {
var n = Number(options.resizeWithWindowMaxDelay);
n > 0 && timer.set("winResizeRepeater", function() {
setWindowResizeRepeater(), resizeAll();
}, n);
}, unload = function() {
_runCallbacks("onunload_start"), runPluginCallbacks(Instance, $.layout.onUnload),
_runCallbacks("onunload_end");
}, _initContainer = function() {
var n, e, t = $N[0], i = $("html"), a = sC.tagName = t.tagName, r = sC.id = t.id, o = sC.className = t.className, s = options, l = s.name, c = "position,margin,padding,border", M = "layoutCSS", u = {}, d = "hidden", h = $N.data("parentLayout"), S = $N.data("layoutEdge"), p = h && S, m = $.layout.cssNum;
sC.selector = $N.selector.split(".slice")[0], sC.ref = (s.name ? s.name + " layout / " : "") + a + (r ? "#" + r : o ? ".[" + o + "]" : ""),
sC.isBody = "BODY" === a, p || sC.isBody || (n = $N.closest("." + $.layout.defaults.panes.paneClass),
h = n.data("parentLayout"), S = n.data("layoutEdge"), p = h && S), $N.data({
layout: Instance,
layoutContainer: sID
}).addClass(s.containerClass);
var g = {
destroy: "",
initPanes: "",
resizeAll: "resizeAll",
resize: "resizeAll"
};
for (l in g) $N.bind("layout" + l.toLowerCase() + "." + sID, Instance[g[l] || l]);
p && (Instance.hasParentLayout = !0, h.refreshChildren(S, Instance)), $N.data(M) || (sC.isBody ? ($N.data(M, $.extend(styles($N, c), {
height: $N.css("height"),
overflow: $N.css("overflow"),
overflowX: $N.css("overflowX"),
overflowY: $N.css("overflowY")
})), i.data(M, $.extend(styles(i, "padding"), {
height: "auto",
overflow: i.css("overflow"),
overflowX: i.css("overflowX"),
overflowY: i.css("overflowY")
}))) : $N.data(M, styles($N, c + ",top,bottom,left,right,width,height,overflow,overflowX,overflowY")));
try {
if (u = {
overflow: d,
overflowX: d,
overflowY: d
}, $N.css(u), s.inset && !$.isPlainObject(s.inset) && (e = parseInt(s.inset, 10) || 0,
s.inset = {
top: e,
bottom: e,
left: e,
right: e
}), sC.isBody) s.outset ? $.isPlainObject(s.outset) || (e = parseInt(s.outset, 10) || 0,
s.outset = {
top: e,
bottom: e,
left: e,
right: e
}) : s.outset = {
top: m(i, "paddingTop"),
bottom: m(i, "paddingBottom"),
left: m(i, "paddingLeft"),
right: m(i, "paddingRight")
}, i.css(u).css({
height: "100%",
border: "none",
padding: 0,
margin: 0
}), browser.isIE6 ? ($N.css({
width: "100%",
height: "100%",
border: "none",
padding: 0,
margin: 0,
position: "relative"
}), s.inset || (s.inset = elDims($N).inset)) : ($N.css({
width: "auto",
height: "auto",
margin: 0,
position: "absolute"
}), $N.css(s.outset)), $.extend(sC, elDims($N, s.inset)); else {
var f = $N.css("position");
f && f.match(/(fixed|absolute|relative)/) || $N.css("position", "relative"), $N.is(":visible") && ($.extend(sC, elDims($N, s.inset)),
sC.innerHeight < 1 && _log(s.errors.noContainerHeight.replace(/CONTAINER/, sC.ref)));
}
m($N, "minWidth") && $N.parent().css("overflowX", "auto"), m($N, "minHeight") && $N.parent().css("overflowY", "auto");
} catch (b) {}
}, initHotkeys = function(n) {
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, e) {
var t = options[e];
return t.enableCursorHotkey || t.customHotkey ? ($(document).bind("keydown." + sID, keyDown),
!1) : void 0;
});
}, initOptions = function() {
function n(n) {
var e = options[n], t = options.panes;
e.fxSettings || (e.fxSettings = {}), t.fxSettings || (t.fxSettings = {}), $.each([ "_open", "_close", "_size" ], function(i, a) {
var r = "fxName" + a, o = "fxSpeed" + a, s = "fxSettings" + a, l = e[r] = e[r] || t[r] || e.fxName || t.fxName || "none", c = $.effects && ($.effects[l] || $.effects.effect && $.effects.effect[l]);
"none" !== l && options.effects[l] && c || (l = e[r] = "none");
var M = options.effects[l] || {}, u = M.all || null, d = M[n] || null;
e[o] = e[o] || t[o] || e.fxSpeed || t.fxSpeed || null, e[s] = $.extend(!0, {}, u, d, t.fxSettings, e.fxSettings, t[s], e[s]);
}), delete e.fxName, delete e.fxSpeed, delete e.fxSettings;
}
var e, t, i, a, r, o, s;
if (opts = $.layout.transformData(opts, !0), opts = $.layout.backwardCompatibility.renameAllOptions(opts),
!$.isEmptyObject(opts.panes)) {
for (e = $.layout.optionsMap.noDefault, r = 0, o = e.length; o > r; r++) i = e[r],
delete opts.panes[i];
for (e = $.layout.optionsMap.layout, r = 0, o = e.length; o > r; r++) i = e[r],
delete opts.panes[i];
}
e = $.layout.optionsMap.layout;
var l = $.layout.config.optionRootKeys;
for (i in opts) a = opts[i], $.inArray(i, l) < 0 && $.inArray(i, e) < 0 && (opts.panes[i] || (opts.panes[i] = $.isPlainObject(a) ? $.extend(!0, {}, a) : a),
delete opts[i]);
$.extend(!0, options, opts), $.each(_c.allPanes, function(a, r) {
if (_c[r] = $.extend(!0, {}, _c.panes, _c[r]), t = options.panes, s = options[r],
"center" === r) for (e = $.layout.optionsMap.center, a = 0, o = e.length; o > a; a++) i = e[a],
opts.center[i] || !opts.panes[i] && s[i] || (s[i] = t[i]); else s = options[r] = $.extend(!0, {}, t, s),
n(r), s.resizerClass || (s.resizerClass = "ui-layout-resizer"), s.togglerClass || (s.togglerClass = "ui-layout-toggler");
s.paneClass || (s.paneClass = "ui-layout-pane");
});
var c = opts.zIndex, M = options.zIndexes;
c > 0 && (M.pane_normal = c, M.content_mask = max(c + 1, M.content_mask), M.resizer_normal = max(c + 2, M.resizer_normal)),
delete options.panes;
}, getPane = function(n) {
var e = options[n].paneSelector;
if ("#" === e.substr(0, 1)) return $N.find(e).eq(0);
var t = $N.children(e).eq(0);
return t.length ? t : $N.children("form:first").children(e).eq(0);
}, initPanes = function(n) {
evtPane(n), $.each(_c.allPanes, function(n, e) {
addPane(e, !0);
}), initHandles(), $.each(_c.borderPanes, function(n, e) {
$Ps[e] && state[e].isVisible && (setSizeLimits(e), makePaneFit(e));
}), sizeMidPanes("center"), $.each(_c.allPanes, function(n, e) {
afterInitPane(e);
});
}, addPane = function(n, e) {
if (e || isInitialized()) {
var t, i, a, r = options[n], o = state[n], s = _c[n], l = s.dir, c = (o.fx, r.spacing_open || 0,
"center" === n), M = {}, u = $Ps[n];
if (u ? removePane(n, !1, !0, !1) : $Cs[n] = !1, u = $Ps[n] = getPane(n), !u.length) return $Ps[n] = !1,
void 0;
if (!u.data("layoutCSS")) {
var d = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border";
u.data("layoutCSS", styles(u, d));
}
Instance[n] = {
name: n,
pane: $Ps[n],
content: $Cs[n],
options: options[n],
state: state[n],
children: children[n]
}, u.data({
parentLayout: Instance,
layoutPane: Instance[n],
layoutEdge: n,
layoutRole: "pane"
}).css(s.cssReq).css("zIndex", options.zIndexes.pane_normal).css(r.applyDemoStyles ? s.cssDemo : {}).addClass(r.paneClass + " " + r.paneClass + "-" + n).bind("mouseenter." + sID, addHover).bind("mouseleave." + sID, removeHover);
var h, S = {
hide: "",
show: "",
toggle: "",
close: "",
open: "",
slideOpen: "",
slideClose: "",
slideToggle: "",
size: "sizePane",
sizePane: "sizePane",
sizeContent: "",
sizeHandles: "",
enableClosable: "",
disableClosable: "",
enableSlideable: "",
disableSlideable: "",
enableResizable: "",
disableResizable: "",
swapPanes: "swapPanes",
swap: "swapPanes",
move: "swapPanes",
removePane: "removePane",
remove: "removePane",
createChildren: "",
resizeChildren: "",
resizeAll: "resizeAll",
resizeLayout: "resizeAll"
};
for (h in S) u.bind("layoutpane" + h.toLowerCase() + "." + sID, Instance[S[h] || h]);
initContent(n, !1), c || (t = o.size = _parseSize(n, r.size), i = _parseSize(n, r.minSize) || 1,
a = _parseSize(n, r.maxSize) || 1e5, t > 0 && (t = max(min(t, a), i)), o.autoResize = r.autoResize,
o.isClosed = !1, o.isSliding = !1, o.isResizing = !1, o.isHidden = !1, o.pins || (o.pins = [])),
o.tagName = u[0].tagName, o.edge = n, o.noRoom = !1, o.isVisible = !0, setPanePosition(n),
"horz" === l ? M.height = cssH(u, t) : "vert" === l && (M.width = cssW(u, t)), u.css(M),
"horz" != l && sizeMidPanes(n, !0), state.initialized && (initHandles(n), initHotkeys(n)),
r.initClosed && r.closable && !r.initHidden ? close(n, !0, !0) : r.initHidden || r.initClosed ? hide(n) : o.noRoom || u.css("display", "block"),
u.css("visibility", "visible"), r.showOverflowOnHover && u.hover(allowOverflow, resetOverflow),
state.initialized && afterInitPane(n);
}
}, afterInitPane = function(n) {
var e = $Ps[n], t = state[n], i = options[n];
e && (e.data("layout") && refreshChildren(n, e.data("layout")), t.isVisible && (state.initialized ? resizeAll() : sizeContent(n),
i.triggerEventsOnLoad ? _runCallbacks("onresize_end", n) : resizeChildren(n, !0)),
i.initChildren && i.children && createChildren(n));
}, setPanePosition = function(n) {
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, e) {
var t = $Ps[e], i = $Rs[e], a = (options[e], state[e]), r = _c[e].side, o = {};
if (t) {
switch (e) {
case "north":
o.top = sC.inset.top, o.left = sC.inset.left, o.right = sC.inset.right;
break;
case "south":
o.bottom = sC.inset.bottom, o.left = sC.inset.left, o.right = sC.inset.right;
break;
case "west":
o.left = sC.inset.left;
break;
case "east":
o.right = sC.inset.right;
break;
case "center": }
t.css(o), i && a.isClosed ? i.css(r, sC.inset[r]) : i && !a.isHidden && i.css(r, sC.inset[r] + getPaneSize(e));
}
});
}, initHandles = function(n) {
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, e) {
var t = $Ps[e];
if ($Rs[e] = !1, $Ts[e] = !1, t) {
var i = options[e], a = state[e], r = (_c[e], "#" === i.paneSelector.substr(0, 1) ? i.paneSelector.substr(1) : ""), o = i.resizerClass, s = i.togglerClass, l = (a.isVisible ? i.spacing_open : i.spacing_closed,
"-" + e), c = (a.isVisible ? "-open" : "-closed", Instance[e]), M = c.resizer = $Rs[e] = $("<div></div>"), u = c.toggler = i.closable ? $Ts[e] = $("<div></div>") : !1;
!a.isVisible && i.slidable && M.attr("title", i.tips.Slide).css("cursor", i.sliderCursor),
M.attr("id", r ? r + "-resizer" : "").data({
parentLayout: Instance,
layoutPane: Instance[e],
layoutEdge: e,
layoutRole: "resizer"
}).css(_c.resizers.cssReq).css("zIndex", options.zIndexes.resizer_normal).css(i.applyDemoStyles ? _c.resizers.cssDemo : {}).addClass(o + " " + o + l).hover(addHover, removeHover).hover(onResizerEnter, onResizerLeave).appendTo($N),
i.resizerDblClickToggle && M.bind("dblclick." + sID, toggle), u && (u.attr("id", r ? r + "-toggler" : "").data({
parentLayout: Instance,
layoutPane: Instance[e],
layoutEdge: e,
layoutRole: "toggler"
}).css(_c.togglers.cssReq).css(i.applyDemoStyles ? _c.togglers.cssDemo : {}).addClass(s + " " + s + l).hover(addHover, removeHover).bind("mouseenter", onResizerEnter).appendTo(M),
i.togglerContent_open && $("<span>" + i.togglerContent_open + "</span>").data({
layoutEdge: e,
layoutRole: "togglerContent"
}).data("layoutRole", "togglerContent").data("layoutEdge", e).addClass("content content-open").css("display", "none").appendTo(u),
i.togglerContent_closed && $("<span>" + i.togglerContent_closed + "</span>").data({
layoutEdge: e,
layoutRole: "togglerContent"
}).addClass("content content-closed").css("display", "none").appendTo(u), enableClosable(e)),
initResizable(e), a.isVisible ? setAsOpen(e) : (setAsClosed(e), bindStartSlidingEvents(e, !0));
}
}), sizeHandles();
}, initContent = function(n, e) {
if (isInitialized()) {
var t, i = options[n], a = i.contentSelector, r = Instance[n], o = $Ps[n];
a && (t = r.content = $Cs[n] = i.findNestedContent ? o.find(a).eq(0) : o.children(a).eq(0)),
t && t.length ? (t.data("layoutRole", "content"), t.data("layoutCSS") || t.data("layoutCSS", styles(t, "height")),
t.css(_c.content.cssReq), i.applyDemoStyles && (t.css(_c.content.cssDemo), o.css(_c.content.cssDemoPane)),
o.css("overflowX").match(/(scroll|auto)/) && o.css("overflow", "hidden"), state[n].content = {},
e !== !1 && sizeContent(n)) : r.content = $Cs[n] = !1;
}
}, initResizable = function(n) {
var e = $.layout.plugins.draggable;
n = n ? n.split(",") : _c.borderPanes, $.each(n, function(n, i) {
var a = options[i];
if (!e || !$Ps[i] || !a.resizable) return a.resizable = !1, !0;
var r, o, s = state[i], l = options.zIndexes, c = _c[i], M = "horz" == c.dir ? "top" : "left", u = ($Ps[i],
$Rs[i]), d = a.resizerClass, h = 0, S = d + "-drag", p = d + "-" + i + "-drag", m = d + "-dragging", g = d + "-" + i + "-dragging", f = d + "-dragging-limit", b = d + "-" + i + "-dragging-limit", y = !1;
s.isClosed || u.attr("title", a.tips.Resize).css("cursor", a.resizerCursor), u.draggable({
containment: $N[0],
axis: "horz" == c.dir ? "y" : "x",
delay: 0,
distance: 1,
grid: a.resizingGrid,
helper: "clone",
opacity: a.resizerDragOpacity,
addClasses: !1,
zIndex: l.resizer_drag,
start: function(n, e) {
return a = options[i], s = state[i], o = a.livePaneResizing, !1 === _runCallbacks("ondrag_start", i) ? !1 : (s.isResizing = !0,
state.paneResizing = i, timer.clear(i + "_closeSlider"), setSizeLimits(i), r = s.resizerPosition,
h = e.position[M], u.addClass(S + " " + p), y = !1, $("body").disableSelection(),
showMasks(i, {
resizing: !0
}), void 0);
},
drag: function(n, e) {
y || (e.helper.addClass(m + " " + g).css({
right: "auto",
bottom: "auto"
}).children().css("visibility", "hidden"), y = !0, s.isSliding && $Ps[i].css("zIndex", l.pane_sliding));
var c = 0;
e.position[M] < r.min ? (e.position[M] = r.min, c = -1) : e.position[M] > r.max && (e.position[M] = r.max,
c = 1), c ? (e.helper.addClass(f + " " + b), window.defaultStatus = c > 0 && i.match(/(north|west)/) || 0 > c && i.match(/(south|east)/) ? a.tips.maxSizeWarning : a.tips.minSizeWarning) : (e.helper.removeClass(f + " " + b),
window.defaultStatus = ""), o && Math.abs(e.position[M] - h) >= a.liveResizingTolerance && (h = e.position[M],
t(n, e, i));
},
stop: function(n, e) {
$("body").enableSelection(), window.defaultStatus = "", u.removeClass(S + " " + p),
s.isResizing = !1, state.paneResizing = !1, t(n, e, i, !0);
}
});
});
var t = function(n, e, t, i) {
var a, r = e.position, o = _c[t], s = options[t], l = state[t];
switch (t) {
case "north":
a = r.top;
break;
case "west":
a = r.left;
break;
case "south":
a = sC.layoutHeight - r.top - s.spacing_open;
break;
case "east":
a = sC.layoutWidth - r.left - s.spacing_open;
}
var c = a - sC.inset[o.side];
if (i) !1 !== _runCallbacks("ondrag_end", t) && manualSizePane(t, c, !1, !0), hideMasks(!0),
l.isSliding && showMasks(t, {
resizing: !0
}); else {
if (Math.abs(c - l.size) < s.liveResizingTolerance) return;
manualSizePane(t, c, !1, !0), sizeMasks();
}
};
}, sizeMask = function() {
var n = $(this), e = n.data("layoutMask"), t = state[e];
"IFRAME" == t.tagName && t.isVisible && n.css({
top: t.offsetTop,
left: t.offsetLeft,
width: t.outerWidth,
height: t.outerHeight
});
}, sizeMasks = function() {
$Ms.each(sizeMask);
}, showMasks = function(n, e) {
var t, i, a = _c[n], r = [ "center" ], o = options.zIndexes, s = $.extend({
objectsOnly: !1,
animation: !1,
resizing: !0,
sliding: state[n].isSliding
}, e);
s.resizing && r.push(n), s.sliding && r.push(_c.oppositeEdge[n]), "horz" === a.dir && (r.push("west"),
r.push("east")), $.each(r, function(n, e) {
i = state[e], t = options[e], i.isVisible && (t.maskObjects || !s.objectsOnly && t.maskContents) && getMasks(e).each(function() {
sizeMask.call(this), this.style.zIndex = i.isSliding ? o.pane_sliding + 1 : o.pane_normal + 1,
this.style.display = "block";
});
});
}, hideMasks = function(n) {
if (n || !state.paneResizing) $Ms.hide(); else if (!n && !$.isEmptyObject(state.panesSliding)) for (var e, t, i = $Ms.length - 1; i >= 0; i--) t = $Ms.eq(i),
e = t.data("layoutMask"), options[e].maskObjects || t.hide();
}, getMasks = function(n) {
for (var e, t = $([]), i = 0, a = $Ms.length; a > i; i++) e = $Ms.eq(i), e.data("layoutMask") === n && (t = t.add(e));
return t.length ? t : createMasks(n);
}, createMasks = function(n) {
var e, t, i, a, r, o = $Ps[n], s = state[n], l = options[n], c = options.zIndexes, M = $([]);
if (!l.maskContents && !l.maskObjects) return M;
for (r = 0; r < (l.maskObjects ? 2 : 1); r++) e = l.maskObjects && 0 == r, t = document.createElement(e ? "iframe" : "div"),
i = $(t).data("layoutMask", n), t.className = "ui-layout-mask ui-layout-mask-" + n,
a = t.style, a.display = "block", a.position = "absolute", a.background = "#FFF",
e && (t.frameborder = 0, t.src = "about:blank", a.opacity = 0, a.filter = "Alpha(Opacity='0')",
a.border = 0), "IFRAME" == s.tagName ? (a.zIndex = c.pane_normal + 1, $N.append(t)) : (i.addClass("ui-layout-mask-inside-pane"),
a.zIndex = l.maskZindex || c.content_mask, a.top = 0, a.left = 0, a.width = "100%",
a.height = "100%", o.append(t)), M = M.add(t), $Ms = $Ms.add(t);
return M;
}, destroy = function(n, e) {
$(window).unbind("." + sID), $(document).unbind("." + sID), "object" == typeof n ? evtPane(n) : e = n,
$N.clearQueue().removeData("layout").removeData("layoutContainer").removeClass(options.containerClass).unbind("." + sID),
$Ms.remove(), $.each(_c.allPanes, function(n, t) {
removePane(t, !1, !0, e);
});
var t = "layoutCSS";
$N.data(t) && !$N.data("layoutRole") && $N.css($N.data(t)).removeData(t), "BODY" === sC.tagName && ($N = $("html")).data(t) && $N.css($N.data(t)).removeData(t),
runPluginCallbacks(Instance, $.layout.onDestroy), unload();
for (var i in Instance) i.match(/^(container|options)$/) || delete Instance[i];
return Instance.destroyed = !0, Instance;
}, removePane = function(n, e, t, i) {
if (isInitialized()) {
var a = evtPane.call(this, n), r = $Ps[a], o = $Cs[a], s = $Rs[a], l = $Ts[a];
r && $.isEmptyObject(r.data()) && (r = !1), o && $.isEmptyObject(o.data()) && (o = !1),
s && $.isEmptyObject(s.data()) && (s = !1), l && $.isEmptyObject(l.data()) && (l = !1),
r && r.stop(!0, !0);
var c = options[a], M = state[a], u = "layout", d = "layoutCSS", h = children[a], S = $.isPlainObject(h) && !$.isEmptyObject(h), p = void 0 !== i ? i : c.destroyChildren;
if (S && p && ($.each(h, function(n, e) {
e.destroyed || e.destroy(!0), e.destroyed && delete h[n];
}), $.isEmptyObject(h) && (h = children[a] = null, S = !1)), r && e && !S) r.remove(); else if (r && r[0]) {
var m = c.paneClass, g = m + "-" + a, f = "-open", b = "-sliding", y = "-closed", v = [ m, m + f, m + y, m + b, g, g + f, g + y, g + b ];
$.merge(v, getHoverClasses(r, !0)), r.removeClass(v.join(" ")).removeData("parentLayout").removeData("layoutPane").removeData("layoutRole").removeData("layoutEdge").removeData("autoHidden").unbind("." + sID),
S && o ? (o.width(o.width()), $.each(h, function(n, e) {
e.resizeAll();
})) : o && o.css(o.data(d)).removeData(d).removeData("layoutRole"), r.data(u) || r.css(r.data(d)).removeData(d);
}
l && l.remove(), s && s.remove(), Instance[a] = $Ps[a] = $Cs[a] = $Rs[a] = $Ts[a] = !1,
M = {
removed: !0
}, t || resizeAll();
}
}, _hidePane = function(n) {
var e = $Ps[n], t = options[n], i = e[0].style;
t.useOffscreenClose ? (e.data(_c.offscreenReset) || e.data(_c.offscreenReset, {
left: i.left,
right: i.right
}), e.css(_c.offscreenCSS)) : e.hide().removeData(_c.offscreenReset);
}, _showPane = function(n) {
var e = $Ps[n], t = options[n], i = _c.offscreenCSS, a = e.data(_c.offscreenReset), r = e[0].style;
e.show().removeData(_c.offscreenReset), t.useOffscreenClose && a && (r.left == i.left && (r.left = a.left),
r.right == i.right && (r.right = a.right));
}, hide = function(n, e) {
if (isInitialized()) {
var t = evtPane.call(this, n), i = options[t], a = state[t], r = $Ps[t], o = $Rs[t];
r && !a.isHidden && (state.initialized && !1 === _runCallbacks("onhide_start", t) || (a.isSliding = !1,
delete state.panesSliding[t], o && o.hide(), !state.initialized || a.isClosed ? (a.isClosed = !0,
a.isHidden = !0, a.isVisible = !1, state.initialized || _hidePane(t), sizeMidPanes("horz" === _c[t].dir ? "" : "center"),
(state.initialized || i.triggerEventsOnLoad) && _runCallbacks("onhide_end", t)) : (a.isHiding = !0,
close(t, !1, e))));
}
}, show = function(n, e, t, i) {
if (isInitialized()) {
var a = evtPane.call(this, n), r = (options[a], state[a]), o = $Ps[a];
$Rs[a], o && r.isHidden && !1 !== _runCallbacks("onshow_start", a) && (r.isShowing = !0,
r.isSliding = !1, delete state.panesSliding[a], e === !1 ? close(a, !0) : open(a, !1, t, i));
}
}, toggle = function(n, e) {
if (isInitialized()) {
var t = evtObj(n), i = evtPane.call(this, n), a = state[i];
t && t.stopImmediatePropagation(), a.isHidden ? show(i) : a.isClosed ? open(i, !!e) : close(i);
}
}, _closePane = function(n, e) {
var t = ($Ps[n], state[n]);
_hidePane(n), t.isClosed = !0, t.isVisible = !1, e && setAsClosed(n);
}, close = function(n, e, t, i) {
function a() {
d.isMoving = !1, bindStartSlidingEvents(r, !0);
var n = _c.oppositeEdge[r];
state[n].noRoom && (setSizeLimits(n), makePaneFit(n)), i || !state.initialized && !u.triggerEventsOnLoad || (s || _runCallbacks("onclose_end", r),
s && _runCallbacks("onshow_end", r), l && _runCallbacks("onhide_end", r));
}
var r = evtPane.call(this, n);
if (!state.initialized && $Ps[r]) return _closePane(r, !0), void 0;
if (isInitialized()) {
var o, s, l, c, M = $Ps[r], u = ($Rs[r], $Ts[r], options[r]), d = state[r];
_c[r], $N.queue(function(n) {
if (!M || !u.closable && !d.isShowing && !d.isHiding || !e && d.isClosed && !d.isShowing) return n();
var i = !d.isShowing && !1 === _runCallbacks("onclose_start", r);
return s = d.isShowing, l = d.isHiding, c = d.isSliding, delete d.isShowing, delete d.isHiding,
i ? n() : (o = !t && !d.isClosed && "none" != u.fxName_close, d.isMoving = !0, d.isClosed = !0,
d.isVisible = !1, l ? d.isHidden = !0 : s && (d.isHidden = !1), d.isSliding ? bindStopSlidingEvents(r, !1) : sizeMidPanes("horz" === _c[r].dir ? "" : "center", !1),
setAsClosed(r), o ? (lockPaneForFX(r, !0), M.hide(u.fxName_close, u.fxSettings_close, u.fxSpeed_close, function() {
lockPaneForFX(r, !1), d.isClosed && a(), n();
})) : (_hidePane(r), a(), n()), void 0);
});
}
}, setAsClosed = function(n) {
if ($Rs[n]) {
var e = ($Ps[n], $Rs[n]), t = $Ts[n], i = options[n], a = (state[n], _c[n].side), r = i.resizerClass, o = i.togglerClass, s = "-" + n, l = "-open", c = "-sliding", M = "-closed";
e.css(a, sC.inset[a]).removeClass(r + l + " " + r + s + l).removeClass(r + c + " " + r + s + c).addClass(r + M + " " + r + s + M),
i.resizable && $.layout.plugins.draggable && e.draggable("disable").removeClass("ui-state-disabled").css("cursor", "default").attr("title", ""),
t && (t.removeClass(o + l + " " + o + s + l).addClass(o + M + " " + o + s + M).attr("title", i.tips.Open),
t.children(".content-open").hide(), t.children(".content-closed").css("display", "block")),
syncPinBtns(n, !1), state.initialized && sizeHandles();
}
}, open = function(n, e, t, i) {
function a() {
M.isMoving = !1, _fixIframe(s), M.isSliding || sizeMidPanes("vert" == _c[s].dir ? "center" : "", !1),
setAsOpen(s);
}
if (isInitialized()) {
var r, o, s = evtPane.call(this, n), l = $Ps[s], c = ($Rs[s], $Ts[s], options[s]), M = state[s];
_c[s], $N.queue(function(n) {
if (!l || !c.resizable && !c.closable && !M.isShowing || M.isVisible && !M.isSliding) return n();
if (M.isHidden && !M.isShowing) return n(), show(s, !0), void 0;
M.autoResize && M.size != c.size ? sizePane(s, c.size, !0, !0, !0) : setSizeLimits(s, e);
var u = _runCallbacks("onopen_start", s);
return "abort" === u ? n() : ("NC" !== u && setSizeLimits(s, e), M.minSize > M.maxSize ? (syncPinBtns(s, !1),
!i && c.tips.noRoomToOpen && alert(c.tips.noRoomToOpen), n()) : (e ? bindStopSlidingEvents(s, !0) : M.isSliding ? bindStopSlidingEvents(s, !1) : c.slidable && bindStartSlidingEvents(s, !1),
M.noRoom = !1, makePaneFit(s), o = M.isShowing, delete M.isShowing, r = !t && M.isClosed && "none" != c.fxName_open,
M.isMoving = !0, M.isVisible = !0, M.isClosed = !1, o && (M.isHidden = !1), r ? (lockPaneForFX(s, !0),
l.show(c.fxName_open, c.fxSettings_open, c.fxSpeed_open, function() {
lockPaneForFX(s, !1), M.isVisible && a(), n();
})) : (_showPane(s), a(), n()), void 0));
});
}
}, setAsOpen = function(n, e) {
var t = $Ps[n], i = $Rs[n], a = $Ts[n], r = options[n], o = state[n], s = _c[n].side, l = r.resizerClass, c = r.togglerClass, M = "-" + n, u = "-open", d = "-closed", h = "-sliding";
i.css(s, sC.inset[s] + getPaneSize(n)).removeClass(l + d + " " + l + M + d).addClass(l + u + " " + l + M + u),
o.isSliding ? i.addClass(l + h + " " + l + M + h) : i.removeClass(l + h + " " + l + M + h),
removeHover(0, i), r.resizable && $.layout.plugins.draggable ? i.draggable("enable").css("cursor", r.resizerCursor).attr("title", r.tips.Resize) : o.isSliding || i.css("cursor", "default"),
a && (a.removeClass(c + d + " " + c + M + d).addClass(c + u + " " + c + M + u).attr("title", r.tips.Close),
removeHover(0, a), a.children(".content-closed").hide(), a.children(".content-open").css("display", "block")),
syncPinBtns(n, !o.isSliding), $.extend(o, elDims(t)), state.initialized && (sizeHandles(),
sizeContent(n, !0)), !e && (state.initialized || r.triggerEventsOnLoad) && t.is(":visible") && (_runCallbacks("onopen_end", n),
o.isShowing && _runCallbacks("onshow_end", n), state.initialized && _runCallbacks("onresize_end", n));
}, slideOpen = function(n) {
function e() {
a.isClosed ? a.isMoving || open(i, !0) : bindStopSlidingEvents(i, !0);
}
if (isInitialized()) {
var t = evtObj(n), i = evtPane.call(this, n), a = state[i], r = options[i].slideDelay_open;
t && t.stopImmediatePropagation(), a.isClosed && t && "mouseenter" === t.type && r > 0 ? timer.set(i + "_openSlider", e, r) : e();
}
}, slideClose = function(n) {
function e() {
r.isClosed ? bindStopSlidingEvents(i, !1) : r.isMoving || close(i);
}
if (isInitialized()) {
var t = evtObj(n), i = evtPane.call(this, n), a = options[i], r = state[i], o = r.isMoving ? 1e3 : 300;
if (!r.isClosed && !r.isResizing) if ("click" === a.slideTrigger_close) e(); else {
if (a.preventQuickSlideClose && r.isMoving) return;
if (a.preventPrematureSlideClose && t && $.layout.isMouseOverElem(t, $Ps[i])) return;
t ? timer.set(i + "_closeSlider", e, max(a.slideDelay_close, o)) : e();
}
}
}, slideToggle = function(n) {
var e = evtPane.call(this, n);
toggle(e, !0);
}, lockPaneForFX = function(n, e) {
var t = $Ps[n], i = state[n], a = options[n], r = options.zIndexes;
e ? (showMasks(n, {
animation: !0,
objectsOnly: !0
}), t.css({
zIndex: r.pane_animate
}), "south" == n ? t.css({
top: sC.inset.top + sC.innerHeight - t.outerHeight()
}) : "east" == n && t.css({
left: sC.inset.left + sC.innerWidth - t.outerWidth()
})) : (hideMasks(), t.css({
zIndex: i.isSliding ? r.pane_sliding : r.pane_normal
}), "south" == n ? t.css({
top: "auto"
}) : "east" != n || t.css("left").match(/\-99999/) || t.css({
left: "auto"
}), browser.msie && a.fxOpacityFix && "slide" != a.fxName_open && t.css("filter") && 1 == t.css("opacity") && t[0].style.removeAttribute("filter"));
}, bindStartSlidingEvents = function(n, e) {
var t = options[n], i = ($Ps[n], $Rs[n]), a = t.slideTrigger_open.toLowerCase();
!i || e && !t.slidable || (a.match(/mouseover/) ? a = t.slideTrigger_open = "mouseenter" : a.match(/(click|dblclick|mouseenter)/) || (a = t.slideTrigger_open = "click"),
t.resizerDblClickToggle && a.match(/click/) && i[e ? "unbind" : "bind"]("dblclick." + sID, toggle),
i[e ? "bind" : "unbind"](a + "." + sID, slideOpen).css("cursor", e ? t.sliderCursor : "default").attr("title", e ? t.tips.Slide : ""));
}, bindStopSlidingEvents = function(n, e) {
function t(e) {
timer.clear(n + "_closeSlider"), e.stopPropagation();
}
var i = options[n], a = state[n], r = (_c[n], options.zIndexes), o = i.slideTrigger_close.toLowerCase(), s = e ? "bind" : "unbind", l = $Ps[n], c = $Rs[n];
timer.clear(n + "_closeSlider"), e ? (a.isSliding = !0, state.panesSliding[n] = !0,
bindStartSlidingEvents(n, !1)) : (a.isSliding = !1, delete state.panesSliding[n]),
l.css("zIndex", e ? r.pane_sliding : r.pane_normal), c.css("zIndex", e ? r.pane_sliding + 2 : r.resizer_normal),
o.match(/(click|mouseleave)/) || (o = i.slideTrigger_close = "mouseleave"), c[s](o, slideClose),
"mouseleave" === o && (l[s]("mouseleave." + sID, slideClose), c[s]("mouseenter." + sID, t),
l[s]("mouseenter." + sID, t)), e ? "click" !== o || i.resizable || (c.css("cursor", e ? i.sliderCursor : "default"),
c.attr("title", e ? i.tips.Close : "")) : timer.clear(n + "_closeSlider");
}, makePaneFit = function(n, e, t, i) {
var a = options[n], r = state[n], o = _c[n], s = $Ps[n], l = $Rs[n], c = "vert" === o.dir, M = !1;
if (("center" === n || c && r.noVerticalRoom) && (M = r.maxHeight >= 0, M && r.noRoom ? (_showPane(n),
l && l.show(), r.isVisible = !0, r.noRoom = !1, c && (r.noVerticalRoom = !1), _fixIframe(n)) : M || r.noRoom || (_hidePane(n),
l && l.hide(), r.isVisible = !1, r.noRoom = !0)), "center" === n) ; else if (r.minSize <= r.maxSize) {
if (M = !0, r.size > r.maxSize) sizePane(n, r.maxSize, t, !0, i); else if (r.size < r.minSize) sizePane(n, r.minSize, t, !0, i); else if (l && r.isVisible && s.is(":visible")) {
var u = r.size + sC.inset[o.side];
$.layout.cssNum(l, o.side) != u && l.css(o.side, u);
}
r.noRoom && (r.wasOpen && a.closable ? a.autoReopen ? open(n, !1, !0, !0) : r.noRoom = !1 : show(n, r.wasOpen, !0, !0));
} else r.noRoom || (r.noRoom = !0, r.wasOpen = !r.isClosed && !r.isSliding, r.isClosed || (a.closable ? close(n, !0, !0) : hide(n, !0)));
}, manualSizePane = function(n, e, t, i, a) {
if (isInitialized()) {
var r = evtPane.call(this, n), o = options[r], s = state[r], l = a || o.livePaneResizing && !s.isResizing;
s.autoResize = !1, sizePane(r, e, t, i, l);
}
}, sizePane = function(n, e, t, i, a) {
function r() {
for (var n = "width" === S ? u.outerWidth() : u.outerHeight(), i = [ {
pane: l,
count: 1,
target: e,
actual: n,
correct: e === n,
attempt: e,
cssSize: s
} ], r = i[0], c = {}, m = "Inaccurate size after resizing the " + l + "-pane."; !(r.correct || (c = {
pane: l,
count: r.count + 1,
target: e
}, c.attempt = r.actual > e ? max(0, r.attempt - (r.actual - e)) : max(0, r.attempt + (e - r.actual)),
c.cssSize = cssSize(l, c.attempt), u.css(S, c.cssSize), c.actual = "width" == S ? u.outerWidth() : u.outerHeight(),
c.correct = e === c.actual, 1 === i.length && (_log(m, !1, !0), _log(r, !1, !0)),
_log(c, !1, !0), i.length > 3)); ) i.push(c), r = i[i.length - 1];
M.size = e, $.extend(M, elDims(u)), M.isVisible && u.is(":visible") && (d && d.css(h, e + sC.inset[h]),
sizeContent(l)), !t && !p && state.initialized && M.isVisible && _runCallbacks("onresize_end", l),
t || (M.isSliding || sizeMidPanes("horz" == _c[l].dir ? "" : "center", p, a), sizeHandles());
var g = _c.oppositeEdge[l];
o > e && state[g].noRoom && (setSizeLimits(g), makePaneFit(g, !1, t)), i.length > 1 && _log(m + "\nSee the Error Console for details.", !0, !0);
}
if (isInitialized()) {
var o, s, l = evtPane.call(this, n), c = options[l], M = state[l], u = $Ps[l], d = $Rs[l], h = _c[l].side, S = _c[l].sizeType.toLowerCase(), p = M.isResizing && !c.triggerEventsDuringLiveResize, m = i !== !0 && c.animatePaneSizing;
$N.queue(function(n) {
if (setSizeLimits(l), o = M.size, e = _parseSize(l, e), e = max(e, _parseSize(l, c.minSize)),
e = min(e, M.maxSize), e < M.minSize) return n(), makePaneFit(l, !1, t), void 0;
if (!a && e === o) return n();
if (M.newSize = e, !t && state.initialized && M.isVisible && _runCallbacks("onresize_start", l),
s = cssSize(l, e), m && u.is(":visible")) {
var i = $.layout.effects.size[l] || $.layout.effects.size.all, d = c.fxSettings_size.easing || i.easing, h = options.zIndexes, p = {};
p[S] = s + "px", M.isMoving = !0, u.css({
zIndex: h.pane_animate
}).show().animate(p, c.fxSpeed_size, d, function() {
u.css({
zIndex: M.isSliding ? h.pane_sliding : h.pane_normal
}), M.isMoving = !1, delete M.newSize, r(), n();
});
} else u.css(S, s), delete M.newSize, u.is(":visible") ? r() : (M.size = e, $.extend(M, elDims(u))),
n();
});
}
}, sizeMidPanes = function(n, e, t) {
n = (n ? n : "east,west,center").split(","), $.each(n, function(n, i) {
if ($Ps[i]) {
var a = options[i], r = state[i], o = $Ps[i], s = ($Rs[i], !0), l = {}, c = $.layout.showInvisibly(o), M = calcNewCenterPaneDims();
if ($.extend(r, elDims(o)), "center" === i) {
if (!t && r.isVisible && M.width === r.outerWidth && M.height === r.outerHeight) return o.css(c),
!0;
if ($.extend(r, cssMinDims(i), {
maxWidth: M.width,
maxHeight: M.height
}), l = M, r.newWidth = l.width, r.newHeight = l.height, l.width = cssW(o, l.width),
l.height = cssH(o, l.height), s = l.width >= 0 && l.height >= 0, !state.initialized && a.minWidth > M.width) {
var u = a.minWidth - r.outerWidth, d = options.east.minSize || 0, h = options.west.minSize || 0, S = state.east.size, p = state.west.size, m = S, g = p;
if (u > 0 && state.east.isVisible && S > d && (m = max(S - d, S - u), u -= S - m),
u > 0 && state.west.isVisible && p > h && (g = max(p - h, p - u), u -= p - g), 0 === u) return S && S != d && sizePane("east", m, !0, !0, t),
p && p != h && sizePane("west", g, !0, !0, t), sizeMidPanes("center", e, t), o.css(c),
void 0;
}
} else {
if (r.isVisible && !r.noVerticalRoom && $.extend(r, elDims(o), cssMinDims(i)), !t && !r.noVerticalRoom && M.height === r.outerHeight) return o.css(c),
!0;
l.top = M.top, l.bottom = M.bottom, r.newSize = M.height, l.height = cssH(o, M.height),
r.maxHeight = l.height, s = r.maxHeight >= 0, s || (r.noVerticalRoom = !0);
}
if (s ? (!e && state.initialized && _runCallbacks("onresize_start", i), o.css(l),
"center" !== i && sizeHandles(i), !r.noRoom || r.isClosed || r.isHidden || makePaneFit(i),
r.isVisible && ($.extend(r, elDims(o)), state.initialized && sizeContent(i))) : !r.noRoom && r.isVisible && makePaneFit(i),
o.css(c), delete r.newSize, delete r.newWidth, delete r.newHeight, !r.isVisible) return !0;
if ("center" === i) {
var f = browser.isIE6 || !browser.boxModel;
$Ps.north && (f || "IFRAME" == state.north.tagName) && $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)),
$Ps.south && (f || "IFRAME" == state.south.tagName) && $Ps.south.css("width", cssW($Ps.south, sC.innerWidth));
}
!e && state.initialized && _runCallbacks("onresize_end", i);
}
});
}, resizeAll = function(n) {
var e = sC.innerWidth, t = sC.innerHeight;
if (evtPane(n), $N.is(":visible")) {
if (!state.initialized) return _initLayoutElements(), void 0;
if (n === !0 && $.isPlainObject(options.outset) && $N.css(options.outset), $.extend(sC, elDims($N, options.inset)),
sC.outerHeight) {
if (n === !0 && setPanePosition(), !1 === _runCallbacks("onresizeall_start")) return !1;
var i, a, r;
sC.innerHeight < t, sC.innerWidth < e, $.each([ "south", "north", "east", "west" ], function(n, e) {
$Ps[e] && (a = options[e], r = state[e], r.autoResize && r.size != a.size ? sizePane(e, a.size, !0, !0, !0) : (setSizeLimits(e),
makePaneFit(e, !1, !0, !0)));
}), sizeMidPanes("", !0, !0), sizeHandles(), $.each(_c.allPanes, function(n, e) {
i = $Ps[e], i && state[e].isVisible && _runCallbacks("onresize_end", e);
}), _runCallbacks("onresizeall_end");
}
}
}, resizeChildren = function(n, e) {
var t = evtPane.call(this, n);
if (options[t].resizeChildren) {
e || refreshChildren(t);
var i = children[t];
$.isPlainObject(i) && $.each(i, function(n, e) {
e.destroyed || e.resizeAll();
});
}
}, sizeContent = function(n, e) {
if (isInitialized()) {
var t = evtPane.call(this, n);
t = t ? t.split(",") : _c.allPanes, $.each(t, function(n, t) {
function i(n) {
return max(l.css.paddingBottom, parseInt(n.css("marginBottom"), 10) || 0);
}
function a() {
var n = options[t].contentIgnoreSelector, e = o.nextAll().not(".ui-layout-mask").not(n || ":lt(0)"), a = e.filter(":visible"), r = a.filter(":last");
c = {
top: o[0].offsetTop,
height: o.outerHeight(),
numFooters: e.length,
hiddenFooters: e.length - a.length,
spaceBelow: 0
}, c.spaceAbove = c.top, c.bottom = c.top + c.height, c.spaceBelow = r.length ? r[0].offsetTop + r.outerHeight() - c.bottom + i(r) : i(o);
}
var r = $Ps[t], o = $Cs[t], s = options[t], l = state[t], c = l.content;
if (!r || !o || !r.is(":visible")) return !0;
if ((o.length || (initContent(t, !1), o)) && !1 !== _runCallbacks("onsizecontent_start", t)) {
(!l.isMoving && !l.isResizing || s.liveContentResizing || e || void 0 == c.top) && (a(),
c.hiddenFooters > 0 && "hidden" === r.css("overflow") && (r.css("overflow", "visible"),
a(), r.css("overflow", "hidden")));
var M = l.innerHeight - (c.spaceAbove - l.css.paddingTop) - (c.spaceBelow - l.css.paddingBottom);
o.is(":visible") && c.height == M || (setOuterHeight(o, M, !0), c.height = M), state.initialized && _runCallbacks("onsizecontent_end", t);
}
});
}
}, sizeHandles = function(n) {
var e = evtPane.call(this, n);
e = e ? e.split(",") : _c.borderPanes, $.each(e, function(n, e) {
var t, i = options[e], a = state[e], r = $Ps[e], o = $Rs[e], s = $Ts[e];
if (r && o) {
var l, c, M, u = _c[e].dir, d = a.isClosed ? "_closed" : "_open", h = i["spacing" + d], S = i["togglerAlign" + d], p = i["togglerLength" + d];
if (0 === h) return o.hide(), void 0;
if (a.noRoom || a.isHidden || o.show(), "horz" === u ? (l = sC.innerWidth, a.resizerLength = l,
c = $.layout.cssNum(r, "left"), o.css({
width: cssW(o, l),
height: cssH(o, h),
left: c > -9999 ? c : sC.inset.left
})) : (l = r.outerHeight(), a.resizerLength = l, o.css({
height: cssH(o, l),
width: cssW(o, h),
top: sC.inset.top + getPaneSize("north", !0)
})), removeHover(i, o), s) {
if (0 === p || a.isSliding && i.hideTogglerOnSlide) return s.hide(), void 0;
if (s.show(), !(p > 0) || "100%" === p || p > l) p = l, M = 0; else if (isStr(S)) switch (S) {
case "top":
case "left":
M = 0;
break;
case "bottom":
case "right":
M = l - p;
break;
case "middle":
case "center":
default:
M = round((l - p) / 2);
} else {
var m = parseInt(S, 10);
M = S >= 0 ? m : l - p + m;
}
if ("horz" === u) {
var g = cssW(s, p);
s.css({
width: g,
height: cssH(s, h),
left: M,
top: 0
}), s.children(".content").each(function() {
t = $(this), t.css("marginLeft", round((g - t.outerWidth()) / 2));
});
} else {
var f = cssH(s, p);
s.css({
height: f,
width: cssW(s, h),
top: M,
left: 0
}), s.children(".content").each(function() {
t = $(this), t.css("marginTop", round((f - t.outerHeight()) / 2));
});
}
removeHover(0, s);
}
state.initialized || !i.initHidden && !a.isHidden || (o.hide(), s && s.hide());
}
});
}, enableClosable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Ts[e], i = options[e];
t && (i.closable = !0, t.bind("click." + sID, function(n) {
n.stopPropagation(), toggle(e);
}).css("visibility", "visible").css("cursor", "pointer").attr("title", state[e].isClosed ? i.tips.Open : i.tips.Close).show());
}
}, disableClosable = function(n, e) {
if (isInitialized()) {
var t = evtPane.call(this, n), i = $Ts[t];
i && (options[t].closable = !1, state[t].isClosed && open(t, !1, !0), i.unbind("." + sID).css("visibility", e ? "hidden" : "visible").css("cursor", "default").attr("title", ""));
}
}, enableSlidable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e];
t && t.data("draggable") && (options[e].slidable = !0, state[e].isClosed && bindStartSlidingEvents(e, !0));
}
}, disableSlidable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e];
t && (options[e].slidable = !1, state[e].isSliding ? close(e, !1, !0) : (bindStartSlidingEvents(e, !1),
t.css("cursor", "default").attr("title", ""), removeHover(null, t[0])));
}
}, enableResizable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e], i = options[e];
t && t.data("draggable") && (i.resizable = !0, t.draggable("enable"), state[e].isClosed || t.css("cursor", i.resizerCursor).attr("title", i.tips.Resize));
}
}, disableResizable = function(n) {
if (isInitialized()) {
var e = evtPane.call(this, n), t = $Rs[e];
t && t.data("draggable") && (options[e].resizable = !1, t.draggable("disable").css("cursor", "default").attr("title", ""),
removeHover(null, t[0]));
}
}, swapPanes = function(n, e) {
function t(n) {
var e = $Ps[n], t = $Cs[n];
return e ? {
pane: n,
P: e ? e[0] : !1,
C: t ? t[0] : !1,
state: $.extend(!0, {}, state[n]),
options: $.extend(!0, {}, options[n])
} : !1;
}
function i(n, e) {
if (n) {
var t, i, a = n.P, r = n.C, o = n.pane, l = _c[e], c = $.extend(!0, {}, state[e]), M = options[e], u = {
resizerCursor: M.resizerCursor
};
$.each("fxName,fxSpeed,fxSettings".split(","), function(n, e) {
u[e + "_open"] = M[e + "_open"], u[e + "_close"] = M[e + "_close"], u[e + "_size"] = M[e + "_size"];
}), $Ps[e] = $(a).data({
layoutPane: Instance[e],
layoutEdge: e
}).css(_c.hidden).css(l.cssReq), $Cs[e] = r ? $(r) : !1, options[e] = $.extend(!0, {}, n.options, u),
state[e] = $.extend(!0, {}, n.state), t = new RegExp(M.paneClass + "-" + o, "g"),
a.className = a.className.replace(t, M.paneClass + "-" + e), initHandles(e), l.dir != _c[o].dir ? (i = s[e] || 0,
setSizeLimits(e), i = max(i, state[e].minSize), manualSizePane(e, i, !0, !0)) : $Rs[e].css(l.side, sC.inset[l.side] + (state[e].isVisible ? getPaneSize(e) : 0)),
n.state.isVisible && !c.isVisible ? setAsOpen(e, !0) : (setAsClosed(e), bindStartSlidingEvents(e, !0)),
n = null;
}
}
if (isInitialized()) {
var a = evtPane.call(this, n);
if (state[a].edge = e, state[e].edge = a, !1 === _runCallbacks("onswap_start", a) || !1 === _runCallbacks("onswap_start", e)) return state[a].edge = a,
state[e].edge = e, void 0;
var r = t(a), o = t(e), s = {};
s[a] = r ? r.state.size : 0, s[e] = o ? o.state.size : 0, $Ps[a] = !1, $Ps[e] = !1,
state[a] = {}, state[e] = {}, $Ts[a] && $Ts[a].remove(), $Ts[e] && $Ts[e].remove(),
$Rs[a] && $Rs[a].remove(), $Rs[e] && $Rs[e].remove(), $Rs[a] = $Rs[e] = $Ts[a] = $Ts[e] = !1,
i(r, e), i(o, a), r = o = s = null, $Ps[a] && $Ps[a].css(_c.visible), $Ps[e] && $Ps[e].css(_c.visible),
resizeAll(), _runCallbacks("onswap_end", a), _runCallbacks("onswap_end", e);
}
}, syncPinBtns = function(n, e) {
$.layout.plugins.buttons && $.each(state[n].pins, function(t, i) {
$.layout.buttons.setPinState(Instance, $(i), n, e);
});
}, $N = $(this).eq(0);
if (!$N.length) return _log(options.errors.containerMissing);
if ($N.data("layoutContainer") && $N.data("layout")) return $N.data("layout");
var $Ps = {}, $Cs = {}, $Rs = {}, $Ts = {}, $Ms = $([]), sC = state.container, sID = state.id, Instance = {
options: options,
state: state,
container: $N,
panes: $Ps,
contents: $Cs,
resizers: $Rs,
togglers: $Ts,
hide: hide,
show: show,
toggle: toggle,
open: open,
close: close,
slideOpen: slideOpen,
slideClose: slideClose,
slideToggle: slideToggle,
setSizeLimits: setSizeLimits,
_sizePane: sizePane,
sizePane: manualSizePane,
sizeContent: sizeContent,
swapPanes: swapPanes,
showMasks: showMasks,
hideMasks: hideMasks,
initContent: initContent,
addPane: addPane,
removePane: removePane,
createChildren: createChildren,
refreshChildren: refreshChildren,
enableClosable: enableClosable,
disableClosable: disableClosable,
enableSlidable: enableSlidable,
disableSlidable: disableSlidable,
enableResizable: enableResizable,
disableResizable: disableResizable,
allowOverflow: allowOverflow,
resetOverflow: resetOverflow,
destroy: destroy,
initPanes: isInitialized,
resizeAll: resizeAll,
runCallbacks: _runCallbacks,
hasParentLayout: !1,
children: children,
north: !1,
south: !1,
west: !1,
east: !1,
center: !1
};
return "cancel" === _create() ? null : Instance;
};
}(jQuery), function(n) {
n.ui || (n.ui = {}), n.ui.cookie = {
acceptsCookies: !!navigator.cookieEnabled,
read: function(e) {
for (var t, i = document.cookie, a = i ? i.split(";") : [], r = 0, o = a.length; o > r; r++) if (t = n.trim(a[r]).split("="),
t[0] == e) return decodeURIComponent(t[1]);
return null;
},
write: function(e, t, i) {
var a = "", r = "", o = !1, s = i || {}, l = s.expires || null, c = n.type(l);
"date" === c ? r = l : "string" === c && l > 0 && (l = parseInt(l, 10), c = "number"),
"number" === c && (r = new Date(), l > 0 ? r.setDate(r.getDate() + l) : (r.setFullYear(1970),
o = !0)), r && (a += ";expires=" + r.toUTCString()), s.path && (a += ";path=" + s.path),
s.domain && (a += ";domain=" + s.domain), s.secure && (a += ";secure"), document.cookie = e + "=" + (o ? "" : encodeURIComponent(t)) + a;
},
clear: function(e) {
n.ui.cookie.write(e, "", {
expires: -1
});
}
}, n.cookie || (n.cookie = function(e, t, i) {
var a = n.ui.cookie;
if (null === t) a.clear(e); else {
if (void 0 === t) return a.read(e);
a.write(e, t, i);
}
}), n.layout.plugins.stateManagement = !0, n.layout.config.optionRootKeys.push("stateManagement"),
n.layout.defaults.stateManagement = {
enabled: !1,
autoSave: !0,
autoLoad: !0,
animateLoad: !0,
includeChildren: !0,
stateKeys: "north.size,south.size,east.size,west.size,north.isClosed,south.isClosed,east.isClosed,west.isClosed,north.isHidden,south.isHidden,east.isHidden,west.isHidden",
cookie: {
name: "",
domain: "",
path: "",
expires: "",
secure: !1
}
}, n.layout.optionsMap.layout.push("stateManagement"), n.layout.state = {
saveCookie: function(e, t, i) {
var a = e.options, r = a.stateManagement, o = n.extend(!0, {}, r.cookie, i || null), s = e.state.stateData = e.readState(t || r.stateKeys);
return n.ui.cookie.write(o.name || a.name || "Layout", n.layout.state.encodeJSON(s), o),
n.extend(!0, {}, s);
},
deleteCookie: function(e) {
var t = e.options;
n.ui.cookie.clear(t.stateManagement.cookie.name || t.name || "Layout");
},
readCookie: function(e) {
var t = e.options, i = n.ui.cookie.read(t.stateManagement.cookie.name || t.name || "Layout");
return i ? n.layout.state.decodeJSON(i) : {};
},
loadCookie: function(e) {
var t = n.layout.state.readCookie(e);
return t && (e.state.stateData = n.extend(!0, {}, t), e.loadState(t)), t;
},
loadState: function(e, t, i) {
if (n.isPlainObject(t) && !n.isEmptyObject(t)) {
t = e.state.stateData = n.layout.transformData(t);
var a = e.options.stateManagement;
if (i = n.extend({
animateLoad: !1,
includeChildren: a.includeChildren
}, i), e.state.initialized) {
var r, o, l, c, M, u = !i.animateLoad;
if (n.each(n.layout.config.borderPanes, function(i, a) {
r = t[a], n.isPlainObject(r) && (s = r.size, o = r.initClosed, l = r.initHidden,
ar = r.autoResize, c = e.state[a], M = c.isVisible, ar && (c.autoResize = ar), M || e._sizePane(a, s, !1, !1, !1),
l === !0 ? e.hide(a, u) : o === !0 ? e.close(a, !1, u) : o === !1 ? e.open(a, !1, u) : l === !1 && e.show(a, !1, u),
M && e._sizePane(a, s, !1, !1, u));
}), i.includeChildren) {
var d, h;
n.each(e.children, function(e, i) {
d = t[e] ? t[e].children : 0, d && i && n.each(i, function(n, e) {
h = d[n], e && h && e.loadState(h);
});
});
}
} else {
var r = n.extend(!0, {}, t);
n.each(n.layout.config.allPanes, function(n, e) {
r[e] && delete r[e].children;
}), n.extend(!0, e.options, r);
}
}
},
readState: function(e, t) {
"string" === n.type(t) && (t = {
keys: t
}), t || (t = {});
var i, a, r, o, s, l, c, M = e.options.stateManagement, u = t.includeChildren, d = void 0 !== u ? u : M.includeChildren, h = t.stateKeys || M.stateKeys, S = {
isClosed: "initClosed",
isHidden: "initHidden"
}, p = e.state, m = n.layout.config.allPanes, g = {};
n.isArray(h) && (h = h.join(",")), h = h.replace(/__/g, ".").split(",");
for (var f = 0, b = h.length; b > f; f++) i = h[f].split("."), a = i[0], r = i[1],
n.inArray(a, m) < 0 || (o = p[a][r], void 0 != o && ("isClosed" == r && p[a].isSliding && (o = !0),
(g[a] || (g[a] = {}))[S[r] ? S[r] : r] = o));
return d && n.each(m, function(t, i) {
l = e.children[i], s = p.stateData[i], n.isPlainObject(l) && !n.isEmptyObject(l) && (c = g[i] || (g[i] = {}),
c.children || (c.children = {}), n.each(l, function(e, t) {
t.state.initialized ? c.children[e] = n.layout.state.readState(t) : s && s.children && s.children[e] && (c.children[e] = n.extend(!0, {}, s.children[e]));
}));
}), g;
},
encodeJSON: function(e) {
function t(e) {
var i, a, r, o = [], s = 0, l = n.isArray(e);
for (i in e) a = e[i], r = typeof a, "string" == r ? a = '"' + a + '"' : "object" == r && (a = t(a)),
o[s++] = (l ? "" : '"' + i + '":') + a;
return (l ? "[" : "{") + o.join(",") + (l ? "]" : "}");
}
return t(e);
},
decodeJSON: function(e) {
try {
return n.parseJSON ? n.parseJSON(e) : window.eval("(" + e + ")") || {};
} catch (t) {
return {};
}
},
_create: function(e) {
var t = n.layout.state, i = e.options, a = i.stateManagement;
if (n.extend(e, {
readCookie: function() {
return t.readCookie(e);
},
deleteCookie: function() {
t.deleteCookie(e);
},
saveCookie: function(n, i) {
return t.saveCookie(e, n, i);
},
loadCookie: function() {
return t.loadCookie(e);
},
loadState: function(n, i) {
t.loadState(e, n, i);
},
readState: function(n) {
return t.readState(e, n);
},
encodeJSON: t.encodeJSON,
decodeJSON: t.decodeJSON
}), e.state.stateData = {}, a.autoLoad) if (n.isPlainObject(a.autoLoad)) n.isEmptyObject(a.autoLoad) || e.loadState(a.autoLoad); else if (a.enabled) if (n.isFunction(a.autoLoad)) {
var r = {};
try {
r = a.autoLoad(e, e.state, e.options, e.options.name || "");
} catch (o) {}
r && n.isPlainObject(r) && !n.isEmptyObject(r) && e.loadState(r);
} else e.loadCookie();
},
_unload: function(e) {
var t = e.options.stateManagement;
if (t.enabled && t.autoSave) if (n.isFunction(t.autoSave)) try {
t.autoSave(e, e.state, e.options, e.options.name || "");
} catch (i) {} else e.saveCookie();
}
}, n.layout.onCreate.push(n.layout.state._create), n.layout.onUnload.push(n.layout.state._unload),
n.layout.plugins.buttons = !0, n.layout.defaults.autoBindCustomButtons = !1, n.layout.optionsMap.layout.push("autoBindCustomButtons"),
n.layout.buttons = {
init: function(e) {
var t, i = "ui-layout-button-", a = e.options.name || "";
n.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function(r, o) {
n.each(n.layout.config.borderPanes, function(r, s) {
n("." + i + o + "-" + s).each(function() {
t = n(this).data("layoutName") || n(this).attr("layoutName"), (void 0 == t || t === a) && e.bindButton(this, o, s);
});
});
});
},
get: function(e, t, i, a) {
var r = n(t), o = e.options, s = o.errors.addButtonError;
if (r.length) if (n.inArray(i, n.layout.config.borderPanes) < 0) n.layout.msg(s + " " + o.errors.pane + ": " + i, !0),
r = n(""); else {
var l = o[i].buttonClass + "-" + a;
r.addClass(l + " " + l + "-" + i).data("layoutName", o.name);
} else n.layout.msg(s + " " + o.errors.selector + ": " + t, !0);
return r;
},
bind: function(e, t, i, a) {
var r = n.layout.buttons;
switch (i.toLowerCase()) {
case "toggle":
r.addToggle(e, t, a);
break;
case "open":
r.addOpen(e, t, a);
break;
case "close":
r.addClose(e, t, a);
break;
case "pin":
r.addPin(e, t, a);
break;
case "toggle-slide":
r.addToggle(e, t, a, !0);
break;
case "open-slide":
r.addOpen(e, t, a, !0);
}
return e;
},
addToggle: function(e, t, i, a) {
return n.layout.buttons.get(e, t, i, "toggle").click(function(n) {
e.toggle(i, !!a), n.stopPropagation();
}), e;
},
addOpen: function(e, t, i, a) {
return n.layout.buttons.get(e, t, i, "open").attr("title", e.options[i].tips.Open).click(function(n) {
e.open(i, !!a), n.stopPropagation();
}), e;
},
addClose: function(e, t, i) {
return n.layout.buttons.get(e, t, i, "close").attr("title", e.options[i].tips.Close).click(function(n) {
e.close(i), n.stopPropagation();
}), e;
},
addPin: function(e, t, i) {
var a = n.layout.buttons, r = a.get(e, t, i, "pin");
if (r.length) {
var o = e.state[i];
r.click(function(t) {
a.setPinState(e, n(this), i, o.isSliding || o.isClosed), o.isSliding || o.isClosed ? e.open(i) : e.close(i),
t.stopPropagation();
}), a.setPinState(e, r, i, !o.isClosed && !o.isSliding), o.pins.push(t);
}
return e;
},
setPinState: function(n, e, t, i) {
var a = e.attr("pin");
if (!a || i !== ("down" == a)) {
var r = n.options[t], o = r.buttonClass + "-pin", s = o + "-" + t, l = o + "-up " + s + "-up", c = o + "-down " + s + "-down";
e.attr("pin", i ? "down" : "up").attr("title", i ? r.tips.Unpin : r.tips.Pin).removeClass(i ? l : c).addClass(i ? c : l);
}
},
syncPinBtns: function(e, t, i) {
n.each(e.state[t].pins, function(a, r) {
n.layout.buttons.setPinState(e, n(r), t, i);
});
},
_load: function(e) {
var t = n.layout.buttons;
n.extend(e, {
bindButton: function(n, i, a) {
return t.bind(e, n, i, a);
},
addToggleBtn: function(n, i, a) {
return t.addToggle(e, n, i, a);
},
addOpenBtn: function(n, i, a) {
return t.addOpen(e, n, i, a);
},
addCloseBtn: function(n, i) {
return t.addClose(e, n, i);
},
addPinBtn: function(n, i) {
return t.addPin(e, n, i);
}
});
for (var i = 0; 4 > i; i++) {
var a = n.layout.config.borderPanes[i];
e.state[a].pins = [];
}
e.options.autoBindCustomButtons && t.init(e);
},
_unload: function() {}
}, n.layout.onLoad.push(n.layout.buttons._load), n.layout.plugins.browserZoom = !0,
n.layout.defaults.browserZoomCheckInterval = 1e3, n.layout.optionsMap.layout.push("browserZoomCheckInterval"),
n.layout.browserZoom = {
_init: function(e) {
n.layout.browserZoom.ratio() !== !1 && n.layout.browserZoom._setTimer(e);
},
_setTimer: function(e) {
if (!e.destroyed) {
var t = e.options, i = e.state, a = e.hasParentLayout ? 5e3 : Math.max(t.browserZoomCheckInterval, 100);
setTimeout(function() {
if (!e.destroyed && t.resizeWithWindow) {
var a = n.layout.browserZoom.ratio();
a !== i.browserZoom && (i.browserZoom = a, e.resizeAll()), n.layout.browserZoom._setTimer(e);
}
}, a);
}
},
ratio: function() {
function e(n, e) {
return (100 * (parseInt(n, 10) / parseInt(e, 10))).toFixed();
}
var t, i, a, r = window, o = screen, s = document, l = s.documentElement || s.body, c = n.layout.browser, M = c.version;
return c.msie && M > 8 || !c.msie ? !1 : o.deviceXDPI && o.systemXDPI ? e(o.deviceXDPI, o.systemXDPI) : c.webkit && (t = s.body.getBoundingClientRect) ? e(t.left - t.right, s.body.offsetWidth) : c.webkit && (i = r.outerWidth) ? e(i, r.innerWidth) : (i = o.width) && (a = l.clientWidth) ? e(i, a) : !1;
}
}, n.layout.onReady.push(n.layout.browserZoom._init);
}(jQuery), define("uilayout", function() {}), define("libs/ace_mode_highlight_rules", [ "require", "exports", "module", "ace/lib/oop", "ace/mode/text_highlight_rules" ], function(n, e) {
var t = n("ace/lib/oop"), i = n("ace/mode/text_highlight_rules").TextHighlightRules, a = function() {
this.$rules = {
basic: [ {
token: "constant.language.escape",
regex: /\\[\\`*_{}\[\]()#+\-.!]/
}, {
token: "code",
regex: "(`+)(.*?[^`])(\\1)"
}, {
token: [ "text", "reference", "text", "markup.underline", "description", "text" ],
regex: '^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'
}, {
token: [ "text", "description", "text", "markup.underline", "text" ],
regex: "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"
}, {
token: [ "text", "description", "text", "markup.underline", "string", "text" ],
regex: '(\\[)(\\[[^\\]]*\\]|[^\\[\\]]*)(\\]\\([ \\t]*)(<?(?:(?:[^\\(]*?\\([^\\)]*?\\)\\S*?)|(?:.*?))>?)((?:[ ]*"(?:.*?)"[ \\t]*)?)(\\))'
}, {
token: "strong",
regex: "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"
}, {
token: "emphasis",
regex: "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"
}, {
token: [ "text", "url", "text" ],
regex: "(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"
} ],
allowBlock: [ {
token: [ "text", "code_block" ],
regex: "^( {4}|\\t)(.+)",
next: "allowBlock"
}, {
token: "empty",
regex: "",
next: "start"
} ],
start: [ {
token: "empty_line",
regex: "^$",
next: "allowBlock"
}, {
token: "markup.heading.multi.1",
regex: "^=+(?=\\s*$)"
}, {
token: "markup.heading.multi.2",
regex: "^\\-+(?=\\s*$)"
}, {
token: function(n) {
return "markup.heading." + n.length;
},
regex: /^#{1,6}(?=\s*[^ #]|\s+#.)/,
next: "header"
}, {
token: "code_block",
regex: "^```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",
next: "githubblock"
}, {
token: "blockquote",
regex: "^\\s*>[ ].+$",
next: "blockquote"
}, {
token: "constant",
regex: "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",
next: "allowBlock"
}, {
token: "markup.list",
regex: "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",
next: "listblock-start"
}, {
include: "basic"
} ],
header: [ {
regex: "$",
next: "start"
}, {
include: "basic"
}, {
defaultToken: "markup.heading"
} ],
"listblock-start": [ {
token: "checkbox",
regex: /(?:\[[ x]\])?/,
next: "listblock"
} ],
listblock: [ {
token: "empty_line",
regex: "^$",
next: "start"
}, {
token: "markup.list",
regex: "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",
next: "listblock-start"
}, {
include: "basic",
noEscape: !0
}, {
defaultToken: "markup.list"
} ],
blockquote: [ {
token: "empty_line",
regex: "^\\s*$",
next: "start"
}, {
token: "blockquote",
regex: ".+"
} ],
githubblock: [ {
token: "code_block",
regex: "^```",
next: "start"
}, {
token: "code_block",
regex: ".+"
} ]
}, this.normalizeRules();
};
t.inherits(a, i), e.MarkdownHighlightRules = a;
}), define("ace/mode/folding/markdown", [ "require", "exports", "module", "../../lib/oop", "./fold_mode", "../../range" ], function(n, e) {
var t = n("../../lib/oop"), i = n("./fold_mode").FoldMode, a = n("../../range").Range, r = e.FoldMode = function() {};
t.inherits(r, i), function() {
this.foldingStartMarker = /^(?:[=-]+\s*$|#{1,6} |`{3})/, this.getFoldWidget = function(n, e, t) {
var i = n.getLine(t);
return this.foldingStartMarker.test(i) ? "`" == i[0] ? "start" == n.bgTokenizer.getState(t) ? "end" : "start" : "start" : "";
}, this.getFoldWidgetRange = function(n, e, t) {
function i(e) {
return u = n.getTokens(e)[0], u && 0 === u.type.lastIndexOf(d, 0);
}
function r() {
var n = u.value[0];
return "=" == n ? 6 : "-" == n ? 5 : 7 - u.value.search(/[^#]/);
}
var o = n.getLine(t), s = o.length, l = n.getLength(), c = t, M = t;
if (o.match(this.foldingStartMarker)) {
if ("`" == o[0]) {
if ("start" !== n.bgTokenizer.getState(t)) {
for (;++t < l && (o = n.getLine(t), !("`" == o[0] & "```" == o.substring(0, 3))); ) ;
return new a(c, s, t, 0);
}
for (;t-- > 0 && (o = n.getLine(t), !("`" == o[0] & "```" == o.substring(0, 3))); ) ;
return new a(t, o.length, c, 0);
}
var u, d = "markup.heading";
if (i(t)) {
for (var h = r(); ++t < l; ) if (i(t)) {
var S = r();
if (S >= h) break;
}
if (M = t - (u && -1 != [ "=", "-" ].indexOf(u.value[0]) ? 2 : 1), M > c) for (;M > c && /^\s*$/.test(n.getLine(M)); ) M--;
if (M > c) {
var p = n.getLine(M).length;
return new a(c, s, M, p);
}
}
}
};
}.call(r.prototype);
}), define("libs/ace_mode", [ "require", "exports", "module", "ace/lib/oop", "ace/mode/text", "ace/tokenizer", "./ace_mode_highlight_rules", "ace/mode/folding/markdown" ], function(n, e) {
var t = n("ace/lib/oop"), i = n("ace/mode/text").Mode, a = n("ace/tokenizer").Tokenizer, r = n("./ace_mode_highlight_rules").MarkdownHighlightRules, o = n("ace/mode/folding/markdown").FoldMode, s = function() {
var n = new r();
this.$tokenizer = new a(n.getRules()), this.$embeds = n.getEmbeds(), this.foldingRules = new o();
};
t.inherits(s, i), function() {
this.type = "text", this.lineCommentStart = ">", this.getNextLineIndent = function(n, e) {
if ("listblock" == n) {
var t = /^(\s*)(?:([-+*])|(\d+)\.)(\s+)/.exec(e);
if (!t) return "";
var i = t[2];
return i || (i = parseInt(t[3], 10) + 1 + "."), t[1] + i + t[4];
}
return this.$getIndent(e);
};
}.call(s.prototype), e.Mode = s;
}), define("ace/ext/spellcheck", [ "require", "exports", "module", "../lib/event", "../editor", "../config" ], function(n, e) {
var t = n("../lib/event");
e.contextMenuHandler = function(n) {
var e = n.target, i = e.textInput.getElement();
if (e.selection.isEmpty()) {
var a = e.getCursorPosition(), r = e.session.getWordRange(a.row, a.column), o = e.session.getTextRange(r);
if (e.session.tokenRe.lastIndex = 0, e.session.tokenRe.test(o)) {
var s = "", l = o + " " + s;
i.value = l, i.setSelectionRange(o.length + 1, o.length + 1), i.setSelectionRange(0, 0);
var c = !1;
t.addListener(i, "keydown", function M() {
t.removeListener(i, "keydown", M), c = !0;
}), e.textInput.setInputHandler(function(n) {
if (console.log(n, l, i.selectionStart, i.selectionEnd), n == l) return "";
if (0 === n.lastIndexOf(l, 0)) return n.slice(l.length);
if (n.substr(i.selectionEnd) == l) return n.slice(0, -l.length);
if (n.slice(-2) == s) {
var t = n.slice(0, -2);
if (" " == t.slice(-1)) return c ? t.substring(0, i.selectionEnd) : (t = t.slice(0, -1),
e.session.replace(r, t), "");
}
return n;
});
}
}
};
var i = n("../editor").Editor;
n("../config").defineOptions(i.prototype, "editor", {
spellcheck: {
set: function(n) {
var t = this.textInput.getElement();
t.spellcheck = !!n, n ? this.on("nativecontextmenu", e.contextMenuHandler) : this.removeListener("nativecontextmenu", e.contextMenuHandler);
},
value: !0
}
});
}), define("ace/ext/searchbox", [ "require", "exports", "module", "../lib/dom", "../lib/lang", "../lib/event", "../requirejs/text!./searchbox.css", "../keyboard/hash_handler", "../lib/keys" ], function(n, e) {
var t = n("../lib/dom"), i = n("../lib/lang"), a = n("../lib/event"), r = n("../requirejs/text!./searchbox.css"), o = n("../keyboard/hash_handler").HashHandler, s = n("../lib/keys");
t.importCssString(r, "ace_searchbox");
var l = '<div class="ace_search right"> <button type="button" action="hide" class="ace_searchbtn_close"></button> <div class="ace_search_form"> <input class="ace_search_field" placeholder="Search for" spellcheck="false"></input> <button type="button" action="findNext" class="ace_searchbtn next"></button> <button type="button" action="findPrev" class="ace_searchbtn prev"></button> </div> <div class="ace_replace_form"> <input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input> <button type="button" action="replaceAndFindNext" class="ace_replacebtn">Replace</button> <button type="button" action="replaceAll" class="ace_replacebtn">All</button> </div> <div class="ace_search_options"> <span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span> <span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span> <span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span> </div></div>'.replace(/>\s+/g, ">"), c = function(n) {
var e = t.createElement("div");
e.innerHTML = l, this.element = e.firstChild, this.$init(), this.setEditor(n);
};
(function() {
this.setEditor = function(n) {
n.searchBox = this, n.container.appendChild(this.element), this.editor = n;
}, this.$initElements = function(n) {
this.searchBox = n.querySelector(".ace_search_form"), this.replaceBox = n.querySelector(".ace_replace_form"),
this.searchOptions = n.querySelector(".ace_search_options"), this.regExpOption = n.querySelector("[action=toggleRegexpMode]"),
this.caseSensitiveOption = n.querySelector("[action=toggleCaseSensitive]"), this.wholeWordOption = n.querySelector("[action=toggleWholeWords]"),
this.searchInput = this.searchBox.querySelector(".ace_search_field"), this.replaceInput = this.replaceBox.querySelector(".ace_search_field");
}, this.$init = function() {
var n = this.element;
this.$initElements(n);
var e = this;
a.addListener(n, "mousedown", function(n) {
setTimeout(function() {
e.activeInput.focus();
}, 0), a.stopPropagation(n);
}), a.addListener(n, "click", function(n) {
var t = n.target || n.srcElement, i = t.getAttribute("action");
i && e[i] ? e[i]() : e.$searchBarKb.commands[i] && e.$searchBarKb.commands[i].exec(e),
a.stopPropagation(n);
}), a.addCommandKeyListener(n, function(n, t, i) {
var r = s.keyCodeToString(i), o = e.$searchBarKb.findKeyCommand(t, r);
o && o.exec && (o.exec(e), a.stopEvent(n));
}), this.$onChange = i.delayedCall(function() {
e.find(!1, !1);
}), a.addListener(this.searchInput, "input", function() {
e.$onChange.schedule(20);
}), a.addListener(this.searchInput, "focus", function() {
e.activeInput = e.searchInput, e.searchInput.value && e.highlight();
}), a.addListener(this.replaceInput, "focus", function() {
e.activeInput = e.replaceInput, e.searchInput.value && e.highlight();
});
}, this.$closeSearchBarKb = new o([ {
bindKey: "Esc",
name: "closeSearchBar",
exec: function(n) {
n.searchBox.hide();
}
} ]), this.$searchBarKb = new o(), this.$searchBarKb.bindKeys({
"Ctrl-f|Command-f|Ctrl-H|Command-Option-F": function(n) {
var e = n.isReplace = !n.isReplace;
n.replaceBox.style.display = e ? "" : "none", n[e ? "replaceInput" : "searchInput"].focus();
},
"Ctrl-G|Command-G": function(n) {
n.findNext();
},
"Ctrl-Shift-G|Command-Shift-G": function(n) {
n.findPrev();
},
esc: function(n) {
setTimeout(function() {
n.hide();
});
},
Return: function(n) {
n.activeInput == n.replaceInput && n.replace(), n.findNext();
},
"Shift-Return": function(n) {
n.activeInput == n.replaceInput && n.replace(), n.findPrev();
},
Tab: function(n) {
(n.activeInput == n.replaceInput ? n.searchInput : n.replaceInput).focus();
}
}), this.$searchBarKb.addCommands([ {
name: "toggleRegexpMode",
bindKey: {
win: "Alt-R|Alt-/",
mac: "Ctrl-Alt-R|Ctrl-Alt-/"
},
exec: function(n) {
n.regExpOption.checked = !n.regExpOption.checked, n.$syncOptions();
}
}, {
name: "toggleCaseSensitive",
bindKey: {
win: "Alt-C|Alt-I",
mac: "Ctrl-Alt-R|Ctrl-Alt-I"
},
exec: function(n) {
n.caseSensitiveOption.checked = !n.caseSensitiveOption.checked, n.$syncOptions();
}
}, {
name: "toggleWholeWords",
bindKey: {
win: "Alt-B|Alt-W",
mac: "Ctrl-Alt-B|Ctrl-Alt-W"
},
exec: function(n) {
n.wholeWordOption.checked = !n.wholeWordOption.checked, n.$syncOptions();
}
} ]), this.$syncOptions = function() {
t.setCssClass(this.regExpOption, "checked", this.regExpOption.checked), t.setCssClass(this.wholeWordOption, "checked", this.wholeWordOption.checked),
t.setCssClass(this.caseSensitiveOption, "checked", this.caseSensitiveOption.checked),
this.find(!1, !1);
}, this.highlight = function(n) {
this.editor.session.highlight(n || this.editor.$search.$options.re), this.editor.renderer.updateBackMarkers();
}, this.find = function(n, e) {
var i = this.editor.find(this.searchInput.value, {
skipCurrent: n,
backwards: e,
wrap: !0,
regExp: this.regExpOption.checked,
caseSensitive: this.caseSensitiveOption.checked,
wholeWord: this.wholeWordOption.checked
}), a = !i && this.searchInput.value;
t.setCssClass(this.searchBox, "ace_nomatch", a), this.editor._emit("findSearchBox", {
match: !a
}), this.highlight();
}, this.findNext = function() {
this.find(!0, !1);
}, this.findPrev = function() {
this.find(!0, !0);
}, this.replace = function() {
this.editor.getReadOnly() || this.editor.replace(this.replaceInput.value);
}, this.replaceAndFindNext = function() {
this.editor.getReadOnly() || (this.editor.replace(this.replaceInput.value), this.findNext());
}, this.replaceAll = function() {
this.editor.getReadOnly() || this.editor.replaceAll(this.replaceInput.value);
}, this.hide = function() {
this.element.style.display = "none", this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),
this.editor.focus();
}, this.show = function(n, e) {
this.element.style.display = "", this.replaceBox.style.display = e ? "" : "none",
this.isReplace = e, n && (this.searchInput.value = n), this.searchInput.focus(),
this.searchInput.select(), this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);
};
}).call(c.prototype), e.SearchBox = c, e.Search = function(n, e) {
var t = n.searchBox || new c(n);
t.show(n.session.getTextRange(), e);
};
}), define("core", [ "jquery", "underscore", "crel", "ace", "utils", "settings", "eventMgr", "shortcutMgr", "mousetrap", "text!html/bodyIndex.html", "text!html/bodyViewer.html", "text!html/settingsTemplateTooltip.html", "text!html/settingsUserCustomExtensionTooltip.html", "storage", "config", "uilayout", "pagedown-ace", "libs/ace_mode", "ace/requirejs/text!ace/css/editor.css", "ace/requirejs/text!ace/theme/textmate.css", "ace/ext/spellcheck", "ace/ext/searchbox" ], function(n, e, t, i, a, r, o, s, l, c, M, u, d) {
function h() {
R = !0, C = !0;
var n = a.currentTime;
n > x + 1e3 && (x = n, o.onUserActive());
}
function S() {
return C === !0 && a.currentTime - x > USER_IDLE_THRESHOLD && (C = !1), C && A;
}
function p() {
if (R !== !1 && A !== !1) {
void 0 === E && (E = a.randomString(), localStorage.frontWindowId = E);
var e = localStorage.frontWindowId;
e != E && (A = !1, void 0 !== k && clearInterval(k), n(".modal").modal("hide"),
n(".modal-non-unique").modal("show"));
}
}
function m() {
P === !0 && (P = !1, o.onOfflineChanged(!1));
}
function g() {
P === !0 && navigator.onLine === !0 && T + CHECK_ONLINE_PERIOD < a.currentTime && (T = a.currentTime,
n.ajax({
url: "//www.google.com/jsapi",
timeout: AJAX_TIMEOUT,
dataType: "script"
}).done(function() {
m();
}));
}
function f() {
a.setInputRadio("radio-layout-orientation", r.layoutOrientation), a.setInputValue(F, theme),
F.change(), a.setInputChecked("#input-settings-lazy-rendering", r.lazyRendering),
a.setInputValue("#input-settings-editor-font-family", r.editorFontFamily), a.setInputValue("#input-settings-editor-font-size", r.editorFontSize),
a.setInputValue("#input-settings-max-width", r.maxWidth), a.setInputValue("#textarea-settings-default-content", r.defaultContent),
a.setInputValue("#input-settings-publish-commit-msg", r.commitMsg), a.setInputChecked("#input-settings-gdrive-full-access", r.gdriveFullAccess),
a.setInputValue("#textarea-settings-publish-template", r.template), a.setInputValue("#textarea-settings-publish-pdf-template", r.pdfTemplate),
a.setInputValue("#input-settings-ssh-proxy", r.sshProxy), s.loadSettings(), o.onLoadSettings();
}
function b(e) {
var t = {};
t.layoutOrientation = a.getInputRadio("radio-layout-orientation");
var i = a.getInputValue(F);
t.lazyRendering = a.getInputChecked("#input-settings-lazy-rendering"), t.editorFontFamily = a.getInputTextValue("#input-settings-editor-font-family", e),
t.editorFontSize = a.getInputIntValue("#input-settings-editor-font-size", e, 1, 99),
t.maxWidth = a.getInputIntValue("#input-settings-max-width", e, 1), t.defaultContent = a.getInputValue("#textarea-settings-default-content"),
t.commitMsg = a.getInputTextValue("#input-settings-publish-commit-msg", e), t.gdriveFullAccess = a.getInputChecked("#input-settings-gdrive-full-access"),
t.template = a.getInputTextValue("#textarea-settings-publish-template", e), t.pdfTemplate = a.getInputTextValue("#textarea-settings-publish-pdf-template", e),
t.sshProxy = a.checkUrl(a.getInputTextValue("#input-settings-ssh-proxy", e), !0),
t.extensionSettings = {}, o.onSaveSettings(t.extensionSettings, e), e.isPropagationStopped() || (n.extend(r, t),
localStorage.settings = JSON.stringify(r), localStorage.theme = i);
}
function y(n) {
n === !0 || B.state.north.isClosed ? (Y.hide(), L.hide()) : (Y.show(), L.show());
}
function v(n) {
n === !0 || B.state.east.isClosed ? N.hide() : N.show();
}
function D() {
return lightMode ? (n("#wmd-input").replaceWith(function() {
return n('<textarea id="wmd-input">').addClass(this.className).addClass("form-control");
}), void 0) : (z = i.edit("wmd-input"), require("ace/ext/spellcheck"), z.setOption("spellcheck", !0),
z.renderer.setShowGutter(!1), z.renderer.setPrintMarginColumn(!1), z.renderer.setPadding(EDITOR_DEFAULT_PADDING),
z.session.setUseWrapMode(!0), z.session.setNewLineMode("unix"), z.session.setMode("libs/ace_mode"),
function(n) {
function t(t) {
var i = n.lines[t];
0 !== i.length && 0 === i[0].type.indexOf("markup.heading.multi") && e.each(n.lines[t - 1], function(n) {
n.type = "markup.heading.prev.multi";
});
}
function i() {
if (n.running) {
for (var e = new Date(), a = n.currentLine, r = -1, o = n.doc; n.lines[a]; ) a++;
var s = a, l = o.getLength(), c = 0;
for (n.running = !1; l > a; ) {
n.$tokenizeRow(a), r = a;
do t(a), a++; while (n.lines[a]);
if (c++, 0 === c % 5 && new Date() - e > 20) return n.running = setTimeout(i, 20),
n.currentLine = a, void 0;
}
n.currentLine = a, r >= s && n.fireUpdateEvent(s, r);
}
}
n.$worker = function() {
n.lines.splice(0, n.lines.length), n.states.splice(0, n.states.length), n.currentLine = 0,
i();
};
}(z.session.bgTokenizer), s.configureAce(z), o.onAceCreated(z), void 0);
}
function w() {
var e = {
closable: !0,
resizable: !1,
slidable: !1,
livePaneResizing: !0,
enableCursorHotkey: !1,
resizerDblClickToggle: !1,
north__spacing_open: 6,
north__spacing_closed: 6,
spacing_open: 35,
spacing_closed: 35,
togglerLength_open: 60,
togglerLength_closed: 60,
stateManagement__enabled: !1,
center__minWidth: 200,
center__minHeight: 200,
onopen: function() {
y(), v();
},
onclose_start: function(n) {
"north" == n ? y(!0) : "east" == n && v(!0);
},
onresize_end: function(n) {
if (void 0 !== z && "center" == n) {
z.resize();
var e = (z.renderer.$size.scrollerHeight - z.renderer.lineHeight) / 2;
0 > e && (e = 0), z.renderer.setScrollMargin(0, e, 0, 0), setTimeout(function() {
var n = (z.renderer.$size.scrollerWidth - r.maxWidth) / 2;
EDITOR_DEFAULT_PADDING > n && (n = EDITOR_DEFAULT_PADDING), n !== z.renderer.$padding && (z.renderer.setPadding(n),
z.resize(!0));
}, 5);
}
o.onLayoutResize(n);
}
};
o.onLayoutConfigure(e), "horizontal" == r.layoutOrientation ? (n(".ui-layout-south").remove(),
n(".preview-container").html('<div id="preview-contents"><div id="wmd-preview" class="preview-content"></div></div>'),
B = n("body").layout(n.extend(e, {
east__resizable: !0,
east__size: .5,
east__minSize: 260
}))) : "vertical" == r.layoutOrientation && (n(".ui-layout-east").remove(), n(".preview-container").html('<div id="preview-contents"><div id="wmd-preview" class="preview-content"></div></div>'),
B = n("body").layout(n.extend(e, {
south__resizable: !0,
south__size: .5,
south__minSize: 200
}))), r.maxWidth && n("#preview-contents").css("max-width", r.maxWidth + 30 + "px"),
n(".navbar").click(function() {
B.allowOverflow("north");
}), n(".ui-layout-toggler-south").addClass("btn btn-info").html('<i class="icon-none"></i>'),
n(".ui-layout-toggler-east").addClass("btn btn-info").html('<i class="icon-none"></i>');
var t = n(".ui-layout-toggler-north").addClass("btn btn-info").html('<i class="icon-none"></i>'), i = n('<div class="resizer-decorator">');
N = n('<div class="extension-preview-buttons">'), I = n('<div class="extension-editor-buttons">'),
viewerMode || "horizontal" == r.layoutOrientation ? (n(".ui-layout-resizer-north").append(i).append(N),
n(".ui-layout-resizer-east").append(t).append(I)) : (n(".ui-layout-resizer-north").append(i),
n(".ui-layout-resizer-south").append(N).append(I).append(t)), y(), v(), o.onLayoutCreated(B);
}
var G = {}, k = void 0, R = !1, C = !1, A = !0, x = 0, E = void 0, P = !1, T = a.currentTime;
G.setOffline = function() {
T = a.currentTime, P === !1 && (P = !0, o.onOfflineChanged(!0));
};
var F = void 0, B = void 0, Y = void 0, L = void 0, N = void 0, z = void 0, I = void 0, _ = void 0, U = void 0, $ = void 0, j = void 0, Z = require("ace/undomanager").UndoManager;
G.initEditor = function(t) {
function i() {
var n = U.val();
void 0 !== z && (n = z.getValue()), void 0 !== j && j != n && ($.content = n, o.onContentChanged($)),
j = n;
}
function s() {
var n = U.val();
n = d.makeHtml(n), h.html(n), S.onPreviewRefresh();
}
void 0 !== $ && o.onFileClosed($), $ = t, j = void 0;
var l = $.content;
if (void 0 !== z ? (z.setValue(l, -1), z.getSession().setUndoManager(new Z())) : U.val(l),
void 0 !== _) return z && z.selection.setSelectionRange($.editorSelectRange), z && z.focus() || U.focus(),
_.refreshPreview(), void 0;
var c = n(".preview-container");
if (!lightMode) {
var M = e.debounce(function() {
void 0 !== j && ($.editorScrollTop = z.renderer.getScrollTop());
}, 100);
z.session.on("changeScrollTop", M);
var u = e.debounce(function() {
void 0 !== j && ($.editorSelectRange = z.getSelectionRange());
}, 100);
z.session.selection.on("changeSelection", u), z.session.selection.on("changeCursor", u),
c.scroll(function() {
void 0 !== j && ($.previewScrollTop = c.scrollTop());
});
}
var d = new Markdown.Converter();
if (lightMode) {
var h = n("#wmd-preview"), S = new Markdown.HookCollection();
S.addNoop("onPreviewRefresh");
var p = e.debounce(s, 1e3), m = function() {
void 0 === j ? (s(), o.onFileOpen($)) : p(), i();
};
U.on("input propertychange", m), _ = {
hooks: S,
getConverter: function() {
return d;
},
run: m,
refreshPreview: m
};
} else _ = new Markdown.Editor(d), _.hooks.set("insertLinkDialog", function(e) {
return G.insertLinkCallback = e, a.resetModalInputs(), n(".modal-insert-link").modal(),
!0;
}), _.hooks.set("insertImageDialog", function(e) {
return G.insertLinkCallback = e, G.catchModal ? !0 : (a.resetModalInputs(), n(".modal-insert-image").modal(),
!0);
});
var m;
m = r.lazyRendering === !0 ? function(n) {
var t = e.debounce(n, 500);
return function() {
void 0 === j ? (n(), o.onFileOpen($), c.scrollTop($.previewScrollTop), e.defer(function() {
z.renderer.scrollToY($.editorScrollTop);
})) : t(), i();
};
} : function(n) {
return function() {
n(), void 0 === j && (o.onFileOpen($), c.scrollTop($.previewScrollTop), e.defer(function() {
z.renderer.scrollToY($.editorScrollTop);
})), i();
};
}, o.onPagedownConfigure(_), _.hooks.chain("onPreviewRefresh", o.onAsyncPreview),
_.run(z, m), z && z.selection.setSelectionRange($.editorSelectRange), z && z.focus() || U.focus(),
n(".wmd-button-row li").addClass("btn btn-success").css("left", 0).find("span").hide();
var g = n(".wmd-button-group1");
n("#wmd-bold-button").append(n('<i class="icon-bold">')).appendTo(g), n("#wmd-italic-button").append(n('<i class="icon-italic">')).appendTo(g);
var g = n(".wmd-button-group2");
n("#wmd-link-button").append(n('<i class="icon-globe">')).appendTo(g), n("#wmd-quote-button").append(n('<i class="icon-indent-right">')).appendTo(g),
n("#wmd-code-button").append(n('<i class="icon-code">')).appendTo(g), n("#wmd-image-button").append(n('<i class="icon-picture">')).appendTo(g);
var g = n(".wmd-button-group3");
n("#wmd-olist-button").append(n('<i class="icon-list-numbered">')).appendTo(g),
n("#wmd-ulist-button").append(n('<i class="icon-list-bullet">')).appendTo(g), n("#wmd-heading-button").append(n('<i class="icon-text-height">')).appendTo(g),
n("#wmd-hr-button").append(n('<i class="icon-ellipsis">')).appendTo(g);
var g = n(".wmd-button-group4");
n("#wmd-undo-button").append(n('<i class="icon-reply">')).appendTo(g), n("#wmd-redo-button").append(n('<i class="icon-forward">')).appendTo(g);
};
var O = void 0;
G.oauthRedirect = function(e, t) {
O = t, n(".oauth-redirect-provider").text(e), n(".modal-oauth-redirect").modal("show");
};
var H = !1, q = !1;
return G.onReady = function() {
document.body.innerHTML = viewerMode === !0 ? M : c, s.addSettingEntries(), n(window).on("offline", G.setOffline),
n(window).on("online", m), navigator.onLine === !1 && G.setOffline(), n(document).mousemove(h).keypress(h),
n(".dropdown-submenu > a").click(function(n) {
n.stopPropagation();
}), Y = n(".menu-panel").collapse({
toggle: !1
});
var e = void 0;
Y.on("show.bs.collapse", function(n) {
n.target === Y[0] ? (q = !0, e = a.createBackdrop("collapse", ".menu-panel"), Y.addClass("move-to-front")) : Y.find(".in").collapse("hide");
}).on("hide.bs.collapse", function(n) {
n.target === Y[0] && (q = !1, e.parentNode.removeChild(e), Y.removeClass("move-to-front"),
z && z.focus() || U.focus());
}).on("hidden.bs.collapse", function(n) {
n.target === Y[0] && Y.find(".in").collapse("hide");
}), L = n(".document-panel").collapse({
toggle: !1
});
var t = void 0;
L.on("show.bs.collapse", function(n) {
n.target === L[0] ? (H = !0, t = a.createBackdrop("collapse", ".document-panel"),
L.addClass("move-to-front")) : L.find(".in").collapse("hide");
}).on("hide.bs.collapse", function(n) {
n.target === L[0] && (H = !1, t.parentNode.removeChild(t), L.removeClass("move-to-front"),
z && z.focus() || U.focus());
}).on("hidden.bs.collapse", function(n) {
n.target === L[0] && L.find(".in").collapse("hide");
}), D(), U = n("#wmd-input").css({
"font-family": r.editorFontFamily,
"font-size": r.editorFontSize + "px",
"line-height": Math.round(r.editorFontSize * (20 / 12)) + "px"
}), U.find(".ace_content").css({
"background-size": "64px " + Math.round(r.editorFontSize * (20 / 12)) + "px"
}), w(), k = window.setInterval(function() {
a.updateCurrentTime(), p(), (S() === !0 || viewerMode === !0) && (o.onPeriodicRun(),
g());
}, 1e3), o.onReady();
}, o.addListener("onReady", function() {
function t(n) {
if (n = n || "default", s != n) {
var e = "less!themes/" + n;
-1 !== baseDir.indexOf("-min") && (e = "css!themes/" + n), requirejs.undef(e), require([ e ]),
s = n;
}
}
viewerMode || "vertical" != r.layoutOrientation || N.css("right", parseInt(N.css("right")) + I.width());
var i = !1;
n(".modal").on("show.bs.modal", function() {
Y.collapse("hide"), L.collapse("hide"), i = !0;
}).on("shown.bs.modal", function() {
var e = n(this);
setTimeout(function() {
e.find("input:enabled:visible:first").focus();
}, 50);
}).on("hidden.bs.modal", function() {
i = !1, z && z.focus() || U.focus(), t(localStorage.theme);
}).keyup(function(e) {
13 != e.which || n(e.target).is("textarea") || n(this).find(".modal-footer a:last").click();
}), n(".collapse-save-as a").click(function() {
Y.collapse("hide");
}), l.stopCallback = function(e, t) {
return q || H || i || n(t).is("input, select, textarea:not(.ace_text-input)");
}, n(".action-insert-link").click(function(e) {
var t = a.getInputTextValue(n("#input-insert-link"), e);
void 0 !== t && (G.insertLinkCallback(t), G.insertLinkCallback = void 0);
}), n(".action-insert-image").click(function(e) {
var t = a.getInputTextValue(n("#input-insert-image"), e);
void 0 !== t && (G.insertLinkCallback(t), G.insertLinkCallback = void 0);
}), n(".modal-insert-link, .modal-insert-image").on("hidden.bs.modal", function() {
void 0 !== G.insertLinkCallback && (G.insertLinkCallback(null), G.insertLinkCallback = void 0);
}), n(".action-load-settings").click(function() {
f();
}), n(".action-apply-settings").click(function(n) {
b(n), n.isPropagationStopped() || window.location.reload();
});
var s = theme;
F = n("#input-settings-theme"), F.on("change", function() {
t(this.value);
}), n(".action-import-settings").click(function() {
n("#input-file-import-settings").click();
}), n("#input-file-import-settings").change(function(t) {
var i = (t.dataTransfer || t.target).files;
n(".modal-settings").modal("hide"), e.each(i, function(n) {
var e = new FileReader();
e.onload = function(n) {
return function(e) {
var t = e.target.result;
try {
JSON.parse(t);
} catch (e) {
return o.onError(n.name + " is not a valid JSON file."), void 0;
}
localStorage.settings = t, window.location.reload();
};
}(n);
var t = n.slice(0, IMPORT_FILE_MAX_CONTENT_SIZE);
e.readAsText(t);
});
}), n(".action-export-settings").click(function() {
a.saveAs(JSON.stringify(r), "StackEdit Settings.json");
}), n(".action-default-settings").click(function() {
localStorage.removeItem("settings"), localStorage.removeItem("theme"), window.location.reload();
}), n(".action-app-reset").click(function() {
localStorage.clear(), window.location.reload();
}), n(".action-reset-input").click(function() {
a.resetModalInputs();
}), n(".tooltip-lazy-rendering").tooltip({
container: ".modal-settings",
placement: "right",
trigger: "hover",
title: "Disable preview rendering while typing in order to offload CPU. Refresh preview after 500 ms of inactivity."
}), n(".tooltip-default-content").tooltip({
html: !0,
container: ".modal-settings",
placement: "right",
trigger: "hover",
title: "Thanks for supporting StackEdit by adding a backlink in your documents!"
});
var c = !1;
if (n(".tooltip-usercustom-extension").tooltip({
html: !0,
container: ".modal-settings",
placement: "right",
trigger: "manual",
title: d
}).click(function(e) {
n(this).tooltip("show"), n(document).on("click.tooltip-usercustom-extension", function() {
c = !1, n(".tooltip-usercustom-extension").tooltip("hide"), n(document).off("click.tooltip-usercustom-extension");
}), !c && e.stopPropagation(), c = !0;
}), e.each(document.querySelectorAll(".tooltip-template"), function(e) {
var t = n(e);
t.tooltip({
html: !0,
container: t.parents(".modal"),
placement: "right",
trigger: "manual",
title: u
}).click(function(e) {
t.tooltip("show"), n(document).on("click.tooltip-template", function() {
c = !1, n(".tooltip-template").tooltip("hide"), n(document).off("click.tooltip-template");
}), !c && e.stopPropagation(), c = !0;
});
}), n("div.dropdown-menu").click(function(n) {
n.stopPropagation();
}), n(".modal-non-unique").modal({
backdrop: "static",
keyboard: !1,
show: !1
}), n(".modal-oauth-redirect").modal({
backdrop: "static",
keyboard: !1,
show: !1
}), n(".action-oauth-redirect").click(function() {
O();
}), e.each(document.querySelectorAll("img"), function(e) {
var t = n(e), i = t.data("stackeditSrc");
i && t.attr("src", baseDir + "/img/" + i);
}), viewerMode === !1) {
var M = e.reduce(THEME_LIST, function(n, e, t) {
return n + '<option value="' + t + '">' + e + "</option>";
}, "");
document.getElementById("input-settings-theme").innerHTML = M;
}
}), G;
}), define("text!../WELCOME.md", [], function() {
return '\nWelcome to StackEdit! {#welcome}\n=====================\n\n\nHello, I am your first Markdown document within **StackEdit**[^stackedit]. Don\'t delete me, I can be helpful. I can be recovered anyway in the `Utils` tab of the <i class="icon-cog"></i> `Settings` dialog.\n\n----------\n\n\nDocuments\n---------\n\n**StackEdit** stores your documents in the browser local storage, which means all your documents are automatically saved locally and are accessible offline.\n\n> **NOTE:** This also means that your documents are not shared between different browsers or computers and that clearing your browser\'s data may **delete all of them!**\n\n#### <i class="icon-file"></i> Create a document\n\nYou can create a new document by clicking the <i class="icon-file"></i> button in the navigation bar. This will switch from the current document to the new one.\n\n#### <i class="icon-folder-open"></i> Switch to another document\n\nYou can list all your local documents and switch from one to another by clicking the <i class="icon-folder-open"></i> button in the navigation bar.\n\n#### <i class="icon-pencil"></i> Rename a document\n\nYou can rename the current document by clicking the document title in the navigation bar.\n\n#### <i class="icon-trash"></i> Delete a document\n\nYou can delete the current document by clicking the <i class="icon-trash"></i> button in the navigation bar.\n\n#### <i class="icon-hdd"></i> Save a document\n\nYou can save the current document to a file using the <i class="icon-hdd"></i> `Save as...` sub-menu.\n\n> **NOTE:** See [<i class="icon-share"></i> Publish a document](#publish-a-document) section for a description of the different outputs.\n\n\n----------\n\n\nSynchronization\n---------------\n\n**StackEdit** can be combined with **Google Drive** and **Dropbox** to have your documents centralized in the *Cloud*. The synchronization mechanism will take care of uploading your modifications or downloading the latest version of your documents.\n\n> **NOTE:** Full access to **Google Drive** or **Dropbox** is required to be able to import any document in StackEdit. Imported documents are downloaded in your browser and are not transmitted to a server.\n\n#### <i class="icon-download"></i> Import a document\n\nYou can import a document from the *Cloud* by going to the <i class="icon-provider-gdrive"></i> `Google Drive` or the <i class="icon-provider-dropbox"></i> `Dropbox` sub-menu and by clicking `Import from...`. Once imported, your document will be automatically synchronized with the **Google Drive** / **Dropbox** file.\n\n#### <i class="icon-upload"></i> Export a document\n\nYou can export any document by going to the <i class="icon-provider-gdrive"></i> `Google Drive` or the <i class="icon-provider-dropbox"></i> `Dropbox` sub-menu and by clicking `Export to...`. Even if your document is already synchronized with **Google Drive** or **Dropbox**, you can export it to a another location. **StackEdit** can synchronize one document with multiple locations.\n\n#### <i class="icon-refresh"></i> Synchronize a document\n\nOnce your document is linked to a **Google Drive** or a **Dropbox** file, **StackEdit** will periodically (every 3 minutes) synchronize it by downloading/uploading any modification. Any conflict will be detected, and a local copy of your document will be created as a backup if necessary.\n\nIf you just have modified your document and you want to force the synchronization, click the <i class="icon-refresh"></i> button in the navigation bar.\n\n> **NOTE:** The <i class="icon-refresh"></i> button is disabled when:\n> \n> - you are offline,\n> - or the document is not synchronized with any location,\n> - or the document has not been modified since the last synchronization.\n\n#### <i class="icon-refresh"></i> Manage document synchronization\n\nSince one document can be synchronized with multiple locations, you can list and manage synchronized locations by clicking <i class="icon-refresh"></i> `Manage synchronization` in the <i class="icon-stackedit"></i> menu. This will open a dialog box allowing you to add or remove synchronization links that are associated to your document.\n\n> **NOTE:** If you delete the file from **Google Drive** or from **Dropbox**, the document will no longer be synchronized with that location.\n\n----------\n\n\nPublication\n-----------\n\nOnce you are happy with your document, you can publish it on different websites directly from **StackEdit**. As for now, **StackEdit** can publish on **Blogger**, **Dropbox**, **Gist**, **GitHub**, **Google Drive**, **Tumblr**, **WordPress** and on any SSH server.\n\n#### <i class="icon-share"></i> Publish a document\n\nYou can publish your document by going to the <i class="icon-share"></i> `Publish on` sub-menu and by choosing a website. In the dialog box, you can choose the publication format:\n\n- Markdown, to publish the Markdown text on a website that can interpret it (**GitHub** for instance),\n- HTML, to publish the document converted into HTML (on a blog for instance),\n- Template, to have a full control of the output.\n\n> **NOTE:** The default template is a simple webpage wrapping your document in HTML format. You can customize it in the `Publish` tab of the <i class="icon-cog"></i> `Settings` dialog.\n\n#### <i class="icon-share"></i> Update a publication\n\nAfter publishing, **StackEdit** will keep your document linked to that publish location so that you can update it easily. Once you have modified your document and you want to update your publication, click on the <i class="icon-share"></i> button in the navigation bar.\n\n> **NOTE:** The <i class="icon-share"></i> button is disabled when:\n> \n> - you are offline,\n> - or the document has not been published anywhere.\n\n#### <i class="icon-share"></i> Manage document publication\n\nSince one document can be published on multiple locations, you can list and manage publish locations by clicking <i class="icon-share"></i> `Manage publication` in the <i class="icon-stackedit"></i> menu. This will open a dialog box allowing you to remove publication links that are associated to your document.\n\n> **NOTE:** In some cases, if you remove the file from the website or the post from the blog, the document will no longer be published on that location.\n\n----------\n\n\nMarkdown Extra\n--------------\n\n**StackEdit** supports **Markdown Extra**, which extends **Markdown** syntax with some nice features.\n\n\n### Tables\n\n**Markdown Extra** has a special syntax for tables:\n\nItem | Value\n--------- | -----\nComputer | \\$1600\nPhone | \\$12\nPipe | \\$1\n\nYou can specify column alignment with one or two colons:\n\n| Item | Value | Qty |\n| :-------- | ------:| :--: |\n| Computer | \\$1600 | 5 |\n| Phone | \\$12 | 12 |\n| Pipe | \\$1 | 234 |\n\n\n### Definition Lists\n\n**Markdown Extra** has a special syntax for definition lists too:\n\nTerm 1\nTerm 2\n: Definition A\n: Definition B\n\nTerm 3\n\n: Definition C\n\n: Definition D\n\n > part of definition D\n\n\n### Fenced code blocks\n\n**GitHub**\'s fenced code blocks are also supported with **Prettify** syntax highlighting:\n\n```\n// Foo\nvar bar = 0;\n```\n\n> **NOTE:** To use **Highlight.js** instead of **Prettify**, just configure the `Markdown Extra` extension in the <i class="icon-cog"></i> `Settings` dialog.\n\n\n### Special Attributes\n\nWith **Markdown Extra**, you can specify `class` and `id` attributes on headers and fenced code blocks just like this:\n\n##### Header example {#my-header}\n\n``` {#my-id .my-class}\nvar foo = bar;\n```\n\nThen you can create cross-references like this: [beginning of the document](#welcome).\n\n\n### Footnotes\n\nYou can create footnotes like this[^footnote].\n\n [^footnote]: Here is the *text* of the **footnote**.\n\n\n### Table of contents\n\nYou can insert a table of contents using the marker `[TOC]`:\n\n[TOC]\n\n\n### MathJax\n \nYou can render *LaTeX* mathematical expressions using **MathJax**, as on [math.stackexchange.com][1]:\n\nThe *Gamma function* satisfying $\\Gamma(n) = (n-1)!\\quad\\forall\nn\\in\\mathbb N$ is via through the Euler integral\n\n$$\n\\Gamma(z) = \\int_0^\\infty t^{z-1}e^{-t}dt\\,.\n$$\n\n> **NOTE:** When exporting, make sure you include MathJax to render mathematical expression correctly. Your page/template should include something like: \n\n```\n<script type="text/javascript" src="http://benweet.github.io/stackedit/lib/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>\n```\n\n> **NOTE:** You can find more information:\n>\n> - about **Markdown** syntax [here][2],\n> - about **Markdown Extra** extension [here][3],\n> - about **Prettify** syntax highlighting [here][4].\n> - about **Highlight.js** syntax highlighting [here][5].\n\n [^stackedit]: StackEdit is a free, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites.\n\n\n [1]: http://math.stackexchange.com/\n [2]: http://daringfireball.net/projects/markdown/syntax "Markdown"\n [3]: https://github.com/jmcmanus/pagedown-extra "Pagedown Extra"\n [4]: https://code.google.com/p/google-code-prettify/\n [5]: http://softwaremaniacs.org/soft/highlight/en/';
}), define("fileMgr", [ "jquery", "underscore", "core", "utils", "settings", "eventMgr", "fileSystem", "classes/FileDescriptor", "text!../WELCOME.md" ], function(n, e, t, i, a, r, o, s, l) {
var c = {};
c.currentFile = void 0, c.selectFile = function(i) {
if (i = i || c.currentFile, void 0 === i) {
var a = e.size(o);
i = 0 === a ? c.createFile(WELCOME_DOCUMENT_TITLE, l) : e.max(o, function(n) {
return n.selectTime || 0;
});
}
c.currentFile !== i && (c.currentFile = i, i.selectTime = new Date().getTime(),
r.onFileSelected(i), n(".action-edit-document").toggleClass("hide", i.fileIndex != TEMPORARY_FILE_INDEX)),
t.initEditor(i);
}, c.createFile = function(n, t, l, c) {
if (t = void 0 !== t ? t : a.defaultContent, !n) {
n = DEFAULT_FILE_TITLE;
for (var M = 2; e.some(o, function(e) {
return e.title == n;
}); ) n = DEFAULT_FILE_TITLE + M++;
}
var u = TEMPORARY_FILE_INDEX;
if (!c) do u = "file." + i.randomString(); while (e.has(o, u));
l = l || {};
var d = e.reduce(l, function(n, e) {
return i.storeAttributes(e), n + e.syncIndex + ";";
}, ";");
localStorage[u + ".title"] = n, localStorage[u + ".content"] = t, localStorage[u + ".sync"] = d,
localStorage[u + ".publish"] = ";";
var h = new s(u, n, l);
return c || (i.appendIndexToArray("file.list", u), o[u] = h, r.onFileCreated(h)),
h;
}, c.deleteFile = function(n) {
n = n || c.currentFile, i.removeIndexFromArray("file.list", n.fileIndex), delete o[n.fileIndex],
c.currentFile === n && (c.currentFile = void 0, c.selectFile()), e.each(n.syncLocations, function(n) {
localStorage.removeItem(n.syncIndex);
}), e.each(n.publishLocations, function(n) {
localStorage.removeItem(n.publishIndex);
}), localStorage.removeItem(n.fileIndex + ".title"), localStorage.removeItem(n.fileIndex + ".content"),
localStorage.removeItem(n.fileIndex + ".sync"), localStorage.removeItem(n.fileIndex + ".publish"),
localStorage.removeItem(n.fileIndex + ".selectTime"), localStorage.removeItem(n.fileIndex + ".editorStart"),
localStorage.removeItem(n.fileIndex + ".editorEnd"), localStorage.removeItem(n.fileIndex + ".editorScrollTop"),
localStorage.removeItem(n.fileIndex + ".previewScrollTop"), r.onFileDeleted(n);
}, c.getFileFromSyncIndex = function(n) {
return e.find(o, function(t) {
return e.has(t.syncLocations, n);
});
}, c.getSyncAttributes = function(n) {
var e = c.getFileFromSyncIndex(n);
return e && e.syncLocations[n];
}, c.getFileFromPublishIndex = function(n) {
return e.find(o, function(t) {
return e.has(t.publishLocations, n);
});
};
var M = void 0;
return r.addListener("onAceCreated", function(n) {
M = n;
}), r.addListener("onReady", function() {
function t() {
a.addClass("hide"), i.removeClass("hide");
var e = n.trim(a.val()), t = c.currentFile;
e && e != t.title && (t.title = e, r.onTitleChanged(t)), a.val(t.title), M && M.focus() || $editorElt.focus();
}
$editorElt = n("#wmd-input"), c.selectFile();
var i = n(".file-title-navbar"), a = n(".input-file-title");
n(".action-create-file").click(function() {
var n = c.createFile();
c.selectFile(n), i.click();
}), n(".action-remove-file").click(function() {
c.deleteFile();
}), i.click(function() {
if (viewerMode !== !0) {
i.addClass("hide");
var n = a.removeClass("hide");
e.defer(function() {
n.focus().get(0).select();
});
}
}), a.blur(function() {
t();
}).keyup(function(n) {
13 == n.keyCode && t(), 27 == n.keyCode && (a.val(""), t());
}), n(".action-open-stackedit").click(function() {
window.location.href = ".";
}), n(".action-edit-document").click(function() {
var n = $editorElt.val();
void 0 !== M && (n = M.getValue());
var e = c.currentFile.title, t = c.createFile(e, n);
c.selectFile(t), window.location.href = ".";
}), n(".action-welcome-file").click(function() {
var n = c.createFile(WELCOME_DOCUMENT_TITLE, l);
c.selectFile(n);
});
}), r.onFileMgrCreated(c), c;
}), define("classes/Provider", [], function() {
function n(n, e) {
this.providerId = n, this.providerName = e;
}
return n;
}), define("classes/AsyncTask", [ "underscore", "utils", "eventMgr", "config" ], function(n, e, t) {
function i() {
this.finished = !1, this.timeout = ASYNC_TASK_DEFAULT_TIMEOUT, this.retryCounter = 0,
this.runCallbacks = [], this.successCallbacks = [], this.errorCallbacks = [];
}
function a() {
if (u !== !1) {
if (l === !0) return s + M.timeout < e.currentTime && M.error(new Error("A timeout occurred.")),
void 0;
if (void 0 === M) {
if (0 === o.length) return;
M = o.shift(), s = e.currentTime, c === !1 && (c = !0, t.onAsyncRunning(!0));
}
s <= e.currentTime && (l = !0, M.chain());
}
}
function r(e, i, r) {
try {
n.each(i, function(n) {
n(r);
});
} finally {
e.finished = !0, M === e && (M = void 0, l = !1), 0 === o.length ? (c = !1, t.onAsyncRunning(!1)) : a();
}
}
var o = [];
i.prototype.onRun = function(n) {
this.runCallbacks.push(n);
}, i.prototype.onSuccess = function(n) {
this.successCallbacks.push(n);
}, i.prototype.onError = function(n) {
this.errorCallbacks.push(n);
};
var s = 0;
i.prototype.chain = function(n) {
if (s = e.currentTime, e.logStackTrace(), this.finished !== !0) {
if (void 0 === this.queue && (this.queue = this.runCallbacks.slice()), void 0 !== n) return n(),
void 0;
if (0 === this.queue.length) return r(this, this.successCallbacks), void 0;
var t = this.queue.shift();
t();
}
}, i.prototype.error = function(n) {
if (e.logStackTrace(), this.finished !== !0) throw n = n || new Error("Unknown error"),
n.message && t.onError(n), r(this, this.errorCallbacks, n), n;
};
var l = !1;
i.prototype.retry = function(n, t) {
if (this.finished !== !0) {
if (t = t || 5, this.queue = void 0, this.retryCounter >= t) return this.error(n),
void 0;
var i = 1e3 * Math.pow(2, this.retryCounter++);
s = e.currentTime + i, l = !1, a();
}
}, i.prototype.enqueue = function() {
o.push(this), a();
};
var c = !1, M = void 0, u = !1;
return t.addListener("onUserActive", function() {
u = !0;
}), t.addListener("onPeriodicRun", a), i;
}), define("helpers/dropboxHelper", [ "jquery", "underscore", "core", "eventMgr", "classes/AsyncTask", "config" ], function(n, e, t, i, a) {
function r(e) {
e.onRun(function() {
return d === !0 ? (c = void 0, e.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : void 0 !== c ? (e.chain(), void 0) : (n.ajax({
url: "lib/dropbox.min.js",
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
c = new Dropbox.Client({
key: DROPBOX_APP_KEY,
secret: DROPBOX_APP_SECRET
}), c.authDriver(new Dropbox.Drivers.Popup({
receiverUrl: BASE_URL + "dropbox-oauth-receiver.html",
rememberUser: !0
})), e.chain();
}).fail(function(n) {
var t = {
status: n.status,
responseText: n.statusText
};
s(t, e);
}), void 0);
});
}
function o(n) {
n.onRun(function() {
function e() {
t.oauthRedirect("Dropbox", function() {
n.chain(a);
});
}
function a() {
r === !1 && (i.onMessage("Please make sure the Dropbox authorization popup is not blocked by your browser."),
n.timeout = ASYNC_TASK_LONG_TIMEOUT), c.authenticate({
interactive: !r
}, function(t, i) {
return i.authState === Dropbox.Client.DONE ? (M = !0, n.chain(), void 0) : r === !0 ? (r = !1,
n.chain(e), void 0) : (n.error(new Error("Access to Dropbox account is not authorized.")),
void 0);
});
}
if (M === !0) return n.chain(), void 0;
var r = !0;
n.chain(a);
});
}
function s(n, i) {
var a = !0;
if (n) if (logger.error(n), "string" == typeof n) a = n; else {
if (a = "Dropbox error (" + n.status + ": " + n.responseText + ").", 401 === n.status || 403 === n.status) return M = !1,
a = "Access to Dropbox account is not authorized.", i.retry(new Error(a), 1), void 0;
if (400 === n.status && -1 !== n.responseText.indexOf("oauth_nonce")) return e.each(e.keys(localStorage), function(n) {
0 === n.indexOf("dropbox-auth") && localStorage.removeItem(n);
}), M = !1, i.retry(new Error(a), 1), void 0;
n.status <= 0 && (c = void 0, M = !1, t.setOffline(), a = "|stopPublish");
}
i.error(new Error(a));
}
function l(e) {
e.onRun(function() {
return h === !0 ? (e.chain(), void 0) : (n.ajax({
url: "https://www.dropbox.com/static/api/1/dropbox.js",
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
h = !0, e.chain();
}).fail(function(n) {
var t = {
status: n.status,
responseText: n.statusText
};
s(t, e);
}), void 0);
});
}
var c = void 0, M = !1, u = {}, d = !1;
i.addListener("onOfflineChanged", function(n) {
d = n;
}), u.upload = function(n, e, t) {
var i = void 0, l = new a();
r(l), o(l), l.onRun(function() {
c.writeFile(n, e, function(e, t) {
return e ? (400 === e.status && (e = 'Could not upload document into path "' + n + '".'),
s(e, l), void 0) : (i = t, l.chain(), void 0);
});
}), l.onSuccess(function() {
t(void 0, i);
}), l.onError(function(n) {
t(n);
}), l.enqueue();
}, u.checkChanges = function(n, e) {
var t = [], i = n || 0, l = new a();
r(l), o(l), l.onRun(function() {
function n() {
c.pullChanges(i, function(e, a) {
return e ? (s(e, l), void 0) : (i = a.cursor(), void 0 !== a.changes && (t = t.concat(a.changes)),
a.shouldPullAgain ? l.chain(n) : l.chain(), void 0);
});
}
l.chain(n);
}), l.onSuccess(function() {
e(void 0, t, i);
}), l.onError(function(n) {
e(n);
}), l.enqueue();
}, u.downloadMetadata = function(n, e) {
var t = [], i = new a();
r(i), o(i), i.onRun(function() {
function e() {
if (0 === n.length) return i.chain(), void 0;
var a = n[0];
c.stat(a, function(a, r) {
return r ? (t.push(r), n.shift(), i.chain(e), void 0) : (s(a, i), void 0);
});
}
i.chain(e);
}), i.onSuccess(function() {
e(void 0, t);
}), i.onError(function(n) {
e(n);
}), i.enqueue();
}, u.downloadContent = function(n, e) {
var t = [], i = new a();
r(i), o(i), i.onRun(function() {
function e() {
if (0 === n.length) return i.chain(), void 0;
var a = n[0];
t.push(a);
var r = void 0;
return a.isFile === !0 ? r = a : void 0 !== a.wasRemoved && (r = a.stat), r ? (c.readFile(r.path, function(t, a) {
return a ? (r.content = a, n.shift(), i.chain(e), void 0) : (s(t, i), void 0);
}), void 0) : (n.shift(), i.chain(e), void 0);
}
i.chain(e);
}), i.onSuccess(function() {
e(void 0, t);
}), i.onError(function(n) {
e(n);
}), i.enqueue();
};
var h = !1;
return u.picker = function(n) {
var e = [], t = new a();
t.timeout = ASYNC_TASK_LONG_TIMEOUT, r(t), l(t), t.onRun(function() {
var n = {};
n.multiselect = !0, n.linkType = "direct", n.success = function(n) {
for (var i = 0; i < n.length; i++) {
var a = n[i].link;
a = a.replace(/.*\/view\/[^\/]*/, ""), e.push(decodeURI(a));
}
t.chain();
}, n.cancel = function() {
t.chain();
}, Dropbox.choose(n), i.onMessage("Please make sure the Dropbox chooser popup is not blocked by your browser.");
}), t.onSuccess(function() {
n(void 0, e);
}), t.onError(function(e) {
n(e);
}), t.enqueue();
}, u;
}), define("providers/dropboxProvider", [ "underscore", "utils", "classes/Provider", "eventMgr", "fileMgr", "helpers/dropboxHelper" ], function(n, e, t, i, a, r) {
function o(n) {
return void 0 === n ? void 0 : n.match(/^[^\\<>:"\|?\*]+$/) ? 0 !== n.indexOf("/") ? "/" + n : n : (i.onError('"' + n + '" contains invalid characters.'),
void 0);
}
function s(n) {
return "sync." + M + "." + encodeURIComponent(n.toLowerCase());
}
function l(n, t, i) {
var a = {};
return a.provider = u, a.path = n, a.version = t, a.contentCRC = e.crc32(i), a.syncIndex = s(n),
a;
}
function c(e) {
r.downloadMetadata(e, function(e, t) {
e || r.downloadContent(t, function(e, t) {
if (!e) {
var r = [];
n.each(t, function(n) {
var e = l(n.path, n.versionTag, n.content), t = {};
t[e.syncIndex] = e;
var i = a.createFile(n.name, n.content, t);
a.selectFile(i), r.push(i);
}), 0 !== r.length && i.onSyncImportSuccess(r, u);
}
});
});
}
var M = "dropbox", u = new t(M, "Dropbox");
return u.defaultPublishFormat = "template", u.importFiles = function() {
r.picker(function(e, t) {
if (!e && 0 !== t.length) {
var r = [];
n.each(t, function(n) {
var e = s(n), t = a.getFileFromSyncIndex(e);
return void 0 !== t ? (i.onError('"' + t.title + '" was already imported.'), void 0) : (r.push(n),
void 0);
}), c(r);
}
});
}, u.exportFile = function(n, t, c, M) {
var u = e.getInputTextValue("#input-sync-export-dropbox-path", n);
if (u = o(u), void 0 === u) return M(!0), void 0;
var d = s(u), h = a.getFileFromSyncIndex(d);
if (void 0 !== h) {
var S = h.title;
return i.onError('File path is already synchronized with "' + S + '".'), M(!0),
void 0;
}
r.upload(u, c, function(n, e) {
if (n) return M(n), void 0;
var t = l(e.path, e.versionTag, c);
M(void 0, t);
});
}, u.syncUp = function(n, e, t, i, a, o) {
var s = a.contentCRC;
return e == s ? (o(void 0, !1), void 0) : (r.upload(a.path, n, function(n, t) {
return n ? (o(n, !0), void 0) : (a.version = t.versionTag, a.contentCRC = e, o(void 0, !0),
void 0);
}), void 0);
}, u.syncDown = function(t) {
var o = localStorage[M + ".lastChangeId"];
r.checkChanges(o, function(o, l, c) {
if (o) return t(o), void 0;
var u = [];
n.each(l, function(n) {
var e = s(n.path), t = a.getSyncAttributes(e);
return void 0 !== t ? (n.syncAttributes = t, n.wasRemoved === !0 ? (u.push(n), void 0) : (t.version != n.stat.versionTag && u.push(n),
void 0)) : void 0;
}), r.downloadContent(u, function(r, o) {
return r ? (t(r), void 0) : (n.each(o, function(n) {
var t = n.syncAttributes, r = t.syncIndex, o = a.getFileFromSyncIndex(r);
if (void 0 !== o) {
var s = o.title;
if (n.wasRemoved === !0) return i.onError('"' + s + '" has been removed from Dropbox.'),
o.removeSyncLocation(t), i.onSyncRemoved(o, t), void 0;
var l = o.content, c = t.contentCRC != e.crc32(l), M = n.stat, u = e.crc32(M.content), d = t.contentCRC != u, h = l != M.content;
h === !0 && c === !0 && d === !0 && (a.createFile(s + " (backup)", l), i.onMessage('Conflict detected on "' + s + '". A backup has been created locally.')),
h && d === !0 && (o.content = M.content, i.onContentChanged(o), i.onMessage('"' + s + '" has been updated from Dropbox.'),
a.currentFile === o && a.selectFile()), t.version = M.versionTag, t.contentCRC = u,
e.storeAttributes(t);
}
}), localStorage[M + ".lastChangeId"] = c, t(), void 0);
});
});
}, u.publish = function(n, e, t, i, a) {
var s = o(n.path);
return void 0 === s ? (a(!0), void 0) : (r.upload(s, i, a), void 0);
}, u.newPublishAttributes = function(n) {
var t = {};
return t.path = e.getInputTextValue("#input-publish-dropbox-path", n), n.isPropagationStopped() ? void 0 : t;
}, u;
}), define("helpers/googleHelper", [ "underscore", "jquery", "core", "utils", "settings", "eventMgr", "classes/AsyncTask", "config" ], function(n, e, t, i, a, r, o) {
function s(n) {
n.onRun(function() {
return S === !0 ? (u = !1, n.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : u === !0 ? (n.chain(), void 0) : (delayedFunction = function() {
gapi.load("client,drive-realtime", function() {
u = !0, n.chain();
});
}, e.ajax({
url: "https://apis.google.com/js/api.js?onload=runDelayedFunction",
dataType: "script",
timeout: AJAX_TIMEOUT
}).fail(function(e) {
var t = {
code: e.status,
message: e.statusText
};
c(t, n);
}), void 0);
});
}
function l(e, i) {
e.onRun(function() {
function o() {
t.oauthRedirect("Google", function() {
e.chain(s);
});
}
function s() {
c === !1 && (r.onMessage("Please make sure the Google authorization popup is not blocked by your browser."),
e.timeout = ASYNC_TASK_LONG_TIMEOUT), gapi.auth.authorize({
client_id: GOOGLE_CLIENT_ID,
scope: l,
immediate: c
}, function(n) {
gapi.client.load("drive", "v2", function() {
return !n || n.error ? u === !0 && c === !0 ? (c = !1, e.chain(o), void 0) : (e.error(new Error("Access to Google account is not authorized.")),
void 0) : (d[i] = !0, e.chain(), void 0);
});
});
}
if (n.has(d, i)) return e.chain(), void 0;
var l = void 0;
"gdrive" == i && a.gdriveFullAccess === !0 ? l = [ "https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive" ] : "gdrive" == i && a.gdriveFullAccess === !1 ? l = [ "https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive.file" ] : "blogger" == i ? l = [ "https://www.googleapis.com/auth/blogger" ] : "picasa" == i && (l = [ "https://picasaweb.google.com/data/" ]);
var c = !0;
e.chain(s);
});
}
function c(n, e) {
var i = void 0;
if (n) if (logger.error(n), "string" == typeof n) i = n; else {
if (i = "Google error (" + n.code + ": " + n.message + ").", n.code >= 500 && n.code < 600) return e.retry(new Error(i)),
void 0;
if (401 === n.code || 403 === n.code || "token_refresh_required" == n.code) return d = {},
i = "Access to Google account is not authorized.", e.retry(new Error(i), 1), void 0;
(0 === n.code || -1 === n.code) && (u = !1, d = {}, t.setOffline(), i = "|stopPublish");
}
e.error(new Error(i));
}
function M(n) {
n.onRun(function() {
return p === !0 ? (n.chain(), void 0) : (e.ajax({
url: "//www.google.com/jsapi",
data: {
key: GOOGLE_API_KEY
},
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
google.load("picker", "1", {
callback: function() {
n.chain();
}
}), p = !0;
}).fail(function(e) {
var t = {
code: e.status,
message: e.statusText
};
c(t, n);
}), void 0);
});
}
var u = !1, d = {}, h = {}, S = !1;
r.addListener("onOfflineChanged", function(n) {
S = n;
}), h.forceGdriveAuthenticate = function() {
d = n.omit(d, "gdrive");
var e = new o();
s(e), l(e, "gdrive"), e.enqueue();
}, h.upload = function(n, e, t, a, r, M, u) {
var d = void 0, h = new o();
s(h), l(h, "gdrive"), h.onRun(function() {
var o = "-------314159265358979323846", s = "\r\n--" + o + "\r\n", l = "\r\n--" + o + "--";
r = r || "text/x-markdown";
var M = {
title: t,
mimeType: r
};
e && (M.parents = [ {
kind: "drive#fileLink",
id: e
} ]);
var u = "/upload/drive/v2/files", S = "POST";
n && (u += "/" + n, S = "PUT");
var p = {
"Content-Type": 'multipart/mixed; boundary="' + o + '"'
}, m = i.encodeBase64(a), g = [ s, "Content-Type: application/json\r\n\r\n", JSON.stringify(M), s, "Content-Type: ", r, "\r\n", "Content-Transfer-Encoding: base64\r\n", "\r\n", m, l ].join(""), f = gapi.client.request({
path: u,
method: S,
params: {
uploadType: "multipart"
},
headers: p,
body: g
});
f.execute(function(e) {
if (e && e.id) return d = e, d.content = a, h.chain(), void 0;
var t = e.error;
void 0 !== t && void 0 !== n && (404 === t.code ? t = 'File ID "' + n + '" not found on Google Drive.|removePublish' : 412 === t.code && (localStorage.removeItem("gdrive.lastChangeId"),
t = 'Conflict on file ID "' + n + '". Please restart the synchronization.')), c(t, h);
});
}), h.onSuccess(function() {
u(void 0, d);
}), h.onError(function(n) {
u(n);
}), h.enqueue();
}, h.rename = function(n, e, t) {
var i = void 0, a = new o();
s(a), l(a, "gdrive"), a.onRun(function() {
var t = {
title: e
}, r = gapi.client.drive.files.patch({
fileId: n,
resource: t
});
r.execute(function(e) {
if (e && e.id) return i = e, a.chain(), void 0;
var t = e.error;
void 0 !== t && void 0 !== n && 404 === t.code && (t = 'File ID "' + n + '" not found on Google Drive.|removePublish'),
c(t, a);
});
}), a.onSuccess(function() {
t(void 0, i);
}), a.onError(function(n) {
t(n);
}), a.enqueue();
}, h.createRealtimeFile = function(n, e, t) {
var i = void 0, a = new o();
s(a), l(a, "gdrive"), a.onRun(function() {
var t = {
title: e,
mimeType: "application/vnd.google-apps.drive-sdk"
};
void 0 !== n && (t.parents = [ {
kind: "drive#fileLink",
id: n
} ]);
var r = gapi.client.drive.files.insert({
resource: t
});
r.execute(function(n) {
return n && n.id ? (i = n, a.chain(), void 0) : (c(n.error, a), void 0);
});
}), a.onSuccess(function() {
t(void 0, i);
}), a.onError(function(n) {
t(n);
}), a.enqueue();
}, h.uploadImg = function(n, t, i, a) {
var r = void 0, M = new o();
s(M), l(M, "picasa"), M.onRun(function() {
var a = {
Slug: n
};
n.match(/.jpe?g$/) ? a["Content-Type"] = "image/jpeg" : n.match(/.png$/) ? a["Content-Type"] = "image/png" : n.match(/.gif$/) && (a["Content-Type"] = "image/gif");
var o = gapi.auth.getToken();
o && (a.Authorization = "Bearer " + o.access_token), e.ajax({
url: PICASA_PROXY_URL + "upload/" + i,
headers: a,
data: t,
processData: !1,
dataType: "xml",
timeout: AJAX_TIMEOUT,
type: "POST"
}).done(function(n) {
r = n, M.chain();
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
200 == e.code && (e.message = n.responseText), c(e, M);
});
}), M.onSuccess(function() {
a(void 0, r);
}), M.onError(function(n) {
a(n);
}), M.enqueue();
}, h.checkChanges = function(n, e) {
var t = [], i = n || 0, a = new o();
s(a), l(a, "gdrive"), a.onRun(function() {
function n() {
var r = void 0;
r = void 0 === e ? gapi.client.drive.changes.list({
startChangeId: i + 1
}) : gapi.client.drive.changes.list({
pageToken: e
}), r.execute(function(r) {
return r && r.largestChangeId ? (i = r.largestChangeId, e = r.nextPageToken, void 0 !== r.items && (t = t.concat(r.items)),
void 0 !== e ? a.chain(n) : a.chain(), void 0) : (c(r.error, a), void 0);
});
}
var e = void 0;
a.chain(n);
}), a.onSuccess(function() {
e(void 0, t, i);
}), a.onError(function(n) {
e(n);
}), a.enqueue();
}, h.downloadMetadata = function(n, t, i) {
var a = [], r = new o();
s(r), i || l(r, "gdrive"), r.onRun(function() {
function t() {
if (0 === n.length) return r.chain(), void 0;
var i = n[0], o = {}, s = gapi.auth.getToken();
s && (o.Authorization = "Bearer " + s.access_token), e.ajax({
url: "https://www.googleapis.com/drive/v2/files/" + i,
headers: o,
data: {
key: GOOGLE_API_KEY
},
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(e) {
a.push(e), n.shift(), r.chain(t);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
404 === e.code && (e = 'File ID "' + i + '" not found on Google Drive.'), c(e, r);
});
}
r.chain(t);
}), r.onSuccess(function() {
t(void 0, a);
}), r.onError(function(n) {
t(n);
}), r.enqueue();
}, h.downloadContent = function(n, t, i) {
var a = [], r = new o();
r.timeout = ASYNC_TASK_LONG_TIMEOUT, s(r), i || l(r, "gdrive"), r.onRun(function() {
function t() {
if (0 === n.length) return r.chain(), void 0;
var i = n[0];
a.push(i);
var o = void 0;
if ("drive#file" == i.kind ? o = i : "drive#change" == i.kind && (o = i.file), !o) return n.shift(),
r.chain(t), void 0;
if (0 === o.mimeType.indexOf("application/vnd.google-apps.drive-sdk")) return o.content = "",
o.isRealtime = !0, n.shift(), r.chain(t), void 0;
var s = {}, l = gapi.auth.getToken();
l && (s.Authorization = "Bearer " + l.access_token), e.ajax({
url: o.downloadUrl,
headers: s,
data: {
key: GOOGLE_API_KEY
},
dataType: "text",
timeout: AJAX_TIMEOUT
}).done(function(e) {
o.content = e, n.shift(), r.chain(t);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
c(e, r);
});
}
r.chain(t);
}), r.onSuccess(function() {
t(void 0, a);
}), r.onError(function(n) {
t(n);
}), r.enqueue();
}, h.loadRealtime = function(n, e, t, i) {
var a = void 0, r = new o();
s(r), l(r, "gdrive"), r.onRun(function() {
gapi.drive.realtime.load(n, function(n) {
a = n, r.chain();
}, function(n) {
var t = n.createString(e);
n.getRoot().set("content", t);
}, function(n) {
i(n), r.error(new Error(n.message));
});
}), r.onSuccess(function() {
t(void 0, a);
}), r.onError(function(n) {
t(n);
}), r.enqueue();
};
var p = !1;
return h.picker = function(n, t) {
function a() {
void 0 !== l && (l.setVisible(!1), e(".modal-backdrop, .picker").remove());
}
var r = [], l = void 0, c = new o();
c.timeout = ASYNC_TASK_LONG_TIMEOUT, s(c), M(c), c.onRun(function() {
var n = new google.picker.PickerBuilder();
if (n.setAppId(GOOGLE_DRIVE_APP_ID), "doc" == t) {
var o = new google.picker.DocsView(google.picker.ViewId.DOCS);
o.setIncludeFolders(!0), o.setMimeTypes([ "text/x-markdown", "text/plain", "application/octet-stream", "application/vnd.google-apps.drive-sdk." + GOOGLE_DRIVE_APP_ID ].join(",")),
n.enableFeature(google.picker.Feature.NAV_HIDDEN), n.enableFeature(google.picker.Feature.MULTISELECT_ENABLED),
n.addView(o);
} else if ("folder" == t) {
var o = new google.picker.DocsView(google.picker.ViewId.FOLDERS);
o.setIncludeFolders(!0), o.setSelectFolderEnabled(!0), o.setMimeTypes("application/vnd.google-apps.folder"),
n.enableFeature(google.picker.Feature.NAV_HIDDEN), n.addView(o);
} else "img" == t && (n.addView(google.picker.ViewId.PHOTOS), n.addView(google.picker.ViewId.PHOTO_UPLOAD));
n.setCallback(function(n) {
(n.action == google.picker.Action.PICKED || n.action == google.picker.Action.CANCEL) && (n.action == google.picker.Action.PICKED && (r = n.docs),
a(), c.chain());
}), l = n.build(), e(i.createBackdrop()).click(function() {
a(), c.chain();
}), l.setVisible(!0);
}), c.onSuccess(function() {
n(void 0, r);
}), c.onError(function(e) {
a(), n(e);
}), c.enqueue();
}, h.uploadBlogger = function(n, t, i, a, r, M, u) {
var d = new o();
s(d), l(d, "blogger"), d.onRun(function() {
function o() {
var n = "https://www.googleapis.com/blogger/v3/blogs/" + t + "/posts/", o = {
kind: "blogger#post",
blog: {
id: t
},
labels: a,
title: r,
content: M
}, s = "POST";
void 0 !== i && (n += i, o.id = i, s = "PUT"), e.ajax({
url: n,
data: JSON.stringify(o),
headers: l,
type: s,
contentType: "application/json",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
i = n.id, d.chain();
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
404 === e.code && void 0 !== i && (e = "Post " + i + " not found on Blogger.|removePublish"),
c(e, d);
});
}
function s() {
return void 0 !== t ? (d.chain(o), void 0) : (e.ajax({
url: "https://www.googleapis.com/blogger/v3/blogs/byurl",
data: {
url: n
},
headers: l,
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
t = n.id, d.chain(o);
}).fail(function(e) {
var t = {
code: e.status,
message: e.statusText
};
404 === t.code && (t = 'Blog "' + n + '" not found on Blogger.|removePublish'),
c(t, d);
}), void 0);
}
var l = {}, u = gapi.auth.getToken();
u && (l.Authorization = "Bearer " + u.access_token), d.chain(s);
}), d.onSuccess(function() {
u(void 0, t, i);
}), d.onError(function(n) {
u(n);
}), d.enqueue();
}, h;
}), define("providers/gdriveProvider", [ "underscore", "utils", "classes/Provider", "settings", "eventMgr", "fileMgr", "helpers/googleHelper" ], function(n, e, t, i, a, r, o) {
function s(n) {
return "sync." + M + "." + n;
}
function l(n, t, i, a) {
var r = {};
return r.provider = u, r.id = n, r.etag = t, r.contentCRC = e.crc32(i), r.titleCRC = e.crc32(a),
r.syncIndex = s(n), r;
}
function c(e) {
o.downloadMetadata(e, function(e, t) {
e || o.downloadContent(t, function(e, t) {
if (!e) {
var i = [], o = void 0;
n.each(t, function(n) {
var e = l(n.id, n.etag, n.content, n.title);
e.isRealtime = n.isRealtime;
var t = {};
t[e.syncIndex] = e, o = r.createFile(n.title, n.content, t), i.push(o);
}), void 0 !== o && (a.onSyncImportSuccess(i, u), r.selectFile(o));
}
});
});
}
var M = "gdrive", u = new t(M, "Google Drive");
u.defaultPublishFormat = "template", u.exportPreferencesInputIds = [ "gdrive-parentid", "gdrive-realtime" ],
u.importFiles = function() {
o.picker(function(e, t) {
if (!e && 0 !== t.length) {
var i = [];
n.each(t, function(n) {
var e = s(n.id), t = r.getFileFromSyncIndex(e);
return void 0 !== t ? (a.onError('"' + t.title + '" was already imported.'), void 0) : (i.push(n.id),
void 0);
}), c(i);
}
}, "doc");
}, u.exportFile = function(n, t, i, c) {
var M = e.getInputTextValue("#input-sync-export-gdrive-fileid");
if (M) {
var u = s(M), d = r.getFileFromSyncIndex(u);
if (void 0 !== d) return a.onError('File ID is already synchronized with "' + d.title + '".'),
c(!0), void 0;
}
var h = e.getInputTextValue("#input-sync-export-gdrive-parentid");
o.upload(M, h, t, i, void 0, void 0, function(n, e) {
if (n) return c(n), void 0;
var a = l(e.id, e.etag, i, t);
c(void 0, a);
});
}, u.exportRealtimeFile = function(n, t, i, a) {
var r = e.getInputTextValue("#input-sync-export-gdrive-parentid");
o.createRealtimeFile(r, t, function(n, e) {
if (n) return a(n), void 0;
var r = l(e.id, e.etag, i, t);
a(void 0, r);
});
}, u.syncUp = function(n, e, t, i, a, r) {
return e == a.contentCRC && i == a.titleCRC ? (r(void 0, !1), void 0) : (o.upload(a.id, void 0, t, n, void 0, a.etag, function(n, t) {
return n ? (r(n, !0), void 0) : (a.etag = t.etag, a.contentCRC = e, a.titleCRC = i,
r(void 0, !0), void 0);
}), void 0);
}, u.syncUpRealtime = function(n, e, t, i, a, r) {
return i == a.titleCRC ? (r(void 0, !1), void 0) : (o.rename(a.id, t, function(n, e) {
return n ? (r(n, !0), void 0) : (a.etag = e.etag, a.titleCRC = i, r(void 0, !0),
void 0);
}), void 0);
}, u.syncDown = function(t) {
var i = parseInt(localStorage[M + ".lastChangeId"]);
o.checkChanges(i, function(i, l, c) {
if (i) return t(i), void 0;
var d = [];
n.each(l, function(n) {
var e = s(n.fileId), t = r.getSyncAttributes(e);
return void 0 !== t ? (n.syncAttributes = t, n.deleted === !0 ? (d.push(n), void 0) : (t.etag != n.file.etag && d.push(n),
void 0)) : void 0;
}), o.downloadContent(d, function(i, o) {
return i ? (t(i), void 0) : (n.each(o, function(n) {
var t = n.syncAttributes, i = t.syncIndex, o = r.getFileFromSyncIndex(i);
if (void 0 !== o) {
var s = o.title;
if (n.deleted === !0) return a.onError('"' + s + '" has been removed from Google Drive.'),
o.removeSyncLocation(t), a.onSyncRemoved(o, t), t.isRealtime === !0 && r.currentFile === o && u.stopRealtimeSync(),
void 0;
var l = t.titleCRC != e.crc32(s), c = o.content, M = t.contentCRC != e.crc32(c), d = n.file, h = e.crc32(d.title), S = t.titleCRC != h, p = s != d.title, m = e.crc32(d.content), g = t.contentCRC != m, f = c != d.content;
(p === !0 && l === !0 && S === !0 || !t.isRealtime && f === !0 && M === !0 && g === !0) && (r.createFile(s + " (backup)", c),
a.onMessage('Conflict detected on "' + s + '". A backup has been created locally.')),
p && S === !0 && (o.title = d.title, a.onTitleChanged(o), a.onMessage('"' + s + '" has been renamed to "' + d.title + '" on Google Drive.')),
!t.isRealtime && f && g === !0 && (o.content = d.content, a.onContentChanged(o),
a.onMessage('"' + d.title + '" has been updated from Google Drive.'), r.currentFile === o && r.selectFile()),
t.etag = d.etag, t.isRealtime || (t.contentCRC = m), t.titleCRC = h, e.storeAttributes(t);
}
}), localStorage[M + ".lastChangeId"] = c, t(), void 0);
});
});
}, u.publish = function(n, e, t, i, a) {
var r = "markdown" != n.format ? "text/html" : void 0;
o.upload(n.id, void 0, n.fileName || t, i, r, void 0, function(e, t) {
return e ? (a(e), void 0) : (n.id = t.id, a(), void 0);
});
}, u.newPublishAttributes = function(n) {
var t = {};
return t.id = e.getInputTextValue("#input-publish-gdrive-fileid"), t.fileName = e.getInputTextValue("#input-publish-gdrive-filename"),
n.isPropagationStopped() ? void 0 : t;
};
var d = void 0, h = void 0, S = void 0, p = void 0;
a.addListener("onPagedownConfigure", function(n) {
d = n;
});
var m = void 0, g = void 0, f = !0;
a.addListener("onAceCreated", function(n) {
g = n, g.session.on("change", function() {
m && m.string && m.string.setText(g.getValue());
});
});
var b = require("ace/range").Range;
return u.startRealtimeSync = function(t, i) {
var s = {};
m = s, o.loadRealtime(i.id, t.content, function(o, l) {
function c() {
i.contentCRC = e.crc32(u.getText()), e.storeAttributes(i);
}
if (!o && l) {
if (s.isStopped === !0) return l.close(), void 0;
logger.log("Starting Google Drive realtime synchronization"), s.document = l;
var M = l.getModel(), u = M.getRoot().get("content"), m = n.debounce(d.refreshPreview, 100);
u.addEventListener(gapi.drive.realtime.EventType.TEXT_INSERTED, function(n) {
if (void 0 !== g && (f === !1 || n.isLocal === !1)) {
var e = g.session.doc.indexToPosition(n.index);
g.session.insert(e, n.text), f = !0;
}
n.isLocal === !1 && (logger.log("Google Drive realtime document updated from server"),
c(), void 0 === g && m());
}), u.addEventListener(gapi.drive.realtime.EventType.TEXT_DELETED, function(n) {
if (void 0 !== g && (f === !1 || n.isLocal === !1)) {
var e = function(n, e) {
return new b(n.row, n.column, e.row, e.column);
}(g.session.doc.indexToPosition(n.index), g.session.doc.indexToPosition(n.index + n.text.length));
g.session.remove(e), f = !0;
}
n.isLocal === !1 && (logger.log("Google Drive realtime document updated from server"),
c(), void 0 === g && m());
}), l.addEventListener(gapi.drive.realtime.EventType.DOCUMENT_SAVE_STATE_CHANGED, function(n) {
n.isPending === !1 && n.isSaving === !1 && (logger.log("Google Drive realtime document successfully saved on server"),
c());
});
var y = t.content, v = i.contentCRC != e.crc32(y), D = u.getText(), w = e.crc32(D), G = i.contentCRC != w, k = y != D;
k === !0 && v === !0 && (G === !0 ? (r.createFile(t.title + " (backup)", y), a.onMessage('Conflict detected on "' + t.title + '". A backup has been created locally.')) : u.setText(y)),
void 0 === g && (s.binding = gapi.drive.realtime.databinding.bindString(u, document.getElementById("wmd-input"))),
G === !0 && (logger.log("Google Drive realtime document updated from server"), void 0 !== g && g.setValue(D, -1),
c(), void 0 === g && m()), void 0 !== g && (s.string = u, h = d.uiManager.buttons.undo.execute,
S = d.uiManager.buttons.redo.execute, p = d.uiManager.setUndoRedoButtonStates, d.uiManager.buttons.undo.execute = function() {
M.canUndo && (f = !1, M.undo());
}, d.uiManager.buttons.redo.execute = function() {
M.canRedo && (f = !1, M.redo());
}, d.uiManager.setUndoRedoButtonStates = function() {
setTimeout(function() {
d.uiManager.setButtonState(d.uiManager.buttons.undo, M.canUndo), d.uiManager.setButtonState(d.uiManager.buttons.redo, M.canRedo);
}, 50);
}, d.uiManager.setUndoRedoButtonStates(), M.addEventListener(gapi.drive.realtime.EventType.UNDO_REDO_STATE_CHANGED, function() {
d.uiManager.setUndoRedoButtonStates();
}));
}
}, function(n) {
console.error(n), "token_refresh_required" == n.type ? o.forceGdriveAuthenticate() : "not_found" == n.type ? (a.onError('"' + t.title + '" has been removed from Google Drive.'),
t.removeSyncLocation(i), a.onSyncRemoved(t, i), u.stopRealtimeSync()) : n.isFatal && (a.onError("An error has forced real time synchronization to stop."),
u.stopRealtimeSync());
});
}, u.stopRealtimeSync = function() {
logger.log("Stopping Google Drive realtime synchronization"), void 0 !== m && (m.isStopped = !0,
m.binding && m.binding.unbind(), m.document && m.document.close(), m = void 0),
void 0 !== p && (d.uiManager.buttons.undo.execute = h, d.uiManager.buttons.redo.execute = S,
d.uiManager.setUndoRedoButtonStates = p, d.uiManager.setUndoRedoButtonStates());
}, a.addListener("onReady", function() {
$(".export-gdrive-choose-folder").click(function() {
o.picker(function(n, t) {
n || 0 === t.length || ($(".modal-upload-gdrive").modal(), e.setInputValue("#input-sync-export-gdrive-parentid", t[0].id));
}, "folder");
});
var t = $("#input-sync-export-gdrive-realtime"), u = $("#input-sync-export-gdrive-fileid");
$("#input-sync-export-gdrive-realtime").change(function() {
u.prop("disabled", t.prop("checked"));
});
var d = e.retrieveIgnoreError(M + ".state");
if (void 0 !== d) if (localStorage.removeItem(M + ".state"), "create" == d.action) o.upload(void 0, d.folderId, GDRIVE_DEFAULT_FILE_TITLE, i.defaultContent, void 0, void 0, function(n, e) {
if (!n) {
var t = l(e.id, e.etag, e.content, e.title), i = {};
i[t.syncIndex] = t;
var o = r.createFile(e.title, e.content, i);
r.selectFile(o), a.onMessage('"' + e.title + '" created successfully on Google Drive.');
}
}); else if ("open" == d.action) {
var h = [];
n.each(d.ids, function(n) {
var e = s(n), t = r.getFileFromSyncIndex(e);
void 0 !== t ? t !== r.currentFile && r.selectFile(t) : h.push(n);
}), c(h);
}
}), u;
}), define("synchronizer", [ "jquery", "underscore", "utils", "eventMgr", "fileSystem", "fileMgr", "classes/Provider", "providers/dropboxProvider", "providers/gdriveProvider" ], function(n, e, t, i, a, r, o) {
function s(n) {
if (0 === f.length) return l(n), void 0;
var e = f.pop(), i = e.provider.syncUp;
e.isRealtime === !0 && (i = e.provider.syncUpRealtime), i(b, y, v, D, e, function(i, a) {
return a === !0 && (G = !0), i ? (n(i), void 0) : (a && t.storeAttributes(e), s(n),
void 0);
});
}
function l(n) {
if (0 === w.length) return c(n), void 0;
var i = w.pop();
return f = e.values(i.syncLocations), 0 === f.length ? (l(n), void 0) : (b = i.content,
y = t.crc32(b), v = i.title, D = t.crc32(v), s(n), void 0);
}
function c(n) {
G === !0 ? (G = !1, w = e.values(a), l(n)) : n();
}
function M(n) {
if (0 === k.length) return n(), void 0;
var e = k.pop();
return m.hasSync(e) ? (e.syncDown(function(e) {
return e ? (n(e), void 0) : (M(n), void 0);
}), void 0) : (M(n), void 0);
}
function u(n) {
k = e.values(g), M(n);
}
function d(n) {
A = e.some(n.syncLocations, function(n) {
return x = n, n.isRealtime;
}) ? n : void 0, S();
}
function h(n) {
n === !1 ? (E = !0, S()) : (m.tryStopRealtimeSync(), E = !1);
}
function S() {
void 0 !== A && E === !0 && x.provider.startRealtimeSync(A, x);
}
function p(i) {
t.resetModalInputs();
var a = t.retrieveIgnoreError(i.providerId + ".exportPreferences");
a && e.each(i.exportPreferencesInputIds, function(n) {
var i = a[n];
e.isBoolean(i) ? t.setInputChecked("#input-sync-export-" + n, i) : t.setInputValue("#input-sync-export-" + n, i);
}), n(".modal-upload-" + i.providerId).modal();
}
var m = {}, g = e.chain(arguments).map(function(n) {
return n instanceof o && [ n.providerId, n ];
}).compact().object().value();
e.each(a, function(n) {
e.each(t.retrieveIndexArray(n.fileIndex + ".sync"), function(e) {
try {
var a = JSON.parse(localStorage[e]);
a.syncIndex = e;
var r = g[a.provider];
if (!r) throw new Error("Invalid provider ID: " + a.provider);
a.provider = r, n.syncLocations[e] = a;
} catch (o) {
i.onError(o), t.removeIndexFromArray(n.fileIndex + ".sync", e), localStorage.removeItem(e);
}
});
}), m.hasSync = function(n) {
return e.some(a, function(t) {
return e.some(t.syncLocations, function(e) {
return void 0 === n || e.provider === n;
});
});
};
var f = [], b = void 0, y = void 0, v = void 0, D = void 0, w = [], G = !1, k = [], R = !1;
i.addListener("onOfflineChanged", function(n) {
R = n;
});
var C = !1;
m.sync = function() {
function n(n) {
return void 0 !== n ? (C = !1, i.onSyncRunning(!1), !0) : !1;
}
return C === !0 || R === !0 ? !1 : (C = !0, i.onSyncRunning(!0), G = !0, u(function(e) {
n(e) || c(function(e) {
n(e) || (C = !1, i.onSyncRunning(!1), i.onSyncSuccess());
});
}), !0);
};
var A = void 0, x = void 0, E = !0;
return m.tryStopRealtimeSync = function() {
void 0 !== A && E === !0 && x.provider.stopRealtimeSync();
}, viewerMode === !1 && (i.addListener("onFileOpen", d), i.addListener("onFileClosed", m.tryStopRealtimeSync),
i.addListener("onOfflineChanged", h)), i.addListener("onReady", function() {
e.each(g, function(a) {
n(".action-sync-import-" + a.providerId).click(function(n) {
a.importFiles(n);
}), n(".action-sync-export-dialog-" + a.providerId).click(function() {
p(a);
}), n(".action-sync-export-" + a.providerId).click(function(n) {
var o = t.getInputChecked("#input-sync-export-" + a.providerId + "-realtime"), s = r.currentFile;
if (o) {
if (e.size(s.syncLocations) > 0) return i.onError("Real time collaborative document can't be synchronized with multiple locations"),
void 0;
a.exportRealtimeFile(n, s.title, s.content, function(n, e) {
n || (e.isRealtime = !0, s.addSyncLocation(e), i.onSyncExportSuccess(s, e), A = s,
x = e, S());
});
} else {
if (e.size(s.syncLocations) > 0 && e.first(e.values(s.syncLocations)).isRealtime) return i.onError("Real time collaborative document can't be synchronized with multiple locations"),
void 0;
a.exportFile(n, s.title, s.content, function(n, e) {
n || (s.addSyncLocation(e), i.onSyncExportSuccess(s, e));
});
}
var l = {};
e.each(a.exportPreferencesInputIds, function(n) {
var e = document.getElementById("input-sync-export-" + n);
l[n] = "checkbox" == e.type ? e.checked : e.value;
}), localStorage[a.providerId + ".exportPreferences"] = JSON.stringify(l);
});
});
}), i.onSynchronizerCreated(m), m;
}), define("providers/downloadProvider", [ "jquery", "eventMgr", "utils", "fileMgr", "classes/Provider", "classes/AsyncTask" ], function(n, e, t, i, a, r) {
var o = new a("download");
return o.sharingAttributes = [ "url" ], o.importPublic = function(e, t) {
var i = void 0, a = void 0, o = new r();
o.onRun(function() {
var t = e.url, r = t.lastIndexOf("/");
return -1 === r ? (o.error(new Error("Invalid URL parameter.")), void 0) : (i = t.substring(r + 1),
n.ajax({
url: DOWNLOAD_PROXY_URL + "download?url=" + t,
type: "GET",
dataType: "text",
timeout: AJAX_TIMEOUT
}).done(function(n) {
a = n, o.chain();
}).fail(function() {
o.error(new Error("Unable to access URL " + t));
}), void 0);
}), o.onSuccess(function() {
t(void 0, i, a);
}), o.onError(function(n) {
t(n);
}), o.enqueue();
}, e.addListener("onReady", function() {
n(".action-import-url").click(function(n) {
var e = t.getInputTextValue("#input-import-url", n);
e && o.importPublic({
url: e
}, function(n, e, t) {
if (!n) {
var a = i.createFile(e, t);
i.selectFile(a);
}
});
});
}), o;
}), define("helpers/githubHelper", [ "jquery", "core", "utils", "eventMgr", "classes/AsyncTask", "config" ], function(n, e, t, i, a) {
function r(e) {
e.onRun(function() {
return u === !0 ? (l = !1, e.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : l === !0 ? (e.chain(), void 0) : (n.ajax({
url: "lib/github.js",
dataType: "script",
timeout: AJAX_TIMEOUT
}).done(function() {
l = !0, e.chain();
}).fail(function(n) {
var t = {
error: n.status,
message: n.statusText
};
s(t, e);
}), void 0);
});
}
function o(a) {
var r = void 0, o = void 0;
a.onRun(function() {
function s() {
e.oauthRedirect("GitHub", function() {
a.chain(l);
});
}
function l() {
i.onMessage("Please make sure the Github authorization popup is not blocked by your browser."),
localStorage.removeItem("githubCode"), r = t.popupWindow("github-oauth-client.html?client_id=" + GITHUB_CLIENT_ID, "stackedit-github-oauth", 960, 600),
r.focus(), o = setInterval(function() {
if (r.closed === !0) {
if (clearInterval(o), r = void 0, o = void 0, h = localStorage.githubCode, void 0 === h) return a.error(new Error(d)),
void 0;
localStorage.removeItem("githubCode"), a.chain(M);
}
}, 500);
}
function M() {
n.getJSON(GATEKEEPER_URL + "authenticate/" + h, function(n) {
void 0 !== n.token ? (u = n.token, localStorage.githubToken = u, c = new Github({
token: u,
auth: "oauth"
}), a.chain()) : a.error(new Error(d));
});
}
if (void 0 !== c) return a.chain(), void 0;
var u = localStorage.githubToken;
if (void 0 !== u) return c = new Github({
token: u,
auth: "oauth"
}), a.chain(), void 0;
var d = "Failed to retrieve a token from GitHub.";
a.timeout = ASYNC_TASK_LONG_TIMEOUT;
var h = void 0;
a.chain(s);
}), a.onError(function() {
void 0 !== o && clearInterval(o), void 0 !== r && r.close();
});
}
function s(n, t) {
var i = void 0;
if (n) if (logger.error(n), "string" == typeof n) i = n; else {
if (i = "Could not publish on GitHub.", 401 === n.error || 403 === n.error) return c = void 0,
localStorage.removeItem("githubToken"), i = "Access to GitHub account is not authorized.",
t.retry(new Error(i), 1), void 0;
n.error <= 0 && (l = !1, c = void 0, e.setOffline(), i = "|stopPublish");
}
t.error(new Error(i));
}
var l = void 0, c = void 0, M = {}, u = !1;
return i.addListener("onOfflineChanged", function(n) {
u = n;
}), M.upload = function(n, e, t, i, l, M, u) {
var d = new a();
r(d), o(d), d.onRun(function() {
function a() {
var n = c.getUser();
n.show(void 0, function(n, t) {
return n ? (s(n, d), void 0) : (e = t.login, d.chain(r), void 0);
});
}
function r() {
var a = c.getRepo(e, n);
a.write(t, i, l, M, function(n) {
return n ? (s(n, d), void 0) : (d.chain(), void 0);
});
}
e ? d.chain(r) : d.chain(a);
}), d.onSuccess(function() {
u();
}), d.onError(function(n) {
u(n);
}), d.enqueue();
}, M.uploadGist = function(n, e, t, i, l, M) {
var u = new a();
r(u), o(u), u.onRun(function() {
var a = c.getGist(n), r = {};
r[e] = {
content: l
}, githubFunction = a.update, void 0 === n && (githubFunction = a.create), githubFunction({
description: i,
"public": t,
files: r
}, function(e, t) {
return e ? (404 === e.error && void 0 !== n && (e = "Gist " + n + " not found on GitHub.|removePublish"),
s(e, u), void 0) : (n = t.id, u.chain(), void 0);
});
}), u.onSuccess(function() {
M(void 0, n);
}), u.onError(function(n) {
M(n);
}), u.enqueue();
}, M.downloadGist = function(n, e, t) {
var i = new a();
r(i);
var o = void 0, s = void 0;
i.onRun(function() {
var t = new Github({}), a = t.getGist(n);
a.read(function(t, a) {
if (t) return i.error(new Error("Error trying to access Gist " + n + ".")), void 0;
o = a.description;
var r = a.files[e];
return void 0 === r ? (i.error(new Error("Gist " + n + ' does not contain "' + e + '".')),
void 0) : (s = r.content, i.chain(), void 0);
});
}), i.onSuccess(function() {
t(void 0, o, s);
}), i.onError(function(n) {
t(n);
}), i.enqueue();
}, M;
}), define("providers/gistProvider", [ "utils", "classes/Provider", "helpers/githubHelper" ], function(n, e, t) {
var i = new e("gist", "Gist");
return i.publishPreferencesInputIds = [ "gist-public" ], i.sharingAttributes = [ "gistId", "filename" ],
i.publish = function(n, e, i, a, r) {
t.uploadGist(n.gistId, n.filename, n.isPublic, i, a, function(e, t) {
return e ? (r(e), void 0) : (n.gistId = t, r(), void 0);
});
}, i.newPublishAttributes = function(e) {
var t = {};
return t.gistId = n.getInputTextValue("#input-publish-gist-id"), t.filename = n.getInputTextValue("#input-publish-filename", e),
t.isPublic = n.getInputChecked("#input-publish-gist-public"), e.isPropagationStopped() ? void 0 : t;
}, i.importPublic = function(n, e) {
t.downloadGist(n.gistId, n.filename, e);
}, i;
}), define("sharing", [ "jquery", "underscore", "utils", "eventMgr", "fileMgr", "classes/AsyncTask", "classes/Provider", "providers/downloadProvider", "providers/gistProvider" ], function(n, e, t, i, a, r, o) {
var s = {}, l = e.chain(arguments).map(function(n) {
return n instanceof o && [ n.providerId, n ];
}).compact().object().value(), c = !1;
return i.addListener("onOfflineChanged", function(n) {
c = n;
}), s.createLink = function(t, a) {
function o() {
a();
}
var s = l[t.provider.providerId];
if (void 0 !== t.sharingLink || void 0 === s || "markdown" != t.format) return a(),
void 0;
var M = new r(), u = void 0;
M.onRun(function() {
if (c === !0) return M.chain(), void 0;
var a = [ MAIN_URL, "viewer.html?provider=", s.providerId ];
e.each(s.sharingAttributes, function(n) {
a.push("&"), a.push(n), a.push("="), a.push(encodeURIComponent(t[n]));
}), a = a.join(""), n.getJSON("https://api-ssl.bitly.com/v3/shorten", {
access_token: BITLY_ACCESS_TOKEN,
longUrl: a
}, function(n) {
n.data ? (u = n.data.url, t.sharingLink = u) : (i.onError("An error occured while creating sharing link."),
t.sharingLink = a), M.chain();
});
}), M.onSuccess(o), M.onError(o), M.enqueue();
}, i.addListener("onReady", function() {
if (viewerMode !== !1) {
var i = t.getURLParameter("provider");
void 0 === i && (i = "download");
var r = l[i];
if (void 0 !== r) {
var o = {};
e.each(r.sharingAttributes, function(n) {
var e = t.getURLParameter(n);
return e ? (o[n] = e, void 0) : (o = void 0, void 0);
}), void 0 !== o && (n("#preview-contents, .navbar .file-title-navbar").hide(),
r.importPublic(o, function(e, t, i) {
if (n("#preview-contents, .navbar .file-title-navbar").show(), !e) {
var r = a.createFile(t, i, void 0, !0);
a.selectFile(r);
}
}));
}
}
}), s;
}), define("providers/bloggerProvider", [ "underscore", "utils", "classes/Provider", "helpers/googleHelper" ], function(n, e, t, i) {
var a = new t("blogger", "Blogger");
return a.defaultPublishFormat = "html", a.publishPreferencesInputIds = [ "blogger-url" ],
a.publish = function(e, t, a, r, o) {
var s = e.labelList || [];
t && (void 0 !== t.categories && (s = t.categories), void 0 !== t.tags && (s = t.tags)),
n.isString(s) && (s = n.compact(s.split(/[\s,]/))), i.uploadBlogger(e.blogUrl, e.blogId, e.postId, s, a, r, function(n, t, i) {
return n ? (o(n), void 0) : (e.blogId = t, e.postId = i, o(), void 0);
});
}, a.newPublishAttributes = function(n) {
var t = {}, i = e.getInputTextValue("#input-publish-blogger-url", n);
return void 0 !== i && (t.blogUrl = e.checkUrl(i)), t.postId = e.getInputTextValue("#input-publish-postid"),
n.isPropagationStopped() ? void 0 : t;
}, a;
}), define("providers/githubProvider", [ "utils", "classes/Provider", "settings", "helpers/githubHelper" ], function(n, e, t, i) {
var a = new e("github", "GitHub");
return a.publishPreferencesInputIds = [ "github-reponame", "github-username", "github-branch" ],
a.publish = function(n, e, a, r, o) {
var s = t.commitMsg;
i.upload(n.repository, n.username, n.branch, n.path, r, s, o);
}, a.newPublishAttributes = function(e) {
var t = {};
return t.repository = n.getInputTextValue("#input-publish-github-reponame", e),
t.username = n.getInputTextValue("#input-publish-github-username"), t.branch = n.getInputTextValue("#input-publish-github-branch", e),
t.path = n.getInputTextValue("#input-publish-file-path", e), e.isPropagationStopped() ? void 0 : t;
}, a;
}), define("helpers/sshHelper", [ "jquery", "core", "eventMgr", "settings", "classes/AsyncTask" ], function(n, e, t, i, a) {
function r(n) {
n.onRun(function() {
return l === !0 ? (n.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : (n.chain(), void 0);
});
}
function o(n, t) {
var i = void 0;
n && (logger.error(n), "string" == typeof n ? i = "SSH error: " + n + "." : (i = "Could not publish on SSH server.",
n.code <= 0 && (e.setOffline(), i = "|stopPublish"))), t.error(new Error(i));
}
var s = {}, l = !1;
return t.addListener("onOfflineChanged", function(n) {
l = n;
}), s.upload = function(e, t, s, l, c, M, u, d) {
var h = new a();
r(h), h.onRun(function() {
var a = i.sshProxy + "upload", r = {
host: e,
port: t,
username: s,
password: l,
path: c,
title: M,
content: u
};
n.ajax({
url: a,
data: r,
type: "POST",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
return void 0 === n.error ? (h.chain(), void 0) : (o(n.error, h), void 0);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
o(e, h);
});
}), h.onSuccess(function() {
d();
}), h.onError(function(n) {
d(n);
}), h.enqueue();
}, s;
}), define("providers/sshProvider", [ "utils", "classes/Provider", "helpers/sshHelper" ], function(n, e, t) {
var i = new e("ssh", "SSH server");
return i.publishPreferencesInputIds = [ "ssh-host", "ssh-port", "ssh-username", "ssh-password" ],
i.publish = function(n, e, i, a, r) {
t.upload(n.host, n.port, n.username, n.password, n.path, i, a, r);
}, i.newPublishAttributes = function(e) {
var t = {};
return t.host = n.getInputTextValue("#input-publish-ssh-host", e, /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/),
t.port = n.getInputIntValue("#input-publish-ssh-port", void 0, 0), t.username = n.getInputTextValue("#input-publish-ssh-username", e),
t.password = n.getInputTextValue("#input-publish-ssh-password", e), t.path = n.getInputTextValue("#input-publish-file-path", e),
e.isPropagationStopped() ? void 0 : t;
}, i;
}), define("helpers/tumblrHelper", [ "jquery", "core", "utils", "eventMgr", "classes/AsyncTask" ], function(n, e, t, i, a) {
function r(n) {
n.onRun(function() {
return M === !0 ? (n.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : (n.chain(), void 0);
});
}
function o(a) {
var r = void 0, o = void 0;
a.onRun(function() {
function s() {
n.getJSON(TUMBLR_PROXY_URL + "request_token", function(n) {
void 0 !== n.oauth_token ? (S = n, a.chain(c)) : a.error(new Error(h));
});
}
function c() {
e.oauthRedirect("Tumblr", function() {
a.chain(M);
});
}
function M() {
i.onMessage("Please make sure the Tumblr authorization popup is not blocked by your browser."),
localStorage.removeItem("tumblrVerifier"), r = t.popupWindow("tumblr-oauth-client.html?oauth_token=" + S.oauth_token, "stackedit-tumblr-oauth", 800, 600),
r.focus(), o = setInterval(function() {
if (r.closed === !0) {
if (clearInterval(o), r = void 0, o = void 0, S.oauth_verifier = localStorage.tumblrVerifier,
void 0 === S.oauth_verifier) return a.error(new Error(h)), void 0;
localStorage.removeItem("tumblrVerifier"), a.chain(u);
}
}, 500);
}
function u() {
n.getJSON(TUMBLR_PROXY_URL + "access_token", S, function(n) {
void 0 !== n.access_token && void 0 !== n.access_token_secret ? (localStorage.tumblrOauthParams = JSON.stringify(n),
l = n, a.chain()) : a.error(new Error(h));
});
}
if (void 0 !== l) return a.chain(), void 0;
var d = localStorage.tumblrOauthParams;
if (void 0 !== d) return l = JSON.parse(d), a.chain(), void 0;
var h = "Failed to retrieve a token from Tumblr.";
a.timeout = ASYNC_TASK_LONG_TIMEOUT;
var S = void 0;
a.chain(s);
}), a.onError(function() {
void 0 !== o && clearInterval(o), void 0 !== r && r.close();
});
}
function s(n, t) {
var i = void 0;
if (n) if (logger.error(n), "string" == typeof n) i = n; else {
if (i = "Could not publish on Tumblr.", 401 === n.code || 403 === n.code) return l = void 0,
localStorage.removeItem("tumblrOauthParams"), i = "Access to Tumblr account is not authorized.",
t.retry(new Error(i), 1), void 0;
n.code <= 0 && (e.setOffline(), i = "|stopPublish");
}
t.error(new Error(i));
}
var l = void 0, c = {}, M = !1;
return i.addListener("onOfflineChanged", function(n) {
M = n;
}), c.upload = function(e, t, i, c, M, u, d) {
var h = new a();
r(h), o(h), h.onRun(function() {
var a = n.extend({
blog_hostname: e,
post_id: t,
tags: i,
format: c,
title: M,
content: u
}, l);
n.ajax({
url: TUMBLR_PROXY_URL + "post",
data: a,
type: "POST",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
t = n.id, h.chain();
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
404 === e.code && void 0 !== t && (e = "Post " + t + " not found on Tumblr.|removePublish"),
s(e, h);
});
}), h.onSuccess(function() {
d(void 0, t);
}), h.onError(function(n) {
d(n);
}), h.enqueue();
}, c;
}), define("providers/tumblrProvider", [ "underscore", "utils", "classes/Provider", "helpers/tumblrHelper" ], function(n, e, t, i) {
var a = new t("tumblr", "Tumblr");
return a.publishPreferencesInputIds = [ "tumblr-hostname" ], a.publish = function(e, t, a, r, o) {
var s = e.tags || [];
t && (void 0 !== t.categories && (s = t.categories), void 0 !== t.tags && (s = t.tags)),
n.isString(s) && (s = n.compact(s.split(/[\s,]/))), i.upload(e.blogHostname, e.postId, s.join(","), "markdown" == e.format ? "markdown" : "html", a, r, function(n, t) {
return n ? (o(n), void 0) : (e.postId = t, o(), void 0);
});
}, a.newPublishAttributes = function(n) {
var t = {};
return t.blogHostname = e.getInputTextValue("#input-publish-tumblr-hostname", n, /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/),
t.postId = e.getInputTextValue("#input-publish-postid"), n.isPropagationStopped() ? void 0 : t;
}, a;
}), define("helpers/wordpressHelper", [ "jquery", "core", "utils", "eventMgr", "classes/AsyncTask" ], function(n, e, t, i, a) {
function r(n) {
n.onRun(function() {
return M === !0 ? (n.error(new Error("Operation not available in offline mode.|stopPublish")),
void 0) : (n.chain(), void 0);
});
}
function o(a) {
var r = void 0, o = void 0;
a.onRun(function() {
function s() {
e.oauthRedirect("WordPress", function() {
a.chain(c);
});
}
function c() {
i.onMessage("Please make sure the Wordpress authorization popup is not blocked by your browser."),
localStorage.removeItem("wordpressCode"), r = t.popupWindow("wordpress-oauth-client.html?client_id=" + WORDPRESS_CLIENT_ID, "stackedit-wordpress-oauth", 960, 600),
r.focus(), o = setInterval(function() {
if (r.closed === !0) {
if (clearInterval(o), r = void 0, o = void 0, d = localStorage.wordpressCode, void 0 === d) return a.error(new Error(u)),
void 0;
localStorage.removeItem("wordpressCode"), a.chain(M);
}
}, 500);
}
function M() {
n.getJSON(WORDPRESS_PROXY_URL + "authenticate/" + d, function(n) {
void 0 !== n.token ? (l = n.token, localStorage.wordpressToken = l, a.chain()) : a.error(new Error(u));
});
}
if (l = localStorage.wordpressToken, void 0 !== l) return a.chain(), void 0;
var u = "Failed to retrieve a token from Wordpress.";
a.timeout = ASYNC_TASK_LONG_TIMEOUT;
var d = void 0;
a.chain(s);
}), a.onError(function() {
void 0 !== o && clearInterval(o), void 0 !== r && r.close();
});
}
function s(n, t) {
var i = void 0;
if (n) if (logger.error(n), "string" == typeof n) i = n; else {
if (i = "Could not publish on WordPress.", 400 === n.code && "invalid_token" == n.message || 401 === n.code || 403 === n.code) return localStorage.removeItem("wordpressToken"),
i = "Access to WordPress account is not authorized.", t.retry(new Error(i), 1),
void 0;
n.code <= 0 && (e.setOffline(), i = "|stopPublish");
}
t.error(new Error(i));
}
var l = void 0, c = {}, M = !1;
return i.addListener("onOfflineChanged", function(n) {
M = n;
}), c.upload = function(e, t, i, c, M, u) {
var d = new a();
r(d), o(d), d.onRun(function() {
var a = WORDPRESS_PROXY_URL + "post", r = {
token: l,
site: e,
postId: t,
tags: i,
title: c,
content: M
};
n.ajax({
url: a,
data: r,
type: "POST",
dataType: "json",
timeout: AJAX_TIMEOUT
}).done(function(n) {
if (n.body.ID) return t = n.body.ID, d.chain(), void 0;
var i = {
code: n.code,
message: n.body.error
};
404 === i.code && ("unknown_blog" == i.message ? i = 'Site "' + e + '" not found on WordPress.|removePublish' : "unknown_post" == i.message && (i = "Post " + t + " not found on WordPress.|removePublish")),
s(i, d);
}).fail(function(n) {
var e = {
code: n.status,
message: n.statusText
};
s(e, d);
});
}), d.onSuccess(function() {
u(void 0, t);
}), d.onError(function(n) {
u(n);
}), d.enqueue();
}, c;
}), define("providers/wordpressProvider", [ "underscore", "utils", "classes/Provider", "helpers/wordpressHelper" ], function(n, e, t, i) {
var a = new t("wordpress", "WordPress");
return a.defaultPublishFormat = "html", a.publishPreferencesInputIds = [ "wordpress-site" ],
a.publish = function(e, t, a, r, o) {
var s = e.tags || [];
t && (void 0 !== t.categories && (s = t.categories), void 0 !== t.tags && (s = t.tags)),
n.isString(s) && (s = n.compact(s.split(/[\s,]/))), i.upload(e.site, e.postId, s.join(","), a, r, function(n, t) {
return n ? (o(n), void 0) : (e.postId = t, o(), void 0);
});
}, a.newPublishAttributes = function(n) {
var t = {};
return t.site = e.getInputTextValue("#input-publish-wordpress-site", n, /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/),
t.postId = e.getInputTextValue("#input-publish-postid"), n.isPropagationStopped() ? void 0 : t;
}, a;
}), define("publisher", [ "jquery", "underscore", "utils", "settings", "eventMgr", "fileSystem", "fileMgr", "sharing", "classes/Provider", "classes/AsyncTask", "config", "providers/bloggerProvider", "providers/dropboxProvider", "providers/gistProvider", "providers/githubProvider", "providers/gdriveProvider", "providers/sshProvider", "providers/tumblrProvider", "providers/wordpressProvider" ], function(n, e, t, i, a, r, o, s, l, c) {
function M(n, e, i) {
return void 0 === e.format && (e.format = t.getInputRadio("radio-publish-format"),
"template" == e.format && t.getInputChecked("#checkbox-publish-custom-template") && (e.customTmpl = t.getInputValue("#textarea-publish-custom-template"))),
"markdown" == e.format ? n.content : "html" == e.format ? i : p.applyTemplate(n, e, i);
}
function u(n, e) {
if (0 === g.length) return n(e), void 0;
var t = g.pop(), i = M(f, t, b), r = (f.frontMatter || {}).title || f.title;
t.provider.publish(t, f.frontMatter, r, i, function(i) {
if (void 0 !== i) {
var r = i.toString();
if (-1 !== r.indexOf("|removePublish") && (f.removePublishLocation(t), a.onPublishRemoved(f, t)),
-1 !== r.indexOf("|stopPublish")) return n(i), void 0;
}
u(n, e || i);
});
}
function d(n, i) {
var r = void 0;
do r = "publish." + t.randomString(); while (e.has(localStorage, r));
i.publishIndex = r, n.addPublishLocation(i), a.onNewPublishSuccess(n, i);
}
function h(a) {
var r = a.defaultPublishFormat || "markdown";
w = a, n(".publish-provider-name").text(a.providerName), n('.modal-publish [class*=" modal-publish-"]').hide().filter(".modal-publish-" + a.providerId).show(),
t.resetModalInputs(), t.setInputRadio("radio-publish-format", r), t.setInputChecked("#checkbox-publish-custom-template", !1),
t.setInputValue("#textarea-publish-custom-template", i.template);
var o = t.retrieveIgnoreError(a.providerId + ".publishPreferences");
o && (e.each(a.publishPreferencesInputIds, function(n) {
var i = o[n];
e.isBoolean(i) ? t.setInputChecked("#input-publish-" + n, i) : t.setInputValue("#input-publish-" + n, i);
}), t.setInputRadio("radio-publish-format", o.format), t.setInputChecked("#checkbox-publish-custom-template", void 0 !== o.customTmpl),
t.setInputValue("#textarea-publish-custom-template", o.customTmpl || i.template)),
n(".modal-publish").modal();
}
function S(n) {
var t = w, i = t.newPublishAttributes(n);
if (void 0 !== i) {
var a = o.currentFile, r = y, l = M(a, i, r), c = a.frontMatter && a.frontMatter.title || a.title;
t.publish(i, a.frontMatter, c, l, function(n) {
void 0 === n && (i.provider = t, s.createLink(i, function() {
d(a, i);
}));
});
var u = {};
e.each(t.publishPreferencesInputIds, function(n) {
var e = document.getElementById("input-publish-" + n);
u[n] = "checkbox" == e.type ? e.checked : e.value;
}), u.format = i.format, u.customTmpl = i.customTmpl, localStorage[t.providerId + ".publishPreferences"] = JSON.stringify(u);
}
}
var p = {}, m = e.chain(arguments).map(function(n) {
return n instanceof l && [ n.providerId, n ];
}).compact().object().value();
e.each(r, function(n) {
e.each(t.retrieveIndexArray(n.fileIndex + ".publish"), function(e) {
try {
var i = JSON.parse(localStorage[e]);
i.publishIndex = e;
var r = m[i.provider];
if (!r) throw new Error("Invalid provider ID: " + i.provider);
i.provider = r, n.publishLocations[e] = i;
} catch (o) {
a.onError(o), t.removeIndexFromArray(n.fileIndex + ".publish", e), localStorage.removeItem(e);
}
});
}), p.applyTemplate = function(n, t, r) {
try {
var o = t && t.customTmpl || i.template;
return e.template(o, {
documentTitle: n.title,
documentMarkdown: n.content,
documentHTML: r,
frontMatter: n.frontMatter,
publishAttributes: t
});
} catch (s) {
return a.onError(s), s.message;
}
};
var g = [], f = void 0, b = void 0, y = void 0;
a.addListener("onPreviewFinished", function(n) {
y = n;
});
var v = !1;
a.addListener("onOfflineChanged", function(n) {
v = n;
});
var D = !1;
p.publish = function() {
D !== !0 && v !== !0 && (D = !0, a.onPublishRunning(!0), f = o.currentFile, b = y,
g = e.values(f.publishLocations), u(function(n) {
D = !1, a.onPublishRunning(!1), void 0 === n && a.onPublishSuccess(f);
}));
};
var w = void 0, v = !1;
a.addListener("onOfflineChanged", function(n) {
v = n;
});
var G = [ "<li>", ' <a href="#"', ' class="action-init-publish-<%= provider.providerId %>">', ' <i class="icon-provider-<%= provider.providerId %>"></i> <%= provider.providerName %>', " </a>", "</li>" ].join("");
return a.addListener("onReady", function() {
if (viewerMode === !1) {
var r = document.querySelector(".menu-panel .collapse-publish-on .nav"), s = e.reduce(m, function(n, t) {
return n + e.template(G, {
provider: t
});
}, "");
r.innerHTML = s, e.each(m, function(e) {
n(r.querySelector(".action-init-publish-" + e.providerId)).click(function() {
h(e);
}), n(".action-publish-" + e.providerId).click(function() {
h(e);
});
});
}
n(".action-process-publish").click(S);
var l = n(".publish-custom-template-collapse").collapse({
toggle: !1
}), M = n("#textarea-publish-custom-template"), u = e.debounce(function() {
l.collapse("template" == t.getInputRadio("radio-publish-format") ? "show" : "hide");
}, 100);
n("#checkbox-publish-custom-template").change(function() {
M.prop("disabled", !this.checked);
}), n("input:radio[name=radio-publish-format]").change(function() {
u();
}), n(".modal-publish").on("hidden.bs.modal", function() {
l.collapse("hide");
}), n(".action-download-md").click(function() {
var n = o.currentFile.content, e = o.currentFile.title;
t.saveAs(n, e + ".md");
}), n(".action-download-html").click(function() {
var n = o.currentFile.title;
t.saveAs(y, n + ".html");
}), n(".action-download-template").click(function() {
var n = o.currentFile, e = p.applyTemplate(n, void 0, y);
t.saveAs(e, n.title + (-1 === i.template.indexOf("documentHTML") ? ".md" : ".html"));
}), n(".action-download-pdf").click(function() {
var n = o.currentFile, e = p.applyTemplate(n, {
customTmpl: i.pdfTemplate
}, y), r = new c(), s = void 0;
r.onRun(function() {
if (v === !0) return a.onError("Operation not available in offline mode."), r.chain(),
void 0;
var n = new XMLHttpRequest();
n.open("POST", HTMLTOPDF_URL, !0), n.setRequestHeader("Content-type", "application/x-www-form-urlencoded"),
n.responseType = "blob", n.onreadystatechange = function() {
4 == this.readyState && (200 == this.status ? s = this.response : a.onError("Error when trying to generate PDF: " + this.status),
r.chain());
}, n.send(e);
}), r.onSuccess(function() {
void 0 !== s && t.saveAs(s, o.currentFile.title + ".pdf");
}), r.enqueue();
});
}), a.onPublisherCreated(p), p;
}), define("providers/gplusProvider", [ "underscore", "utils", "classes/Provider", "eventMgr", "helpers/googleHelper" ], function(n, e, t, i, a) {
function r(e, t) {
var i = void 0;
return n.find(e.thumbnails, function(n) {
var e = !1;
return n.url.replace(/(.*\/s)\d.*?(\/[^\/]+)/, function(n, a, r) {
i = a + t + r, e = !0;
}), e;
}), i;
}
function o() {
return c.thumbnails ? (e.resetModalInputs(), $(".modal-import-image img").prop("src", r(c, 128)),
e.setInputValue("#input-import-image-title", c.name), M && e.setInputValue("#input-import-image-size", M.size),
$(".modal-import-image").modal(), void 0) : (i.onError("Image " + c.name + " is not accessible."),
callback(!0), void 0);
}
var s = "gplus", l = new t(s, "Google+"), c = void 0, M = e.retrieveIgnoreError(s + ".importImagePreferences"), u = void 0;
return l.importImage = function(n) {
u = n, a.picker(function(e, t) {
return e || 0 === t.length ? (n(e), void 0) : (c = t[0], o(), void 0);
}, "img");
}, l.uploadImage = function(n, e, t) {
u = t, a.uploadImg(n, e, "default", function(e, i) {
return e || !i ? (t(e), void 0) : (c = {
name: n,
thumbnails: []
}, $(i).find("thumbnail").each(function() {
c.thumbnails.push({
url: $(this).attr("url")
});
}), o(), void 0);
});
}, i.addListener("onReady", function() {
$(".action-import-image").click(function() {
var n = e.getInputIntValue("#input-import-image-size", void 0, 0) || 0, t = e.getInputTextValue("#input-import-image-title"), i = r(c, n);
t && (i += ' "' + t + '"'), u(void 0, i), M = {}, n && (M.size = n), localStorage[s + ".importImagePreferences"] = JSON.stringify(M);
});
}), l;
}), define("mediaImporter", [ "jquery", "underscore", "classes/Provider", "core", "eventMgr", "providers/gplusProvider" ], function(n, e, t, i, a) {
var r = {}, o = e.chain(arguments).map(function(n) {
return n instanceof t && [ n.providerId, n ];
}).compact().object().value();
return a.addListener("onReady", function() {
function t(t) {
var a = (t.dataTransfer || t.target).files, r = e.first(a);
if (r.name.match(/.(jpe?g|png|gif)$/)) {
t.stopPropagation(), t.preventDefault();
var s = new FileReader();
s.onload = function() {
return function(e) {
var t = new Uint8Array(e.target.result);
o.gplus.uploadImage(r.name, t, function(e, t) {
if (!e) {
i.catchModal = !0, n("#wmd-image-button").click(), i.catchModal = !1;
var a = i.insertLinkCallback;
i.insertLinkCallback = void 0, a(t || null);
}
});
};
}(r);
var l = r.slice(0, IMPORT_IMG_MAX_CONTENT_SIZE);
s.readAsArrayBuffer(l);
}
}
function a(n) {
n.stopPropagation(), n.preventDefault(), n.dataTransfer.dropEffect = "copy";
}
e.each(o, function(e) {
n(".action-import-image-" + e.providerId).click(function() {
var n = i.insertLinkCallback;
i.insertLinkCallback = void 0, e.importImage(function(e, t) {
return e ? (n(null), void 0) : (n(t || null), void 0);
});
});
}), n("#wmd-input").each(function() {
this.addEventListener("dragover", a, !1), this.addEventListener("drop", t, !1);
});
}), r;
}), define("css/normalize", [ "require", "module" ], function() {
function n(n, i, a) {
if (0 === n.indexOf("data:")) return n;
if (n = r(n), n.match(/^\//) || n.match(o)) return n;
var s = a.match(o), l = i.match(o);
return !l || s && s[1] == l[1] && s[2] == l[2] ? t(e(n, i), a) : e(n, i);
}
function e(n, e) {
"./" == n.substr(0, 2) && (n = n.substr(2));
var t = e.split("/"), i = n.split("/");
for (t.pop(); curPart = i.shift(); ) ".." == curPart ? t.pop() : t.push(curPart);
return t.join("/");
}
function t(n, e) {
var t = e.split("/");
for (t.pop(), e = t.join("/") + "/", i = 0; e.substr(i, 1) == n.substr(i, 1); ) i++;
for (;"/" != e.substr(i, 1); ) i--;
e = e.substr(i + 1), n = n.substr(i + 1), t = e.split("/");
var a = n.split("/");
for (out = ""; t.shift(); ) out += "../";
for (;curPart = a.shift(); ) out += curPart + "/";
return out.substr(0, out.length - 1);
}
var a = /([^:])\/+/g, r = function(n) {
return n.replace(a, "$1/");
}, o = /[^\:\/]*:\/\/([^\/])*/, s = function(e, t, i, a) {
t = r(t), i = r(i);
for (var o, s, e, l = /@import\s*("([^"]*)"|'([^']*)')|url\s*\(\s*(\s*"([^"]*)"|'([^']*)'|[^\)]*\s*)\s*\)/gi; o = l.exec(e); ) {
s = o[3] || o[2] || o[5] || o[6] || o[4];
var c;
c = a && "/" == s.substr(0, 1) ? a + s : n(s, t, i);
var M = o[5] || o[6] ? 1 : 0;
e = e.substr(0, l.lastIndex - s.length - M - 1) + c + e.substr(l.lastIndex - M - 1),
l.lastIndex = l.lastIndex + (c.length - s.length);
}
return e;
};
return s.convertURIBase = n, s;
}), define("css/css", [ "./normalize" ], function(n) {
function e(n, e) {
for (var t = 0, i = n.length; i > t; t++) if (n[t] === e) return t;
return -1;
}
if ("undefined" == typeof window) return {
load: function(n, e, t) {
t();
}
};
var t = !1, i = document.getElementsByTagName("head")[0], a = window.navigator.userAgent.match(/Trident\/([^ ;]*)|AppleWebKit\/([^ ;]*)|Opera\/([^ ;]*)|rv\:([^ ;]*)(.*?)Gecko\/([^ ;]*)|MSIE\s([^ ;]*)/), r = !1;
a && (a[1] || a[7] ? (r = parseInt(a[1]) < 6 || parseInt(a[7]) <= 9, a = "trident") : a[2] ? (r = !0,
a = "webkit") : a[3] || (a[4] ? (r = parseInt(a[4]) < 18, a = "gecko") : t && alert("Engine detection failed")));
var o = {}, s = /^\/|([^\:\/]*:)/;
o.pluginBuilder = "./css-builder";
var l = [], c = {}, M = [];
o.addBuffer = function(n) {
-1 == e(l, n) && -1 == e(M, n) && (l.push(n), M.push(n));
}, o.setBuffer = function(e, t) {
var i = window.location.pathname.split("/");
i.pop(), i = i.join("/") + "/";
var a = require.toUrl("base_url").split("/");
a.pop();
var r = a.join("/") + "/";
r = n.convertURIBase(r, i, "/"), r.match(s) || (r = "/" + r), "/" != r.substr(r.length - 1, 1) && (r += "/"),
o.inject(n(e, r, i));
for (var M = 0; M < l.length; M++) (t && ".less" == l[M].substr(l[M].length - 5, 5) || !t && ".css" == l[M].substr(l[M].length - 4, 4)) && (function(n) {
c[n] = c[n] || !0, setTimeout(function() {
"function" == typeof c[n] && c[n](), delete c[n];
}, 7);
}(l[M]), l.splice(M--, 1));
}, o.attachBuffer = function(n, t) {
for (var i = 0; i < l.length; i++) if (l[i] == n) return c[n] = t, !0;
return c[n] === !0 ? (c[n] = t, !0) : -1 != e(M, n) ? (t(), !0) : void 0;
};
var u = function(n, e) {
setTimeout(function() {
for (var t = 0; t < document.styleSheets.length; t++) {
var i = document.styleSheets[t];
if (i.href == n.href) return e();
}
u(n, e);
}, 10);
}, d = function(n, e) {
setTimeout(function() {
try {
return n.sheet.cssRules, e();
} catch (t) {}
d(n, e);
}, 10);
};
if ("trident" == a && r) var h = [], S = [], p = 0, m = function(n, e) {
var t;
S.push({
url: n,
cb: e
}), t = h.shift(), !t && p++ < 31 && (t = document.createElement("style"), i.appendChild(t)),
t && g(t);
}, g = function(n) {
var e = S.shift();
if (!e) return n.onload = b, h.push(n), void 0;
n.onload = function() {
e.cb(e.ss), g(n);
};
var t = n.styleSheet;
e.ss = t.imports[t.addImport(e.url)];
};
var f = function(n) {
var e = document.createElement("link");
return e.type = "text/css", e.rel = "stylesheet", e.href = n, e;
}, b = function() {};
o.linkLoad = function(n, e) {
var o = setTimeout(function() {
t && alert("timeout"), e();
}, 1e3 * A - 100), s = function() {
clearTimeout(o), l && (l.onload = b), setTimeout(e, 7);
};
if (r) if ("webkit" == a) {
var l = f(n);
u(l, s), i.appendChild(l);
} else if ("gecko" == a) {
var c = document.createElement("style");
c.textContent = '@import "' + n + '"', d(c, s), i.appendChild(c);
} else "trident" == a && m(n, s); else {
var l = f(n);
l.onload = s, i.appendChild(l);
}
};
var y, v = [ "Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0" ], D = {}, w = function(n, e, t) {
if (D[n]) return e(D[n]), void 0;
var i, a, r;
if ("undefined" != typeof XMLHttpRequest) i = new XMLHttpRequest(); else if ("undefined" != typeof ActiveXObject) for (a = 0; 3 > a; a += 1) {
r = v[a];
try {
i = new ActiveXObject(r);
} catch (o) {}
if (i) {
v = [ r ];
break;
}
}
i.open("GET", n, requirejs.inlineRequire ? !1 : !0), i.onreadystatechange = function() {
var a, r;
4 === i.readyState && (a = i.status, a > 399 && 600 > a ? (r = new Error(n + " HTTP status: " + a),
r.xhr = i, t(r)) : (D[n] = i.responseText, e(i.responseText)));
}, i.send(null);
}, G = 0;
o.inject = function(n) {
31 > G && (y = document.createElement("style"), y.type = "text/css", i.appendChild(y),
G++), y.styleSheet ? y.styleSheet.cssText += n : y.appendChild(document.createTextNode(n));
};
var k = /@import\s*(url)?\s*(('([^']*)'|"([^"]*)")|\(('([^']*)'|"([^"]*)"|([^\)]*))\))\s*;?/g, R = window.location.pathname.split("/");
R.pop(), R = R.join("/") + "/";
var C = function(e, t, i) {
e.match(s) || (e = "/" + n.convertURIBase(e, R, "/")), w(e, function(a) {
a = n(a, e, R);
for (var r, o = [], s = [], l = []; r = k.exec(a); ) {
var c = r[4] || r[5] || r[7] || r[8] || r[9];
o.push(c), s.push(k.lastIndex - r[0].length), l.push(r[0].length);
}
for (var M = 0, u = 0; u < o.length; u++) (function(n) {
C(o[n], function(e) {
a = a.substr(0, s[n]) + e + a.substr(s[n] + l[n]);
for (var i = e.length - l[n], r = n + 1; r < o.length; r++) s[r] += i;
M++, M == o.length && t(a);
}, i);
})(u);
0 == o.length && t(a);
}, i);
};
o.normalize = function(n, e) {
return ".css" == n.substr(n.length - 4, 4) && (n = n.substr(0, n.length - 4)), e(n);
};
var A, x = !1;
return o.load = function(n, e, i, a, s) {
A = A || a.waitSeconds || 7;
var l = n + (s ? ".less" : ".css");
if (!o.attachBuffer(l, i)) {
var c = e.toUrl(l);
!x && t && (alert(r ? "hacking links" : "not hacking"), x = !0), s ? C(c, function(n) {
s && (n = s(n, function(n) {
o.inject(n), setTimeout(i, 7);
}));
}) : o.linkLoad(c, i);
}
}, t && (o.inspect = function() {
return stylesheet.styleSheet ? stylesheet.styleSheet.cssText : stylesheet.innerHTML ? stylesheet.innerHTML : void 0;
}), o;
}), define("css", [ "css/css" ], function(n) {
return n;
}), requirejs.config({
waitSeconds: 0,
packages: [ {
name: "ace",
location: "bower-libs/ace/lib/ace",
main: "ace"
}, {
name: "css",
location: "bower-libs/require-css",
main: "css"
}, {
name: "less",
location: "bower-libs/require-less",
main: "less"
} ],
paths: {
jquery: "bower-libs/jquery/jquery",
underscore: "bower-libs/underscore/underscore",
crel: "bower-libs/crel/crel",
jgrowl: "bower-libs/jgrowl/jquery.jgrowl",
mousetrap: "bower-libs/mousetrap/mousetrap",
"mousetrap-record": "bower-libs/mousetrap/plugins/record/mousetrap-record",
toMarkdown: "bower-libs/to-markdown/src/to-markdown",
text: "bower-libs/requirejs-text/text",
mathjax: "../lib/MathJax/MathJax.js?config=TeX-AMS_HTML",
bootstrap: "bower-libs/bootstrap/dist/js/bootstrap",
requirejs: "bower-libs/requirejs/require",
"google-code-prettify": "bower-libs/google-code-prettify/src/prettify",
highlightjs: "bower-libs/highlightjs/highlight.pack",
"jquery-waitforimages": "bower-libs/waitForImages/src/jquery.waitforimages",
"jquery-ui": "bower-libs/jquery-ui/ui/jquery-ui",
"jquery-ui-core": "bower-libs/jquery-ui/ui/jquery.ui.core",
"jquery-ui-widget": "bower-libs/jquery-ui/ui/jquery.ui.widget",
"jquery-ui-mouse": "bower-libs/jquery-ui/ui/jquery.ui.mouse",
"jquery-ui-draggable": "bower-libs/jquery-ui/ui/jquery.ui.draggable",
"jquery-ui-effect": "bower-libs/jquery-ui/ui/jquery.ui.effect",
"jquery-ui-effect-slide": "bower-libs/jquery-ui/ui/jquery.ui.effect-slide",
uilayout: "libs/layout",
FileSaver: "bower-libs/FileSaver/FileSaver",
stacktrace: "bower-libs/stacktrace/stacktrace",
"requirejs-text": "bower-libs/requirejs-text/text",
"bootstrap-tour": "bower-libs/bootstrap-tour/build/js/bootstrap-tour",
css_browser_selector: "bower-libs/css_browser_selector/css_browser_selector",
"jquery-mousewheel": "bower-libs/jquery-mousewheel/jquery.mousewheel",
"pagedown-ace": "bower-libs/pagedown-ace/Markdown.Editor",
"pagedown-extra": "bower-libs/pagedown-extra/Markdown.Extra",
"ace/requirejs/text": "libs/ace_text",
"ace/commands/default_commands": "libs/ace_commands",
"js-yaml": "bower-libs/js-yaml/js-yaml",
"require-css": "bower-libs/require-css/css",
Typo: "bower-libs/Typo.js",
"typo-js": "bower-libs/Typo.js/typo/typo",
xregexp: "bower-libs/xregexp/xregexp-all",
"Typo.js": "bower-libs/Typo.js"
},
shim: {
underscore: {
exports: "_"
},
mathjax: [ "libs/mathjax_init" ],
jgrowl: {
deps: [ "jquery" ],
exports: "jQuery.jGrowl"
},
mousetrap: {
exports: "Mousetrap"
},
"typo-js": {
exports: "Typo"
},
"bootstrap-record": [ "mousetrap" ],
toMarkdown: {
deps: [ "jquery" ],
exports: "toMarkdown"
},
"bootstrap-tour": [ "bootstrap" ],
bootstrap: [ "jquery" ],
"jquery-waitforimages": [ "jquery" ],
"jquery-mousewheel": [ "jquery" ],
uilayout: [ "jquery-ui-effect-slide" ],
"jquery-ui-effect-slide": [ "jquery-ui-effect" ],
"jquery-ui-effect": [ "jquery-ui-draggable" ],
"jquery-ui-draggable": [ "jquery-ui-mouse" ],
"jquery-ui-mouse": [ "jquery-ui-widget" ],
"jquery-ui-widget": [ "jquery-ui-core" ],
"jquery-ui-core": [ "jquery" ],
"pagedown-extra": [ "pagedown-ace", "google-code-prettify", "highlightjs" ],
"pagedown-ace": [ "bower-libs/pagedown-ace/Markdown.Converter" ]
}
});
var logger = {
log: function() {},
info: function() {},
warn: function() {},
error: function() {}
};
/(\?|&)console($|&)/.test(location.search) && (logger = console);
var viewerMode = /(^| )viewer($| )/.test(document.body.className), lightMode = viewerMode || /(\?|&)light($|&)/.test(location.search) || function(n) {
return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(n) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(n.substr(0, 4)) ? !0 : void 0;
}(navigator.userAgent || navigator.vendor || window.opera), theme = localStorage.theme || "default", themeModule = "less!themes/" + theme;
-1 !== baseDir.indexOf("-min") && (themeModule = "css!themes/" + theme), require([ "jquery", "core", "eventMgr", "synchronizer", "publisher", "mediaImporter", "css", themeModule ], function(n, e, t) {
n(function() {
e.onReady(), window.applicationCache && window.applicationCache.addEventListener("updateready", function() {
window.applicationCache.status === window.applicationCache.UPDATEREADY && (window.applicationCache.swapCache(),
t.onMessage("New version available!\nJust refresh the page to upgrade."));
}, !1);
});
}), define("main", function() {});